From 6580b6b951f391c7c8fd51e34298f2e829293277 Mon Sep 17 00:00:00 2001
From: lucha <lucha@paranoici.org>
Date: Thu, 22 Dec 2016 21:14:13 +0100
Subject: [PATCH] Upgrade Wordpress 4.7

---
 readme.html                                   |    5 +-
 wp-activate.php                               |    2 +-
 wp-admin/about.php                            |  248 +-
 wp-admin/admin-footer.php                     |    4 +-
 wp-admin/admin-header.php                     |   35 +-
 wp-admin/admin.php                            |    8 +-
 wp-admin/comment.php                          |    8 +-
 wp-admin/credits.php                          |    4 +-
 wp-admin/css/about-rtl.css                    |   46 +-
 wp-admin/css/about-rtl.min.css                |    2 +-
 wp-admin/css/about.css                        |   46 +-
 wp-admin/css/about.min.css                    |    2 +-
 wp-admin/css/admin-menu-rtl.css               |   97 +-
 wp-admin/css/admin-menu-rtl.min.css           |    2 +-
 wp-admin/css/admin-menu.css                   |   97 +-
 wp-admin/css/admin-menu.min.css               |    2 +-
 wp-admin/css/color-picker-rtl.css             |   10 +
 wp-admin/css/color-picker-rtl.min.css         |    2 +-
 wp-admin/css/color-picker.css                 |   10 +
 wp-admin/css/color-picker.min.css             |    2 +-
 wp-admin/css/colors/_admin.scss               |   30 +-
 wp-admin/css/colors/_mixins.scss              |    2 +-
 wp-admin/css/colors/blue/colors-rtl.css       |   30 +-
 wp-admin/css/colors/blue/colors-rtl.min.css   |    2 +-
 wp-admin/css/colors/blue/colors.css           |   30 +-
 wp-admin/css/colors/blue/colors.min.css       |    2 +-
 wp-admin/css/colors/coffee/colors-rtl.css     |   32 +-
 wp-admin/css/colors/coffee/colors-rtl.min.css |    2 +-
 wp-admin/css/colors/coffee/colors.css         |   32 +-
 wp-admin/css/colors/coffee/colors.min.css     |    2 +-
 wp-admin/css/colors/ectoplasm/colors-rtl.css  |   32 +-
 .../css/colors/ectoplasm/colors-rtl.min.css   |    2 +-
 wp-admin/css/colors/ectoplasm/colors.css      |   32 +-
 wp-admin/css/colors/ectoplasm/colors.min.css  |    2 +-
 wp-admin/css/colors/light/colors-rtl.css      |   32 +-
 wp-admin/css/colors/light/colors-rtl.min.css  |    2 +-
 wp-admin/css/colors/light/colors.css          |   32 +-
 wp-admin/css/colors/light/colors.min.css      |    2 +-
 wp-admin/css/colors/midnight/colors-rtl.css   |   32 +-
 .../css/colors/midnight/colors-rtl.min.css    |    2 +-
 wp-admin/css/colors/midnight/colors.css       |   32 +-
 wp-admin/css/colors/midnight/colors.min.css   |    2 +-
 wp-admin/css/colors/ocean/colors-rtl.css      |   32 +-
 wp-admin/css/colors/ocean/colors-rtl.min.css  |    2 +-
 wp-admin/css/colors/ocean/colors.css          |   32 +-
 wp-admin/css/colors/ocean/colors.min.css      |    2 +-
 wp-admin/css/colors/sunrise/colors-rtl.css    |   32 +-
 .../css/colors/sunrise/colors-rtl.min.css     |    2 +-
 wp-admin/css/colors/sunrise/colors.css        |   32 +-
 wp-admin/css/colors/sunrise/colors.min.css    |    2 +-
 wp-admin/css/common-rtl.css                   |  189 +-
 wp-admin/css/common-rtl.min.css               |    4 +-
 wp-admin/css/common.css                       |  189 +-
 wp-admin/css/common.min.css                   |    4 +-
 wp-admin/css/customize-controls-rtl.css       |  701 ++-
 wp-admin/css/customize-controls-rtl.min.css   |    2 +-
 wp-admin/css/customize-controls.css           |  701 ++-
 wp-admin/css/customize-controls.min.css       |    2 +-
 wp-admin/css/customize-nav-menus-rtl.css      |  142 +-
 wp-admin/css/customize-nav-menus-rtl.min.css  |    2 +-
 wp-admin/css/customize-nav-menus.css          |  142 +-
 wp-admin/css/customize-nav-menus.min.css      |    2 +-
 wp-admin/css/customize-widgets-rtl.css        |    4 +-
 wp-admin/css/customize-widgets-rtl.min.css    |    2 +-
 wp-admin/css/customize-widgets.css            |    4 +-
 wp-admin/css/customize-widgets.min.css        |    2 +-
 wp-admin/css/edit-rtl.css                     |   85 +-
 wp-admin/css/edit-rtl.min.css                 |    2 +-
 wp-admin/css/edit.css                         |   81 +-
 wp-admin/css/edit.min.css                     |    2 +-
 wp-admin/css/forms-rtl.css                    |   30 +-
 wp-admin/css/forms-rtl.min.css                |    2 +-
 wp-admin/css/forms.css                        |   30 +-
 wp-admin/css/forms.min.css                    |    2 +-
 wp-admin/css/ie-rtl.css                       |   15 +-
 wp-admin/css/ie-rtl.min.css                   |    2 +-
 wp-admin/css/ie.css                           |   15 +-
 wp-admin/css/ie.min.css                       |    2 +-
 wp-admin/css/install-rtl.css                  |    2 +-
 wp-admin/css/install-rtl.min.css              |    2 +-
 wp-admin/css/install.css                      |    2 +-
 wp-admin/css/install.min.css                  |    2 +-
 wp-admin/css/list-tables-rtl.css              |    7 +-
 wp-admin/css/list-tables-rtl.min.css          |    2 +-
 wp-admin/css/list-tables.css                  |    7 +-
 wp-admin/css/list-tables.min.css              |    2 +-
 wp-admin/css/login-rtl.css                    |   19 +-
 wp-admin/css/login-rtl.min.css                |    2 +-
 wp-admin/css/login.css                        |   19 +-
 wp-admin/css/login.min.css                    |    2 +-
 wp-admin/css/media-rtl.css                    |    8 +-
 wp-admin/css/media-rtl.min.css                |    2 +-
 wp-admin/css/media.css                        |    8 +-
 wp-admin/css/media.min.css                    |    2 +-
 wp-admin/css/nav-menus-rtl.css                |  122 +-
 wp-admin/css/nav-menus-rtl.min.css            |    2 +-
 wp-admin/css/nav-menus.css                    |  122 +-
 wp-admin/css/nav-menus.min.css                |    2 +-
 wp-admin/css/press-this-rtl.css               |   98 +-
 wp-admin/css/press-this-rtl.min.css           |    2 +-
 wp-admin/css/press-this.css                   |   98 +-
 wp-admin/css/press-this.min.css               |    2 +-
 wp-admin/css/themes-rtl.css                   |  166 +-
 wp-admin/css/themes-rtl.min.css               |    2 +-
 wp-admin/css/themes.css                       |  166 +-
 wp-admin/css/themes.min.css                   |    2 +-
 wp-admin/custom-background.php                |  202 +-
 wp-admin/custom-header.php                    |   14 +-
 wp-admin/customize.php                        |   45 +-
 wp-admin/edit-comments.php                    |   24 +-
 wp-admin/edit-form-advanced.php               |   36 +-
 wp-admin/edit-form-comment.php                |    2 +-
 wp-admin/edit-link-form.php                   |    6 +-
 wp-admin/edit-tag-form.php                    |   11 +-
 wp-admin/edit-tags.php                        |  118 +-
 wp-admin/edit.php                             |   24 +-
 wp-admin/export.php                           |    4 +-
 wp-admin/freedoms.php                         |    8 +-
 wp-admin/import.php                           |    4 +-
 wp-admin/includes/admin.php                   |    1 +
 wp-admin/includes/ajax-actions.php            |  129 +-
 wp-admin/includes/class-ftp-pure.php          |    6 +-
 wp-admin/includes/class-ftp-sockets.php       |    6 +-
 wp-admin/includes/class-ftp.php               |    8 +-
 .../includes/class-plugin-installer-skin.php  |   11 +-
 wp-admin/includes/class-plugin-upgrader.php   |   20 +-
 wp-admin/includes/class-theme-upgrader.php    |   21 +-
 .../includes/class-walker-nav-menu-edit.php   |   18 +-
 .../includes/class-wp-automatic-updater.php   |   17 +-
 .../includes/class-wp-comments-list-table.php |    6 +-
 wp-admin/includes/class-wp-importer.php       |    8 +-
 .../includes/class-wp-links-list-table.php    |    2 +-
 .../includes/class-wp-list-table-compat.php   |   53 +
 wp-admin/includes/class-wp-list-table.php     |    7 +-
 .../includes/class-wp-media-list-table.php    |    4 +-
 .../includes/class-wp-ms-sites-list-table.php |    2 +-
 .../class-wp-ms-themes-list-table.php         |    7 +-
 .../includes/class-wp-ms-users-list-table.php |    2 +-
 .../class-wp-plugin-install-list-table.php    |   20 +-
 .../includes/class-wp-plugins-list-table.php  |   20 +-
 .../includes/class-wp-posts-list-table.php    |  102 +-
 wp-admin/includes/class-wp-press-this.php     |   22 +-
 wp-admin/includes/class-wp-site-icon.php      |    5 -
 .../includes/class-wp-terms-list-table.php    |   52 +-
 .../class-wp-theme-install-list-table.php     |   41 +-
 .../includes/class-wp-themes-list-table.php   |    5 +-
 wp-admin/includes/class-wp-upgrader-skins.php |    2 +
 wp-admin/includes/class-wp-upgrader.php       |    4 +-
 .../includes/class-wp-users-list-table.php    |    2 +-
 wp-admin/includes/credits.php                 |    8 +-
 wp-admin/includes/dashboard.php               |   21 +-
 wp-admin/includes/export.php                  |   36 +-
 wp-admin/includes/file.php                    |    7 +-
 wp-admin/includes/image-edit.php              |   52 +-
 wp-admin/includes/image.php                   |   95 +-
 wp-admin/includes/import.php                  |    4 +-
 wp-admin/includes/list-table.php              |   47 +-
 wp-admin/includes/media.php                   |   56 +-
 wp-admin/includes/meta-boxes.php              |   90 +-
 wp-admin/includes/misc.php                    |    2 +-
 wp-admin/includes/ms.php                      |   29 +-
 wp-admin/includes/nav-menu.php                |   54 +-
 wp-admin/includes/network.php                 |   14 +-
 wp-admin/includes/plugin-install.php          |   66 +-
 wp-admin/includes/plugin.php                  |   65 +-
 wp-admin/includes/post.php                    |   54 +-
 wp-admin/includes/revision.php                |    8 +-
 wp-admin/includes/schema.php                  |    4 +-
 wp-admin/includes/template.php                |   66 +-
 wp-admin/includes/theme-install.php           |    6 +-
 wp-admin/includes/theme.php                   |   47 +-
 wp-admin/includes/translation-install.php     |   27 +-
 wp-admin/includes/update-core.php             |   33 +-
 wp-admin/includes/update.php                  |   10 +-
 wp-admin/includes/upgrade.php                 |   21 +-
 wp-admin/includes/user.php                    |   16 +-
 wp-admin/includes/widgets.php                 |    4 +-
 wp-admin/index.php                            |    5 +-
 wp-admin/install.php                          |   28 +-
 wp-admin/js/bookmarklet.min.js                |    2 +-
 wp-admin/js/color-picker.js                   |   34 +-
 wp-admin/js/color-picker.min.js               |    2 +-
 wp-admin/js/common.js                         |  150 +-
 wp-admin/js/common.min.js                     |    2 +-
 wp-admin/js/custom-background.js              |   16 +-
 wp-admin/js/custom-background.min.js          |    2 +-
 wp-admin/js/customize-controls.js             | 2334 ++++++---
 wp-admin/js/customize-controls.min.js         |    4 +-
 wp-admin/js/customize-nav-menus.js            |  485 +-
 wp-admin/js/customize-nav-menus.min.js        |    4 +-
 wp-admin/js/customize-widgets.js              |   73 +-
 wp-admin/js/customize-widgets.min.js          |    2 +-
 wp-admin/js/editor-expand.js                  |    2 +-
 wp-admin/js/editor.js                         |    2 +-
 wp-admin/js/editor.min.js                     |    2 +-
 wp-admin/js/inline-edit-post.js               |   14 +-
 wp-admin/js/inline-edit-post.min.js           |    2 +-
 wp-admin/js/inline-edit-tax.js                |  130 +-
 wp-admin/js/iris.min.js                       |    6 +-
 wp-admin/js/media-gallery.js                  |   19 +-
 wp-admin/js/nav-menu.js                       |   95 +-
 wp-admin/js/nav-menu.min.js                   |    2 +-
 wp-admin/js/post.js                           |  665 ++-
 wp-admin/js/post.min.js                       |    2 +-
 wp-admin/js/postbox.js                        |  200 +-
 wp-admin/js/tags-box.js                       |  157 +-
 wp-admin/js/tags-box.min.js                   |    2 +-
 wp-admin/js/tags-suggest.js                   |  183 +
 wp-admin/js/tags-suggest.min.js               |    1 +
 wp-admin/js/theme.js                          |   46 +-
 wp-admin/js/theme.min.js                      |    2 +-
 wp-admin/js/updates.js                        |  146 +-
 wp-admin/js/updates.min.js                    |    4 +-
 wp-admin/js/user-profile.js                   |   10 +-
 wp-admin/js/user-profile.min.js               |    2 +-
 wp-admin/js/widgets.js                        |    4 +-
 wp-admin/js/widgets.min.js                    |    2 +-
 wp-admin/js/word-count.js                     |  156 +-
 wp-admin/link-manager.php                     |   16 +-
 wp-admin/link-parse-opml.php                  |    5 +
 wp-admin/media-new.php                        |    4 +-
 wp-admin/media-upload.php                     |    4 +-
 wp-admin/media.php                            |    4 +-
 wp-admin/menu-header.php                      |    8 +-
 wp-admin/menu.php                             |    2 +-
 wp-admin/ms-delete-site.php                   |   22 +-
 wp-admin/my-sites.php                         |    9 +-
 wp-admin/nav-menus.php                        |   33 +-
 wp-admin/network.php                          |   10 +-
 wp-admin/network/about.php                    |    3 -
 wp-admin/network/admin.php                    |    4 +-
 wp-admin/network/credits.php                  |    3 -
 wp-admin/network/edit.php                     |    3 -
 wp-admin/network/freedoms.php                 |    3 -
 wp-admin/network/index.php                    |    7 +-
 wp-admin/network/menu.php                     |    2 +-
 wp-admin/network/plugin-editor.php            |    3 -
 wp-admin/network/plugin-install.php           |    3 -
 wp-admin/network/plugins.php                  |    3 -
 wp-admin/network/profile.php                  |    3 -
 wp-admin/network/settings.php                 |   17 +-
 wp-admin/network/setup.php                    |    3 -
 wp-admin/network/site-info.php                |   15 +-
 wp-admin/network/site-new.php                 |   35 +-
 wp-admin/network/site-settings.php            |   10 +-
 wp-admin/network/site-themes.php              |   33 +-
 wp-admin/network/site-users.php               |   31 +-
 wp-admin/network/sites.php                    |   25 +-
 wp-admin/network/theme-editor.php             |    3 -
 wp-admin/network/theme-install.php            |    3 -
 wp-admin/network/themes.php                   |   27 +-
 wp-admin/network/update-core.php              |    3 -
 wp-admin/network/update.php                   |    3 -
 wp-admin/network/upgrade.php                  |   29 +-
 wp-admin/network/user-edit.php                |    3 -
 wp-admin/network/user-new.php                 |    7 +-
 wp-admin/network/users.php                    |   20 +-
 wp-admin/options-discussion.php               |    5 +-
 wp-admin/options-general.php                  |   10 +-
 wp-admin/options-media.php                    |    4 +-
 wp-admin/options-permalink.php                |    6 +-
 wp-admin/options-reading.php                  |    4 +-
 wp-admin/options-writing.php                  |    4 +-
 wp-admin/options.php                          |   22 +-
 wp-admin/plugin-editor.php                    |   70 +-
 wp-admin/plugin-install.php                   |   15 +-
 wp-admin/plugins.php                          |   26 +-
 wp-admin/press-this.php                       |   11 +-
 wp-admin/revision.php                         |    5 +-
 wp-admin/setup-config.php                     |    5 +-
 wp-admin/term.php                             |    4 +-
 wp-admin/theme-editor.php                     |   16 +-
 wp-admin/theme-install.php                    |   62 +-
 wp-admin/themes.php                           |   46 +-
 wp-admin/tools.php                            |    8 +-
 wp-admin/update-core.php                      |   75 +-
 wp-admin/upload.php                           |   11 +-
 wp-admin/user-edit.php                        |   57 +-
 wp-admin/user-new.php                         |   40 +-
 wp-admin/users.php                            |   37 +-
 wp-admin/widgets.php                          |   12 +-
 wp-comments-post.php                          |    7 +-
 wp-content/themes/twentyfifteen/readme.txt    |    9 +-
 wp-content/themes/twentyfifteen/style.css     |    2 +-
 wp-content/themes/twentyseventeen/404.php     |   34 +
 wp-content/themes/twentyseventeen/README.txt  |   66 +
 wp-content/themes/twentyseventeen/archive.php |   61 +
 .../assets/css/colors-dark.css                |  560 +++
 .../assets/css/editor-style.css               |  600 +++
 .../themes/twentyseventeen/assets/css/ie8.css |  225 +
 .../themes/twentyseventeen/assets/css/ie9.css |   43 +
 .../twentyseventeen/assets/images/coffee.jpg  |  Bin 0 -> 117713 bytes
 .../assets/images/espresso.jpg                |  Bin 0 -> 93540 bytes
 .../twentyseventeen/assets/images/header.jpg  |  Bin 0 -> 114854 bytes
 .../assets/images/sandwich.jpg                |  Bin 0 -> 171858 bytes
 .../assets/images/svg-icons.svg               |  148 +
 .../assets/js/customize-controls.js           |   34 +
 .../assets/js/customize-preview.js            |  150 +
 .../twentyseventeen/assets/js/global.js       |  249 +
 .../themes/twentyseventeen/assets/js/html5.js |  326 ++
 .../assets/js/jquery.scrollTo.js              |  209 +
 .../twentyseventeen/assets/js/navigation.js   |  109 +
 .../assets/js/skip-link-focus-fix.js          |   31 +
 .../themes/twentyseventeen/comments.php       |   82 +
 wp-content/themes/twentyseventeen/footer.php  |   47 +
 .../themes/twentyseventeen/front-page.php     |   54 +
 .../themes/twentyseventeen/functions.php      |  527 ++
 wp-content/themes/twentyseventeen/header.php  |   53 +
 .../twentyseventeen/inc/back-compat.php       |   69 +
 .../twentyseventeen/inc/color-patterns.php    |  574 +++
 .../twentyseventeen/inc/custom-header.php     |  120 +
 .../themes/twentyseventeen/inc/customizer.php |  206 +
 .../twentyseventeen/inc/icon-functions.php    |  218 +
 .../inc/template-functions.php                |  102 +
 .../twentyseventeen/inc/template-tags.php     |  196 +
 wp-content/themes/twentyseventeen/index.php   |   67 +
 wp-content/themes/twentyseventeen/page.php    |   41 +
 wp-content/themes/twentyseventeen/rtl.css     |  546 +++
 .../themes/twentyseventeen/screenshot.png     |  Bin 0 -> 363833 bytes
 wp-content/themes/twentyseventeen/search.php  |   62 +
 .../themes/twentyseventeen/searchform.php     |   20 +
 wp-content/themes/twentyseventeen/sidebar.php |   20 +
 wp-content/themes/twentyseventeen/single.php  |   43 +
 wp-content/themes/twentyseventeen/style.css   | 4235 +++++++++++++++++
 .../template-parts/footer/footer-widgets.php  |   32 +
 .../template-parts/footer/site-info.php       |   14 +
 .../template-parts/header/header-image.php    |   20 +
 .../template-parts/header/site-branding.php   |   35 +
 .../navigation/navigation-top.php             |   22 +
 .../page/content-front-page-panels.php        |   79 +
 .../page/content-front-page.php               |   53 +
 .../template-parts/page/content-page.php      |   30 +
 .../template-parts/post/content-audio.php     |   99 +
 .../template-parts/post/content-excerpt.php   |   40 +
 .../template-parts/post/content-gallery.php   |   85 +
 .../template-parts/post/content-image.php     |   75 +
 .../template-parts/post/content-none.php      |   33 +
 .../template-parts/post/content-video.php     |   97 +
 .../template-parts/post/content.php           |   71 +
 wp-includes/IXR/class-IXR-base64.php          |   32 +
 wp-includes/IXR/class-IXR-client.php          |  166 +
 wp-includes/IXR/class-IXR-clientmulticall.php |   44 +
 wp-includes/IXR/class-IXR-date.php            |   74 +
 wp-includes/IXR/class-IXR-error.php           |   53 +
 .../IXR/class-IXR-introspectionserver.php     |  174 +
 wp-includes/IXR/class-IXR-message.php         |  234 +
 wp-includes/IXR/class-IXR-request.php         |   54 +
 wp-includes/IXR/class-IXR-server.php          |  225 +
 wp-includes/IXR/class-IXR-value.php           |  138 +
 wp-includes/Requests/IRI.php                  |    5 +-
 wp-includes/Requests/Transport/cURL.php       |    7 +-
 wp-includes/Requests/Transport/fsockopen.php  |    7 +-
 wp-includes/admin-bar.php                     |   67 +-
 wp-includes/atomlib.php                       |    5 +
 wp-includes/author-template.php               |   18 +-
 wp-includes/bookmark.php                      |    7 +-
 wp-includes/cache.php                         |   12 +-
 wp-includes/capabilities.php                  |  158 +-
 wp-includes/category-template.php             |   56 +-
 wp-includes/category.php                      |   19 +-
 wp-includes/class-IXR.php                     | 1182 +----
 wp-includes/class-feed.php                    |  279 +-
 wp-includes/class-http.php                    |   17 +-
 wp-includes/class-oembed.php                  |  125 +-
 wp-includes/class-phpmailer.php               |    2 +-
 wp-includes/class-pop3.php                    |    2 +-
 wp-includes/class-requests.php                |    6 +-
 wp-includes/class-walker-comment.php          |   14 +-
 wp-includes/class-walker-nav-menu.php         |  114 +-
 wp-includes/class-walker-page.php             |   42 +-
 wp-includes/class-wp-ajax-response.php        |    2 +-
 wp-includes/class-wp-comment-query.php        |   31 +-
 wp-includes/class-wp-comment.php              |    5 +-
 wp-includes/class-wp-customize-control.php    |   68 +-
 wp-includes/class-wp-customize-manager.php    | 2734 +++++++++--
 wp-includes/class-wp-customize-nav-menus.php  |  506 +-
 wp-includes/class-wp-customize-section.php    |   29 +-
 wp-includes/class-wp-customize-setting.php    |   11 +
 wp-includes/class-wp-customize-widgets.php    |   24 +-
 wp-includes/class-wp-dependency.php           |  104 +
 wp-includes/class-wp-editor.php               |  148 +-
 wp-includes/class-wp-embed.php                |    1 -
 wp-includes/class-wp-error.php                |   14 -
 wp-includes/class-wp-feed-cache-transient.php |  141 +
 wp-includes/class-wp-feed-cache.php           |   33 +
 wp-includes/class-wp-hook.php                 |  535 +++
 wp-includes/class-wp-http-requests-hooks.php  |   76 +
 .../class-wp-http-requests-response.php       |    9 +-
 wp-includes/class-wp-http-response.php        |    4 +-
 wp-includes/class-wp-image-editor-imagick.php |   36 +-
 wp-includes/class-wp-image-editor.php         |   13 +-
 wp-includes/class-wp-list-util.php            |  267 ++
 wp-includes/class-wp-locale-switcher.php      |  240 +
 wp-includes/class-wp-locale.php               |   11 +-
 wp-includes/class-wp-matchesmapregex.php      |   97 +
 wp-includes/class-wp-network-query.php        |   14 +-
 wp-includes/class-wp-post-type.php            |    2 +-
 wp-includes/class-wp-post.php                 |    8 +-
 wp-includes/class-wp-query.php                | 4107 ++++++++++++++++
 wp-includes/class-wp-rewrite.php              |    6 +-
 wp-includes/class-wp-roles.php                |   36 +-
 wp-includes/class-wp-session-tokens.php       |  317 ++
 wp-includes/class-wp-simplepie-file.php       |   72 +
 .../class-wp-simplepie-sanitize-kses.php      |   59 +
 wp-includes/class-wp-site-query.php           |   16 +-
 wp-includes/class-wp-site.php                 |   15 +-
 wp-includes/class-wp-taxonomy.php             |  416 ++
 wp-includes/class-wp-term-query.php           |  139 +-
 wp-includes/class-wp-term.php                 |    6 +-
 .../class-wp-text-diff-renderer-inline.php    |   33 +
 .../class-wp-text-diff-renderer-table.php     |  509 ++
 wp-includes/class-wp-theme.php                |  108 +-
 .../class-wp-user-meta-session-tokens.php     |  139 +
 wp-includes/class-wp-user-query.php           |   80 +-
 wp-includes/class-wp-user.php                 |    2 +
 wp-includes/class-wp-widget.php               |   22 +-
 wp-includes/class-wp-xmlrpc-server.php        |  135 +-
 wp-includes/class-wp.php                      |  134 +-
 wp-includes/class.wp-dependencies.php         |   99 +-
 wp-includes/comment-template.php              |  332 +-
 wp-includes/comment.php                       |  364 +-
 wp-includes/compat.php                        |    2 +-
 wp-includes/cron.php                          |   79 +-
 wp-includes/css/admin-bar-rtl.css             |    1 +
 wp-includes/css/admin-bar-rtl.min.css         |    2 +-
 wp-includes/css/admin-bar.css                 |    1 +
 wp-includes/css/admin-bar.min.css             |    2 +-
 wp-includes/css/customize-preview-rtl.css     |  267 ++
 wp-includes/css/customize-preview-rtl.min.css |    1 +
 wp-includes/css/customize-preview.css         |  255 +
 wp-includes/css/customize-preview.min.css     |    2 +-
 wp-includes/css/editor-rtl.css                |   27 +-
 wp-includes/css/editor-rtl.min.css            |    2 +-
 wp-includes/css/editor.css                    |   27 +-
 wp-includes/css/editor.min.css                |    2 +-
 wp-includes/css/wp-embed-template.css         |    2 +-
 ...-wp-customize-background-image-control.php |    2 +
 ...-customize-background-position-control.php |   87 +
 .../class-wp-customize-color-control.php      |   26 +-
 .../class-wp-customize-custom-css-setting.php |  373 ++
 ...lass-wp-customize-header-image-control.php |   20 +-
 ...lass-wp-customize-header-image-setting.php |    9 +
 .../class-wp-customize-nav-menu-control.php   |    4 +-
 ...ass-wp-customize-nav-menu-item-control.php |    9 +-
 ...ass-wp-customize-nav-menu-item-setting.php |  134 +-
 .../class-wp-customize-nav-menu-setting.php   |    9 +-
 .../class-wp-customize-new-menu-section.php   |    2 +-
 .../class-wp-customize-selective-refresh.php  |   12 +-
 .../class-wp-customize-theme-control.php      |    9 +-
 ...class-wp-widget-area-customize-control.php |    2 +-
 wp-includes/date.php                          |    9 +-
 wp-includes/default-constants.php             |    4 +-
 wp-includes/default-filters.php               |   18 +-
 wp-includes/deprecated.php                    |  142 +-
 wp-includes/embed.php                         |   33 +-
 wp-includes/feed-atom-comments.php            |   17 +-
 wp-includes/feed-atom.php                     |    5 +-
 wp-includes/feed-rdf.php                      |    5 +-
 wp-includes/feed-rss.php                      |    5 +-
 wp-includes/feed-rss2-comments.php            |   17 +-
 wp-includes/feed-rss2.php                     |    5 +-
 wp-includes/feed.php                          |   17 +-
 wp-includes/formatting.php                    |  480 +-
 wp-includes/functions.php                     |  444 +-
 wp-includes/functions.wp-scripts.php          |   14 +-
 wp-includes/functions.wp-styles.php           |    3 +-
 wp-includes/general-template.php              |  185 +-
 wp-includes/http.php                          |  138 +-
 wp-includes/js/autosave.js                    |   13 +-
 wp-includes/js/autosave.min.js                |    2 +-
 wp-includes/js/customize-base.js              |   87 +-
 wp-includes/js/customize-base.min.js          |    2 +-
 wp-includes/js/customize-loader.js            |   31 +-
 wp-includes/js/customize-loader.min.js        |    2 +-
 wp-includes/js/customize-preview-nav-menus.js |   59 +-
 .../js/customize-preview-nav-menus.min.js     |    2 +-
 wp-includes/js/customize-preview-widgets.js   |   12 +-
 .../js/customize-preview-widgets.min.js       |    2 +-
 wp-includes/js/customize-preview.js           |  750 ++-
 wp-includes/js/customize-preview.min.js       |    2 +-
 wp-includes/js/customize-selective-refresh.js |  178 +-
 .../js/customize-selective-refresh.min.js     |    2 +-
 wp-includes/js/heartbeat.js                   |    2 +-
 wp-includes/js/mce-view.js                    |  223 +-
 wp-includes/js/mce-view.min.js                |    2 +-
 wp-includes/js/media-editor.js                |   32 +-
 wp-includes/js/media-editor.min.js            |    2 +-
 wp-includes/js/media-models.js                |    2 +-
 wp-includes/js/media-views.js                 |   18 +-
 wp-includes/js/media-views.min.js             |    6 +-
 wp-includes/js/swfupload/swfupload.js         |    2 +-
 .../js/tinymce/plugins/charmap/plugin.js      |   12 +-
 .../js/tinymce/plugins/charmap/plugin.min.js  |    2 +-
 .../js/tinymce/plugins/fullscreen/plugin.js   |    2 +-
 .../tinymce/plugins/fullscreen/plugin.min.js  |    2 +-
 .../js/tinymce/plugins/lists/plugin.js        |  258 +-
 .../js/tinymce/plugins/lists/plugin.min.js    |    2 +-
 .../js/tinymce/plugins/paste/plugin.js        |   11 +-
 .../js/tinymce/plugins/paste/plugin.min.js    |    2 +-
 .../js/tinymce/plugins/wordpress/plugin.js    |  129 +-
 .../tinymce/plugins/wordpress/plugin.min.js   |    2 +-
 .../js/tinymce/plugins/wpeditimage/plugin.js  |   99 +-
 .../tinymce/plugins/wpeditimage/plugin.min.js |    2 +-
 .../js/tinymce/plugins/wplink/plugin.js       |    4 +-
 .../js/tinymce/plugins/wplink/plugin.min.js   |    2 +-
 .../tinymce/plugins/wptextpattern/plugin.js   |  138 +-
 .../plugins/wptextpattern/plugin.min.js       |    2 +-
 .../js/tinymce/plugins/wpview/plugin.js       |   10 +-
 .../js/tinymce/plugins/wpview/plugin.min.js   |    2 +-
 .../js/tinymce/skins/wordpress/wp-content.css |   10 +
 wp-includes/js/tinymce/themes/inlite/theme.js |  229 +-
 .../js/tinymce/themes/inlite/theme.min.js     |    2 +-
 wp-includes/js/tinymce/tinymce.min.js         |   27 +-
 wp-includes/js/tinymce/wp-tinymce.js.gz       |  Bin 170397 -> 171848 bytes
 wp-includes/js/twemoji.js                     |    2 +-
 wp-includes/js/twemoji.min.js                 |    2 +-
 wp-includes/js/utils.js                       |    2 +-
 wp-includes/js/wp-ajax-response.js            |    2 +-
 wp-includes/js/wp-ajax-response.min.js        |    2 +-
 wp-includes/js/wp-api.js                      | 1337 ++++++
 wp-includes/js/wp-api.min.js                  |    1 +
 wp-includes/js/wp-custom-header.js            |  450 ++
 wp-includes/js/wp-custom-header.min.js        |    1 +
 wp-includes/js/wp-embed.js                    |   12 +-
 wp-includes/js/wp-embed.min.js                |    2 +-
 wp-includes/js/wp-emoji-loader.js             |   80 +-
 wp-includes/js/wp-emoji-loader.min.js         |    2 +-
 wp-includes/js/wp-emoji-release.min.js        |    2 +-
 wp-includes/js/wp-lists.js                    |  933 ++--
 wp-includes/js/wp-lists.min.js                |    2 +-
 wp-includes/js/wplink.js                      |   82 +-
 wp-includes/js/wplink.min.js                  |    2 +-
 wp-includes/kses.php                          |   16 +-
 wp-includes/l10n.php                          |  279 +-
 wp-includes/link-template.php                 |  184 +-
 wp-includes/load.php                          |   79 +-
 wp-includes/locale.php                        |   17 +-
 wp-includes/media-template.php                |   68 +-
 wp-includes/media.php                         |  149 +-
 wp-includes/meta.php                          |   20 +-
 wp-includes/ms-blogs.php                      |  111 +-
 wp-includes/ms-default-constants.php          |   12 +-
 wp-includes/ms-deprecated.php                 |   13 +-
 wp-includes/ms-files.php                      |    1 +
 wp-includes/ms-functions.php                  |  149 +-
 wp-includes/ms-load.php                       |   74 +-
 wp-includes/nav-menu-template.php             |   83 +-
 wp-includes/nav-menu.php                      |   47 +-
 wp-includes/option.php                        |  492 +-
 wp-includes/pluggable.php                     |   75 +-
 wp-includes/plugin.php                        |  177 +-
 wp-includes/pomo/mo.php                       |   29 +-
 wp-includes/pomo/translations.php             |    2 +-
 wp-includes/post-template.php                 |  333 +-
 wp-includes/post.php                          |  474 +-
 wp-includes/query.php                         | 4126 +---------------
 wp-includes/rest-api.php                      |  512 +-
 .../rest-api/class-wp-rest-request.php        |   65 +-
 wp-includes/rest-api/class-wp-rest-server.php |   78 +-
 .../class-wp-rest-attachments-controller.php  |  749 +++
 .../class-wp-rest-comments-controller.php     | 1609 +++++++
 .../endpoints/class-wp-rest-controller.php    |  603 +++
 ...class-wp-rest-post-statuses-controller.php |  312 ++
 .../class-wp-rest-post-types-controller.php   |  276 ++
 .../class-wp-rest-posts-controller.php        | 2198 +++++++++
 .../class-wp-rest-revisions-controller.php    |  509 ++
 .../class-wp-rest-settings-controller.php     |  319 ++
 .../class-wp-rest-taxonomies-controller.php   |  317 ++
 .../class-wp-rest-terms-controller.php        |  996 ++++
 .../class-wp-rest-users-controller.php        | 1358 ++++++
 .../class-wp-rest-comment-meta-fields.php     |   42 +
 .../fields/class-wp-rest-meta-fields.php      |  470 ++
 .../fields/class-wp-rest-post-meta-fields.php |   65 +
 .../fields/class-wp-rest-term-meta-fields.php |   63 +
 .../fields/class-wp-rest-user-meta-fields.php |   42 +
 wp-includes/revision.php                      |    5 +-
 wp-includes/rss.php                           |   20 +-
 wp-includes/script-loader.php                 |   54 +-
 wp-includes/session.php                       |  437 +-
 wp-includes/shortcodes.php                    |   56 +-
 wp-includes/taxonomy.php                      |  490 +-
 wp-includes/template-loader.php               |    1 -
 wp-includes/template.php                      |  277 +-
 wp-includes/theme.php                         |  927 +++-
 wp-includes/update.php                        |   44 +-
 wp-includes/user.php                          |  172 +-
 wp-includes/version.php                       |    6 +-
 wp-includes/widgets.php                       |    4 +-
 .../widgets/class-wp-nav-menu-widget.php      |    2 +-
 .../widgets/class-wp-widget-tag-cloud.php     |    2 +-
 wp-includes/wp-db.php                         |   55 +-
 wp-includes/wp-diff.php                       |  533 +--
 wp-links-opml.php                             |    5 +-
 wp-load.php                                   |    2 -
 wp-login.php                                  |   35 +-
 wp-mail.php                                   |    3 +-
 wp-settings.php                               |   54 +-
 wp-signup.php                                 |   14 +-
 wp-trackback.php                              |   20 +-
 xmlrpc.php                                    |    2 +-
 600 files changed, 52610 insertions(+), 15375 deletions(-)
 create mode 100644 wp-admin/includes/class-wp-list-table-compat.php
 create mode 100644 wp-admin/js/tags-suggest.js
 create mode 100644 wp-admin/js/tags-suggest.min.js
 create mode 100644 wp-content/themes/twentyseventeen/404.php
 create mode 100644 wp-content/themes/twentyseventeen/README.txt
 create mode 100644 wp-content/themes/twentyseventeen/archive.php
 create mode 100644 wp-content/themes/twentyseventeen/assets/css/colors-dark.css
 create mode 100644 wp-content/themes/twentyseventeen/assets/css/editor-style.css
 create mode 100644 wp-content/themes/twentyseventeen/assets/css/ie8.css
 create mode 100644 wp-content/themes/twentyseventeen/assets/css/ie9.css
 create mode 100644 wp-content/themes/twentyseventeen/assets/images/coffee.jpg
 create mode 100644 wp-content/themes/twentyseventeen/assets/images/espresso.jpg
 create mode 100644 wp-content/themes/twentyseventeen/assets/images/header.jpg
 create mode 100644 wp-content/themes/twentyseventeen/assets/images/sandwich.jpg
 create mode 100644 wp-content/themes/twentyseventeen/assets/images/svg-icons.svg
 create mode 100644 wp-content/themes/twentyseventeen/assets/js/customize-controls.js
 create mode 100644 wp-content/themes/twentyseventeen/assets/js/customize-preview.js
 create mode 100644 wp-content/themes/twentyseventeen/assets/js/global.js
 create mode 100644 wp-content/themes/twentyseventeen/assets/js/html5.js
 create mode 100644 wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js
 create mode 100644 wp-content/themes/twentyseventeen/assets/js/navigation.js
 create mode 100644 wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js
 create mode 100644 wp-content/themes/twentyseventeen/comments.php
 create mode 100644 wp-content/themes/twentyseventeen/footer.php
 create mode 100644 wp-content/themes/twentyseventeen/front-page.php
 create mode 100644 wp-content/themes/twentyseventeen/functions.php
 create mode 100644 wp-content/themes/twentyseventeen/header.php
 create mode 100644 wp-content/themes/twentyseventeen/inc/back-compat.php
 create mode 100644 wp-content/themes/twentyseventeen/inc/color-patterns.php
 create mode 100644 wp-content/themes/twentyseventeen/inc/custom-header.php
 create mode 100644 wp-content/themes/twentyseventeen/inc/customizer.php
 create mode 100644 wp-content/themes/twentyseventeen/inc/icon-functions.php
 create mode 100644 wp-content/themes/twentyseventeen/inc/template-functions.php
 create mode 100644 wp-content/themes/twentyseventeen/inc/template-tags.php
 create mode 100644 wp-content/themes/twentyseventeen/index.php
 create mode 100644 wp-content/themes/twentyseventeen/page.php
 create mode 100644 wp-content/themes/twentyseventeen/rtl.css
 create mode 100644 wp-content/themes/twentyseventeen/screenshot.png
 create mode 100644 wp-content/themes/twentyseventeen/search.php
 create mode 100644 wp-content/themes/twentyseventeen/searchform.php
 create mode 100644 wp-content/themes/twentyseventeen/sidebar.php
 create mode 100644 wp-content/themes/twentyseventeen/single.php
 create mode 100644 wp-content/themes/twentyseventeen/style.css
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/footer/footer-widgets.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/footer/site-info.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/header/header-image.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/header/site-branding.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/page/content-front-page-panels.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/page/content-front-page.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/page/content-page.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/post/content-audio.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/post/content-excerpt.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/post/content-gallery.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/post/content-image.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/post/content-none.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/post/content-video.php
 create mode 100644 wp-content/themes/twentyseventeen/template-parts/post/content.php
 create mode 100644 wp-includes/IXR/class-IXR-base64.php
 create mode 100644 wp-includes/IXR/class-IXR-client.php
 create mode 100644 wp-includes/IXR/class-IXR-clientmulticall.php
 create mode 100644 wp-includes/IXR/class-IXR-date.php
 create mode 100644 wp-includes/IXR/class-IXR-error.php
 create mode 100644 wp-includes/IXR/class-IXR-introspectionserver.php
 create mode 100644 wp-includes/IXR/class-IXR-message.php
 create mode 100644 wp-includes/IXR/class-IXR-request.php
 create mode 100644 wp-includes/IXR/class-IXR-server.php
 create mode 100644 wp-includes/IXR/class-IXR-value.php
 create mode 100644 wp-includes/class-wp-dependency.php
 create mode 100644 wp-includes/class-wp-feed-cache-transient.php
 create mode 100644 wp-includes/class-wp-feed-cache.php
 create mode 100644 wp-includes/class-wp-hook.php
 create mode 100644 wp-includes/class-wp-http-requests-hooks.php
 create mode 100644 wp-includes/class-wp-list-util.php
 create mode 100644 wp-includes/class-wp-locale-switcher.php
 create mode 100644 wp-includes/class-wp-matchesmapregex.php
 create mode 100644 wp-includes/class-wp-query.php
 create mode 100644 wp-includes/class-wp-session-tokens.php
 create mode 100644 wp-includes/class-wp-simplepie-file.php
 create mode 100644 wp-includes/class-wp-simplepie-sanitize-kses.php
 create mode 100644 wp-includes/class-wp-taxonomy.php
 create mode 100644 wp-includes/class-wp-text-diff-renderer-inline.php
 create mode 100644 wp-includes/class-wp-text-diff-renderer-table.php
 create mode 100644 wp-includes/class-wp-user-meta-session-tokens.php
 create mode 100644 wp-includes/css/customize-preview-rtl.css
 create mode 100644 wp-includes/css/customize-preview-rtl.min.css
 create mode 100644 wp-includes/customize/class-wp-customize-background-position-control.php
 create mode 100644 wp-includes/customize/class-wp-customize-custom-css-setting.php
 create mode 100644 wp-includes/js/wp-api.js
 create mode 100644 wp-includes/js/wp-api.min.js
 create mode 100644 wp-includes/js/wp-custom-header.js
 create mode 100644 wp-includes/js/wp-custom-header.min.js
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-settings-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php
 create mode 100644 wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php
 create mode 100644 wp-includes/rest-api/fields/class-wp-rest-comment-meta-fields.php
 create mode 100644 wp-includes/rest-api/fields/class-wp-rest-meta-fields.php
 create mode 100644 wp-includes/rest-api/fields/class-wp-rest-post-meta-fields.php
 create mode 100644 wp-includes/rest-api/fields/class-wp-rest-term-meta-fields.php
 create mode 100644 wp-includes/rest-api/fields/class-wp-rest-user-meta-fields.php

diff --git a/readme.html b/readme.html
index 63b2598d2..11a4ca1d4 100644
--- a/readme.html
+++ b/readme.html
@@ -9,7 +9,7 @@
 <body>
 <h1 id="logo">
 	<a href="https://wordpress.org/"><img alt="WordPress" src="wp-admin/images/wordpress-logo.png" /></a>
-	<br /> Version 4.6.1
+	<br /> Version 4.7
 </h1>
 <p style="text-align: center">Semantic Personal Publishing Platform</p>
 
@@ -59,9 +59,10 @@
 
 <h3>Recommendations</h3>
 <ul>
-	<li><a href="https://secure.php.net/">PHP</a> version <strong>5.6</strong> or higher.</li>
+	<li><a href="https://secure.php.net/">PHP</a> version <strong>7</strong> or higher.</li>
 	<li><a href="https://www.mysql.com/">MySQL</a> version <strong>5.6</strong> or higher.</li>
 	<li>The <a href="https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li>
+	<li><a href="https://wordpress.org/news/2016/12/moving-toward-ssl/">HTTPS</a> support.</li>
 	<li>A link to <a href="https://wordpress.org/">wordpress.org</a> on your site.</li>
 </ul>
 
diff --git a/wp-activate.php b/wp-activate.php
index 0f6181a5d..b13279af6 100644
--- a/wp-activate.php
+++ b/wp-activate.php
@@ -125,7 +125,7 @@ get_header( 'wp-activate' );
 				<?php
 			}
 		} else {
-			$url = isset( $result['blog_id'] ) ? get_blogaddress_by_id( (int) $result['blog_id'] ) : '';
+			$url = isset( $result['blog_id'] ) ? get_home_url( (int) $result['blog_id'] ) : '';
 			$user = get_userdata( (int) $result['user_id'] );
 			?>
 			<h2><?php _e('Your account is now active!'); ?></h2>
diff --git a/wp-admin/about.php b/wp-admin/about.php
index 6e77b1b43..555903bcd 100644
--- a/wp-admin/about.php
+++ b/wp-admin/about.php
@@ -18,38 +18,23 @@ if ( ! wp_is_mobile() ) {
 	) );
 }
 
-/**
- * Replaces the height and width attributes with values for full size.
- *
- * wp_video_shortcode() limits the width to 640px.
- *
- * @since 4.6.0
- * @ignore
- *
- * @param $output Video shortcode HTML output.
- * @return string Filtered HTML content to display video.
- */
-function _wp_override_admin_video_width_limit( $output ) {
-	return str_replace( array( '640', '384' ), array( '1050', '630' ), $output );
-}
-
-$video_url = 'https://videopress.com/embed/GbdhpGF3?hd=true';
-$locale    = str_replace( '_', '-', get_locale() );
-list( $locale ) = explode( '-', $locale );
-if ( 'en' !== $locale ) {
-	$video_url = add_query_arg( 'defaultLangCode', $locale, $video_url );
+$video_url = 'https://videopress.com/embed/AHz0Ca46?hd=true';
+$lang_code = str_replace( '_', '-', get_user_locale() );
+list( $lang_code ) = explode( '-', $lang_code );
+if ( 'en' !== $lang_code ) {
+	$video_url = add_query_arg( 'defaultLangCode', $lang_code, $video_url );
 }
 
 $title = __( 'About' );
 
-list( $display_version ) = explode( '-', $wp_version );
+list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 	<div class="wrap about-wrap">
 		<h1><?php printf( __( 'Welcome to WordPress&nbsp;%s' ), $display_version ); ?></h1>
 
-		<p class="about-text"><?php printf( __( 'Thank you for updating to the latest version. WordPress %s changes a lot behind the scenes to make your WordPress experience even better!' ), $display_version ); ?></p>
+		<p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s helps you get your site set up the way you want it.' ), $display_version ); ?></p>
 		<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
 		<h2 class="nav-tab-wrapper wp-clearfix">
@@ -58,148 +43,187 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 			<a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a>
 		</h2>
 
-		<div class="changelog point-releases">
-			<h3><?php _e( 'Maintenance and Security Release' ); ?></h3>
-			<p><?php printf( _n( '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.',
-				'<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.', 15 ), '4.6.1', number_format_i18n( 15 ) ); ?>
-				<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'https://codex.wordpress.org/Version_4.6.1' ); ?>
-			</p>
-		</div>
-
 		<div class="headline-feature feature-video">
 			<iframe width="1050" height="591" src="<?php echo esc_url( $video_url ); ?>" frameborder="0" allowfullscreen></iframe>
 			<script src="https://videopress.com/videopress-iframe.js"></script>
 		</div>
 
-		<hr>
+		<hr />
+
+		<div class="feature-section one-col">
+			<h2><?php _e( 'Presenting Twenty Seventeen' ); ?></h2>
+			<p class="lead-description"><?php _e( 'A brand new default theme brings your site to life with immersive featured images and video headers.' ); ?></p>
+			<picture>
+				<source media="(min-width: 450px)" srcset="https://s.w.org/images/core/4.7/twenty-seventeen-1600.jpg?v2 1600w, https://s.w.org/images/core/4.7/twenty-seventeen-493.jpg?v2 493w, https://s.w.org/images/core/4.7/twenty-seventeen-663.jpg?v2 663w, https://s.w.org/images/core/4.7/twenty-seventeen-804.jpg?v2 804w, https://s.w.org/images/core/4.7/twenty-seventeen-928.jpg?v2 928w, https://s.w.org/images/core/4.7/twenty-seventeen-1058.jpg?v2 1058w, https://s.w.org/images/core/4.7/twenty-seventeen-1173.jpg?v2 1173w, https://s.w.org/images/core/4.7/twenty-seventeen-1299.jpg?v2 1299w, https://s.w.org/images/core/4.7/twenty-seventeen-1410.jpg?v2 1410w, https://s.w.org/images/core/4.7/twenty-seventeen-1513.jpg?v2 1513w, https://s.w.org/images/core/4.7/twenty-seventeen-1595.jpg?v2 1595w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 782px) calc(100vw - 70px), (max-width: 959px) calc(100vw - 116px), (max-width: 1290px) calc(100vw - 240px), 1050px">
+				<source srcset="https://s.w.org/images/core/4.7/twenty-seventeen-mobile-564.jpg?v2 564w, https://s.w.org/images/core/4.7/twenty-seventeen-mobile-280.jpg?v2 280w, https://s.w.org/images/core/4.7/twenty-seventeen-mobile-372.jpg?v2 372w, https://s.w.org/images/core/4.7/twenty-seventeen-mobile-454.jpg?v2 454w, https://s.w.org/images/core/4.7/twenty-seventeen-mobile-541.jpg?v2 541w" sizes="calc(100vw - 40px)">
+				<img src="https://s.w.org/images/core/4.7/twenty-seventeen-1600.jpg?v2" srcset="https://s.w.org/images/core/4.7/twenty-seventeen-1600.jpg?v2 1600w, https://s.w.org/images/core/4.7/twenty-seventeen-280.jpg?v2 280w, https://s.w.org/images/core/4.7/twenty-seventeen-493.jpg?v2 493w, https://s.w.org/images/core/4.7/twenty-seventeen-663.jpg?v2 663w, https://s.w.org/images/core/4.7/twenty-seventeen-804.jpg?v2 804w, https://s.w.org/images/core/4.7/twenty-seventeen-928.jpg?v2 928w, https://s.w.org/images/core/4.7/twenty-seventeen-1058.jpg?v2 1058w, https://s.w.org/images/core/4.7/twenty-seventeen-1173.jpg?v2 1173w, https://s.w.org/images/core/4.7/twenty-seventeen-1299.jpg?v2 1299w, https://s.w.org/images/core/4.7/twenty-seventeen-1410.jpg?v2 1410w, https://s.w.org/images/core/4.7/twenty-seventeen-1513.jpg?v2 1513w, https://s.w.org/images/core/4.7/twenty-seventeen-1595.jpg?v2 1595w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 782px) calc(100vw - 70px), (max-width: 959px) calc(100vw - 116px), (max-width: 1290px) calc(100vw - 240px), 1050px" alt="" />
+			</picture>
+			<p><?php _e( 'Twenty Seventeen focuses on business sites and features a customizable front page with multiple sections. Personalize it with widgets, navigation, social menus, a logo, custom colors, and more. Our default theme for 2017 works great in many languages, on any device, and for a wide range of users.' ); ?></p>
+		</div>
+
+		<hr />
+
+		<div class="feature-section one-col">
+			<h2><?php _e( 'Your Site, Your Way' ); ?></h2>
+			<p class="lead-description"><?php _e( 'WordPress 4.7 adds new features to the customizer to help take you through the initial setup of a theme, with non-destructive live previews of all your changes in one uninterrupted workflow.' ); ?></p>
+		</div>
 
-		<div class="streamlined-updates feature-section one-col">
-			<h2><?php _e( 'Streamlined Updates' ); ?></h2>
-			<p><?php _e( 'Don&#8217;t lose your place: stay on the same page while you update, install, and delete your plugins and themes.' ); ?></p>
-			<?php
-			if ( ! wp_is_mobile() ) {
-				add_filter( 'wp_video_shortcode', '_wp_override_admin_video_width_limit' );
+		<div class="feature-section two-col">
+			<div class="col">
+				<h3><?php _e( 'Theme Starter Content' ); ?></h3>
+				<p><?php _e( 'To help give you a solid base to build from, individual themes can provide starter content that appears when you go to customize your brand new site. This can range from placing a business information widget in the best location to providing a sample menu with social icon links to a static front page complete with beautiful images. Don&#8217;t worry - nothing new will appear on the live site until you&#8217;re ready to save and publish your initial theme setup.' ); ?></p>
+			</div>
+			<div class="col">
+				<?php
 				echo wp_video_shortcode( array(
-					'mp4'      => 'https://s.w.org/images/core/4.6/streamlined-updates.mp4',
-					'webm'     => 'https://s.w.org/images/core/4.6/streamlined-updates.webm',
-					'poster'   => 'https://s.w.org/images/core/4.6/streamlined-updates-2000.png?v1',
+					'mp4'      => 'https://s.w.org/images/core/4.7/starter-content-v1.mp4',
+					'poster'   => 'https://s.w.org/images/core/4.7/starter-content.jpg?v2',
 					'loop'     => true,
 					'autoplay' => true,
-					'width'    => 1050,
-					'height'   => 630,
-					'class'    => 'wp-video-shortcode feature-video',
+					'width'    => 1140,
+					'height'   => 624,
+					// 'class'    => 'wp-video-shortcode feature-video',
 				) );
-				remove_filter( 'wp_video_shortcode', '_wp_override_admin_video_width_limit' );
-			} else {
-				echo '<img src="https://s.w.org/images/core/4.6/streamlined-updates-1057.png?v1" alt="" srcset="https://s.w.org/images/core/4.6/streamlined-updates-1664.png?v1 1664w, https://s.w.org/images/core/4.6/streamlined-updates-200.png?v1 200w, https://s.w.org/images/core/4.6/streamlined-updates-1057.png?v1 1057w, https://s.w.org/images/core/4.6/streamlined-updates-2000.png?v1 2000w"  sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 782px) calc(100vw - 70px), (max-width: 959px) calc(100vw - 116px), (max-width: 1290px) calc(100vw - 240px), 1050px" />';
-			}
-			?>
+				?>
+			</div>
 		</div>
 
-		<hr />
+		<div class="feature-section two-col">
+			<div class="col">
+				<h3><?php _e( 'Edit Shortcuts' ); ?></h3>
+				<?php
+				echo wp_video_shortcode( array(
+					'mp4'      => 'https://s.w.org/images/core/4.7/edit-shortcuts-v1.mp4',
+					'poster'   => 'https://s.w.org/images/core/4.7/edit-shortcuts.jpg?v2',
+					'loop'     => true,
+					'autoplay' => true,
+					'width'    => 2520,
+					'height'   => 1454,
+					// 'class'    => 'wp-video-shortcode feature-video',
+				) );
+				?>
+				<p><?php _e( 'Visible icons appear to show you which parts of your site can be customized while live previewing. Click on a shortcut and get straight to editing. Paired with starter content, getting started with customizing your site is faster than ever.' );?></p>
+			</div>
+			<div class="col">
+				<h3><?php _e( 'Video Headers' ); ?></h3>
+				<?php
+				echo wp_video_shortcode( array(
+					'mp4'      => 'https://s.w.org/images/core/4.7/header-video-v1.mp4',
+					'poster'   => 'https://s.w.org/images/core/4.7/header-video.jpg?v2',
+					'loop'     => true,
+					'autoplay' => true,
+					'width'    => 2520,
+					'height'   => 1454,
+					// 'class'    => 'wp-video-shortcode feature-video',
+				) );
+				?>
+				<p><?php _e( 'Sometimes a big atmospheric video as a moving header image is just what you need to showcase your wares; go ahead and try it out with Twenty Seventeen. Need some video inspiration? Try searching for sites with video headers available for download and use.' ); ?></p>
+			</div>
+		</div>
 
-		<div class="native-fonts feature-section one-col">
-			<h2><?php _e( 'Native Fonts' ); ?></h2>
-			<p><?php _e( 'The WordPress dashboard now takes advantage of the fonts you already have, making it load faster and letting you feel more at home on whatever device you use.' ); ?></p>
-			<img src="https://s.w.org/images/core/4.6/native-fonts-992.png?v1" alt="" srcset="https://cldup.com/Hqmo5VLb-E.png?v1 922w, https://s.w.org/images/core/4.6/native-fonts-200.png?v1 200w,https://s.w.org/images/core/4.6/native-fonts-371.png?v1 371w,https://s.w.org/images/core/4.6/native-fonts-510.png?v1 510w, https://s.w.org/images/core/4.6/native-fonts-560.png?v1 560w, https://s.w.org/images/core/4.6/native-fonts-781.png?v1 781w, https://s.w.org/images/core/4.6/native-fonts-2000.png?v1 2000w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 782px) calc(100vw - 70px), (max-width: 959px) calc(100vw - 116px), (max-width: 1290px) calc(100vw - 240px), 1050px"/>
+		<div class="feature-section two-col">
+			<div class="col">
+				<h3><?php _e( 'Smoother Menu Building' ); ?></h3>
+				<img src="https://s.w.org/images/core/4.7/nav-menus-760.jpg?v2" srcset="https://s.w.org/images/core/4.7/nav-menus-760.jpg?v2 760w, https://s.w.org/images/core/4.7/nav-menus-280.jpg?v2 280w, https://s.w.org/images/core/4.7/nav-menus-536.jpg?v2 536w, https://s.w.org/images/core/4.7/nav-menus-745.jpg?v2 745w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 781px) calc((100vw - 70px) * .466), (max-width: 959px) calc((100vw - 116px) * .469), (max-width: 1290px) calc((100vw - 240px) * .472), 496px" alt="" />
+				<p><?php _e( 'Many menus for sites contain links to the pages of your site, but what happens when you don&#8217;t have any pages yet? Now you can add new pages while building menus instead of leaving the customizer and abandoning your changes. Once you&#8217;ve published your customizations, you&#8217;ll have new pages ready for you to fill with content.' );?></p>
+			</div>
+			<div class="col">
+				<h3><?php _e( 'Custom CSS' ); ?></h3>
+				<img src="https://s.w.org/images/core/4.7/css-760.jpg?v2" srcset="https://s.w.org/images/core/4.7/css-760.jpg?v2 760w, https://s.w.org/images/core/4.7/css-280.jpg?v2 280w, https://s.w.org/images/core/4.7/css-547.jpg?v2 547w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 781px) calc((100vw - 70px) * .466), (max-width: 959px) calc((100vw - 116px) * .469), (max-width: 1290px) calc((100vw - 240px) * .472), 496px" alt="" />
+				<p><?php _e( 'Sometimes you just need a few visual tweaks to make your site perfect. WordPress 4.7 allows you to add custom CSS and instantly see how your changes affect your site. The live preview allows you to work quickly without page refreshes slowing you down.' ); ?></p>
+			</div>
 		</div>
 
 		<hr />
 
-		<div class="feature-section two-col">
-			<h2><?php _e( 'Editor Improvements' ); ?></h2>
+		<div class="feature-section no-heading two-col">
 			<div class="col">
-				<img src="https://s.w.org/images/core/4.6/inline-link-checker-608.png?v1" alt="" srcset="https://s.w.org/images/core/4.6/inline-link-checker-789.png?v1 789w, https://s.w.org/images/core/4.6/inline-link-checker-200.png?v1 200w, https://s.w.org/images/core/4.6/inline-link-checker-384.png?v1 384w, https://s.w.org/images/core/4.6/inline-link-checker-608.png?v1 608w, https://s.w.org/images/core/4.6/inline-link-checker-992.png?v1 992w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 781px) calc((100vw - 70px) * .466), (max-width: 959px) calc((100vw - 116px) * .469), (max-width: 1290px) calc((100vw - 240px) * .472), 496px"/>
-				<h3><?php _e( 'Inline Link Checker' ); ?></h3>
-				<p><?php
-					printf(
-						/* translators: %s: Home URL appended with 'wordpress.org'  */
-						__( 'Ever accidentally made a link to %s? Now WordPress automatically checks to make sure you didn&#8217;t.' ),
-						home_url( 'wordpress.org' )
-					);
-				?></p>
+				<h3><?php _e( 'PDF Thumbnail Previews' ); ?></h3>
+				<img src="https://s.w.org/images/core/4.7/pdf-760.jpg?v2" srcset="https://s.w.org/images/core/4.7/pdf-760.jpg?v2 760w, https://s.w.org/images/core/4.7/pdf-280.jpg?v2 280w, https://s.w.org/images/core/4.7/pdf-412.jpg?v2 412w, https://s.w.org/images/core/4.7/pdf-516.jpg?v2 516w, https://s.w.org/images/core/4.7/pdf-615.jpg?v2 615w, https://s.w.org/images/core/4.7/pdf-716.jpg?v2 716w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 781px) calc((100vw - 70px) * .466), (max-width: 959px) calc((100vw - 116px) * .469), (max-width: 1290px) calc((100vw - 240px) * .472), 496px" alt="" />
+				<p><?php _e( 'Managing your document collection is easier with WordPress 4.7. Uploading PDFs will generate thumbnail images so you can more easily distinguish between all your documents.' ); ?></p>
 			</div>
 			<div class="col">
-				<img src="https://s.w.org/images/core/4.6/content-recovery-561.png?v1" alt="" srcset="https://s.w.org/images/core/4.6/content-recovery-701.png?v1 701w, https://s.w.org/images/core/4.6/content-recovery-200.png?v1 200w, https://s.w.org/images/core/4.6/content-recovery-400.png?v1 400w, https://s.w.org/images/core/4.6/content-recovery-561.png?v1 561w, https://s.w.org/images/core/4.6/content-recovery-992.png?v1 992w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 781px) calc((100vw - 70px) * .466), (max-width: 959px) calc((100vw - 116px) * .469), (max-width: 1290px) calc((100vw - 240px) * .472), 496px"/>
-				<h3><?php _e( 'Content Recovery' ); ?></h3>
-				<p><?php _e( 'As you type, WordPress saves your content to the browser. Recovering saved content is even easier with WordPress 4.6.' ); ?></p>
+				<h3><?php _e( 'Dashboard in your language' ); ?></h3>
+				<img src="https://s.w.org/images/core/4.7/language-760.jpg?v2" srcset="https://s.w.org/images/core/4.7/language-760.jpg?v2 760w, https://s.w.org/images/core/4.7/language-280.jpg?v2 280w, https://s.w.org/images/core/4.7/language-568.jpg?v2 568w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 781px) calc((100vw - 70px) * .466), (max-width: 959px) calc((100vw - 116px) * .469), (max-width: 1290px) calc((100vw - 240px) * .472), 496px" alt="" />
+				<p><?php _e( 'Just because your site is in one language doesn&#8217;t mean that everybody helping manage it prefers that language for their admin. Add more languages to your site and a user language option will show up in your user&#8217;s profiles.' );?></p>
 			</div>
 		</div>
 
 		<hr />
 
+		<div class="rest-api feature-section one-col">
+			<h2><?php _e( 'Introducing REST API Content Endpoints' ); ?></h2>
+			<p class="lead-description"><?php _e( 'WordPress 4.7 comes with REST API endpoints for posts, comments, terms, users, meta, and settings.' ); ?></p>
+			<img src="https://s.w.org/images/core/4.7/api-1559.jpg?v2" srcset="https://s.w.org/images/core/4.7/api-2100.jpg?v2 2100w, https://s.w.org/images/core/4.7/api-280.jpg?v2 280w, https://s.w.org/images/core/4.7/api-1034.jpg?v2 1034w, https://s.w.org/images/core/4.7/api-1559.jpg?v2 1559w, https://s.w.org/images/core/4.7/api-2032.jpg?v2 2032w" sizes="(max-width: 500px) calc(100vw - 40px), (max-width: 782px) calc(100vw - 70px), (max-width: 959px) calc(100vw - 116px), (max-width: 1290px) calc(100vw - 240px), 1050px" alt="" />
+			<p><?php
+				printf(
+					/* translators: %s: https://developer.wordpress.org/rest-api/  */
+					__( 'Content endpoints provide machine-readable external access to your WordPress site with a clear, standards-driven interface, paving the way for new and innovative methods of interacting with sites through plugins, themes, apps, and beyond. Ready to get started with development? <a href="%s">Check out the REST API reference.</a>' ),
+					'https://developer.wordpress.org/rest-api/reference/'
+				);
+			?></p>
+		</div>
+
+		<hr />
+
 		<div class="changelog">
-			<h2><?php _e( 'Under the Hood' ); ?></h2>
+			<h2><?php
+				printf(
+					/* translators: %s: smiling face with smiling eyes emoji */
+					__( 'Even More Developer Happiness %s' ),
+					'&#x1F60A'
+				);
+			?></h2>
 
 			<div class="under-the-hood three-col">
 				<div class="col">
-					<h3><?php _e( 'Resource Hints' ); ?></h3>
-					<p><?php
-						printf(
-							/* translators: %s: https://make.wordpress.org/core/2016/07/06/resource-hints-in-4-6/ */
-							__( '<a href="%s">Resource hints help browsers</a> decide which resources to fetch and preprocess. WordPress 4.6 adds them automatically for your styles and scripts making your site even faster.' ),
-							'https://make.wordpress.org/core/2016/07/06/resource-hints-in-4-6/'
-						);
-					?></p>
-				</div>
-				<div class="col">
-					<h3><?php _e( 'Robust Requests' ); ?></h3>
-					<p><?php _e( 'The HTTP API now leverages the Requests library, improving HTTP standard support and adding case-insensitive headers, parallel HTTP requests, and support for Internationalized Domain Names.' ); ?></p>
+					<h3><a href="https://make.wordpress.org/core/2016/11/03/post-type-templates-in-4-7/"><?php _e( 'Post Type Templates' ); ?></a></h3>
+					<p><?php _e( 'By opening up the page template functionality to all post types, theme developers have even more flexibility with the WordPress template hierarchy.' ); ?></p>
 				</div>
 				<div class="col">
-					<h3><?php
-						/* translators: 1: WP_Term_Query, 2: WP_Post_Type */
-						printf( __( '%1$s and %2$s' ), '<code>WP_Term_Query</code>', '<code>WP_Post_Type</code>' );
-					?></h3>
+					<h3><?php _e( 'More Theme API Goodies' ); ?></h3>
 					<p><?php
 						printf(
-							/* translators: 1: WP_Term_Query, 2: WP_Post_Type */
-							__( 'A new %1$s class adds flexibility to query term information while a new %2$s object makes interacting with post types more predictable.' ),
-							'<code>WP_Term_Query</code>',
-							'<code>WP_Post_Type</code>'
+							/* translators: %s: https://make.wordpress.org/core/2016/09/09/new-functions-hooks-and-behaviour-for-theme-developers-in-wordpress-4-7/  */
+							__( 'WordPress 4.7 includes <a href="%s">new functions, hooks, and behavior</a> for theme developers.' ),
+							'https://make.wordpress.org/core/2016/09/09/new-functions-hooks-and-behaviour-for-theme-developers-in-wordpress-4-7/'
 						);
 					?></p>
 				</div>
+				<div class="col">
+					<h3><a href="https://make.wordpress.org/core/2016/10/04/custom-bulk-actions/"><?php _e( 'Custom Bulk Actions' ); ?></a></h3>
+					<p><?php _e( 'List tables, now with more than bulk edit and delete.' ); ?></p>
+				</div>
 			</div>
 
 			<div class="under-the-hood three-col">
 				<div class="col">
-					<h3><?php _e( 'Meta Registration API' ); ?></h3>
+					<h3><a href="https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/"><code>WP_Hook</code></a></h3>
 					<p><?php
 						printf(
-							/* translators: %s: https://make.wordpress.org/core/2016/07/08/enhancing-register_meta-in-4-6/  */
-							__( 'The Meta Registration API <a href="%s">has been expanded</a> to support types, descriptions, and REST API visibility.' ),
-							'https://make.wordpress.org/core/2016/07/08/enhancing-register_meta-in-4-6/'
+							/* translators: %s: https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/  */
+							__( 'The code that lies beneath actions and filters has been overhauled and modernized, fixing bugs along the way.' ),
+							'https://make.wordpress.org/core/2016/09/08/wp_hook-next-generation-actions-and-filters/'
 						);
 					?></p>
 				</div>
 				<div class="col">
-					<h3><?php _e( 'Translations On Demand' ); ?></h3>
-					<p><?php _e( 'WordPress will install and use the newest language packs for your plugins and themes as soon as they&#8217;re available from <a href="https://translate.wordpress.org/">WordPress.org&#8217;s community of translators</a>.' ); ?></p>
-				</div>
-				<div class="col">
-					<h3><?php _e( 'JavaScript Library Updates' ); ?></h3>
-					<p><?php _e( 'Masonry 3.3.2, imagesLoaded 3.2.0, MediaElement.js 2.22.0, TinyMCE 4.4.1, and Backbone.js 1.3.3 are bundled.' ); ?></p>
-				</div>
-			</div>
-
-			<div class="under-the-hood two-col">
-				<div class="col">
-					<h3><?php _e( 'Customizer APIs for Setting Validation and Notifications' ); ?></h3>
-					<p><?php _e( 'Settings now have an <a href="https://make.wordpress.org/core/2016/07/05/customizer-apis-in-4-6-for-setting-validation-and-notifications/">API for enforcing validation constraints</a>. Likewise, customizer controls now support notifications, which are used to display validation errors instead of failing silently.' ); ?></p>
-				</div>
-				<div class="col">
-					<h3><?php _e( 'Multisite, now faster than ever' ); ?></h3>
+					<h3><?php _e( 'Settings Registration API' ); ?></h3>
 					<p><?php
 						printf(
-							/* translators: 1: WP_Site_Query, 2: WP_Network_Query */
-							__( 'Cached and comprehensive site queries improve your network admin experience. The addition of %1$s and %2$s help craft advanced queries with less effort.' ),
-							'<code>WP_Site_Query</code>',
-							'<code>WP_Network_Query</code>'
+							/* translators: 1: register_setting(), 2: https://make.wordpress.org/core/2016/10/26/registering-your-settings-in-wordpress-4-7/ */
+							__( '%1$s <a href="%2$s">has been enhanced</a> to include type, description, and REST API visibility.' ),
+							'<code>register_setting()</code>',
+							'https://make.wordpress.org/core/2016/10/26/registering-your-settings-in-wordpress-4-7/'
 						);
 					?></p>
 				</div>
+				<div class="col">
+					<h3><a href="https://make.wordpress.org/core/2016/10/12/customize-changesets-technical-design-decisions/"><?php _e( 'Customize Changesets' ); ?></a></h3>
+					<p><?php _e( 'Customize changesets make changes in the customizer persistent, like autosave drafts. They also make exciting new features like starter content possible.' ); ?></p>
+				</div>
 			</div>
+
 		</div>
 
 		<hr />
diff --git a/wp-admin/admin-footer.php b/wp-admin/admin-footer.php
index f32ce07ea..111d4d239 100644
--- a/wp-admin/admin-footer.php
+++ b/wp-admin/admin-footer.php
@@ -83,7 +83,7 @@ do_action( 'admin_footer', '' );
  *
  * @param string $hook_suffix The current admin page.
  */
-do_action( "admin_print_footer_scripts-$hook_suffix" );
+do_action( "admin_print_footer_scripts-{$hook_suffix}" );
 
 /**
  * Prints any scripts and data queued for the footer.
@@ -103,7 +103,7 @@ do_action( 'admin_print_footer_scripts' );
  * @global string $hook_suffix
  * @param string $hook_suffix The current admin page.
  */
-do_action( "admin_footer-$hook_suffix" );
+do_action( "admin_footer-{$hook_suffix}" );
 
 // get_site_option() won't exist when auto upgrading from <= 2.7
 if ( function_exists('get_site_option') ) {
diff --git a/wp-admin/admin-header.php b/wp-admin/admin-header.php
index 17dc162b7..d5ceeccd6 100644
--- a/wp-admin/admin-header.php
+++ b/wp-admin/admin-header.php
@@ -18,12 +18,11 @@ if ( ! defined( 'WP_ADMIN' ) )
  * @global WP_Screen $current_screen
  * @global WP_Locale $wp_locale
  * @global string    $pagenow
- * @global string    $wp_version
  * @global string    $update_title
  * @global int       $total_update_count
  * @global string    $parent_file
  */
-global $title, $hook_suffix, $current_screen, $wp_locale, $pagenow, $wp_version,
+global $title, $hook_suffix, $current_screen, $wp_locale, $pagenow,
 	$update_title, $total_update_count, $parent_file;
 
 // Catch plugins that include admin-header.php before admin.php completes.
@@ -33,17 +32,23 @@ if ( empty( $current_screen ) )
 get_admin_page_title();
 $title = esc_html( strip_tags( $title ) );
 
-if ( is_network_admin() )
-	$admin_title = sprintf( __( 'Network Admin: %s' ), esc_html( get_current_site()->site_name ) );
-elseif ( is_user_admin() )
-	$admin_title = sprintf( __( 'User Dashboard: %s' ), esc_html( get_current_site()->site_name ) );
-else
+if ( is_network_admin() ) {
+	/* translators: Network admin screen title. 1: Network name */
+	$admin_title = sprintf( __( 'Network Admin: %s' ), esc_html( get_network()->site_name ) );
+} elseif ( is_user_admin() ) {
+	/* translators: User dashboard screen title. 1: Network name */
+	$admin_title = sprintf( __( 'User Dashboard: %s' ), esc_html( get_network()->site_name ) );
+} else {
 	$admin_title = get_bloginfo( 'name' );
+}
 
-if ( $admin_title == $title )
+if ( $admin_title == $title ) {
+	/* translators: Admin screen title. 1: Admin screen name */
 	$admin_title = sprintf( __( '%1$s &#8212; WordPress' ), $title );
-else
+} else {
+	/* translators: Admin screen title. 1: Admin screen name, 2: Network or site name */
 	$admin_title = sprintf( __( '%1$s &lsaquo; %2$s &#8212; WordPress' ), $title, $admin_title );
+}
 
 /**
  * Filters the title tag content for an admin page.
@@ -96,7 +101,7 @@ do_action( 'admin_enqueue_scripts', $hook_suffix );
  *
  * @since 2.6.0
  */
-do_action( "admin_print_styles-$hook_suffix" );
+do_action( "admin_print_styles-{$hook_suffix}" );
 
 /**
  * Fires when styles are printed for all admin pages.
@@ -110,7 +115,7 @@ do_action( 'admin_print_styles' );
  *
  * @since 2.1.0
  */
-do_action( "admin_print_scripts-$hook_suffix" );
+do_action( "admin_print_scripts-{$hook_suffix}" );
 
 /**
  * Fires when scripts are printed for all admin pages.
@@ -127,7 +132,7 @@ do_action( 'admin_print_scripts' );
  *
  * @since 2.1.0
  */
-do_action( "admin_head-$hook_suffix" );
+do_action( "admin_head-{$hook_suffix}" );
 
 /**
  * Fires in head section for all admin pages.
@@ -154,10 +159,10 @@ if ( $current_screen->post_type )
 if ( $current_screen->taxonomy )
 	$admin_body_class .= ' taxonomy-' . $current_screen->taxonomy;
 
-$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', floatval( $wp_version ) );
-$admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', $wp_version ) );
+$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', floatval( get_bloginfo( 'version' ) ) );
+$admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', get_bloginfo( 'version' ) ) );
 $admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' );
-$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
+$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) );
 
 if ( wp_is_mobile() )
 	$admin_body_class .= ' mobile';
diff --git a/wp-admin/admin.php b/wp-admin/admin.php
index ad341c888..2dd315daf 100644
--- a/wp-admin/admin.php
+++ b/wp-admin/admin.php
@@ -209,7 +209,7 @@ if ( isset($plugin_page) ) {
 		 *
 		 * @since 2.1.0
 		 */
-		do_action( 'load-' . $page_hook );
+		do_action( "load-{$page_hook}" );
 		if (! isset($_GET['noheader']))
 			require_once(ABSPATH . 'wp-admin/admin-header.php');
 
@@ -239,7 +239,7 @@ if ( isset($plugin_page) ) {
 		 *
 		 * @since 1.5.0
 		 */
-		do_action( 'load-' . $plugin_page );
+		do_action( "load-{$plugin_page}" );
 
 		if ( !isset($_GET['noheader']))
 			require_once(ABSPATH . 'wp-admin/admin-header.php');
@@ -278,7 +278,7 @@ if ( isset($plugin_page) ) {
 	 *
 	 * @since 3.5.0
 	 */
-	do_action( 'load-importer-' . $importer );
+	do_action( "load-importer-{$importer}" );
 
 	$parent_file = 'tools.php';
 	$submenu_file = 'import.php';
@@ -326,7 +326,7 @@ if ( isset($plugin_page) ) {
 	 *
 	 * @since 2.1.0
 	 */
-	do_action( 'load-' . $pagenow );
+	do_action( "load-{$pagenow}" );
 
 	/*
 	 * The following hooks are fired to ensure backward compatibility.
diff --git a/wp-admin/comment.php b/wp-admin/comment.php
index aa2e05436..c2eca11ec 100644
--- a/wp-admin/comment.php
+++ b/wp-admin/comment.php
@@ -48,8 +48,8 @@ case 'editcomment' :
 
 	get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Administration_Screens#Comments" target="_blank">Documentation on Comments</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Administration_Screens#Comments">Documentation on Comments</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 	);
 
 	wp_enqueue_script('comment');
@@ -213,7 +213,7 @@ if ( $comment->comment_approved != '0' ) { // if not unapproved
 <th scope="row"><?php /* translators: field name in comment form */ _ex('Comment', 'noun'); ?></th>
 <td class="comment-content">
 	<?php comment_text( $comment ); ?>
-	<p class="edit-comment"><a href="<?php echo admin_url( "comment.php?action=editcomment&amp;c={$comment->comment_ID}" ); ?>"><?php esc_attr_e( 'Edit' ); ?></a></p>
+	<p class="edit-comment"><a href="<?php echo admin_url( "comment.php?action=editcomment&amp;c={$comment->comment_ID}" ); ?>"><?php esc_html_e( 'Edit' ); ?></a></p>
 </td>
 </tr>
 </table>
@@ -222,7 +222,7 @@ if ( $comment->comment_approved != '0' ) { // if not unapproved
 
 <p>
 	<?php submit_button( $button, 'primary', 'submit', false ); ?>
-	<a href="<?php echo admin_url('edit-comments.php'); ?>" class="button-cancel"><?php esc_attr_e( 'Cancel' ); ?></a>
+	<a href="<?php echo admin_url('edit-comments.php'); ?>" class="button-cancel"><?php esc_html_e( 'Cancel' ); ?></a>
 </p>
 
 <?php wp_nonce_field( $nonce_action ); ?>
diff --git a/wp-admin/credits.php b/wp-admin/credits.php
index 3f5afc9ee..5938e9513 100644
--- a/wp-admin/credits.php
+++ b/wp-admin/credits.php
@@ -12,7 +12,7 @@ require_once( dirname( __FILE__ ) . '/includes/credits.php' );
 
 $title = __( 'Credits' );
 
-list( $display_version ) = explode( '-', $wp_version );
+list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
@@ -20,7 +20,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
-<p class="about-text"><?php printf( __( 'Thank you for updating to the latest version. WordPress %s changes a lot behind the scenes to make your WordPress experience even better!' ), $display_version ); ?></p>
+<p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s helps you get your site set up the way you want it.' ), $display_version ); ?></p>
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
diff --git a/wp-admin/css/about-rtl.css b/wp-admin/css/about-rtl.css
index d9a3aa192..75bfc4b81 100644
--- a/wp-admin/css/about-rtl.css
+++ b/wp-admin/css/about-rtl.css
@@ -40,6 +40,7 @@
 	max-width: 100%;
 	height: auto;
 	vertical-align: middle;
+	border: 1px solid rgba(0, 0, 0, 0.1);
 }
 
 .about-wrap .jetpack-video-wrapper {
@@ -93,7 +94,7 @@
 }
 
 .about-wrap .feature-section p {
-	max-width: 38em;
+	max-width: 55em;
 	margin-right: auto;
 	margin-left: auto;
 }
@@ -108,8 +109,8 @@
 }
 
 .about-wrap h2 {
-	margin: 50px 0 1em;
-	font-size: 1.8em;
+	margin: 40px 0 .6em;
+	font-size: 2.7em;
 	line-height: 1.3;
 	font-weight: 300;
 	text-align: center;
@@ -117,7 +118,7 @@
 
 .about-wrap h3 {
 	margin: 1.25em 0 .6em;
-	font-size: 1.25em;
+	font-size: 1.4em;
 	line-height: 1.5;
 }
 
@@ -125,6 +126,12 @@
 	color: #23282d;
 }
 
+.about-wrap .changelog h2 {
+	font-size: 1.4em;
+	font-weight: 600;
+	text-align: right;
+}
+
 .about-wrap .changelog h3 {
 	margin: 1.33em 0;
 	font-size: 1em;
@@ -193,11 +200,6 @@
 	overflow: hidden;
 }
 
-.about-wrap .under-the-hood:nth-of-type(2n),
-.about-wrap .under-the-hood:nth-of-type(3n) {
-	margin-top: 3em;
-}
-
 .about-wrap .feature-video .mejs-controls {
 	display: none !important;
 }
@@ -227,19 +229,6 @@
 
 /* 2.1 - Typography */
 
-.about-wrap .headline-feature h2 {
-	margin: 30px 0 30px;
-	font-size: 2.2em;
-	font-weight: 300;
-	line-height: 1.3;
-	text-align: center;
-}
-
-.about-wrap .headline-feature h3 {
-	margin-top: 0;
-	text-align: right;
-}
-
 .about-wrap .feature-section.two-col h3 {
 	margin-top: 0;
 }
@@ -253,6 +242,11 @@
 	margin-top: 0.6em;
 }
 
+.about-wrap .lead-description {
+	font-size: 1.5em;
+	text-align: center;
+}
+
 .about-wrap .two-col-text {
 	-webkit-column-count: 2;
 	-moz-column-count: 2;
@@ -300,6 +294,10 @@
 	padding: 0 0 40px;
 }
 
+.about-wrap .feature-section.no-heading {
+	padding-top: 35px;
+}
+
 .about-wrap .headline-feature {
 	margin: 0 auto;
 	max-width: 80%;
@@ -309,6 +307,10 @@
 	overflow: hidden;
 }
 
+.about-wrap .feature-section img {
+	margin-bottom: 1em;
+}
+
 .about-wrap .embed-container {
 	text-align: center;
 }
diff --git a/wp-admin/css/about-rtl.min.css b/wp-admin/css/about-rtl.min.css
index 899570bb1..18931613b 100644
--- a/wp-admin/css/about-rtl.min.css
+++ b/wp-admin/css/about-rtl.min.css
@@ -1 +1 @@
-.about-wrap{position:relative;margin:25px 20px 0 40px;max-width:1050px;font-size:15px}.about-wrap .notice,.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle}.about-wrap .jetpack-video-wrapper{margin-bottom:0}.wp-badge{background:url(../images/w-logo-white.png?ver=20160308) center 25px no-repeat #0073aa;-webkit-background-size:80px 80px;background-size:80px 80px;color:#fff;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:140px;text-rendering:optimizeLegibility;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.svg .wp-badge{background-image:url(../images/wordpress-logo-white.svg?ver=20160308)}.about-wrap .wp-badge{position:absolute;top:0;left:0}.about-wrap .nav-tab{padding-left:15px;padding-right:15px;font-size:18px}.about-wrap p{line-height:1.5;font-size:14px}.about-wrap .feature-section p{max-width:38em;margin-right:auto;margin-left:auto}.about-wrap h1{margin:.2em 0 0 200px;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h2{margin:50px 0 1em;font-size:1.8em;line-height:1.3;font-weight:300;text-align:center}.about-wrap h3{margin:1.25em 0 .6em;font-size:1.25em;line-height:1.5}.about-wrap h4{color:#23282d}.about-wrap .changelog h3{margin:1.33em 0;font-size:1em;line-height:inherit;color:#23282d}.about-wrap code,.about-wrap ol li p{font-size:14px;font-weight:400}.about-wrap .about-description,.about-wrap .about-text{margin-top:1.4em;font-weight:400;line-height:1.6em;font-size:19px}.about-wrap .about-text{margin:1em 0 1em 200px;min-height:60px;color:#555d66}.about-wrap [class$=col] .col{float:right;position:relative}.about-wrap .two-col .col{margin-left:4.799999999%;width:47.6%}.about-wrap .two-col img{margin-bottom:1.5em}.about-wrap .feature-section.two-col .col{display:inline-block;float:none;margin-top:1em;margin-left:4.799999999%;width:-webkit-calc(47.6% - 4px);width:calc(47.6% - 4px);vertical-align:top}.about-wrap .three-col .col{margin-left:4.999999999%;width:29.95%}.about-wrap .three-col .col:nth-of-type(3n),.about-wrap .two-col .col:nth-of-type(2n){margin-left:0}.about-wrap .under-the-hood{clear:both;overflow:hidden}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:3em}.about-wrap .feature-video .mejs-controls{display:none!important}.about-wrap .feature-video .mejs-overlay-loading span{background:0 0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #ddd}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.about-wrap .headline-feature h2{margin:30px 0;font-size:2.2em;font-weight:300;line-height:1.3;text-align:center}.about-wrap .headline-feature h3{margin-top:0;text-align:right}.about-wrap .embed-container,.about-wrap .featured-image{text-align:center}.about-wrap .feature-section.two-col h3{margin-top:0}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap .two-col-text{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:40px;-moz-column-gap:40px;column-gap:40px}.about-wrap .two-col-text p:first-of-type{margin-top:0}.about-wrap .native-fonts p,.about-wrap .streamlined-updates p{margin-bottom:3em}.about-wrap .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}.about-wrap .feature-video embed{position:absolute;top:0;right:0;width:100%;height:100%}.about-wrap .feature-section{overflow:hidden;padding:0 0 40px}.about-wrap .headline-feature{margin:0 auto;max-width:80%}.about-wrap .changelog.feature-section .col,.about-wrap .feature-section .col{margin-top:40px}.about-wrap .feature-section .media-container{overflow:hidden}.about-wrap .embed-container iframe,.about-wrap .wp-embedded-content{max-width:100%}.about-wrap .changelog{margin-bottom:40px}.about-wrap .return-to-dashboard{margin:30px -5px 0 0;font-size:14px;font-weight:600}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h3.wp-people-group{margin:2.6em 0 1.33em;padding:0;font-size:16px;line-height:inherit}.about-wrap .wp-people-group{padding:0 5px;margin:0 -5px 0 -15px}.about-wrap .compact{margin-bottom:0}.about-wrap .wp-person{display:inline-block;vertical-align:top;margin-left:10px;padding-bottom:15px;height:70px;width:280px}.about-wrap .compact .wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap .wp-person .gravatar{float:right;margin:0 0 10px 10px;padding:1px;width:60px;height:60px}.about-wrap .compact .wp-person .gravatar{width:30px;height:30px}.about-wrap .wp-person .web{margin:6px 0 2px;font-size:16px;font-weight:400;line-height:2em;text-decoration:none}.about-wrap .wp-person .title{display:block}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:600}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:782px){.about-wrap .two-col-text{-webkit-column-count:1;-moz-column-count:1;column-count:1}.about-wrap .three-col img{display:block;margin:0 auto}}@media only screen and (max-width:500px){.about-wrap{margin-left:20px;margin-right:10px}.about-wrap .about-text,.about-wrap h1{margin-left:0}.about-wrap .about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .three-col .col,.about-wrap .two-col .col{width:100%!important;float:none!important}.about-wrap .under-the-hood.one-col .col,.about-wrap .under-the-hood.three-col .col,.about-wrap .under-the-hood.two-col .col{margin-bottom:2em;padding-bottom:0}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:0}.about-wrap .under-the-hood:nth-of-type(2n) h3,.about-wrap .under-the-hood:nth-of-type(3n) h3{margin-top:0}}
\ No newline at end of file
+.about-wrap{position:relative;margin:25px 20px 0 40px;max-width:1050px;font-size:15px}.about-wrap .notice,.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle;border:1px solid rgba(0,0,0,.1)}.about-wrap .jetpack-video-wrapper{margin-bottom:0}.wp-badge{background:url(../images/w-logo-white.png?ver=20160308) center 25px no-repeat #0073aa;-webkit-background-size:80px 80px;background-size:80px 80px;color:#fff;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:140px;text-rendering:optimizeLegibility;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.svg .wp-badge{background-image:url(../images/wordpress-logo-white.svg?ver=20160308)}.about-wrap .wp-badge{position:absolute;top:0;left:0}.about-wrap .nav-tab{padding-left:15px;padding-right:15px;font-size:18px}.about-wrap p{line-height:1.5;font-size:14px}.about-wrap .feature-section p{max-width:55em;margin-right:auto;margin-left:auto}.about-wrap h1{margin:.2em 0 0 200px;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h2{margin:40px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.about-wrap h3{margin:1.25em 0 .6em;font-size:1.4em;line-height:1.5}.about-wrap h4{color:#23282d}.about-wrap .changelog h2{font-size:1.4em;font-weight:600;text-align:right}.about-wrap .embed-container,.about-wrap .featured-image,.about-wrap .lead-description{text-align:center}.about-wrap .changelog h3{margin:1.33em 0;font-size:1em;line-height:inherit;color:#23282d}.about-wrap code,.about-wrap ol li p{font-size:14px;font-weight:400}.about-wrap .about-description,.about-wrap .about-text{margin-top:1.4em;font-weight:400;line-height:1.6em;font-size:19px}.about-wrap .about-text{margin:1em 0 1em 200px;min-height:60px;color:#555d66}.about-wrap [class$=col] .col{float:right;position:relative}.about-wrap .two-col .col{margin-left:4.799999999%;width:47.6%}.about-wrap .two-col img{margin-bottom:1.5em}.about-wrap .feature-section.two-col .col{display:inline-block;float:none;margin-top:1em;margin-left:4.799999999%;width:-webkit-calc(47.6% - 4px);width:calc(47.6% - 4px);vertical-align:top}.about-wrap .three-col .col{margin-left:4.999999999%;width:29.95%}.about-wrap .three-col .col:nth-of-type(3n),.about-wrap .two-col .col:nth-of-type(2n){margin-left:0}.about-wrap .under-the-hood{clear:both;overflow:hidden}.about-wrap .feature-video .mejs-controls{display:none!important}.about-wrap .feature-video .mejs-overlay-loading span{background:0 0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #ddd}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.about-wrap .feature-section.two-col h3{margin-top:0}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap .lead-description{font-size:1.5em}.about-wrap .two-col-text{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:40px;-moz-column-gap:40px;column-gap:40px}.about-wrap .two-col-text p:first-of-type{margin-top:0}.about-wrap .native-fonts p,.about-wrap .streamlined-updates p{margin-bottom:3em}.about-wrap .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}.about-wrap .feature-video embed{position:absolute;top:0;right:0;width:100%;height:100%}.about-wrap .feature-section{overflow:hidden;padding:0 0 40px}.about-wrap .feature-section.no-heading{padding-top:35px}.about-wrap .headline-feature{margin:0 auto;max-width:80%}.about-wrap .changelog.feature-section .col,.about-wrap .feature-section .col{margin-top:40px}.about-wrap .feature-section .media-container{overflow:hidden}.about-wrap .feature-section img{margin-bottom:1em}.about-wrap .embed-container iframe,.about-wrap .wp-embedded-content{max-width:100%}.about-wrap .changelog{margin-bottom:40px}.about-wrap .return-to-dashboard{margin:30px -5px 0 0;font-size:14px;font-weight:600}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h3.wp-people-group{margin:2.6em 0 1.33em;padding:0;font-size:16px;line-height:inherit}.about-wrap .wp-people-group{padding:0 5px;margin:0 -5px 0 -15px}.about-wrap .compact{margin-bottom:0}.about-wrap .wp-person{display:inline-block;vertical-align:top;margin-left:10px;padding-bottom:15px;height:70px;width:280px}.about-wrap .compact .wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap .wp-person .gravatar{float:right;margin:0 0 10px 10px;padding:1px;width:60px;height:60px}.about-wrap .compact .wp-person .gravatar{width:30px;height:30px}.about-wrap .wp-person .web{margin:6px 0 2px;font-size:16px;font-weight:400;line-height:2em;text-decoration:none}.about-wrap .wp-person .title{display:block}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:600}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:782px){.about-wrap .two-col-text{-webkit-column-count:1;-moz-column-count:1;column-count:1}.about-wrap .three-col img{display:block;margin:0 auto}}@media only screen and (max-width:500px){.about-wrap{margin-left:20px;margin-right:10px}.about-wrap .about-text,.about-wrap h1{margin-left:0}.about-wrap .about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .three-col .col,.about-wrap .two-col .col{width:100%!important;float:none!important}.about-wrap .under-the-hood.one-col .col,.about-wrap .under-the-hood.three-col .col,.about-wrap .under-the-hood.two-col .col{margin-bottom:2em;padding-bottom:0}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:0}.about-wrap .under-the-hood:nth-of-type(2n) h3,.about-wrap .under-the-hood:nth-of-type(3n) h3{margin-top:0}}
\ No newline at end of file
diff --git a/wp-admin/css/about.css b/wp-admin/css/about.css
index 8995e031e..2dc72f53a 100644
--- a/wp-admin/css/about.css
+++ b/wp-admin/css/about.css
@@ -40,6 +40,7 @@
 	max-width: 100%;
 	height: auto;
 	vertical-align: middle;
+	border: 1px solid rgba(0, 0, 0, 0.1);
 }
 
 .about-wrap .jetpack-video-wrapper {
@@ -93,7 +94,7 @@
 }
 
 .about-wrap .feature-section p {
-	max-width: 38em;
+	max-width: 55em;
 	margin-left: auto;
 	margin-right: auto;
 }
@@ -108,8 +109,8 @@
 }
 
 .about-wrap h2 {
-	margin: 50px 0 1em;
-	font-size: 1.8em;
+	margin: 40px 0 .6em;
+	font-size: 2.7em;
 	line-height: 1.3;
 	font-weight: 300;
 	text-align: center;
@@ -117,7 +118,7 @@
 
 .about-wrap h3 {
 	margin: 1.25em 0 .6em;
-	font-size: 1.25em;
+	font-size: 1.4em;
 	line-height: 1.5;
 }
 
@@ -125,6 +126,12 @@
 	color: #23282d;
 }
 
+.about-wrap .changelog h2 {
+	font-size: 1.4em;
+	font-weight: 600;
+	text-align: left;
+}
+
 .about-wrap .changelog h3 {
 	margin: 1.33em 0;
 	font-size: 1em;
@@ -193,11 +200,6 @@
 	overflow: hidden;
 }
 
-.about-wrap .under-the-hood:nth-of-type(2n),
-.about-wrap .under-the-hood:nth-of-type(3n) {
-	margin-top: 3em;
-}
-
 .about-wrap .feature-video .mejs-controls {
 	display: none !important;
 }
@@ -227,19 +229,6 @@
 
 /* 2.1 - Typography */
 
-.about-wrap .headline-feature h2 {
-	margin: 30px 0 30px;
-	font-size: 2.2em;
-	font-weight: 300;
-	line-height: 1.3;
-	text-align: center;
-}
-
-.about-wrap .headline-feature h3 {
-	margin-top: 0;
-	text-align: left;
-}
-
 .about-wrap .feature-section.two-col h3 {
 	margin-top: 0;
 }
@@ -253,6 +242,11 @@
 	margin-top: 0.6em;
 }
 
+.about-wrap .lead-description {
+	font-size: 1.5em;
+	text-align: center;
+}
+
 .about-wrap .two-col-text {
 	-webkit-column-count: 2;
 	-moz-column-count: 2;
@@ -300,6 +294,10 @@
 	padding: 0 0 40px;
 }
 
+.about-wrap .feature-section.no-heading {
+	padding-top: 35px;
+}
+
 .about-wrap .headline-feature {
 	margin: 0 auto;
 	max-width: 80%;
@@ -309,6 +307,10 @@
 	overflow: hidden;
 }
 
+.about-wrap .feature-section img {
+	margin-bottom: 1em;
+}
+
 .about-wrap .embed-container {
 	text-align: center;
 }
diff --git a/wp-admin/css/about.min.css b/wp-admin/css/about.min.css
index 7bcbe5fc6..4488c0c00 100644
--- a/wp-admin/css/about.min.css
+++ b/wp-admin/css/about.min.css
@@ -1 +1 @@
-.about-wrap{position:relative;margin:25px 40px 0 20px;max-width:1050px;font-size:15px}.about-wrap .notice,.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle}.about-wrap .jetpack-video-wrapper{margin-bottom:0}.wp-badge{background:url(../images/w-logo-white.png?ver=20160308) center 25px no-repeat #0073aa;-webkit-background-size:80px 80px;background-size:80px 80px;color:#fff;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:140px;text-rendering:optimizeLegibility;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.svg .wp-badge{background-image:url(../images/wordpress-logo-white.svg?ver=20160308)}.about-wrap .wp-badge{position:absolute;top:0;right:0}.about-wrap .nav-tab{padding-right:15px;padding-left:15px;font-size:18px}.about-wrap p{line-height:1.5;font-size:14px}.about-wrap .feature-section p{max-width:38em;margin-left:auto;margin-right:auto}.about-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h2{margin:50px 0 1em;font-size:1.8em;line-height:1.3;font-weight:300;text-align:center}.about-wrap h3{margin:1.25em 0 .6em;font-size:1.25em;line-height:1.5}.about-wrap h4{color:#23282d}.about-wrap .changelog h3{margin:1.33em 0;font-size:1em;line-height:inherit;color:#23282d}.about-wrap code,.about-wrap ol li p{font-size:14px;font-weight:400}.about-wrap .about-description,.about-wrap .about-text{margin-top:1.4em;font-weight:400;line-height:1.6em;font-size:19px}.about-wrap .about-text{margin:1em 200px 1em 0;min-height:60px;color:#555d66}.about-wrap [class$=col] .col{float:left;position:relative}.about-wrap .two-col .col{margin-right:4.799999999%;width:47.6%}.about-wrap .two-col img{margin-bottom:1.5em}.about-wrap .feature-section.two-col .col{display:inline-block;float:none;margin-top:1em;margin-right:4.799999999%;width:-webkit-calc(47.6% - 4px);width:calc(47.6% - 4px);vertical-align:top}.about-wrap .three-col .col{margin-right:4.999999999%;width:29.95%}.about-wrap .three-col .col:nth-of-type(3n),.about-wrap .two-col .col:nth-of-type(2n){margin-right:0}.about-wrap .under-the-hood{clear:both;overflow:hidden}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:3em}.about-wrap .feature-video .mejs-controls{display:none!important}.about-wrap .feature-video .mejs-overlay-loading span{background:0 0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #ddd}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.about-wrap .headline-feature h2{margin:30px 0;font-size:2.2em;font-weight:300;line-height:1.3;text-align:center}.about-wrap .headline-feature h3{margin-top:0;text-align:left}.about-wrap .embed-container,.about-wrap .featured-image{text-align:center}.about-wrap .feature-section.two-col h3{margin-top:0}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap .two-col-text{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:40px;-moz-column-gap:40px;column-gap:40px}.about-wrap .two-col-text p:first-of-type{margin-top:0}.about-wrap .native-fonts p,.about-wrap .streamlined-updates p{margin-bottom:3em}.about-wrap .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}.about-wrap .feature-video embed{position:absolute;top:0;left:0;width:100%;height:100%}.about-wrap .feature-section{overflow:hidden;padding:0 0 40px}.about-wrap .headline-feature{margin:0 auto;max-width:80%}.about-wrap .changelog.feature-section .col,.about-wrap .feature-section .col{margin-top:40px}.about-wrap .feature-section .media-container{overflow:hidden}.about-wrap .embed-container iframe,.about-wrap .wp-embedded-content{max-width:100%}.about-wrap .changelog{margin-bottom:40px}.about-wrap .return-to-dashboard{margin:30px 0 0 -5px;font-size:14px;font-weight:600}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h3.wp-people-group{margin:2.6em 0 1.33em;padding:0;font-size:16px;line-height:inherit}.about-wrap .wp-people-group{padding:0 5px;margin:0 -15px 0 -5px}.about-wrap .compact{margin-bottom:0}.about-wrap .wp-person{display:inline-block;vertical-align:top;margin-right:10px;padding-bottom:15px;height:70px;width:280px}.about-wrap .compact .wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap .wp-person .gravatar{float:left;margin:0 10px 10px 0;padding:1px;width:60px;height:60px}.about-wrap .compact .wp-person .gravatar{width:30px;height:30px}.about-wrap .wp-person .web{margin:6px 0 2px;font-size:16px;font-weight:400;line-height:2em;text-decoration:none}.about-wrap .wp-person .title{display:block}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:600}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:782px){.about-wrap .two-col-text{-webkit-column-count:1;-moz-column-count:1;column-count:1}.about-wrap .three-col img{display:block;margin:0 auto}}@media only screen and (max-width:500px){.about-wrap{margin-right:20px;margin-left:10px}.about-wrap .about-text,.about-wrap h1{margin-right:0}.about-wrap .about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .three-col .col,.about-wrap .two-col .col{width:100%!important;float:none!important}.about-wrap .under-the-hood.one-col .col,.about-wrap .under-the-hood.three-col .col,.about-wrap .under-the-hood.two-col .col{margin-bottom:2em;padding-bottom:0}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:0}.about-wrap .under-the-hood:nth-of-type(2n) h3,.about-wrap .under-the-hood:nth-of-type(3n) h3{margin-top:0}}
\ No newline at end of file
+.about-wrap{position:relative;margin:25px 40px 0 20px;max-width:1050px;font-size:15px}.about-wrap .notice,.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle;border:1px solid rgba(0,0,0,.1)}.about-wrap .jetpack-video-wrapper{margin-bottom:0}.wp-badge{background:url(../images/w-logo-white.png?ver=20160308) center 25px no-repeat #0073aa;-webkit-background-size:80px 80px;background-size:80px 80px;color:#fff;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:140px;text-rendering:optimizeLegibility;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.2);box-shadow:0 1px 3px rgba(0,0,0,.2)}.svg .wp-badge{background-image:url(../images/wordpress-logo-white.svg?ver=20160308)}.about-wrap .wp-badge{position:absolute;top:0;right:0}.about-wrap .nav-tab{padding-right:15px;padding-left:15px;font-size:18px}.about-wrap p{line-height:1.5;font-size:14px}.about-wrap .feature-section p{max-width:55em;margin-left:auto;margin-right:auto}.about-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h2{margin:40px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.about-wrap h3{margin:1.25em 0 .6em;font-size:1.4em;line-height:1.5}.about-wrap h4{color:#23282d}.about-wrap .changelog h2{font-size:1.4em;font-weight:600;text-align:left}.about-wrap .embed-container,.about-wrap .featured-image,.about-wrap .lead-description{text-align:center}.about-wrap .changelog h3{margin:1.33em 0;font-size:1em;line-height:inherit;color:#23282d}.about-wrap code,.about-wrap ol li p{font-size:14px;font-weight:400}.about-wrap .about-description,.about-wrap .about-text{margin-top:1.4em;font-weight:400;line-height:1.6em;font-size:19px}.about-wrap .about-text{margin:1em 200px 1em 0;min-height:60px;color:#555d66}.about-wrap [class$=col] .col{float:left;position:relative}.about-wrap .two-col .col{margin-right:4.799999999%;width:47.6%}.about-wrap .two-col img{margin-bottom:1.5em}.about-wrap .feature-section.two-col .col{display:inline-block;float:none;margin-top:1em;margin-right:4.799999999%;width:-webkit-calc(47.6% - 4px);width:calc(47.6% - 4px);vertical-align:top}.about-wrap .three-col .col{margin-right:4.999999999%;width:29.95%}.about-wrap .three-col .col:nth-of-type(3n),.about-wrap .two-col .col:nth-of-type(2n){margin-right:0}.about-wrap .under-the-hood{clear:both;overflow:hidden}.about-wrap .feature-video .mejs-controls{display:none!important}.about-wrap .feature-video .mejs-overlay-loading span{background:0 0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #ddd}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.about-wrap .feature-section.two-col h3{margin-top:0}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap .lead-description{font-size:1.5em}.about-wrap .two-col-text{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:40px;-moz-column-gap:40px;column-gap:40px}.about-wrap .two-col-text p:first-of-type{margin-top:0}.about-wrap .native-fonts p,.about-wrap .streamlined-updates p{margin-bottom:3em}.about-wrap .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}.about-wrap .feature-video embed{position:absolute;top:0;left:0;width:100%;height:100%}.about-wrap .feature-section{overflow:hidden;padding:0 0 40px}.about-wrap .feature-section.no-heading{padding-top:35px}.about-wrap .headline-feature{margin:0 auto;max-width:80%}.about-wrap .changelog.feature-section .col,.about-wrap .feature-section .col{margin-top:40px}.about-wrap .feature-section .media-container{overflow:hidden}.about-wrap .feature-section img{margin-bottom:1em}.about-wrap .embed-container iframe,.about-wrap .wp-embedded-content{max-width:100%}.about-wrap .changelog{margin-bottom:40px}.about-wrap .return-to-dashboard{margin:30px 0 0 -5px;font-size:14px;font-weight:600}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h3.wp-people-group{margin:2.6em 0 1.33em;padding:0;font-size:16px;line-height:inherit}.about-wrap .wp-people-group{padding:0 5px;margin:0 -15px 0 -5px}.about-wrap .compact{margin-bottom:0}.about-wrap .wp-person{display:inline-block;vertical-align:top;margin-right:10px;padding-bottom:15px;height:70px;width:280px}.about-wrap .compact .wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap .wp-person .gravatar{float:left;margin:0 10px 10px 0;padding:1px;width:60px;height:60px}.about-wrap .compact .wp-person .gravatar{width:30px;height:30px}.about-wrap .wp-person .web{margin:6px 0 2px;font-size:16px;font-weight:400;line-height:2em;text-decoration:none}.about-wrap .wp-person .title{display:block}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:600}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:782px){.about-wrap .two-col-text{-webkit-column-count:1;-moz-column-count:1;column-count:1}.about-wrap .three-col img{display:block;margin:0 auto}}@media only screen and (max-width:500px){.about-wrap{margin-right:20px;margin-left:10px}.about-wrap .about-text,.about-wrap h1{margin-right:0}.about-wrap .about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .three-col .col,.about-wrap .two-col .col{width:100%!important;float:none!important}.about-wrap .under-the-hood.one-col .col,.about-wrap .under-the-hood.three-col .col,.about-wrap .under-the-hood.two-col .col{margin-bottom:2em;padding-bottom:0}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:0}.about-wrap .under-the-hood:nth-of-type(2n) h3,.about-wrap .under-the-hood:nth-of-type(3n) h3{margin-top:0}}
\ No newline at end of file
diff --git a/wp-admin/css/admin-menu-rtl.css b/wp-admin/css/admin-menu-rtl.css
index ac231f9cb..09f9dd023 100644
--- a/wp-admin/css/admin-menu-rtl.css
+++ b/wp-admin/css/admin-menu-rtl.css
@@ -264,7 +264,7 @@
 .folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
 .folded #adminmenu a.menu-top:focus + .wp-submenu,
 .folded #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu,
-.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu  {
+.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu {
 	top: 0;
 	right: 36px;
 }
@@ -547,79 +547,82 @@ ul#adminmenu > li.current > a.current:after {
 	display: none;
 }
 
-#collapse-menu {
-	font-size: 13px;
+#collapse-button {
+	display: block;
+	width: 100%;
+	height: 34px;
+	margin: 0;
+	border: none;
+	padding: 0;
+	position: relative;
+	overflow: visible;
 	line-height: 34px;
-	margin-top: 10px;
-	color: #a0a5aa;
-	color: rgba(240,245,250,0.6);
-	-webkit-transition: all .1s ease-in-out;
-	transition: all .1s ease-in-out;
+	background: none;
+	color: #aaa;
+	cursor: pointer;
+	outline: 0;
 }
 
-#collapse-menu:hover,
-#collapse-menu:hover #collapse-button div:after {
+#collapse-button:hover,
+#collapse-button:focus {
 	color: #00b9eb;
 }
 
-.folded #collapse-menu span {
-	display: none;
+#collapse-button .collapse-button-icon,
+#collapse-button .collapse-button-label {
+	/* absolutely positioned to avoid 1px shift in IE when button is pressed */
+	display: block;
+	position: absolute;
+	top: 0;
+	right: 0;
+	line-height: 34px;
 }
 
-#collapse-button,
-#collapse-button div {
-	width: 15px;
-	height: 15px;
+#collapse-button .collapse-button-icon {
+	width: 36px;
+	height: 34px;
 }
 
-#collapse-button {
-	float: right;
-	height: 15px;
-	margin: 10px 11px 10px 8px;
-	width: 15px;
-	-webkit-border-radius: 10px;
-	border-radius: 10px;
+#collapse-button .collapse-button-label {
+	padding: 0 36px 0 0;
 }
 
-#wpwrap #collapse-button div {
-	padding: 0;
+.folded #collapse-button .collapse-button-label {
+	display: none;
 }
 
-#collapse-button div:after {
+#collapse-button .collapse-button-icon:after {
 	content: "\f148";
 	display: block;
-	line-height: 15px;
-	right: -3px;
-	top: -3px;
-	color: #a0a5aa;
-	color: rgba(240,245,250,0.6);
-	font: normal 20px/1 dashicons !important;
-	speak: none;
-	margin: 0 auto;
-	padding: 0 !important;
 	position: relative;
+	top: 7px;
 	text-align: center;
-	width: 20px;
-	-webkit-transition: all .1s ease-in-out;
-	transition: all .1s ease-in-out;
+	font: normal 20px/1 dashicons !important;
+	speak: none;
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
 }
 
 /* rtl:ignore */
-.folded #collapse-button div:after,
-.rtl #collapse-button div:after {
+.folded #collapse-button .collapse-button-icon:after,
+.rtl #collapse-button .collapse-button-icon:after {
 	-webkit-transform: rotate(180deg);
 	-ms-transform: rotate(180deg);
 	transform: rotate(180deg);
 }
 
-.rtl.folded #collapse-button div:after {
+.rtl.folded #collapse-button .collapse-button-icon:after {
 	-webkit-transform: none;
 	-ms-transform: none;
 	transform: none;
 }
 
+#collapse-button .collapse-button-icon:after,
+#collapse-button .collapse-button-label {
+	-webkit-transition: all .1s ease-in-out;
+	transition: all .1s ease-in-out;
+}
+
 /**
  * Toolbar menu toggle
  */
@@ -652,7 +655,7 @@ li#wp-admin-bar-menu-toggle {
 	.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
 	.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
 	.auto-fold #adminmenu a.menu-top:focus + .wp-submenu,
-	.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu  {
+	.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu {
 		top: 0px;
 		right: 36px;
 	}
@@ -731,22 +734,18 @@ li#wp-admin-bar-menu-toggle {
 		z-index: 10000;
 	}
 
-	.auto-fold #collapse-menu span {
+	.auto-fold #collapse-menu .collapse-button-label {
 		display: none;
 	}
 
-	.auto-fold #collapse-button div {
-		background: none;
-	}
-
 	/* rtl:ignore */
-	.auto-fold #collapse-button div:after {
+	.auto-fold #collapse-button .collapse-button-icon:after {
 		-webkit-transform: rotate(180deg);
 		-ms-transform: rotate(180deg);
 		transform: rotate(180deg);
 	}
 
-	.rtl.auto-fold #collapse-button div:after {
+	.rtl.auto-fold #collapse-button .collapse-button-icon:after {
 		-webkit-transform: none;
 		-ms-transform: none;
 		transform: none;
diff --git a/wp-admin/css/admin-menu-rtl.min.css b/wp-admin/css/admin-menu-rtl.min.css
index 4a51af5ba..0ec7756cd 100644
--- a/wp-admin/css/admin-menu-rtl.min.css
+++ b/wp-admin/css/admin-menu-rtl.min.css
@@ -1 +1 @@
-#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:160px;background-color:#23282d}#adminmenuback{position:fixed;top:0;bottom:-120px;z-index:1}#adminmenu{clear:right;margin:12px 0;padding:0;list-style:none}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:36px}.icon16{height:18px;width:18px;padding:6px;margin:-6px -8px 0 0;float:right}.icon16:before{color:#82878c;font:400 20px/1 dashicons;speak:none;padding:6px 0;height:34px;width:20px;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.icon16.icon-dashboard:before{content:"\f226"}.icon16.icon-post:before{content:"\f109"}.icon16.icon-media:before{content:"\f104"}.icon16.icon-links:before{content:"\f103"}.icon16.icon-page:before{content:"\f105"}.icon16.icon-comments:before{content:"\f101";margin-top:1px}.icon16.icon-appearance:before{content:"\f100"}.icon16.icon-plugins:before{content:"\f106"}.icon16.icon-users:before{content:"\f110"}.icon16.icon-tools:before{content:"\f107"}.icon16.icon-settings:before{content:"\f108"}.icon16.icon-site:before{content:"\f541"}.icon16.icon-generic:before{content:"\f111"}.icon16.icon-appearance,.icon16.icon-comments,.icon16.icon-dashboard,.icon16.icon-generic,.icon16.icon-links,.icon16.icon-media,.icon16.icon-page,.icon16.icon-plugins,.icon16.icon-post,.icon16.icon-settings,.icon16.icon-site,.icon16.icon-tools,.icon16.icon-users,.menu-icon-appearance div.wp-menu-image,.menu-icon-comments div.wp-menu-image,.menu-icon-dashboard div.wp-menu-image,.menu-icon-generic div.wp-menu-image,.menu-icon-links div.wp-menu-image,.menu-icon-media div.wp-menu-image,.menu-icon-page div.wp-menu-image,.menu-icon-plugins div.wp-menu-image,.menu-icon-post div.wp-menu-image,.menu-icon-settings div.wp-menu-image,.menu-icon-site div.wp-menu-image,.menu-icon-tools div.wp-menu-image,.menu-icon-users div.wp-menu-image{background-image:none!important}#adminmenuwrap{position:relative;float:right;z-index:9990}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px;color:#eee}#adminmenu .wp-submenu a{color:#b4b9be;color:rgba(240,245,250,.7)}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover{background:0 0}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a:hover,#adminmenu li.menu-top>a:focus{color:#00b9eb}#adminmenu li.menu-top{border:none;min-height:34px;position:relative}#adminmenu .wp-submenu{list-style:none;position:absolute;top:-1000em;right:160px;overflow:visible;word-wrap:break-word}#adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{padding:7px 0 8px;z-index:9999;background-color:#32373c;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}#adminmenu a.menu-top:focus+.wp-submenu,.js #adminmenu .opensub .wp-submenu,.js #adminmenu .sub-open,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu{position:relative;z-index:3;top:auto;right:auto;left:auto;bottom:auto;border:0;margin-top:0;-webkit-box-shadow:none;box-shadow:none;background-color:#32373c}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{position:relative;background-color:#191e23;color:#00b9eb}.folded #adminmenu li.menu-top:hover,.folded #adminmenu li.opensub>a.menu-top,.folded #adminmenu li>a.menu-top:focus{z-index:10000}#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu .wp-menu-arrow,#adminmenu .wp-menu-arrow div,#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu{background:#0073aa;color:#fff}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:0;right:36px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:160px;width:auto}#adminmenu .wp-submenu a{font-size:13px;line-height:1.2;margin:0;padding:6px 0}#adminmenu .opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-not-current-submenu li>a,.folded #adminmenu .wp-has-current-submenu li>a{padding-left:16px;padding-right:14px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:6px 12px}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{font-size:14px;font-weight:400;line-height:18px;padding:0}#adminmenu .wp-submenu-head{display:none}.folded #adminmenu .wp-menu-name{position:absolute;right:-999px}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu .wp-menu-image img{padding:9px 0 0;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:8px 0}#adminmenu div.wp-menu-image{float:right;width:36px;height:34px;margin:0;text-align:center}#adminmenu div.wp-menu-image.svg{background-repeat:no-repeat;background-position:center;-webkit-background-size:20px auto;background-size:20px auto}div.wp-menu-image:before{color:#a0a5aa;color:rgba(240,245,250,.6);padding:7px 0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu div.wp-menu-image:before{color:#a0a5aa;color:rgba(240,245,250,.6)}#adminmenu .current div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before{color:#fff}#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before{color:#00b9eb}.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#a0a5aa}.folded #adminmenu div.wp-menu-image{width:35px;height:30px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:34px}.no-font-face #adminmenu .wp-menu-image{display:none}.no-font-face #adminmenu div.wp-menu-name{padding:8px 12px}.no-font-face.auto-fold #adminmenu .wp-menu-name{margin-right:0}.sticky-menu #adminmenuwrap{position:fixed}.wp-menu-arrow{display:none!important}ul#adminmenu a.wp-has-current-submenu{position:relative}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{left:0;border:8px solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-left-color:#f1f1f1;top:50%;margin-top:-8px}.folded ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.folded ul#adminmenu a.wp-has-current-submenu:after,.folded ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{left:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;top:10px;z-index:10000}.folded ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:18px}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#32373c}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:5px;padding:0;margin:0 0 6px;cursor:inherit}#adminmenu div.separator{height:2px;padding:0}#collapse-button,#collapse-button div{height:15px;width:15px}#adminmenu .wp-submenu .wp-submenu-head{color:#fff;font-weight:400;font-size:14px;padding:8px 11px 8px 4px;margin:-7px 0 4px}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0}#adminmenu .awaiting-mod,#adminmenu .update-plugins{display:inline-block;background-color:#d54e21;color:#fff;font-size:9px;line-height:17px;font-weight:600;margin:1px 2px 0 0;vertical-align:top;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span{display:block;padding:0 6px}#adminmenu li span.count-0,.folded #collapse-menu span{display:none}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod{background-color:#00b9eb;color:#fff}#collapse-menu{font-size:13px;line-height:34px;margin-top:10px;color:#a0a5aa;color:rgba(240,245,250,.6);-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#collapse-menu:hover,#collapse-menu:hover #collapse-button div:after{color:#00b9eb}#collapse-button{float:right;margin:10px 11px 10px 8px;-webkit-border-radius:10px;border-radius:10px}#wpwrap #collapse-button div{padding:0}#collapse-button div:after{content:"\f148";display:block;line-height:15px;right:-3px;top:-3px;color:#a0a5aa;color:rgba(240,245,250,.6);font:400 20px/1 dashicons!important;speak:none;margin:0 auto;padding:0!important;position:relative;text-align:center;width:20px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folded #collapse-button div:after,.rtl #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.folded #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}.customize-support #menu-appearance a[href="themes.php?page=custom-header"],.customize-support #menu-appearance a[href="themes.php?page=custom-background"],li#wp-admin-bar-menu-toggle{display:none}@media only screen and (max-width:960px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-right:36px}.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:36px}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{top:0;right:36px}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu,.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em;margin-left:-1px;padding:7px 0 8px;z-index:9999}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{min-width:150px;width:auto}.auto-fold #adminmenu .wp-has-current-submenu li>a{padding-left:16px;padding-right:14px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-right:12px}.auto-fold #adminmenu .wp-menu-name{position:absolute;right:-999px}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{height:30px;width:34px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.wp-menu-open{border:0}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:16px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}.auto-fold #adminmenu li.menu-top:hover,.auto-fold #adminmenu li.opensub>a.menu-top,.auto-fold #adminmenu li>a.menu-top:focus{z-index:10000}.auto-fold #collapse-menu span{display:none}.auto-fold #collapse-button div{background:0 0}.auto-fold #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.auto-fold #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}}@media screen and (max-width:782px){.auto-fold #wpcontent{position:relative;margin-right:0;padding-right:10px}.sticky-menu #adminmenuwrap{position:relative;z-index:auto;top:0}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{position:absolute;width:190px;z-index:100}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{display:none}.auto-fold .wp-responsive-open #adminmenuback,.auto-fold .wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu li.menu-top{width:100%}.auto-fold #adminmenu li a{font-size:16px;padding:5px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding:10px 20px 10px 10px}.auto-fold #adminmenu .wp-menu-name{position:static;margin-right:35px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li.current>a.current:after{border-width:8px;margin-top:-8px}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{display:none}#adminmenu .wp-submenu{position:relative;display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu{position:relative;display:block;top:0;right:-1px;-webkit-box-shadow:none;box-shadow:none}.auto-fold #adminmenu .selected .wp-submenu:after,.auto-fold #adminmenu .wp-menu-open .wp-submenu:after{display:none}.auto-fold #adminmenu .opensub .wp-submenu{display:none}.auto-fold #adminmenu .selected .wp-submenu{display:block}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:block}.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{position:relative;right:-1px;left:0;top:0}#adminmenu .wp-submenu .wp-submenu-head{display:none}#wp-responsive-toggle{position:fixed;top:5px;right:4px;padding-left:10px;z-index:99999;border:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpadminbar #wp-admin-bar-menu-toggle a{display:block;padding:0;overflow:hidden;outline:0;text-decoration:none;border:1px solid transparent;background:0 0;height:44px;margin-right:-1px}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#32373c}li#wp-admin-bar-menu-toggle{display:block}#wpadminbar #wp-admin-bar-menu-toggle a:hover{border:1px solid transparent}#wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{content:"\f228";display:inline-block;float:right;font:400 40px/45px dashicons;vertical-align:middle;outline:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:44px;width:50px;padding:0;border:none;text-align:center;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#00b9eb}}@media screen and (max-width:600px){#adminmenuback,#adminmenuwrap{display:none}.wp-responsive-open #adminmenuback,.wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu{top:46px}}
\ No newline at end of file
+#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:160px;background-color:#23282d}#adminmenuback{position:fixed;top:0;bottom:-120px;z-index:1}#adminmenu{clear:right;margin:12px 0;padding:0;list-style:none}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:36px}.icon16{height:18px;width:18px;padding:6px;margin:-6px -8px 0 0;float:right}.icon16:before{color:#82878c;font:400 20px/1 dashicons;speak:none;padding:6px 0;height:34px;width:20px;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.icon16.icon-dashboard:before{content:"\f226"}.icon16.icon-post:before{content:"\f109"}.icon16.icon-media:before{content:"\f104"}.icon16.icon-links:before{content:"\f103"}.icon16.icon-page:before{content:"\f105"}.icon16.icon-comments:before{content:"\f101";margin-top:1px}.icon16.icon-appearance:before{content:"\f100"}.icon16.icon-plugins:before{content:"\f106"}.icon16.icon-users:before{content:"\f110"}.icon16.icon-tools:before{content:"\f107"}.icon16.icon-settings:before{content:"\f108"}.icon16.icon-site:before{content:"\f541"}.icon16.icon-generic:before{content:"\f111"}.icon16.icon-appearance,.icon16.icon-comments,.icon16.icon-dashboard,.icon16.icon-generic,.icon16.icon-links,.icon16.icon-media,.icon16.icon-page,.icon16.icon-plugins,.icon16.icon-post,.icon16.icon-settings,.icon16.icon-site,.icon16.icon-tools,.icon16.icon-users,.menu-icon-appearance div.wp-menu-image,.menu-icon-comments div.wp-menu-image,.menu-icon-dashboard div.wp-menu-image,.menu-icon-generic div.wp-menu-image,.menu-icon-links div.wp-menu-image,.menu-icon-media div.wp-menu-image,.menu-icon-page div.wp-menu-image,.menu-icon-plugins div.wp-menu-image,.menu-icon-post div.wp-menu-image,.menu-icon-settings div.wp-menu-image,.menu-icon-site div.wp-menu-image,.menu-icon-tools div.wp-menu-image,.menu-icon-users div.wp-menu-image{background-image:none!important}#adminmenuwrap{position:relative;float:right;z-index:9990}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px;color:#eee}#adminmenu .wp-submenu a{color:#b4b9be;color:rgba(240,245,250,.7)}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover{background:0 0}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a:hover,#adminmenu li.menu-top>a:focus{color:#00b9eb}#adminmenu li.menu-top{border:none;min-height:34px;position:relative}#adminmenu .wp-submenu{list-style:none;position:absolute;top:-1000em;right:160px;overflow:visible;word-wrap:break-word}#adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{padding:7px 0 8px;z-index:9999;background-color:#32373c;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}#adminmenu a.menu-top:focus+.wp-submenu,.js #adminmenu .opensub .wp-submenu,.js #adminmenu .sub-open,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu{position:relative;z-index:3;top:auto;right:auto;left:auto;bottom:auto;border:0;margin-top:0;-webkit-box-shadow:none;box-shadow:none;background-color:#32373c}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{position:relative;background-color:#191e23;color:#00b9eb}.folded #adminmenu li.menu-top:hover,.folded #adminmenu li.opensub>a.menu-top,.folded #adminmenu li>a.menu-top:focus{z-index:10000}#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu .wp-menu-arrow,#adminmenu .wp-menu-arrow div,#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu{background:#0073aa;color:#fff}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:0;right:36px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:160px;width:auto}#adminmenu .wp-submenu a{font-size:13px;line-height:1.2;margin:0;padding:6px 0}#adminmenu .opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-not-current-submenu li>a,.folded #adminmenu .wp-has-current-submenu li>a{padding-left:16px;padding-right:14px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:6px 12px}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{font-size:14px;font-weight:400;line-height:18px;padding:0}#adminmenu .wp-submenu-head{display:none}.folded #adminmenu .wp-menu-name{position:absolute;right:-999px}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu .wp-menu-image img{padding:9px 0 0;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:8px 0}#adminmenu div.wp-menu-image{float:right;width:36px;height:34px;margin:0;text-align:center}#adminmenu div.wp-menu-image.svg{background-repeat:no-repeat;background-position:center;-webkit-background-size:20px auto;background-size:20px auto}div.wp-menu-image:before{color:#a0a5aa;color:rgba(240,245,250,.6);padding:7px 0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu div.wp-menu-image:before{color:#a0a5aa;color:rgba(240,245,250,.6)}#adminmenu .current div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before{color:#fff}#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before{color:#00b9eb}.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#a0a5aa}.folded #adminmenu div.wp-menu-image{width:35px;height:30px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:34px}.no-font-face #adminmenu .wp-menu-image{display:none}.no-font-face #adminmenu div.wp-menu-name{padding:8px 12px}.no-font-face.auto-fold #adminmenu .wp-menu-name{margin-right:0}.sticky-menu #adminmenuwrap{position:fixed}.wp-menu-arrow{display:none!important}ul#adminmenu a.wp-has-current-submenu{position:relative}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{left:0;border:8px solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-left-color:#f1f1f1;top:50%;margin-top:-8px}.folded ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.folded ul#adminmenu a.wp-has-current-submenu:after,.folded ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{left:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;top:10px;z-index:10000}.folded ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:18px}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#32373c}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:5px;padding:0;margin:0 0 6px;cursor:inherit}#adminmenu div.separator{height:2px;padding:0}#adminmenu .wp-submenu .wp-submenu-head{color:#fff;font-weight:400;font-size:14px;padding:8px 11px 8px 4px;margin:-7px 0 4px}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0}#adminmenu .awaiting-mod,#adminmenu .update-plugins{display:inline-block;background-color:#d54e21;color:#fff;font-size:9px;line-height:17px;font-weight:600;margin:1px 2px 0 0;vertical-align:top;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span{display:block;padding:0 6px}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod{background-color:#00b9eb;color:#fff}#adminmenu li span.count-0{display:none}#collapse-button{display:block;width:100%;height:34px;margin:0;border:none;padding:0;position:relative;overflow:visible;line-height:34px;background:0 0;color:#aaa;cursor:pointer;outline:0}#collapse-button:focus,#collapse-button:hover{color:#00b9eb}#collapse-button .collapse-button-icon,#collapse-button .collapse-button-label{display:block;position:absolute;top:0;right:0;line-height:34px}#collapse-button .collapse-button-icon{width:36px;height:34px}#collapse-button .collapse-button-label{padding:0 36px 0 0}.folded #collapse-button .collapse-button-label{display:none}#collapse-button .collapse-button-icon:after{content:"\f148";display:block;position:relative;top:7px;text-align:center;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folded #collapse-button .collapse-button-icon:after,.rtl #collapse-button .collapse-button-icon:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.folded #collapse-button .collapse-button-icon:after{-webkit-transform:none;-ms-transform:none;transform:none}#collapse-button .collapse-button-icon:after,#collapse-button .collapse-button-label{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.customize-support #menu-appearance a[href="themes.php?page=custom-header"],.customize-support #menu-appearance a[href="themes.php?page=custom-background"],li#wp-admin-bar-menu-toggle{display:none}@media only screen and (max-width:960px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-right:36px}.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:36px}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{top:0;right:36px}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu,.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em;margin-left:-1px;padding:7px 0 8px;z-index:9999}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{min-width:150px;width:auto}.auto-fold #adminmenu .wp-has-current-submenu li>a{padding-left:16px;padding-right:14px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-right:12px}.auto-fold #adminmenu .wp-menu-name{position:absolute;right:-999px}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{height:30px;width:34px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.wp-menu-open{border:0}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:16px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}.auto-fold #adminmenu li.menu-top:hover,.auto-fold #adminmenu li.opensub>a.menu-top,.auto-fold #adminmenu li>a.menu-top:focus{z-index:10000}.auto-fold #collapse-menu .collapse-button-label{display:none}.auto-fold #collapse-button .collapse-button-icon:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.auto-fold #collapse-button .collapse-button-icon:after{-webkit-transform:none;-ms-transform:none;transform:none}}@media screen and (max-width:782px){.auto-fold #wpcontent{position:relative;margin-right:0;padding-right:10px}.sticky-menu #adminmenuwrap{position:relative;z-index:auto;top:0}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{position:absolute;width:190px;z-index:100}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{display:none}.auto-fold .wp-responsive-open #adminmenuback,.auto-fold .wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu li.menu-top{width:100%}.auto-fold #adminmenu li a{font-size:16px;padding:5px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding:10px 20px 10px 10px}.auto-fold #adminmenu .wp-menu-name{position:static;margin-right:35px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li.current>a.current:after{border-width:8px;margin-top:-8px}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{display:none}#adminmenu .wp-submenu{position:relative;display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu{position:relative;display:block;top:0;right:-1px;-webkit-box-shadow:none;box-shadow:none}.auto-fold #adminmenu .selected .wp-submenu:after,.auto-fold #adminmenu .wp-menu-open .wp-submenu:after{display:none}.auto-fold #adminmenu .opensub .wp-submenu{display:none}.auto-fold #adminmenu .selected .wp-submenu{display:block}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:block}.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{position:relative;right:-1px;left:0;top:0}#adminmenu .wp-submenu .wp-submenu-head{display:none}#wp-responsive-toggle{position:fixed;top:5px;right:4px;padding-left:10px;z-index:99999;border:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpadminbar #wp-admin-bar-menu-toggle a{display:block;padding:0;overflow:hidden;outline:0;text-decoration:none;border:1px solid transparent;background:0 0;height:44px;margin-right:-1px}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#32373c}li#wp-admin-bar-menu-toggle{display:block}#wpadminbar #wp-admin-bar-menu-toggle a:hover{border:1px solid transparent}#wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{content:"\f228";display:inline-block;float:right;font:400 40px/45px dashicons;vertical-align:middle;outline:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:44px;width:50px;padding:0;border:none;text-align:center;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#00b9eb}}@media screen and (max-width:600px){#adminmenuback,#adminmenuwrap{display:none}.wp-responsive-open #adminmenuback,.wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu{top:46px}}
\ No newline at end of file
diff --git a/wp-admin/css/admin-menu.css b/wp-admin/css/admin-menu.css
index 2d556378b..74b922ec4 100644
--- a/wp-admin/css/admin-menu.css
+++ b/wp-admin/css/admin-menu.css
@@ -264,7 +264,7 @@
 .folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
 .folded #adminmenu a.menu-top:focus + .wp-submenu,
 .folded #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu,
-.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu  {
+.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu {
 	top: 0;
 	left: 36px;
 }
@@ -547,79 +547,82 @@ ul#adminmenu > li.current > a.current:after {
 	display: none;
 }
 
-#collapse-menu {
-	font-size: 13px;
+#collapse-button {
+	display: block;
+	width: 100%;
+	height: 34px;
+	margin: 0;
+	border: none;
+	padding: 0;
+	position: relative;
+	overflow: visible;
 	line-height: 34px;
-	margin-top: 10px;
-	color: #a0a5aa;
-	color: rgba(240,245,250,0.6);
-	-webkit-transition: all .1s ease-in-out;
-	transition: all .1s ease-in-out;
+	background: none;
+	color: #aaa;
+	cursor: pointer;
+	outline: 0;
 }
 
-#collapse-menu:hover,
-#collapse-menu:hover #collapse-button div:after {
+#collapse-button:hover,
+#collapse-button:focus {
 	color: #00b9eb;
 }
 
-.folded #collapse-menu span {
-	display: none;
+#collapse-button .collapse-button-icon,
+#collapse-button .collapse-button-label {
+	/* absolutely positioned to avoid 1px shift in IE when button is pressed */
+	display: block;
+	position: absolute;
+	top: 0;
+	left: 0;
+	line-height: 34px;
 }
 
-#collapse-button,
-#collapse-button div {
-	width: 15px;
-	height: 15px;
+#collapse-button .collapse-button-icon {
+	width: 36px;
+	height: 34px;
 }
 
-#collapse-button {
-	float: left;
-	height: 15px;
-	margin: 10px 8px 10px 11px;
-	width: 15px;
-	-webkit-border-radius: 10px;
-	border-radius: 10px;
+#collapse-button .collapse-button-label {
+	padding: 0 0 0 36px;
 }
 
-#wpwrap #collapse-button div {
-	padding: 0;
+.folded #collapse-button .collapse-button-label {
+	display: none;
 }
 
-#collapse-button div:after {
+#collapse-button .collapse-button-icon:after {
 	content: "\f148";
 	display: block;
-	line-height: 15px;
-	left: -3px;
-	top: -3px;
-	color: #a0a5aa;
-	color: rgba(240,245,250,0.6);
-	font: normal 20px/1 dashicons !important;
-	speak: none;
-	margin: 0 auto;
-	padding: 0 !important;
 	position: relative;
+	top: 7px;
 	text-align: center;
-	width: 20px;
-	-webkit-transition: all .1s ease-in-out;
-	transition: all .1s ease-in-out;
+	font: normal 20px/1 dashicons !important;
+	speak: none;
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
 }
 
 /* rtl:ignore */
-.folded #collapse-button div:after,
-.rtl #collapse-button div:after {
+.folded #collapse-button .collapse-button-icon:after,
+.rtl #collapse-button .collapse-button-icon:after {
 	-webkit-transform: rotate(180deg);
 	-ms-transform: rotate(180deg);
 	transform: rotate(180deg);
 }
 
-.rtl.folded #collapse-button div:after {
+.rtl.folded #collapse-button .collapse-button-icon:after {
 	-webkit-transform: none;
 	-ms-transform: none;
 	transform: none;
 }
 
+#collapse-button .collapse-button-icon:after,
+#collapse-button .collapse-button-label {
+	-webkit-transition: all .1s ease-in-out;
+	transition: all .1s ease-in-out;
+}
+
 /**
  * Toolbar menu toggle
  */
@@ -652,7 +655,7 @@ li#wp-admin-bar-menu-toggle {
 	.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
 	.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
 	.auto-fold #adminmenu a.menu-top:focus + .wp-submenu,
-	.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu  {
+	.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu {
 		top: 0px;
 		left: 36px;
 	}
@@ -731,22 +734,18 @@ li#wp-admin-bar-menu-toggle {
 		z-index: 10000;
 	}
 
-	.auto-fold #collapse-menu span {
+	.auto-fold #collapse-menu .collapse-button-label {
 		display: none;
 	}
 
-	.auto-fold #collapse-button div {
-		background: none;
-	}
-
 	/* rtl:ignore */
-	.auto-fold #collapse-button div:after {
+	.auto-fold #collapse-button .collapse-button-icon:after {
 		-webkit-transform: rotate(180deg);
 		-ms-transform: rotate(180deg);
 		transform: rotate(180deg);
 	}
 
-	.rtl.auto-fold #collapse-button div:after {
+	.rtl.auto-fold #collapse-button .collapse-button-icon:after {
 		-webkit-transform: none;
 		-ms-transform: none;
 		transform: none;
diff --git a/wp-admin/css/admin-menu.min.css b/wp-admin/css/admin-menu.min.css
index 649eda8f8..4db4daae8 100644
--- a/wp-admin/css/admin-menu.min.css
+++ b/wp-admin/css/admin-menu.min.css
@@ -1 +1 @@
-#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:160px;background-color:#23282d}#adminmenuback{position:fixed;top:0;bottom:-120px;z-index:1}#adminmenu{clear:left;margin:12px 0;padding:0;list-style:none}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:36px}.icon16{height:18px;width:18px;padding:6px;margin:-6px 0 0 -8px;float:left}.icon16:before{color:#82878c;font:400 20px/1 dashicons;speak:none;padding:6px 0;height:34px;width:20px;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.icon16.icon-dashboard:before{content:"\f226"}.icon16.icon-post:before{content:"\f109"}.icon16.icon-media:before{content:"\f104"}.icon16.icon-links:before{content:"\f103"}.icon16.icon-page:before{content:"\f105"}.icon16.icon-comments:before{content:"\f101";margin-top:1px}.icon16.icon-appearance:before{content:"\f100"}.icon16.icon-plugins:before{content:"\f106"}.icon16.icon-users:before{content:"\f110"}.icon16.icon-tools:before{content:"\f107"}.icon16.icon-settings:before{content:"\f108"}.icon16.icon-site:before{content:"\f541"}.icon16.icon-generic:before{content:"\f111"}.icon16.icon-appearance,.icon16.icon-comments,.icon16.icon-dashboard,.icon16.icon-generic,.icon16.icon-links,.icon16.icon-media,.icon16.icon-page,.icon16.icon-plugins,.icon16.icon-post,.icon16.icon-settings,.icon16.icon-site,.icon16.icon-tools,.icon16.icon-users,.menu-icon-appearance div.wp-menu-image,.menu-icon-comments div.wp-menu-image,.menu-icon-dashboard div.wp-menu-image,.menu-icon-generic div.wp-menu-image,.menu-icon-links div.wp-menu-image,.menu-icon-media div.wp-menu-image,.menu-icon-page div.wp-menu-image,.menu-icon-plugins div.wp-menu-image,.menu-icon-post div.wp-menu-image,.menu-icon-settings div.wp-menu-image,.menu-icon-site div.wp-menu-image,.menu-icon-tools div.wp-menu-image,.menu-icon-users div.wp-menu-image{background-image:none!important}#adminmenuwrap{position:relative;float:left;z-index:9990}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px;color:#eee}#adminmenu .wp-submenu a{color:#b4b9be;color:rgba(240,245,250,.7)}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover{background:0 0}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a:hover,#adminmenu li.menu-top>a:focus{color:#00b9eb}#adminmenu li.menu-top{border:none;min-height:34px;position:relative}#adminmenu .wp-submenu{list-style:none;position:absolute;top:-1000em;left:160px;overflow:visible;word-wrap:break-word}#adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{padding:7px 0 8px;z-index:9999;background-color:#32373c;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}#adminmenu a.menu-top:focus+.wp-submenu,.js #adminmenu .opensub .wp-submenu,.js #adminmenu .sub-open,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu{position:relative;z-index:3;top:auto;left:auto;right:auto;bottom:auto;border:0;margin-top:0;-webkit-box-shadow:none;box-shadow:none;background-color:#32373c}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{position:relative;background-color:#191e23;color:#00b9eb}.folded #adminmenu li.menu-top:hover,.folded #adminmenu li.opensub>a.menu-top,.folded #adminmenu li>a.menu-top:focus{z-index:10000}#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu .wp-menu-arrow,#adminmenu .wp-menu-arrow div,#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu{background:#0073aa;color:#fff}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:0;left:36px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:160px;width:auto}#adminmenu .wp-submenu a{font-size:13px;line-height:1.2;margin:0;padding:6px 0}#adminmenu .opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-not-current-submenu li>a,.folded #adminmenu .wp-has-current-submenu li>a{padding-right:16px;padding-left:14px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:6px 12px}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{font-size:14px;font-weight:400;line-height:18px;padding:0}#adminmenu .wp-submenu-head{display:none}.folded #adminmenu .wp-menu-name{position:absolute;left:-999px}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu .wp-menu-image img{padding:9px 0 0;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:8px 0}#adminmenu div.wp-menu-image{float:left;width:36px;height:34px;margin:0;text-align:center}#adminmenu div.wp-menu-image.svg{background-repeat:no-repeat;background-position:center;-webkit-background-size:20px auto;background-size:20px auto}div.wp-menu-image:before{color:#a0a5aa;color:rgba(240,245,250,.6);padding:7px 0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu div.wp-menu-image:before{color:#a0a5aa;color:rgba(240,245,250,.6)}#adminmenu .current div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before{color:#fff}#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before{color:#00b9eb}.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#a0a5aa}.folded #adminmenu div.wp-menu-image{width:35px;height:30px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:34px}.no-font-face #adminmenu .wp-menu-image{display:none}.no-font-face #adminmenu div.wp-menu-name{padding:8px 12px}.no-font-face.auto-fold #adminmenu .wp-menu-name{margin-left:0}.sticky-menu #adminmenuwrap{position:fixed}.wp-menu-arrow{display:none!important}ul#adminmenu a.wp-has-current-submenu{position:relative}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{right:0;border:8px solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#f1f1f1;top:50%;margin-top:-8px}.folded ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.folded ul#adminmenu a.wp-has-current-submenu:after,.folded ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{right:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;top:10px;z-index:10000}.folded ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:18px}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#32373c}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:5px;padding:0;margin:0 0 6px;cursor:inherit}#adminmenu div.separator{height:2px;padding:0}#collapse-button,#collapse-button div{height:15px;width:15px}#adminmenu .wp-submenu .wp-submenu-head{color:#fff;font-weight:400;font-size:14px;padding:8px 4px 8px 11px;margin:-7px 0 4px}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0}#adminmenu .awaiting-mod,#adminmenu .update-plugins{display:inline-block;background-color:#d54e21;color:#fff;font-size:9px;line-height:17px;font-weight:600;margin:1px 0 0 2px;vertical-align:top;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span{display:block;padding:0 6px}#adminmenu li span.count-0,.folded #collapse-menu span{display:none}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod{background-color:#00b9eb;color:#fff}#collapse-menu{font-size:13px;line-height:34px;margin-top:10px;color:#a0a5aa;color:rgba(240,245,250,.6);-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#collapse-menu:hover,#collapse-menu:hover #collapse-button div:after{color:#00b9eb}#collapse-button{float:left;margin:10px 8px 10px 11px;-webkit-border-radius:10px;border-radius:10px}#wpwrap #collapse-button div{padding:0}#collapse-button div:after{content:"\f148";display:block;line-height:15px;left:-3px;top:-3px;color:#a0a5aa;color:rgba(240,245,250,.6);font:400 20px/1 dashicons!important;speak:none;margin:0 auto;padding:0!important;position:relative;text-align:center;width:20px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folded #collapse-button div:after,.rtl #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.folded #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}.customize-support #menu-appearance a[href="themes.php?page=custom-header"],.customize-support #menu-appearance a[href="themes.php?page=custom-background"],li#wp-admin-bar-menu-toggle{display:none}@media only screen and (max-width:960px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-left:36px}.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:36px}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{top:0;left:36px}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu,.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em;margin-right:-1px;padding:7px 0 8px;z-index:9999}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{min-width:150px;width:auto}.auto-fold #adminmenu .wp-has-current-submenu li>a{padding-right:16px;padding-left:14px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-left:12px}.auto-fold #adminmenu .wp-menu-name{position:absolute;left:-999px}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{height:30px;width:34px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.wp-menu-open{border:0}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:16px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}.auto-fold #adminmenu li.menu-top:hover,.auto-fold #adminmenu li.opensub>a.menu-top,.auto-fold #adminmenu li>a.menu-top:focus{z-index:10000}.auto-fold #collapse-menu span{display:none}.auto-fold #collapse-button div{background:0 0}.auto-fold #collapse-button div:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.auto-fold #collapse-button div:after{-webkit-transform:none;-ms-transform:none;transform:none}}@media screen and (max-width:782px){.auto-fold #wpcontent{position:relative;margin-left:0;padding-left:10px}.sticky-menu #adminmenuwrap{position:relative;z-index:auto;top:0}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{position:absolute;width:190px;z-index:100}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{display:none}.auto-fold .wp-responsive-open #adminmenuback,.auto-fold .wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu li.menu-top{width:100%}.auto-fold #adminmenu li a{font-size:16px;padding:5px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding:10px 10px 10px 20px}.auto-fold #adminmenu .wp-menu-name{position:static;margin-left:35px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li.current>a.current:after{border-width:8px;margin-top:-8px}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{display:none}#adminmenu .wp-submenu{position:relative;display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu{position:relative;display:block;top:0;left:-1px;-webkit-box-shadow:none;box-shadow:none}.auto-fold #adminmenu .selected .wp-submenu:after,.auto-fold #adminmenu .wp-menu-open .wp-submenu:after{display:none}.auto-fold #adminmenu .opensub .wp-submenu{display:none}.auto-fold #adminmenu .selected .wp-submenu{display:block}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:block}.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{position:relative;left:-1px;right:0;top:0}#adminmenu .wp-submenu .wp-submenu-head{display:none}#wp-responsive-toggle{position:fixed;top:5px;left:4px;padding-right:10px;z-index:99999;border:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpadminbar #wp-admin-bar-menu-toggle a{display:block;padding:0;overflow:hidden;outline:0;text-decoration:none;border:1px solid transparent;background:0 0;height:44px;margin-left:-1px}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#32373c}li#wp-admin-bar-menu-toggle{display:block}#wpadminbar #wp-admin-bar-menu-toggle a:hover{border:1px solid transparent}#wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{content:"\f228";display:inline-block;float:left;font:400 40px/45px dashicons;vertical-align:middle;outline:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:44px;width:50px;padding:0;border:none;text-align:center;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#00b9eb}}@media screen and (max-width:600px){#adminmenuback,#adminmenuwrap{display:none}.wp-responsive-open #adminmenuback,.wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu{top:46px}}
\ No newline at end of file
+#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:160px;background-color:#23282d}#adminmenuback{position:fixed;top:0;bottom:-120px;z-index:1}#adminmenu{clear:left;margin:12px 0;padding:0;list-style:none}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:36px}.icon16{height:18px;width:18px;padding:6px;margin:-6px 0 0 -8px;float:left}.icon16:before{color:#82878c;font:400 20px/1 dashicons;speak:none;padding:6px 0;height:34px;width:20px;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.icon16.icon-dashboard:before{content:"\f226"}.icon16.icon-post:before{content:"\f109"}.icon16.icon-media:before{content:"\f104"}.icon16.icon-links:before{content:"\f103"}.icon16.icon-page:before{content:"\f105"}.icon16.icon-comments:before{content:"\f101";margin-top:1px}.icon16.icon-appearance:before{content:"\f100"}.icon16.icon-plugins:before{content:"\f106"}.icon16.icon-users:before{content:"\f110"}.icon16.icon-tools:before{content:"\f107"}.icon16.icon-settings:before{content:"\f108"}.icon16.icon-site:before{content:"\f541"}.icon16.icon-generic:before{content:"\f111"}.icon16.icon-appearance,.icon16.icon-comments,.icon16.icon-dashboard,.icon16.icon-generic,.icon16.icon-links,.icon16.icon-media,.icon16.icon-page,.icon16.icon-plugins,.icon16.icon-post,.icon16.icon-settings,.icon16.icon-site,.icon16.icon-tools,.icon16.icon-users,.menu-icon-appearance div.wp-menu-image,.menu-icon-comments div.wp-menu-image,.menu-icon-dashboard div.wp-menu-image,.menu-icon-generic div.wp-menu-image,.menu-icon-links div.wp-menu-image,.menu-icon-media div.wp-menu-image,.menu-icon-page div.wp-menu-image,.menu-icon-plugins div.wp-menu-image,.menu-icon-post div.wp-menu-image,.menu-icon-settings div.wp-menu-image,.menu-icon-site div.wp-menu-image,.menu-icon-tools div.wp-menu-image,.menu-icon-users div.wp-menu-image{background-image:none!important}#adminmenuwrap{position:relative;float:left;z-index:9990}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px;color:#eee}#adminmenu .wp-submenu a{color:#b4b9be;color:rgba(240,245,250,.7)}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover{background:0 0}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a:hover,#adminmenu li.menu-top>a:focus{color:#00b9eb}#adminmenu li.menu-top{border:none;min-height:34px;position:relative}#adminmenu .wp-submenu{list-style:none;position:absolute;top:-1000em;left:160px;overflow:visible;word-wrap:break-word}#adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{padding:7px 0 8px;z-index:9999;background-color:#32373c;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}#adminmenu a.menu-top:focus+.wp-submenu,.js #adminmenu .opensub .wp-submenu,.js #adminmenu .sub-open,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu{position:relative;z-index:3;top:auto;left:auto;right:auto;bottom:auto;border:0;margin-top:0;-webkit-box-shadow:none;box-shadow:none;background-color:#32373c}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{position:relative;background-color:#191e23;color:#00b9eb}.folded #adminmenu li.menu-top:hover,.folded #adminmenu li.opensub>a.menu-top,.folded #adminmenu li>a.menu-top:focus{z-index:10000}#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu .wp-menu-arrow,#adminmenu .wp-menu-arrow div,#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu{background:#0073aa;color:#fff}.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:0;left:36px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:160px;width:auto}#adminmenu .wp-submenu a{font-size:13px;line-height:1.2;margin:0;padding:6px 0}#adminmenu .opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-not-current-submenu li>a,.folded #adminmenu .wp-has-current-submenu li>a{padding-right:16px;padding-left:14px;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:6px 12px}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{font-size:14px;font-weight:400;line-height:18px;padding:0}#adminmenu .wp-submenu-head{display:none}.folded #adminmenu .wp-menu-name{position:absolute;left:-999px}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu .wp-menu-image img{padding:9px 0 0;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:8px 0}#adminmenu div.wp-menu-image{float:left;width:36px;height:34px;margin:0;text-align:center}#adminmenu div.wp-menu-image.svg{background-repeat:no-repeat;background-position:center;-webkit-background-size:20px auto;background-size:20px auto}div.wp-menu-image:before{color:#a0a5aa;color:rgba(240,245,250,.6);padding:7px 0;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#adminmenu div.wp-menu-image:before{color:#a0a5aa;color:rgba(240,245,250,.6)}#adminmenu .current div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before{color:#fff}#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before{color:#00b9eb}.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#a0a5aa}.folded #adminmenu div.wp-menu-image{width:35px;height:30px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:34px}.no-font-face #adminmenu .wp-menu-image{display:none}.no-font-face #adminmenu div.wp-menu-name{padding:8px 12px}.no-font-face.auto-fold #adminmenu .wp-menu-name{margin-left:0}.sticky-menu #adminmenuwrap{position:fixed}.wp-menu-arrow{display:none!important}ul#adminmenu a.wp-has-current-submenu{position:relative}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{right:0;border:8px solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-right-color:#f1f1f1;top:50%;margin-top:-8px}.folded ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.folded ul#adminmenu a.wp-has-current-submenu:after,.folded ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{right:0;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-width:8px;top:10px;z-index:10000}.folded ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:18px}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#32373c}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:5px;padding:0;margin:0 0 6px;cursor:inherit}#adminmenu div.separator{height:2px;padding:0}#adminmenu .wp-submenu .wp-submenu-head{color:#fff;font-weight:400;font-size:14px;padding:8px 4px 8px 11px;margin:-7px 0 4px}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0}#adminmenu .awaiting-mod,#adminmenu .update-plugins{display:inline-block;background-color:#d54e21;color:#fff;font-size:9px;line-height:17px;font-weight:600;margin:1px 0 0 2px;vertical-align:top;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span{display:block;padding:0 6px}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod{background-color:#00b9eb;color:#fff}#adminmenu li span.count-0{display:none}#collapse-button{display:block;width:100%;height:34px;margin:0;border:none;padding:0;position:relative;overflow:visible;line-height:34px;background:0 0;color:#aaa;cursor:pointer;outline:0}#collapse-button:focus,#collapse-button:hover{color:#00b9eb}#collapse-button .collapse-button-icon,#collapse-button .collapse-button-label{display:block;position:absolute;top:0;left:0;line-height:34px}#collapse-button .collapse-button-icon{width:36px;height:34px}#collapse-button .collapse-button-label{padding:0 0 0 36px}.folded #collapse-button .collapse-button-label{display:none}#collapse-button .collapse-button-icon:after{content:"\f148";display:block;position:relative;top:7px;text-align:center;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.folded #collapse-button .collapse-button-icon:after,.rtl #collapse-button .collapse-button-icon:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.folded #collapse-button .collapse-button-icon:after{-webkit-transform:none;-ms-transform:none;transform:none}#collapse-button .collapse-button-icon:after,#collapse-button .collapse-button-label{-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.customize-support #menu-appearance a[href="themes.php?page=custom-header"],.customize-support #menu-appearance a[href="themes.php?page=custom-background"],li#wp-admin-bar-menu-toggle{display:none}@media only screen and (max-width:960px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-left:36px}.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:36px}.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{top:0;left:36px}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu,.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{position:absolute;top:-1000em;margin-right:-1px;padding:7px 0 8px;z-index:9999}.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{min-width:150px;width:auto}.auto-fold #adminmenu .wp-has-current-submenu li>a{padding-right:16px;padding-left:14px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-left:12px}.auto-fold #adminmenu .wp-menu-name{position:absolute;left:-999px}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{height:30px;width:34px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.wp-menu-open{border:0}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:none}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{border-width:4px;margin-top:-4px;top:16px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li a.current:after{border-width:4px;margin-top:-4px}.auto-fold #adminmenu li.menu-top:hover,.auto-fold #adminmenu li.opensub>a.menu-top,.auto-fold #adminmenu li>a.menu-top:focus{z-index:10000}.auto-fold #collapse-menu .collapse-button-label{display:none}.auto-fold #collapse-button .collapse-button-icon:after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.rtl.auto-fold #collapse-button .collapse-button-icon:after{-webkit-transform:none;-ms-transform:none;transform:none}}@media screen and (max-width:782px){.auto-fold #wpcontent{position:relative;margin-left:0;padding-left:10px}.sticky-menu #adminmenuwrap{position:relative;z-index:auto;top:0}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{position:absolute;width:190px;z-index:100}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{display:none}.auto-fold .wp-responsive-open #adminmenuback,.auto-fold .wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu li.menu-top{width:100%}.auto-fold #adminmenu li a{font-size:16px;padding:5px}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding:10px 10px 10px 20px}.auto-fold #adminmenu .wp-menu-name{position:static;margin-left:35px}.auto-fold ul#adminmenu a.wp-has-current-submenu:after,.auto-fold ul#adminmenu>li.current>a.current:after{border-width:8px;margin-top:-8px}.auto-fold ul#adminmenu li.wp-has-submenu.wp-not-current-submenu:hover:after{display:none}#adminmenu .wp-submenu{position:relative;display:none}.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu{position:relative;display:block;top:0;left:-1px;-webkit-box-shadow:none;box-shadow:none}.auto-fold #adminmenu .selected .wp-submenu:after,.auto-fold #adminmenu .wp-menu-open .wp-submenu:after{display:none}.auto-fold #adminmenu .opensub .wp-submenu{display:none}.auto-fold #adminmenu .selected .wp-submenu{display:block}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after{display:block}.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu{position:relative;left:-1px;right:0;top:0}#adminmenu .wp-submenu .wp-submenu-head{display:none}#wp-responsive-toggle{position:fixed;top:5px;left:4px;padding-right:10px;z-index:99999;border:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpadminbar #wp-admin-bar-menu-toggle a{display:block;padding:0;overflow:hidden;outline:0;text-decoration:none;border:1px solid transparent;background:0 0;height:44px;margin-left:-1px}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#32373c}li#wp-admin-bar-menu-toggle{display:block}#wpadminbar #wp-admin-bar-menu-toggle a:hover{border:1px solid transparent}#wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{content:"\f228";display:inline-block;float:left;font:400 40px/45px dashicons;vertical-align:middle;outline:0;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:44px;width:50px;padding:0;border:none;text-align:center;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#00b9eb}}@media screen and (max-width:600px){#adminmenuback,#adminmenuwrap{display:none}.wp-responsive-open #adminmenuback,.wp-responsive-open #adminmenuwrap{display:block}.auto-fold #adminmenu{top:46px}}
\ No newline at end of file
diff --git a/wp-admin/css/color-picker-rtl.css b/wp-admin/css/color-picker-rtl.css
index b502a0fd0..b69714f49 100644
--- a/wp-admin/css/color-picker-rtl.css
+++ b/wp-admin/css/color-picker-rtl.css
@@ -124,3 +124,13 @@
 	border-color: #c00;
 	color: #000;
 }
+
+.iris-picker .ui-square-handle:focus,
+.iris-picker .iris-strip .ui-slider-handle:focus {
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
\ No newline at end of file
diff --git a/wp-admin/css/color-picker-rtl.min.css b/wp-admin/css/color-picker-rtl.min.css
index f14e2407a..62d1055c2 100644
--- a/wp-admin/css/color-picker-rtl.min.css
+++ b/wp-admin/css/color-picker-rtl.min.css
@@ -1 +1 @@
-.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;height:22px;margin:0 0 6px 6px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:bottom;display:inline-block;padding-right:30px;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc;top:0}.wp-color-result:after{background:#f7f7f7;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px;border-right:1px solid #ccc;color:#555;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;left:0;text-align:center;top:0}.wp-color-result:focus,.wp-color-result:hover{background:#fafafa;border-color:#999;color:#23282d}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#23282d;border-color:#a0a5aa;border-right:1px solid #999}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-right:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{-webkit-border-radius:0;border-radius:0;border-color:#ddd;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:65px;font-size:12px;font-family:monospace;line-height:16px;margin:0}.wp-color-picker::-webkit-input-placeholder{color:#72777c}.wp-color-picker::-moz-placeholder{color:#72777c;opacity:1}.wp-color-picker:-ms-input-placeholder{color:#72777c}.wp-picker-container input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}
\ No newline at end of file
+.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;height:22px;margin:0 0 6px 6px;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:bottom;display:inline-block;padding-right:30px;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc;top:0}.wp-color-result:after{background:#f7f7f7;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px;border-right:1px solid #ccc;color:#555;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;left:0;text-align:center;top:0}.wp-color-result:focus,.wp-color-result:hover{background:#fafafa;border-color:#999;color:#23282d}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#23282d;border-color:#a0a5aa;border-right:1px solid #999}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-right:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{-webkit-border-radius:0;border-radius:0;border-color:#ddd;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:65px;font-size:12px;font-family:monospace;line-height:16px;margin:0}.wp-color-picker::-webkit-input-placeholder{color:#72777c}.wp-color-picker::-moz-placeholder{color:#72777c;opacity:1}.wp-color-picker:-ms-input-placeholder{color:#72777c}.wp-picker-container input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}.iris-picker .iris-strip .ui-slider-handle:focus,.iris-picker .ui-square-handle:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}
\ No newline at end of file
diff --git a/wp-admin/css/color-picker.css b/wp-admin/css/color-picker.css
index 50edbdadf..baa1d94c8 100644
--- a/wp-admin/css/color-picker.css
+++ b/wp-admin/css/color-picker.css
@@ -124,3 +124,13 @@
 	border-color: #c00;
 	color: #000;
 }
+
+.iris-picker .ui-square-handle:focus,
+.iris-picker .iris-strip .ui-slider-handle:focus {
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
\ No newline at end of file
diff --git a/wp-admin/css/color-picker.min.css b/wp-admin/css/color-picker.min.css
index bfbcee14d..2b96caf6b 100644
--- a/wp-admin/css/color-picker.min.css
+++ b/wp-admin/css/color-picker.min.css
@@ -1 +1 @@
-.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;height:22px;margin:0 6px 6px 0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:bottom;display:inline-block;padding-left:30px;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc;top:0}.wp-color-result:after{background:#f7f7f7;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;border-left:1px solid #ccc;color:#555;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;right:0;text-align:center;top:0}.wp-color-result:focus,.wp-color-result:hover{background:#fafafa;border-color:#999;color:#23282d}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#23282d;border-color:#a0a5aa;border-left:1px solid #999}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-left:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{-webkit-border-radius:0;border-radius:0;border-color:#ddd;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:65px;font-size:12px;font-family:monospace;line-height:16px;margin:0}.wp-color-picker::-webkit-input-placeholder{color:#72777c}.wp-color-picker::-moz-placeholder{color:#72777c;opacity:1}.wp-color-picker:-ms-input-placeholder{color:#72777c}.wp-picker-container input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}
\ No newline at end of file
+.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;height:22px;margin:0 6px 6px 0;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:bottom;display:inline-block;padding-left:30px;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc;top:0}.wp-color-result:after{background:#f7f7f7;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;border-left:1px solid #ccc;color:#555;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;right:0;text-align:center;top:0}.wp-color-result:focus,.wp-color-result:hover{background:#fafafa;border-color:#999;color:#23282d}.wp-color-result:focus:after,.wp-color-result:hover:after{color:#23282d;border-color:#a0a5aa;border-left:1px solid #999}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-left:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{-webkit-border-radius:0;border-radius:0;border-color:#ddd;margin-top:6px}.wp-picker-container input[type=text].wp-color-picker{width:65px;font-size:12px;font-family:monospace;line-height:16px;margin:0}.wp-color-picker::-webkit-input-placeholder{color:#72777c}.wp-color-picker::-moz-placeholder{color:#72777c;opacity:1}.wp-color-picker:-ms-input-placeholder{color:#72777c}.wp-picker-container input[type=text].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}.iris-picker .iris-strip .ui-slider-handle:focus,.iris-picker .ui-square-handle:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}
\ No newline at end of file
diff --git a/wp-admin/css/colors/_admin.scss b/wp-admin/css/colors/_admin.scss
index f03c211d3..da53b0084 100644
--- a/wp-admin/css/colors/_admin.scss
+++ b/wp-admin/css/colors/_admin.scss
@@ -3,7 +3,7 @@
 @import 'mixins';
 
 
-html {
+body {
 	background: $body-background;
 }
 
@@ -227,23 +227,15 @@ ul#adminmenu > li.current > a.current:after {
 
 /* Admin Menu: collapse button */
 
-#collapse-menu {
+#collapse-button {
     color: $menu-collapse-text;
 }
 
-#collapse-menu:hover {
-    color: $menu-collapse-focus-text;
+#collapse-button:hover,
+#collapse-button:focus {
+    color: $menu-submenu-focus-text;
 }
 
-#collapse-button div:after {
-    color: $menu-collapse-icon;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-    color: $menu-collapse-focus-icon;
-}
-
-
 /* Admin Bar */
 
 #wpadminbar {
@@ -324,6 +316,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -474,17 +467,6 @@ body.more-filters-opened .more-filters:focus:before {
 	color: $menu-highlight-text;
 }
 
-/* Customize */
-
-#customize-theme-controls .widget-area-select .selected {
-	background-color: $menu-highlight-background;
-	color: $menu-highlight-text;
-}
-
-#customize-footer-actions .devices button:focus {
-	border-bottom-color: $highlight-color;
-}
-
 /* Responsive Component */
 
 div#wp-responsive-toggle a:before {
diff --git a/wp-admin/css/colors/_mixins.scss b/wp-admin/css/colors/_mixins.scss
index c8213c18c..b9dd2efe8 100644
--- a/wp-admin/css/colors/_mixins.scss
+++ b/wp-admin/css/colors/_mixins.scss
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-@mixin button( $button-color, $text-color: white ) {
+@mixin button( $button-color, $text-color: #fff ) {
 	background: $button-color;
 	border-color: darken( $button-color, 10% ) darken( $button-color, 15% ) darken( $button-color, 15% );
 	color: $text-color;
diff --git a/wp-admin/css/colors/blue/colors-rtl.css b/wp-admin/css/colors/blue/colors-rtl.css
index dd214af2e..0d757dff6 100644
--- a/wp-admin/css/colors/blue/colors-rtl.css
+++ b/wp-admin/css/colors/blue/colors-rtl.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #e1a948;
   border-color: #d39323 #bd831f #bd831f;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #bd831f;
   box-shadow: 0 1px 0 #bd831f;
   text-shadow: 0 -1px 1px #bd831f, -1px 0 1px #bd831f, 0 1px 1px #bd831f, 1px 0 1px #bd831f;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #e3af55;
   border-color: #bd831f;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #bd831f;
   box-shadow: 0 1px 0 #bd831f;
 }
@@ -259,19 +259,12 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
-  color: #e5f8ff;
-}
-
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
+#collapse-button {
   color: #e5f8ff;
 }
 
-#collapse-menu:hover #collapse-button div:after {
+#collapse-button:hover,
+#collapse-button:focus {
   color: #fff;
 }
 
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #096484;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #096484;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #e5f8ff;
diff --git a/wp-admin/css/colors/blue/colors-rtl.min.css b/wp-admin/css/colors/blue/colors-rtl.min.css
index 2bc550a83..715a331b7 100644
--- a/wp-admin/css/colors/blue/colors-rtl.min.css
+++ b/wp-admin/css/colors/blue/colors-rtl.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#096484}input[type=radio]:checked:before{background:#096484}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#e1a948;border-color:#d39323 #bd831f #bd831f;color:#fff;-webkit-box-shadow:0 1px 0 #bd831f;box-shadow:0 1px 0 #bd831f;text-shadow:0 -1px 1px #bd831f,-1px 0 1px #bd831f,0 1px 1px #bd831f,1px 0 1px #bd831f}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#e3af55;border-color:#bd831f;color:#fff;-webkit-box-shadow:0 1px 0 #bd831f;box-shadow:0 1px 0 #bd831f}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#d39323;border-color:#bd831f;-webkit-box-shadow:inset 0 2px 0 #bd831f;box-shadow:inset 0 2px 0 #bd831f}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cdc7!important;background:#db9925!important;border-color:#bd831f!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #bd831f!important;box-shadow:0 2px 0 #bd831f!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #bd831f!important;box-shadow:inset 0 3px 0 #bd831f!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#52accc}.wp-core-ui .wp-ui-text-primary{color:#52accc}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#096484}.wp-core-ui .wp-ui-text-highlight{color:#096484}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e1a948}.wp-core-ui .wp-ui-text-notification{color:#e1a948}.wp-core-ui .wp-ui-text-icon{color:#e5f8ff}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#52accc}.view-switch a.current:before{color:#52accc}.view-switch a:hover:before{color:#e1a948}#adminmenu,#adminmenuback,#adminmenuwrap{background:#52accc}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#e5f8ff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#096484}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4796b3}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#4796b3}#adminmenu .wp-submenu .wp-submenu-head{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#fff}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#096484}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e1a948}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4796b3}#collapse-menu{color:#e5f8ff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#e5f8ff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#52accc}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#e5f8ff}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#fff;background:#4796b3}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#fff}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4796b3}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#74b6ce}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#e2ecf1}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#e5f8ff}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#fff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#fff}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#e5f8ff}#wpadminbar #adminbarsearch:before{color:#e5f8ff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6eb9d4}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6eb9d4;background-color:#6eb9d4}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info .username{color:#e2ecf1}.wp-pointer .wp-pointer-content h3{background-color:#096484;border-color:#07526c}.wp-pointer .wp-pointer-content h3:before{color:#096484}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#096484}.media-item .bar,.media-progress-bar div{background-color:#096484}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484}.attachment.details .check{background-color:#096484;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #096484;box-shadow:0 0 0 1px #fff,0 0 0 2px #096484}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #096484;box-shadow:0 0 0 1px #fff,0 0 0 3px #096484}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#096484}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#096484}.theme-filter.current,.theme-section.current{border-bottom-color:#52accc}body.more-filters-opened .more-filters{color:#fff;background-color:#52accc}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#096484;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#096484;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#096484}div#wp-responsive-toggle a:before{color:#e5f8ff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#096484}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4796b3}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#e5f8ff}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#096484}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#096484}input[type=radio]:checked:before{background:#096484}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#e1a948;border-color:#d39323 #bd831f #bd831f;color:#fff;-webkit-box-shadow:0 1px 0 #bd831f;box-shadow:0 1px 0 #bd831f;text-shadow:0 -1px 1px #bd831f,-1px 0 1px #bd831f,0 1px 1px #bd831f,1px 0 1px #bd831f}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#e3af55;border-color:#bd831f;color:#fff;-webkit-box-shadow:0 1px 0 #bd831f;box-shadow:0 1px 0 #bd831f}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#d39323;border-color:#bd831f;-webkit-box-shadow:inset 0 2px 0 #bd831f;box-shadow:inset 0 2px 0 #bd831f}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cdc7!important;background:#db9925!important;border-color:#bd831f!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #bd831f!important;box-shadow:0 2px 0 #bd831f!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #bd831f!important;box-shadow:inset 0 3px 0 #bd831f!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#52accc}.wp-core-ui .wp-ui-text-primary{color:#52accc}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#096484}.wp-core-ui .wp-ui-text-highlight{color:#096484}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e1a948}.wp-core-ui .wp-ui-text-notification{color:#e1a948}.wp-core-ui .wp-ui-text-icon{color:#e5f8ff}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#52accc}.view-switch a.current:before{color:#52accc}.view-switch a:hover:before{color:#e1a948}#adminmenu,#adminmenuback,#adminmenuwrap{background:#52accc}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#e5f8ff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#096484}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4796b3}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#4796b3}#adminmenu .wp-submenu .wp-submenu-head{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#fff}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#096484}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e1a948}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4796b3}#collapse-button{color:#e5f8ff}#collapse-button:focus,#collapse-button:hover{color:#fff}#wpadminbar{color:#fff;background:#52accc}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#e5f8ff}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#fff;background:#4796b3}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#fff}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4796b3}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#74b6ce}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#e2ecf1}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#e5f8ff}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#fff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#fff}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#e5f8ff}#wpadminbar #adminbarsearch:before{color:#e5f8ff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6eb9d4}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6eb9d4;background-color:#6eb9d4}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info .username{color:#e2ecf1}.wp-pointer .wp-pointer-content h3{background-color:#096484;border-color:#07526c}.wp-pointer .wp-pointer-content h3:before{color:#096484}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#096484}.media-item .bar,.media-progress-bar div{background-color:#096484}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484}.attachment.details .check{background-color:#096484;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #096484;box-shadow:0 0 0 1px #fff,0 0 0 2px #096484}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #096484;box-shadow:0 0 0 1px #fff,0 0 0 3px #096484}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#096484}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#096484}.theme-filter.current,.theme-section.current{border-bottom-color:#52accc}body.more-filters-opened .more-filters{color:#fff;background-color:#52accc}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#096484;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#096484;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#e5f8ff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#096484}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4796b3}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#e5f8ff}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#096484}
\ No newline at end of file
diff --git a/wp-admin/css/colors/blue/colors.css b/wp-admin/css/colors/blue/colors.css
index 14835f8a4..4f79db5fa 100644
--- a/wp-admin/css/colors/blue/colors.css
+++ b/wp-admin/css/colors/blue/colors.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #e1a948;
   border-color: #d39323 #bd831f #bd831f;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #bd831f;
   box-shadow: 0 1px 0 #bd831f;
   text-shadow: 0 -1px 1px #bd831f, 1px 0 1px #bd831f, 0 1px 1px #bd831f, -1px 0 1px #bd831f;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #e3af55;
   border-color: #bd831f;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #bd831f;
   box-shadow: 0 1px 0 #bd831f;
 }
@@ -259,19 +259,12 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
-  color: #e5f8ff;
-}
-
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
+#collapse-button {
   color: #e5f8ff;
 }
 
-#collapse-menu:hover #collapse-button div:after {
+#collapse-button:hover,
+#collapse-button:focus {
   color: #fff;
 }
 
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #096484;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #096484;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #e5f8ff;
diff --git a/wp-admin/css/colors/blue/colors.min.css b/wp-admin/css/colors/blue/colors.min.css
index 45d54dab5..c3435bc4a 100644
--- a/wp-admin/css/colors/blue/colors.min.css
+++ b/wp-admin/css/colors/blue/colors.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#096484}input[type=radio]:checked:before{background:#096484}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#e1a948;border-color:#d39323 #bd831f #bd831f;color:#fff;-webkit-box-shadow:0 1px 0 #bd831f;box-shadow:0 1px 0 #bd831f;text-shadow:0 -1px 1px #bd831f,1px 0 1px #bd831f,0 1px 1px #bd831f,-1px 0 1px #bd831f}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#e3af55;border-color:#bd831f;color:#fff;-webkit-box-shadow:0 1px 0 #bd831f;box-shadow:0 1px 0 #bd831f}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#d39323;border-color:#bd831f;-webkit-box-shadow:inset 0 2px 0 #bd831f;box-shadow:inset 0 2px 0 #bd831f}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cdc7!important;background:#db9925!important;border-color:#bd831f!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #bd831f!important;box-shadow:0 2px 0 #bd831f!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #bd831f!important;box-shadow:inset 0 3px 0 #bd831f!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#52accc}.wp-core-ui .wp-ui-text-primary{color:#52accc}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#096484}.wp-core-ui .wp-ui-text-highlight{color:#096484}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e1a948}.wp-core-ui .wp-ui-text-notification{color:#e1a948}.wp-core-ui .wp-ui-text-icon{color:#e5f8ff}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#52accc}.view-switch a.current:before{color:#52accc}.view-switch a:hover:before{color:#e1a948}#adminmenu,#adminmenuback,#adminmenuwrap{background:#52accc}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#e5f8ff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#096484}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4796b3}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#4796b3}#adminmenu .wp-submenu .wp-submenu-head{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#fff}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#096484}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e1a948}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4796b3}#collapse-menu{color:#e5f8ff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#e5f8ff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#52accc}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#e5f8ff}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#fff;background:#4796b3}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#fff}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4796b3}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#74b6ce}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#e2ecf1}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#e5f8ff}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#fff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#fff}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#e5f8ff}#wpadminbar #adminbarsearch:before{color:#e5f8ff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6eb9d4}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6eb9d4;background-color:#6eb9d4}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info .username{color:#e2ecf1}.wp-pointer .wp-pointer-content h3{background-color:#096484;border-color:#07526c}.wp-pointer .wp-pointer-content h3:before{color:#096484}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#096484}.media-item .bar,.media-progress-bar div{background-color:#096484}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484}.attachment.details .check{background-color:#096484;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #096484;box-shadow:0 0 0 1px #fff,0 0 0 2px #096484}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #096484;box-shadow:0 0 0 1px #fff,0 0 0 3px #096484}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#096484}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#096484}.theme-filter.current,.theme-section.current{border-bottom-color:#52accc}body.more-filters-opened .more-filters{color:#fff;background-color:#52accc}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#096484;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#096484;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#096484}div#wp-responsive-toggle a:before{color:#e5f8ff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#096484}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4796b3}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#e5f8ff}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#096484}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#096484}input[type=radio]:checked:before{background:#096484}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#e1a948;border-color:#d39323 #bd831f #bd831f;color:#fff;-webkit-box-shadow:0 1px 0 #bd831f;box-shadow:0 1px 0 #bd831f;text-shadow:0 -1px 1px #bd831f,1px 0 1px #bd831f,0 1px 1px #bd831f,-1px 0 1px #bd831f}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#e3af55;border-color:#bd831f;color:#fff;-webkit-box-shadow:0 1px 0 #bd831f;box-shadow:0 1px 0 #bd831f}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #d39323,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#d39323;border-color:#bd831f;-webkit-box-shadow:inset 0 2px 0 #bd831f;box-shadow:inset 0 2px 0 #bd831f}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cdc7!important;background:#db9925!important;border-color:#bd831f!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #bd831f!important;box-shadow:0 2px 0 #bd831f!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #bd831f!important;box-shadow:inset 0 3px 0 #bd831f!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#52accc}.wp-core-ui .wp-ui-text-primary{color:#52accc}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#096484}.wp-core-ui .wp-ui-text-highlight{color:#096484}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e1a948}.wp-core-ui .wp-ui-text-notification{color:#e1a948}.wp-core-ui .wp-ui-text-icon{color:#e5f8ff}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#52accc}.view-switch a.current:before{color:#52accc}.view-switch a:hover:before{color:#e1a948}#adminmenu,#adminmenuback,#adminmenuwrap{background:#52accc}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#e5f8ff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#096484}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#4796b3}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#4796b3}#adminmenu .wp-submenu .wp-submenu-head{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#e2ecf1}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#fff}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#096484}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e1a948}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#4796b3}#collapse-button{color:#e5f8ff}#collapse-button:focus,#collapse-button:hover{color:#fff}#wpadminbar{color:#fff;background:#52accc}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#e5f8ff}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#fff;background:#4796b3}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#fff}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#4796b3}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#74b6ce}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#e2ecf1}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#e5f8ff}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#fff}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#fff}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#e5f8ff}#wpadminbar #adminbarsearch:before{color:#e5f8ff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6eb9d4}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6eb9d4;background-color:#6eb9d4}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info .username{color:#e2ecf1}.wp-pointer .wp-pointer-content h3{background-color:#096484;border-color:#07526c}.wp-pointer .wp-pointer-content h3:before{color:#096484}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#096484}.media-item .bar,.media-progress-bar div{background-color:#096484}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #096484}.attachment.details .check{background-color:#096484;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #096484;box-shadow:0 0 0 1px #fff,0 0 0 2px #096484}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #096484;box-shadow:0 0 0 1px #fff,0 0 0 3px #096484}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#096484}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#096484}.theme-filter.current,.theme-section.current{border-bottom-color:#52accc}body.more-filters-opened .more-filters{color:#fff;background-color:#52accc}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#096484;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#096484;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#e5f8ff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#096484}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4796b3}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#e5f8ff}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#096484}
\ No newline at end of file
diff --git a/wp-admin/css/colors/coffee/colors-rtl.css b/wp-admin/css/colors/coffee/colors-rtl.css
index d82f7af8a..7cfa4f164 100644
--- a/wp-admin/css/colors/coffee/colors-rtl.css
+++ b/wp-admin/css/colors/coffee/colors-rtl.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #c7a589;
   border-color: #b78b66 #ae7d55 #ae7d55;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ae7d55;
   box-shadow: 0 1px 0 #ae7d55;
   text-shadow: 0 -1px 1px #ae7d55, -1px 0 1px #ae7d55, 0 1px 1px #ae7d55, 1px 0 1px #ae7d55;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #ccad93;
   border-color: #ae7d55;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ae7d55;
   box-shadow: 0 1px 0 #ae7d55;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #f3f2f1;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #f3f2f1;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #c7a589;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #c7a589;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #c7a589;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #f3f2f1;
diff --git a/wp-admin/css/colors/coffee/colors-rtl.min.css b/wp-admin/css/colors/coffee/colors-rtl.min.css
index 4530597ff..2ef2bd098 100644
--- a/wp-admin/css/colors/coffee/colors-rtl.min.css
+++ b/wp-admin/css/colors/coffee/colors-rtl.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#59524c}input[type=radio]:checked:before{background:#59524c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#c7a589;border-color:#b78b66 #ae7d55 #ae7d55;color:#fff;-webkit-box-shadow:0 1px 0 #ae7d55;box-shadow:0 1px 0 #ae7d55;text-shadow:0 -1px 1px #ae7d55,-1px 0 1px #ae7d55,0 1px 1px #ae7d55,1px 0 1px #ae7d55}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#ccad93;border-color:#ae7d55;color:#fff;-webkit-box-shadow:0 1px 0 #ae7d55;box-shadow:0 1px 0 #ae7d55}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#b78b66;border-color:#ae7d55;-webkit-box-shadow:inset 0 2px 0 #ae7d55;box-shadow:inset 0 2px 0 #ae7d55}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1ccc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ae7d55!important;box-shadow:0 2px 0 #ae7d55!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ae7d55!important;box-shadow:inset 0 3px 0 #ae7d55!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#59524c}.wp-core-ui .wp-ui-text-primary{color:#59524c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#c7a589}.wp-core-ui .wp-ui-text-highlight{color:#c7a589}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#9ea476}.wp-core-ui .wp-ui-text-notification{color:#9ea476}.wp-core-ui .wp-ui-text-icon{color:#f3f2f1}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#59524c}.view-switch a.current:before{color:#59524c}.view-switch a:hover:before{color:#9ea476}#adminmenu,#adminmenuback,#adminmenuwrap{background:#59524c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f2f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#c7a589}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#46403c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#46403c}#adminmenu .wp-submenu .wp-submenu-head{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#c7a589}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#c7a589}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#c7a589}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#9ea476}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#46403c}#collapse-menu{color:#f3f2f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f2f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#59524c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f2f1}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#c7a589;background:#46403c}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#c7a589}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#46403c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#656463}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cdcbc9}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f2f1}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#c7a589}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#c7a589}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f3f2f1}#wpadminbar #adminbarsearch:before{color:#f3f2f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6c645c}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6c645c;background-color:#6c645c}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c7a589}#wpadminbar #wp-admin-bar-user-info .username{color:#cdcbc9}.wp-pointer .wp-pointer-content h3{background-color:#c7a589;border-color:#bf9878}.wp-pointer .wp-pointer-content h3:before{color:#c7a589}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#c7a589}.media-item .bar,.media-progress-bar div{background-color:#c7a589}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589}.attachment.details .check{background-color:#c7a589;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#c7a589}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#c7a589}.theme-filter.current,.theme-section.current{border-bottom-color:#59524c}body.more-filters-opened .more-filters{color:#fff;background-color:#59524c}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#c7a589;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#c7a589;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#c7a589}div#wp-responsive-toggle a:before{color:#f3f2f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#c7a589}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#46403c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f3f2f1}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#c7a589}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#59524c}input[type=radio]:checked:before{background:#59524c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#c7a589;border-color:#b78b66 #ae7d55 #ae7d55;color:#fff;-webkit-box-shadow:0 1px 0 #ae7d55;box-shadow:0 1px 0 #ae7d55;text-shadow:0 -1px 1px #ae7d55,-1px 0 1px #ae7d55,0 1px 1px #ae7d55,1px 0 1px #ae7d55}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#ccad93;border-color:#ae7d55;color:#fff;-webkit-box-shadow:0 1px 0 #ae7d55;box-shadow:0 1px 0 #ae7d55}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#b78b66;border-color:#ae7d55;-webkit-box-shadow:inset 0 2px 0 #ae7d55;box-shadow:inset 0 2px 0 #ae7d55}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1ccc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ae7d55!important;box-shadow:0 2px 0 #ae7d55!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ae7d55!important;box-shadow:inset 0 3px 0 #ae7d55!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#59524c}.wp-core-ui .wp-ui-text-primary{color:#59524c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#c7a589}.wp-core-ui .wp-ui-text-highlight{color:#c7a589}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#9ea476}.wp-core-ui .wp-ui-text-notification{color:#9ea476}.wp-core-ui .wp-ui-text-icon{color:#f3f2f1}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#59524c}.view-switch a.current:before{color:#59524c}.view-switch a:hover:before{color:#9ea476}#adminmenu,#adminmenuback,#adminmenuwrap{background:#59524c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f2f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#c7a589}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#46403c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#46403c}#adminmenu .wp-submenu .wp-submenu-head{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#c7a589}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#c7a589}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#c7a589}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#9ea476}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#46403c}#collapse-button{color:#f3f2f1}#collapse-button:focus,#collapse-button:hover{color:#c7a589}#wpadminbar{color:#fff;background:#59524c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f2f1}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#c7a589;background:#46403c}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#c7a589}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#46403c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#656463}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cdcbc9}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f2f1}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#c7a589}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#c7a589}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f3f2f1}#wpadminbar #adminbarsearch:before{color:#f3f2f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6c645c}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6c645c;background-color:#6c645c}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c7a589}#wpadminbar #wp-admin-bar-user-info .username{color:#cdcbc9}.wp-pointer .wp-pointer-content h3{background-color:#c7a589;border-color:#bf9878}.wp-pointer .wp-pointer-content h3:before{color:#c7a589}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#c7a589}.media-item .bar,.media-progress-bar div{background-color:#c7a589}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589}.attachment.details .check{background-color:#c7a589;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#c7a589}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#c7a589}.theme-filter.current,.theme-section.current{border-bottom-color:#59524c}body.more-filters-opened .more-filters{color:#fff;background-color:#59524c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#c7a589;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#c7a589;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f3f2f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#c7a589}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#46403c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f3f2f1}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#c7a589}
\ No newline at end of file
diff --git a/wp-admin/css/colors/coffee/colors.css b/wp-admin/css/colors/coffee/colors.css
index 7f3a63d8a..7a1557b54 100644
--- a/wp-admin/css/colors/coffee/colors.css
+++ b/wp-admin/css/colors/coffee/colors.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #c7a589;
   border-color: #b78b66 #ae7d55 #ae7d55;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ae7d55;
   box-shadow: 0 1px 0 #ae7d55;
   text-shadow: 0 -1px 1px #ae7d55, 1px 0 1px #ae7d55, 0 1px 1px #ae7d55, -1px 0 1px #ae7d55;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #ccad93;
   border-color: #ae7d55;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ae7d55;
   box-shadow: 0 1px 0 #ae7d55;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #f3f2f1;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #f3f2f1;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #c7a589;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #c7a589;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #c7a589;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #f3f2f1;
diff --git a/wp-admin/css/colors/coffee/colors.min.css b/wp-admin/css/colors/coffee/colors.min.css
index 9770f5352..1a747fb14 100644
--- a/wp-admin/css/colors/coffee/colors.min.css
+++ b/wp-admin/css/colors/coffee/colors.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#59524c}input[type=radio]:checked:before{background:#59524c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#c7a589;border-color:#b78b66 #ae7d55 #ae7d55;color:#fff;-webkit-box-shadow:0 1px 0 #ae7d55;box-shadow:0 1px 0 #ae7d55;text-shadow:0 -1px 1px #ae7d55,1px 0 1px #ae7d55,0 1px 1px #ae7d55,-1px 0 1px #ae7d55}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#ccad93;border-color:#ae7d55;color:#fff;-webkit-box-shadow:0 1px 0 #ae7d55;box-shadow:0 1px 0 #ae7d55}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#b78b66;border-color:#ae7d55;-webkit-box-shadow:inset 0 2px 0 #ae7d55;box-shadow:inset 0 2px 0 #ae7d55}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1ccc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ae7d55!important;box-shadow:0 2px 0 #ae7d55!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ae7d55!important;box-shadow:inset 0 3px 0 #ae7d55!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#59524c}.wp-core-ui .wp-ui-text-primary{color:#59524c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#c7a589}.wp-core-ui .wp-ui-text-highlight{color:#c7a589}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#9ea476}.wp-core-ui .wp-ui-text-notification{color:#9ea476}.wp-core-ui .wp-ui-text-icon{color:#f3f2f1}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#59524c}.view-switch a.current:before{color:#59524c}.view-switch a:hover:before{color:#9ea476}#adminmenu,#adminmenuback,#adminmenuwrap{background:#59524c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f2f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#c7a589}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#46403c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#46403c}#adminmenu .wp-submenu .wp-submenu-head{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#c7a589}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#c7a589}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#c7a589}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#9ea476}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#46403c}#collapse-menu{color:#f3f2f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f2f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#59524c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f2f1}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#c7a589;background:#46403c}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#c7a589}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#46403c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#656463}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cdcbc9}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f2f1}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#c7a589}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#c7a589}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f3f2f1}#wpadminbar #adminbarsearch:before{color:#f3f2f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6c645c}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6c645c;background-color:#6c645c}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c7a589}#wpadminbar #wp-admin-bar-user-info .username{color:#cdcbc9}.wp-pointer .wp-pointer-content h3{background-color:#c7a589;border-color:#bf9878}.wp-pointer .wp-pointer-content h3:before{color:#c7a589}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#c7a589}.media-item .bar,.media-progress-bar div{background-color:#c7a589}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589}.attachment.details .check{background-color:#c7a589;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#c7a589}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#c7a589}.theme-filter.current,.theme-section.current{border-bottom-color:#59524c}body.more-filters-opened .more-filters{color:#fff;background-color:#59524c}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#c7a589;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#c7a589;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#c7a589}div#wp-responsive-toggle a:before{color:#f3f2f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#c7a589}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#46403c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f3f2f1}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#c7a589}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#59524c}input[type=radio]:checked:before{background:#59524c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#c7a589;border-color:#b78b66 #ae7d55 #ae7d55;color:#fff;-webkit-box-shadow:0 1px 0 #ae7d55;box-shadow:0 1px 0 #ae7d55;text-shadow:0 -1px 1px #ae7d55,1px 0 1px #ae7d55,0 1px 1px #ae7d55,-1px 0 1px #ae7d55}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#ccad93;border-color:#ae7d55;color:#fff;-webkit-box-shadow:0 1px 0 #ae7d55;box-shadow:0 1px 0 #ae7d55}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #b78b66,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#b78b66;border-color:#ae7d55;-webkit-box-shadow:inset 0 2px 0 #ae7d55;box-shadow:inset 0 2px 0 #ae7d55}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1ccc7!important;background:#ba906d!important;border-color:#ae7d55!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ae7d55!important;box-shadow:0 2px 0 #ae7d55!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ae7d55!important;box-shadow:inset 0 3px 0 #ae7d55!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#59524c}.wp-core-ui .wp-ui-text-primary{color:#59524c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#c7a589}.wp-core-ui .wp-ui-text-highlight{color:#c7a589}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#9ea476}.wp-core-ui .wp-ui-text-notification{color:#9ea476}.wp-core-ui .wp-ui-text-icon{color:#f3f2f1}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#59524c}.view-switch a.current:before{color:#59524c}.view-switch a:hover:before{color:#9ea476}#adminmenu,#adminmenuback,#adminmenuwrap{background:#59524c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f2f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#c7a589}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#46403c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#46403c}#adminmenu .wp-submenu .wp-submenu-head{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cdcbc9}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#c7a589}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#c7a589}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#c7a589}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#9ea476}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#46403c}#collapse-button{color:#f3f2f1}#collapse-button:focus,#collapse-button:hover{color:#c7a589}#wpadminbar{color:#fff;background:#59524c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f2f1}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#c7a589;background:#46403c}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#c7a589}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#46403c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#656463}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cdcbc9}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f2f1}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#c7a589}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#c7a589}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f3f2f1}#wpadminbar #adminbarsearch:before{color:#f3f2f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#6c645c}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#6c645c;background-color:#6c645c}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c7a589}#wpadminbar #wp-admin-bar-user-info .username{color:#cdcbc9}.wp-pointer .wp-pointer-content h3{background-color:#c7a589;border-color:#bf9878}.wp-pointer .wp-pointer-content h3:before{color:#c7a589}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#c7a589}.media-item .bar,.media-progress-bar div{background-color:#c7a589}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c7a589}.attachment.details .check{background-color:#c7a589;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 2px #c7a589}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589;box-shadow:0 0 0 1px #fff,0 0 0 3px #c7a589}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#c7a589}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#c7a589}.theme-filter.current,.theme-section.current{border-bottom-color:#59524c}body.more-filters-opened .more-filters{color:#fff;background-color:#59524c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#c7a589;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#c7a589;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f3f2f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#c7a589}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#46403c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f3f2f1}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#c7a589}
\ No newline at end of file
diff --git a/wp-admin/css/colors/ectoplasm/colors-rtl.css b/wp-admin/css/colors/ectoplasm/colors-rtl.css
index 17d5a423b..6def77ab3 100644
--- a/wp-admin/css/colors/ectoplasm/colors-rtl.css
+++ b/wp-admin/css/colors/ectoplasm/colors-rtl.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #a3b745;
   border-color: #829237 #727f30 #727f30;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #727f30;
   box-shadow: 0 1px 0 #727f30;
   text-shadow: 0 -1px 1px #727f30, -1px 0 1px #727f30, 0 1px 1px #727f30, 1px 0 1px #727f30;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #a9bd4f;
   border-color: #727f30;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #727f30;
   box-shadow: 0 1px 0 #727f30;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #ece6f6;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #ece6f6;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #a3b745;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #a3b745;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #a3b745;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #ece6f6;
diff --git a/wp-admin/css/colors/ectoplasm/colors-rtl.min.css b/wp-admin/css/colors/ectoplasm/colors-rtl.min.css
index 2ab769bd1..10e741e5d 100644
--- a/wp-admin/css/colors/ectoplasm/colors-rtl.min.css
+++ b/wp-admin/css/colors/ectoplasm/colors-rtl.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#523f6d}input[type=radio]:checked:before{background:#523f6d}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#a3b745;border-color:#829237 #727f30 #727f30;color:#fff;-webkit-box-shadow:0 1px 0 #727f30;box-shadow:0 1px 0 #727f30;text-shadow:0 -1px 1px #727f30,-1px 0 1px #727f30,0 1px 1px #727f30,1px 0 1px #727f30}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#a9bd4f;border-color:#727f30;color:#fff;-webkit-box-shadow:0 1px 0 #727f30;box-shadow:0 1px 0 #727f30}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#829237;border-color:#727f30;-webkit-box-shadow:inset 0 2px 0 #727f30;box-shadow:inset 0 2px 0 #727f30}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #727f30!important;box-shadow:0 2px 0 #727f30!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #727f30!important;box-shadow:inset 0 3px 0 #727f30!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#523f6d}.wp-core-ui .wp-ui-text-primary{color:#523f6d}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#a3b745}.wp-core-ui .wp-ui-text-highlight{color:#a3b745}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d46f15}.wp-core-ui .wp-ui-text-notification{color:#d46f15}.wp-core-ui .wp-ui-text-icon{color:#ece6f6}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#523f6d}.view-switch a.current:before{color:#523f6d}.view-switch a:hover:before{color:#d46f15}#adminmenu,#adminmenuback,#adminmenuwrap{background:#523f6d}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#ece6f6}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#a3b745}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#413256}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#413256}#adminmenu .wp-submenu .wp-submenu-head{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#a3b745}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#a3b745}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#a3b745}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d46f15}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#413256}#collapse-menu{color:#ece6f6}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#ece6f6}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#523f6d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#ece6f6}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#a3b745;background:#413256}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#a3b745}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#413256}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#64537c}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cbc5d3}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#ece6f6}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#a3b745}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#a3b745}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#ece6f6}#wpadminbar #adminbarsearch:before{color:#ece6f6}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#634c84}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#634c84;background-color:#634c84}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#a3b745}#wpadminbar #wp-admin-bar-user-info .username{color:#cbc5d3}.wp-pointer .wp-pointer-content h3{background-color:#a3b745;border-color:#93a43e}.wp-pointer .wp-pointer-content h3:before{color:#a3b745}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#a3b745}.media-item .bar,.media-progress-bar div{background-color:#a3b745}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745}.attachment.details .check{background-color:#a3b745;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#a3b745}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#a3b745}.theme-filter.current,.theme-section.current{border-bottom-color:#523f6d}body.more-filters-opened .more-filters{color:#fff;background-color:#523f6d}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#a3b745;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#a3b745;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#a3b745}div#wp-responsive-toggle a:before{color:#ece6f6}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#a3b745}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#413256}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#ece6f6}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#a3b745}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#523f6d}input[type=radio]:checked:before{background:#523f6d}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#a3b745;border-color:#829237 #727f30 #727f30;color:#fff;-webkit-box-shadow:0 1px 0 #727f30;box-shadow:0 1px 0 #727f30;text-shadow:0 -1px 1px #727f30,-1px 0 1px #727f30,0 1px 1px #727f30,1px 0 1px #727f30}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#a9bd4f;border-color:#727f30;color:#fff;-webkit-box-shadow:0 1px 0 #727f30;box-shadow:0 1px 0 #727f30}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#829237;border-color:#727f30;-webkit-box-shadow:inset 0 2px 0 #727f30;box-shadow:inset 0 2px 0 #727f30}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #727f30!important;box-shadow:0 2px 0 #727f30!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #727f30!important;box-shadow:inset 0 3px 0 #727f30!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#523f6d}.wp-core-ui .wp-ui-text-primary{color:#523f6d}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#a3b745}.wp-core-ui .wp-ui-text-highlight{color:#a3b745}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d46f15}.wp-core-ui .wp-ui-text-notification{color:#d46f15}.wp-core-ui .wp-ui-text-icon{color:#ece6f6}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#523f6d}.view-switch a.current:before{color:#523f6d}.view-switch a:hover:before{color:#d46f15}#adminmenu,#adminmenuback,#adminmenuwrap{background:#523f6d}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#ece6f6}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#a3b745}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#413256}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#413256}#adminmenu .wp-submenu .wp-submenu-head{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#a3b745}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#a3b745}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#a3b745}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d46f15}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#413256}#collapse-button{color:#ece6f6}#collapse-button:focus,#collapse-button:hover{color:#a3b745}#wpadminbar{color:#fff;background:#523f6d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#ece6f6}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#a3b745;background:#413256}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#a3b745}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#413256}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#64537c}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cbc5d3}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#ece6f6}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#a3b745}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#a3b745}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#ece6f6}#wpadminbar #adminbarsearch:before{color:#ece6f6}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#634c84}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#634c84;background-color:#634c84}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#a3b745}#wpadminbar #wp-admin-bar-user-info .username{color:#cbc5d3}.wp-pointer .wp-pointer-content h3{background-color:#a3b745;border-color:#93a43e}.wp-pointer .wp-pointer-content h3:before{color:#a3b745}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#a3b745}.media-item .bar,.media-progress-bar div{background-color:#a3b745}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745}.attachment.details .check{background-color:#a3b745;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#a3b745}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#a3b745}.theme-filter.current,.theme-section.current{border-bottom-color:#523f6d}body.more-filters-opened .more-filters{color:#fff;background-color:#523f6d}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#a3b745;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#a3b745;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#ece6f6}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#a3b745}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#413256}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#ece6f6}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#a3b745}
\ No newline at end of file
diff --git a/wp-admin/css/colors/ectoplasm/colors.css b/wp-admin/css/colors/ectoplasm/colors.css
index 980a0c3b6..b55ce975d 100644
--- a/wp-admin/css/colors/ectoplasm/colors.css
+++ b/wp-admin/css/colors/ectoplasm/colors.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #a3b745;
   border-color: #829237 #727f30 #727f30;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #727f30;
   box-shadow: 0 1px 0 #727f30;
   text-shadow: 0 -1px 1px #727f30, 1px 0 1px #727f30, 0 1px 1px #727f30, -1px 0 1px #727f30;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #a9bd4f;
   border-color: #727f30;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #727f30;
   box-shadow: 0 1px 0 #727f30;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #ece6f6;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #ece6f6;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #a3b745;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #a3b745;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #a3b745;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #ece6f6;
diff --git a/wp-admin/css/colors/ectoplasm/colors.min.css b/wp-admin/css/colors/ectoplasm/colors.min.css
index afbf5d0ad..e56354b42 100644
--- a/wp-admin/css/colors/ectoplasm/colors.min.css
+++ b/wp-admin/css/colors/ectoplasm/colors.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#523f6d}input[type=radio]:checked:before{background:#523f6d}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#a3b745;border-color:#829237 #727f30 #727f30;color:#fff;-webkit-box-shadow:0 1px 0 #727f30;box-shadow:0 1px 0 #727f30;text-shadow:0 -1px 1px #727f30,1px 0 1px #727f30,0 1px 1px #727f30,-1px 0 1px #727f30}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#a9bd4f;border-color:#727f30;color:#fff;-webkit-box-shadow:0 1px 0 #727f30;box-shadow:0 1px 0 #727f30}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#829237;border-color:#727f30;-webkit-box-shadow:inset 0 2px 0 #727f30;box-shadow:inset 0 2px 0 #727f30}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #727f30!important;box-shadow:0 2px 0 #727f30!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #727f30!important;box-shadow:inset 0 3px 0 #727f30!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#523f6d}.wp-core-ui .wp-ui-text-primary{color:#523f6d}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#a3b745}.wp-core-ui .wp-ui-text-highlight{color:#a3b745}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d46f15}.wp-core-ui .wp-ui-text-notification{color:#d46f15}.wp-core-ui .wp-ui-text-icon{color:#ece6f6}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#523f6d}.view-switch a.current:before{color:#523f6d}.view-switch a:hover:before{color:#d46f15}#adminmenu,#adminmenuback,#adminmenuwrap{background:#523f6d}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#ece6f6}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#a3b745}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#413256}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#413256}#adminmenu .wp-submenu .wp-submenu-head{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#a3b745}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#a3b745}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#a3b745}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d46f15}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#413256}#collapse-menu{color:#ece6f6}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#ece6f6}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#523f6d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#ece6f6}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#a3b745;background:#413256}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#a3b745}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#413256}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#64537c}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cbc5d3}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#ece6f6}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#a3b745}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#a3b745}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#ece6f6}#wpadminbar #adminbarsearch:before{color:#ece6f6}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#634c84}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#634c84;background-color:#634c84}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#a3b745}#wpadminbar #wp-admin-bar-user-info .username{color:#cbc5d3}.wp-pointer .wp-pointer-content h3{background-color:#a3b745;border-color:#93a43e}.wp-pointer .wp-pointer-content h3:before{color:#a3b745}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#a3b745}.media-item .bar,.media-progress-bar div{background-color:#a3b745}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745}.attachment.details .check{background-color:#a3b745;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#a3b745}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#a3b745}.theme-filter.current,.theme-section.current{border-bottom-color:#523f6d}body.more-filters-opened .more-filters{color:#fff;background-color:#523f6d}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#a3b745;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#a3b745;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#a3b745}div#wp-responsive-toggle a:before{color:#ece6f6}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#a3b745}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#413256}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#ece6f6}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#a3b745}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#523f6d}input[type=radio]:checked:before{background:#523f6d}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#a3b745;border-color:#829237 #727f30 #727f30;color:#fff;-webkit-box-shadow:0 1px 0 #727f30;box-shadow:0 1px 0 #727f30;text-shadow:0 -1px 1px #727f30,1px 0 1px #727f30,0 1px 1px #727f30,-1px 0 1px #727f30}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#a9bd4f;border-color:#727f30;color:#fff;-webkit-box-shadow:0 1px 0 #727f30;box-shadow:0 1px 0 #727f30}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #829237,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#829237;border-color:#727f30;-webkit-box-shadow:inset 0 2px 0 #727f30;box-shadow:inset 0 2px 0 #727f30}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#cfd1c7!important;background:#89993a!important;border-color:#727f30!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #727f30!important;box-shadow:0 2px 0 #727f30!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #727f30!important;box-shadow:inset 0 3px 0 #727f30!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#523f6d}.wp-core-ui .wp-ui-text-primary{color:#523f6d}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#a3b745}.wp-core-ui .wp-ui-text-highlight{color:#a3b745}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d46f15}.wp-core-ui .wp-ui-text-notification{color:#d46f15}.wp-core-ui .wp-ui-text-icon{color:#ece6f6}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#523f6d}.view-switch a.current:before{color:#523f6d}.view-switch a:hover:before{color:#d46f15}#adminmenu,#adminmenuback,#adminmenuwrap{background:#523f6d}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#ece6f6}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#a3b745}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#413256}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#413256}#adminmenu .wp-submenu .wp-submenu-head{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#cbc5d3}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#a3b745}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#a3b745}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#a3b745}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d46f15}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#413256}#collapse-button{color:#ece6f6}#collapse-button:focus,#collapse-button:hover{color:#a3b745}#wpadminbar{color:#fff;background:#523f6d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#ece6f6}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#a3b745;background:#413256}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#a3b745}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#413256}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#64537c}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#cbc5d3}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#ece6f6}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#a3b745}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#a3b745}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#ece6f6}#wpadminbar #adminbarsearch:before{color:#ece6f6}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#634c84}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#634c84;background-color:#634c84}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#a3b745}#wpadminbar #wp-admin-bar-user-info .username{color:#cbc5d3}.wp-pointer .wp-pointer-content h3{background-color:#a3b745;border-color:#93a43e}.wp-pointer .wp-pointer-content h3:before{color:#a3b745}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#a3b745}.media-item .bar,.media-progress-bar div{background-color:#a3b745}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #a3b745}.attachment.details .check{background-color:#a3b745;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 2px #a3b745}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745;box-shadow:0 0 0 1px #fff,0 0 0 3px #a3b745}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#a3b745}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#a3b745}.theme-filter.current,.theme-section.current{border-bottom-color:#523f6d}body.more-filters-opened .more-filters{color:#fff;background-color:#523f6d}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#a3b745;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#a3b745;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#ece6f6}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#a3b745}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#413256}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#ece6f6}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#a3b745}
\ No newline at end of file
diff --git a/wp-admin/css/colors/light/colors-rtl.css b/wp-admin/css/colors/light/colors-rtl.css
index 5822584f3..25a88c0b9 100644
--- a/wp-admin/css/colors/light/colors-rtl.css
+++ b/wp-admin/css/colors/light/colors-rtl.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f5f5f5;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #04a4cc;
   border-color: #037c9a #036881 #036881;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #036881;
   box-shadow: 0 1px 0 #036881;
   text-shadow: 0 -1px 1px #036881, -1px 0 1px #036881, 0 1px 1px #036881, 1px 0 1px #036881;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #04b0db;
   border-color: #036881;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #036881;
   box-shadow: 0 1px 0 #036881;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #777;
 }
 
-#collapse-menu:hover {
-  color: #333;
-}
-
-#collapse-button div:after {
-  color: #999;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #555;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #04a4cc;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #888;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #04a4cc;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #999;
diff --git a/wp-admin/css/colors/light/colors-rtl.min.css b/wp-admin/css/colors/light/colors-rtl.min.css
index d0f660365..31e644cd5 100644
--- a/wp-admin/css/colors/light/colors-rtl.min.css
+++ b/wp-admin/css/colors/light/colors-rtl.min.css
@@ -1 +1 @@
-html{background:#f5f5f5}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#04a4cc}input[type=radio]:checked:before{background:#04a4cc}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#04a4cc;border-color:#037c9a #036881 #036881;color:#fff;-webkit-box-shadow:0 1px 0 #036881;box-shadow:0 1px 0 #036881;text-shadow:0 -1px 1px #036881,-1px 0 1px #036881,0 1px 1px #036881,1px 0 1px #036881}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#04b0db;border-color:#036881;color:#fff;-webkit-box-shadow:0 1px 0 #036881;box-shadow:0 1px 0 #036881}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#037c9a;border-color:#036881;-webkit-box-shadow:inset 0 2px 0 #036881;box-shadow:inset 0 2px 0 #036881}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #036881!important;box-shadow:0 2px 0 #036881!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #036881!important;box-shadow:inset 0 3px 0 #036881!important}.wp-core-ui .wp-ui-primary{color:#333;background-color:#e5e5e5}.wp-core-ui .wp-ui-text-primary{color:#e5e5e5}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#888}.wp-core-ui .wp-ui-text-highlight{color:#888}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d64e07}.wp-core-ui .wp-ui-text-notification{color:#d64e07}.wp-core-ui .wp-ui-text-icon{color:#999}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#333;background-color:#e5e5e5}.view-switch a.current:before{color:#e5e5e5}.view-switch a:hover:before{color:#d64e07}#adminmenu,#adminmenuback,#adminmenuwrap{background:#e5e5e5}#adminmenu a{color:#333}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#888}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#ccc}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f5f5f5;border-bottom-color:#f5f5f5}.theme-filter.current,.theme-section.current,.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#04a4cc}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#fff}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#fff}#adminmenu .wp-submenu .wp-submenu-head{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#04a4cc}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#333}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#04a4cc}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f5f5f5}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#888}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#ccc}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d64e07}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#333;background:#fff}#collapse-menu{color:#777}#collapse-menu:hover,#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#333}#collapse-button div:after{color:#999}#collapse-menu:hover #collapse-button div:after{color:#555}#wpadminbar{color:#333;background:#e5e5e5}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#999}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#04a4cc;background:#fff}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#04a4cc}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#ccc}#wpadminbar .menupop .ab-sub-wrapper{background:#fff}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f7f7f7}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#686868}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#999}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#04a4cc}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#04a4cc}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#999}#wpadminbar #adminbarsearch:before{color:#999}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#333;background:#f7f7f7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f7f7f7;background-color:#f7f7f7}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#04a4cc}#wpadminbar #wp-admin-bar-user-info .username{color:#686868}.wp-pointer .wp-pointer-content h3{background-color:#04a4cc;border-color:#0490b3}.wp-pointer .wp-pointer-content h3:before{color:#04a4cc}.media-item .bar,.media-progress-bar div{background-color:#04a4cc}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc}.attachment.details .check{background-color:#04a4cc;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#04a4cc}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#04a4cc}body.more-filters-opened .more-filters{color:#333;background-color:#e5e5e5}body.more-filters-opened .more-filters:before{color:#333}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#888;color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#888;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#04a4cc}div#wp-responsive-toggle a:before{color:#999}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#888}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#fff}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#999}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#04a4cc}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default li:hover span.ab-label,#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary li.hover span.ab-label{color:#333}
\ No newline at end of file
+body{background:#f5f5f5}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#04a4cc}input[type=radio]:checked:before{background:#04a4cc}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#04a4cc;border-color:#037c9a #036881 #036881;color:#fff;-webkit-box-shadow:0 1px 0 #036881;box-shadow:0 1px 0 #036881;text-shadow:0 -1px 1px #036881,-1px 0 1px #036881,0 1px 1px #036881,1px 0 1px #036881}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#04b0db;border-color:#036881;color:#fff;-webkit-box-shadow:0 1px 0 #036881;box-shadow:0 1px 0 #036881}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#037c9a;border-color:#036881;-webkit-box-shadow:inset 0 2px 0 #036881;box-shadow:inset 0 2px 0 #036881}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #036881!important;box-shadow:0 2px 0 #036881!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #036881!important;box-shadow:inset 0 3px 0 #036881!important}.wp-core-ui .wp-ui-primary{color:#333;background-color:#e5e5e5}.wp-core-ui .wp-ui-text-primary{color:#e5e5e5}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#888}.wp-core-ui .wp-ui-text-highlight{color:#888}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d64e07}.wp-core-ui .wp-ui-text-notification{color:#d64e07}.wp-core-ui .wp-ui-text-icon{color:#999}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#333;background-color:#e5e5e5}.view-switch a.current:before{color:#e5e5e5}.view-switch a:hover:before{color:#d64e07}#adminmenu,#adminmenuback,#adminmenuwrap{background:#e5e5e5}#adminmenu a{color:#333}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#888}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#ccc}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f5f5f5;border-bottom-color:#f5f5f5}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#fff}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#fff}#adminmenu .wp-submenu .wp-submenu-head{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#04a4cc}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#333}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#04a4cc}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f5f5f5}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#888}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#ccc}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d64e07}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#333;background:#fff}#collapse-button{color:#777}#collapse-button:focus,#collapse-button:hover{color:#04a4cc}#wpadminbar{color:#333;background:#e5e5e5}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#333}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#999}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#04a4cc;background:#fff}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#04a4cc}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#ccc}#wpadminbar .menupop .ab-sub-wrapper{background:#fff}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f7f7f7}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#686868}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#999}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#04a4cc}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#04a4cc}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#999}#wpadminbar #adminbarsearch:before{color:#999}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#333;background:#f7f7f7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f7f7f7;background-color:#f7f7f7}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#04a4cc}#wpadminbar #wp-admin-bar-user-info .username{color:#686868}.wp-pointer .wp-pointer-content h3{background-color:#04a4cc;border-color:#0490b3}.wp-pointer .wp-pointer-content h3:before{color:#04a4cc}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#04a4cc}.media-item .bar,.media-progress-bar div{background-color:#04a4cc}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc}.attachment.details .check{background-color:#04a4cc;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#04a4cc}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#04a4cc}body.more-filters-opened .more-filters{color:#333;background-color:#e5e5e5}body.more-filters-opened .more-filters:before{color:#333}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#888;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#888;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#999}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#888}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#fff}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#999}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#04a4cc}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default li:hover span.ab-label,#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary li.hover span.ab-label{color:#333}.theme-filter.current,.theme-section.current{border-bottom-color:#04a4cc}
\ No newline at end of file
diff --git a/wp-admin/css/colors/light/colors.css b/wp-admin/css/colors/light/colors.css
index d1b05ddee..c27ae3cb4 100644
--- a/wp-admin/css/colors/light/colors.css
+++ b/wp-admin/css/colors/light/colors.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f5f5f5;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #04a4cc;
   border-color: #037c9a #036881 #036881;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #036881;
   box-shadow: 0 1px 0 #036881;
   text-shadow: 0 -1px 1px #036881, 1px 0 1px #036881, 0 1px 1px #036881, -1px 0 1px #036881;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #04b0db;
   border-color: #036881;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #036881;
   box-shadow: 0 1px 0 #036881;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #777;
 }
 
-#collapse-menu:hover {
-  color: #333;
-}
-
-#collapse-button div:after {
-  color: #999;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #555;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #04a4cc;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #888;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #04a4cc;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #999;
diff --git a/wp-admin/css/colors/light/colors.min.css b/wp-admin/css/colors/light/colors.min.css
index 108d1a3af..75e1c7353 100644
--- a/wp-admin/css/colors/light/colors.min.css
+++ b/wp-admin/css/colors/light/colors.min.css
@@ -1 +1 @@
-html{background:#f5f5f5}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#04a4cc}input[type=radio]:checked:before{background:#04a4cc}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#04a4cc;border-color:#037c9a #036881 #036881;color:#fff;-webkit-box-shadow:0 1px 0 #036881;box-shadow:0 1px 0 #036881;text-shadow:0 -1px 1px #036881,1px 0 1px #036881,0 1px 1px #036881,-1px 0 1px #036881}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#04b0db;border-color:#036881;color:#fff;-webkit-box-shadow:0 1px 0 #036881;box-shadow:0 1px 0 #036881}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#037c9a;border-color:#036881;-webkit-box-shadow:inset 0 2px 0 #036881;box-shadow:inset 0 2px 0 #036881}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #036881!important;box-shadow:0 2px 0 #036881!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #036881!important;box-shadow:inset 0 3px 0 #036881!important}.wp-core-ui .wp-ui-primary{color:#333;background-color:#e5e5e5}.wp-core-ui .wp-ui-text-primary{color:#e5e5e5}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#888}.wp-core-ui .wp-ui-text-highlight{color:#888}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d64e07}.wp-core-ui .wp-ui-text-notification{color:#d64e07}.wp-core-ui .wp-ui-text-icon{color:#999}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#333;background-color:#e5e5e5}.view-switch a.current:before{color:#e5e5e5}.view-switch a:hover:before{color:#d64e07}#adminmenu,#adminmenuback,#adminmenuwrap{background:#e5e5e5}#adminmenu a{color:#333}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#888}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#ccc}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f5f5f5;border-bottom-color:#f5f5f5}.theme-filter.current,.theme-section.current,.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#04a4cc}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#fff}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#fff}#adminmenu .wp-submenu .wp-submenu-head{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#04a4cc}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#333}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#04a4cc}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f5f5f5}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#888}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#ccc}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d64e07}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#333;background:#fff}#collapse-menu{color:#777}#collapse-menu:hover,#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#333}#collapse-button div:after{color:#999}#collapse-menu:hover #collapse-button div:after{color:#555}#wpadminbar{color:#333;background:#e5e5e5}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#999}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#04a4cc;background:#fff}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#04a4cc}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#ccc}#wpadminbar .menupop .ab-sub-wrapper{background:#fff}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f7f7f7}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#686868}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#999}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#04a4cc}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#04a4cc}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#999}#wpadminbar #adminbarsearch:before{color:#999}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#333;background:#f7f7f7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f7f7f7;background-color:#f7f7f7}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#04a4cc}#wpadminbar #wp-admin-bar-user-info .username{color:#686868}.wp-pointer .wp-pointer-content h3{background-color:#04a4cc;border-color:#0490b3}.wp-pointer .wp-pointer-content h3:before{color:#04a4cc}.media-item .bar,.media-progress-bar div{background-color:#04a4cc}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc}.attachment.details .check{background-color:#04a4cc;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#04a4cc}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#04a4cc}body.more-filters-opened .more-filters{color:#333;background-color:#e5e5e5}body.more-filters-opened .more-filters:before{color:#333}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#888;color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#888;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#04a4cc}div#wp-responsive-toggle a:before{color:#999}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#888}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#fff}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#999}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#04a4cc}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default li:hover span.ab-label,#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary li.hover span.ab-label{color:#333}
\ No newline at end of file
+body{background:#f5f5f5}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#04a4cc}input[type=radio]:checked:before{background:#04a4cc}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#04a4cc;border-color:#037c9a #036881 #036881;color:#fff;-webkit-box-shadow:0 1px 0 #036881;box-shadow:0 1px 0 #036881;text-shadow:0 -1px 1px #036881,1px 0 1px #036881,0 1px 1px #036881,-1px 0 1px #036881}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#04b0db;border-color:#036881;color:#fff;-webkit-box-shadow:0 1px 0 #036881;box-shadow:0 1px 0 #036881}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #037c9a,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#037c9a;border-color:#036881;-webkit-box-shadow:inset 0 2px 0 #036881;box-shadow:inset 0 2px 0 #036881}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7cfd1!important;background:#0384a4!important;border-color:#036881!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #036881!important;box-shadow:0 2px 0 #036881!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #036881!important;box-shadow:inset 0 3px 0 #036881!important}.wp-core-ui .wp-ui-primary{color:#333;background-color:#e5e5e5}.wp-core-ui .wp-ui-text-primary{color:#e5e5e5}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#888}.wp-core-ui .wp-ui-text-highlight{color:#888}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#d64e07}.wp-core-ui .wp-ui-text-notification{color:#d64e07}.wp-core-ui .wp-ui-text-icon{color:#999}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#333;background-color:#e5e5e5}.view-switch a.current:before{color:#e5e5e5}.view-switch a:hover:before{color:#d64e07}#adminmenu,#adminmenuback,#adminmenuwrap{background:#e5e5e5}#adminmenu a{color:#333}#adminmenu div.wp-menu-image:before{color:#999}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#888}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#ccc}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f5f5f5;border-bottom-color:#f5f5f5}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#fff}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#fff}#adminmenu .wp-submenu .wp-submenu-head{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#686868}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#04a4cc}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#333}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#04a4cc}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f5f5f5}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#888}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#ccc}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#d64e07}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#333;background:#fff}#collapse-button{color:#777}#collapse-button:focus,#collapse-button:hover{color:#04a4cc}#wpadminbar{color:#333;background:#e5e5e5}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#333}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#999}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#04a4cc;background:#fff}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#04a4cc}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#ccc}#wpadminbar .menupop .ab-sub-wrapper{background:#fff}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f7f7f7}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#686868}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#999}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#04a4cc}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#04a4cc}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#999}#wpadminbar #adminbarsearch:before{color:#999}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#333;background:#f7f7f7}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f7f7f7;background-color:#f7f7f7}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#04a4cc}#wpadminbar #wp-admin-bar-user-info .username{color:#686868}.wp-pointer .wp-pointer-content h3{background-color:#04a4cc;border-color:#0490b3}.wp-pointer .wp-pointer-content h3:before{color:#04a4cc}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#04a4cc}.media-item .bar,.media-progress-bar div{background-color:#04a4cc}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #04a4cc}.attachment.details .check{background-color:#04a4cc;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 2px #04a4cc}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc;box-shadow:0 0 0 1px #fff,0 0 0 3px #04a4cc}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#04a4cc}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#04a4cc}body.more-filters-opened .more-filters{color:#333;background-color:#e5e5e5}body.more-filters-opened .more-filters:before{color:#333}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#888;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#888;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#999}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#888}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#fff}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#999}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#04a4cc}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default li:hover span.ab-label,#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary li.hover span.ab-label{color:#333}.theme-filter.current,.theme-section.current{border-bottom-color:#04a4cc}
\ No newline at end of file
diff --git a/wp-admin/css/colors/midnight/colors-rtl.css b/wp-admin/css/colors/midnight/colors-rtl.css
index 2e4990f65..c72bee395 100644
--- a/wp-admin/css/colors/midnight/colors-rtl.css
+++ b/wp-admin/css/colors/midnight/colors-rtl.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #e14d43;
   border-color: #d02c21 #ba281e #ba281e;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ba281e;
   box-shadow: 0 1px 0 #ba281e;
   text-shadow: 0 -1px 1px #ba281e, -1px 0 1px #ba281e, 0 1px 1px #ba281e, 1px 0 1px #ba281e;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #e35950;
   border-color: #ba281e;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ba281e;
   box-shadow: 0 1px 0 #ba281e;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #f1f2f3;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #f1f2f3;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #e14d43;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #e14d43;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #e14d43;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #f1f2f3;
diff --git a/wp-admin/css/colors/midnight/colors-rtl.min.css b/wp-admin/css/colors/midnight/colors-rtl.min.css
index fb3814358..02463781a 100644
--- a/wp-admin/css/colors/midnight/colors-rtl.min.css
+++ b/wp-admin/css/colors/midnight/colors-rtl.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#e14d43}input[type=radio]:checked:before{background:#e14d43}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#e14d43;border-color:#d02c21 #ba281e #ba281e;color:#fff;-webkit-box-shadow:0 1px 0 #ba281e;box-shadow:0 1px 0 #ba281e;text-shadow:0 -1px 1px #ba281e,-1px 0 1px #ba281e,0 1px 1px #ba281e,1px 0 1px #ba281e}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#e35950;border-color:#ba281e;color:#fff;-webkit-box-shadow:0 1px 0 #ba281e;box-shadow:0 1px 0 #ba281e}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#d02c21;border-color:#ba281e;-webkit-box-shadow:inset 0 2px 0 #ba281e;box-shadow:inset 0 2px 0 #ba281e}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1c8c7!important;background:#d92e23!important;border-color:#ba281e!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ba281e!important;box-shadow:0 2px 0 #ba281e!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ba281e!important;box-shadow:inset 0 3px 0 #ba281e!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#363b3f}.wp-core-ui .wp-ui-text-primary{color:#363b3f}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#e14d43}.wp-core-ui .wp-ui-text-highlight{color:#e14d43}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#69a8bb}.wp-core-ui .wp-ui-text-notification{color:#69a8bb}.wp-core-ui .wp-ui-text-icon{color:#f1f2f3}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#363b3f}.view-switch a.current:before{color:#363b3f}.view-switch a:hover:before{color:#69a8bb}#adminmenu,#adminmenuback,#adminmenuwrap{background:#363b3f}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f2f3}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#e14d43}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#26292c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#26292c}#adminmenu .wp-submenu .wp-submenu-head{color:#c3c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c3c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#e14d43}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#e14d43}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#e14d43}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#69a8bb}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#26292c}#collapse-menu{color:#f1f2f3}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f1f2f3}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#363b3f}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f2f3}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#e14d43;background:#26292c}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#e14d43}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#26292c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4c4c4d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c3c4c5}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f2f3}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#e14d43}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#e14d43}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f2f3}#wpadminbar #adminbarsearch:before{color:#f1f2f3}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#464d52}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#464d52;background-color:#464d52}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e14d43}#wpadminbar #wp-admin-bar-user-info .username{color:#c3c4c5}.wp-pointer .wp-pointer-content h3{background-color:#e14d43;border-color:#dd382d}.wp-pointer .wp-pointer-content h3:before{color:#e14d43}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#e14d43}.media-item .bar,.media-progress-bar div{background-color:#e14d43}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43}.attachment.details .check{background-color:#e14d43;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#e14d43}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#e14d43}.theme-filter.current,.theme-section.current{border-bottom-color:#363b3f}body.more-filters-opened .more-filters{color:#fff;background-color:#363b3f}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#e14d43;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#e14d43;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#e14d43}div#wp-responsive-toggle a:before{color:#f1f2f3}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#e14d43}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#26292c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f2f3}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#e14d43}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#e14d43}input[type=radio]:checked:before{background:#e14d43}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#e14d43;border-color:#d02c21 #ba281e #ba281e;color:#fff;-webkit-box-shadow:0 1px 0 #ba281e;box-shadow:0 1px 0 #ba281e;text-shadow:0 -1px 1px #ba281e,-1px 0 1px #ba281e,0 1px 1px #ba281e,1px 0 1px #ba281e}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#e35950;border-color:#ba281e;color:#fff;-webkit-box-shadow:0 1px 0 #ba281e;box-shadow:0 1px 0 #ba281e}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#d02c21;border-color:#ba281e;-webkit-box-shadow:inset 0 2px 0 #ba281e;box-shadow:inset 0 2px 0 #ba281e}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1c8c7!important;background:#d92e23!important;border-color:#ba281e!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ba281e!important;box-shadow:0 2px 0 #ba281e!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ba281e!important;box-shadow:inset 0 3px 0 #ba281e!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#363b3f}.wp-core-ui .wp-ui-text-primary{color:#363b3f}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#e14d43}.wp-core-ui .wp-ui-text-highlight{color:#e14d43}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#69a8bb}.wp-core-ui .wp-ui-text-notification{color:#69a8bb}.wp-core-ui .wp-ui-text-icon{color:#f1f2f3}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#363b3f}.view-switch a.current:before{color:#363b3f}.view-switch a:hover:before{color:#69a8bb}#adminmenu,#adminmenuback,#adminmenuwrap{background:#363b3f}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f2f3}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#e14d43}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#26292c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#26292c}#adminmenu .wp-submenu .wp-submenu-head{color:#c3c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c3c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#e14d43}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#e14d43}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#e14d43}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#69a8bb}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#26292c}#collapse-button{color:#f1f2f3}#collapse-button:focus,#collapse-button:hover{color:#e14d43}#wpadminbar{color:#fff;background:#363b3f}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f2f3}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#e14d43;background:#26292c}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#e14d43}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#26292c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4c4c4d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c3c4c5}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f2f3}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#e14d43}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#e14d43}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f2f3}#wpadminbar #adminbarsearch:before{color:#f1f2f3}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#464d52}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#464d52;background-color:#464d52}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e14d43}#wpadminbar #wp-admin-bar-user-info .username{color:#c3c4c5}.wp-pointer .wp-pointer-content h3{background-color:#e14d43;border-color:#dd382d}.wp-pointer .wp-pointer-content h3:before{color:#e14d43}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#e14d43}.media-item .bar,.media-progress-bar div{background-color:#e14d43}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43}.attachment.details .check{background-color:#e14d43;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#e14d43}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#e14d43}.theme-filter.current,.theme-section.current{border-bottom-color:#363b3f}body.more-filters-opened .more-filters{color:#fff;background-color:#363b3f}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#e14d43;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#e14d43;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f2f3}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#e14d43}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#26292c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f2f3}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#e14d43}
\ No newline at end of file
diff --git a/wp-admin/css/colors/midnight/colors.css b/wp-admin/css/colors/midnight/colors.css
index a94d472d1..8b0dd7cf8 100644
--- a/wp-admin/css/colors/midnight/colors.css
+++ b/wp-admin/css/colors/midnight/colors.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #e14d43;
   border-color: #d02c21 #ba281e #ba281e;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ba281e;
   box-shadow: 0 1px 0 #ba281e;
   text-shadow: 0 -1px 1px #ba281e, 1px 0 1px #ba281e, 0 1px 1px #ba281e, -1px 0 1px #ba281e;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #e35950;
   border-color: #ba281e;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ba281e;
   box-shadow: 0 1px 0 #ba281e;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #f1f2f3;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #f1f2f3;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #e14d43;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #e14d43;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #e14d43;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #f1f2f3;
diff --git a/wp-admin/css/colors/midnight/colors.min.css b/wp-admin/css/colors/midnight/colors.min.css
index ca119d2cc..1aa82d3fc 100644
--- a/wp-admin/css/colors/midnight/colors.min.css
+++ b/wp-admin/css/colors/midnight/colors.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#e14d43}input[type=radio]:checked:before{background:#e14d43}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#e14d43;border-color:#d02c21 #ba281e #ba281e;color:#fff;-webkit-box-shadow:0 1px 0 #ba281e;box-shadow:0 1px 0 #ba281e;text-shadow:0 -1px 1px #ba281e,1px 0 1px #ba281e,0 1px 1px #ba281e,-1px 0 1px #ba281e}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#e35950;border-color:#ba281e;color:#fff;-webkit-box-shadow:0 1px 0 #ba281e;box-shadow:0 1px 0 #ba281e}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#d02c21;border-color:#ba281e;-webkit-box-shadow:inset 0 2px 0 #ba281e;box-shadow:inset 0 2px 0 #ba281e}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1c8c7!important;background:#d92e23!important;border-color:#ba281e!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ba281e!important;box-shadow:0 2px 0 #ba281e!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ba281e!important;box-shadow:inset 0 3px 0 #ba281e!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#363b3f}.wp-core-ui .wp-ui-text-primary{color:#363b3f}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#e14d43}.wp-core-ui .wp-ui-text-highlight{color:#e14d43}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#69a8bb}.wp-core-ui .wp-ui-text-notification{color:#69a8bb}.wp-core-ui .wp-ui-text-icon{color:#f1f2f3}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#363b3f}.view-switch a.current:before{color:#363b3f}.view-switch a:hover:before{color:#69a8bb}#adminmenu,#adminmenuback,#adminmenuwrap{background:#363b3f}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f2f3}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#e14d43}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#26292c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#26292c}#adminmenu .wp-submenu .wp-submenu-head{color:#c3c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c3c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#e14d43}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#e14d43}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#e14d43}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#69a8bb}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#26292c}#collapse-menu{color:#f1f2f3}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f1f2f3}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#363b3f}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f2f3}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#e14d43;background:#26292c}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#e14d43}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#26292c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4c4c4d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c3c4c5}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f2f3}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#e14d43}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#e14d43}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f2f3}#wpadminbar #adminbarsearch:before{color:#f1f2f3}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#464d52}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#464d52;background-color:#464d52}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e14d43}#wpadminbar #wp-admin-bar-user-info .username{color:#c3c4c5}.wp-pointer .wp-pointer-content h3{background-color:#e14d43;border-color:#dd382d}.wp-pointer .wp-pointer-content h3:before{color:#e14d43}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#e14d43}.media-item .bar,.media-progress-bar div{background-color:#e14d43}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43}.attachment.details .check{background-color:#e14d43;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#e14d43}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#e14d43}.theme-filter.current,.theme-section.current{border-bottom-color:#363b3f}body.more-filters-opened .more-filters{color:#fff;background-color:#363b3f}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#e14d43;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#e14d43;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#e14d43}div#wp-responsive-toggle a:before{color:#f1f2f3}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#e14d43}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#26292c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f2f3}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#e14d43}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#e14d43}input[type=radio]:checked:before{background:#e14d43}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#e14d43;border-color:#d02c21 #ba281e #ba281e;color:#fff;-webkit-box-shadow:0 1px 0 #ba281e;box-shadow:0 1px 0 #ba281e;text-shadow:0 -1px 1px #ba281e,1px 0 1px #ba281e,0 1px 1px #ba281e,-1px 0 1px #ba281e}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#e35950;border-color:#ba281e;color:#fff;-webkit-box-shadow:0 1px 0 #ba281e;box-shadow:0 1px 0 #ba281e}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #d02c21,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#d02c21;border-color:#ba281e;-webkit-box-shadow:inset 0 2px 0 #ba281e;box-shadow:inset 0 2px 0 #ba281e}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1c8c7!important;background:#d92e23!important;border-color:#ba281e!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ba281e!important;box-shadow:0 2px 0 #ba281e!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ba281e!important;box-shadow:inset 0 3px 0 #ba281e!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#363b3f}.wp-core-ui .wp-ui-text-primary{color:#363b3f}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#e14d43}.wp-core-ui .wp-ui-text-highlight{color:#e14d43}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#69a8bb}.wp-core-ui .wp-ui-text-notification{color:#69a8bb}.wp-core-ui .wp-ui-text-icon{color:#f1f2f3}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#363b3f}.view-switch a.current:before{color:#363b3f}.view-switch a:hover:before{color:#69a8bb}#adminmenu,#adminmenuback,#adminmenuwrap{background:#363b3f}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f1f2f3}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#e14d43}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#26292c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#26292c}#adminmenu .wp-submenu .wp-submenu-head{color:#c3c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#c3c4c5}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#e14d43}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#e14d43}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#e14d43}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#69a8bb}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#26292c}#collapse-button{color:#f1f2f3}#collapse-button:focus,#collapse-button:hover{color:#e14d43}#wpadminbar{color:#fff;background:#363b3f}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f1f2f3}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#e14d43;background:#26292c}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#e14d43}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#26292c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#4c4c4d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c3c4c5}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f1f2f3}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#e14d43}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#e14d43}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f1f2f3}#wpadminbar #adminbarsearch:before{color:#f1f2f3}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#464d52}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#464d52;background-color:#464d52}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e14d43}#wpadminbar #wp-admin-bar-user-info .username{color:#c3c4c5}.wp-pointer .wp-pointer-content h3{background-color:#e14d43;border-color:#dd382d}.wp-pointer .wp-pointer-content h3:before{color:#e14d43}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#e14d43}.media-item .bar,.media-progress-bar div{background-color:#e14d43}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #e14d43}.attachment.details .check{background-color:#e14d43;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 2px #e14d43}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43;box-shadow:0 0 0 1px #fff,0 0 0 3px #e14d43}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#e14d43}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#e14d43}.theme-filter.current,.theme-section.current{border-bottom-color:#363b3f}body.more-filters-opened .more-filters{color:#fff;background-color:#363b3f}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#e14d43;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#e14d43;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f1f2f3}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#e14d43}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#26292c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f1f2f3}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#e14d43}
\ No newline at end of file
diff --git a/wp-admin/css/colors/ocean/colors-rtl.css b/wp-admin/css/colors/ocean/colors-rtl.css
index 65c0ead43..e258d5a92 100644
--- a/wp-admin/css/colors/ocean/colors-rtl.css
+++ b/wp-admin/css/colors/ocean/colors-rtl.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #9ebaa0;
   border-color: #80a583 #719a74 #719a74;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #719a74;
   box-shadow: 0 1px 0 #719a74;
   text-shadow: 0 -1px 1px #719a74, -1px 0 1px #719a74, 0 1px 1px #719a74, 1px 0 1px #719a74;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #a7c0a9;
   border-color: #719a74;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #719a74;
   box-shadow: 0 1px 0 #719a74;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #f2fcff;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #f2fcff;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #9ebaa0;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #9ebaa0;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #9ebaa0;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #f2fcff;
diff --git a/wp-admin/css/colors/ocean/colors-rtl.min.css b/wp-admin/css/colors/ocean/colors-rtl.min.css
index 52506fc83..6471e7455 100644
--- a/wp-admin/css/colors/ocean/colors-rtl.min.css
+++ b/wp-admin/css/colors/ocean/colors-rtl.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#738e96}input[type=radio]:checked:before{background:#738e96}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#9ebaa0;border-color:#80a583 #719a74 #719a74;color:#fff;-webkit-box-shadow:0 1px 0 #719a74;box-shadow:0 1px 0 #719a74;text-shadow:0 -1px 1px #719a74,-1px 0 1px #719a74,0 1px 1px #719a74,1px 0 1px #719a74}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#a7c0a9;border-color:#719a74;color:#fff;-webkit-box-shadow:0 1px 0 #719a74;box-shadow:0 1px 0 #719a74}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#80a583;border-color:#719a74;-webkit-box-shadow:inset 0 2px 0 #719a74;box-shadow:inset 0 2px 0 #719a74}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1c8!important;background:#86a989!important;border-color:#719a74!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #719a74!important;box-shadow:0 2px 0 #719a74!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #719a74!important;box-shadow:inset 0 3px 0 #719a74!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#738e96}.wp-core-ui .wp-ui-text-primary{color:#738e96}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#9ebaa0}.wp-core-ui .wp-ui-text-highlight{color:#9ebaa0}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#aa9d88}.wp-core-ui .wp-ui-text-notification{color:#aa9d88}.wp-core-ui .wp-ui-text-icon{color:#f2fcff}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#738e96}.view-switch a.current:before{color:#738e96}.view-switch a:hover:before{color:#aa9d88}#adminmenu,#adminmenuback,#adminmenuwrap{background:#738e96}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f2fcff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#9ebaa0}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#627c83}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#627c83}#adminmenu .wp-submenu .wp-submenu-head{color:#d5dde0}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#d5dde0}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#9ebaa0}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#9ebaa0}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#9ebaa0}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#aa9d88}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#627c83}#collapse-menu{color:#f2fcff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f2fcff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#738e96}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f2fcff}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#9ebaa0;background:#627c83}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#9ebaa0}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#627c83}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#8f9a9e}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#d5dde0}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f2fcff}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#9ebaa0}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#9ebaa0}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f2fcff}#wpadminbar #adminbarsearch:before{color:#f2fcff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#879ea5}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#879ea5;background-color:#879ea5}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#9ebaa0}#wpadminbar #wp-admin-bar-user-info .username{color:#d5dde0}.wp-pointer .wp-pointer-content h3{background-color:#9ebaa0;border-color:#8faf91}.wp-pointer .wp-pointer-content h3:before{color:#9ebaa0}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#9ebaa0}.media-item .bar,.media-progress-bar div{background-color:#9ebaa0}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0}.attachment.details .check{background-color:#9ebaa0;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#9ebaa0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#9ebaa0}.theme-filter.current,.theme-section.current{border-bottom-color:#738e96}body.more-filters-opened .more-filters{color:#fff;background-color:#738e96}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#9ebaa0;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#9ebaa0;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#9ebaa0}div#wp-responsive-toggle a:before{color:#f2fcff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#9ebaa0}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#627c83}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f2fcff}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#9ebaa0}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#738e96}input[type=radio]:checked:before{background:#738e96}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#9ebaa0;border-color:#80a583 #719a74 #719a74;color:#fff;-webkit-box-shadow:0 1px 0 #719a74;box-shadow:0 1px 0 #719a74;text-shadow:0 -1px 1px #719a74,-1px 0 1px #719a74,0 1px 1px #719a74,1px 0 1px #719a74}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#a7c0a9;border-color:#719a74;color:#fff;-webkit-box-shadow:0 1px 0 #719a74;box-shadow:0 1px 0 #719a74}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#80a583;border-color:#719a74;-webkit-box-shadow:inset 0 2px 0 #719a74;box-shadow:inset 0 2px 0 #719a74}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1c8!important;background:#86a989!important;border-color:#719a74!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #719a74!important;box-shadow:0 2px 0 #719a74!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #719a74!important;box-shadow:inset 0 3px 0 #719a74!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#738e96}.wp-core-ui .wp-ui-text-primary{color:#738e96}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#9ebaa0}.wp-core-ui .wp-ui-text-highlight{color:#9ebaa0}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#aa9d88}.wp-core-ui .wp-ui-text-notification{color:#aa9d88}.wp-core-ui .wp-ui-text-icon{color:#f2fcff}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#738e96}.view-switch a.current:before{color:#738e96}.view-switch a:hover:before{color:#aa9d88}#adminmenu,#adminmenuback,#adminmenuwrap{background:#738e96}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f2fcff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#9ebaa0}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#627c83}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#627c83}#adminmenu .wp-submenu .wp-submenu-head{color:#d5dde0}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#d5dde0}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#9ebaa0}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#9ebaa0}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#9ebaa0}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#aa9d88}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#627c83}#collapse-button{color:#f2fcff}#collapse-button:focus,#collapse-button:hover{color:#9ebaa0}#wpadminbar{color:#fff;background:#738e96}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f2fcff}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#9ebaa0;background:#627c83}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#9ebaa0}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#627c83}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#8f9a9e}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#d5dde0}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f2fcff}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#9ebaa0}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#9ebaa0}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f2fcff}#wpadminbar #adminbarsearch:before{color:#f2fcff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#879ea5}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#879ea5;background-color:#879ea5}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#9ebaa0}#wpadminbar #wp-admin-bar-user-info .username{color:#d5dde0}.wp-pointer .wp-pointer-content h3{background-color:#9ebaa0;border-color:#8faf91}.wp-pointer .wp-pointer-content h3:before{color:#9ebaa0}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#9ebaa0}.media-item .bar,.media-progress-bar div{background-color:#9ebaa0}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0}.attachment.details .check{background-color:#9ebaa0;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#9ebaa0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#9ebaa0}.theme-filter.current,.theme-section.current{border-bottom-color:#738e96}body.more-filters-opened .more-filters{color:#fff;background-color:#738e96}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#9ebaa0;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#9ebaa0;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f2fcff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#9ebaa0}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#627c83}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f2fcff}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#9ebaa0}
\ No newline at end of file
diff --git a/wp-admin/css/colors/ocean/colors.css b/wp-admin/css/colors/ocean/colors.css
index c98d3bed4..47109d712 100644
--- a/wp-admin/css/colors/ocean/colors.css
+++ b/wp-admin/css/colors/ocean/colors.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #9ebaa0;
   border-color: #80a583 #719a74 #719a74;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #719a74;
   box-shadow: 0 1px 0 #719a74;
   text-shadow: 0 -1px 1px #719a74, 1px 0 1px #719a74, 0 1px 1px #719a74, -1px 0 1px #719a74;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #a7c0a9;
   border-color: #719a74;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #719a74;
   box-shadow: 0 1px 0 #719a74;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #f2fcff;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #f2fcff;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #9ebaa0;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #9ebaa0;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #9ebaa0;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #f2fcff;
diff --git a/wp-admin/css/colors/ocean/colors.min.css b/wp-admin/css/colors/ocean/colors.min.css
index 4aaf1a23d..9dc06cac6 100644
--- a/wp-admin/css/colors/ocean/colors.min.css
+++ b/wp-admin/css/colors/ocean/colors.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#738e96}input[type=radio]:checked:before{background:#738e96}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#9ebaa0;border-color:#80a583 #719a74 #719a74;color:#fff;-webkit-box-shadow:0 1px 0 #719a74;box-shadow:0 1px 0 #719a74;text-shadow:0 -1px 1px #719a74,1px 0 1px #719a74,0 1px 1px #719a74,-1px 0 1px #719a74}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#a7c0a9;border-color:#719a74;color:#fff;-webkit-box-shadow:0 1px 0 #719a74;box-shadow:0 1px 0 #719a74}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#80a583;border-color:#719a74;-webkit-box-shadow:inset 0 2px 0 #719a74;box-shadow:inset 0 2px 0 #719a74}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1c8!important;background:#86a989!important;border-color:#719a74!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #719a74!important;box-shadow:0 2px 0 #719a74!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #719a74!important;box-shadow:inset 0 3px 0 #719a74!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#738e96}.wp-core-ui .wp-ui-text-primary{color:#738e96}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#9ebaa0}.wp-core-ui .wp-ui-text-highlight{color:#9ebaa0}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#aa9d88}.wp-core-ui .wp-ui-text-notification{color:#aa9d88}.wp-core-ui .wp-ui-text-icon{color:#f2fcff}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#738e96}.view-switch a.current:before{color:#738e96}.view-switch a:hover:before{color:#aa9d88}#adminmenu,#adminmenuback,#adminmenuwrap{background:#738e96}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f2fcff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#9ebaa0}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#627c83}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#627c83}#adminmenu .wp-submenu .wp-submenu-head{color:#d5dde0}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#d5dde0}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#9ebaa0}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#9ebaa0}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#9ebaa0}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#aa9d88}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#627c83}#collapse-menu{color:#f2fcff}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f2fcff}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#738e96}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f2fcff}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#9ebaa0;background:#627c83}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#9ebaa0}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#627c83}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#8f9a9e}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#d5dde0}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f2fcff}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#9ebaa0}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#9ebaa0}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f2fcff}#wpadminbar #adminbarsearch:before{color:#f2fcff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#879ea5}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#879ea5;background-color:#879ea5}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#9ebaa0}#wpadminbar #wp-admin-bar-user-info .username{color:#d5dde0}.wp-pointer .wp-pointer-content h3{background-color:#9ebaa0;border-color:#8faf91}.wp-pointer .wp-pointer-content h3:before{color:#9ebaa0}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#9ebaa0}.media-item .bar,.media-progress-bar div{background-color:#9ebaa0}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0}.attachment.details .check{background-color:#9ebaa0;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#9ebaa0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#9ebaa0}.theme-filter.current,.theme-section.current{border-bottom-color:#738e96}body.more-filters-opened .more-filters{color:#fff;background-color:#738e96}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#9ebaa0;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#9ebaa0;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#9ebaa0}div#wp-responsive-toggle a:before{color:#f2fcff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#9ebaa0}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#627c83}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f2fcff}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#9ebaa0}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#738e96}input[type=radio]:checked:before{background:#738e96}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#9ebaa0;border-color:#80a583 #719a74 #719a74;color:#fff;-webkit-box-shadow:0 1px 0 #719a74;box-shadow:0 1px 0 #719a74;text-shadow:0 -1px 1px #719a74,1px 0 1px #719a74,0 1px 1px #719a74,-1px 0 1px #719a74}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#a7c0a9;border-color:#719a74;color:#fff;-webkit-box-shadow:0 1px 0 #719a74;box-shadow:0 1px 0 #719a74}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #80a583,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#80a583;border-color:#719a74;-webkit-box-shadow:inset 0 2px 0 #719a74;box-shadow:inset 0 2px 0 #719a74}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#c7d1c8!important;background:#86a989!important;border-color:#719a74!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #719a74!important;box-shadow:0 2px 0 #719a74!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #719a74!important;box-shadow:inset 0 3px 0 #719a74!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#738e96}.wp-core-ui .wp-ui-text-primary{color:#738e96}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#9ebaa0}.wp-core-ui .wp-ui-text-highlight{color:#9ebaa0}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#aa9d88}.wp-core-ui .wp-ui-text-notification{color:#aa9d88}.wp-core-ui .wp-ui-text-icon{color:#f2fcff}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#738e96}.view-switch a.current:before{color:#738e96}.view-switch a:hover:before{color:#aa9d88}#adminmenu,#adminmenuback,#adminmenuwrap{background:#738e96}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f2fcff}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#9ebaa0}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#627c83}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#627c83}#adminmenu .wp-submenu .wp-submenu-head{color:#d5dde0}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#d5dde0}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#9ebaa0}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#9ebaa0}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#9ebaa0}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#aa9d88}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#627c83}#collapse-button{color:#f2fcff}#collapse-button:focus,#collapse-button:hover{color:#9ebaa0}#wpadminbar{color:#fff;background:#738e96}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f2fcff}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#9ebaa0;background:#627c83}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#9ebaa0}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#627c83}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#8f9a9e}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#d5dde0}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f2fcff}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#9ebaa0}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#9ebaa0}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f2fcff}#wpadminbar #adminbarsearch:before{color:#f2fcff}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#879ea5}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#879ea5;background-color:#879ea5}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#9ebaa0}#wpadminbar #wp-admin-bar-user-info .username{color:#d5dde0}.wp-pointer .wp-pointer-content h3{background-color:#9ebaa0;border-color:#8faf91}.wp-pointer .wp-pointer-content h3:before{color:#9ebaa0}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#9ebaa0}.media-item .bar,.media-progress-bar div{background-color:#9ebaa0}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #9ebaa0}.attachment.details .check{background-color:#9ebaa0;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 2px #9ebaa0}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0;box-shadow:0 0 0 1px #fff,0 0 0 3px #9ebaa0}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#9ebaa0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#9ebaa0}.theme-filter.current,.theme-section.current{border-bottom-color:#738e96}body.more-filters-opened .more-filters{color:#fff;background-color:#738e96}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#9ebaa0;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#9ebaa0;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f2fcff}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#9ebaa0}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#627c83}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f2fcff}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#9ebaa0}
\ No newline at end of file
diff --git a/wp-admin/css/colors/sunrise/colors-rtl.css b/wp-admin/css/colors/sunrise/colors-rtl.css
index cd9e9eb48..2837315d3 100644
--- a/wp-admin/css/colors/sunrise/colors-rtl.css
+++ b/wp-admin/css/colors/sunrise/colors-rtl.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #dd823b;
   border-color: #c36922 #ad5d1e #ad5d1e;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ad5d1e;
   box-shadow: 0 1px 0 #ad5d1e;
   text-shadow: 0 -1px 1px #ad5d1e, -1px 0 1px #ad5d1e, 0 1px 1px #ad5d1e, 1px 0 1px #ad5d1e;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #df8a48;
   border-color: #ad5d1e;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ad5d1e;
   box-shadow: 0 1px 0 #ad5d1e;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #f3f1f1;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #f3f1f1;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #f7e3d3;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #dd823b;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #dd823b;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #f3f1f1;
diff --git a/wp-admin/css/colors/sunrise/colors-rtl.min.css b/wp-admin/css/colors/sunrise/colors-rtl.min.css
index aab125347..cd9ee18d9 100644
--- a/wp-admin/css/colors/sunrise/colors-rtl.min.css
+++ b/wp-admin/css/colors/sunrise/colors-rtl.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#dd823b}input[type=radio]:checked:before{background:#dd823b}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#dd823b;border-color:#c36922 #ad5d1e #ad5d1e;color:#fff;-webkit-box-shadow:0 1px 0 #ad5d1e;box-shadow:0 1px 0 #ad5d1e;text-shadow:0 -1px 1px #ad5d1e,-1px 0 1px #ad5d1e,0 1px 1px #ad5d1e,1px 0 1px #ad5d1e}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#df8a48;border-color:#ad5d1e;color:#fff;-webkit-box-shadow:0 1px 0 #ad5d1e;box-shadow:0 1px 0 #ad5d1e}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#c36922;border-color:#ad5d1e;-webkit-box-shadow:inset 0 2px 0 #ad5d1e;box-shadow:inset 0 2px 0 #ad5d1e}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#cc6d23!important;border-color:#ad5d1e!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ad5d1e!important;box-shadow:0 2px 0 #ad5d1e!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ad5d1e!important;box-shadow:inset 0 3px 0 #ad5d1e!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#cf4944}.wp-core-ui .wp-ui-text-primary{color:#cf4944}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#dd823b}.wp-core-ui .wp-ui-text-highlight{color:#dd823b}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#ccaf0b}.wp-core-ui .wp-ui-text-notification{color:#ccaf0b}.wp-core-ui .wp-ui-text-icon{color:#f3f1f1}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#cf4944}.view-switch a.current:before{color:#cf4944}.view-switch a:hover:before{color:#ccaf0b}#adminmenu,#adminmenuback,#adminmenuwrap{background:#cf4944}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f1f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#dd823b}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#be3631}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#be3631}#adminmenu .wp-submenu .wp-submenu-head{color:#f1c8c7}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#f1c8c7}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#f7e3d3}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#f7e3d3}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#dd823b}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#ccaf0b}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#be3631}#collapse-menu{color:#f3f1f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f1f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#cf4944}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f1f1}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#f7e3d3;background:#be3631}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#f7e3d3}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#be3631}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#cf6b67}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#f1c8c7}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f1f1}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#f7e3d3}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#f7e3d3}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f3f1f1}#wpadminbar #adminbarsearch:before{color:#f3f1f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#d66560}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#d66560;background-color:#d66560}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f7e3d3}#wpadminbar #wp-admin-bar-user-info .username{color:#f1c8c7}.wp-pointer .wp-pointer-content h3{background-color:#dd823b;border-color:#d97426}.wp-pointer .wp-pointer-content h3:before{color:#dd823b}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#dd823b}.media-item .bar,.media-progress-bar div{background-color:#dd823b}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b}.attachment.details .check{background-color:#dd823b;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#dd823b}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#dd823b}.theme-filter.current,.theme-section.current{border-bottom-color:#cf4944}body.more-filters-opened .more-filters{color:#fff;background-color:#cf4944}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#dd823b;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#dd823b;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#dd823b}div#wp-responsive-toggle a:before{color:#f3f1f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dd823b}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#be3631}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f3f1f1}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#dd823b}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#dd823b}input[type=radio]:checked:before{background:#dd823b}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#dd823b;border-color:#c36922 #ad5d1e #ad5d1e;color:#fff;-webkit-box-shadow:0 1px 0 #ad5d1e;box-shadow:0 1px 0 #ad5d1e;text-shadow:0 -1px 1px #ad5d1e,-1px 0 1px #ad5d1e,0 1px 1px #ad5d1e,1px 0 1px #ad5d1e}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#df8a48;border-color:#ad5d1e;color:#fff;-webkit-box-shadow:0 1px 0 #ad5d1e;box-shadow:0 1px 0 #ad5d1e}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#c36922;border-color:#ad5d1e;-webkit-box-shadow:inset 0 2px 0 #ad5d1e;box-shadow:inset 0 2px 0 #ad5d1e}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#cc6d23!important;border-color:#ad5d1e!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ad5d1e!important;box-shadow:0 2px 0 #ad5d1e!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ad5d1e!important;box-shadow:inset 0 3px 0 #ad5d1e!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#cf4944}.wp-core-ui .wp-ui-text-primary{color:#cf4944}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#dd823b}.wp-core-ui .wp-ui-text-highlight{color:#dd823b}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#ccaf0b}.wp-core-ui .wp-ui-text-notification{color:#ccaf0b}.wp-core-ui .wp-ui-text-icon{color:#f3f1f1}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#cf4944}.view-switch a.current:before{color:#cf4944}.view-switch a:hover:before{color:#ccaf0b}#adminmenu,#adminmenuback,#adminmenuwrap{background:#cf4944}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f1f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#dd823b}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#be3631}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-left-color:#be3631}#adminmenu .wp-submenu .wp-submenu-head{color:#f1c8c7}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#f1c8c7}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#f7e3d3}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#f7e3d3}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-left-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#dd823b}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#ccaf0b}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#be3631}#collapse-button{color:#f3f1f1}#collapse-button:focus,#collapse-button:hover{color:#f7e3d3}#wpadminbar{color:#fff;background:#cf4944}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f1f1}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#f7e3d3;background:#be3631}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#f7e3d3}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#be3631}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#cf6b67}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#f1c8c7}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f1f1}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#f7e3d3}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#f7e3d3}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f3f1f1}#wpadminbar #adminbarsearch:before{color:#f3f1f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#d66560}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#d66560;background-color:#d66560}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f7e3d3}#wpadminbar #wp-admin-bar-user-info .username{color:#f1c8c7}.wp-pointer .wp-pointer-content h3{background-color:#dd823b;border-color:#d97426}.wp-pointer .wp-pointer-content h3:before{color:#dd823b}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#dd823b}.media-item .bar,.media-progress-bar div{background-color:#dd823b}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b}.attachment.details .check{background-color:#dd823b;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#dd823b}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#dd823b}.theme-filter.current,.theme-section.current{border-bottom-color:#cf4944}body.more-filters-opened .more-filters{color:#fff;background-color:#cf4944}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#dd823b;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#dd823b;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f3f1f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dd823b}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#be3631}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f3f1f1}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#dd823b}
\ No newline at end of file
diff --git a/wp-admin/css/colors/sunrise/colors.css b/wp-admin/css/colors/sunrise/colors.css
index 88cde5380..38676a06d 100644
--- a/wp-admin/css/colors/sunrise/colors.css
+++ b/wp-admin/css/colors/sunrise/colors.css
@@ -2,7 +2,7 @@
  * Button mixin- creates 3d-ish button effect with correct
  * highlights/shadows, based on a base color.
  */
-html {
+body {
   background: #f1f1f1;
 }
 
@@ -40,7 +40,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary {
   background: #dd823b;
   border-color: #c36922 #ad5d1e #ad5d1e;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ad5d1e;
   box-shadow: 0 1px 0 #ad5d1e;
   text-shadow: 0 -1px 1px #ad5d1e, 1px 0 1px #ad5d1e, 0 1px 1px #ad5d1e, -1px 0 1px #ad5d1e;
@@ -49,7 +49,7 @@ input[type=radio]:checked:before {
 .wp-core-ui .button-primary:hover, .wp-core-ui .button-primary:focus {
   background: #df8a48;
   border-color: #ad5d1e;
-  color: white;
+  color: #fff;
   -webkit-box-shadow: 0 1px 0 #ad5d1e;
   box-shadow: 0 1px 0 #ad5d1e;
 }
@@ -259,20 +259,13 @@ ul#adminmenu > li.current > a.current:after {
 }
 
 /* Admin Menu: collapse button */
-#collapse-menu {
+#collapse-button {
   color: #f3f1f1;
 }
 
-#collapse-menu:hover {
-  color: #fff;
-}
-
-#collapse-button div:after {
-  color: #f3f1f1;
-}
-
-#collapse-menu:hover #collapse-button div:after {
-  color: #fff;
+#collapse-button:hover,
+#collapse-button:focus {
+  color: #f7e3d3;
 }
 
 /* Admin Bar */
@@ -352,6 +345,7 @@ ul#adminmenu > li.current > a.current:after {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
@@ -488,16 +482,6 @@ body.more-filters-opened .more-filters:focus:before {
   color: #fff;
 }
 
-/* Customize */
-#customize-theme-controls .widget-area-select .selected {
-  background-color: #dd823b;
-  color: #fff;
-}
-
-#customize-footer-actions .devices button:focus {
-  border-bottom-color: #dd823b;
-}
-
 /* Responsive Component */
 div#wp-responsive-toggle a:before {
   color: #f3f1f1;
diff --git a/wp-admin/css/colors/sunrise/colors.min.css b/wp-admin/css/colors/sunrise/colors.min.css
index 6ff5461b7..9c6ac7559 100644
--- a/wp-admin/css/colors/sunrise/colors.min.css
+++ b/wp-admin/css/colors/sunrise/colors.min.css
@@ -1 +1 @@
-html{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#dd823b}input[type=radio]:checked:before{background:#dd823b}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#dd823b;border-color:#c36922 #ad5d1e #ad5d1e;color:#fff;-webkit-box-shadow:0 1px 0 #ad5d1e;box-shadow:0 1px 0 #ad5d1e;text-shadow:0 -1px 1px #ad5d1e,1px 0 1px #ad5d1e,0 1px 1px #ad5d1e,-1px 0 1px #ad5d1e}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#df8a48;border-color:#ad5d1e;color:#fff;-webkit-box-shadow:0 1px 0 #ad5d1e;box-shadow:0 1px 0 #ad5d1e}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#c36922;border-color:#ad5d1e;-webkit-box-shadow:inset 0 2px 0 #ad5d1e;box-shadow:inset 0 2px 0 #ad5d1e}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#cc6d23!important;border-color:#ad5d1e!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ad5d1e!important;box-shadow:0 2px 0 #ad5d1e!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ad5d1e!important;box-shadow:inset 0 3px 0 #ad5d1e!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#cf4944}.wp-core-ui .wp-ui-text-primary{color:#cf4944}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#dd823b}.wp-core-ui .wp-ui-text-highlight{color:#dd823b}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#ccaf0b}.wp-core-ui .wp-ui-text-notification{color:#ccaf0b}.wp-core-ui .wp-ui-text-icon{color:#f3f1f1}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#cf4944}.view-switch a.current:before{color:#cf4944}.view-switch a:hover:before{color:#ccaf0b}#adminmenu,#adminmenuback,#adminmenuwrap{background:#cf4944}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f1f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#dd823b}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#be3631}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#be3631}#adminmenu .wp-submenu .wp-submenu-head{color:#f1c8c7}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#f1c8c7}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#f7e3d3}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#f7e3d3}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#dd823b}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#ccaf0b}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#be3631}#collapse-menu{color:#f3f1f1}#collapse-menu:hover{color:#fff}#collapse-button div:after{color:#f3f1f1}#collapse-menu:hover #collapse-button div:after{color:#fff}#wpadminbar{color:#fff;background:#cf4944}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f1f1}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#f7e3d3;background:#be3631}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#f7e3d3}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#be3631}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#cf6b67}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#f1c8c7}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f1f1}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#f7e3d3}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#f7e3d3}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f3f1f1}#wpadminbar #adminbarsearch:before{color:#f3f1f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#d66560}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#d66560;background-color:#d66560}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f7e3d3}#wpadminbar #wp-admin-bar-user-info .username{color:#f1c8c7}.wp-pointer .wp-pointer-content h3{background-color:#dd823b;border-color:#d97426}.wp-pointer .wp-pointer-content h3:before{color:#dd823b}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#dd823b}.media-item .bar,.media-progress-bar div{background-color:#dd823b}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b}.attachment.details .check{background-color:#dd823b;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#dd823b}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#dd823b}.theme-filter.current,.theme-section.current{border-bottom-color:#cf4944}body.more-filters-opened .more-filters{color:#fff;background-color:#cf4944}#customize-theme-controls .widget-area-select .selected,.widgets-chooser li.widgets-chooser-selected{background-color:#dd823b;color:#fff}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#dd823b;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}#customize-footer-actions .devices button:focus{border-bottom-color:#dd823b}div#wp-responsive-toggle a:before{color:#f3f1f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dd823b}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#be3631}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f3f1f1}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#dd823b}
\ No newline at end of file
+body{background:#f1f1f1}a{color:#0073aa}a:active,a:focus,a:hover{color:#0096dd}#media-upload a.del-link:hover,.subsubsub a.current:hover,.subsubsub a:hover,div.dashboard-widget-submit input:hover{color:#0096dd}input[type=checkbox]:checked:before{color:#dd823b}input[type=radio]:checked:before{background:#dd823b}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#0096dd}.wp-core-ui .button-primary{background:#dd823b;border-color:#c36922 #ad5d1e #ad5d1e;color:#fff;-webkit-box-shadow:0 1px 0 #ad5d1e;box-shadow:0 1px 0 #ad5d1e;text-shadow:0 -1px 1px #ad5d1e,1px 0 1px #ad5d1e,0 1px 1px #ad5d1e,-1px 0 1px #ad5d1e}.wp-core-ui .button-primary:focus,.wp-core-ui .button-primary:hover{background:#df8a48;border-color:#ad5d1e;color:#fff;-webkit-box-shadow:0 1px 0 #ad5d1e;box-shadow:0 1px 0 #ad5d1e}.wp-core-ui .button-primary:focus{-webkit-box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db;box-shadow:inset 0 1px 0 #c36922,0 0 2px 1px #33b3db}.wp-core-ui .button-primary:active{background:#c36922;border-color:#ad5d1e;-webkit-box-shadow:inset 0 2px 0 #ad5d1e;box-shadow:inset 0 2px 0 #ad5d1e}.wp-core-ui .button-primary.button-primary-disabled,.wp-core-ui .button-primary.disabled,.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary[disabled]{color:#d1cbc7!important;background:#cc6d23!important;border-color:#ad5d1e!important;text-shadow:none!important}.wp-core-ui .button-primary.button-hero{-webkit-box-shadow:0 2px 0 #ad5d1e!important;box-shadow:0 2px 0 #ad5d1e!important}.wp-core-ui .button-primary.button-hero:active{-webkit-box-shadow:inset 0 3px 0 #ad5d1e!important;box-shadow:inset 0 3px 0 #ad5d1e!important}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#cf4944}.wp-core-ui .wp-ui-text-primary{color:#cf4944}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#dd823b}.wp-core-ui .wp-ui-text-highlight{color:#dd823b}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#ccaf0b}.wp-core-ui .wp-ui-text-notification{color:#ccaf0b}.wp-core-ui .wp-ui-text-icon{color:#f3f1f1}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover,.wrap .add-new-h2:hover,.wrap .page-title-action:hover{color:#fff;background-color:#cf4944}.view-switch a.current:before{color:#cf4944}.view-switch a:hover:before{color:#ccaf0b}#adminmenu,#adminmenuback,#adminmenuwrap{background:#cf4944}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#f3f1f1}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#dd823b}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap h2 .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f1f1f1;border-bottom-color:#f1f1f1}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,#adminmenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background:#be3631}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#be3631}#adminmenu .wp-submenu .wp-submenu-head{color:#f1c8c7}#adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a,#adminmenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a{color:#f1c8c7}#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover,#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover{color:#f7e3d3}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a,#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a{color:#fff}#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu .wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover{color:#f7e3d3}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f1f1f1}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{color:#fff;background:#dd823b}#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,.ie8 #adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#ccaf0b}#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li.current a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins,#adminmenu li:hover a .awaiting-mod{color:#fff;background:#be3631}#collapse-button{color:#f3f1f1}#collapse-button:focus,#collapse-button:hover{color:#f7e3d3}#wpadminbar{color:#fff;background:#cf4944}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:after,#wpadminbar .ab-item:before{color:#f3f1f1}#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{color:#f7e3d3;background:#be3631}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label{color:#f7e3d3}#wpadminbar:not(.mobile) li:hover #adminbarsearch:before,#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover .ab-item:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#be3631}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#cf6b67}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#f1c8c7}#wpadminbar .menupop .menupop>.ab-item:before,#wpadminbar .quicklinks li .blavatar{color:#f3f1f1}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#f7e3d3}#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#f7e3d3}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#f3f1f1}#wpadminbar #adminbarsearch:before{color:#f3f1f1}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#d66560}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#d66560;background-color:#d66560}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f7e3d3}#wpadminbar #wp-admin-bar-user-info .username{color:#f1c8c7}.wp-pointer .wp-pointer-content h3{background-color:#dd823b;border-color:#d97426}.wp-pointer .wp-pointer-content h3:before{color:#dd823b}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#dd823b}.media-item .bar,.media-progress-bar div{background-color:#dd823b}.details.attachment{-webkit-box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #dd823b}.attachment.details .check{background-color:#dd823b;-webkit-box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 2px #dd823b}.media-selection .attachment.selection.details .thumbnail{-webkit-box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b;box-shadow:0 0 0 1px #fff,0 0 0 3px #dd823b}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{background:#dd823b}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{color:#dd823b}.theme-filter.current,.theme-section.current{border-bottom-color:#cf4944}body.more-filters-opened .more-filters{color:#fff;background-color:#cf4944}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:focus,body.more-filters-opened .more-filters:hover{background-color:#dd823b;color:#fff}body.more-filters-opened .more-filters:focus:before,body.more-filters-opened .more-filters:hover:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#dd823b;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#f3f1f1}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dd823b}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#be3631}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#f3f1f1}.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item:hover{background:#dd823b}
\ No newline at end of file
diff --git a/wp-admin/css/common-rtl.css b/wp-admin/css/common-rtl.css
index e660523da..e7a5f54b9 100644
--- a/wp-admin/css/common-rtl.css
+++ b/wp-admin/css/common-rtl.css
@@ -572,10 +572,20 @@ code {
 	font-size: 23px;
 	font-weight: 400;
 	margin: 0;
-	padding: 9px 0 4px 15px;
+	padding: 9px 0 4px 0;
 	line-height: 29px;
 }
 
+.wrap h1.wp-heading-inline {
+	display: inline-block;
+	margin-left: 5px;
+}
+
+.wp-header-end {
+	visibility: hidden;
+	margin: -2px 0 0;
+}
+
 .subtitle {
 	margin: 0;
 	padding-right: 25px;
@@ -608,6 +618,10 @@ code {
 	outline: 0;
 }
 
+.wrap .wp-heading-inline + .page-title-action {
+	margin-right: 0;
+}
+
 .wrap .add-new-h2:hover, /* deprecated */
 .wrap .page-title-action:hover {
 	border-color: #008EC2;
@@ -680,7 +694,7 @@ ul.striped > :nth-child(odd),
 }
 
 .wp-ui-highlight {
-	color: white;
+	color: #fff;
 	background-color: #1e8cbe;
 }
 .wp-ui-text-highlight {
@@ -759,7 +773,7 @@ img.emoji {
 
 /* @todo can we combine these into a class or use an existing dashicon one? */
 .welcome-panel .welcome-panel-close:before,
-.tagchecklist span a:before,
+.tagchecklist .ntdelbutton .remove-tag-icon:before,
 #bulk-titles div a:before,
 .notice-dismiss:before {
 	background: none;
@@ -779,18 +793,41 @@ img.emoji {
 	margin: 0;
 }
 
-.tagchecklist span a:before,
 #bulk-titles div a:before {
 	margin: 1px 0;
 }
 
+.tagchecklist .ntdelbutton .remove-tag-icon:before {
+	margin-right: 2px;
+	-webkit-border-radius: 50%;
+	border-radius: 50%;
+	color: #0073aa;
+	/* vertically center the icon cross browsers */
+	line-height: 1.28;
+}
+
+.tagchecklist .ntdelbutton:focus {
+	outline: 0;
+}
+
 .welcome-panel .welcome-panel-close:hover:before,
 .welcome-panel .welcome-panel-close:focus:before,
-.tagchecklist span a:hover:before,
-#bulk-titles div a:hover:before {
+.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,
+#bulk-titles div a:hover:before,
+#bulk-titles div a:focus:before {
 	color: #c00;
 }
 
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 .key-labels label {
 	line-height: 24px;
 }
@@ -826,6 +863,8 @@ hr {
 	border-bottom: 1px solid #fafafa;
 }
 
+.widget-control-remove,
+.widget-control-remove:focus,
 .row-actions span.delete a,
 .row-actions span.trash a,
 .row-actions span.spam a,
@@ -842,7 +881,6 @@ hr {
 abbr.required,
 span.required,
 .file-error,
-.widget-control-remove:hover,
 .row-actions .delete a:hover,
 .row-actions .trash a:hover,
 .row-actions .spam a:hover,
@@ -854,10 +892,13 @@ span.required,
 #media-items a.delete-permanently:hover,
 #nav-menu-footer .menu-delete:hover {
 	color: #f00;
-	text-decoration: none;
 	border: none;
 }
 
+.widget-control-remove:hover {
+	color: #f00;
+}
+
 /*------------------------------------------------------------------------------
   3.0 - Actions
 ------------------------------------------------------------------------------*/
@@ -870,10 +911,8 @@ span.required,
 }
 
 #delete-action {
-	line-height: 28px;
-	vertical-align: middle;
-	text-align: right;
 	float: right;
+	line-height: 28px;
 }
 
 #publishing-action {
@@ -1043,39 +1082,53 @@ th.action-links {
 	display: inline-block;
 }
 
-.wp-filter .drawer-toggle {
-	display: inline-block;
-	margin: 0 10px;
-	padding: 4px 6px;
+.wp-filter .button.drawer-toggle {
+	margin: 10px 9px 0;
+	padding: 0 6px 0 10px;
+	border-color: transparent;
+	background-color: transparent;
 	color: #666;
-	cursor: pointer;
+	vertical-align: baseline;
+	-webkit-box-shadow: none;
+	box-shadow: none;
 }
 
 .wp-filter .drawer-toggle:before {
-	display: inline-block;
-	vertical-align: top;
 	content: "\f111";
 	margin: 0 0 0 5px;
-	width: 16px;
-	height: 16px;
 	color: #72777c;
-	-webkit-transition: color .1s ease-in 0;
-	transition: color .1s ease-in 0;
-	font-family: dashicons;
-	font-size: 16px;
-	line-height: 1;
-	text-align: center;
-	text-decoration: inherit;
-	font-weight: 400;
-	font-style: normal;
+	font: normal 16px/1 dashicons;
+	vertical-align: text-bottom;
 	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
 }
 
-.wp-filter .drawer-toggle:hover,
-.wp-filter .drawer-toggle:hover:before {
+.wp-filter .button.drawer-toggle:hover,
+.wp-filter .drawer-toggle:hover:before,
+.wp-filter .button.drawer-toggle:focus,
+.wp-filter .drawer-toggle:focus:before {
+	background-color: transparent;
 	color: #00a0d2;
 }
 
+.wp-filter .button.drawer-toggle:hover,
+.wp-filter .button.drawer-toggle:focus:active {
+	border-color: transparent;
+}
+
+.wp-filter .button.drawer-toggle:focus {
+	border-color: #5b9dd9;
+}
+
+.wp-filter .button.drawer-toggle:active {
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	-webkit-transform: none;
+	-ms-transform: none;
+	transform: none;
+}
+
 .wp-filter .drawer-toggle.current:before {
 	color: #fff;
 }
@@ -1090,7 +1143,7 @@ th.action-links {
 	width: 100%;
 }
 
-.show-favorites-form .wp-filter .favorites-form {
+.show-favorites-form .favorites-form {
 	display: block;
 }
 
@@ -1108,23 +1161,22 @@ th.action-links {
 	width: 100%;
 }
 
-.show-filters .wp-filter .drawer-toggle:hover,
-.show-filters .wp-filter .drawer-toggle:focus {
-	background: rgb(46, 162, 204);
-}
-
 .show-filters .filter-links a.current {
 	border-bottom: none;
 }
 
-.show-filters .wp-filter .drawer-toggle {
+.show-filters .wp-filter .button.drawer-toggle {
 	-webkit-border-radius: 2px;
 	border-radius: 2px;
-	border: none;
 	background: #72777c;
 	color: #fff;
 }
 
+.show-filters .wp-filter .drawer-toggle:hover,
+.show-filters .wp-filter .drawer-toggle:focus {
+	background: rgb(46, 162, 204);
+}
+
 .show-filters .wp-filter .drawer-toggle:before {
 	color: #fff;
 }
@@ -1168,9 +1220,15 @@ th.action-links {
 }
 
 .filter-drawer .buttons {
+	clear: both;
 	margin-bottom: 20px;
 }
 
+.filter-drawer .filter-group + .buttons {
+	margin-bottom: 0;
+	padding-top: 20px;
+}
+
 .filter-drawer .buttons .button span {
 	display: inline-block;
 	opacity: 0.8;
@@ -1183,6 +1241,21 @@ th.action-links {
 	margin-right: 10px;
 }
 
+.wp-filter .button-link.edit-filters {
+	color: #0073aa;
+	text-decoration: underline;
+	padding: 0 5px;
+	line-height: 28px;
+}
+
+.wp-filter .button-link.edit-filters:hover {
+	color: #00a0d2;
+}
+
+.wp-filter .button-link.edit-filters:focus {
+	color: #124964;
+}
+
 .filtered-by {
 	display: none;
 	margin: 0;
@@ -1224,6 +1297,7 @@ th.action-links {
 	padding: 20px;
 }
 
+.show-filters .favorites-form,
 .show-filters .content-filterable,
 .show-filters.filters-applied.loading-content .content-filterable,
 .loading-content .content-filterable,
@@ -2098,14 +2172,6 @@ html.wp-toolbar {
 	font-style: italic;
 }
 
-#wpfooter a {
-	text-decoration: none;
-}
-
-#wpfooter a:hover {
-	text-decoration: underline;
-}
-
 /*------------------------------------------------------------------------------
   25.0 - Tabbed Admin Screen Interface (Experimental)
 ------------------------------------------------------------------------------*/
@@ -2160,7 +2226,7 @@ h3 .nav-tab, /* Back-compat for pre-4.4 */
 
 h1.nav-tab-wrapper, /* Back-compat for pre-4.4 */
 .wrap h2.nav-tab-wrapper, /* higher specificity to override .wrap > h2:first-child */
-h3.nav-tab-wrapper {
+.nav-tab-wrapper {
 	border-bottom: 1px solid #ccc;
 	margin: 0;
 	padding-top: 9px;
@@ -2823,6 +2889,11 @@ div.action-links {
 	font-size: 13px;
 }
 
+/* For non-js plugin installation screen ticket #36430. */
+.update-php .button.button-primary {
+	margin-left: 1em;
+}
+
 @media screen and ( max-width: 771px ) {
 	#plugin-information-title.with-banner {
 		height: 100px;
@@ -2865,7 +2936,7 @@ div.action-links {
 	#section-holder {
 		position: static;
 		margin: 0;
-		padding-bottom: 70px; /* reset from the two column height fix, plus accomodate footer */
+		padding-bottom: 70px; /* reset from the two column height fix, plus accommodate footer */
 	}
 
 	#plugin-information .fyi h3,
@@ -3333,7 +3404,8 @@ img {
 	display: none;
 }
 
-.control-section .accordion-section-title {
+.control-section .accordion-section-title,
+.customize-pane-child .accordion-section-title {
 	border-right: none;
 	border-left: none;
 	padding: 10px 14px 11px 10px;
@@ -3341,7 +3413,8 @@ img {
 	background: #fff;
 }
 
-.control-section .accordion-section-title:after {
+.control-section .accordion-section-title:after,
+.customize-pane-child .accordion-section-title:after {
 	top: 11px;
 }
 
@@ -3535,9 +3608,7 @@ img {
 	.sidebar-name-arrow,
 	.sidebar-name:hover .sidebar-name-arrow,
 	.meta-box-sortables .postbox:hover .handlediv,
-	.tagchecklist span a,
 	#bulk-titles div a,
-	.tagchecklist span a:hover,
 	#bulk-titles div a:hover {
 		background: none !important;
 	}
@@ -3597,6 +3668,10 @@ img {
 		display: none !important;
 	}
 
+	.wrap h1.wp-heading-inline {
+		margin-bottom: 0.5em;
+	}
+
 	.wrap .add-new-h2, /* deprecated */
 	.wrap .add-new-h2:active, /* deprecated */
 	.wrap .page-title-action,
@@ -3722,6 +3797,12 @@ img {
 	.filter-drawer .filter-group-feature label {
 		line-height: 25px;
 	}
+
+	.wp-filter .button.drawer-toggle {
+		font-size: 13px;
+		line-height: 26px;
+		height: 28px;
+	}
 }
 
 /* Smartphone */
@@ -3747,7 +3828,7 @@ img {
 
 	h1.nav-tab-wrapper,
 	.wrap h2.nav-tab-wrapper,
-	h3.nav-tab-wrapper {
+	.nav-tab-wrapper {
 		border-bottom: 0;
 	}
 
diff --git a/wp-admin/css/common-rtl.min.css b/wp-admin/css/common-rtl.min.css
index 139b6b626..2fb455e1b 100644
--- a/wp-admin/css/common-rtl.min.css
+++ b/wp-admin/css/common-rtl.min.css
@@ -1,8 +1,8 @@
-#docs-list,#plugin-information .section,#template textarea,.code,.ltr,code{direction:ltr}#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-right:20px}#wpcontent,#wpfooter{margin-right:160px}.folded #wpcontent,.folded #wpfooter{margin-right:36px}#wpbody-content{padding-bottom:65px;float:right;width:100%;overflow:visible!important}.inner-sidebar{float:left;clear:left;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-left:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:right;clear:right;width:100%;margin-left:-2000px}.has-right-sidebar #post-body-content{margin-left:300px;float:none;width:auto}#col-left{float:right;width:35%}#col-right{float:left;width:65%}#col-left .col-wrap{padding:0 0 0 6px}#col-right .col-wrap{padding:0 6px 0 0}.alignleft{float:right}.alignright{float:left}#publishing-action .spinner,#save-post,.subsubsub{float:right}.textleft{text-align:right}.textright{text-align:left}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}#templateside,.misc-pub-filename,.pre,.widefat *{word-wrap:break-word}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{right:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0073aa;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#00a0d2}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}h1,h2,h3{color:#23282d}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2,h3{font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:2em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-right:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-right:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#555d66;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat a{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:right;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 8px 0 0;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 3px 0 0}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-right:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 2px 0 20px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px 15px;line-height:29px}.subtitle{margin:0;padding-right:25px;color:#555d66;font-size:14px;font-weight:400;line-height:1}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{margin-right:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#f7f7f7;text-shadow:none;font-weight:600;font-size:13px;line-height:normal;color:#0073aa;cursor:pointer;outline:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{border-color:#008EC2;background:#00a0d2;color:#fff}.page-title-action:focus{color:#124964}.ac_match,.highlight,.subsubsub a.current{color:#000}.wrap .page-title-action:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.wrap h1.long-header{padding-left:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#ccf3fa}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-left-color:#99d}.highlight{background-color:#e4f2fd}.wp-ui-primary{color:#fff;background-color:#32373c}.wp-ui-text-primary{color:#32373c}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#82878c}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;-webkit-box-shadow:none!important;box-shadow:none!important}.filter-group,.wp-filter{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04)}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#23282d}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,.notice-dismiss:before,.tagchecklist span a:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#b4b9be;content:"\f153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before,.tagchecklist span a:before{margin:1px 0}#bulk-titles div a:hover:before,.tagchecklist span a:hover:before,.welcome-panel .welcome-panel-close:focus:before,.welcome-panel .welcome-panel-close:hover:before{color:#c00}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap}#namediv td.first,#plugin-information-title,.nav-tab,.no-break,.star-rating{white-space:nowrap}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,.widget-control-remove:hover,abbr.required,span.required{color:red;text-decoration:none;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{line-height:28px;vertical-align:middle;text-align:right;float:right}#publishing-action{text-align:left;float:left;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:left}.preview{float:left}#sticky-span{margin-right:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:left}.wp-filter{display:inline-block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.filter-group,html.wp-toolbar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;-webkit-border-radius:30px;border-radius:30px;background:#72777c;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-right:5px;margin-left:20px}.filter-items{float:right}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{display:inline-block;margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{-webkit-box-shadow:none;box-shadow:none;border-bottom:4px solid #666;color:#23282d}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#00a0d2}.wp-filter .search-form{float:left;margin:10px 0}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;max-width:100%;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{margin:0;height:32px;vertical-align:top}.wp-filter .search-form.search-plugins{display:inline-block}.wp-filter .drawer-toggle{display:inline-block;margin:0 10px;padding:4px 6px;color:#666;cursor:pointer}.wp-filter .drawer-toggle:before{display:inline-block;vertical-align:top;content:"\f111";margin:0 0 0 5px;width:16px;height:16px;color:#72777c;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;font-family:dashicons;font-size:16px;line-height:1;text-align:center;text-decoration:inherit;font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased}.filter-drawer,.wp-filter .favorites-form{margin:0 -20px;padding:20px;border-top:1px solid #eee;background:#fafafa}.wp-filter .drawer-toggle:hover,.wp-filter .drawer-toggle:hover:before{color:#00a0d2}.wp-filter .drawer-toggle.current:before{color:#fff}.wp-filter .favorites-form{display:none;overflow:hidden;width:100%}.show-favorites-form .wp-filter .favorites-form{display:block}.filter-drawer{display:none}.show-filters .filter-drawer{display:block;overflow:hidden;width:100%}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .drawer-toggle{-webkit-border-radius:2px;border-radius:2px;border:none;background:#72777c;color:#fff}.filter-group,.filtered-by .tag{border:1px solid #e5e5e5;background:#fff}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{box-sizing:border-box;position:relative;float:right;margin:0 0 0 1%;padding:20px 10px 10px;width:24%;box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{display:inline-block;margin:7px 0 7px 4px;line-height:16px}.filter-drawer .buttons{margin-bottom:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-right:10px}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-right:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border-right:4px solid #fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 0 .5em 12px}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{-webkit-box-shadow:none;box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#23282d;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-left:38px;position:relative}.notice-dismiss{position:absolute;top:0;left:1px;border:none;margin:0;padding:9px;background:0 0;color:#b4b9be;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#c00}.notice-dismiss:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .notice-dismiss:focus{outline:#5b9dd9 solid 1px}.notice-success,div.updated{border-right-color:#46b450}.notice-success.notice-alt{background-color:#ecf7ed}.notice-warning{border-right-color:#ffb900}.notice-warning.notice-alt{background-color:#fff8e5}.notice-error,div.error{border-right-color:#dc3232}.notice-error.notice-alt{background-color:#fbeaea}.notice-info{border-right-color:#00a0d2}.notice-info.notice-alt{background-color:#e5f5fa}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#f56e28;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.updating-message p:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#79ba49;content:'\f147'}.update-message.notice-error p:before{color:#dc3232;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-left:6px;vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:right;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#screen-meta,ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-right:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px -2px 0 5px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#66c6e4}.button.updated-message,.notice .button-link{-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.notice .button-link{color:#0073aa}.notice .button-link:active,.notice .button-link:hover{color:#00a0d2}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:none}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-right:0!important}#screen-meta .screen-reader-text{visibility:hidden}#screen-meta-links{margin:0 0 0 20px}#screen-meta{margin:0 0 -1px 20px;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.025);box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:left;height:28px;margin:0 6px 0 0;border:1px solid #ddd;border-top:none;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:0;background:0 0;-webkit-border-radius:0;border-radius:0;color:#72777c;line-height:1.7;padding:3px 16px 3px 6px}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#32373c}#screen-meta-links .show-settings:active{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}#screen-meta-links .show-settings:after{left:0;content:"\f140";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 5px;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#72777c}#templateside ul li a,#wpfooter a,.nav-tab{text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.hndle a,.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.ie8 #screen-options-wrap legend{color:inherit}.metabox-prefs label{display:inline-block;padding-left:15px;line-height:30px}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-left:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 0 0 5px}.metabox-prefs .columns-prefs label input{margin:-1px 0 0 2px}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-left:15px}.metabox-prefs .screen-options label{line-height:28px;padding-left:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;right:150px;left:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;border-left-width:0;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px}.contextual-help-tabs{float:right;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 2px 0 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 12px 5px 5px;line-height:18px;text-decoration:none;border:1px solid transparent;border-left:none;border-right:none}.contextual-help-tabs a:hover{color:#32373c}.contextual-help-tabs .active{padding:0;margin:0 0 0 -1px;border-right:2px solid #00a0d2;background:#f6fbfd;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02);box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#32373c}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 0 12px 22px;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-right:18px}.contextual-help-sidebar{width:150px;float:left;padding:0 12px 0 8px;overflow:auto}html.wp-toolbar{padding-top:32px;box-sizing:border-box}.widefat td,.widefat th{color:#555}.widefat ol,.widefat p,.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th,.widefat ul{color:#32373c}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:outside;margin-right:2em}.postbox-container{float:right}.postbox-container .meta-box-sortables{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #b4b9be;height:250px;position:relative}.metabox-holder .postbox-container .empty-container:after{content:attr(data-emptystring);margin:auto;position:absolute;top:0;right:0;bottom:0;left:0;height:1em;width:200px;text-align:center;color:#ccc;font-size:18px;display:none}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:right}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.nav-tab,.plugins .name{font-weight:600}.postbox .handlediv{display:none;float:left;width:36px;height:36px;padding:0}.js .postbox .handlediv{display:block}.sortable-placeholder{border:1px dashed #b4b9be;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{-webkit-box-shadow:none;box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 0 0 10px}#wpfooter{position:absolute;bottom:0;right:0;left:0;padding:10px 20px;color:#555d66}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}#wpfooter a:hover{text-decoration:underline}.nav-tab{float:right;border:1px solid #ccc;border-bottom:none;margin-right:.5em;padding:5px 10px;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:16px}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#444}.nav-tab-active,.nav-tab:focus:active{-webkit-box-shadow:none;box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#444}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.ie8 .nav-tab-wrapper{display:inline-block;width:100%;vertical-align:top}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:inline-block;visibility:hidden;float:left;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template div{margin-left:190px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 14px 11px 10px;line-height:21px}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:right}.attention,.error-message{color:red;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}#howto,.importer-action,.importer-desc,.importer-title{display:block}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #e5e5e5;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px}.importers{font-size:16px;width:auto}.importers td{padding-left:14px;line-height:1.5em}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.post-categories,.post-categories li{display:inline}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:20px;color:#ddd;margin-bottom:1em}.not-installed-main-site .importer-action{color:#555}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{font-size:14px;line-height:1.4;font-weight:600;color:#222;margin:2px 9px 0 0}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.checkbox,.post-categories,.zerosize,fieldset{margin:0;padding:0}.zerosize{height:0;width:0;border:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none}fieldset{border:0}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) bottom left repeat-x}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) top left repeat-x;height:17px;float:right}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center;color:#ffb900}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;left:0;bottom:0;right:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 20px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;top:0;left:0;right:0;height:56px;overflow:hidden;text-overflow:ellipsis}#plugin-information-title.with-banner{margin-left:0;height:250px;bottom:250px;-webkit-background-size:cover;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;max-width:680px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;padding:0 15px;margin:174px 10px 0 0;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);-webkit-box-shadow:0 0 30px rgba(255,255,255,.1);box-shadow:0 0 30px rgba(255,255,255,.1);-webkit-border-radius:8px;border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{display:block;float:left;top:0;height:250px;width:772px;margin:0 -20px;background:0 0;-webkit-box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;left:0;right:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;-webkit-transition:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#32373c}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;left:0;right:0;min-height:100%;min-height:-webkit-calc(100% - 152px);min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:-webkit-calc(100% - 346px);min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;left:250px;bottom:0;right:0;margin-left:250px;padding:10px 26px 99999px;margin-bottom:-99939px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:left;position:relative;top:0;left:0;padding:16px 16px 99999px;margin-bottom:-99939px;width:217px;border-right:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#444}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-left:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:right;margin-left:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#e5e5e5;float:right}#plugin-information .counter-bar{height:17px;background-color:#ffc733;float:right}#plugin-information .counter-count{margin-right:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-left:4px}#plugin-information-footer{padding:13px 16px;position:absolute;left:0;bottom:0;right:0;height:33px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e5e5e5}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px;bottom:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px;bottom:100px;width:800%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}body.about-php #TB_window,body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc}.ie8 body.about-php #TB_window:before,.ie8 body.import-php #TB_window:before,.ie8 body.index-php #TB_window:before,.ie8 body.plugin-install-php #TB_window:before,.ie8 body.plugins-php #TB_window:before,.ie8 body.update-core-php #TB_window:before{content:" ";background:0 0}body.about-php #TB_window.thickbox-loading:before,body.import-php #TB_window.thickbox-loading:before,body.index-php #TB_window.thickbox-loading:before,body.plugin-install-php #TB_window.thickbox-loading:before,body.plugins-php #TB_window.thickbox-loading:before,body.update-core-php #TB_window.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;background:url(../images/spinner.gif) center no-repeat #fcfcfc;-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}body.about-php #TB_ajaxWindowTitle,body.about-php .tb-close-icon,body.import-php #TB_ajaxWindowTitle,body.import-php .tb-close-icon,body.index-php #TB_ajaxWindowTitle,body.index-php .tb-close-icon,body.plugin-install-php #TB_ajaxWindowTitle,body.plugin-install-php .tb-close-icon,body.plugins-php #TB_ajaxWindowTitle,body.plugins-php .tb-close-icon,body.update-core-php #TB_ajaxWindowTitle,body.update-core-php .tb-close-icon{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){body.about-php #TB_window.thickbox-loading:before,body.import-php #TB_window.thickbox-loading:before,body.index-php #TB_window.thickbox-loading:before,body.plugin-install-php #TB_window.thickbox-loading:before,body.plugins-php #TB_window.thickbox-loading:before,body.update-core-php #TB_window.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}body.about-php #TB_title,body.import-php #TB_title,body.index-php #TB_title,body.plugin-install-php #TB_title,body.plugins-php #TB_title,body.update-core-php #TB_title{float:right;height:1px}.about-php #TB_closeWindowButton,.import-php #TB_closeWindowButton,.index-php #TB_closeWindowButton,.plugin-install-php #TB_closeWindowButton,.plugins-php #TB_closeWindowButton,.update-core-php #TB_closeWindowButton{right:auto;left:-30px;color:#eee}body.about-php #TB_closeWindowButton:focus,body.about-php #TB_closeWindowButton:hover,body.import-php #TB_closeWindowButton:focus,body.import-php #TB_closeWindowButton:hover,body.index-php #TB_closeWindowButton:focus,body.index-php #TB_closeWindowButton:hover,body.plugin-install-php #TB_closeWindowButton:focus,body.plugin-install-php #TB_closeWindowButton:hover,body.plugins-php #TB_closeWindowButton:focus,body.plugins-php #TB_closeWindowButton:hover,body.update-core-php #TB_closeWindowButton:focus,body.update-core-php #TB_closeWindowButton:hover{color:#00a0d2;outline:0;-webkit-box-shadow:none;box-shadow:none}body.about-php #TB_closeWindowButton:after,body.import-php #TB_closeWindowButton:after,body.index-php #TB_closeWindowButton:after,body.plugin-install-php #TB_closeWindowButton:after,body.plugins-php #TB_closeWindowButton:after,body.update-core-php #TB_closeWindowButton:after{content:"\f335";font:400 32px/29px dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){body.about-php #TB_closeWindowButton,body.import-php #TB_closeWindowButton,body.index-php #TB_closeWindowButton,body.plugin-install-php #TB_closeWindowButton,body.plugins-php #TB_closeWindowButton,body.update-core-php #TB_closeWindowButton{left:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator:before,.js .meta-box-sortables .postbox .toggle-indicator:before,.js .sidebar-name .sidebar-name-arrow:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before,.js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,.js .widgets-holder-wrap.closed .sidebar-name-arrow:before{content:"\f140"}.js .sidebar-name .sidebar-name-arrow:before{padding:10px;right:0}.js #widgets-left .sidebar-name .sidebar-name-arrow{display:none}.accordion-section.open .accordion-section-content,.js #widgets-left .sidebar-name:hover .sidebar-name-arrow,.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow,.no-js .accordion-section .accordion-section-content{display:block}.js .postbox .handlediv .toggle-indicator:before{margin-top:4px;width:20px;-webkit-border-radius:50%;border-radius:50%;text-indent:-1px}#postcustomstuff p.submit,#templateside h2,.alignleft h2{margin:0}.rtl.js .postbox .handlediv .toggle-indicator:before{text-indent:1px}.bulk-action-notice .toggle-indicator:before{line-height:16px;vertical-align:top;color:#72777c}.js .postbox .handlediv:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.js .postbox .handlediv:focus .toggle-indicator:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#photo-add-url-div input[type=text]{width:300px}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;width:97%;background:#f9f9f9;outline:0}#template p{width:97%}#templateside{float:left;width:190px}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em 0;padding:0}#templateside li{margin:4px 0}#templateside li a,.theme-editor-php .highlight{display:block;padding:3px 12px 3px 3px;text-decoration:none}.theme-editor-php .highlight{margin:-3px -12px -3px 3px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#666;font-size:11px;font-style:italic;padding-right:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top a.widget-action:after{left:0;content:"\f140";border:none;background:0 0;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow{color:#72777c}.widget-action{color:#555d66}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.widget-action:focus,.widget-top:hover .widget-action{color:#23282d}.widget-top a.widget-action:after{padding:1px 0 1px 2px;margin-top:10px;margin-left:10px;-webkit-border-radius:50%;border-radius:50%}.widget-top a.widget-action:focus:after{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:left;left:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top a.widget-action:after{content:"\f142"}/*!
+.subsubsub a,.widefat a,.wp-filter a{text-decoration:none}#ajax-loading,#screen-meta .screen-reader-text,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading,.spinner,.wp-header-end{visibility:hidden}#docs-list,#plugin-information .section,#template textarea,.code,.ltr,code{direction:ltr}#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-right:20px}#wpcontent,#wpfooter{margin-right:160px}.folded #wpcontent,.folded #wpfooter{margin-right:36px}#wpbody-content{padding-bottom:65px;float:right;width:100%;overflow:visible!important}.inner-sidebar{float:left;clear:left;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-left:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:right;clear:right;width:100%;margin-left:-2000px}.has-right-sidebar #post-body-content{margin-left:300px;float:none;width:auto}#col-left{float:right;width:35%}#col-right{float:left;width:65%}#col-left .col-wrap{padding:0 0 0 6px}#col-right .col-wrap{padding:0 6px 0 0}.alignleft{float:right}.alignright{float:left}#publishing-action .spinner,#save-post,.subsubsub{float:right}.textleft{text-align:right}.textright{text-align:left}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}h2,h3,p{margin:1em 0}#templateside,.misc-pub-filename,.pre,.widefat *{word-wrap:break-word}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{right:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0073aa;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#00a0d2}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}h1,h2,h3{color:#23282d}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}p{font-size:13px;line-height:1.5}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2,h3{font-size:1.3em}.update-core-php h2{margin-top:2em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-right:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-right:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:#666}.subsubsub a{line-height:2;padding:.2em}.subsubsub a .count,.subsubsub a.current .count{color:#555d66;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:right;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 8px 0 0;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 3px 0 0}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-right:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 2px 0 20px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:29px}.wrap h1.wp-heading-inline{display:inline-block;margin-left:5px}.wp-header-end{margin:-2px 0 0}.subtitle{margin:0;padding-right:25px;color:#555d66;font-size:14px;font-weight:400;line-height:1}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{margin-right:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#f7f7f7;text-shadow:none;font-weight:600;font-size:13px;line-height:normal;color:#0073aa;cursor:pointer;outline:0}.wrap .wp-heading-inline+.page-title-action{margin-right:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{border-color:#008EC2;background:#00a0d2;color:#fff}.page-title-action:focus{color:#124964}.ac_match,.highlight,.subsubsub a.current{color:#000}.wrap .page-title-action:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.wrap h1.long-header{padding-left:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#ccf3fa}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-left-color:#99d}.highlight{background-color:#e4f2fd}.wp-ui-primary{color:#fff;background-color:#32373c}.wp-ui-text-primary{color:#32373c}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#82878c}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;-webkit-box-shadow:none!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#23282d}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#b4b9be;content:"\f153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before{margin:1px 0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-right:2px;-webkit-border-radius:50%;border-radius:50%;color:#0073aa;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles div a:focus:before,#bulk-titles div a:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,.welcome-panel .welcome-panel-close:focus:before,.welcome-panel .welcome-panel-close:hover:before{color:#c00}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.filter-group,.wp-filter{position:relative;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap}#namediv td.first,#plugin-information-title,.nav-tab,.no-break,.star-rating{white-space:nowrap}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete,.widget-control-remove,.widget-control-remove:focus{color:#a00}#all-plugins-table .plugins a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,abbr.required,span.required{color:red;border:none}.widget-control-remove:hover{color:red}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{float:right;line-height:28px}#publishing-action{text-align:left;float:left;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:left}.preview{float:left}#sticky-span{margin-right:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:left}.wp-filter{display:inline-block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.filter-group,html.wp-toolbar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;-webkit-border-radius:30px;border-radius:30px;background:#72777c;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-right:5px;margin-left:20px}.filter-links li>a,.wp-filter .search-form.search-plugins{display:inline-block}.filter-items{float:right}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{-webkit-box-shadow:none;box-shadow:none;border-bottom:4px solid #666;color:#23282d}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#00a0d2}.wp-filter .search-form{float:left;margin:10px 0}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;max-width:100%;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{margin:0;height:32px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 6px 0 10px;border-color:transparent;background-color:transparent;color:#666;vertical-align:baseline;-webkit-box-shadow:none;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 0 0 5px;color:#72777c;font:400 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#00a0d2}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#5b9dd9}.wp-filter .button.drawer-toggle:active{background:0 0;-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.filter-drawer,.wp-filter .favorites-form{margin:0 -20px;padding:20px;border-top:1px solid #eee;background:#fafafa}.wp-filter .drawer-toggle.current:before{color:#fff}.wp-filter .favorites-form{display:none;overflow:hidden;width:100%}.show-favorites-form .favorites-form{display:block}.filter-drawer{display:none}.show-filters .filter-drawer{display:block;overflow:hidden;width:100%}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{-webkit-border-radius:2px;border-radius:2px;background:#72777c;color:#fff}.filter-group,.filtered-by .tag{border:1px solid #e5e5e5;background:#fff}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{box-sizing:border-box;float:right;margin:0 0 0 1%;padding:20px 10px 10px;width:24%;box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{display:inline-block;margin:7px 0 7px 4px;line-height:16px}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-right:10px}.wp-filter .button-link.edit-filters{color:#0073aa;text-decoration:underline;padding:0 5px;line-height:28px}.wp-filter .button-link.edit-filters:hover{color:#00a0d2}.wp-filter .button-link.edit-filters:focus{color:#124964}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-right:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border-right:4px solid #fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 0 .5em 12px}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{-webkit-box-shadow:none;box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#23282d;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-left:38px;position:relative}.notice-dismiss{position:absolute;top:0;left:1px;border:none;margin:0;padding:9px;background:0 0;color:#b4b9be;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#c00}.notice-dismiss:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .notice-dismiss:focus{outline:#5b9dd9 solid 1px}.notice-success,div.updated{border-right-color:#46b450}.notice-success.notice-alt{background-color:#ecf7ed}.notice-warning{border-right-color:#ffb900}.notice-warning.notice-alt{background-color:#fff8e5}.notice-error,div.error{border-right-color:#dc3232}.notice-error.notice-alt{background-color:#fbeaea}.notice-info{border-right-color:#00a0d2}.notice-info.notice-alt{background-color:#e5f5fa}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#f56e28;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.updating-message p:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#79ba49;content:'\f147'}.update-message.notice-error p:before{color:#dc3232;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-left:6px;vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:right;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#screen-meta,ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}#ajax-response.alignleft{margin-right:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px -2px 0 5px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#66c6e4}.button.updated-message,.notice .button-link{-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.notice .button-link{color:#0073aa}.notice .button-link:active,.notice .button-link:hover{color:#00a0d2}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:none}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-right:0!important}#screen-meta-links{margin:0 0 0 20px}#screen-meta{margin:0 0 -1px 20px;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.025);box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:left;height:28px;margin:0 6px 0 0;border:1px solid #ddd;border-top:none;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:0;background:0 0;-webkit-border-radius:0;border-radius:0;color:#72777c;line-height:1.7;padding:3px 16px 3px 6px}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#32373c}#screen-meta-links .show-settings:active{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}#screen-meta-links .show-settings:after{left:0;content:"\f140";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 5px;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#72777c}#templateside ul li a,.nav-tab{text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.hndle a,.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.ie8 #screen-options-wrap legend{color:inherit}.metabox-prefs label{display:inline-block;padding-left:15px;line-height:30px}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-left:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 0 0 5px}.metabox-prefs .columns-prefs label input{margin:-1px 0 0 2px}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-left:15px}.metabox-prefs .screen-options label{line-height:28px;padding-left:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;right:150px;left:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;border-left-width:0;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px}.contextual-help-tabs{float:right;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 2px 0 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 12px 5px 5px;line-height:18px;text-decoration:none;border:1px solid transparent;border-left:none;border-right:none}.contextual-help-tabs a:hover{color:#32373c}.contextual-help-tabs .active{padding:0;margin:0 0 0 -1px;border-right:2px solid #00a0d2;background:#f6fbfd;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02);box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#32373c}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 0 12px 22px;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-right:18px}.contextual-help-sidebar{width:150px;float:left;padding:0 12px 0 8px;overflow:auto}html.wp-toolbar{padding-top:32px;box-sizing:border-box}.widefat td,.widefat th{color:#555}.widefat ol,.widefat p,.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th,.widefat ul{color:#32373c}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:outside;margin-right:2em}.postbox-container{float:right}.postbox-container .meta-box-sortables{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #b4b9be;height:250px;position:relative}.metabox-holder .postbox-container .empty-container:after{content:attr(data-emptystring);margin:auto;position:absolute;top:0;right:0;bottom:0;left:0;height:1em;width:200px;text-align:center;color:#ccc;font-size:18px;display:none}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:right}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.nav-tab,.plugins .name{font-weight:600}.postbox .handlediv{display:none;float:left;width:36px;height:36px;padding:0}.js .postbox .handlediv{display:block}.sortable-placeholder{border:1px dashed #b4b9be;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{-webkit-box-shadow:none;box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 0 0 10px}#wpfooter{position:absolute;bottom:0;right:0;left:0;padding:10px 20px;color:#555d66}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}.nav-tab{float:right;border:1px solid #ccc;border-bottom:none;margin-right:.5em;padding:5px 10px;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:16px}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#444}.nav-tab-active,.nav-tab:focus:active{-webkit-box-shadow:none;box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#444}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.ie8 .nav-tab-wrapper{display:inline-block;width:100%;vertical-align:top}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:inline-block;float:left;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template div{margin-left:190px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 14px 11px 10px;line-height:21px}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:right}.attention,.error-message{color:red;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}#howto,.importer-action,.importer-desc,.importer-title{display:block}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #e5e5e5;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px}.importers{font-size:16px;width:auto}.importers td{padding-left:14px;line-height:1.5em}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.post-categories,.post-categories li{display:inline}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:20px;color:#ddd;margin-bottom:1em}.not-installed-main-site .importer-action{color:#555}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{font-size:14px;line-height:1.4;font-weight:600;color:#222;margin:2px 9px 0 0}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.checkbox,.post-categories,.zerosize,fieldset{margin:0;padding:0}.zerosize{height:0;width:0;border:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none}fieldset{border:0}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) bottom left repeat-x}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) top left repeat-x;height:17px;float:right}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center;color:#ffb900}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;left:0;bottom:0;right:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 20px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;top:0;left:0;right:0;height:56px;overflow:hidden;text-overflow:ellipsis}#plugin-information-title.with-banner{margin-left:0;height:250px;bottom:250px;-webkit-background-size:cover;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;max-width:680px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;padding:0 15px;margin:174px 10px 0 0;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);-webkit-box-shadow:0 0 30px rgba(255,255,255,.1);box-shadow:0 0 30px rgba(255,255,255,.1);-webkit-border-radius:8px;border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{display:block;float:left;top:0;height:250px;width:772px;margin:0 -20px;background:0 0;-webkit-box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;left:0;right:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;-webkit-transition:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#32373c}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;left:0;right:0;min-height:100%;min-height:-webkit-calc(100% - 152px);min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:-webkit-calc(100% - 346px);min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;left:250px;bottom:0;right:0;margin-left:250px;padding:10px 26px 99999px;margin-bottom:-99939px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:left;position:relative;top:0;left:0;padding:16px 16px 99999px;margin-bottom:-99939px;width:217px;border-right:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#444}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-left:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:right;margin-left:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#e5e5e5;float:right}#plugin-information .counter-bar{height:17px;background-color:#ffc733;float:right}#plugin-information .counter-count{margin-right:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-left:4px}#plugin-information-footer{padding:13px 16px;position:absolute;left:0;bottom:0;right:0;height:33px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e5e5e5}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-left:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px;bottom:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px;bottom:100px;width:800%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}body.about-php #TB_window,body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc}.ie8 body.about-php #TB_window:before,.ie8 body.import-php #TB_window:before,.ie8 body.index-php #TB_window:before,.ie8 body.plugin-install-php #TB_window:before,.ie8 body.plugins-php #TB_window:before,.ie8 body.update-core-php #TB_window:before{content:" ";background:0 0}body.about-php #TB_window.thickbox-loading:before,body.import-php #TB_window.thickbox-loading:before,body.index-php #TB_window.thickbox-loading:before,body.plugin-install-php #TB_window.thickbox-loading:before,body.plugins-php #TB_window.thickbox-loading:before,body.update-core-php #TB_window.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;background:url(../images/spinner.gif) center no-repeat #fcfcfc;-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}body.about-php #TB_ajaxWindowTitle,body.about-php .tb-close-icon,body.import-php #TB_ajaxWindowTitle,body.import-php .tb-close-icon,body.index-php #TB_ajaxWindowTitle,body.index-php .tb-close-icon,body.plugin-install-php #TB_ajaxWindowTitle,body.plugin-install-php .tb-close-icon,body.plugins-php #TB_ajaxWindowTitle,body.plugins-php .tb-close-icon,body.update-core-php #TB_ajaxWindowTitle,body.update-core-php .tb-close-icon{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){body.about-php #TB_window.thickbox-loading:before,body.import-php #TB_window.thickbox-loading:before,body.index-php #TB_window.thickbox-loading:before,body.plugin-install-php #TB_window.thickbox-loading:before,body.plugins-php #TB_window.thickbox-loading:before,body.update-core-php #TB_window.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}body.about-php #TB_title,body.import-php #TB_title,body.index-php #TB_title,body.plugin-install-php #TB_title,body.plugins-php #TB_title,body.update-core-php #TB_title{float:right;height:1px}.about-php #TB_closeWindowButton,.import-php #TB_closeWindowButton,.index-php #TB_closeWindowButton,.plugin-install-php #TB_closeWindowButton,.plugins-php #TB_closeWindowButton,.update-core-php #TB_closeWindowButton{right:auto;left:-30px;color:#eee}body.about-php #TB_closeWindowButton:focus,body.about-php #TB_closeWindowButton:hover,body.import-php #TB_closeWindowButton:focus,body.import-php #TB_closeWindowButton:hover,body.index-php #TB_closeWindowButton:focus,body.index-php #TB_closeWindowButton:hover,body.plugin-install-php #TB_closeWindowButton:focus,body.plugin-install-php #TB_closeWindowButton:hover,body.plugins-php #TB_closeWindowButton:focus,body.plugins-php #TB_closeWindowButton:hover,body.update-core-php #TB_closeWindowButton:focus,body.update-core-php #TB_closeWindowButton:hover{color:#00a0d2;outline:0;-webkit-box-shadow:none;box-shadow:none}body.about-php #TB_closeWindowButton:after,body.import-php #TB_closeWindowButton:after,body.index-php #TB_closeWindowButton:after,body.plugin-install-php #TB_closeWindowButton:after,body.plugins-php #TB_closeWindowButton:after,body.update-core-php #TB_closeWindowButton:after{content:"\f335";font:400 32px/29px dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){body.about-php #TB_closeWindowButton,body.import-php #TB_closeWindowButton,body.index-php #TB_closeWindowButton,body.plugin-install-php #TB_closeWindowButton,body.plugins-php #TB_closeWindowButton,body.update-core-php #TB_closeWindowButton{left:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator:before,.js .meta-box-sortables .postbox .toggle-indicator:before,.js .sidebar-name .sidebar-name-arrow:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before,.js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,.js .widgets-holder-wrap.closed .sidebar-name-arrow:before{content:"\f140"}.js .sidebar-name .sidebar-name-arrow:before{padding:10px;right:0}.js #widgets-left .sidebar-name .sidebar-name-arrow{display:none}.accordion-section.open .accordion-section-content,.js #widgets-left .sidebar-name:hover .sidebar-name-arrow,.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow,.no-js .accordion-section .accordion-section-content{display:block}.js .postbox .handlediv .toggle-indicator:before{margin-top:4px;width:20px;-webkit-border-radius:50%;border-radius:50%;text-indent:-1px}#postcustomstuff p.submit,#templateside h2,.alignleft h2{margin:0}.rtl.js .postbox .handlediv .toggle-indicator:before{text-indent:1px}.bulk-action-notice .toggle-indicator:before{line-height:16px;vertical-align:top;color:#72777c}.js .postbox .handlediv:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.js .postbox .handlediv:focus .toggle-indicator:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#photo-add-url-div input[type=text]{width:300px}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;width:97%;background:#f9f9f9;outline:0}#template p{width:97%}#templateside{float:left;width:190px}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em 0;padding:0}#templateside li{margin:4px 0}#templateside li a,.theme-editor-php .highlight{display:block;padding:3px 12px 3px 3px;text-decoration:none}.theme-editor-php .highlight{margin:-3px -12px -3px 3px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#666;font-size:11px;font-style:italic;padding-right:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top a.widget-action:after{left:0;content:"\f140";border:none;background:0 0;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow{color:#72777c}.widget-action{color:#555d66}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.widget-action:focus,.widget-top:hover .widget-action{color:#23282d}.widget-top a.widget-action:after{padding:1px 0 1px 2px;margin-top:10px;margin-left:10px;-webkit-border-radius:50%;border-radius:50%}.widget-top a.widget-action:focus:after{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:left;left:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top a.widget-action:after{content:"\f142"}/*!
  * jQuery UI Draggable/Sortable 1.11.4
  * http://jqueryui.com
  *
  * Copyright jQuery Foundation and other contributors
  * Released under the MIT license.
  * http://jquery.org/license
- */.ui-draggable-handle,.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.accordion-section{border-bottom:1px solid #ddd;margin:0}.accordion-section.open:hover{border-bottom-color:#ddd}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-right:1px solid #ddd;border-left:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;left:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a0a5aa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title{border-right:none;border-left:none;padding:10px 14px 11px 10px;line-height:21px;background:#fff}.control-section .accordion-section-title:after{top:11px}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#23282d;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #ddd}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;left:0;background:#ccc}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:right;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(2n+1){clear:right}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f9f9f9}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:right;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f9f9f9}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:right;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:right}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f9f9f9}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:right;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:right}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f9f9f9}}@media only screen and (min-width:1600px){.my-sites li{float:right;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:right}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f9f9f9}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) bottom left repeat-x;-webkit-background-size:21px 37px;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.sidebar-name:hover .sidebar-name-arrow,.tagchecklist span a,.tagchecklist span a:hover,.widget-top a.widget-action,.widget-top a.widget-action:hover{background:0 0!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){#col-left,#col-right,#template div,#templateside{float:none;width:auto}html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpcontent{position:relative;margin-right:0;padding-right:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-left:12px;margin-right:0}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.wp-color-result{height:auto;padding-right:45px}.wp-color-result:after{font-size:14px;height:auto;padding:6px 14px}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-left:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{left:-190px}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside li{margin:0}#templateside li a{display:block;padding:5px}#templateside .highlight{padding:5px;margin-right:-5px;margin-top:-5px}#template div{margin:0}#template textarea{width:100%}.fileedit-sub .alignright{margin-top:15px}#comments-form .checkforspam,#wpfooter{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:25px}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open,div#post-body.metabox-holder.columns-1{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab{margin:10px 0 0 10px;border-bottom:1px solid #ccc}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:right}}
\ No newline at end of file
+ */.ui-draggable-handle,.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.accordion-section{border-bottom:1px solid #ddd;margin:0}.accordion-section.open:hover{border-bottom-color:#ddd}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-right:1px solid #ddd;border-left:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;left:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a0a5aa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-right:none;border-left:none;padding:10px 14px 11px 10px;line-height:21px;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:11px}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#23282d;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #ddd}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;left:0;background:#ccc}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:right;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(2n+1){clear:right}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f9f9f9}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:right;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f9f9f9}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:right;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:right}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f9f9f9}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:right;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:right}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f9f9f9}}@media only screen and (min-width:1600px){.my-sites li{float:right;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:right}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f9f9f9}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) bottom left repeat-x;-webkit-background-size:21px 37px;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.sidebar-name:hover .sidebar-name-arrow,.widget-top a.widget-action,.widget-top a.widget-action:hover{background:0 0!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){#col-left,#col-right,#template div,#templateside{float:none;width:auto}html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpcontent{position:relative;margin-right:0;padding-right:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-left:12px;margin-right:0}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.wp-color-result{height:auto;padding-right:45px}.wp-color-result:after{font-size:14px;height:auto;padding:6px 14px}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-left:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{left:-190px}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside li{margin:0}#templateside li a{display:block;padding:5px}#templateside .highlight{padding:5px;margin-right:-5px;margin-top:-5px}#template div{margin:0}#template textarea{width:100%}.fileedit-sub .alignright{margin-top:15px}#comments-form .checkforspam,#wpfooter{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:25px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:26px;height:28px}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open,div#post-body.metabox-holder.columns-1{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab{margin:10px 0 0 10px;border-bottom:1px solid #ccc}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:right}}
\ No newline at end of file
diff --git a/wp-admin/css/common.css b/wp-admin/css/common.css
index 42c4c7be4..9b127c519 100644
--- a/wp-admin/css/common.css
+++ b/wp-admin/css/common.css
@@ -572,10 +572,20 @@ code {
 	font-size: 23px;
 	font-weight: 400;
 	margin: 0;
-	padding: 9px 15px 4px 0;
+	padding: 9px 0 4px 0;
 	line-height: 29px;
 }
 
+.wrap h1.wp-heading-inline {
+	display: inline-block;
+	margin-right: 5px;
+}
+
+.wp-header-end {
+	visibility: hidden;
+	margin: -2px 0 0;
+}
+
 .subtitle {
 	margin: 0;
 	padding-left: 25px;
@@ -608,6 +618,10 @@ code {
 	outline: 0;
 }
 
+.wrap .wp-heading-inline + .page-title-action {
+	margin-left: 0;
+}
+
 .wrap .add-new-h2:hover, /* deprecated */
 .wrap .page-title-action:hover {
 	border-color: #008EC2;
@@ -680,7 +694,7 @@ ul.striped > :nth-child(odd),
 }
 
 .wp-ui-highlight {
-	color: white;
+	color: #fff;
 	background-color: #1e8cbe;
 }
 .wp-ui-text-highlight {
@@ -759,7 +773,7 @@ img.emoji {
 
 /* @todo can we combine these into a class or use an existing dashicon one? */
 .welcome-panel .welcome-panel-close:before,
-.tagchecklist span a:before,
+.tagchecklist .ntdelbutton .remove-tag-icon:before,
 #bulk-titles div a:before,
 .notice-dismiss:before {
 	background: none;
@@ -779,18 +793,41 @@ img.emoji {
 	margin: 0;
 }
 
-.tagchecklist span a:before,
 #bulk-titles div a:before {
 	margin: 1px 0;
 }
 
+.tagchecklist .ntdelbutton .remove-tag-icon:before {
+	margin-left: 2px;
+	-webkit-border-radius: 50%;
+	border-radius: 50%;
+	color: #0073aa;
+	/* vertically center the icon cross browsers */
+	line-height: 1.28;
+}
+
+.tagchecklist .ntdelbutton:focus {
+	outline: 0;
+}
+
 .welcome-panel .welcome-panel-close:hover:before,
 .welcome-panel .welcome-panel-close:focus:before,
-.tagchecklist span a:hover:before,
-#bulk-titles div a:hover:before {
+.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,
+#bulk-titles div a:hover:before,
+#bulk-titles div a:focus:before {
 	color: #c00;
 }
 
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 .key-labels label {
 	line-height: 24px;
 }
@@ -826,6 +863,8 @@ hr {
 	border-bottom: 1px solid #fafafa;
 }
 
+.widget-control-remove,
+.widget-control-remove:focus,
 .row-actions span.delete a,
 .row-actions span.trash a,
 .row-actions span.spam a,
@@ -842,7 +881,6 @@ hr {
 abbr.required,
 span.required,
 .file-error,
-.widget-control-remove:hover,
 .row-actions .delete a:hover,
 .row-actions .trash a:hover,
 .row-actions .spam a:hover,
@@ -854,10 +892,13 @@ span.required,
 #media-items a.delete-permanently:hover,
 #nav-menu-footer .menu-delete:hover {
 	color: #f00;
-	text-decoration: none;
 	border: none;
 }
 
+.widget-control-remove:hover {
+	color: #f00;
+}
+
 /*------------------------------------------------------------------------------
   3.0 - Actions
 ------------------------------------------------------------------------------*/
@@ -870,10 +911,8 @@ span.required,
 }
 
 #delete-action {
-	line-height: 28px;
-	vertical-align: middle;
-	text-align: left;
 	float: left;
+	line-height: 28px;
 }
 
 #publishing-action {
@@ -1043,39 +1082,53 @@ th.action-links {
 	display: inline-block;
 }
 
-.wp-filter .drawer-toggle {
-	display: inline-block;
-	margin: 0 10px;
-	padding: 4px 6px;
+.wp-filter .button.drawer-toggle {
+	margin: 10px 9px 0;
+	padding: 0 10px 0 6px;
+	border-color: transparent;
+	background-color: transparent;
 	color: #666;
-	cursor: pointer;
+	vertical-align: baseline;
+	-webkit-box-shadow: none;
+	box-shadow: none;
 }
 
 .wp-filter .drawer-toggle:before {
-	display: inline-block;
-	vertical-align: top;
 	content: "\f111";
 	margin: 0 5px 0 0;
-	width: 16px;
-	height: 16px;
 	color: #72777c;
-	-webkit-transition: color .1s ease-in 0;
-	transition: color .1s ease-in 0;
-	font-family: dashicons;
-	font-size: 16px;
-	line-height: 1;
-	text-align: center;
-	text-decoration: inherit;
-	font-weight: 400;
-	font-style: normal;
+	font: normal 16px/1 dashicons;
+	vertical-align: text-bottom;
 	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
 }
 
-.wp-filter .drawer-toggle:hover,
-.wp-filter .drawer-toggle:hover:before {
+.wp-filter .button.drawer-toggle:hover,
+.wp-filter .drawer-toggle:hover:before,
+.wp-filter .button.drawer-toggle:focus,
+.wp-filter .drawer-toggle:focus:before {
+	background-color: transparent;
 	color: #00a0d2;
 }
 
+.wp-filter .button.drawer-toggle:hover,
+.wp-filter .button.drawer-toggle:focus:active {
+	border-color: transparent;
+}
+
+.wp-filter .button.drawer-toggle:focus {
+	border-color: #5b9dd9;
+}
+
+.wp-filter .button.drawer-toggle:active {
+	background: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	-webkit-transform: none;
+	-ms-transform: none;
+	transform: none;
+}
+
 .wp-filter .drawer-toggle.current:before {
 	color: #fff;
 }
@@ -1090,7 +1143,7 @@ th.action-links {
 	width: 100%;
 }
 
-.show-favorites-form .wp-filter .favorites-form {
+.show-favorites-form .favorites-form {
 	display: block;
 }
 
@@ -1108,23 +1161,22 @@ th.action-links {
 	width: 100%;
 }
 
-.show-filters .wp-filter .drawer-toggle:hover,
-.show-filters .wp-filter .drawer-toggle:focus {
-	background: rgb(46, 162, 204);
-}
-
 .show-filters .filter-links a.current {
 	border-bottom: none;
 }
 
-.show-filters .wp-filter .drawer-toggle {
+.show-filters .wp-filter .button.drawer-toggle {
 	-webkit-border-radius: 2px;
 	border-radius: 2px;
-	border: none;
 	background: #72777c;
 	color: #fff;
 }
 
+.show-filters .wp-filter .drawer-toggle:hover,
+.show-filters .wp-filter .drawer-toggle:focus {
+	background: rgb(46, 162, 204);
+}
+
 .show-filters .wp-filter .drawer-toggle:before {
 	color: #fff;
 }
@@ -1168,9 +1220,15 @@ th.action-links {
 }
 
 .filter-drawer .buttons {
+	clear: both;
 	margin-bottom: 20px;
 }
 
+.filter-drawer .filter-group + .buttons {
+	margin-bottom: 0;
+	padding-top: 20px;
+}
+
 .filter-drawer .buttons .button span {
 	display: inline-block;
 	opacity: 0.8;
@@ -1183,6 +1241,21 @@ th.action-links {
 	margin-left: 10px;
 }
 
+.wp-filter .button-link.edit-filters {
+	color: #0073aa;
+	text-decoration: underline;
+	padding: 0 5px;
+	line-height: 28px;
+}
+
+.wp-filter .button-link.edit-filters:hover {
+	color: #00a0d2;
+}
+
+.wp-filter .button-link.edit-filters:focus {
+	color: #124964;
+}
+
 .filtered-by {
 	display: none;
 	margin: 0;
@@ -1224,6 +1297,7 @@ th.action-links {
 	padding: 20px;
 }
 
+.show-filters .favorites-form,
 .show-filters .content-filterable,
 .show-filters.filters-applied.loading-content .content-filterable,
 .loading-content .content-filterable,
@@ -2098,14 +2172,6 @@ html.wp-toolbar {
 	font-style: italic;
 }
 
-#wpfooter a {
-	text-decoration: none;
-}
-
-#wpfooter a:hover {
-	text-decoration: underline;
-}
-
 /*------------------------------------------------------------------------------
   25.0 - Tabbed Admin Screen Interface (Experimental)
 ------------------------------------------------------------------------------*/
@@ -2160,7 +2226,7 @@ h3 .nav-tab, /* Back-compat for pre-4.4 */
 
 h1.nav-tab-wrapper, /* Back-compat for pre-4.4 */
 .wrap h2.nav-tab-wrapper, /* higher specificity to override .wrap > h2:first-child */
-h3.nav-tab-wrapper {
+.nav-tab-wrapper {
 	border-bottom: 1px solid #ccc;
 	margin: 0;
 	padding-top: 9px;
@@ -2823,6 +2889,11 @@ div.action-links {
 	font-size: 13px;
 }
 
+/* For non-js plugin installation screen ticket #36430. */
+.update-php .button.button-primary {
+	margin-right: 1em;
+}
+
 @media screen and ( max-width: 771px ) {
 	#plugin-information-title.with-banner {
 		height: 100px;
@@ -2865,7 +2936,7 @@ div.action-links {
 	#section-holder {
 		position: static;
 		margin: 0;
-		padding-bottom: 70px; /* reset from the two column height fix, plus accomodate footer */
+		padding-bottom: 70px; /* reset from the two column height fix, plus accommodate footer */
 	}
 
 	#plugin-information .fyi h3,
@@ -3333,7 +3404,8 @@ img {
 	display: none;
 }
 
-.control-section .accordion-section-title {
+.control-section .accordion-section-title,
+.customize-pane-child .accordion-section-title {
 	border-left: none;
 	border-right: none;
 	padding: 10px 10px 11px 14px;
@@ -3341,7 +3413,8 @@ img {
 	background: #fff;
 }
 
-.control-section .accordion-section-title:after {
+.control-section .accordion-section-title:after,
+.customize-pane-child .accordion-section-title:after {
 	top: 11px;
 }
 
@@ -3535,9 +3608,7 @@ img {
 	.sidebar-name-arrow,
 	.sidebar-name:hover .sidebar-name-arrow,
 	.meta-box-sortables .postbox:hover .handlediv,
-	.tagchecklist span a,
 	#bulk-titles div a,
-	.tagchecklist span a:hover,
 	#bulk-titles div a:hover {
 		background: none !important;
 	}
@@ -3597,6 +3668,10 @@ img {
 		display: none !important;
 	}
 
+	.wrap h1.wp-heading-inline {
+		margin-bottom: 0.5em;
+	}
+
 	.wrap .add-new-h2, /* deprecated */
 	.wrap .add-new-h2:active, /* deprecated */
 	.wrap .page-title-action,
@@ -3722,6 +3797,12 @@ img {
 	.filter-drawer .filter-group-feature label {
 		line-height: 25px;
 	}
+
+	.wp-filter .button.drawer-toggle {
+		font-size: 13px;
+		line-height: 26px;
+		height: 28px;
+	}
 }
 
 /* Smartphone */
@@ -3747,7 +3828,7 @@ img {
 
 	h1.nav-tab-wrapper,
 	.wrap h2.nav-tab-wrapper,
-	h3.nav-tab-wrapper {
+	.nav-tab-wrapper {
 		border-bottom: 0;
 	}
 
diff --git a/wp-admin/css/common.min.css b/wp-admin/css/common.min.css
index ffa633b23..fa9b93ca4 100644
--- a/wp-admin/css/common.min.css
+++ b/wp-admin/css/common.min.css
@@ -1,8 +1,8 @@
-#docs-list,#plugin-information .section,#template textarea,.code,.ltr,code{direction:ltr}#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-left:20px}#wpcontent,#wpfooter{margin-left:160px}.folded #wpcontent,.folded #wpfooter{margin-left:36px}#wpbody-content{padding-bottom:65px;float:left;width:100%;overflow:visible!important}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-left{float:left;width:35%}#col-right{float:right;width:65%}#col-left .col-wrap{padding:0 6px 0 0}#col-right .col-wrap{padding:0 0 0 6px}.alignleft{float:left}.alignright{float:right}#publishing-action .spinner,#save-post,.subsubsub{float:left}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}#templateside,.misc-pub-filename,.pre,.widefat *{word-wrap:break-word}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{left:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0073aa;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#00a0d2}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}h1,h2,h3{color:#23282d}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2,h3{font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:2em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-left:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#555d66;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat a{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:left;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 0 0 3px}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-left:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 20px 0 2px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 15px 4px 0;line-height:29px}.subtitle{margin:0;padding-left:25px;color:#555d66;font-size:14px;font-weight:400;line-height:1}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{margin-left:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#f7f7f7;text-shadow:none;font-weight:600;font-size:13px;line-height:normal;color:#0073aa;cursor:pointer;outline:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{border-color:#008EC2;background:#00a0d2;color:#fff}.page-title-action:focus{color:#124964}.ac_match,.highlight,.subsubsub a.current{color:#000}.wrap .page-title-action:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.wrap h1.long-header{padding-right:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#ccf3fa}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-right-color:#99d}.highlight{background-color:#e4f2fd}.wp-ui-primary{color:#fff;background-color:#32373c}.wp-ui-text-primary{color:#32373c}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#82878c}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;-webkit-box-shadow:none!important;box-shadow:none!important}.filter-group,.wp-filter{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04)}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#23282d}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,.notice-dismiss:before,.tagchecklist span a:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#b4b9be;content:"\f153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before,.tagchecklist span a:before{margin:1px 0}#bulk-titles div a:hover:before,.tagchecklist span a:hover:before,.welcome-panel .welcome-panel-close:focus:before,.welcome-panel .welcome-panel-close:hover:before{color:#c00}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap}#namediv td.first,#plugin-information-title,.nav-tab,.no-break,.star-rating{white-space:nowrap}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,.widget-control-remove:hover,abbr.required,span.required{color:red;text-decoration:none;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{line-height:28px;vertical-align:middle;text-align:left;float:left}#publishing-action{text-align:right;float:right;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:right}.preview{float:right}#sticky-span{margin-left:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:right}.wp-filter{display:inline-block;position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.filter-group,html.wp-toolbar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;-webkit-border-radius:30px;border-radius:30px;background:#72777c;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-left:5px;margin-right:20px}.filter-items{float:left}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{display:inline-block;margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{-webkit-box-shadow:none;box-shadow:none;border-bottom:4px solid #666;color:#23282d}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#00a0d2}.wp-filter .search-form{float:right;margin:10px 0}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;max-width:100%;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{margin:0;height:32px;vertical-align:top}.wp-filter .search-form.search-plugins{display:inline-block}.wp-filter .drawer-toggle{display:inline-block;margin:0 10px;padding:4px 6px;color:#666;cursor:pointer}.wp-filter .drawer-toggle:before{display:inline-block;vertical-align:top;content:"\f111";margin:0 5px 0 0;width:16px;height:16px;color:#72777c;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;font-family:dashicons;font-size:16px;line-height:1;text-align:center;text-decoration:inherit;font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased}.filter-drawer,.wp-filter .favorites-form{margin:0 -20px;padding:20px;border-top:1px solid #eee;background:#fafafa}.wp-filter .drawer-toggle:hover,.wp-filter .drawer-toggle:hover:before{color:#00a0d2}.wp-filter .drawer-toggle.current:before{color:#fff}.wp-filter .favorites-form{display:none;overflow:hidden;width:100%}.show-favorites-form .wp-filter .favorites-form{display:block}.filter-drawer{display:none}.show-filters .filter-drawer{display:block;overflow:hidden;width:100%}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .drawer-toggle{-webkit-border-radius:2px;border-radius:2px;border:none;background:#72777c;color:#fff}.filter-group,.filtered-by .tag{border:1px solid #e5e5e5;background:#fff}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{box-sizing:border-box;position:relative;float:left;margin:0 1% 0 0;padding:20px 10px 10px;width:24%;box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{display:inline-block;margin:7px 4px 7px 0;line-height:16px}.filter-drawer .buttons{margin-bottom:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-left:10px}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-left:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border-left:4px solid #fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 12px .5em 0}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{-webkit-box-shadow:none;box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#23282d;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-right:38px;position:relative}.notice-dismiss{position:absolute;top:0;right:1px;border:none;margin:0;padding:9px;background:0 0;color:#b4b9be;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#c00}.notice-dismiss:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .notice-dismiss:focus{outline:#5b9dd9 solid 1px}.notice-success,div.updated{border-left-color:#46b450}.notice-success.notice-alt{background-color:#ecf7ed}.notice-warning{border-left-color:#ffb900}.notice-warning.notice-alt{background-color:#fff8e5}.notice-error,div.error{border-left-color:#dc3232}.notice-error.notice-alt{background-color:#fbeaea}.notice-info{border-left-color:#00a0d2}.notice-info.notice-alt{background-color:#e5f5fa}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#f56e28;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.updating-message p:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#79ba49;content:'\f147'}.update-message.notice-error p:before{color:#dc3232;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-right:6px;vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:left;margin:25px 20px 0 2px;background-color:#fff;border-left:4px solid #ffba00;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#screen-meta,ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-left:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px 5px 0 -2px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#66c6e4}.button.updated-message,.notice .button-link{-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.notice .button-link{color:#0073aa}.notice .button-link:active,.notice .button-link:hover{color:#00a0d2}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:none}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-left:0!important}#screen-meta .screen-reader-text{visibility:hidden}#screen-meta-links{margin:0 20px 0 0}#screen-meta{margin:0 20px -1px 0;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.025);box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:right;height:28px;margin:0 0 0 6px;border:1px solid #ddd;border-top:none;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:0;background:0 0;-webkit-border-radius:0;border-radius:0;color:#72777c;line-height:1.7;padding:3px 6px 3px 16px}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#32373c}#screen-meta-links .show-settings:active{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}#screen-meta-links .show-settings:after{right:0;content:"\f140";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 5px 0 0;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#72777c}#templateside ul li a,#wpfooter a,.nav-tab{text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.hndle a,.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.ie8 #screen-options-wrap legend{color:inherit}.metabox-prefs label{display:inline-block;padding-right:15px;line-height:30px}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-right:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 5px 0 0}.metabox-prefs .columns-prefs label input{margin:-1px 2px 0 0}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-right:15px}.metabox-prefs .screen-options label{line-height:28px;padding-right:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 0 0 2px;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:18px;text-decoration:none;border:1px solid transparent;border-right:none;border-left:none}.contextual-help-tabs a:hover{color:#32373c}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-left:2px solid #00a0d2;background:#f6fbfd;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02);box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#32373c}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}html.wp-toolbar{padding-top:32px;box-sizing:border-box}.widefat td,.widefat th{color:#555}.widefat ol,.widefat p,.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th,.widefat ul{color:#32373c}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:outside;margin-left:2em}.postbox-container{float:left}.postbox-container .meta-box-sortables{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #b4b9be;height:250px;position:relative}.metabox-holder .postbox-container .empty-container:after{content:attr(data-emptystring);margin:auto;position:absolute;top:0;left:0;bottom:0;right:0;height:1em;width:200px;text-align:center;color:#ccc;font-size:18px;display:none}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:left}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.nav-tab,.plugins .name{font-weight:600}.postbox .handlediv{display:none;float:right;width:36px;height:36px;padding:0}.js .postbox .handlediv{display:block}.sortable-placeholder{border:1px dashed #b4b9be;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{-webkit-box-shadow:none;box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 10px 0 0}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;color:#555d66}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}#wpfooter a:hover{text-decoration:underline}.nav-tab{float:left;border:1px solid #ccc;border-bottom:none;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:16px}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#444}.nav-tab-active,.nav-tab:focus:active{-webkit-box-shadow:none;box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#444}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.ie8 .nav-tab-wrapper{display:inline-block;width:100%;vertical-align:top}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:inline-block;visibility:hidden;float:right;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template div{margin-right:190px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 10px 11px 14px;line-height:21px}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:left}.attention,.error-message{color:red;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}#howto,.importer-action,.importer-desc,.importer-title{display:block}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #e5e5e5;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px}.importers{font-size:16px;width:auto}.importers td{padding-right:14px;line-height:1.5em}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.post-categories,.post-categories li{display:inline}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:20px;color:#ddd;margin-bottom:1em}.not-installed-main-site .importer-action{color:#555}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{font-size:14px;line-height:1.4;font-weight:600;color:#222;margin:2px 0 0 9px}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.checkbox,.post-categories,.zerosize,fieldset{margin:0;padding:0}.zerosize{height:0;width:0;border:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none}fieldset{border:0}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) bottom left repeat-x}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) top left repeat-x;height:17px;float:left}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center;color:#ffb900}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;right:0;bottom:0;left:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 20px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;top:0;right:0;left:0;height:56px;overflow:hidden;text-overflow:ellipsis}#plugin-information-title.with-banner{margin-right:0;height:250px;bottom:250px;-webkit-background-size:cover;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;max-width:680px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;padding:0 15px;margin:174px 0 0 10px;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);-webkit-box-shadow:0 0 30px rgba(255,255,255,.1);box-shadow:0 0 30px rgba(255,255,255,.1);-webkit-border-radius:8px;border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{display:block;float:right;top:0;height:250px;width:772px;margin:0 -20px;background:0 0;-webkit-box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;right:0;left:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;-webkit-transition:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#32373c}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;right:0;left:0;min-height:100%;min-height:-webkit-calc(100% - 152px);min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:-webkit-calc(100% - 346px);min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;right:250px;bottom:0;left:0;margin-right:250px;padding:10px 26px 99999px;margin-bottom:-99939px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:right;position:relative;top:0;right:0;padding:16px 16px 99999px;margin-bottom:-99939px;width:217px;border-left:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#444}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:left;margin-right:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#e5e5e5;float:left}#plugin-information .counter-bar{height:17px;background-color:#ffc733;float:left}#plugin-information .counter-count{margin-left:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-right:4px}#plugin-information-footer{padding:13px 16px;position:absolute;right:0;bottom:0;left:0;height:33px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e5e5e5}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px;bottom:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px;bottom:100px;width:800%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}body.about-php #TB_window,body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc}.ie8 body.about-php #TB_window:before,.ie8 body.import-php #TB_window:before,.ie8 body.index-php #TB_window:before,.ie8 body.plugin-install-php #TB_window:before,.ie8 body.plugins-php #TB_window:before,.ie8 body.update-core-php #TB_window:before{content:" ";background:0 0}body.about-php #TB_window.thickbox-loading:before,body.import-php #TB_window.thickbox-loading:before,body.index-php #TB_window.thickbox-loading:before,body.plugin-install-php #TB_window.thickbox-loading:before,body.plugins-php #TB_window.thickbox-loading:before,body.update-core-php #TB_window.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;background:url(../images/spinner.gif) center no-repeat #fcfcfc;-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}body.about-php #TB_ajaxWindowTitle,body.about-php .tb-close-icon,body.import-php #TB_ajaxWindowTitle,body.import-php .tb-close-icon,body.index-php #TB_ajaxWindowTitle,body.index-php .tb-close-icon,body.plugin-install-php #TB_ajaxWindowTitle,body.plugin-install-php .tb-close-icon,body.plugins-php #TB_ajaxWindowTitle,body.plugins-php .tb-close-icon,body.update-core-php #TB_ajaxWindowTitle,body.update-core-php .tb-close-icon{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){body.about-php #TB_window.thickbox-loading:before,body.import-php #TB_window.thickbox-loading:before,body.index-php #TB_window.thickbox-loading:before,body.plugin-install-php #TB_window.thickbox-loading:before,body.plugins-php #TB_window.thickbox-loading:before,body.update-core-php #TB_window.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}body.about-php #TB_title,body.import-php #TB_title,body.index-php #TB_title,body.plugin-install-php #TB_title,body.plugins-php #TB_title,body.update-core-php #TB_title{float:left;height:1px}.about-php #TB_closeWindowButton,.import-php #TB_closeWindowButton,.index-php #TB_closeWindowButton,.plugin-install-php #TB_closeWindowButton,.plugins-php #TB_closeWindowButton,.update-core-php #TB_closeWindowButton{left:auto;right:-30px;color:#eee}body.about-php #TB_closeWindowButton:focus,body.about-php #TB_closeWindowButton:hover,body.import-php #TB_closeWindowButton:focus,body.import-php #TB_closeWindowButton:hover,body.index-php #TB_closeWindowButton:focus,body.index-php #TB_closeWindowButton:hover,body.plugin-install-php #TB_closeWindowButton:focus,body.plugin-install-php #TB_closeWindowButton:hover,body.plugins-php #TB_closeWindowButton:focus,body.plugins-php #TB_closeWindowButton:hover,body.update-core-php #TB_closeWindowButton:focus,body.update-core-php #TB_closeWindowButton:hover{color:#00a0d2;outline:0;-webkit-box-shadow:none;box-shadow:none}body.about-php #TB_closeWindowButton:after,body.import-php #TB_closeWindowButton:after,body.index-php #TB_closeWindowButton:after,body.plugin-install-php #TB_closeWindowButton:after,body.plugins-php #TB_closeWindowButton:after,body.update-core-php #TB_closeWindowButton:after{content:"\f335";font:400 32px/29px dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){body.about-php #TB_closeWindowButton,body.import-php #TB_closeWindowButton,body.index-php #TB_closeWindowButton,body.plugin-install-php #TB_closeWindowButton,body.plugins-php #TB_closeWindowButton,body.update-core-php #TB_closeWindowButton{right:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator:before,.js .meta-box-sortables .postbox .toggle-indicator:before,.js .sidebar-name .sidebar-name-arrow:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before,.js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,.js .widgets-holder-wrap.closed .sidebar-name-arrow:before{content:"\f140"}.js .sidebar-name .sidebar-name-arrow:before{padding:10px;left:0}.js #widgets-left .sidebar-name .sidebar-name-arrow{display:none}.accordion-section.open .accordion-section-content,.js #widgets-left .sidebar-name:hover .sidebar-name-arrow,.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow,.no-js .accordion-section .accordion-section-content{display:block}.js .postbox .handlediv .toggle-indicator:before{margin-top:4px;width:20px;-webkit-border-radius:50%;border-radius:50%;text-indent:-1px}#postcustomstuff p.submit,#templateside h2,.alignleft h2{margin:0}.rtl.js .postbox .handlediv .toggle-indicator:before{text-indent:1px}.bulk-action-notice .toggle-indicator:before{line-height:16px;vertical-align:top;color:#72777c}.js .postbox .handlediv:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.js .postbox .handlediv:focus .toggle-indicator:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#photo-add-url-div input[type=text]{width:300px}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;width:97%;background:#f9f9f9;outline:0}#template p{width:97%}#templateside{float:right;width:190px}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em 0;padding:0}#templateside li{margin:4px 0}#templateside li a,.theme-editor-php .highlight{display:block;padding:3px 3px 3px 12px;text-decoration:none}.theme-editor-php .highlight{margin:-3px 3px -3px -12px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#666;font-size:11px;font-style:italic;padding-left:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top a.widget-action:after{right:0;content:"\f140";border:none;background:0 0;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow{color:#72777c}.widget-action{color:#555d66}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.widget-action:focus,.widget-top:hover .widget-action{color:#23282d}.widget-top a.widget-action:after{padding:1px 2px 1px 0;margin-top:10px;margin-right:10px;-webkit-border-radius:50%;border-radius:50%}.widget-top a.widget-action:focus:after{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:right;right:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top a.widget-action:after{content:"\f142"}/*!
+.subsubsub a,.widefat a,.wp-filter a{text-decoration:none}#ajax-loading,#screen-meta .screen-reader-text,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading,.spinner,.wp-header-end{visibility:hidden}#docs-list,#plugin-information .section,#template textarea,.code,.ltr,code{direction:ltr}#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-left:20px}#wpcontent,#wpfooter{margin-left:160px}.folded #wpcontent,.folded #wpfooter{margin-left:36px}#wpbody-content{padding-bottom:65px;float:left;width:100%;overflow:visible!important}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-left{float:left;width:35%}#col-right{float:right;width:65%}#col-left .col-wrap{padding:0 6px 0 0}#col-right .col-wrap{padding:0 0 0 6px}.alignleft{float:left}.alignright{float:right}#publishing-action .spinner,#save-post,.subsubsub{float:left}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important}h2,h3,p{margin:1em 0}#templateside,.misc-pub-filename,.pre,.widefat *{word-wrap:break-word}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{left:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0073aa;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}a,div{outline:0}a:active,a:hover{color:#00a0d2}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}h1,h2,h3{color:#23282d}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}p{font-size:13px;line-height:1.5}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2,h3{font-size:1.3em}.update-core-php h2{margin-top:2em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-left:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:#666}.subsubsub a{line-height:2;padding:.2em}.subsubsub a .count,.subsubsub a.current .count{color:#555d66;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:left;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 0 0 3px}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-left:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 20px 0 2px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:29px}.wrap h1.wp-heading-inline{display:inline-block;margin-right:5px}.wp-header-end{margin:-2px 0 0}.subtitle{margin:0;padding-left:25px;color:#555d66;font-size:14px;font-weight:400;line-height:1}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{margin-left:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;border:1px solid #ccc;-webkit-border-radius:2px;border-radius:2px;background:#f7f7f7;text-shadow:none;font-weight:600;font-size:13px;line-height:normal;color:#0073aa;cursor:pointer;outline:0}.wrap .wp-heading-inline+.page-title-action{margin-left:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{border-color:#008EC2;background:#00a0d2;color:#fff}.page-title-action:focus{color:#124964}.ac_match,.highlight,.subsubsub a.current{color:#000}.wrap .page-title-action:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.wrap h1.long-header{padding-right:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#ccf3fa}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-right-color:#99d}.highlight{background-color:#e4f2fd}.wp-ui-primary{color:#fff;background-color:#32373c}.wp-ui-text-primary{color:#32373c}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#82878c}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;-webkit-box-shadow:none!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#23282d}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#b4b9be;content:"\f153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before{margin:1px 0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-left:2px;-webkit-border-radius:50%;border-radius:50%;color:#0073aa;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles div a:focus:before,#bulk-titles div a:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,.welcome-panel .welcome-panel-close:focus:before,.welcome-panel .welcome-panel-close:hover:before{color:#c00}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.filter-group,.wp-filter{position:relative;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap}#namediv td.first,#plugin-information-title,.nav-tab,.no-break,.star-rating{white-space:nowrap}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete,.widget-control-remove,.widget-control-remove:focus{color:#a00}#all-plugins-table .plugins a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,abbr.required,span.required{color:red;border:none}.widget-control-remove:hover{color:red}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{float:left;line-height:28px}#publishing-action{text-align:right;float:right;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:right}.preview{float:right}#sticky-span{margin-left:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:right}.wp-filter{display:inline-block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.filter-group,html.wp-toolbar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;-webkit-border-radius:30px;border-radius:30px;background:#72777c;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-left:5px;margin-right:20px}.filter-links li>a,.wp-filter .search-form.search-plugins{display:inline-block}.filter-items{float:left}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{-webkit-box-shadow:none;box-shadow:none;border-bottom:4px solid #666;color:#23282d}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#00a0d2}.wp-filter .search-form{float:right;margin:10px 0}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;max-width:100%;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{margin:0;height:32px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 10px 0 6px;border-color:transparent;background-color:transparent;color:#666;vertical-align:baseline;-webkit-box-shadow:none;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 5px 0 0;color:#72777c;font:400 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#00a0d2}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#5b9dd9}.wp-filter .button.drawer-toggle:active{background:0 0;-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.filter-drawer,.wp-filter .favorites-form{margin:0 -20px;padding:20px;border-top:1px solid #eee;background:#fafafa}.wp-filter .drawer-toggle.current:before{color:#fff}.wp-filter .favorites-form{display:none;overflow:hidden;width:100%}.show-favorites-form .favorites-form{display:block}.filter-drawer{display:none}.show-filters .filter-drawer{display:block;overflow:hidden;width:100%}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{-webkit-border-radius:2px;border-radius:2px;background:#72777c;color:#fff}.filter-group,.filtered-by .tag{border:1px solid #e5e5e5;background:#fff}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{box-sizing:border-box;float:left;margin:0 1% 0 0;padding:20px 10px 10px;width:24%;box-shadow:0 1px 1px rgba(0,0,0,.04)}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{display:inline-block;margin:7px 4px 7px 0;line-height:16px}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-left:10px}.wp-filter .button-link.edit-filters{color:#0073aa;text-decoration:underline;padding:0 5px;line-height:28px}.wp-filter .button-link.edit-filters:hover{color:#00a0d2}.wp-filter .button-link.edit-filters:focus{color:#124964}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-left:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border-left:4px solid #fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 12px .5em 0}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{-webkit-box-shadow:none;box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#23282d;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-right:38px;position:relative}.notice-dismiss{position:absolute;top:0;right:1px;border:none;margin:0;padding:9px;background:0 0;color:#b4b9be;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#c00}.notice-dismiss:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .notice-dismiss:focus{outline:#5b9dd9 solid 1px}.notice-success,div.updated{border-left-color:#46b450}.notice-success.notice-alt{background-color:#ecf7ed}.notice-warning{border-left-color:#ffb900}.notice-warning.notice-alt{background-color:#fff8e5}.notice-error,div.error{border-left-color:#dc3232}.notice-error.notice-alt{background-color:#fbeaea}.notice-info{border-left-color:#00a0d2}.notice-info.notice-alt{background-color:#e5f5fa}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#f56e28;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.updating-message p:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#79ba49;content:'\f147'}.update-message.notice-error p:before{color:#dc3232;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-right:6px;vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:left;margin:25px 20px 0 2px;background-color:#fff;border-left:4px solid #ffba00;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#screen-meta,ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}#ajax-response.alignleft{margin-left:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px 5px 0 -2px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#66c6e4}.button.updated-message,.notice .button-link{-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.notice .button-link{color:#0073aa}.notice .button-link:active,.notice .button-link:hover{color:#00a0d2}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:none}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-left:0!important}#screen-meta-links{margin:0 20px 0 0}#screen-meta{margin:0 20px -1px 0;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.025);box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:right;height:28px;margin:0 0 0 6px;border:1px solid #ddd;border-top:none;background:#fff;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:0;background:0 0;-webkit-border-radius:0;border-radius:0;color:#72777c;line-height:1.7;padding:3px 6px 3px 16px}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#32373c}#screen-meta-links .show-settings:active{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}#screen-meta-links .show-settings:after{right:0;content:"\f140";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 5px 0 0;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#72777c}#templateside ul li a,.nav-tab{text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.hndle a,.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.ie8 #screen-options-wrap legend{color:inherit}.metabox-prefs label{display:inline-block;padding-right:15px;line-height:30px}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-right:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 5px 0 0}.metabox-prefs .columns-prefs label input{margin:-1px 2px 0 0}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-right:15px}.metabox-prefs .screen-options label{line-height:28px;padding-right:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 0 0 2px;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:18px;text-decoration:none;border:1px solid transparent;border-right:none;border-left:none}.contextual-help-tabs a:hover{color:#32373c}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-left:2px solid #00a0d2;background:#f6fbfd;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02);box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#32373c}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}html.wp-toolbar{padding-top:32px;box-sizing:border-box}.widefat td,.widefat th{color:#555}.widefat ol,.widefat p,.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th,.widefat ul{color:#32373c}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:outside;margin-left:2em}.postbox-container{float:left}.postbox-container .meta-box-sortables{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #b4b9be;height:250px;position:relative}.metabox-holder .postbox-container .empty-container:after{content:attr(data-emptystring);margin:auto;position:absolute;top:0;left:0;bottom:0;right:0;height:1em;width:200px;text-align:center;color:#ccc;font-size:18px;display:none}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:left}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.nav-tab,.plugins .name{font-weight:600}.postbox .handlediv{display:none;float:right;width:36px;height:36px;padding:0}.js .postbox .handlediv{display:block}.sortable-placeholder{border:1px dashed #b4b9be;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{-webkit-box-shadow:none;box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 10px 0 0}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;color:#555d66}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}.nav-tab{float:left;border:1px solid #ccc;border-bottom:none;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:16px}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#444}.nav-tab-active,.nav-tab:focus:active{-webkit-box-shadow:none;box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#444}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.ie8 .nav-tab-wrapper{display:inline-block;width:100%;vertical-align:top}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;display:inline-block;float:right;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template div{margin-right:190px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 10px 11px 14px;line-height:21px}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:left}.attention,.error-message{color:red;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}#howto,.importer-action,.importer-desc,.importer-title{display:block}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #e5e5e5;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px}.importers{font-size:16px;width:auto}.importers td{padding-right:14px;line-height:1.5em}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.post-categories,.post-categories li{display:inline}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:20px;color:#ddd;margin-bottom:1em}.not-installed-main-site .importer-action{color:#555}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{font-size:14px;line-height:1.4;font-weight:600;color:#222;margin:2px 0 0 9px}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.checkbox,.post-categories,.zerosize,fieldset{margin:0;padding:0}.zerosize{height:0;width:0;border:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none}fieldset{border:0}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) bottom left repeat-x}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) top left repeat-x;height:17px;float:left}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;text-align:center;color:#ffb900}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);-ms-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;right:0;bottom:0;left:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 20px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;top:0;right:0;left:0;height:56px;overflow:hidden;text-overflow:ellipsis}#plugin-information-title.with-banner{margin-right:0;height:250px;bottom:250px;-webkit-background-size:cover;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;max-width:680px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;padding:0 15px;margin:174px 0 0 10px;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);-webkit-box-shadow:0 0 30px rgba(255,255,255,.1);box-shadow:0 0 30px rgba(255,255,255,.1);-webkit-border-radius:8px;border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{display:block;float:right;top:0;height:250px;width:772px;margin:0 -20px;background:0 0;-webkit-box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;right:0;left:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;-webkit-transition:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#32373c}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;right:0;left:0;min-height:100%;min-height:-webkit-calc(100% - 152px);min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:-webkit-calc(100% - 346px);min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;right:250px;bottom:0;left:0;margin-right:250px;padding:10px 26px 99999px;margin-bottom:-99939px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:right;position:relative;top:0;right:0;padding:16px 16px 99999px;margin-bottom:-99939px;width:217px;border-left:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#444}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:left;margin-right:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#e5e5e5;float:left}#plugin-information .counter-bar{height:17px;background-color:#ffc733;float:left}#plugin-information .counter-count{margin-left:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-right:4px}#plugin-information-footer{padding:13px 16px;position:absolute;right:0;bottom:0;left:0;height:33px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e5e5e5}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-right:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner{height:100px;bottom:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-title.with-banner div.vignette{height:100px;bottom:100px;width:800%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}body.about-php #TB_window,body.import-php #TB_window,body.index-php #TB_window,body.plugin-install-php #TB_window,body.plugins-php #TB_window,body.update-core-php #TB_window{background:#fcfcfc}.ie8 body.about-php #TB_window:before,.ie8 body.import-php #TB_window:before,.ie8 body.index-php #TB_window:before,.ie8 body.plugin-install-php #TB_window:before,.ie8 body.plugins-php #TB_window:before,.ie8 body.update-core-php #TB_window:before{content:" ";background:0 0}body.about-php #TB_window.thickbox-loading:before,body.import-php #TB_window.thickbox-loading:before,body.index-php #TB_window.thickbox-loading:before,body.plugin-install-php #TB_window.thickbox-loading:before,body.plugins-php #TB_window.thickbox-loading:before,body.update-core-php #TB_window.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;background:url(../images/spinner.gif) center no-repeat #fcfcfc;-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}body.about-php #TB_ajaxWindowTitle,body.about-php .tb-close-icon,body.import-php #TB_ajaxWindowTitle,body.import-php .tb-close-icon,body.index-php #TB_ajaxWindowTitle,body.index-php .tb-close-icon,body.plugin-install-php #TB_ajaxWindowTitle,body.plugin-install-php .tb-close-icon,body.plugins-php #TB_ajaxWindowTitle,body.plugins-php .tb-close-icon,body.update-core-php #TB_ajaxWindowTitle,body.update-core-php .tb-close-icon{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){body.about-php #TB_window.thickbox-loading:before,body.import-php #TB_window.thickbox-loading:before,body.index-php #TB_window.thickbox-loading:before,body.plugin-install-php #TB_window.thickbox-loading:before,body.plugins-php #TB_window.thickbox-loading:before,body.update-core-php #TB_window.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}body.about-php #TB_title,body.import-php #TB_title,body.index-php #TB_title,body.plugin-install-php #TB_title,body.plugins-php #TB_title,body.update-core-php #TB_title{float:left;height:1px}.about-php #TB_closeWindowButton,.import-php #TB_closeWindowButton,.index-php #TB_closeWindowButton,.plugin-install-php #TB_closeWindowButton,.plugins-php #TB_closeWindowButton,.update-core-php #TB_closeWindowButton{left:auto;right:-30px;color:#eee}body.about-php #TB_closeWindowButton:focus,body.about-php #TB_closeWindowButton:hover,body.import-php #TB_closeWindowButton:focus,body.import-php #TB_closeWindowButton:hover,body.index-php #TB_closeWindowButton:focus,body.index-php #TB_closeWindowButton:hover,body.plugin-install-php #TB_closeWindowButton:focus,body.plugin-install-php #TB_closeWindowButton:hover,body.plugins-php #TB_closeWindowButton:focus,body.plugins-php #TB_closeWindowButton:hover,body.update-core-php #TB_closeWindowButton:focus,body.update-core-php #TB_closeWindowButton:hover{color:#00a0d2;outline:0;-webkit-box-shadow:none;box-shadow:none}body.about-php #TB_closeWindowButton:after,body.import-php #TB_closeWindowButton:after,body.index-php #TB_closeWindowButton:after,body.plugin-install-php #TB_closeWindowButton:after,body.plugins-php #TB_closeWindowButton:after,body.update-core-php #TB_closeWindowButton:after{content:"\f335";font:400 32px/29px dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){body.about-php #TB_closeWindowButton,body.import-php #TB_closeWindowButton,body.index-php #TB_closeWindowButton,body.plugin-install-php #TB_closeWindowButton,body.plugins-php #TB_closeWindowButton,body.update-core-php #TB_closeWindowButton{right:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator:before,.js .meta-box-sortables .postbox .toggle-indicator:before,.js .sidebar-name .sidebar-name-arrow:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before,.js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,.js .widgets-holder-wrap.closed .sidebar-name-arrow:before{content:"\f140"}.js .sidebar-name .sidebar-name-arrow:before{padding:10px;left:0}.js #widgets-left .sidebar-name .sidebar-name-arrow{display:none}.accordion-section.open .accordion-section-content,.js #widgets-left .sidebar-name:hover .sidebar-name-arrow,.js #widgets-left .widgets-holder-wrap.closed .sidebar-name .sidebar-name-arrow,.no-js .accordion-section .accordion-section-content{display:block}.js .postbox .handlediv .toggle-indicator:before{margin-top:4px;width:20px;-webkit-border-radius:50%;border-radius:50%;text-indent:-1px}#postcustomstuff p.submit,#templateside h2,.alignleft h2{margin:0}.rtl.js .postbox .handlediv .toggle-indicator:before{text-indent:1px}.bulk-action-notice .toggle-indicator:before{line-height:16px;vertical-align:top;color:#72777c}.js .postbox .handlediv:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.js .postbox .handlediv:focus .toggle-indicator:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#photo-add-url-div input[type=text]{width:300px}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;width:97%;background:#f9f9f9;outline:0}#template p{width:97%}#templateside{float:right;width:190px}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em 0;padding:0}#templateside li{margin:4px 0}#templateside li a,.theme-editor-php .highlight{display:block;padding:3px 3px 3px 12px;text-decoration:none}.theme-editor-php .highlight{margin:-3px 3px -3px -12px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#666;font-size:11px;font-style:italic;padding-left:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top a.widget-action:after{right:0;content:"\f140";border:none;background:0 0;font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.accordion-section-title:after,.handlediv,.item-edit,.sidebar-name-arrow{color:#72777c}.widget-action{color:#555d66}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.widget-action:focus,.widget-top:hover .widget-action{color:#23282d}.widget-top a.widget-action:after{padding:1px 2px 1px 0;margin-top:10px;margin-right:10px;-webkit-border-radius:50%;border-radius:50%}.widget-top a.widget-action:focus:after{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:right;right:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top a.widget-action:after{content:"\f142"}/*!
  * jQuery UI Draggable/Sortable 1.11.4
  * http://jqueryui.com
  *
  * Copyright jQuery Foundation and other contributors
  * Released under the MIT license.
  * http://jquery.org/license
- */.ui-draggable-handle,.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.accordion-section{border-bottom:1px solid #ddd;margin:0}.accordion-section.open:hover{border-bottom-color:#ddd}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-left:1px solid #ddd;border-right:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;right:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a0a5aa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title{border-left:none;border-right:none;padding:10px 10px 11px 14px;line-height:21px;background:#fff}.control-section .accordion-section-title:after{top:11px}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#23282d;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #ddd}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;right:0;background:#ccc}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:left;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(2n+1){clear:left}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f9f9f9}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:left;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f9f9f9}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:left;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:left}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f9f9f9}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:left;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:left}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f9f9f9}}@media only screen and (min-width:1600px){.my-sites li{float:left;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:left}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f9f9f9}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) bottom left repeat-x;-webkit-background-size:21px 37px;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.sidebar-name:hover .sidebar-name-arrow,.tagchecklist span a,.tagchecklist span a:hover,.widget-top a.widget-action,.widget-top a.widget-action:hover{background:0 0!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){#col-left,#col-right,#template div,#templateside{float:none;width:auto}html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpcontent{position:relative;margin-left:0;padding-left:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-right:12px;margin-left:0}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.wp-color-result{height:auto;padding-left:45px}.wp-color-result:after{font-size:14px;height:auto;padding:6px 14px}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-right:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{right:-190px}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside li{margin:0}#templateside li a{display:block;padding:5px}#templateside .highlight{padding:5px;margin-left:-5px;margin-top:-5px}#template div{margin:0}#template textarea{width:100%}.fileedit-sub .alignright{margin-top:15px}#comments-form .checkforspam,#wpfooter{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:25px}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open,div#post-body.metabox-holder.columns-1{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab{margin:10px 10px 0 0;border-bottom:1px solid #ccc}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:left}}
\ No newline at end of file
+ */.ui-draggable-handle,.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.accordion-section{border-bottom:1px solid #ddd;margin:0}.accordion-section.open:hover{border-bottom-color:#ddd}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-left:1px solid #ddd;border-right:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;right:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a0a5aa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-left:none;border-right:none;padding:10px 10px 11px 14px;line-height:21px;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:11px}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#23282d;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #ddd}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;right:0;background:#ccc}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:left;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(2n+1){clear:left}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f9f9f9}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:left;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f9f9f9}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:left;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:left}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f9f9f9}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:left;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:left}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f9f9f9}}@media only screen and (min-width:1600px){.my-sites li{float:left;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:left}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f9f9f9}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) bottom left repeat-x;-webkit-background-size:21px 37px;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.sidebar-name:hover .sidebar-name-arrow,.widget-top a.widget-action,.widget-top a.widget-action:hover{background:0 0!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){#col-left,#col-right,#template div,#templateside{float:none;width:auto}html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpcontent{position:relative;margin-left:0;padding-left:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-right:12px;margin-left:0}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.wp-color-result{height:auto;padding-left:45px}.wp-color-result:after{font-size:14px;height:auto;padding:6px 14px}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-right:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{right:-190px}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside li{margin:0}#templateside li a{display:block;padding:5px}#templateside .highlight{padding:5px;margin-left:-5px;margin-top:-5px}#template div{margin:0}#template textarea{width:100%}.fileedit-sub .alignright{margin-top:15px}#comments-form .checkforspam,#wpfooter{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:25px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:26px;height:28px}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open,div#post-body.metabox-holder.columns-1{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab{margin:10px 10px 0 0;border-bottom:1px solid #ccc}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:left}}
\ No newline at end of file
diff --git a/wp-admin/css/customize-controls-rtl.css b/wp-admin/css/customize-controls-rtl.css
index a0f4c0b40..f0d7220c6 100644
--- a/wp-admin/css/customize-controls-rtl.css
+++ b/wp-admin/css/customize-controls-rtl.css
@@ -3,7 +3,8 @@ body {
 	-webkit-text-size-adjust: 100%;
 }
 
-#customize-controls a {
+.customize-controls-close,
+.widget-control-actions a {
 	text-decoration: none;
 }
 
@@ -20,7 +21,7 @@ body {
 }
 
 #customize-controls .description {
-	color: #555;
+	color: #555d66;
 }
 
 #customize-header-actions .button-primary {
@@ -48,14 +49,40 @@ body {
 
 #customize-controls .customize-info {
 	border: none;
-	border-top: 1px solid #ddd;
 	border-bottom: 1px solid #ddd;
 	margin-bottom: 15px;
 }
 
+#customize-controls .customize-info.section-meta {
+	margin-bottom: 15px;
+}
+
+#customize-controls .customize-info.is-in-view,
+#customize-controls .customize-section-title.is-in-view {
+	position: absolute;
+	z-index: 9;
+	width: 100%;
+	-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, .1);
+	box-shadow: 0 1px 0 rgba(0, 0, 0, .1);
+}
+
+#customize-controls .customize-section-title.is-in-view {
+	margin-top: 0;
+}
+
+#customize-controls .customize-info.is-in-view + .accordion-section {
+	margin-top: 15px;
+}
+
+#customize-controls .customize-info.is-sticky,
+#customize-controls .customize-section-title.is-sticky {
+	position: fixed;
+	top: 46px;
+}
+
 #customize-controls .customize-info .accordion-section-title {
 	background: #fff;
-	color: #555;
+	color: #555d66;
 	border-right: none;
 	border-left: none;
 	border-bottom: none;
@@ -65,7 +92,7 @@ body {
 #customize-controls .customize-info.open .accordion-section-title:after,
 #customize-controls .customize-info .accordion-section-title:hover:after,
 #customize-controls .customize-info .accordion-section-title:focus:after {
-	color: #333;
+	color: #32373c;
 }
 
 #customize-controls .customize-info .accordion-section-title:after {
@@ -77,8 +104,8 @@ body {
 	line-height: 24px;
 }
 
-#customize-controls .control-section .customize-section-title h3,
-#customize-controls .control-section h3.customize-section-title,
+#customize-controls .customize-pane-child .customize-section-title h3,
+#customize-controls .customize-pane-child h3.customize-section-title,
 #customize-controls .customize-info .panel-title {
 	font-size: 20px;
 	font-weight: 200;
@@ -107,7 +134,7 @@ body {
 	box-shadow: none;
 	-webkit-appearance: none;
 	background: transparent;
-	color: #555;
+	color: #555d66;
 	border: none;
 }
 
@@ -124,22 +151,30 @@ body {
 }
 
 #customize-controls .customize-info .customize-panel-description,
+#customize-controls .customize-info .customize-section-description,
 #customize-controls .no-widget-areas-rendered-notice {
-	color: #555;
+	color: #555d66;
 	display: none;
 	background: #fff;
 	padding: 12px 15px;
 	border-top: 1px solid #ddd;
 }
+
 #customize-controls .customize-info .customize-panel-description.open + .no-widget-areas-rendered-notice {
 	border-top: none;
 }
 
-#customize-controls .customize-info .customize-panel-description p:first-child {
+#customize-controls .customize-info .customize-section-description {
+	margin-bottom: 15px;
+}
+
+#customize-controls .customize-info .customize-panel-description p:first-child,
+#customize-controls .customize-info .customize-section-description p:first-child {
 	margin-top: 0;
 }
 
-#customize-controls .customize-info .customize-panel-description p:last-child {
+#customize-controls .customize-info .customize-panel-description p:last-child,
+#customize-controls .customize-info .customize-section-description p:last-child {
 	margin-bottom: 0;
 }
 
@@ -152,9 +187,22 @@ body {
 }
 
 #customize-theme-controls .accordion-section-title {
+	color: #555d66;
+	background-color: #fff;
+	border-bottom: 1px solid #ddd;
+	border-right: 4px solid #fff;
+	-webkit-transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
+	transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
+}
+
+#customize-controls #customize-theme-controls .customize-themes-panel .accordion-section-title {
 	color: #555;
 	background-color: #fff;
-	border-bottom: 1px solid #eee;
+	border-right: 4px solid #fff;
 }
 
 #customize-theme-controls .accordion-section-title:after {
@@ -163,7 +211,7 @@ body {
 }
 
 #customize-theme-controls .accordion-section-content {
-	color: #555;
+	color: #555d66;
 	background: transparent;
 }
 
@@ -171,22 +219,27 @@ body {
 #customize-controls .control-section .accordion-section-title:hover,
 #customize-controls .control-section.open .accordion-section-title,
 #customize-controls .control-section .accordion-section-title:focus {
-	color: #23282d;
-	background: #f5f5f5;
+	color: #0073aa;
+	background: #f3f3f5;
+	border-right-color: #0073aa;
+}
+
+#accordion-section-themes + .control-section {
+	border-top: 1px solid #ddd;
 }
 
 .js .control-section:hover .accordion-section-title,
 .js .control-section .accordion-section-title:hover,
 .js .control-section.open .accordion-section-title,
 .js .control-section .accordion-section-title:focus {
-	background: #f5f5f5;
+	background: #f3f3f5;
 }
 
 #customize-theme-controls .control-section:hover > .accordion-section-title:after,
 #customize-theme-controls .control-section .accordion-section-title:hover:after,
 #customize-theme-controls .control-section.open .accordion-section-title:after,
 #customize-theme-controls .control-section .accordion-section-title:focus:after {
-	color: #23282d;
+	color: #0073aa;
 }
 
 #customize-theme-controls .control-section.open {
@@ -202,6 +255,11 @@ body {
 	border-bottom-color: #ddd;
 }
 
+#customize-theme-controls .control-panel-content .control-section:nth-child(2),
+#customize-theme-controls .control-panel-nav_menus .control-section:nth-child(3) {
+	border-top: 1px solid #ddd;
+}
+
 #customize-theme-controls > ul {
 	margin: 0;
 }
@@ -218,6 +276,109 @@ body {
 	box-sizing: border-box;
 }
 
+#customize-info,
+#customize-theme-controls .customize-pane-parent,
+#customize-theme-controls .customize-pane-child {
+	overflow: visible;
+	width: 100%;
+	margin: 0;
+	padding: 0;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-transition: 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	transition: 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	-webkit-transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	-webkit-transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1), 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1), 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1); /* easeInOutCubic */
+}
+
+#customize-info,
+#customize-theme-controls .customize-pane-parent {
+	position: relative;
+	visibility: visible;
+	height: auto;
+	max-height: none;
+	overflow: auto;
+	-webkit-transform: none;
+	-ms-transform: none;
+	transform: none;
+}
+
+#customize-theme-controls .customize-pane-child {
+	position: absolute;
+	top: 0;
+	right: 0;
+	visibility: hidden;
+	height: 0;
+	max-height: none;
+	overflow: hidden;
+	-webkit-transform: translateX(-100%);
+	-ms-transform: translateX(-100%);
+	transform: translateX(-100%);
+}
+
+#customize-theme-controls .customize-pane-child.open,
+#customize-theme-controls .customize-pane-child.current-panel,
+#customize-theme-controls .customize-themes-panel.customize-pane-child.current-panel {
+	-webkit-transform: none;
+	-ms-transform: none;
+	transform: none;
+}
+
+#customize-theme-controls .customize-themes-panel.customize-pane-child,
+.section-open #customize-theme-controls .customize-pane-parent,
+.in-sub-panel #customize-theme-controls .customize-pane-parent,
+.section-open #customize-info,
+.in-sub-panel #customize-info,
+.in-sub-panel.section-open #customize-theme-controls .customize-pane-child.current-panel,
+.in-themes-panel #customize-theme-controls .customize-pane-parent,
+.in-themes-panel #customize-info {
+	visibility: hidden;
+	height: 0;
+	overflow: hidden;
+	-webkit-transform: translateX(100%);
+	-ms-transform: translateX(100%);
+	transform: translateX(100%);
+}
+
+.section-open #customize-theme-controls .customize-pane-parent.busy,
+.in-sub-panel #customize-theme-controls .customize-pane-parent.busy,
+.in-themes-panel #customize-theme-controls .customize-pane-parent.busy,
+.section-open #customize-info.busy,
+.in-sub-panel #customize-info.busy,
+.in-themes-panel #customize-info.busy,
+.busy.section-open.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel,
+#customize-theme-controls .customize-pane-child.open,
+#customize-theme-controls .customize-pane-child.current-panel,
+#customize-theme-controls .customize-pane-child.busy {
+	visibility: visible;
+	height: auto;
+	overflow: auto;
+}
+
+.in-themes-panel #customize-theme-controls .customize-pane-parent,
+.in-themes-panel #customize-info {
+	-webkit-transform: translateX(-100%);
+	-ms-transform: translateX(-100%);
+	transform: translateX(-100%);
+}
+
+#customize-theme-controls .customize-pane-child.accordion-section-content,
+#customize-theme-controls .customize-pane-child.accordion-sub-container {
+	display: block;
+	overflow-x: hidden;
+}
+
+#customize-theme-controls .customize-pane-child.accordion-section-content {
+	padding: 12px;
+}
+
+#customize-theme-controls .customize-pane-child.menu li {
+	position: static;
+}
+
 .customize-section-description-container {
 	margin-bottom: 15px;
 }
@@ -232,6 +393,10 @@ div.customize-section-description {
 	margin-top: 22px;
 }
 
+.customize-info div.customize-section-description {
+	margin-top: 0;
+}
+
 div.customize-section-description p:first-child {
 	margin-top: 0;
 }
@@ -254,42 +419,17 @@ h3.customize-section-title {
 	padding: 10px 14px 12px 10px;
 	margin: 0;
 	line-height: 21px;
-	color: #555;
-}
-
-#customize-theme-controls {
-	position: relative;
-	right: 0;
-	-webkit-transition: .18s right ease-in-out;
-	transition: .18s right ease-in-out;
-}
-
-.ios #customize-theme-controls {
-	-webkit-transition: right 0s;
-	transition: right 0s;
-}
-
-.section-open #customize-info,
-.section-open #customize-theme-controls {
-	right: -100%;
+	color: #555d66;
 }
 
 .accordion-sub-container.control-panel-content {
 	display: none;
 	position: absolute;
-	right: 100%;
 	top: 0;
 	width: 100%;
-	-webkit-transition: right ease-in-out .18s;
-	transition: right ease-in-out .18s;
-}
-
-.ios .accordion-sub-container.control-panel-content {
-	-webkit-transition: right 0s;
-	transition: right 0s;
 }
 
-.accordion-sub-container.control-panel-content.animating {
+.accordion-sub-container.control-panel-content.busy {
 	display: block;
 }
 
@@ -303,16 +443,21 @@ h3.customize-section-title {
 	top: 0;
 	right: 0;
 	width: 45px;
-	height: 45px;
+	height: 41px;
 	padding: 0 0 0 2px;
 	background: #eee;
 	border: none;
+	border-top: 4px solid #eee;
 	border-left: 1px solid #ddd;
 	color: #444;
 	text-align: right;
 	cursor: pointer;
-	-webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
-	transition: color .1s ease-in-out, background .1s ease-in-out;
+	-webkit-transition: color .15s ease-in-out,
+	            border-color .15s ease-in-out,
+	            background .15s ease-in-out;
+	transition: color .15s ease-in-out,
+	            border-color .15s ease-in-out,
+	            background .15s ease-in-out;
 	-webkit-box-sizing: content-box;
 	-moz-box-sizing: content-box;
 	box-sizing: content-box;
@@ -329,23 +474,22 @@ h3.customize-section-title {
 	background: #fff;
 	border: none;
 	border-left: 1px solid #ddd;
+	border-right: 4px solid #fff;
 	-webkit-box-shadow: none;
 	box-shadow: none;
 	cursor: pointer;
-	-webkit-transition: right .18s ease-in-out, color .1s ease-in-out, background .1s ease-in-out;
-	transition: right .18s ease-in-out, color .1s ease-in-out, background .1s ease-in-out;
+	-webkit-transition: color .15s ease-in-out,
+	            border-color .15s ease-in-out,
+	            background .15s ease-in-out;
+	transition: color .15s ease-in-out,
+	            border-color .15s ease-in-out,
+	            background .15s ease-in-out;
 }
 
 .customize-section-back {
 	height: 74px;
 }
 
-.ios .customize-panel-back,
-.ios .customize-section-back {
-	-webkit-transition: right 0s;
-	transition: right 0s;
-}
-
 .ios .customize-panel-back {
 	display: none;
 }
@@ -354,33 +498,38 @@ h3.customize-section-title {
 	display: block;
 }
 
-.panel-meta.customize-info .accordion-section-title {
+#customize-controls .panel-meta.customize-info .accordion-section-title {
 	margin-right: 48px;
+	border-right: none;
 }
 
-#customize-controls .panel-meta.customize-info .accordion-section-title:hover {
+#customize-controls .panel-meta.customize-info .accordion-section-title:hover,
+#customize-controls .cannot-expand:hover .accordion-section-title {
 	background: #fff;
-	color: #555;
+	color: #555d66;
+	border-right-color: #fff;
 }
 
 .customize-controls-close:focus,
 .customize-controls-close:hover,
 .customize-controls-preview-toggle:focus,
 .customize-controls-preview-toggle:hover {
-	background: #ddd;
-	border-color: #ccc;
-	color: #000;
+	background: #fff;
+	color: #0073aa;
+	border-top-color: #0073aa;
 	outline: none;
 	-webkit-box-shadow: none;
 	box-shadow: none;
 }
 
+
 .customize-panel-back:hover,
 .customize-panel-back:focus,
 .customize-section-back:hover,
 .customize-section-back:focus {
-	color: #23282d;
-	background: #f5f5f5;
+	color: #0073aa;
+	background: #f3f3f5;
+	border-right-color: #0073aa;
 	outline: none;
 	-webkit-box-shadow: none;
 	box-shadow: none;
@@ -390,7 +539,7 @@ h3.customize-section-title {
 	font: normal 22px/45px dashicons;
 	content: "\f335";
 	position: relative;
-	top: 1px;
+	top: -3px;
 	right: 13px;
 }
 
@@ -399,10 +548,11 @@ h3.customize-section-title {
 	font: normal 20px/72px dashicons;
 	content: "\f345";
 	position: relative;
-	right: 13px;
+	right: 9px;
 }
 
 .wp-full-overlay-sidebar .wp-full-overlay-header {
+	background-color: #eee;
 	-webkit-transition: padding ease-in-out .18s;
 	transition: padding ease-in-out .18s;
 }
@@ -411,63 +561,6 @@ h3.customize-section-title {
 	padding-right: 62px;
 }
 
-#customize-info,
-#customize-theme-controls > ul > .accordion-section {
-	position: relative;
-	right: 0;
-	-webkit-transition: right ease-in-out .18s;
-	transition: right ease-in-out .18s;
-}
-
-.ios #customize-info,
-.ios #customize-theme-controls > ul > .accordion-section {
-	-webkit-transition: right 0s;
-	transition: right 0s;
-}
-
-.in-sub-panel #customize-info,
-.in-sub-panel #customize-theme-controls > ul > .accordion-section {
-	right: -100%;
-	width: 100%;
-}
-
-.in-sub-panel #customize-theme-controls .accordion-section.current-panel {
-	width: 100%;
-}
-
-#customize-theme-controls .control-section.current-panel {
-	padding: 0;
-}
-
-#customize-theme-controls .control-section > h3.accordion-section-title {
-	position: relative;
-	right: 0;
-}
-
-#customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
-	right: -354px;
-	-webkit-transition: right ease-in-out .18s;
-	transition: right ease-in-out .18s;
-}
-
-.ios #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
-	-webkit-transition: right 0s;
-	transition: right 0s;
-}
-
-.wp-full-overlay.section-open #customize-controls .wp-full-overlay-sidebar-content {
-	visibility: hidden;
-	overflow-y: hidden;
-}
-
-.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open {
-	visibility: visible;
-}
-
-.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open .accordion-section-content {
-	overflow-y: auto;
-}
-
 p.customize-section-description {
 	font-style: normal;
 	margin-top: 22px;
@@ -509,8 +602,8 @@ p.customize-section-description {
 }
 
 .customize-control select {
-	min-width: 50%;
-	max-width: 100%;
+	width: 100%;
+	max-width: 300px;
 	height: 28px;
 	line-height: 28px;
 }
@@ -531,9 +624,20 @@ p.customize-section-description {
 	display: block;
 	font-style: italic;
 	line-height: 18px;
+	margin-top: 0;
 	margin-bottom: 5px;
 }
 
+.customize-section-description a.external-link:after {
+	font: 16px/11px dashicons;
+	content: "\f310";
+	top: 3px;
+	position: relative;
+	padding-right: 3px;
+	display: inline-block;
+	text-decoration: none;
+}
+
 .customize-control-color .color-picker,
 .customize-control-upload div {
 	line-height: 28px;
@@ -608,6 +712,71 @@ p.customize-section-description {
 	float: right;
 }
 
+#available-menu-items .accordion-section-content .new-content-item,
+.customize-control-dropdown-pages .new-content-item {
+	width: -webkit-calc(100% - 30px);
+	width: calc(100% - 30px);
+	padding: 8px 15px;
+	position: absolute;
+	bottom: 0;
+	z-index: 10;
+	background: #eee;
+	display: -webkit-box;
+	display: -moz-box;
+	display: -ms-flexbox;
+	display: -webkit-flex;
+	display: flex;
+}
+
+.customize-control-dropdown-pages .new-content-item {
+	width: 100%;
+	max-width: 300px;
+	padding: 5px 1px 5px 0;
+	position: relative;
+}
+
+#available-menu-items .new-content-item .create-item-input,
+.customize-control-dropdown-pages .new-content-item .create-item-input {
+	-webkit-box-flex: 10;
+	-webkit-flex-grow: 10;
+	-moz-box-flex: 10;
+	-ms-flex-positive: 10;
+	-ms-flex: 10;
+	flex-grow: 10;
+}
+
+#available-menu-items .new-content-item .add-content,
+.customize-control-dropdown-pages .new-content-item .add-content {
+	margin: 2px 6px 2px 0;
+	-webkit-box-flex: 10;
+	-webkit-flex-grow: 10;
+	-moz-box-flex: 10;
+	-ms-flex-positive: 10;
+	-ms-flex: 10;
+	flex-grow: 1;
+}
+
+.customize-control-dropdown-pages .new-content-item .create-item-input.invalid {
+	border: 1px solid #f00;
+}
+
+.customize-control-dropdown-pages .add-new-toggle {
+	margin-right: 1px;
+	color: #0073aa;
+	font-weight: 600;
+	line-height: 28px;
+	text-decoration: underline;
+}
+
+.customize-control-dropdown-pages .add-new-toggle:hover,
+.customize-control-dropdown-pages .add-new-toggle:active {
+	color: #00a0d2;
+}
+
+.customize-control-dropdown-pages .add-new-toggle:focus {
+	color: #124964;
+}
+
 #customize-preview iframe {
 	width: 100%;
 	height: 100%;
@@ -739,7 +908,7 @@ p.customize-section-description {
 }
 
 .customize-control-color .dropdown .dropdown-content {
-	background-color: #555;
+	background-color: #555d66;
 	border: 1px solid rgba(0, 0, 0, 0.15);
 }
 
@@ -770,6 +939,7 @@ p.customize-section-description {
 	margin-bottom: 8px;
 }
 
+.customize-control-header .actions,
 .customize-control-header .uploaded {
 	margin-bottom: 18px;
 }
@@ -822,7 +992,7 @@ p.customize-section-description {
 	display: none;
 	position: absolute;
 	width: 100%;
-	color: #555;
+	color: #555d66;
 	white-space: nowrap;
 	text-overflow: ellipsis;
 	overflow: hidden;
@@ -853,6 +1023,11 @@ p.customize-section-description {
 .customize-control-header .header-view:after {
 	border: 0;
 }
+
+.customize-control-header .header-view.selected .choice:focus {
+	outline: none;
+}
+
 .customize-control-header .header-view.selected:after {
 	content: '';
 	position: absolute;
@@ -862,6 +1037,7 @@ p.customize-section-description {
 	-webkit-border-radius: 2px;
 	border-radius: 2px;
 }
+
 .customize-control-header .header-view.button.selected {
 	border: 0;
 }
@@ -871,11 +1047,11 @@ p.customize-section-description {
 .customize-control-header .uploaded .header-view .close {
 	font-size: 20px;
 	color: #fff;
-	background: #555;
+	background: #555d66;
 	background: rgba(0, 0, 0, 0.5);
 	position: absolute;
 	top: 10px;
-	left: -999px;
+	right: -999px;
 	z-index: 1;
 	width: 26px;
 	height: 26px;
@@ -884,9 +1060,14 @@ p.customize-section-description {
 
 .customize-control-header .header-view:hover .close,
 .customize-control-header .header-view .close:focus {
+	right: auto;
 	left: 10px;
 }
 
+.customize-control-header .header-view .close:focus {
+	outline: 1px solid #5b9dd9;
+}
+
 /* Header control: randomiz(s)er */
 
 .customize-control-header .random.placeholder {
@@ -933,6 +1114,16 @@ p.customize-section-description {
 	margin-bottom: 9px;
 }
 
+.customize-control-header .choice:focus {
+	outline: none;
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 3px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 3px 1px rgba(30, 140, 190, .8);
+}
+
 .customize-control-header .uploaded div:last-child > .choice {
 	margin-bottom: 0;
 }
@@ -954,6 +1145,64 @@ p.customize-section-description {
 	float: left;
 }
 
+/* Background position control */
+.customize-control-background_position .background-position-control .button-group {
+	display: block;
+}
+
+/**
+ * Custom CSS Section
+ *
+ * Modifications to the Section Container to make the textarea full-width and
+ * full-height, if the control is the only control in the section.
+ */
+
+#customize-controls .customize-section-description-container.section-meta.customize-info {
+	border-bottom: none;
+}
+
+#sub-accordion-section-custom_css .customize-control-notifications-container {
+	margin-bottom: 15px;
+}
+
+#customize-control-custom_css textarea {
+	display: block;
+	font-family: Consolas, Monaco, monospace;
+	font-size: 12px;
+	padding: 6px 8px;
+	height: 500px;
+	-moz-tab-size: 4;
+	-o-tab-size: 4;
+	tab-size: 4;
+}
+
+.customize-section-description-container + #customize-control-custom_css:last-child textarea {
+	border-left: 0;
+	border-right: 0;
+	height: -webkit-calc( 100vh - 185px );
+	height: calc( 100vh - 185px );
+	resize: none;
+}
+.customize-section-description-container + #customize-control-custom_css:last-child {
+	margin-right: -12px;
+	width: 299px;
+	margin-bottom: -12px;
+}
+
+@media screen and ( max-width: 640px ) {
+	.customize-section-description-container + #customize-control-custom_css:last-child {
+		margin-right: 0;
+		margin-left: 0;
+		width: 100%;
+	}
+	.customize-section-description-container + #customize-control-custom_css:last-child textarea {
+		height: -webkit-calc( 100vh - 140px );
+		height: calc( 100vh - 140px );
+		width: 100%;
+		border: solid 1px #ddd;
+	}
+}
+
 /**
  * Themes
  */
@@ -975,37 +1224,46 @@ p.customize-section-description {
 	animation: customize-reload .75s;
 }
 
-.control-section-themes .accordion-section-title {
+#customize-theme-controls .control-section-themes .accordion-section-title:hover, /* Not a focusable element. */
+#customize-theme-controls .control-section-themes .accordion-section-title {
 	cursor: default;
+	background: #fff;
+	color: #555d66;
+	border-top: 1px solid #ddd;
+	border-bottom: 1px solid #ddd;
+	border-right: none;
+	margin-top: 0;
 }
 
-#customize-theme-controls .control-section-themes .accordion-section-title:hover,
-#customize-theme-controls .control-section-themes .accordion-section-title:focus {
-	color: #555;
-	background-color: #fff;
+#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child:hover, /* Not a focusable element. */
+#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child {
+	border-top: 0;
 }
 
-.control-section-themes .accordion-section-title {
-	margin: 15px 0;
+#customize-theme-controls .control-section-themes > .accordion-section-title:hover, /* Not a focusable element. */
+#customize-theme-controls .control-section-themes > .accordion-section-title {
+	margin: 0 0 15px;
 }
 
-.customize-themes-panel .accordion-section-title {
+#customize-controls .customize-themes-panel .accordion-section-title:hover,
+#customize-controls .customize-themes-panel .accordion-section-title {
 	margin: 15px -8px;
 }
 
-.control-section-themes .accordion-section-title {
+#customize-controls .control-section-themes .accordion-section-title,
+#customize-controls .customize-themes-panel .accordion-section-title {
 	padding-left: 100px; /* Space for the button */
 }
 
-.control-section-themes .accordion-section-title span.customize-action,
+#customize-controls .control-section-themes .accordion-section-title span.customize-action,
 #customize-controls .customize-section-title span.customize-action {
 	font-size: 13px;
 	display: block;
 	font-weight: 400;
 }
 
-.control-section-themes .accordion-section-title .change-theme,
-.control-section-themes .accordion-section-title .customize-theme {
+#customize-controls .control-section-themes .accordion-section-title .change-theme,
+#customize-controls .customize-themes-panel .accordion-section-title .customize-theme {
 	position: absolute;
 	left: 10px;
 	top: 50%;
@@ -1013,12 +1271,11 @@ p.customize-section-description {
 	font-weight: 400;
 }
 
-.control-section-themes .accordion-section-title:before {
+#customize-controls .control-section-themes .accordion-section-title:before {
 	display: none;
 }
 
-.customize-themes-panel {
-	display: none;
+#customize-controls .customize-themes-panel {
 	padding: 0 8px;
 	background: #f1f1f1;
 	-webkit-box-sizing: border-box;
@@ -1026,7 +1283,7 @@ p.customize-section-description {
 	box-sizing: border-box;
 }
 
-.customize-themes-panel .accordion-section-title:first-child {
+#customize-controls .customize-themes-panel .accordion-section-title:first-child {
 	margin-top: 0;
 }
 
@@ -1035,14 +1292,10 @@ p.customize-section-description {
 	font-weight: 600;
 }
 
-.customize-themes-panel > h2 {
+#customize-controls .customize-themes-panel > h2 {
 	padding: 15px 8px 0 8px;
 }
 
-.control-section.open .customize-themes-panel {
-	display: block;
-}
-
 #customize-theme-controls .customize-themes-panel .accordion-section-content {
 	background: transparent;
 	display: block;
@@ -1088,27 +1341,15 @@ p.customize-section-description {
 	width: 100%;
 }
 
-#accordion-section-themes .accordion-section-title:after {
+.control-section-themes .accordion-section-title:after,
+.customize-themes-panel .accordion-section-title:after {
 	display: none;
 }
 
-#customize-theme-controls .control-section-themes.current-panel > h3.accordion-section-title {
-	right: 0;
-}
-
 .customize-themes-panel.control-panel-content {
-	position: absolute;
-	right: -100%;
-	top: 0;
-	width: 100%;
 	border-top: 1px solid #ddd;
 }
 
-.in-themes-panel #customize-info,
-.in-themes-panel #customize-theme-controls > ul > .accordion-section {
-	right: 100%;
-}
-
 /* Details View */
 .wp-customizer .theme-overlay {
 	display: none;
@@ -1142,10 +1383,6 @@ p.customize-section-description {
 	text-align: left; /* Because there's only one action, match the pattern of media modals and right-align the action. */
 }
 
-.modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content {
-	overflow: visible; /* Prevent the top-level Customizer controls from becoming visible when elements on the right of the details modal are focused. */
-}
-
 .ie8 .wp-customizer .theme-overlay .theme-header,
 .ie8 .wp-customizer .theme-overlay .theme-about,
 .ie8 .wp-customizer .theme-overlay .theme-actions {
@@ -1196,7 +1433,7 @@ body.cheatin p {
  * Widgets and Menus common styles
  */
 
-/* higher specificity than .wp-core-ui .button-secondary */
+/* higher specificity than .wp-core-ui .button */
 #customize-theme-controls .add-new-widget,
 #customize-theme-controls .add-new-menu-item {
 	cursor: pointer;
@@ -1219,7 +1456,8 @@ body.cheatin p {
 }
 
 .add-new-widget:before,
-.add-new-menu-item:before {
+.add-new-menu-item:before,
+#available-menu-items .new-content-item .add-content:before {
 	content: "\f132";
 	display: inline-block;
 	position: relative;
@@ -1400,6 +1638,11 @@ body.adding-widget .add-new-widget:before,
 	overflow: auto;
 	bottom: 0;
 	width: 100%;
+	border-top: 1px solid #ddd;
+}
+
+.no-widgets-found #available-widgets-list {
+	border-top: none;
 }
 
 #available-widgets-filter {
@@ -1408,13 +1651,12 @@ body.adding-widget .add-new-widget:before,
 	z-index: 1;
 	width: 300px;
 	background: #eee;
-	border-bottom: 1px solid #e5e5e5;
 }
 
 /* search field container */
 #available-widgets-filter,
 #available-menu-items-search .accordion-section-title {
-	padding: 12px 15px;
+	padding: 13px 15px;
 	-webkit-box-sizing: border-box;
 	-moz-box-sizing: border-box;
 	box-sizing: border-box;
@@ -1422,8 +1664,101 @@ body.adding-widget .add-new-widget:before,
 
 #available-widgets-filter input,
 #available-menu-items-search input {
-	padding: 6px 10px;
 	width: 100%;
+	height: 32px;
+	margin: 1px 0;
+	padding: 6px 30px;
+}
+
+#available-widgets-filter input::-ms-clear,
+#available-menu-items-search input::-ms-clear {
+	display: none; /* remove the "x" in IE, which conflicts with the "x" icon on button.clear-results */
+}
+
+#available-menu-items-search .search-icon,
+#available-widgets-filter .search-icon {
+	display: block;
+	position: absolute;
+	top: 15px; /* 13 container padding +1 input margin +1 input border */
+	right: 16px;
+	width: 30px;
+	height: 30px;
+	line-height: 28px;
+	text-align: center;
+	color: #72777c;
+}
+
+#available-widgets-filter .clear-results,
+#available-menu-items-search .clear-results {
+	position: absolute;
+	top: 15px; /* 13 container padding +1 input margin +1 input border */
+	left: 16px;
+	width: 30px;
+	height: 30px;
+	padding: 0;
+	border: 0;
+	cursor: pointer;
+	background: none;
+	color: #a00;
+	text-decoration: none;
+	outline: 0;
+}
+
+#available-widgets-filter .clear-results,
+#available-menu-items-search .clear-results,
+#available-menu-items-search.loading .clear-results.is-visible {
+	display: none;
+}
+
+#available-widgets-filter .clear-results.is-visible,
+#available-menu-items-search .clear-results.is-visible {
+	display: block;
+}
+
+#available-widgets-filter .clear-results:before,
+#available-menu-items-search .clear-results:before {
+	content: "\f335";
+	font: normal 20px/1 dashicons;
+	vertical-align: middle;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+}
+
+#available-widgets-filter .clear-results:hover,
+#available-widgets-filter .clear-results:focus,
+#available-menu-items-search .clear-results:hover,
+#available-menu-items-search .clear-results:focus {
+	color: #dc3232;
+}
+
+#available-widgets-filter .clear-results:focus,
+#available-menu-items-search .clear-results:focus {
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
+#available-menu-items-search .search-icon:after,
+#available-widgets-filter .search-icon:after {
+	content: "\f179";
+	font: normal 20px/1 dashicons;
+	vertical-align: middle;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+}
+
+.no-widgets-found-message {
+	display: none;
+	margin: 0;
+	padding: 0 15px;
+	line-height: inherit;
+}
+
+.no-widgets-found .no-widgets-found-message {
+	display: block;
 }
 
 #available-widgets .widget-top,
@@ -1441,7 +1776,14 @@ body.adding-widget .add-new-widget:before,
 	position: relative;
 	padding: 20px 60px 20px 15px;
 	background: #fff;
-	border-bottom: 1px solid #e5e5e5;
+	border-bottom: 1px solid #ddd;
+	border-right: 4px solid #fff;
+	-webkit-transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
+	transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
 	cursor: pointer;
 	display: none;
 }
@@ -1517,7 +1859,7 @@ body.adding-widget .add-new-widget:before,
 		background: #eee;
 		border: 0;
 		border-left: 1px solid #ddd;
-		color: #444;
+		color: #555d66;
 		cursor: pointer;
 		-webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
 		transition: color .1s ease-in-out, background .1s ease-in-out;
@@ -1598,7 +1940,7 @@ body.adding-widget .add-new-widget:before,
 		padding: 9px 14px 12px 10px;
 		margin: 0;
 		line-height: 24px;
-		color: #555;
+		color: #555d66;
 		display: block;
 		overflow: hidden;
 		white-space: nowrap;
@@ -1618,12 +1960,15 @@ body.adding-widget .add-new-widget:before,
 	#available-widgets-filter {
 		position: relative;
 		width: 100%;
-		background: #fff;
 		height: auto;
-		padding: 10px 15px;
 	}
 
 	#available-widgets-list {
-		top: 140px;
+		top: 130px;
+	}
+
+	#available-menu-items-search .clear-results,
+	#available-menu-items-search .search-icon {
+		top: 85px; /* 70 section title height + 13 container padding +1 input margin +1 input border */
 	}
 }
diff --git a/wp-admin/css/customize-controls-rtl.min.css b/wp-admin/css/customize-controls-rtl.min.css
index a668fa328..d34a20cc7 100644
--- a/wp-admin/css/customize-controls-rtl.min.css
+++ b/wp-admin/css/customize-controls-rtl.min.css
@@ -1 +1 @@
-body{overflow:hidden;-webkit-text-size-adjust:100%}#customize-controls a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls img{max-width:100%}#customize-controls .submit{text-align:center}#customize-controls .description{color:#555}#customize-header-actions .button-primary{float:left;margin-top:9px}#customize-header-actions .spinner{margin-top:13px;margin-left:4px}.saving #customize-header-actions .spinner{visibility:visible}#customize-header-actions{border-bottom:1px solid #ddd}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}#customize-controls .customize-info{border:none;border-top:1px solid #ddd;border-bottom:1px solid #ddd;margin-bottom:15px}#customize-controls .customize-info .accordion-section-title{background:#fff;color:#555;border-right:none;border-left:none;border-bottom:none;cursor:default}#customize-controls .customize-info .accordion-section-title:focus:after,#customize-controls .customize-info .accordion-section-title:hover:after,#customize-controls .customize-info.open .accordion-section-title:after{color:#333}#customize-controls .customize-info .accordion-section-title:after{display:none}#customize-controls .customize-info .preview-notice{font-size:13px;line-height:24px}#customize-controls .control-section .customize-section-title h3,#customize-controls .control-section h3.customize-section-title,#customize-controls .customize-info .panel-title{font-size:20px;font-weight:200;line-height:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-section-title span.customize-action{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-info .customize-help-toggle{position:absolute;top:4px;left:1px;padding:20px 10px 10px 20px;width:20px;height:20px;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;background:0 0;color:#555;border:none}#customize-controls .customize-info .customize-help-toggle:before{position:absolute;top:5px;right:6px}#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover,#customize-controls .customize-info.open .customize-help-toggle{color:#0073aa}#customize-controls .customize-info .customize-panel-description,#customize-controls .no-widget-areas-rendered-notice{color:#555;display:none;background:#fff;padding:12px 15px;border-top:1px solid #ddd}#customize-controls .customize-info .customize-panel-description.open+.no-widget-areas-rendered-notice{border-top:none}#customize-controls .customize-info .customize-panel-description p:first-child{margin-top:0}#customize-controls .customize-info .customize-panel-description p:last-child{margin-bottom:0}#customize-controls .current-panel .control-section>h3.accordion-section-title{padding-left:30px}#customize-theme-controls .control-section{border:none}#customize-theme-controls .accordion-section-title{color:#555;background-color:#fff;border-bottom:1px solid #eee}#customize-theme-controls .accordion-section-title:after{content:"\f341";color:#a0a5aa}#customize-theme-controls .accordion-section-content{color:#555;background:0 0;position:absolute;top:0;right:100%;width:100%;margin:0;padding:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#customize-controls .control-section .accordion-section-title:focus,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section:hover>.accordion-section-title{color:#23282d;background:#f5f5f5}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f5f5f5}#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#23282d}#customize-theme-controls .control-section.open{border-bottom:1px solid #eee}#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#eee!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#ddd}#customize-theme-controls>ul{margin:0}.customize-section-description-container{margin-bottom:15px}.customize-section-title{margin:-12px -12px 0;border-bottom:1px solid #ddd;background:#fff}div.customize-section-description{margin-top:22px}div.customize-section-description p:first-child{margin-top:0}div.customize-section-description p:last-child{margin-bottom:0}#customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{border-bottom:1px solid #ddd;padding:12px}.ios #customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{padding:12px 12px 13px}.customize-section-title h3,h3.customize-section-title{padding:10px 14px 12px 10px;margin:0;line-height:21px;color:#555}#customize-theme-controls{position:relative;right:0;-webkit-transition:.18s right ease-in-out;transition:.18s right ease-in-out}.ios #customize-theme-controls{-webkit-transition:right 0s;transition:right 0s}.section-open #customize-info,.section-open #customize-theme-controls{right:-100%}.accordion-sub-container.control-panel-content{display:none;position:absolute;right:100%;top:0;width:100%;-webkit-transition:right ease-in-out .18s;transition:right ease-in-out .18s}.ios .accordion-sub-container.control-panel-content{-webkit-transition:right 0s;transition:right 0s}.accordion-sub-container.control-panel-content.animating{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;right:0;width:45px;height:45px;padding:0 0 0 2px;background:#eee;border:none;border-left:1px solid #ddd;color:#444;text-align:right;cursor:pointer;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.customize-panel-back,.customize-section-back{display:block;float:right;width:48px;height:71px;padding:0 0 0 24px;margin:0;background:#fff;border:none;border-left:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;-webkit-transition:right .18s ease-in-out,color .1s ease-in-out,background .1s ease-in-out;transition:right .18s ease-in-out,color .1s ease-in-out,background .1s ease-in-out}.customize-section-back{height:74px}.ios .customize-panel-back,.ios .customize-section-back{-webkit-transition:right 0s;transition:right 0s}.ios .customize-panel-back{display:none}.ios .expanded.in-sub-panel .customize-panel-back{display:block}.panel-meta.customize-info .accordion-section-title{margin-right:48px}#customize-controls .panel-meta.customize-info .accordion-section-title:hover{background:#fff;color:#555}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-panel-back:focus,.customize-panel-back:hover,.customize-section-back:focus,.customize-section-back:hover{color:#23282d;background:#f5f5f5;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-controls-close:before{font:400 22px/45px dashicons;content:"\f335";position:relative;top:1px;right:13px}.customize-panel-back:before,.customize-section-back:before{font:400 20px/72px dashicons;content:"\f345";position:relative;right:13px}.wp-full-overlay-sidebar .wp-full-overlay-header{-webkit-transition:padding ease-in-out .18s;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-right:62px}#customize-info,#customize-theme-controls>ul>.accordion-section{position:relative;right:0;-webkit-transition:right ease-in-out .18s;transition:right ease-in-out .18s}.ios #customize-info,.ios #customize-theme-controls>ul>.accordion-section{-webkit-transition:right 0s;transition:right 0s}.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls>ul>.accordion-section{right:-100%;width:100%}.in-sub-panel #customize-theme-controls .accordion-section.current-panel{width:100%}#customize-theme-controls .control-section.current-panel{padding:0}#customize-theme-controls .control-section>h3.accordion-section-title{position:relative;right:0}#customize-theme-controls .control-section.current-panel>h3.accordion-section-title{right:-354px;-webkit-transition:right ease-in-out .18s;transition:right ease-in-out .18s}.ios #customize-theme-controls .control-section.current-panel>h3.accordion-section-title{-webkit-transition:right 0s;transition:right 0s}.wp-full-overlay.section-open #customize-controls .wp-full-overlay-sidebar-content{visibility:hidden;overflow-y:hidden}.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open{visibility:visible}.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open .accordion-section-content{overflow-y:auto}p.customize-section-description{font-style:normal;margin-top:22px;margin-bottom:0}.customize-control{width:100%;float:right;clear:both;margin-bottom:12px}.customize-control input[type=radio],.customize-control input[type=checkbox],.customize-control select{line-height:28px}.customize-control input[type=tel],.customize-control input[type=url],.customize-control input[type=text],.customize-control input[type=password],.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=search]{width:100%;line-height:18px;margin:0}.customize-control-hidden{margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{min-width:50%;max-width:100%;height:28px;line-height:28px}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:24px;font-weight:600;margin-bottom:4px}.customize-control-description{display:block;font-style:italic;line-height:18px;margin-bottom:5px}.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{line-height:20px;display:block;margin-right:24px;padding-top:6px;padding-bottom:6px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-left:4px;margin-right:-24px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control .attachment-thumb.type-icon{float:right;margin:10px;width:auto}.customize-control .attachment-title{font-weight:600;margin:0;padding:5px 10px}.customize-control .attachment-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0 10px}.customize-control .attachment-meta-title{padding-top:7px}.customize-control .thumbnail-image{line-height:0}.customize-control .thumbnail-image img{cursor:pointer}#customize-controls .thumbnail-audio .thumbnail{max-width:64px;max-height:64px;margin:10px;float:right}#customize-preview iframe{width:100%;height:100%;position:absolute}#customize-preview iframe+iframe{visibility:hidden}.wp-full-overlay-sidebar{background:#eee;border-left:1px solid #ddd}#customize-controls .customize-control-notifications-container{margin:4px 0 8px;padding:0;display:none;cursor:default}#customize-controls .customize-control-widget_form.has-error .widget .widget-top,.customize-control-nav_menu_item.has-error .menu-item-bar .menu-item-handle{-webkit-box-shadow:inset 0 0 0 2px #dc3232;box-shadow:inset 0 0 0 2px #dc3232;-webkit-transition:.15s box-shadow linear;transition:.15s box-shadow linear}.customize-control-notifications-container li.notice{list-style:none;margin:0 0 6px;padding:4px 8px}.customize-control-notifications-container li.notice:last-child{margin-bottom:0}#customize-controls .customize-control-nav_menu_item .customize-control-notifications-container{margin-top:0}#customize-controls .customize-control-widget_form .customize-control-notifications-container,.customize-control .attachment-media-view .actions{margin-top:8px}.customize-control-text.has-error input{outline:#dc3232 solid 2px}.accordion-section .dropdown{float:right;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:right;min-width:30px;height:16px;line-height:16px;margin-left:16px;padding:4px 5px;border:2px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;left:0;width:20px;background:#eee}.customize-control .dropdown-arrow:after{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#32373c}.customize-control .dropdown-status{color:#32373c;background:#eee;display:none;max-width:112px}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex,.customize-control-header button img{display:block}.customize-control-color .dropdown{margin-left:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#555;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}.customize-control-header .current{margin-bottom:8px}.customize-control-header .uploaded{margin-bottom:18px}.customize-control-header .default button:not(.random),.customize-control-header .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control .attachment-media-view .upload-button,.customize-control-header button.new,.customize-control-header button.remove{white-space:normal;width:48%;height:auto}.customize-control .attachment-media-view .thumbnail,.customize-control-header .current .container{overflow:hidden}.customize-control .attachment-media-view .placeholder,.customize-control-header .placeholder{width:100%;position:relative;text-align:center;cursor:default;border:1px dashed #b4b9be;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:9px 0;line-height:20px}.customize-control-header .inner{display:none;position:absolute;width:100%;color:#555;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.customize-control-header .inner,.customize-control-header .inner .dashicons{line-height:20px;top:8px}.customize-control-header .list .inner,.customize-control-header .list .inner .dashicons{top:9px}.customize-control-header .header-view{position:relative;width:100%;margin-bottom:5px}.customize-control-header .header-view:last-child{margin-bottom:0}.customize-control-header .header-view:after{border:0}.customize-control-header .header-view.selected:after{content:'';position:absolute;height:auto;top:0;right:0;bottom:0;left:0;border:4px solid #00a0d2;-webkit-border-radius:2px;border-radius:2px}.customize-control-header .header-view.button.selected{border:0}.customize-control-header .uploaded .header-view .close{font-size:20px;color:#fff;background:#555;background:rgba(0,0,0,.5);position:absolute;top:10px;left:-999px;z-index:1;width:26px;height:26px;cursor:pointer}.customize-control-header .header-view .close:focus,.customize-control-header .header-view:hover .close{left:10px}.customize-control-header .random.placeholder{cursor:pointer;-webkit-border-radius:2px;border-radius:2px;height:40px}.customize-control-header button.random{width:100%;height:auto;min-height:40px;white-space:normal}.customize-control-header button.random .dice{margin-top:4px}.customize-control-header .header-view:hover>button.random .dice,.customize-control-header .placeholder:hover .dice{-webkit-animation:dice-color-change 3s infinite;animation:dice-color-change 3s infinite}@-webkit-keyframes dice-color-change{0%,100%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}}@keyframes dice-color-change{0%,100%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}}.customize-control-header .choice{position:relative;display:block;margin-bottom:9px}.customize-control-header .uploaded div:last-child>.choice{margin-bottom:0}.customize-control .attachment-media-view .thumbnail-image img,.customize-control-header img{max-width:100%}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control-header .remove{float:right;margin-left:3px}.customize-control .attachment-media-view .upload-button,.customize-control-header .new{float:left}@-webkit-keyframes customize-reload{0%{opacity:0}100%{opacity:1}}@keyframes customize-reload{0%{opacity:0}100%{opacity:1}}.wp-customizer .customize-loading #customize-container{display:block;-webkit-animation:customize-reload .75s;animation:customize-reload .75s}.control-section-themes .accordion-section-title{cursor:default;margin:15px 0;padding-left:100px}#customize-theme-controls .control-section-themes .accordion-section-title:focus,#customize-theme-controls .control-section-themes .accordion-section-title:hover{color:#555;background-color:#fff}.customize-themes-panel .accordion-section-title{margin:15px -8px}#customize-controls .customize-section-title span.customize-action,.control-section-themes .accordion-section-title span.customize-action{font-size:13px;display:block;font-weight:400}.control-section-themes .accordion-section-title .change-theme,.control-section-themes .accordion-section-title .customize-theme{position:absolute;left:10px;top:50%;margin-top:-14px;font-weight:400}.control-section-themes .accordion-section-title:before{display:none}.customize-themes-panel{display:none;padding:0 8px;background:#f1f1f1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.customize-themes-panel .accordion-section-title:first-child{margin-top:0}#customize-controls .customize-themes-panel .accordion-section-title:nth-child(2){font-size:14px;font-weight:600}.customize-themes-panel>h2{padding:15px 8px 0}.control-section.open .customize-themes-panel{display:block}#customize-theme-controls .customize-themes-panel .accordion-section-content{background:0 0;display:block}.customize-control.customize-control-theme{margin-bottom:8px}#customize-theme-controls .themes.accordion-section-content{position:relative;right:0;padding:0;width:100%}.wp-customizer .theme-browser .themes{padding-bottom:8px}.wp-customizer .theme-browser .theme{margin:0;width:100%}.wp-customizer .theme-browser .theme .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}#customize-controls h3.theme-name{font-size:15px}#customize-controls .theme-overlay .theme-name{font-size:32px}.wp-customizer #themes-filter{font-size:16px;font-weight:300;line-height:1.5;width:100%}#accordion-section-themes .accordion-section-title:after{display:none}#customize-theme-controls .control-section-themes.current-panel>h3.accordion-section-title{right:0}.customize-themes-panel.control-panel-content{position:absolute;right:-100%;top:0;width:100%;border-top:1px solid #ddd}.in-themes-panel #customize-info,.in-themes-panel #customize-theme-controls>ul>.accordion-section{right:100%}.wp-customizer .theme-overlay{display:none}.wp-customizer.modal-open .theme-overlay{position:fixed;right:0;top:0;left:0;bottom:0;z-index:109}.wp-customizer .theme-overlay .theme-backdrop{background:rgba(238,238,238,.75);position:fixed;z-index:110}.wp-customizer .theme-overlay .theme-wrap{right:90px;left:90px;top:45px;bottom:45px;z-index:120;max-width:1740px}.wp-customizer .theme-overlay .theme-actions{text-align:left}.modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.ie8 .wp-customizer .theme-overlay .theme-about,.ie8 .wp-customizer .theme-overlay .theme-actions,.ie8 .wp-customizer .theme-overlay .theme-header{position:static}@media (max-width:850px),(max-height:472px){.wp-customizer .theme-overlay .theme-wrap{right:0;left:0;top:0;bottom:0}}body.cheatin{font-size:medium;height:auto;background:#fff;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}body.cheatin h1{border-bottom:1px solid #ddd;clear:both;color:#666;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:30px 0 0;padding:0 0 7px}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}#customize-theme-controls .add-new-menu-item,#customize-theme-controls .add-new-widget{cursor:pointer;float:left;margin-right:10px;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.reordering .add-new-menu-item,.reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}.add-new-menu-item:before,.add-new-widget:before{content:"\f132";display:inline-block;position:relative;right:-2px;top:-1px;font:400 20px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reorder-toggle{color:#0073aa;float:left;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:hover{color:#00a0d2}.reorder-toggle:focus{outline:dotted 1px}.reorder,.reordering .reorder-done{display:block;padding:5px 8px}.reorder-done,.reordering .reorder{display:none;color:#0073aa}.reorder-toggle:active .reorder-done,.reorder-toggle:focus .reorder-done,.reorder-toggle:hover .reorder-done{color:#00a0d2}.menu-item-reorder-nav button,.widget-reorder-nav span{position:relative;overflow:hidden;float:right;display:block;width:33px;height:43px;color:#82878c;text-indent:-9999px;cursor:pointer;outline:0}.menu-item-reorder-nav button{width:30px;height:40px;background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none}.menu-item-reorder-nav button:before,.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;font:400 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items .customize-section-title,#available-widgets .customize-section-title,.customize-controls-preview-toggle{display:none}.menu-item-reorder-nav button:focus,.menu-item-reorder-nav button:hover,.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#191e23;background:#eee}.menus-move-down:before,.move-widget-down:before{content:"\f347"}.menus-move-up:before,.move-widget-up:before{content:"\f343"}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down,.move-down-disabled .menus-move-down,.move-left-disabled .menus-move-left,.move-right-disabled .menus-move-right,.move-up-disabled .menus-move-up{color:#d5d5d5;background-color:#fff;cursor:default;pointer-events:none}.wp-full-overlay-main{left:auto;width:100%}.add-menu-toggle.open,.add-menu-toggle.open:hover,.adding-menu-items .add-new-menu-item,.adding-menu-items .add-new-menu-item:hover,body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#929793;color:#32373c;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#accordion-section-add_menu .add-new-menu-item.open:before,.adding-menu-items .add-new-menu-item:before,body.adding-widget .add-new-widget:before{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}#available-menu-items,#available-widgets{position:absolute;top:0;bottom:0;right:-301px;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:300px;margin:0;z-index:4;background:#eee;-webkit-transition:right .18s;transition:right .18s;border-left:1px solid #ddd}#available-widgets-list{top:60px;position:absolute;overflow:auto;bottom:0;width:100%}#available-widgets-filter{position:fixed;top:0;z-index:1;width:300px;background:#eee;border-bottom:1px solid #e5e5e5}#available-menu-items-search .accordion-section-title,#available-widgets-filter{padding:12px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-menu-items-search input,#available-widgets-filter input{padding:6px 10px;width:100%}#available-menu-items .item-top,#available-menu-items .item-top:hover,#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-menu-items .item-tpl,#available-widgets .widget-tpl{position:relative;padding:20px 60px 20px 15px;background:#fff;border-bottom:1px solid #e5e5e5;cursor:pointer;display:none}#available-menu-items .item,#available-widgets .widget{position:static}@media only screen and (max-width:782px){.wp-customizer .theme:not(.active):focus .theme-actions,.wp-customizer .theme:not(.active):hover .theme-actions{display:block}.wp-customizer .theme-browser .theme.active .theme-name span{display:inline}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{margin-right:32px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-right:-32px}.customize-control input[type=radio]+label,.customize-control input[type=checkbox]+label{line-height:32px}}@media screen and (max-width:640px){#customize-controls{width:100%}.wp-full-overlay.collapsed #customize-controls,.wp-full-overlay.expanded{margin-right:0}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{bottom:0}.customize-controls-preview-toggle{display:block;position:absolute;top:0;right:48px;line-height:45px;font-size:14px;padding:0 12px;margin:0;height:45px;background:#eee;border:0;border-left:1px solid #ddd;color:#444;cursor:pointer;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}#customize-footer-actions,#customize-preview,.customize-controls-preview-toggle .controls,.preview-only .customize-controls-preview-toggle .preview,.preview-only .wp-full-overlay-sidebar-content{display:none}.customize-controls-preview-toggle .controls:before,.customize-controls-preview-toggle .preview:before{font:400 20px/1 dashicons;content:"\f177";position:relative;top:4px;margin-left:6px}.customize-controls-preview-toggle .controls:before{content:"\f540"}.preview-only #customize-controls{height:45px}.preview-only #customize-preview,.preview-only .customize-controls-preview-toggle .controls{display:block}#customize-preview{top:45px;bottom:0;height:auto}.wp-core-ui.wp-customizer .button{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#customize-header-actions .button-primary{margin-top:6px}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets{top:46px;right:0;z-index:10;width:100%}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:block;margin:0}#available-menu-items .customize-section-back,#available-widgets .customize-section-back{height:69px}#available-menu-items .customize-section-title h3,#available-widgets .customize-section-title h3{font-size:20px;font-weight:200;padding:9px 14px 12px 10px;margin:0;line-height:24px;color:#555;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-menu-items .customize-section-title .customize-action,#available-widgets .customize-section-title .customize-action{font-size:13px;display:block;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-widgets-filter{position:relative;width:100%;background:#fff;height:auto;padding:10px 15px}#available-widgets-list{top:140px}}
\ No newline at end of file
+#customize-controls .customize-info .customize-section-description,#customize-controls .customize-info.section-meta{margin-bottom:15px}body{overflow:hidden;-webkit-text-size-adjust:100%}.customize-controls-close,.widget-control-actions a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls img{max-width:100%}#customize-controls .submit{text-align:center}#customize-controls .description{color:#555d66}#customize-header-actions .button-primary{float:left;margin-top:9px}#customize-header-actions .spinner{margin-top:13px;margin-left:4px}.saving #customize-header-actions .spinner{visibility:visible}#customize-header-actions{border-bottom:1px solid #ddd}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}#customize-controls .customize-info{border:none;border-bottom:1px solid #ddd;margin-bottom:15px}#customize-controls .customize-info.is-in-view,#customize-controls .customize-section-title.is-in-view{position:absolute;z-index:9;width:100%;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}#customize-controls .customize-section-title.is-in-view{margin-top:0}#customize-controls .customize-info.is-in-view+.accordion-section{margin-top:15px}#customize-controls .customize-info.is-sticky,#customize-controls .customize-section-title.is-sticky{position:fixed;top:46px}#customize-controls .customize-info .accordion-section-title{background:#fff;color:#555d66;border-right:none;border-left:none;border-bottom:none;cursor:default}#customize-controls .customize-info .accordion-section-title:focus:after,#customize-controls .customize-info .accordion-section-title:hover:after,#customize-controls .customize-info.open .accordion-section-title:after{color:#32373c}#customize-controls .customize-info .accordion-section-title:after{display:none}#customize-controls .customize-info .preview-notice{font-size:13px;line-height:24px}#customize-controls .customize-info .panel-title,#customize-controls .customize-pane-child .customize-section-title h3,#customize-controls .customize-pane-child h3.customize-section-title{font-size:20px;font-weight:200;line-height:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-section-title span.customize-action{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-info .customize-help-toggle{position:absolute;top:4px;left:1px;padding:20px 10px 10px 20px;width:20px;height:20px;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;background:0 0;color:#555d66;border:none}#customize-controls .customize-info .customize-help-toggle:before{position:absolute;top:5px;right:6px}#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover,#customize-controls .customize-info.open .customize-help-toggle{color:#0073aa}#customize-controls .customize-info .customize-panel-description,#customize-controls .customize-info .customize-section-description,#customize-controls .no-widget-areas-rendered-notice{color:#555d66;display:none;background:#fff;padding:12px 15px;border-top:1px solid #ddd}#customize-controls .customize-info .customize-panel-description.open+.no-widget-areas-rendered-notice{border-top:none}#customize-controls .customize-info .customize-panel-description p:first-child,#customize-controls .customize-info .customize-section-description p:first-child{margin-top:0}#customize-controls .customize-info .customize-panel-description p:last-child,#customize-controls .customize-info .customize-section-description p:last-child{margin-bottom:0}#customize-controls .current-panel .control-section>h3.accordion-section-title{padding-left:30px}#customize-theme-controls .control-section{border:none}#customize-theme-controls .accordion-section-title{color:#555d66;background-color:#fff;border-bottom:1px solid #ddd;border-right:4px solid #fff;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}#customize-controls #customize-theme-controls .customize-themes-panel .accordion-section-title{color:#555;background-color:#fff;border-right:4px solid #fff}#customize-theme-controls .accordion-section-title:after{content:"\f341";color:#a0a5aa}#customize-theme-controls .accordion-section-content{color:#555d66;background:0 0;position:absolute;top:0;right:100%;width:100%;margin:0;padding:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#customize-controls .control-section .accordion-section-title:focus,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section:hover>.accordion-section-title{color:#0073aa;background:#f3f3f5;border-right-color:#0073aa}#accordion-section-themes+.control-section{border-top:1px solid #ddd}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f3f3f5}#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#0073aa}#customize-theme-controls .control-section.open{border-bottom:1px solid #eee}#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#eee!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#ddd}#customize-theme-controls .control-panel-content .control-section:nth-child(2),#customize-theme-controls .control-panel-nav_menus .control-section:nth-child(3){border-top:1px solid #ddd}#customize-theme-controls>ul{margin:0}#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{width:100%;margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:.18s transform cubic-bezier(.645,.045,.355,1),.18s -webkit-transform cubic-bezier(.645,.045,.355,1);transition:.18s transform cubic-bezier(.645,.045,.355,1),.18s -webkit-transform cubic-bezier(.645,.045,.355,1)}#customize-info,#customize-theme-controls .customize-pane-parent{position:relative;visibility:visible;height:auto;max-height:none;overflow:auto;-webkit-transform:none;-ms-transform:none;transform:none}#customize-theme-controls .customize-pane-child{position:absolute;top:0;right:0;visibility:hidden;height:0;max-height:none;overflow:hidden;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open,#customize-theme-controls .customize-themes-panel.customize-pane-child.current-panel{-webkit-transform:none;-ms-transform:none;transform:none}#customize-theme-controls .customize-themes-panel.customize-pane-child,.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls .customize-pane-parent,.in-sub-panel.section-open #customize-theme-controls .customize-pane-child.current-panel,.in-themes-panel #customize-info,.in-themes-panel #customize-theme-controls .customize-pane-parent,.section-open #customize-info,.section-open #customize-theme-controls .customize-pane-parent{visibility:hidden;height:0;overflow:hidden;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}#customize-theme-controls .customize-pane-child.busy,#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open,.busy.section-open.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel,.in-sub-panel #customize-info.busy,.in-sub-panel #customize-theme-controls .customize-pane-parent.busy,.in-themes-panel #customize-info.busy,.in-themes-panel #customize-theme-controls .customize-pane-parent.busy,.section-open #customize-info.busy,.section-open #customize-theme-controls .customize-pane-parent.busy{visibility:visible;height:auto;overflow:auto}.in-themes-panel #customize-info,.in-themes-panel #customize-theme-controls .customize-pane-parent{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.accordion-section-content,#customize-theme-controls .customize-pane-child.accordion-sub-container{display:block;overflow-x:hidden}#customize-theme-controls .customize-pane-child.accordion-section-content{padding:12px}#customize-theme-controls .customize-pane-child.menu li{position:static}.customize-section-description-container{margin-bottom:15px}.customize-section-title{margin:-12px -12px 0;border-bottom:1px solid #ddd;background:#fff}div.customize-section-description{margin-top:22px}.customize-info div.customize-section-description,div.customize-section-description p:first-child{margin-top:0}div.customize-section-description p:last-child{margin-bottom:0}#customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{border-bottom:1px solid #ddd;padding:12px}.ios #customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{padding:12px 12px 13px}.customize-section-title h3,h3.customize-section-title{padding:10px 14px 12px 10px;margin:0;line-height:21px;color:#555d66}.accordion-sub-container.control-panel-content{display:none;position:absolute;top:0;width:100%}.accordion-sub-container.control-panel-content.busy{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;right:0;width:45px;height:41px;padding:0 0 0 2px;background:#eee;border:none;border-top:4px solid #eee;border-left:1px solid #ddd;color:#444;text-align:right;cursor:pointer;-webkit-transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.customize-panel-back,.customize-section-back{display:block;float:right;width:48px;height:71px;padding:0 0 0 24px;margin:0;background:#fff;border:none;border-left:1px solid #ddd;border-right:4px solid #fff;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;-webkit-transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out}.customize-section-back{height:74px}.ios .customize-panel-back{display:none}.ios .expanded.in-sub-panel .customize-panel-back{display:block}#customize-controls .panel-meta.customize-info .accordion-section-title{margin-right:48px;border-right:none}#customize-controls .cannot-expand:hover .accordion-section-title,#customize-controls .panel-meta.customize-info .accordion-section-title:hover{background:#fff;color:#555d66;border-right-color:#fff}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{background:#fff;color:#0073aa;border-top-color:#0073aa;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-panel-back:focus,.customize-panel-back:hover,.customize-section-back:focus,.customize-section-back:hover{color:#0073aa;background:#f3f3f5;border-right-color:#0073aa;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-controls-close:before{font:400 22px/45px dashicons;content:"\f335";position:relative;top:-3px;right:13px}.customize-panel-back:before,.customize-section-back:before{font:400 20px/72px dashicons;content:"\f345";position:relative;right:9px}.wp-full-overlay-sidebar .wp-full-overlay-header{background-color:#eee;-webkit-transition:padding ease-in-out .18s;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-right:62px}p.customize-section-description{font-style:normal;margin-top:22px;margin-bottom:0}.customize-control{width:100%;float:right;clear:both;margin-bottom:12px}.customize-control input[type=radio],.customize-control input[type=checkbox],.customize-control select{line-height:28px}.customize-control input[type=tel],.customize-control input[type=url],.customize-control input[type=text],.customize-control input[type=password],.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=search]{width:100%;line-height:18px;margin:0}.customize-control-hidden{margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{width:100%;max-width:300px;height:28px;line-height:28px}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:24px;font-weight:600;margin-bottom:4px}.customize-control-description{display:block;font-style:italic;line-height:18px;margin-top:0;margin-bottom:5px}.customize-section-description a.external-link:after{font:16px/11px dashicons;content:"\f310";top:3px;position:relative;padding-right:3px;display:inline-block;text-decoration:none}.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{line-height:20px;display:block;margin-right:24px;padding-top:6px;padding-bottom:6px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-left:4px;margin-right:-24px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control .attachment-thumb.type-icon{float:right;margin:10px;width:auto}.customize-control .attachment-title{font-weight:600;margin:0;padding:5px 10px}.customize-control .attachment-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0 10px}.customize-control .attachment-meta-title{padding-top:7px}.customize-control .thumbnail-image{line-height:0}.customize-control .thumbnail-image img{cursor:pointer}#customize-controls .thumbnail-audio .thumbnail{max-width:64px;max-height:64px;margin:10px;float:right}#available-menu-items .accordion-section-content .new-content-item,.customize-control-dropdown-pages .new-content-item{width:-webkit-calc(100% - 30px);width:calc(100% - 30px);padding:8px 15px;position:absolute;bottom:0;z-index:10;background:#eee;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.customize-control-dropdown-pages .new-content-item{width:100%;max-width:300px;padding:5px 1px 5px 0;position:relative}#available-menu-items .new-content-item .create-item-input,.customize-control-dropdown-pages .new-content-item .create-item-input{-webkit-box-flex:10;-webkit-flex-grow:10;-moz-box-flex:10;-ms-flex-positive:10;-ms-flex:10;flex-grow:10}#available-menu-items .new-content-item .add-content,.customize-control-dropdown-pages .new-content-item .add-content{margin:2px 6px 2px 0;-webkit-box-flex:10;-webkit-flex-grow:10;-moz-box-flex:10;-ms-flex-positive:10;-ms-flex:10;flex-grow:1}.customize-control-dropdown-pages .new-content-item .create-item-input.invalid{border:1px solid red}.customize-control-dropdown-pages .add-new-toggle{margin-right:1px;color:#0073aa;font-weight:600;line-height:28px;text-decoration:underline}.customize-control-dropdown-pages .add-new-toggle:active,.customize-control-dropdown-pages .add-new-toggle:hover{color:#00a0d2}.customize-control-dropdown-pages .add-new-toggle:focus{color:#124964}#customize-preview iframe{width:100%;height:100%;position:absolute}#customize-preview iframe+iframe{visibility:hidden}.wp-full-overlay-sidebar{background:#eee;border-left:1px solid #ddd}#customize-controls .customize-control-notifications-container{margin:4px 0 8px;padding:0;display:none;cursor:default}#customize-controls .customize-control-widget_form.has-error .widget .widget-top,.customize-control-nav_menu_item.has-error .menu-item-bar .menu-item-handle{-webkit-box-shadow:inset 0 0 0 2px #dc3232;box-shadow:inset 0 0 0 2px #dc3232;-webkit-transition:.15s box-shadow linear;transition:.15s box-shadow linear}.customize-control-notifications-container li.notice{list-style:none;margin:0 0 6px;padding:4px 8px}.customize-control-notifications-container li.notice:last-child{margin-bottom:0}#customize-controls .customize-control-nav_menu_item .customize-control-notifications-container{margin-top:0}#customize-controls .customize-control-widget_form .customize-control-notifications-container,.customize-control .attachment-media-view .actions{margin-top:8px}.customize-control-text.has-error input{outline:#dc3232 solid 2px}.accordion-section .dropdown{float:right;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:right;min-width:30px;height:16px;line-height:16px;margin-left:16px;padding:4px 5px;border:2px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;left:0;width:20px;background:#eee}.customize-control .dropdown-arrow:after{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#32373c}.customize-control .dropdown-status{color:#32373c;background:#eee;display:none;max-width:112px}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex,.customize-control-header button img{display:block}.customize-control-color .dropdown{margin-left:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#555d66;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}.customize-control-header .current{margin-bottom:8px}.customize-control-header .actions,.customize-control-header .uploaded{margin-bottom:18px}.customize-control-header .default button:not(.random),.customize-control-header .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control .attachment-media-view .upload-button,.customize-control-header button.new,.customize-control-header button.remove{white-space:normal;width:48%;height:auto}.customize-control .attachment-media-view .thumbnail,.customize-control-header .current .container{overflow:hidden}.customize-control .attachment-media-view .placeholder,.customize-control-header .placeholder{width:100%;position:relative;text-align:center;cursor:default;border:1px dashed #b4b9be;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:9px 0;line-height:20px}.customize-control-header .inner{display:none;position:absolute;width:100%;color:#555d66;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.customize-control-header .inner,.customize-control-header .inner .dashicons{line-height:20px;top:8px}.customize-control-header .list .inner,.customize-control-header .list .inner .dashicons{top:9px}.customize-control-header .header-view{position:relative;width:100%;margin-bottom:5px}.customize-control-header .header-view:last-child{margin-bottom:0}.customize-control-header .header-view:after{border:0}.customize-control-header .header-view.selected .choice:focus{outline:0}.customize-control-header .header-view.selected:after{content:'';position:absolute;height:auto;top:0;right:0;bottom:0;left:0;border:4px solid #00a0d2;-webkit-border-radius:2px;border-radius:2px}.customize-control-header .header-view.button.selected{border:0}.customize-control-header .uploaded .header-view .close{font-size:20px;color:#fff;background:#555d66;background:rgba(0,0,0,.5);position:absolute;top:10px;right:-999px;z-index:1;width:26px;height:26px;cursor:pointer}.customize-control-header .header-view .close:focus,.customize-control-header .header-view:hover .close{right:auto;left:10px}.customize-control-header .header-view .close:focus{outline:#5b9dd9 solid 1px}.customize-control-header .random.placeholder{cursor:pointer;-webkit-border-radius:2px;border-radius:2px;height:40px}.customize-control-header button.random{width:100%;height:auto;min-height:40px;white-space:normal}.customize-control-header button.random .dice{margin-top:4px}.customize-control-header .header-view:hover>button.random .dice,.customize-control-header .placeholder:hover .dice{-webkit-animation:dice-color-change 3s infinite;animation:dice-color-change 3s infinite}@-webkit-keyframes dice-color-change{0%,100%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}}@keyframes dice-color-change{0%,100%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}}.customize-control-header .choice{position:relative;display:block;margin-bottom:9px}.customize-control-header .choice:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 3px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 3px 1px rgba(30,140,190,.8)}.customize-control-header .uploaded div:last-child>.choice{margin-bottom:0}.customize-control .attachment-media-view .thumbnail-image img,.customize-control-header img{max-width:100%}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control-header .remove{float:right;margin-left:3px}.customize-control .attachment-media-view .upload-button,.customize-control-header .new{float:left}.customize-control-background_position .background-position-control .button-group{display:block}#customize-controls .customize-section-description-container.section-meta.customize-info{border-bottom:none}#sub-accordion-section-custom_css .customize-control-notifications-container{margin-bottom:15px}#customize-control-custom_css textarea{display:block;font-family:Consolas,Monaco,monospace;font-size:12px;padding:6px 8px;height:500px;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.customize-section-description-container+#customize-control-custom_css:last-child textarea{border-left:0;border-right:0;height:-webkit-calc(100vh - 185px);height:calc(100vh - 185px);resize:none}.customize-section-description-container+#customize-control-custom_css:last-child{margin-right:-12px;width:299px;margin-bottom:-12px}@media screen and (max-width:640px){.customize-section-description-container+#customize-control-custom_css:last-child{margin-right:0;margin-left:0;width:100%}.customize-section-description-container+#customize-control-custom_css:last-child textarea{height:-webkit-calc(100vh - 140px);height:calc(100vh - 140px);width:100%;border:1px solid #ddd}}@-webkit-keyframes customize-reload{0%{opacity:0}100%{opacity:1}}@keyframes customize-reload{0%{opacity:0}100%{opacity:1}}.wp-customizer .customize-loading #customize-container{display:block;-webkit-animation:customize-reload .75s;animation:customize-reload .75s}#customize-theme-controls .control-section-themes .accordion-section-title,#customize-theme-controls .control-section-themes .accordion-section-title:hover{cursor:default;background:#fff;color:#555d66;border-top:1px solid #ddd;border-bottom:1px solid #ddd;border-right:none;margin-top:0}#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child,#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child:hover{border-top:0}#customize-theme-controls .control-section-themes>.accordion-section-title,#customize-theme-controls .control-section-themes>.accordion-section-title:hover{margin:0 0 15px}#customize-controls .customize-themes-panel .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title:hover{margin:15px -8px}#customize-controls .control-section-themes .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title{padding-left:100px}#customize-controls .control-section-themes .accordion-section-title span.customize-action,#customize-controls .customize-section-title span.customize-action{font-size:13px;display:block;font-weight:400}#customize-controls .control-section-themes .accordion-section-title .change-theme,#customize-controls .customize-themes-panel .accordion-section-title .customize-theme{position:absolute;left:10px;top:50%;margin-top:-14px;font-weight:400}#customize-controls .control-section-themes .accordion-section-title:before{display:none}#customize-controls .customize-themes-panel{padding:0 8px;background:#f1f1f1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#customize-controls .customize-themes-panel .accordion-section-title:first-child{margin-top:0}#customize-controls .customize-themes-panel .accordion-section-title:nth-child(2){font-size:14px;font-weight:600}#customize-controls .customize-themes-panel>h2{padding:15px 8px 0}#customize-theme-controls .customize-themes-panel .accordion-section-content{background:0 0;display:block}.customize-control.customize-control-theme{margin-bottom:8px}#customize-theme-controls .themes.accordion-section-content{position:relative;right:0;padding:0;width:100%}.wp-customizer .theme-browser .themes{padding-bottom:8px}.wp-customizer .theme-browser .theme{margin:0;width:100%}.wp-customizer .theme-browser .theme .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}#customize-controls h3.theme-name{font-size:15px}#customize-controls .theme-overlay .theme-name{font-size:32px}.wp-customizer #themes-filter{font-size:16px;font-weight:300;line-height:1.5;width:100%}.control-section-themes .accordion-section-title:after,.customize-themes-panel .accordion-section-title:after{display:none}.customize-themes-panel.control-panel-content{border-top:1px solid #ddd}.wp-customizer .theme-overlay{display:none}.wp-customizer.modal-open .theme-overlay{position:fixed;right:0;top:0;left:0;bottom:0;z-index:109}.wp-customizer .theme-overlay .theme-backdrop{background:rgba(238,238,238,.75);position:fixed;z-index:110}.wp-customizer .theme-overlay .theme-wrap{right:90px;left:90px;top:45px;bottom:45px;z-index:120;max-width:1740px}.wp-customizer .theme-overlay .theme-actions{text-align:left}.ie8 .wp-customizer .theme-overlay .theme-about,.ie8 .wp-customizer .theme-overlay .theme-actions,.ie8 .wp-customizer .theme-overlay .theme-header{position:static}@media (max-width:850px),(max-height:472px){.wp-customizer .theme-overlay .theme-wrap{right:0;left:0;top:0;bottom:0}}body.cheatin{font-size:medium;height:auto;background:#fff;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}body.cheatin h1{border-bottom:1px solid #ddd;clear:both;color:#666;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:30px 0 0;padding:0 0 7px}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}#customize-theme-controls .add-new-menu-item,#customize-theme-controls .add-new-widget{cursor:pointer;float:left;margin-right:10px;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.reordering .add-new-menu-item,.reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#available-menu-items .new-content-item .add-content:before,.add-new-menu-item:before,.add-new-widget:before{content:"\f132";display:inline-block;position:relative;right:-2px;top:-1px;font:400 20px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reorder-toggle{color:#0073aa;float:left;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:hover{color:#00a0d2}.reorder-toggle:focus{outline:dotted 1px}.reorder,.reordering .reorder-done{display:block;padding:5px 8px}.reorder-done,.reordering .reorder{display:none;color:#0073aa}.reorder-toggle:active .reorder-done,.reorder-toggle:focus .reorder-done,.reorder-toggle:hover .reorder-done{color:#00a0d2}.menu-item-reorder-nav button,.widget-reorder-nav span{position:relative;overflow:hidden;float:right;display:block;width:33px;height:43px;color:#82878c;text-indent:-9999px;cursor:pointer;outline:0}.menu-item-reorder-nav button{width:30px;height:40px;background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none}.menu-item-reorder-nav button:before,.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;font:400 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.menu-item-reorder-nav button:focus,.menu-item-reorder-nav button:hover,.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#191e23;background:#eee}.menus-move-down:before,.move-widget-down:before{content:"\f347"}.menus-move-up:before,.move-widget-up:before{content:"\f343"}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down,.move-down-disabled .menus-move-down,.move-left-disabled .menus-move-left,.move-right-disabled .menus-move-right,.move-up-disabled .menus-move-up{color:#d5d5d5;background-color:#fff;cursor:default;pointer-events:none}.wp-full-overlay-main{left:auto;width:100%}.add-menu-toggle.open,.add-menu-toggle.open:hover,.adding-menu-items .add-new-menu-item,.adding-menu-items .add-new-menu-item:hover,body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#929793;color:#32373c;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#accordion-section-add_menu .add-new-menu-item.open:before,.adding-menu-items .add-new-menu-item:before,body.adding-widget .add-new-widget:before{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}#available-menu-items,#available-widgets{position:absolute;top:0;bottom:0;right:-301px;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:300px;margin:0;z-index:4;background:#eee;-webkit-transition:right .18s;transition:right .18s;border-left:1px solid #ddd}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:none}#available-widgets-list{top:60px;position:absolute;overflow:auto;bottom:0;width:100%;border-top:1px solid #ddd}.no-widgets-found #available-widgets-list{border-top:none}#available-widgets-filter{position:fixed;top:0;z-index:1;width:300px;background:#eee}#available-menu-items-search .accordion-section-title,#available-widgets-filter{padding:13px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-menu-items-search input,#available-widgets-filter input{width:100%;height:32px;margin:1px 0;padding:6px 30px}#available-menu-items-search input::-ms-clear,#available-widgets-filter input::-ms-clear{display:none}#available-menu-items-search .search-icon,#available-widgets-filter .search-icon{display:block;position:absolute;top:15px;right:16px;width:30px;height:30px;line-height:28px;text-align:center;color:#72777c}#available-menu-items-search .clear-results,#available-widgets-filter .clear-results{position:absolute;top:15px;left:16px;width:30px;height:30px;padding:0;border:0;cursor:pointer;background:0 0;color:#a00;text-decoration:none;outline:0}#available-menu-items-search .clear-results,#available-menu-items-search.loading .clear-results.is-visible,#available-widgets-filter .clear-results{display:none}#available-menu-items-search .clear-results.is-visible,#available-widgets-filter .clear-results.is-visible{display:block}#available-menu-items-search .clear-results:before,#available-widgets-filter .clear-results:before{content:"\f335";font:400 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items-search .clear-results:focus,#available-menu-items-search .clear-results:hover,#available-widgets-filter .clear-results:focus,#available-widgets-filter .clear-results:hover{color:#dc3232}#available-menu-items-search .clear-results:focus,#available-widgets-filter .clear-results:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#available-menu-items-search .search-icon:after,#available-widgets-filter .search-icon:after{content:"\f179";font:400 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.no-widgets-found-message{display:none;margin:0;padding:0 15px;line-height:inherit}.no-widgets-found .no-widgets-found-message{display:block}#available-menu-items .item-top,#available-menu-items .item-top:hover,#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-menu-items .item-tpl,#available-widgets .widget-tpl{position:relative;padding:20px 60px 20px 15px;background:#fff;border-bottom:1px solid #ddd;border-right:4px solid #fff;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;cursor:pointer;display:none}#available-menu-items .item,#available-widgets .widget{position:static}.customize-controls-preview-toggle{display:none}@media only screen and (max-width:782px){.wp-customizer .theme:not(.active):focus .theme-actions,.wp-customizer .theme:not(.active):hover .theme-actions{display:block}.wp-customizer .theme-browser .theme.active .theme-name span{display:inline}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{margin-right:32px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-right:-32px}.customize-control input[type=radio]+label,.customize-control input[type=checkbox]+label{line-height:32px}}@media screen and (max-width:640px){#customize-controls{width:100%}.wp-full-overlay.collapsed #customize-controls,.wp-full-overlay.expanded{margin-right:0}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{bottom:0}.customize-controls-preview-toggle{display:block;position:absolute;top:0;right:48px;line-height:45px;font-size:14px;padding:0 12px;margin:0;height:45px;background:#eee;border:0;border-left:1px solid #ddd;color:#555d66;cursor:pointer;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}#customize-footer-actions,#customize-preview,.customize-controls-preview-toggle .controls,.preview-only .customize-controls-preview-toggle .preview,.preview-only .wp-full-overlay-sidebar-content{display:none}.customize-controls-preview-toggle .controls:before,.customize-controls-preview-toggle .preview:before{font:400 20px/1 dashicons;content:"\f177";position:relative;top:4px;margin-left:6px}.customize-controls-preview-toggle .controls:before{content:"\f540"}.preview-only #customize-controls{height:45px}.preview-only #customize-preview,.preview-only .customize-controls-preview-toggle .controls{display:block}#customize-preview{top:45px;bottom:0;height:auto}.wp-core-ui.wp-customizer .button{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#customize-header-actions .button-primary{margin-top:6px}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets{top:46px;right:0;z-index:10;width:100%}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:block;margin:0}#available-menu-items .customize-section-back,#available-widgets .customize-section-back{height:69px}#available-menu-items .customize-section-title h3,#available-widgets .customize-section-title h3{font-size:20px;font-weight:200;padding:9px 14px 12px 10px;margin:0;line-height:24px;color:#555d66;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-menu-items .customize-section-title .customize-action,#available-widgets .customize-section-title .customize-action{font-size:13px;display:block;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-widgets-filter{position:relative;width:100%;height:auto}#available-widgets-list{top:130px}#available-menu-items-search .clear-results,#available-menu-items-search .search-icon{top:85px}}
\ No newline at end of file
diff --git a/wp-admin/css/customize-controls.css b/wp-admin/css/customize-controls.css
index d2eef49a5..716dfbb62 100644
--- a/wp-admin/css/customize-controls.css
+++ b/wp-admin/css/customize-controls.css
@@ -3,7 +3,8 @@ body {
 	-webkit-text-size-adjust: 100%;
 }
 
-#customize-controls a {
+.customize-controls-close,
+.widget-control-actions a {
 	text-decoration: none;
 }
 
@@ -20,7 +21,7 @@ body {
 }
 
 #customize-controls .description {
-	color: #555;
+	color: #555d66;
 }
 
 #customize-header-actions .button-primary {
@@ -48,14 +49,40 @@ body {
 
 #customize-controls .customize-info {
 	border: none;
-	border-top: 1px solid #ddd;
 	border-bottom: 1px solid #ddd;
 	margin-bottom: 15px;
 }
 
+#customize-controls .customize-info.section-meta {
+	margin-bottom: 15px;
+}
+
+#customize-controls .customize-info.is-in-view,
+#customize-controls .customize-section-title.is-in-view {
+	position: absolute;
+	z-index: 9;
+	width: 100%;
+	-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, .1);
+	box-shadow: 0 1px 0 rgba(0, 0, 0, .1);
+}
+
+#customize-controls .customize-section-title.is-in-view {
+	margin-top: 0;
+}
+
+#customize-controls .customize-info.is-in-view + .accordion-section {
+	margin-top: 15px;
+}
+
+#customize-controls .customize-info.is-sticky,
+#customize-controls .customize-section-title.is-sticky {
+	position: fixed;
+	top: 46px;
+}
+
 #customize-controls .customize-info .accordion-section-title {
 	background: #fff;
-	color: #555;
+	color: #555d66;
 	border-left: none;
 	border-right: none;
 	border-bottom: none;
@@ -65,7 +92,7 @@ body {
 #customize-controls .customize-info.open .accordion-section-title:after,
 #customize-controls .customize-info .accordion-section-title:hover:after,
 #customize-controls .customize-info .accordion-section-title:focus:after {
-	color: #333;
+	color: #32373c;
 }
 
 #customize-controls .customize-info .accordion-section-title:after {
@@ -77,8 +104,8 @@ body {
 	line-height: 24px;
 }
 
-#customize-controls .control-section .customize-section-title h3,
-#customize-controls .control-section h3.customize-section-title,
+#customize-controls .customize-pane-child .customize-section-title h3,
+#customize-controls .customize-pane-child h3.customize-section-title,
 #customize-controls .customize-info .panel-title {
 	font-size: 20px;
 	font-weight: 200;
@@ -107,7 +134,7 @@ body {
 	box-shadow: none;
 	-webkit-appearance: none;
 	background: transparent;
-	color: #555;
+	color: #555d66;
 	border: none;
 }
 
@@ -124,22 +151,30 @@ body {
 }
 
 #customize-controls .customize-info .customize-panel-description,
+#customize-controls .customize-info .customize-section-description,
 #customize-controls .no-widget-areas-rendered-notice {
-	color: #555;
+	color: #555d66;
 	display: none;
 	background: #fff;
 	padding: 12px 15px;
 	border-top: 1px solid #ddd;
 }
+
 #customize-controls .customize-info .customize-panel-description.open + .no-widget-areas-rendered-notice {
 	border-top: none;
 }
 
-#customize-controls .customize-info .customize-panel-description p:first-child {
+#customize-controls .customize-info .customize-section-description {
+	margin-bottom: 15px;
+}
+
+#customize-controls .customize-info .customize-panel-description p:first-child,
+#customize-controls .customize-info .customize-section-description p:first-child {
 	margin-top: 0;
 }
 
-#customize-controls .customize-info .customize-panel-description p:last-child {
+#customize-controls .customize-info .customize-panel-description p:last-child,
+#customize-controls .customize-info .customize-section-description p:last-child {
 	margin-bottom: 0;
 }
 
@@ -152,9 +187,22 @@ body {
 }
 
 #customize-theme-controls .accordion-section-title {
+	color: #555d66;
+	background-color: #fff;
+	border-bottom: 1px solid #ddd;
+	border-left: 4px solid #fff;
+	-webkit-transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
+	transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
+}
+
+#customize-controls #customize-theme-controls .customize-themes-panel .accordion-section-title {
 	color: #555;
 	background-color: #fff;
-	border-bottom: 1px solid #eee;
+	border-left: 4px solid #fff;
 }
 
 #customize-theme-controls .accordion-section-title:after {
@@ -163,7 +211,7 @@ body {
 }
 
 #customize-theme-controls .accordion-section-content {
-	color: #555;
+	color: #555d66;
 	background: transparent;
 }
 
@@ -171,22 +219,27 @@ body {
 #customize-controls .control-section .accordion-section-title:hover,
 #customize-controls .control-section.open .accordion-section-title,
 #customize-controls .control-section .accordion-section-title:focus {
-	color: #23282d;
-	background: #f5f5f5;
+	color: #0073aa;
+	background: #f3f3f5;
+	border-left-color: #0073aa;
+}
+
+#accordion-section-themes + .control-section {
+	border-top: 1px solid #ddd;
 }
 
 .js .control-section:hover .accordion-section-title,
 .js .control-section .accordion-section-title:hover,
 .js .control-section.open .accordion-section-title,
 .js .control-section .accordion-section-title:focus {
-	background: #f5f5f5;
+	background: #f3f3f5;
 }
 
 #customize-theme-controls .control-section:hover > .accordion-section-title:after,
 #customize-theme-controls .control-section .accordion-section-title:hover:after,
 #customize-theme-controls .control-section.open .accordion-section-title:after,
 #customize-theme-controls .control-section .accordion-section-title:focus:after {
-	color: #23282d;
+	color: #0073aa;
 }
 
 #customize-theme-controls .control-section.open {
@@ -202,6 +255,11 @@ body {
 	border-bottom-color: #ddd;
 }
 
+#customize-theme-controls .control-panel-content .control-section:nth-child(2),
+#customize-theme-controls .control-panel-nav_menus .control-section:nth-child(3) {
+	border-top: 1px solid #ddd;
+}
+
 #customize-theme-controls > ul {
 	margin: 0;
 }
@@ -218,6 +276,109 @@ body {
 	box-sizing: border-box;
 }
 
+#customize-info,
+#customize-theme-controls .customize-pane-parent,
+#customize-theme-controls .customize-pane-child {
+	overflow: visible;
+	width: 100%;
+	margin: 0;
+	padding: 0;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	-webkit-transition: 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	transition: 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	-webkit-transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	-webkit-transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1), 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1);
+	transition: 0.18s transform cubic-bezier(0.645, 0.045, 0.355, 1), 0.18s -webkit-transform cubic-bezier(0.645, 0.045, 0.355, 1); /* easeInOutCubic */
+}
+
+#customize-info,
+#customize-theme-controls .customize-pane-parent {
+	position: relative;
+	visibility: visible;
+	height: auto;
+	max-height: none;
+	overflow: auto;
+	-webkit-transform: none;
+	-ms-transform: none;
+	transform: none;
+}
+
+#customize-theme-controls .customize-pane-child {
+	position: absolute;
+	top: 0;
+	left: 0;
+	visibility: hidden;
+	height: 0;
+	max-height: none;
+	overflow: hidden;
+	-webkit-transform: translateX(100%);
+	-ms-transform: translateX(100%);
+	transform: translateX(100%);
+}
+
+#customize-theme-controls .customize-pane-child.open,
+#customize-theme-controls .customize-pane-child.current-panel,
+#customize-theme-controls .customize-themes-panel.customize-pane-child.current-panel {
+	-webkit-transform: none;
+	-ms-transform: none;
+	transform: none;
+}
+
+#customize-theme-controls .customize-themes-panel.customize-pane-child,
+.section-open #customize-theme-controls .customize-pane-parent,
+.in-sub-panel #customize-theme-controls .customize-pane-parent,
+.section-open #customize-info,
+.in-sub-panel #customize-info,
+.in-sub-panel.section-open #customize-theme-controls .customize-pane-child.current-panel,
+.in-themes-panel #customize-theme-controls .customize-pane-parent,
+.in-themes-panel #customize-info {
+	visibility: hidden;
+	height: 0;
+	overflow: hidden;
+	-webkit-transform: translateX(-100%);
+	-ms-transform: translateX(-100%);
+	transform: translateX(-100%);
+}
+
+.section-open #customize-theme-controls .customize-pane-parent.busy,
+.in-sub-panel #customize-theme-controls .customize-pane-parent.busy,
+.in-themes-panel #customize-theme-controls .customize-pane-parent.busy,
+.section-open #customize-info.busy,
+.in-sub-panel #customize-info.busy,
+.in-themes-panel #customize-info.busy,
+.busy.section-open.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel,
+#customize-theme-controls .customize-pane-child.open,
+#customize-theme-controls .customize-pane-child.current-panel,
+#customize-theme-controls .customize-pane-child.busy {
+	visibility: visible;
+	height: auto;
+	overflow: auto;
+}
+
+.in-themes-panel #customize-theme-controls .customize-pane-parent,
+.in-themes-panel #customize-info {
+	-webkit-transform: translateX(100%);
+	-ms-transform: translateX(100%);
+	transform: translateX(100%);
+}
+
+#customize-theme-controls .customize-pane-child.accordion-section-content,
+#customize-theme-controls .customize-pane-child.accordion-sub-container {
+	display: block;
+	overflow-x: hidden;
+}
+
+#customize-theme-controls .customize-pane-child.accordion-section-content {
+	padding: 12px;
+}
+
+#customize-theme-controls .customize-pane-child.menu li {
+	position: static;
+}
+
 .customize-section-description-container {
 	margin-bottom: 15px;
 }
@@ -232,6 +393,10 @@ div.customize-section-description {
 	margin-top: 22px;
 }
 
+.customize-info div.customize-section-description {
+	margin-top: 0;
+}
+
 div.customize-section-description p:first-child {
 	margin-top: 0;
 }
@@ -254,42 +419,17 @@ h3.customize-section-title {
 	padding: 10px 10px 12px 14px;
 	margin: 0;
 	line-height: 21px;
-	color: #555;
-}
-
-#customize-theme-controls {
-	position: relative;
-	left: 0;
-	-webkit-transition: .18s left ease-in-out;
-	transition: .18s left ease-in-out;
-}
-
-.ios #customize-theme-controls {
-	-webkit-transition: left 0s;
-	transition: left 0s;
-}
-
-.section-open #customize-info,
-.section-open #customize-theme-controls {
-	left: -100%;
+	color: #555d66;
 }
 
 .accordion-sub-container.control-panel-content {
 	display: none;
 	position: absolute;
-	left: 100%;
 	top: 0;
 	width: 100%;
-	-webkit-transition: left ease-in-out .18s;
-	transition: left ease-in-out .18s;
-}
-
-.ios .accordion-sub-container.control-panel-content {
-	-webkit-transition: left 0s;
-	transition: left 0s;
 }
 
-.accordion-sub-container.control-panel-content.animating {
+.accordion-sub-container.control-panel-content.busy {
 	display: block;
 }
 
@@ -303,16 +443,21 @@ h3.customize-section-title {
 	top: 0;
 	left: 0;
 	width: 45px;
-	height: 45px;
+	height: 41px;
 	padding: 0 2px 0 0;
 	background: #eee;
 	border: none;
+	border-top: 4px solid #eee;
 	border-right: 1px solid #ddd;
 	color: #444;
 	text-align: left;
 	cursor: pointer;
-	-webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
-	transition: color .1s ease-in-out, background .1s ease-in-out;
+	-webkit-transition: color .15s ease-in-out,
+	            border-color .15s ease-in-out,
+	            background .15s ease-in-out;
+	transition: color .15s ease-in-out,
+	            border-color .15s ease-in-out,
+	            background .15s ease-in-out;
 	-webkit-box-sizing: content-box;
 	-moz-box-sizing: content-box;
 	box-sizing: content-box;
@@ -329,23 +474,22 @@ h3.customize-section-title {
 	background: #fff;
 	border: none;
 	border-right: 1px solid #ddd;
+	border-left: 4px solid #fff;
 	-webkit-box-shadow: none;
 	box-shadow: none;
 	cursor: pointer;
-	-webkit-transition: left .18s ease-in-out, color .1s ease-in-out, background .1s ease-in-out;
-	transition: left .18s ease-in-out, color .1s ease-in-out, background .1s ease-in-out;
+	-webkit-transition: color .15s ease-in-out,
+	            border-color .15s ease-in-out,
+	            background .15s ease-in-out;
+	transition: color .15s ease-in-out,
+	            border-color .15s ease-in-out,
+	            background .15s ease-in-out;
 }
 
 .customize-section-back {
 	height: 74px;
 }
 
-.ios .customize-panel-back,
-.ios .customize-section-back {
-	-webkit-transition: left 0s;
-	transition: left 0s;
-}
-
 .ios .customize-panel-back {
 	display: none;
 }
@@ -354,33 +498,38 @@ h3.customize-section-title {
 	display: block;
 }
 
-.panel-meta.customize-info .accordion-section-title {
+#customize-controls .panel-meta.customize-info .accordion-section-title {
 	margin-left: 48px;
+	border-left: none;
 }
 
-#customize-controls .panel-meta.customize-info .accordion-section-title:hover {
+#customize-controls .panel-meta.customize-info .accordion-section-title:hover,
+#customize-controls .cannot-expand:hover .accordion-section-title {
 	background: #fff;
-	color: #555;
+	color: #555d66;
+	border-left-color: #fff;
 }
 
 .customize-controls-close:focus,
 .customize-controls-close:hover,
 .customize-controls-preview-toggle:focus,
 .customize-controls-preview-toggle:hover {
-	background: #ddd;
-	border-color: #ccc;
-	color: #000;
+	background: #fff;
+	color: #0073aa;
+	border-top-color: #0073aa;
 	outline: none;
 	-webkit-box-shadow: none;
 	box-shadow: none;
 }
 
+
 .customize-panel-back:hover,
 .customize-panel-back:focus,
 .customize-section-back:hover,
 .customize-section-back:focus {
-	color: #23282d;
-	background: #f5f5f5;
+	color: #0073aa;
+	background: #f3f3f5;
+	border-left-color: #0073aa;
 	outline: none;
 	-webkit-box-shadow: none;
 	box-shadow: none;
@@ -390,7 +539,7 @@ h3.customize-section-title {
 	font: normal 22px/45px dashicons;
 	content: "\f335";
 	position: relative;
-	top: 1px;
+	top: -3px;
 	left: 13px;
 }
 
@@ -399,10 +548,11 @@ h3.customize-section-title {
 	font: normal 20px/72px dashicons;
 	content: "\f341";
 	position: relative;
-	left: 13px;
+	left: 9px;
 }
 
 .wp-full-overlay-sidebar .wp-full-overlay-header {
+	background-color: #eee;
 	-webkit-transition: padding ease-in-out .18s;
 	transition: padding ease-in-out .18s;
 }
@@ -411,63 +561,6 @@ h3.customize-section-title {
 	padding-left: 62px;
 }
 
-#customize-info,
-#customize-theme-controls > ul > .accordion-section {
-	position: relative;
-	left: 0;
-	-webkit-transition: left ease-in-out .18s;
-	transition: left ease-in-out .18s;
-}
-
-.ios #customize-info,
-.ios #customize-theme-controls > ul > .accordion-section {
-	-webkit-transition: left 0s;
-	transition: left 0s;
-}
-
-.in-sub-panel #customize-info,
-.in-sub-panel #customize-theme-controls > ul > .accordion-section {
-	left: -100%;
-	width: 100%;
-}
-
-.in-sub-panel #customize-theme-controls .accordion-section.current-panel {
-	width: 100%;
-}
-
-#customize-theme-controls .control-section.current-panel {
-	padding: 0;
-}
-
-#customize-theme-controls .control-section > h3.accordion-section-title {
-	position: relative;
-	left: 0;
-}
-
-#customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
-	left: -354px;
-	-webkit-transition: left ease-in-out .18s;
-	transition: left ease-in-out .18s;
-}
-
-.ios #customize-theme-controls .control-section.current-panel > h3.accordion-section-title {
-	-webkit-transition: left 0s;
-	transition: left 0s;
-}
-
-.wp-full-overlay.section-open #customize-controls .wp-full-overlay-sidebar-content {
-	visibility: hidden;
-	overflow-y: hidden;
-}
-
-.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open {
-	visibility: visible;
-}
-
-.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open .accordion-section-content {
-	overflow-y: auto;
-}
-
 p.customize-section-description {
 	font-style: normal;
 	margin-top: 22px;
@@ -509,8 +602,8 @@ p.customize-section-description {
 }
 
 .customize-control select {
-	min-width: 50%;
-	max-width: 100%;
+	width: 100%;
+	max-width: 300px;
 	height: 28px;
 	line-height: 28px;
 }
@@ -531,9 +624,20 @@ p.customize-section-description {
 	display: block;
 	font-style: italic;
 	line-height: 18px;
+	margin-top: 0;
 	margin-bottom: 5px;
 }
 
+.customize-section-description a.external-link:after {
+	font: 16px/11px dashicons;
+	content: "\f310";
+	top: 3px;
+	position: relative;
+	padding-left: 3px;
+	display: inline-block;
+	text-decoration: none;
+}
+
 .customize-control-color .color-picker,
 .customize-control-upload div {
 	line-height: 28px;
@@ -608,6 +712,71 @@ p.customize-section-description {
 	float: left;
 }
 
+#available-menu-items .accordion-section-content .new-content-item,
+.customize-control-dropdown-pages .new-content-item {
+	width: -webkit-calc(100% - 30px);
+	width: calc(100% - 30px);
+	padding: 8px 15px;
+	position: absolute;
+	bottom: 0;
+	z-index: 10;
+	background: #eee;
+	display: -webkit-box;
+	display: -moz-box;
+	display: -ms-flexbox;
+	display: -webkit-flex;
+	display: flex;
+}
+
+.customize-control-dropdown-pages .new-content-item {
+	width: 100%;
+	max-width: 300px;
+	padding: 5px 0 5px 1px;
+	position: relative;
+}
+
+#available-menu-items .new-content-item .create-item-input,
+.customize-control-dropdown-pages .new-content-item .create-item-input {
+	-webkit-box-flex: 10;
+	-webkit-flex-grow: 10;
+	-moz-box-flex: 10;
+	-ms-flex-positive: 10;
+	-ms-flex: 10;
+	flex-grow: 10;
+}
+
+#available-menu-items .new-content-item .add-content,
+.customize-control-dropdown-pages .new-content-item .add-content {
+	margin: 2px 0 2px 6px;
+	-webkit-box-flex: 10;
+	-webkit-flex-grow: 10;
+	-moz-box-flex: 10;
+	-ms-flex-positive: 10;
+	-ms-flex: 10;
+	flex-grow: 1;
+}
+
+.customize-control-dropdown-pages .new-content-item .create-item-input.invalid {
+	border: 1px solid #f00;
+}
+
+.customize-control-dropdown-pages .add-new-toggle {
+	margin-left: 1px;
+	color: #0073aa;
+	font-weight: 600;
+	line-height: 28px;
+	text-decoration: underline;
+}
+
+.customize-control-dropdown-pages .add-new-toggle:hover,
+.customize-control-dropdown-pages .add-new-toggle:active {
+	color: #00a0d2;
+}
+
+.customize-control-dropdown-pages .add-new-toggle:focus {
+	color: #124964;
+}
+
 #customize-preview iframe {
 	width: 100%;
 	height: 100%;
@@ -739,7 +908,7 @@ p.customize-section-description {
 }
 
 .customize-control-color .dropdown .dropdown-content {
-	background-color: #555;
+	background-color: #555d66;
 	border: 1px solid rgba(0, 0, 0, 0.15);
 }
 
@@ -770,6 +939,7 @@ p.customize-section-description {
 	margin-bottom: 8px;
 }
 
+.customize-control-header .actions,
 .customize-control-header .uploaded {
 	margin-bottom: 18px;
 }
@@ -822,7 +992,7 @@ p.customize-section-description {
 	display: none;
 	position: absolute;
 	width: 100%;
-	color: #555;
+	color: #555d66;
 	white-space: nowrap;
 	text-overflow: ellipsis;
 	overflow: hidden;
@@ -853,6 +1023,11 @@ p.customize-section-description {
 .customize-control-header .header-view:after {
 	border: 0;
 }
+
+.customize-control-header .header-view.selected .choice:focus {
+	outline: none;
+}
+
 .customize-control-header .header-view.selected:after {
 	content: '';
 	position: absolute;
@@ -862,6 +1037,7 @@ p.customize-section-description {
 	-webkit-border-radius: 2px;
 	border-radius: 2px;
 }
+
 .customize-control-header .header-view.button.selected {
 	border: 0;
 }
@@ -871,11 +1047,11 @@ p.customize-section-description {
 .customize-control-header .uploaded .header-view .close {
 	font-size: 20px;
 	color: #fff;
-	background: #555;
+	background: #555d66;
 	background: rgba(0, 0, 0, 0.5);
 	position: absolute;
 	top: 10px;
-	right: -999px;
+	left: -999px;
 	z-index: 1;
 	width: 26px;
 	height: 26px;
@@ -884,9 +1060,14 @@ p.customize-section-description {
 
 .customize-control-header .header-view:hover .close,
 .customize-control-header .header-view .close:focus {
+	left: auto;
 	right: 10px;
 }
 
+.customize-control-header .header-view .close:focus {
+	outline: 1px solid #5b9dd9;
+}
+
 /* Header control: randomiz(s)er */
 
 .customize-control-header .random.placeholder {
@@ -933,6 +1114,16 @@ p.customize-section-description {
 	margin-bottom: 9px;
 }
 
+.customize-control-header .choice:focus {
+	outline: none;
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 3px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 3px 1px rgba(30, 140, 190, .8);
+}
+
 .customize-control-header .uploaded div:last-child > .choice {
 	margin-bottom: 0;
 }
@@ -954,6 +1145,64 @@ p.customize-section-description {
 	float: right;
 }
 
+/* Background position control */
+.customize-control-background_position .background-position-control .button-group {
+	display: block;
+}
+
+/**
+ * Custom CSS Section
+ *
+ * Modifications to the Section Container to make the textarea full-width and
+ * full-height, if the control is the only control in the section.
+ */
+
+#customize-controls .customize-section-description-container.section-meta.customize-info {
+	border-bottom: none;
+}
+
+#sub-accordion-section-custom_css .customize-control-notifications-container {
+	margin-bottom: 15px;
+}
+
+#customize-control-custom_css textarea {
+	display: block;
+	font-family: Consolas, Monaco, monospace;
+	font-size: 12px;
+	padding: 6px 8px;
+	height: 500px;
+	-moz-tab-size: 4;
+	-o-tab-size: 4;
+	tab-size: 4;
+}
+
+.customize-section-description-container + #customize-control-custom_css:last-child textarea {
+	border-right: 0;
+	border-left: 0;
+	height: -webkit-calc( 100vh - 185px );
+	height: calc( 100vh - 185px );
+	resize: none;
+}
+.customize-section-description-container + #customize-control-custom_css:last-child {
+	margin-left: -12px;
+	width: 299px;
+	margin-bottom: -12px;
+}
+
+@media screen and ( max-width: 640px ) {
+	.customize-section-description-container + #customize-control-custom_css:last-child {
+		margin-left: 0;
+		margin-right: 0;
+		width: 100%;
+	}
+	.customize-section-description-container + #customize-control-custom_css:last-child textarea {
+		height: -webkit-calc( 100vh - 140px );
+		height: calc( 100vh - 140px );
+		width: 100%;
+		border: solid 1px #ddd;
+	}
+}
+
 /**
  * Themes
  */
@@ -975,37 +1224,46 @@ p.customize-section-description {
 	animation: customize-reload .75s;
 }
 
-.control-section-themes .accordion-section-title {
+#customize-theme-controls .control-section-themes .accordion-section-title:hover, /* Not a focusable element. */
+#customize-theme-controls .control-section-themes .accordion-section-title {
 	cursor: default;
+	background: #fff;
+	color: #555d66;
+	border-top: 1px solid #ddd;
+	border-bottom: 1px solid #ddd;
+	border-left: none;
+	margin-top: 0;
 }
 
-#customize-theme-controls .control-section-themes .accordion-section-title:hover,
-#customize-theme-controls .control-section-themes .accordion-section-title:focus {
-	color: #555;
-	background-color: #fff;
+#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child:hover, /* Not a focusable element. */
+#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child {
+	border-top: 0;
 }
 
-.control-section-themes .accordion-section-title {
-	margin: 15px 0;
+#customize-theme-controls .control-section-themes > .accordion-section-title:hover, /* Not a focusable element. */
+#customize-theme-controls .control-section-themes > .accordion-section-title {
+	margin: 0 0 15px;
 }
 
-.customize-themes-panel .accordion-section-title {
+#customize-controls .customize-themes-panel .accordion-section-title:hover,
+#customize-controls .customize-themes-panel .accordion-section-title {
 	margin: 15px -8px;
 }
 
-.control-section-themes .accordion-section-title {
+#customize-controls .control-section-themes .accordion-section-title,
+#customize-controls .customize-themes-panel .accordion-section-title {
 	padding-right: 100px; /* Space for the button */
 }
 
-.control-section-themes .accordion-section-title span.customize-action,
+#customize-controls .control-section-themes .accordion-section-title span.customize-action,
 #customize-controls .customize-section-title span.customize-action {
 	font-size: 13px;
 	display: block;
 	font-weight: 400;
 }
 
-.control-section-themes .accordion-section-title .change-theme,
-.control-section-themes .accordion-section-title .customize-theme {
+#customize-controls .control-section-themes .accordion-section-title .change-theme,
+#customize-controls .customize-themes-panel .accordion-section-title .customize-theme {
 	position: absolute;
 	right: 10px;
 	top: 50%;
@@ -1013,12 +1271,11 @@ p.customize-section-description {
 	font-weight: 400;
 }
 
-.control-section-themes .accordion-section-title:before {
+#customize-controls .control-section-themes .accordion-section-title:before {
 	display: none;
 }
 
-.customize-themes-panel {
-	display: none;
+#customize-controls .customize-themes-panel {
 	padding: 0 8px;
 	background: #f1f1f1;
 	-webkit-box-sizing: border-box;
@@ -1026,7 +1283,7 @@ p.customize-section-description {
 	box-sizing: border-box;
 }
 
-.customize-themes-panel .accordion-section-title:first-child {
+#customize-controls .customize-themes-panel .accordion-section-title:first-child {
 	margin-top: 0;
 }
 
@@ -1035,14 +1292,10 @@ p.customize-section-description {
 	font-weight: 600;
 }
 
-.customize-themes-panel > h2 {
+#customize-controls .customize-themes-panel > h2 {
 	padding: 15px 8px 0 8px;
 }
 
-.control-section.open .customize-themes-panel {
-	display: block;
-}
-
 #customize-theme-controls .customize-themes-panel .accordion-section-content {
 	background: transparent;
 	display: block;
@@ -1088,27 +1341,15 @@ p.customize-section-description {
 	width: 100%;
 }
 
-#accordion-section-themes .accordion-section-title:after {
+.control-section-themes .accordion-section-title:after,
+.customize-themes-panel .accordion-section-title:after {
 	display: none;
 }
 
-#customize-theme-controls .control-section-themes.current-panel > h3.accordion-section-title {
-	left: 0;
-}
-
 .customize-themes-panel.control-panel-content {
-	position: absolute;
-	left: -100%;
-	top: 0;
-	width: 100%;
 	border-top: 1px solid #ddd;
 }
 
-.in-themes-panel #customize-info,
-.in-themes-panel #customize-theme-controls > ul > .accordion-section {
-	left: 100%;
-}
-
 /* Details View */
 .wp-customizer .theme-overlay {
 	display: none;
@@ -1142,10 +1383,6 @@ p.customize-section-description {
 	text-align: right; /* Because there's only one action, match the pattern of media modals and right-align the action. */
 }
 
-.modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content {
-	overflow: visible; /* Prevent the top-level Customizer controls from becoming visible when elements on the right of the details modal are focused. */
-}
-
 .ie8 .wp-customizer .theme-overlay .theme-header,
 .ie8 .wp-customizer .theme-overlay .theme-about,
 .ie8 .wp-customizer .theme-overlay .theme-actions {
@@ -1196,7 +1433,7 @@ body.cheatin p {
  * Widgets and Menus common styles
  */
 
-/* higher specificity than .wp-core-ui .button-secondary */
+/* higher specificity than .wp-core-ui .button */
 #customize-theme-controls .add-new-widget,
 #customize-theme-controls .add-new-menu-item {
 	cursor: pointer;
@@ -1219,7 +1456,8 @@ body.cheatin p {
 }
 
 .add-new-widget:before,
-.add-new-menu-item:before {
+.add-new-menu-item:before,
+#available-menu-items .new-content-item .add-content:before {
 	content: "\f132";
 	display: inline-block;
 	position: relative;
@@ -1400,6 +1638,11 @@ body.adding-widget .add-new-widget:before,
 	overflow: auto;
 	bottom: 0;
 	width: 100%;
+	border-top: 1px solid #ddd;
+}
+
+.no-widgets-found #available-widgets-list {
+	border-top: none;
 }
 
 #available-widgets-filter {
@@ -1408,13 +1651,12 @@ body.adding-widget .add-new-widget:before,
 	z-index: 1;
 	width: 300px;
 	background: #eee;
-	border-bottom: 1px solid #e5e5e5;
 }
 
 /* search field container */
 #available-widgets-filter,
 #available-menu-items-search .accordion-section-title {
-	padding: 12px 15px;
+	padding: 13px 15px;
 	-webkit-box-sizing: border-box;
 	-moz-box-sizing: border-box;
 	box-sizing: border-box;
@@ -1422,8 +1664,101 @@ body.adding-widget .add-new-widget:before,
 
 #available-widgets-filter input,
 #available-menu-items-search input {
-	padding: 6px 10px;
 	width: 100%;
+	height: 32px;
+	margin: 1px 0;
+	padding: 6px 30px;
+}
+
+#available-widgets-filter input::-ms-clear,
+#available-menu-items-search input::-ms-clear {
+	display: none; /* remove the "x" in IE, which conflicts with the "x" icon on button.clear-results */
+}
+
+#available-menu-items-search .search-icon,
+#available-widgets-filter .search-icon {
+	display: block;
+	position: absolute;
+	top: 15px; /* 13 container padding +1 input margin +1 input border */
+	left: 16px;
+	width: 30px;
+	height: 30px;
+	line-height: 28px;
+	text-align: center;
+	color: #72777c;
+}
+
+#available-widgets-filter .clear-results,
+#available-menu-items-search .clear-results {
+	position: absolute;
+	top: 15px; /* 13 container padding +1 input margin +1 input border */
+	right: 16px;
+	width: 30px;
+	height: 30px;
+	padding: 0;
+	border: 0;
+	cursor: pointer;
+	background: none;
+	color: #a00;
+	text-decoration: none;
+	outline: 0;
+}
+
+#available-widgets-filter .clear-results,
+#available-menu-items-search .clear-results,
+#available-menu-items-search.loading .clear-results.is-visible {
+	display: none;
+}
+
+#available-widgets-filter .clear-results.is-visible,
+#available-menu-items-search .clear-results.is-visible {
+	display: block;
+}
+
+#available-widgets-filter .clear-results:before,
+#available-menu-items-search .clear-results:before {
+	content: "\f335";
+	font: normal 20px/1 dashicons;
+	vertical-align: middle;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+}
+
+#available-widgets-filter .clear-results:hover,
+#available-widgets-filter .clear-results:focus,
+#available-menu-items-search .clear-results:hover,
+#available-menu-items-search .clear-results:focus {
+	color: #dc3232;
+}
+
+#available-widgets-filter .clear-results:focus,
+#available-menu-items-search .clear-results:focus {
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
+#available-menu-items-search .search-icon:after,
+#available-widgets-filter .search-icon:after {
+	content: "\f179";
+	font: normal 20px/1 dashicons;
+	vertical-align: middle;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+}
+
+.no-widgets-found-message {
+	display: none;
+	margin: 0;
+	padding: 0 15px;
+	line-height: inherit;
+}
+
+.no-widgets-found .no-widgets-found-message {
+	display: block;
 }
 
 #available-widgets .widget-top,
@@ -1441,7 +1776,14 @@ body.adding-widget .add-new-widget:before,
 	position: relative;
 	padding: 20px 15px 20px 60px;
 	background: #fff;
-	border-bottom: 1px solid #e5e5e5;
+	border-bottom: 1px solid #ddd;
+	border-left: 4px solid #fff;
+	-webkit-transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
+	transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
 	cursor: pointer;
 	display: none;
 }
@@ -1517,7 +1859,7 @@ body.adding-widget .add-new-widget:before,
 		background: #eee;
 		border: 0;
 		border-right: 1px solid #ddd;
-		color: #444;
+		color: #555d66;
 		cursor: pointer;
 		-webkit-transition: color .1s ease-in-out, background .1s ease-in-out;
 		transition: color .1s ease-in-out, background .1s ease-in-out;
@@ -1598,7 +1940,7 @@ body.adding-widget .add-new-widget:before,
 		padding: 9px 10px 12px 14px;
 		margin: 0;
 		line-height: 24px;
-		color: #555;
+		color: #555d66;
 		display: block;
 		overflow: hidden;
 		white-space: nowrap;
@@ -1618,12 +1960,15 @@ body.adding-widget .add-new-widget:before,
 	#available-widgets-filter {
 		position: relative;
 		width: 100%;
-		background: #fff;
 		height: auto;
-		padding: 10px 15px;
 	}
 
 	#available-widgets-list {
-		top: 140px;
+		top: 130px;
+	}
+
+	#available-menu-items-search .clear-results,
+	#available-menu-items-search .search-icon {
+		top: 85px; /* 70 section title height + 13 container padding +1 input margin +1 input border */
 	}
 }
diff --git a/wp-admin/css/customize-controls.min.css b/wp-admin/css/customize-controls.min.css
index cf42cc974..d5d48fb77 100644
--- a/wp-admin/css/customize-controls.min.css
+++ b/wp-admin/css/customize-controls.min.css
@@ -1 +1 @@
-body{overflow:hidden;-webkit-text-size-adjust:100%}#customize-controls a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls img{max-width:100%}#customize-controls .submit{text-align:center}#customize-controls .description{color:#555}#customize-header-actions .button-primary{float:right;margin-top:9px}#customize-header-actions .spinner{margin-top:13px;margin-right:4px}.saving #customize-header-actions .spinner{visibility:visible}#customize-header-actions{border-bottom:1px solid #ddd}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}#customize-controls .customize-info{border:none;border-top:1px solid #ddd;border-bottom:1px solid #ddd;margin-bottom:15px}#customize-controls .customize-info .accordion-section-title{background:#fff;color:#555;border-left:none;border-right:none;border-bottom:none;cursor:default}#customize-controls .customize-info .accordion-section-title:focus:after,#customize-controls .customize-info .accordion-section-title:hover:after,#customize-controls .customize-info.open .accordion-section-title:after{color:#333}#customize-controls .customize-info .accordion-section-title:after{display:none}#customize-controls .customize-info .preview-notice{font-size:13px;line-height:24px}#customize-controls .control-section .customize-section-title h3,#customize-controls .control-section h3.customize-section-title,#customize-controls .customize-info .panel-title{font-size:20px;font-weight:200;line-height:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-section-title span.customize-action{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-info .customize-help-toggle{position:absolute;top:4px;right:1px;padding:20px 20px 10px 10px;width:20px;height:20px;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;background:0 0;color:#555;border:none}#customize-controls .customize-info .customize-help-toggle:before{position:absolute;top:5px;left:6px}#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover,#customize-controls .customize-info.open .customize-help-toggle{color:#0073aa}#customize-controls .customize-info .customize-panel-description,#customize-controls .no-widget-areas-rendered-notice{color:#555;display:none;background:#fff;padding:12px 15px;border-top:1px solid #ddd}#customize-controls .customize-info .customize-panel-description.open+.no-widget-areas-rendered-notice{border-top:none}#customize-controls .customize-info .customize-panel-description p:first-child{margin-top:0}#customize-controls .customize-info .customize-panel-description p:last-child{margin-bottom:0}#customize-controls .current-panel .control-section>h3.accordion-section-title{padding-right:30px}#customize-theme-controls .control-section{border:none}#customize-theme-controls .accordion-section-title{color:#555;background-color:#fff;border-bottom:1px solid #eee}#customize-theme-controls .accordion-section-title:after{content:"\f345";color:#a0a5aa}#customize-theme-controls .accordion-section-content{color:#555;background:0 0;position:absolute;top:0;left:100%;width:100%;margin:0;padding:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#customize-controls .control-section .accordion-section-title:focus,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section:hover>.accordion-section-title{color:#23282d;background:#f5f5f5}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f5f5f5}#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#23282d}#customize-theme-controls .control-section.open{border-bottom:1px solid #eee}#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#eee!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#ddd}#customize-theme-controls>ul{margin:0}.customize-section-description-container{margin-bottom:15px}.customize-section-title{margin:-12px -12px 0;border-bottom:1px solid #ddd;background:#fff}div.customize-section-description{margin-top:22px}div.customize-section-description p:first-child{margin-top:0}div.customize-section-description p:last-child{margin-bottom:0}#customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{border-bottom:1px solid #ddd;padding:12px}.ios #customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{padding:12px 12px 13px}.customize-section-title h3,h3.customize-section-title{padding:10px 10px 12px 14px;margin:0;line-height:21px;color:#555}#customize-theme-controls{position:relative;left:0;-webkit-transition:.18s left ease-in-out;transition:.18s left ease-in-out}.ios #customize-theme-controls{-webkit-transition:left 0s;transition:left 0s}.section-open #customize-info,.section-open #customize-theme-controls{left:-100%}.accordion-sub-container.control-panel-content{display:none;position:absolute;left:100%;top:0;width:100%;-webkit-transition:left ease-in-out .18s;transition:left ease-in-out .18s}.ios .accordion-sub-container.control-panel-content{-webkit-transition:left 0s;transition:left 0s}.accordion-sub-container.control-panel-content.animating{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;left:0;width:45px;height:45px;padding:0 2px 0 0;background:#eee;border:none;border-right:1px solid #ddd;color:#444;text-align:left;cursor:pointer;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.customize-panel-back,.customize-section-back{display:block;float:left;width:48px;height:71px;padding:0 24px 0 0;margin:0;background:#fff;border:none;border-right:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;-webkit-transition:left .18s ease-in-out,color .1s ease-in-out,background .1s ease-in-out;transition:left .18s ease-in-out,color .1s ease-in-out,background .1s ease-in-out}.customize-section-back{height:74px}.ios .customize-panel-back,.ios .customize-section-back{-webkit-transition:left 0s;transition:left 0s}.ios .customize-panel-back{display:none}.ios .expanded.in-sub-panel .customize-panel-back{display:block}.panel-meta.customize-info .accordion-section-title{margin-left:48px}#customize-controls .panel-meta.customize-info .accordion-section-title:hover{background:#fff;color:#555}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-panel-back:focus,.customize-panel-back:hover,.customize-section-back:focus,.customize-section-back:hover{color:#23282d;background:#f5f5f5;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-controls-close:before{font:400 22px/45px dashicons;content:"\f335";position:relative;top:1px;left:13px}.customize-panel-back:before,.customize-section-back:before{font:400 20px/72px dashicons;content:"\f341";position:relative;left:13px}.wp-full-overlay-sidebar .wp-full-overlay-header{-webkit-transition:padding ease-in-out .18s;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-left:62px}#customize-info,#customize-theme-controls>ul>.accordion-section{position:relative;left:0;-webkit-transition:left ease-in-out .18s;transition:left ease-in-out .18s}.ios #customize-info,.ios #customize-theme-controls>ul>.accordion-section{-webkit-transition:left 0s;transition:left 0s}.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls>ul>.accordion-section{left:-100%;width:100%}.in-sub-panel #customize-theme-controls .accordion-section.current-panel{width:100%}#customize-theme-controls .control-section.current-panel{padding:0}#customize-theme-controls .control-section>h3.accordion-section-title{position:relative;left:0}#customize-theme-controls .control-section.current-panel>h3.accordion-section-title{left:-354px;-webkit-transition:left ease-in-out .18s;transition:left ease-in-out .18s}.ios #customize-theme-controls .control-section.current-panel>h3.accordion-section-title{-webkit-transition:left 0s;transition:left 0s}.wp-full-overlay.section-open #customize-controls .wp-full-overlay-sidebar-content{visibility:hidden;overflow-y:hidden}.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open{visibility:visible}.wp-full-overlay.section-open .wp-full-overlay-sidebar-content .accordion-section.open .accordion-section-content{overflow-y:auto}p.customize-section-description{font-style:normal;margin-top:22px;margin-bottom:0}.customize-control{width:100%;float:left;clear:both;margin-bottom:12px}.customize-control input[type=radio],.customize-control input[type=checkbox],.customize-control select{line-height:28px}.customize-control input[type=tel],.customize-control input[type=url],.customize-control input[type=text],.customize-control input[type=password],.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=search]{width:100%;line-height:18px;margin:0}.customize-control-hidden{margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{min-width:50%;max-width:100%;height:28px;line-height:28px}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:24px;font-weight:600;margin-bottom:4px}.customize-control-description{display:block;font-style:italic;line-height:18px;margin-bottom:5px}.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{line-height:20px;display:block;margin-left:24px;padding-top:6px;padding-bottom:6px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-right:4px;margin-left:-24px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control .attachment-thumb.type-icon{float:left;margin:10px;width:auto}.customize-control .attachment-title{font-weight:600;margin:0;padding:5px 10px}.customize-control .attachment-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0 10px}.customize-control .attachment-meta-title{padding-top:7px}.customize-control .thumbnail-image{line-height:0}.customize-control .thumbnail-image img{cursor:pointer}#customize-controls .thumbnail-audio .thumbnail{max-width:64px;max-height:64px;margin:10px;float:left}#customize-preview iframe{width:100%;height:100%;position:absolute}#customize-preview iframe+iframe{visibility:hidden}.wp-full-overlay-sidebar{background:#eee;border-right:1px solid #ddd}#customize-controls .customize-control-notifications-container{margin:4px 0 8px;padding:0;display:none;cursor:default}#customize-controls .customize-control-widget_form.has-error .widget .widget-top,.customize-control-nav_menu_item.has-error .menu-item-bar .menu-item-handle{-webkit-box-shadow:inset 0 0 0 2px #dc3232;box-shadow:inset 0 0 0 2px #dc3232;-webkit-transition:.15s box-shadow linear;transition:.15s box-shadow linear}.customize-control-notifications-container li.notice{list-style:none;margin:0 0 6px;padding:4px 8px}.customize-control-notifications-container li.notice:last-child{margin-bottom:0}#customize-controls .customize-control-nav_menu_item .customize-control-notifications-container{margin-top:0}#customize-controls .customize-control-widget_form .customize-control-notifications-container,.customize-control .attachment-media-view .actions{margin-top:8px}.customize-control-text.has-error input{outline:#dc3232 solid 2px}.accordion-section .dropdown{float:left;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:left;min-width:30px;height:16px;line-height:16px;margin-right:16px;padding:4px 5px;border:2px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;right:0;width:20px;background:#eee}.customize-control .dropdown-arrow:after{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#32373c}.customize-control .dropdown-status{color:#32373c;background:#eee;display:none;max-width:112px}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex,.customize-control-header button img{display:block}.customize-control-color .dropdown{margin-right:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#555;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}.customize-control-header .current{margin-bottom:8px}.customize-control-header .uploaded{margin-bottom:18px}.customize-control-header .default button:not(.random),.customize-control-header .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control .attachment-media-view .upload-button,.customize-control-header button.new,.customize-control-header button.remove{white-space:normal;width:48%;height:auto}.customize-control .attachment-media-view .thumbnail,.customize-control-header .current .container{overflow:hidden}.customize-control .attachment-media-view .placeholder,.customize-control-header .placeholder{width:100%;position:relative;text-align:center;cursor:default;border:1px dashed #b4b9be;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:9px 0;line-height:20px}.customize-control-header .inner{display:none;position:absolute;width:100%;color:#555;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.customize-control-header .inner,.customize-control-header .inner .dashicons{line-height:20px;top:8px}.customize-control-header .list .inner,.customize-control-header .list .inner .dashicons{top:9px}.customize-control-header .header-view{position:relative;width:100%;margin-bottom:5px}.customize-control-header .header-view:last-child{margin-bottom:0}.customize-control-header .header-view:after{border:0}.customize-control-header .header-view.selected:after{content:'';position:absolute;height:auto;top:0;left:0;bottom:0;right:0;border:4px solid #00a0d2;-webkit-border-radius:2px;border-radius:2px}.customize-control-header .header-view.button.selected{border:0}.customize-control-header .uploaded .header-view .close{font-size:20px;color:#fff;background:#555;background:rgba(0,0,0,.5);position:absolute;top:10px;right:-999px;z-index:1;width:26px;height:26px;cursor:pointer}.customize-control-header .header-view .close:focus,.customize-control-header .header-view:hover .close{right:10px}.customize-control-header .random.placeholder{cursor:pointer;-webkit-border-radius:2px;border-radius:2px;height:40px}.customize-control-header button.random{width:100%;height:auto;min-height:40px;white-space:normal}.customize-control-header button.random .dice{margin-top:4px}.customize-control-header .header-view:hover>button.random .dice,.customize-control-header .placeholder:hover .dice{-webkit-animation:dice-color-change 3s infinite;animation:dice-color-change 3s infinite}@-webkit-keyframes dice-color-change{0%,100%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}}@keyframes dice-color-change{0%,100%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}}.customize-control-header .choice{position:relative;display:block;margin-bottom:9px}.customize-control-header .uploaded div:last-child>.choice{margin-bottom:0}.customize-control .attachment-media-view .thumbnail-image img,.customize-control-header img{max-width:100%}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control-header .remove{float:left;margin-right:3px}.customize-control .attachment-media-view .upload-button,.customize-control-header .new{float:right}@-webkit-keyframes customize-reload{0%{opacity:0}100%{opacity:1}}@keyframes customize-reload{0%{opacity:0}100%{opacity:1}}.wp-customizer .customize-loading #customize-container{display:block;-webkit-animation:customize-reload .75s;animation:customize-reload .75s}.control-section-themes .accordion-section-title{cursor:default;margin:15px 0;padding-right:100px}#customize-theme-controls .control-section-themes .accordion-section-title:focus,#customize-theme-controls .control-section-themes .accordion-section-title:hover{color:#555;background-color:#fff}.customize-themes-panel .accordion-section-title{margin:15px -8px}#customize-controls .customize-section-title span.customize-action,.control-section-themes .accordion-section-title span.customize-action{font-size:13px;display:block;font-weight:400}.control-section-themes .accordion-section-title .change-theme,.control-section-themes .accordion-section-title .customize-theme{position:absolute;right:10px;top:50%;margin-top:-14px;font-weight:400}.control-section-themes .accordion-section-title:before{display:none}.customize-themes-panel{display:none;padding:0 8px;background:#f1f1f1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.customize-themes-panel .accordion-section-title:first-child{margin-top:0}#customize-controls .customize-themes-panel .accordion-section-title:nth-child(2){font-size:14px;font-weight:600}.customize-themes-panel>h2{padding:15px 8px 0}.control-section.open .customize-themes-panel{display:block}#customize-theme-controls .customize-themes-panel .accordion-section-content{background:0 0;display:block}.customize-control.customize-control-theme{margin-bottom:8px}#customize-theme-controls .themes.accordion-section-content{position:relative;left:0;padding:0;width:100%}.wp-customizer .theme-browser .themes{padding-bottom:8px}.wp-customizer .theme-browser .theme{margin:0;width:100%}.wp-customizer .theme-browser .theme .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}#customize-controls h3.theme-name{font-size:15px}#customize-controls .theme-overlay .theme-name{font-size:32px}.wp-customizer #themes-filter{font-size:16px;font-weight:300;line-height:1.5;width:100%}#accordion-section-themes .accordion-section-title:after{display:none}#customize-theme-controls .control-section-themes.current-panel>h3.accordion-section-title{left:0}.customize-themes-panel.control-panel-content{position:absolute;left:-100%;top:0;width:100%;border-top:1px solid #ddd}.in-themes-panel #customize-info,.in-themes-panel #customize-theme-controls>ul>.accordion-section{left:100%}.wp-customizer .theme-overlay{display:none}.wp-customizer.modal-open .theme-overlay{position:fixed;left:0;top:0;right:0;bottom:0;z-index:109}.wp-customizer .theme-overlay .theme-backdrop{background:rgba(238,238,238,.75);position:fixed;z-index:110}.wp-customizer .theme-overlay .theme-wrap{left:90px;right:90px;top:45px;bottom:45px;z-index:120;max-width:1740px}.wp-customizer .theme-overlay .theme-actions{text-align:right}.modal-open .in-themes-panel #customize-controls .wp-full-overlay-sidebar-content{overflow:visible}.ie8 .wp-customizer .theme-overlay .theme-about,.ie8 .wp-customizer .theme-overlay .theme-actions,.ie8 .wp-customizer .theme-overlay .theme-header{position:static}@media (max-width:850px),(max-height:472px){.wp-customizer .theme-overlay .theme-wrap{left:0;right:0;top:0;bottom:0}}body.cheatin{font-size:medium;height:auto;background:#fff;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}body.cheatin h1{border-bottom:1px solid #ddd;clear:both;color:#666;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:30px 0 0;padding:0 0 7px}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}#customize-theme-controls .add-new-menu-item,#customize-theme-controls .add-new-widget{cursor:pointer;float:right;margin-left:10px;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.reordering .add-new-menu-item,.reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}.add-new-menu-item:before,.add-new-widget:before{content:"\f132";display:inline-block;position:relative;left:-2px;top:-1px;font:400 20px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reorder-toggle{color:#0073aa;float:right;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:hover{color:#00a0d2}.reorder-toggle:focus{outline:dotted 1px}.reorder,.reordering .reorder-done{display:block;padding:5px 8px}.reorder-done,.reordering .reorder{display:none;color:#0073aa}.reorder-toggle:active .reorder-done,.reorder-toggle:focus .reorder-done,.reorder-toggle:hover .reorder-done{color:#00a0d2}.menu-item-reorder-nav button,.widget-reorder-nav span{position:relative;overflow:hidden;float:left;display:block;width:33px;height:43px;color:#82878c;text-indent:-9999px;cursor:pointer;outline:0}.menu-item-reorder-nav button{width:30px;height:40px;background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none}.menu-item-reorder-nav button:before,.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:400 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items .customize-section-title,#available-widgets .customize-section-title,.customize-controls-preview-toggle{display:none}.menu-item-reorder-nav button:focus,.menu-item-reorder-nav button:hover,.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#191e23;background:#eee}.menus-move-down:before,.move-widget-down:before{content:"\f347"}.menus-move-up:before,.move-widget-up:before{content:"\f343"}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down,.move-down-disabled .menus-move-down,.move-left-disabled .menus-move-left,.move-right-disabled .menus-move-right,.move-up-disabled .menus-move-up{color:#d5d5d5;background-color:#fff;cursor:default;pointer-events:none}.wp-full-overlay-main{right:auto;width:100%}.add-menu-toggle.open,.add-menu-toggle.open:hover,.adding-menu-items .add-new-menu-item,.adding-menu-items .add-new-menu-item:hover,body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#929793;color:#32373c;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#accordion-section-add_menu .add-new-menu-item.open:before,.adding-menu-items .add-new-menu-item:before,body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-menu-items,#available-widgets{position:absolute;top:0;bottom:0;left:-301px;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:300px;margin:0;z-index:4;background:#eee;-webkit-transition:left .18s;transition:left .18s;border-right:1px solid #ddd}#available-widgets-list{top:60px;position:absolute;overflow:auto;bottom:0;width:100%}#available-widgets-filter{position:fixed;top:0;z-index:1;width:300px;background:#eee;border-bottom:1px solid #e5e5e5}#available-menu-items-search .accordion-section-title,#available-widgets-filter{padding:12px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-menu-items-search input,#available-widgets-filter input{padding:6px 10px;width:100%}#available-menu-items .item-top,#available-menu-items .item-top:hover,#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-menu-items .item-tpl,#available-widgets .widget-tpl{position:relative;padding:20px 15px 20px 60px;background:#fff;border-bottom:1px solid #e5e5e5;cursor:pointer;display:none}#available-menu-items .item,#available-widgets .widget{position:static}@media only screen and (max-width:782px){.wp-customizer .theme:not(.active):focus .theme-actions,.wp-customizer .theme:not(.active):hover .theme-actions{display:block}.wp-customizer .theme-browser .theme.active .theme-name span{display:inline}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{margin-left:32px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-left:-32px}.customize-control input[type=radio]+label,.customize-control input[type=checkbox]+label{line-height:32px}}@media screen and (max-width:640px){#customize-controls{width:100%}.wp-full-overlay.collapsed #customize-controls,.wp-full-overlay.expanded{margin-left:0}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{bottom:0}.customize-controls-preview-toggle{display:block;position:absolute;top:0;left:48px;line-height:45px;font-size:14px;padding:0 12px;margin:0;height:45px;background:#eee;border:0;border-right:1px solid #ddd;color:#444;cursor:pointer;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}#customize-footer-actions,#customize-preview,.customize-controls-preview-toggle .controls,.preview-only .customize-controls-preview-toggle .preview,.preview-only .wp-full-overlay-sidebar-content{display:none}.customize-controls-preview-toggle .controls:before,.customize-controls-preview-toggle .preview:before{font:400 20px/1 dashicons;content:"\f177";position:relative;top:4px;margin-right:6px}.customize-controls-preview-toggle .controls:before{content:"\f540"}.preview-only #customize-controls{height:45px}.preview-only #customize-preview,.preview-only .customize-controls-preview-toggle .controls{display:block}#customize-preview{top:45px;bottom:0;height:auto}.wp-core-ui.wp-customizer .button{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#customize-header-actions .button-primary{margin-top:6px}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets{top:46px;left:0;z-index:10;width:100%}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:block;margin:0}#available-menu-items .customize-section-back,#available-widgets .customize-section-back{height:69px}#available-menu-items .customize-section-title h3,#available-widgets .customize-section-title h3{font-size:20px;font-weight:200;padding:9px 10px 12px 14px;margin:0;line-height:24px;color:#555;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-menu-items .customize-section-title .customize-action,#available-widgets .customize-section-title .customize-action{font-size:13px;display:block;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-widgets-filter{position:relative;width:100%;background:#fff;height:auto;padding:10px 15px}#available-widgets-list{top:140px}}
\ No newline at end of file
+#customize-controls .customize-info .customize-section-description,#customize-controls .customize-info.section-meta{margin-bottom:15px}body{overflow:hidden;-webkit-text-size-adjust:100%}.customize-controls-close,.widget-control-actions a{text-decoration:none}#customize-controls h3{font-size:14px}#customize-controls img{max-width:100%}#customize-controls .submit{text-align:center}#customize-controls .description{color:#555d66}#customize-header-actions .button-primary{float:right;margin-top:9px}#customize-header-actions .spinner{margin-top:13px;margin-right:4px}.saving #customize-header-actions .spinner{visibility:visible}#customize-header-actions{border-bottom:1px solid #ddd}#customize-controls .wp-full-overlay-sidebar-content{overflow-y:auto;overflow-x:hidden}#customize-controls .customize-info{border:none;border-bottom:1px solid #ddd;margin-bottom:15px}#customize-controls .customize-info.is-in-view,#customize-controls .customize-section-title.is-in-view{position:absolute;z-index:9;width:100%;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 0 rgba(0,0,0,.1)}#customize-controls .customize-section-title.is-in-view{margin-top:0}#customize-controls .customize-info.is-in-view+.accordion-section{margin-top:15px}#customize-controls .customize-info.is-sticky,#customize-controls .customize-section-title.is-sticky{position:fixed;top:46px}#customize-controls .customize-info .accordion-section-title{background:#fff;color:#555d66;border-left:none;border-right:none;border-bottom:none;cursor:default}#customize-controls .customize-info .accordion-section-title:focus:after,#customize-controls .customize-info .accordion-section-title:hover:after,#customize-controls .customize-info.open .accordion-section-title:after{color:#32373c}#customize-controls .customize-info .accordion-section-title:after{display:none}#customize-controls .customize-info .preview-notice{font-size:13px;line-height:24px}#customize-controls .customize-info .panel-title,#customize-controls .customize-pane-child .customize-section-title h3,#customize-controls .customize-pane-child h3.customize-section-title{font-size:20px;font-weight:200;line-height:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-section-title span.customize-action{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#customize-controls .customize-info .customize-help-toggle{position:absolute;top:4px;right:1px;padding:20px 20px 10px 10px;width:20px;height:20px;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:none;background:0 0;color:#555d66;border:none}#customize-controls .customize-info .customize-help-toggle:before{position:absolute;top:5px;left:6px}#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover,#customize-controls .customize-info.open .customize-help-toggle{color:#0073aa}#customize-controls .customize-info .customize-panel-description,#customize-controls .customize-info .customize-section-description,#customize-controls .no-widget-areas-rendered-notice{color:#555d66;display:none;background:#fff;padding:12px 15px;border-top:1px solid #ddd}#customize-controls .customize-info .customize-panel-description.open+.no-widget-areas-rendered-notice{border-top:none}#customize-controls .customize-info .customize-panel-description p:first-child,#customize-controls .customize-info .customize-section-description p:first-child{margin-top:0}#customize-controls .customize-info .customize-panel-description p:last-child,#customize-controls .customize-info .customize-section-description p:last-child{margin-bottom:0}#customize-controls .current-panel .control-section>h3.accordion-section-title{padding-right:30px}#customize-theme-controls .control-section{border:none}#customize-theme-controls .accordion-section-title{color:#555d66;background-color:#fff;border-bottom:1px solid #ddd;border-left:4px solid #fff;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}#customize-controls #customize-theme-controls .customize-themes-panel .accordion-section-title{color:#555;background-color:#fff;border-left:4px solid #fff}#customize-theme-controls .accordion-section-title:after{content:"\f345";color:#a0a5aa}#customize-theme-controls .accordion-section-content{color:#555d66;background:0 0;position:absolute;top:0;left:100%;width:100%;margin:0;padding:12px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#customize-controls .control-section .accordion-section-title:focus,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section:hover>.accordion-section-title{color:#0073aa;background:#f3f3f5;border-left-color:#0073aa}#accordion-section-themes+.control-section{border-top:1px solid #ddd}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{background:#f3f3f5}#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section:hover>.accordion-section-title:after{color:#0073aa}#customize-theme-controls .control-section.open{border-bottom:1px solid #eee}#customize-theme-controls .control-section.open .accordion-section-title{border-bottom-color:#eee!important}#customize-theme-controls .control-section:last-of-type.open,#customize-theme-controls .control-section:last-of-type>.accordion-section-title{border-bottom-color:#ddd}#customize-theme-controls .control-panel-content .control-section:nth-child(2),#customize-theme-controls .control-panel-nav_menus .control-section:nth-child(3){border-top:1px solid #ddd}#customize-theme-controls>ul{margin:0}#customize-info,#customize-theme-controls .customize-pane-child,#customize-theme-controls .customize-pane-parent{width:100%;margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:.18s transform cubic-bezier(.645,.045,.355,1),.18s -webkit-transform cubic-bezier(.645,.045,.355,1);transition:.18s transform cubic-bezier(.645,.045,.355,1),.18s -webkit-transform cubic-bezier(.645,.045,.355,1)}#customize-info,#customize-theme-controls .customize-pane-parent{position:relative;visibility:visible;height:auto;max-height:none;overflow:auto;-webkit-transform:none;-ms-transform:none;transform:none}#customize-theme-controls .customize-pane-child{position:absolute;top:0;left:0;visibility:hidden;height:0;max-height:none;overflow:hidden;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open,#customize-theme-controls .customize-themes-panel.customize-pane-child.current-panel{-webkit-transform:none;-ms-transform:none;transform:none}#customize-theme-controls .customize-themes-panel.customize-pane-child,.in-sub-panel #customize-info,.in-sub-panel #customize-theme-controls .customize-pane-parent,.in-sub-panel.section-open #customize-theme-controls .customize-pane-child.current-panel,.in-themes-panel #customize-info,.in-themes-panel #customize-theme-controls .customize-pane-parent,.section-open #customize-info,.section-open #customize-theme-controls .customize-pane-parent{visibility:hidden;height:0;overflow:hidden;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}#customize-theme-controls .customize-pane-child.busy,#customize-theme-controls .customize-pane-child.current-panel,#customize-theme-controls .customize-pane-child.open,.busy.section-open.in-sub-panel #customize-theme-controls .customize-pane-child.current-panel,.in-sub-panel #customize-info.busy,.in-sub-panel #customize-theme-controls .customize-pane-parent.busy,.in-themes-panel #customize-info.busy,.in-themes-panel #customize-theme-controls .customize-pane-parent.busy,.section-open #customize-info.busy,.section-open #customize-theme-controls .customize-pane-parent.busy{visibility:visible;height:auto;overflow:auto}.in-themes-panel #customize-info,.in-themes-panel #customize-theme-controls .customize-pane-parent{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}#customize-theme-controls .customize-pane-child.accordion-section-content,#customize-theme-controls .customize-pane-child.accordion-sub-container{display:block;overflow-x:hidden}#customize-theme-controls .customize-pane-child.accordion-section-content{padding:12px}#customize-theme-controls .customize-pane-child.menu li{position:static}.customize-section-description-container{margin-bottom:15px}.customize-section-title{margin:-12px -12px 0;border-bottom:1px solid #ddd;background:#fff}div.customize-section-description{margin-top:22px}.customize-info div.customize-section-description,div.customize-section-description p:first-child{margin-top:0}div.customize-section-description p:last-child{margin-bottom:0}#customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{border-bottom:1px solid #ddd;padding:12px}.ios #customize-theme-controls .customize-themes-panel h3.customize-section-title:first-child{padding:12px 12px 13px}.customize-section-title h3,h3.customize-section-title{padding:10px 10px 12px 14px;margin:0;line-height:21px;color:#555d66}.accordion-sub-container.control-panel-content{display:none;position:absolute;top:0;width:100%}.accordion-sub-container.control-panel-content.busy{display:block}.current-panel .accordion-sub-container.control-panel-content{width:100%}.customize-controls-close{display:block;position:absolute;top:0;left:0;width:45px;height:41px;padding:0 2px 0 0;background:#eee;border:none;border-top:4px solid #eee;border-right:1px solid #ddd;color:#444;text-align:left;cursor:pointer;-webkit-transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.customize-panel-back,.customize-section-back{display:block;float:left;width:48px;height:71px;padding:0 24px 0 0;margin:0;background:#fff;border:none;border-right:1px solid #ddd;border-left:4px solid #fff;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;-webkit-transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out;transition:color .15s ease-in-out,border-color .15s ease-in-out,background .15s ease-in-out}.customize-section-back{height:74px}.ios .customize-panel-back{display:none}.ios .expanded.in-sub-panel .customize-panel-back{display:block}#customize-controls .panel-meta.customize-info .accordion-section-title{margin-left:48px;border-left:none}#customize-controls .cannot-expand:hover .accordion-section-title,#customize-controls .panel-meta.customize-info .accordion-section-title:hover{background:#fff;color:#555d66;border-left-color:#fff}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{background:#fff;color:#0073aa;border-top-color:#0073aa;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-panel-back:focus,.customize-panel-back:hover,.customize-section-back:focus,.customize-section-back:hover{color:#0073aa;background:#f3f3f5;border-left-color:#0073aa;outline:0;-webkit-box-shadow:none;box-shadow:none}.customize-controls-close:before{font:400 22px/45px dashicons;content:"\f335";position:relative;top:-3px;left:13px}.customize-panel-back:before,.customize-section-back:before{font:400 20px/72px dashicons;content:"\f341";position:relative;left:9px}.wp-full-overlay-sidebar .wp-full-overlay-header{background-color:#eee;-webkit-transition:padding ease-in-out .18s;transition:padding ease-in-out .18s}.in-sub-panel .wp-full-overlay-sidebar .wp-full-overlay-header{padding-left:62px}p.customize-section-description{font-style:normal;margin-top:22px;margin-bottom:0}.customize-control{width:100%;float:left;clear:both;margin-bottom:12px}.customize-control input[type=radio],.customize-control input[type=checkbox],.customize-control select{line-height:28px}.customize-control input[type=tel],.customize-control input[type=url],.customize-control input[type=text],.customize-control input[type=password],.customize-control input[type=email],.customize-control input[type=number],.customize-control input[type=search]{width:100%;line-height:18px;margin:0}.customize-control-hidden{margin:0}.customize-control-textarea textarea{width:100%;resize:vertical}.customize-control select{width:100%;max-width:300px;height:28px;line-height:28px}.customize-control select[multiple]{height:auto}.customize-control-title{display:block;font-size:14px;line-height:24px;font-weight:600;margin-bottom:4px}.customize-control-description{display:block;font-style:italic;line-height:18px;margin-top:0;margin-bottom:5px}.customize-section-description a.external-link:after{font:16px/11px dashicons;content:"\f310";top:3px;position:relative;padding-left:3px;display:inline-block;text-decoration:none}.customize-control-color .color-picker,.customize-control-upload div{line-height:28px}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{line-height:20px;display:block;margin-left:24px;padding-top:6px;padding-bottom:6px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-right:4px;margin-left:-24px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio .customize-control-title+.customize-control-description{margin-top:7px}.customize-control .attachment-thumb.type-icon{float:left;margin:10px;width:auto}.customize-control .attachment-title{font-weight:600;margin:0;padding:5px 10px}.customize-control .attachment-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;padding:0 10px}.customize-control .attachment-meta-title{padding-top:7px}.customize-control .thumbnail-image{line-height:0}.customize-control .thumbnail-image img{cursor:pointer}#customize-controls .thumbnail-audio .thumbnail{max-width:64px;max-height:64px;margin:10px;float:left}#available-menu-items .accordion-section-content .new-content-item,.customize-control-dropdown-pages .new-content-item{width:-webkit-calc(100% - 30px);width:calc(100% - 30px);padding:8px 15px;position:absolute;bottom:0;z-index:10;background:#eee;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.customize-control-dropdown-pages .new-content-item{width:100%;max-width:300px;padding:5px 0 5px 1px;position:relative}#available-menu-items .new-content-item .create-item-input,.customize-control-dropdown-pages .new-content-item .create-item-input{-webkit-box-flex:10;-webkit-flex-grow:10;-moz-box-flex:10;-ms-flex-positive:10;-ms-flex:10;flex-grow:10}#available-menu-items .new-content-item .add-content,.customize-control-dropdown-pages .new-content-item .add-content{margin:2px 0 2px 6px;-webkit-box-flex:10;-webkit-flex-grow:10;-moz-box-flex:10;-ms-flex-positive:10;-ms-flex:10;flex-grow:1}.customize-control-dropdown-pages .new-content-item .create-item-input.invalid{border:1px solid red}.customize-control-dropdown-pages .add-new-toggle{margin-left:1px;color:#0073aa;font-weight:600;line-height:28px;text-decoration:underline}.customize-control-dropdown-pages .add-new-toggle:active,.customize-control-dropdown-pages .add-new-toggle:hover{color:#00a0d2}.customize-control-dropdown-pages .add-new-toggle:focus{color:#124964}#customize-preview iframe{width:100%;height:100%;position:absolute}#customize-preview iframe+iframe{visibility:hidden}.wp-full-overlay-sidebar{background:#eee;border-right:1px solid #ddd}#customize-controls .customize-control-notifications-container{margin:4px 0 8px;padding:0;display:none;cursor:default}#customize-controls .customize-control-widget_form.has-error .widget .widget-top,.customize-control-nav_menu_item.has-error .menu-item-bar .menu-item-handle{-webkit-box-shadow:inset 0 0 0 2px #dc3232;box-shadow:inset 0 0 0 2px #dc3232;-webkit-transition:.15s box-shadow linear;transition:.15s box-shadow linear}.customize-control-notifications-container li.notice{list-style:none;margin:0 0 6px;padding:4px 8px}.customize-control-notifications-container li.notice:last-child{margin-bottom:0}#customize-controls .customize-control-nav_menu_item .customize-control-notifications-container{margin-top:0}#customize-controls .customize-control-widget_form .customize-control-notifications-container,.customize-control .attachment-media-view .actions{margin-top:8px}.customize-control-text.has-error input{outline:#dc3232 solid 2px}.accordion-section .dropdown{float:left;display:block;position:relative;cursor:pointer}.accordion-section .dropdown-content{overflow:hidden;float:left;min-width:30px;height:16px;line-height:16px;margin-right:16px;padding:4px 5px;border:2px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;right:0;width:20px;background:#eee}.customize-control .dropdown-arrow:after{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;padding:0;text-indent:0;text-align:center;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#32373c}.customize-control .dropdown-status{color:#32373c;background:#eee;display:none;max-width:112px}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex,.customize-control-header button img{display:block}.customize-control-color .dropdown{margin-right:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#555d66;border:1px solid rgba(0,0,0,.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,.25)}.ios .wp-full-overlay{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}.customize-control-header .current{margin-bottom:8px}.customize-control-header .actions,.customize-control-header .uploaded{margin-bottom:18px}.customize-control-header .default button:not(.random),.customize-control-header .uploaded button:not(.random){width:100%;padding:0;margin:0;background:0 0;border:none;color:inherit;cursor:pointer}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control .attachment-media-view .upload-button,.customize-control-header button.new,.customize-control-header button.remove{white-space:normal;width:48%;height:auto}.customize-control .attachment-media-view .thumbnail,.customize-control-header .current .container{overflow:hidden}.customize-control .attachment-media-view .placeholder,.customize-control-header .placeholder{width:100%;position:relative;text-align:center;cursor:default;border:1px dashed #b4b9be;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:9px 0;line-height:20px}.customize-control-header .inner{display:none;position:absolute;width:100%;color:#555d66;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.customize-control-header .inner,.customize-control-header .inner .dashicons{line-height:20px;top:8px}.customize-control-header .list .inner,.customize-control-header .list .inner .dashicons{top:9px}.customize-control-header .header-view{position:relative;width:100%;margin-bottom:5px}.customize-control-header .header-view:last-child{margin-bottom:0}.customize-control-header .header-view:after{border:0}.customize-control-header .header-view.selected .choice:focus{outline:0}.customize-control-header .header-view.selected:after{content:'';position:absolute;height:auto;top:0;left:0;bottom:0;right:0;border:4px solid #00a0d2;-webkit-border-radius:2px;border-radius:2px}.customize-control-header .header-view.button.selected{border:0}.customize-control-header .uploaded .header-view .close{font-size:20px;color:#fff;background:#555d66;background:rgba(0,0,0,.5);position:absolute;top:10px;left:-999px;z-index:1;width:26px;height:26px;cursor:pointer}.customize-control-header .header-view .close:focus,.customize-control-header .header-view:hover .close{left:auto;right:10px}.customize-control-header .header-view .close:focus{outline:#5b9dd9 solid 1px}.customize-control-header .random.placeholder{cursor:pointer;-webkit-border-radius:2px;border-radius:2px;height:40px}.customize-control-header button.random{width:100%;height:auto;min-height:40px;white-space:normal}.customize-control-header button.random .dice{margin-top:4px}.customize-control-header .header-view:hover>button.random .dice,.customize-control-header .placeholder:hover .dice{-webkit-animation:dice-color-change 3s infinite;animation:dice-color-change 3s infinite}@-webkit-keyframes dice-color-change{0%,100%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}}@keyframes dice-color-change{0%,100%{color:#d4b146}50%{color:#ef54b0}75%{color:#7190d3}}.customize-control-header .choice{position:relative;display:block;margin-bottom:9px}.customize-control-header .choice:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 3px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 3px 1px rgba(30,140,190,.8)}.customize-control-header .uploaded div:last-child>.choice{margin-bottom:0}.customize-control .attachment-media-view .thumbnail-image img,.customize-control-header img{max-width:100%}.customize-control .attachment-media-view .default-button,.customize-control .attachment-media-view .remove-button,.customize-control-header .remove{float:left;margin-right:3px}.customize-control .attachment-media-view .upload-button,.customize-control-header .new{float:right}.customize-control-background_position .background-position-control .button-group{display:block}#customize-controls .customize-section-description-container.section-meta.customize-info{border-bottom:none}#sub-accordion-section-custom_css .customize-control-notifications-container{margin-bottom:15px}#customize-control-custom_css textarea{display:block;font-family:Consolas,Monaco,monospace;font-size:12px;padding:6px 8px;height:500px;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.customize-section-description-container+#customize-control-custom_css:last-child textarea{border-right:0;border-left:0;height:-webkit-calc(100vh - 185px);height:calc(100vh - 185px);resize:none}.customize-section-description-container+#customize-control-custom_css:last-child{margin-left:-12px;width:299px;margin-bottom:-12px}@media screen and (max-width:640px){.customize-section-description-container+#customize-control-custom_css:last-child{margin-left:0;margin-right:0;width:100%}.customize-section-description-container+#customize-control-custom_css:last-child textarea{height:-webkit-calc(100vh - 140px);height:calc(100vh - 140px);width:100%;border:1px solid #ddd}}@-webkit-keyframes customize-reload{0%{opacity:0}100%{opacity:1}}@keyframes customize-reload{0%{opacity:0}100%{opacity:1}}.wp-customizer .customize-loading #customize-container{display:block;-webkit-animation:customize-reload .75s;animation:customize-reload .75s}#customize-theme-controls .control-section-themes .accordion-section-title,#customize-theme-controls .control-section-themes .accordion-section-title:hover{cursor:default;background:#fff;color:#555d66;border-top:1px solid #ddd;border-bottom:1px solid #ddd;border-left:none;margin-top:0}#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child,#customize-theme-controls .control-section-themes .customize-themes-panel .accordion-section-title:first-child:hover{border-top:0}#customize-theme-controls .control-section-themes>.accordion-section-title,#customize-theme-controls .control-section-themes>.accordion-section-title:hover{margin:0 0 15px}#customize-controls .customize-themes-panel .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title:hover{margin:15px -8px}#customize-controls .control-section-themes .accordion-section-title,#customize-controls .customize-themes-panel .accordion-section-title{padding-right:100px}#customize-controls .control-section-themes .accordion-section-title span.customize-action,#customize-controls .customize-section-title span.customize-action{font-size:13px;display:block;font-weight:400}#customize-controls .control-section-themes .accordion-section-title .change-theme,#customize-controls .customize-themes-panel .accordion-section-title .customize-theme{position:absolute;right:10px;top:50%;margin-top:-14px;font-weight:400}#customize-controls .control-section-themes .accordion-section-title:before{display:none}#customize-controls .customize-themes-panel{padding:0 8px;background:#f1f1f1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#customize-controls .customize-themes-panel .accordion-section-title:first-child{margin-top:0}#customize-controls .customize-themes-panel .accordion-section-title:nth-child(2){font-size:14px;font-weight:600}#customize-controls .customize-themes-panel>h2{padding:15px 8px 0}#customize-theme-controls .customize-themes-panel .accordion-section-content{background:0 0;display:block}.customize-control.customize-control-theme{margin-bottom:8px}#customize-theme-controls .themes.accordion-section-content{position:relative;left:0;padding:0;width:100%}.wp-customizer .theme-browser .themes{padding-bottom:8px}.wp-customizer .theme-browser .theme{margin:0;width:100%}.wp-customizer .theme-browser .theme .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}#customize-controls h3.theme-name{font-size:15px}#customize-controls .theme-overlay .theme-name{font-size:32px}.wp-customizer #themes-filter{font-size:16px;font-weight:300;line-height:1.5;width:100%}.control-section-themes .accordion-section-title:after,.customize-themes-panel .accordion-section-title:after{display:none}.customize-themes-panel.control-panel-content{border-top:1px solid #ddd}.wp-customizer .theme-overlay{display:none}.wp-customizer.modal-open .theme-overlay{position:fixed;left:0;top:0;right:0;bottom:0;z-index:109}.wp-customizer .theme-overlay .theme-backdrop{background:rgba(238,238,238,.75);position:fixed;z-index:110}.wp-customizer .theme-overlay .theme-wrap{left:90px;right:90px;top:45px;bottom:45px;z-index:120;max-width:1740px}.wp-customizer .theme-overlay .theme-actions{text-align:right}.ie8 .wp-customizer .theme-overlay .theme-about,.ie8 .wp-customizer .theme-overlay .theme-actions,.ie8 .wp-customizer .theme-overlay .theme-header{position:static}@media (max-width:850px),(max-height:472px){.wp-customizer .theme-overlay .theme-wrap{left:0;right:0;top:0;bottom:0}}body.cheatin{font-size:medium;height:auto;background:#fff;margin:50px auto 2em;padding:1em 2em;max-width:700px;min-width:0;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}body.cheatin h1{border-bottom:1px solid #ddd;clear:both;color:#666;font-size:24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:30px 0 0;padding:0 0 7px}body.cheatin p{font-size:14px;line-height:1.5;margin:25px 0 20px}#customize-theme-controls .add-new-menu-item,#customize-theme-controls .add-new-widget{cursor:pointer;float:right;margin-left:10px;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.reordering .add-new-menu-item,.reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#available-menu-items .new-content-item .add-content:before,.add-new-menu-item:before,.add-new-widget:before{content:"\f132";display:inline-block;position:relative;left:-2px;top:-1px;font:400 20px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.reorder-toggle{color:#0073aa;float:right;padding:5px 8px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:hover{color:#00a0d2}.reorder-toggle:focus{outline:dotted 1px}.reorder,.reordering .reorder-done{display:block;padding:5px 8px}.reorder-done,.reordering .reorder{display:none;color:#0073aa}.reorder-toggle:active .reorder-done,.reorder-toggle:focus .reorder-done,.reorder-toggle:hover .reorder-done{color:#00a0d2}.menu-item-reorder-nav button,.widget-reorder-nav span{position:relative;overflow:hidden;float:left;display:block;width:33px;height:43px;color:#82878c;text-indent:-9999px;cursor:pointer;outline:0}.menu-item-reorder-nav button{width:30px;height:40px;background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none}.menu-item-reorder-nav button:before,.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:400 20px/43px dashicons;text-align:center;text-indent:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.menu-item-reorder-nav button:focus,.menu-item-reorder-nav button:hover,.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#191e23;background:#eee}.menus-move-down:before,.move-widget-down:before{content:"\f347"}.menus-move-up:before,.move-widget-up:before{content:"\f343"}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down,.move-down-disabled .menus-move-down,.move-left-disabled .menus-move-left,.move-right-disabled .menus-move-right,.move-up-disabled .menus-move-up{color:#d5d5d5;background-color:#fff;cursor:default;pointer-events:none}.wp-full-overlay-main{right:auto;width:100%}.add-menu-toggle.open,.add-menu-toggle.open:hover,.adding-menu-items .add-new-menu-item,.adding-menu-items .add-new-menu-item:hover,body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#929793;color:#32373c;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}#accordion-section-add_menu .add-new-menu-item.open:before,.adding-menu-items .add-new-menu-item:before,body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-menu-items,#available-widgets{position:absolute;top:0;bottom:0;left:-301px;visibility:hidden;overflow-x:hidden;overflow-y:auto;width:300px;margin:0;z-index:4;background:#eee;-webkit-transition:left .18s;transition:left .18s;border-right:1px solid #ddd}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:none}#available-widgets-list{top:60px;position:absolute;overflow:auto;bottom:0;width:100%;border-top:1px solid #ddd}.no-widgets-found #available-widgets-list{border-top:none}#available-widgets-filter{position:fixed;top:0;z-index:1;width:300px;background:#eee}#available-menu-items-search .accordion-section-title,#available-widgets-filter{padding:13px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-menu-items-search input,#available-widgets-filter input{width:100%;height:32px;margin:1px 0;padding:6px 30px}#available-menu-items-search input::-ms-clear,#available-widgets-filter input::-ms-clear{display:none}#available-menu-items-search .search-icon,#available-widgets-filter .search-icon{display:block;position:absolute;top:15px;left:16px;width:30px;height:30px;line-height:28px;text-align:center;color:#72777c}#available-menu-items-search .clear-results,#available-widgets-filter .clear-results{position:absolute;top:15px;right:16px;width:30px;height:30px;padding:0;border:0;cursor:pointer;background:0 0;color:#a00;text-decoration:none;outline:0}#available-menu-items-search .clear-results,#available-menu-items-search.loading .clear-results.is-visible,#available-widgets-filter .clear-results{display:none}#available-menu-items-search .clear-results.is-visible,#available-widgets-filter .clear-results.is-visible{display:block}#available-menu-items-search .clear-results:before,#available-widgets-filter .clear-results:before{content:"\f335";font:400 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items-search .clear-results:focus,#available-menu-items-search .clear-results:hover,#available-widgets-filter .clear-results:focus,#available-widgets-filter .clear-results:hover{color:#dc3232}#available-menu-items-search .clear-results:focus,#available-widgets-filter .clear-results:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#available-menu-items-search .search-icon:after,#available-widgets-filter .search-icon:after{content:"\f179";font:400 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.no-widgets-found-message{display:none;margin:0;padding:0 15px;line-height:inherit}.no-widgets-found .no-widgets-found-message{display:block}#available-menu-items .item-top,#available-menu-items .item-top:hover,#available-widgets .widget-top,#available-widgets .widget-top:hover{border:none;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-menu-items .item-tpl,#available-widgets .widget-tpl{position:relative;padding:20px 15px 20px 60px;background:#fff;border-bottom:1px solid #ddd;border-left:4px solid #fff;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;cursor:pointer;display:none}#available-menu-items .item,#available-widgets .widget{position:static}.customize-controls-preview-toggle{display:none}@media only screen and (max-width:782px){.wp-customizer .theme:not(.active):focus .theme-actions,.wp-customizer .theme:not(.active):hover .theme-actions{display:block}.wp-customizer .theme-browser .theme.active .theme-name span{display:inline}.customize-control-checkbox label,.customize-control-nav_menu_auto_add label,.customize-control-radio label{margin-left:32px}.customize-control-checkbox input,.customize-control-nav_menu_auto_add input,.customize-control-radio input{margin-left:-32px}.customize-control input[type=radio]+label,.customize-control input[type=checkbox]+label{line-height:32px}}@media screen and (max-width:640px){#customize-controls{width:100%}.wp-full-overlay.collapsed #customize-controls,.wp-full-overlay.expanded{margin-left:0}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{bottom:0}.customize-controls-preview-toggle{display:block;position:absolute;top:0;left:48px;line-height:45px;font-size:14px;padding:0 12px;margin:0;height:45px;background:#eee;border:0;border-right:1px solid #ddd;color:#555d66;cursor:pointer;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}#customize-footer-actions,#customize-preview,.customize-controls-preview-toggle .controls,.preview-only .customize-controls-preview-toggle .preview,.preview-only .wp-full-overlay-sidebar-content{display:none}.customize-controls-preview-toggle .controls:before,.customize-controls-preview-toggle .preview:before{font:400 20px/1 dashicons;content:"\f177";position:relative;top:4px;margin-right:6px}.customize-controls-preview-toggle .controls:before{content:"\f540"}.preview-only #customize-controls{height:45px}.preview-only #customize-preview,.preview-only .customize-controls-preview-toggle .controls{display:block}#customize-preview{top:45px;bottom:0;height:auto}.wp-core-ui.wp-customizer .button{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}#customize-header-actions .button-primary{margin-top:6px}body.adding-menu-items div#available-menu-items,body.adding-widget div#available-widgets{top:46px;left:0;z-index:10;width:100%}#available-menu-items .customize-section-title,#available-widgets .customize-section-title{display:block;margin:0}#available-menu-items .customize-section-back,#available-widgets .customize-section-back{height:69px}#available-menu-items .customize-section-title h3,#available-widgets .customize-section-title h3{font-size:20px;font-weight:200;padding:9px 10px 12px 14px;margin:0;line-height:24px;color:#555d66;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-menu-items .customize-section-title .customize-action,#available-widgets .customize-section-title .customize-action{font-size:13px;display:block;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#available-widgets-filter{position:relative;width:100%;height:auto}#available-widgets-list{top:130px}#available-menu-items-search .clear-results,#available-menu-items-search .search-icon{top:85px}}
\ No newline at end of file
diff --git a/wp-admin/css/customize-nav-menus-rtl.css b/wp-admin/css/customize-nav-menus-rtl.css
index fde34051c..0d33732c1 100644
--- a/wp-admin/css/customize-nav-menus-rtl.css
+++ b/wp-admin/css/customize-nav-menus-rtl.css
@@ -1,8 +1,12 @@
-#accordion-section-menu_locations {
+#customize-theme-controls #accordion-section-menu_locations {
 	position: relative;
 	margin-bottom: 15px;
 }
 
+#customize-theme-controls #accordion-section-menu_locations > .accordion-section-title {
+	border-bottom-color: #ddd;
+}
+
 .menu-in-location,
 .menu-in-locations {
 	display: block;
@@ -61,9 +65,18 @@
 	text-align: left;
 }
 
+.wp-customizer .menu-item-handle:hover {
+	z-index: 8;
+}
+
+.customize-control-nav_menu_item.has-notifications .menu-item-handle {
+	border-right: 4px solid #00a0d2;
+}
+
 .wp-customizer .menu-item-settings {
 	max-width: 100%;
 	overflow: hidden;
+	z-index: 8;
 	padding: 10px;
 	background: #eee;
 	border: 1px solid #999;
@@ -288,19 +301,19 @@
 	text-decoration: none !important;
 }
 
-#accordion-panel-nav_menus .field-link-target,
-#accordion-panel-nav_menus .field-title-attribute,
-#accordion-panel-nav_menus .field-css-classes,
-#accordion-panel-nav_menus .field-xfn,
-#accordion-panel-nav_menus .field-description {
+.control-section-nav_menu .field-link-target,
+.control-section-nav_menu .field-title-attribute,
+.control-section-nav_menu .field-css-classes,
+.control-section-nav_menu .field-xfn,
+.control-section-nav_menu .field-description {
 	display: none;
 }
 
-#accordion-panel-nav_menus.field-link-target-active .field-link-target,
-#accordion-panel-nav_menus.field-title-attribute-active .field-title-attribute,
-#accordion-panel-nav_menus.field-css-classes-active .field-css-classes,
-#accordion-panel-nav_menus.field-xfn-active .field-xfn,
-#accordion-panel-nav_menus.field-description-active .field-description {
+.control-section-nav_menu.field-link-target-active .field-link-target,
+.control-section-nav_menu.field-title-attribute-active .field-title-attribute,
+.control-section-nav_menu.field-css-classes-active .field-css-classes,
+.control-section-nav_menu.field-xfn-active .field-xfn,
+.control-section-nav_menu.field-description-active .field-description {
 	display: block;
 }
 
@@ -373,15 +386,15 @@
 .reordering .menu-item-depth-10 > .menu-item-bar { margin-left: 150px; }
 .reordering .menu-item-depth-11 > .menu-item-bar { margin-left: 165px; }
 
-.control-section-nav_menu .menu .menu-item-edit-active {
+.control-section-nav_menu.menu .menu-item-edit-active {
 	margin-right: 0;
 }
 
-.control-section-nav_menu .menu .menu-item-edit-active .menu-item-bar {
+.control-section-nav_menu.menu .menu-item-edit-active .menu-item-bar {
 	margin-left: 0;
 }
 
-.control-section-nav_menu .menu .sortable-placeholder {
+.control-section-nav_menu.menu .sortable-placeholder {
 	margin-top: 0;
 	margin-bottom: 1px;
 	max-width: -webkit-calc(100% - 2px);
@@ -395,7 +408,7 @@
 	float: none;
 }
 
-.control-section-nav_menu .menu ul.menu-item-transport .menu-item-bar {
+.control-section-nav_menu.menu ul.menu-item-transport .menu-item-bar {
 	margin-top: 0;
 }
 
@@ -474,6 +487,11 @@
 	background: #fff;
 	-webkit-transition: background-color 0.15s;
 	transition: background-color 0.15s;
+	/* Reset the value inherited from the base .accordion-section-title style. Ticket #37589. */
+	-webkit-user-select: auto;
+	-moz-user-select: auto;
+	-ms-user-select: auto;
+	user-select: auto;
 }
 
 #available-menu-items .open .accordion-section-title,
@@ -497,7 +515,7 @@
 	color: #23282d;
 }
 
-#available-menu-items .accordion-section-content {
+#available-menu-items .available-menu-items-list {
 	overflow-y: auto;
 	max-height: 200px; /* This gets set in JS to fit the screen size, and based on # of sections. */
 	background: transparent;
@@ -534,9 +552,24 @@
 }
 
 #available-menu-items .accordion-section-content {
-	padding: 1px 15px 15px 15px;
-	margin: 0;
 	max-height: 290px;
+	margin: 0;
+	padding: 0;
+	position: relative;
+	background: transparent;
+}
+
+#available-menu-items .accordion-section-content .available-menu-items-list {
+	margin: 0 0 45px 0;
+	padding: 1px 15px 15px 15px;
+}
+
+#available-menu-items .accordion-section-content .available-menu-items-list:only-child { /* Types that do not support new items for the current user */
+	margin-bottom: 0;
+}
+
+#new-custom-menu-item .accordion-section-content {
+	padding: 0 15px 15px 15px;
 }
 
 #available-menu-items .menu-item-tpl {
@@ -546,7 +579,9 @@
 #custom-menu-item-name.invalid,
 #custom-menu-item-url.invalid,
 .menu-name-field.invalid,
-.menu-name-field.invalid:focus {
+.menu-name-field.invalid:focus,
+#available-menu-items .new-content-item .create-item-input.invalid,
+#available-menu-items .new-content-item .create-item-input.invalid:focus {
 	border: 1px solid #f00;
 }
 
@@ -623,58 +658,17 @@
 	margin: 0 20px;
 }
 
-#available-menu-items-search .clear-results {
-	position: absolute;
-	top: 18px; /* 12 container padding +1 input margin +1 input border +4 ( 4 is ( 28 input height - 20 button height ) / 2 ) */
-	left: 20px;
-	width: 20px;
-	height: 20px;
-	padding: 0;
-	border: 0;
-	cursor: pointer;
-	background: none;
-	color: #a00;
-	text-decoration: none;
-	outline: 0;
-}
-
-#available-menu-items-search .clear-results,
-#available-menu-items-search.loading .clear-results.is-visible {
-	display: none;
-}
-
-#available-menu-items-search .clear-results.is-visible {
-	display: block;
-}
-
-.ie8 #available-menu-items-search.loading .clear-results:before {
-	content: ""; /* help IE8 redraw the pseudo element */
-}
-
-#available-menu-items-search .clear-results:before {
-	content: "\f335";
-	font: normal 20px/1 dashicons;
-	vertical-align: middle;
-	-webkit-font-smoothing: antialiased;
-	-moz-osx-font-smoothing: grayscale;
-}
-
-#available-menu-items-search .clear-results:hover,
-#available-menu-items-search .clear-results:focus {
-	color: #f00;
-}
-
 #available-menu-items-search .spinner {
 	position: absolute;
-	top: 18px; /* 12 container padding +1 input margin +1 input border +4 ( ( 28 input height - 20 button height ) / 2 ) */
-	left: 20px;
+	top: 20px; /* 13 container padding +1 input margin +6 ( ( 32 input height - 20 spinner height ) / 2 ) */
+	left: 21px;
 	margin: 0 !important;
 }
 
 /* search results list */
 #available-menu-items #available-menu-items-search .accordion-section-content {
 	position: absolute;
-	right: 1px;
+	right: 0;
 	top: 60px; /* below title div / search input */
 	bottom: 0px; /* 100% height that still triggers lazy load */
 	max-height: none;
@@ -685,6 +679,11 @@
 	box-sizing: border-box;
 }
 
+#available-menu-items-search .nothing-found {
+	/* Compensate the 1px top padding of the container. */
+	margin-top: -1px;
+}
+
 #available-menu-items-search .accordion-section-title:after {
 	display: none;
 }
@@ -754,9 +753,14 @@ body.adding-menu-items #customize-preview {
 
 /* Add/delete Menus */
 
+#customize-theme-controls .control-panel-content .control-section-nav_menu:nth-last-child(2) .accordion-section-title {
+	border-bottom-color: #ddd;
+}
+
 /* @todo update selector */
 #accordion-section-add_menu {
 	margin: 15px 12px;
+	overflow: hidden;
 }
 
 .new-menu-section-content {
@@ -850,7 +854,6 @@ li.assigned-to-menu-location .add-new-menu-item {
 .customize-screen-options-toggle:focus:before,
 #customize-controls .customize-info .customize-help-toggle:focus:before,
 .wp-customizer button:focus .toggle-indicator:after,
-#available-menu-items-search .clear-results:focus,
 .menu-delete:focus,
 .menu-item-bar .item-delete:focus:before,
 #available-menu-items .item-add:focus:before {
@@ -867,19 +870,10 @@ li.assigned-to-menu-location .add-new-menu-item {
 	#available-menu-items #available-menu-items-search .accordion-section-content {
 		top: 63px;
 	}
-
-	#available-menu-items-search .spinner,
-	#available-menu-items-search .clear-results {
-		top: 20px; /* 12 container padding +1 input margin +1 input border +5.5 ( 5.5 rounded to 6 is ( 31 input height - 20 button height ) / 2 ) */
-	}
 }
 
 @media screen and ( max-width: 640px ) {
 	#available-menu-items #available-menu-items-search .accordion-section-content {
-		top: 133px;
-	}
-
-	#available-menu-items-search .clear-results {
-		top: 90px; /* 70 section title height + 12 container padding +1 input margin +1 input border +5.5 ( 5.5 rounded to 6 is ( 31 input height - 20 button height ) / 2 ) */
+		top: 130px;
 	}
 }
diff --git a/wp-admin/css/customize-nav-menus-rtl.min.css b/wp-admin/css/customize-nav-menus-rtl.min.css
index 9c5e43cad..4bbb6e8d9 100644
--- a/wp-admin/css/customize-nav-menus-rtl.min.css
+++ b/wp-admin/css/customize-nav-menus-rtl.min.css
@@ -1 +1 @@
-#accordion-section-menu_locations{position:relative;margin-bottom:15px}.menu-in-location,.menu-in-locations{display:block;font-weight:600;font-size:10px}#customize-controls .control-section .accordion-section-title:focus .menu-in-location,#customize-controls .control-section .accordion-section-title:hover .menu-in-location,#customize-controls .theme-location-set{color:#555}.customize-control-nav_menu_location .edit-menu{margin-right:6px;vertical-align:middle;line-height:28px;color:#0073aa;text-decoration:underline}.customize-control-nav_menu_location .edit-menu:active,.customize-control-nav_menu_location .edit-menu:hover{color:#00a0d2}.customize-control-nav_menu_location .edit-menu:focus{color:#124964}.wp-customizer .menu-item-bar .menu-item-handle,.wp-customizer .menu-item-settings,.wp-customizer .menu-item-settings .description-thin{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-customizer .menu-item-bar{margin:0}.wp-customizer .menu-item-bar .menu-item-handle{width:100%;background:#fff}.wp-customizer .menu-item-handle .item-title{margin-left:0}.wp-customizer .menu-item-handle .item-type{padding:1px 5px 0 21px;float:left;text-align:left}.wp-customizer .menu-item-settings{max-width:100%;overflow:hidden;padding:10px;background:#eee;border:1px solid #999;border-top:none}.wp-customizer .menu-item-settings .description-thin{width:100%;height:auto;margin:0 0 8px}.wp-customizer .menu-item-settings input[type=text]{width:100%}.wp-customizer .menu-item-settings .submitbox{margin:0;padding:0}.wp-customizer .menu-item-settings .link-to-original{padding:5px 0;border:none;font-style:normal;margin:0;width:100%}.wp-customizer .menu-item .submitbox .submitdelete{float:right;margin:6px 0 0;padding:0;cursor:pointer}.menu-item-reorder-nav{display:none;background-color:#fff;position:absolute;top:0;left:0}.menus-move-left:before{content:"\f345"}.menus-move-right:before{content:"\f341"}.reordering .menu-item .item-controls,.reordering .menu-item .item-type{display:none}.reordering .menu-item-reorder-nav{display:block}.customize-control input.menu-name-field{width:100%;margin:12px 0}.wp-customizer .menu-item .item-edit{position:absolute;left:-19px;top:2px;display:block;width:30px;height:38px;margin-left:0!important;-webkit-box-shadow:none;box-shadow:none;outline:0;overflow:hidden;cursor:pointer}.wp-customizer .menu-item.menu-item-edit-active .item-edit .toggle-indicator:after{content:"\f142"}.wp-customizer .menu-item-settings p.description{font-style:normal}.wp-customizer .menu-settings dl{margin:12px 0 0;padding:0}.wp-customizer .menu-settings .checkbox-input{margin-top:8px}.wp-customizer .menu-settings .menu-theme-locations{border-top:1px solid #ccc}.wp-customizer .menu-settings{margin-top:36px;border-top:none}.menu-settings .customize-control-checkbox label{line-height:1}.menu-settings .customize-control.customize-control-checkbox{margin-bottom:8px}.customize-control-menu{margin-top:4px}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle{color:#555}.customize-screen-options-toggle{background:0 0;border:none;color:#555;cursor:pointer;margin:0;padding:20px;position:absolute;left:0;top:30px}#customize-controls .customize-info .customize-help-toggle{padding:20px}#customize-controls .customize-info .customize-help-toggle:before{padding:4px}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,.active-menu-screen-options .customize-screen-options-toggle,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.customize-screen-options-toggle:hover{color:#0073aa}#customize-controls .customize-info .customize-help-toggle:focus,.customize-screen-options-toggle:focus{outline:0}.customize-screen-options-toggle:before{-moz-osx-font-smoothing:grayscale;border:none;content:"\f111";display:block;font:18px/1 dashicons;padding:5px;text-align:center;text-decoration:none!important;text-indent:0;right:6px;position:absolute;top:6px}#customize-controls .customize-info .customize-help-toggle:focus:before,.customize-screen-options-toggle:focus:before{-webkit-border-radius:100%;border-radius:100%}.wp-customizer #screen-options-wrap{display:none;background:#fff;border-top:1px solid #ddd;padding:4px 15px 15px}.wp-customizer .metabox-prefs label{display:block;padding-left:0;line-height:30px}.wp-customizer .toggle-indicator{display:inline-block;font-size:20px;line-height:1;text-indent:-1px}.rtl .wp-customizer .toggle-indicator{text-indent:1px}.wp-customizer .toggle-indicator:after{content:"\f140";speak:none;vertical-align:top;-webkit-border-radius:50%;border-radius:50%;color:#72777c;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}#accordion-panel-nav_menus .field-css-classes,#accordion-panel-nav_menus .field-description,#accordion-panel-nav_menus .field-link-target,#accordion-panel-nav_menus .field-title-attribute,#accordion-panel-nav_menus .field-xfn{display:none}#accordion-panel-nav_menus.field-css-classes-active .field-css-classes,#accordion-panel-nav_menus.field-description-active .field-description,#accordion-panel-nav_menus.field-link-target-active .field-link-target,#accordion-panel-nav_menus.field-title-attribute-active .field-title-attribute,#accordion-panel-nav_menus.field-xfn-active .field-xfn{display:block}.menu-item-depth-0{margin-right:0}.menu-item-depth-1{margin-right:20px}.menu-item-depth-2{margin-right:40px}.menu-item-depth-3{margin-right:60px}.menu-item-depth-4{margin-right:80px}.menu-item-depth-5{margin-right:100px}.menu-item-depth-6{margin-right:120px}.menu-item-depth-7{margin-right:140px}.menu-item-depth-8{margin-right:160px}.menu-item-depth-9{margin-right:180px}.menu-item-depth-10{margin-right:200px}.menu-item-depth-11{margin-right:220px}.menu-item-depth-0>.menu-item-bar{margin-left:0}.menu-item-depth-1>.menu-item-bar{margin-left:20px}.menu-item-depth-2>.menu-item-bar{margin-left:40px}.menu-item-depth-3>.menu-item-bar{margin-left:60px}.menu-item-depth-4>.menu-item-bar{margin-left:80px}.menu-item-depth-5>.menu-item-bar{margin-left:100px}.menu-item-depth-6>.menu-item-bar{margin-left:120px}.menu-item-depth-7>.menu-item-bar{margin-left:140px}.menu-item-depth-8>.menu-item-bar{margin-left:160px}.menu-item-depth-9>.menu-item-bar{margin-left:180px}.menu-item-depth-10>.menu-item-bar{margin-left:200px}.menu-item-depth-11>.menu-item-bar{margin-left:220px}.menu-item-depth-0 .menu-item-transport{margin-right:0}.menu-item-depth-1 .menu-item-transport{margin-right:-20px}.menu-item-depth-3 .menu-item-transport{margin-right:-60px}.menu-item-depth-4 .menu-item-transport{margin-right:-80px}.menu-item-depth-2 .menu-item-transport{margin-right:-40px}.menu-item-depth-5 .menu-item-transport{margin-right:-100px}.menu-item-depth-6 .menu-item-transport{margin-right:-120px}.menu-item-depth-7 .menu-item-transport{margin-right:-140px}.menu-item-depth-8 .menu-item-transport{margin-right:-160px}.menu-item-depth-9 .menu-item-transport{margin-right:-180px}.menu-item-depth-10 .menu-item-transport{margin-right:-200px}.menu-item-depth-11 .menu-item-transport{margin-right:-220px}.reordering .menu-item-depth-0{margin-right:0}.reordering .menu-item-depth-1{margin-right:15px}.reordering .menu-item-depth-2{margin-right:30px}.reordering .menu-item-depth-3{margin-right:45px}.reordering .menu-item-depth-4{margin-right:60px}.reordering .menu-item-depth-5{margin-right:75px}.reordering .menu-item-depth-6{margin-right:90px}.reordering .menu-item-depth-7{margin-right:105px}.reordering .menu-item-depth-8{margin-right:120px}.reordering .menu-item-depth-9{margin-right:135px}.reordering .menu-item-depth-10{margin-right:150px}.reordering .menu-item-depth-11{margin-right:165px}.reordering .menu-item-depth-0>.menu-item-bar{margin-left:0}.reordering .menu-item-depth-1>.menu-item-bar{margin-left:15px}.reordering .menu-item-depth-2>.menu-item-bar{margin-left:30px}.reordering .menu-item-depth-3>.menu-item-bar{margin-left:45px}.reordering .menu-item-depth-4>.menu-item-bar{margin-left:60px}.reordering .menu-item-depth-5>.menu-item-bar{margin-left:75px}.reordering .menu-item-depth-6>.menu-item-bar{margin-left:90px}.reordering .menu-item-depth-7>.menu-item-bar{margin-left:105px}.reordering .menu-item-depth-8>.menu-item-bar{margin-left:120px}.reordering .menu-item-depth-9>.menu-item-bar{margin-left:135px}.reordering .menu-item-depth-10>.menu-item-bar{margin-left:150px}.reordering .menu-item-depth-11>.menu-item-bar{margin-left:165px}.control-section-nav_menu .menu .menu-item-edit-active{margin-right:0}.control-section-nav_menu .menu .menu-item-edit-active .menu-item-bar{margin-left:0}.control-section-nav_menu .menu .sortable-placeholder{margin-top:0;margin-bottom:1px;max-width:-webkit-calc(100% - 2px);max-width:calc(100% - 2px);float:right;display:list-item;border-color:#a0a5aa}.menu-item-transport li.customize-control{float:none}.control-section-nav_menu .menu ul.menu-item-transport .menu-item-bar{margin-top:0}.adding-menu-items .control-section{opacity:.4}.adding-menu-items .control-panel.control-section,.adding-menu-items .control-section.open{opacity:1}.menu-item-bar .item-delete{color:#a00;position:absolute;top:2px;left:-19px;width:30px;height:38px;cursor:pointer;display:none}.menu-item-bar .item-delete:before{content:"\f335";position:absolute;top:9px;right:5px;-webkit-border-radius:50%;border-radius:50%;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ie8 .menu-item-bar .item-delete:before{top:-10px}.menu-item-bar .item-delete:focus,.menu-item-bar .item-delete:hover{-webkit-box-shadow:none;box-shadow:none;outline:0;color:red}.adding-menu-items .menu-item-bar .item-edit{display:none}.adding-menu-items .menu-item-bar .item-delete{display:block}#available-menu-items.opening{overflow-y:hidden}#available-menu-items #available-menu-items-search.open{height:100%;border-bottom:none}#available-menu-items .accordion-section-title{border-right:none;border-left:none;background:#fff;-webkit-transition:background-color .15s;transition:background-color .15s}#available-menu-items #available-menu-items-search .accordion-section-title,#available-menu-items .open .accordion-section-title{background:#eee}#available-menu-items .accordion-section-title:after{content:none!important}#available-menu-items .accordion-section-title:hover .toggle-indicator:after,#available-menu-items .button-link:focus .toggle-indicator:after,#available-menu-items .button-link:hover .toggle-indicator:after{color:#23282d}#available-menu-items .open .accordion-section-title .toggle-indicator:after{content:"\f142";color:#23282d}#available-menu-items .accordion-section-title button{display:block;width:28px;height:35px;position:absolute;top:5px;left:5px;-webkit-box-shadow:none;box-shadow:none;outline:0;cursor:pointer}#available-menu-items .accordion-section-title .no-items,#available-menu-items .cannot-expand .accordion-section-title .spinner,#available-menu-items .cannot-expand .accordion-section-title>button{display:none}#available-menu-items-search.cannot-expand .accordion-section-title .spinner{display:block}#available-menu-items .cannot-expand .accordion-section-title .no-items{float:left;color:#555d66;font-weight:400;margin-right:5px}#available-menu-items .accordion-section-content{overflow-y:auto;background:0 0;padding:1px 15px 15px;margin:0;max-height:290px}#available-menu-items .menu-item-tpl{margin:0}#custom-menu-item-name.invalid,#custom-menu-item-url.invalid,.menu-name-field.invalid,.menu-name-field.invalid:focus{border:1px solid red}#available-menu-items .menu-item-handle .item-type{padding-left:0}#available-menu-items .menu-item-handle .item-title{padding-right:20px}#available-menu-items .menu-item-handle{cursor:pointer;-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}#available-menu-items .menu-item-handle:hover{z-index:1}#available-menu-items .item-title h4{padding:0 0 5px;font-size:14px}#available-menu-items .item-add{position:absolute;top:1px;right:1px;color:#82878c;width:30px;height:38px;-webkit-box-shadow:none;box-shadow:none;outline:0;cursor:pointer}#available-menu-items .menu-item-handle .item-add:focus{color:#23282d}#available-menu-items .item-add:before{content:"\f543";position:relative;right:2px;top:3px;display:inline-block;height:20px;-webkit-border-radius:50%;border-radius:50%;font:400 20px/1.05 dashicons}#available-menu-items .menu-item-handle.item-added .item-add:focus,#available-menu-items .menu-item-handle.item-added .item-title,#available-menu-items .menu-item-handle.item-added .item-type,#available-menu-items .menu-item-handle.item-added:hover .item-add{color:#82878c}#available-menu-items .menu-item-handle.item-added .item-add:before{content:"\f147"}#available-menu-items .accordion-section-title.loading .spinner,#available-menu-items-search.loading .accordion-section-title .spinner{visibility:visible;margin:0 20px}#available-menu-items-search .clear-results{position:absolute;top:18px;left:20px;width:20px;height:20px;padding:0;border:0;cursor:pointer;background:0 0;color:#a00;text-decoration:none;outline:0}#available-menu-items-search .clear-results,#available-menu-items-search.loading .clear-results.is-visible{display:none}#available-menu-items-search .clear-results.is-visible{display:block}.ie8 #available-menu-items-search.loading .clear-results:before{content:""}#available-menu-items-search .clear-results:before{content:"\f335";font:400 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items-search .clear-results:focus,#available-menu-items-search .clear-results:hover{color:red}#available-menu-items-search .spinner{position:absolute;top:18px;left:20px;margin:0!important}#available-menu-items #available-menu-items-search .accordion-section-content{position:absolute;right:1px;top:60px;bottom:0;max-height:none;width:100%;padding:1px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-menu-items-search .accordion-section-title:after{display:none}#available-menu-items-search .accordion-section-content:empty{min-height:0;padding:0}#available-menu-items-search.loading .accordion-section-content div{opacity:.5}#available-menu-items-search.loading.loading-more .accordion-section-content div{opacity:1}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-menu-items #available-menu-items{right:0;visibility:visible}body.adding-menu-items .wp-full-overlay-main{right:300px}body.adding-menu-items #customize-preview{opacity:.4}.menu-item-handle .spinner{display:none;float:right;margin:0 0 0 8px}.nav-menu-inserted-item-loading .spinner{display:block}.nav-menu-inserted-item-loading .menu-item-handle .item-type{padding:0 8px 0 0}.added-menu-item .menu-item-handle.loading,.nav-menu-inserted-item-loading .menu-item-handle{padding:10px 8px 10px 15px;cursor:default;opacity:.5;background:#fff;color:#727773}.added-menu-item .menu-item-handle{-webkit-transition-property:opacity,background,color;transition-property:opacity,background,color;-webkit-transition-duration:1.25s;transition-duration:1.25s;-webkit-transition-timing-function:cubic-bezier(.25,-2.5,.75,8);transition-timing-function:cubic-bezier(.25,-2.5,.75,8)}#accordion-section-add_menu{margin:15px 12px}.new-menu-section-content{display:none;padding:15px 0 0;clear:both}#accordion-section-add_menu .accordion-section-title{padding-right:45px}#accordion-section-add_menu .accordion-section-title:before{font:400 20px/1 dashicons;position:absolute;top:12px;right:14px;content:"\f132"}#create-new-menu-submit{float:left;margin:0 0 12px}.menu-delete-item{float:right;padding:1em 0;width:100%}li.assigned-to-menu-location .menu-delete-item{display:none}li.assigned-to-menu-location .add-new-menu-item{margin-bottom:1em}.menu-delete{color:#a00;cursor:pointer;text-decoration:underline}.menu-delete:focus,.menu-delete:hover{color:red;text-decoration:none}.menu-item-handle{margin-top:-1px}.ui-sortable-disabled .menu-item-handle{cursor:default}.menu-item-handle:hover{position:relative;z-index:10;color:#0073aa}#available-menu-items .menu-item-handle:hover .item-add,.menu-item-handle:hover .item-edit,.menu-item-handle:hover .item-type{color:#0073aa}.menu-item-edit-active .menu-item-handle{border-color:#999;border-bottom:none}.customize-control-nav_menu_item{margin-bottom:0}.customize-control-nav_menu{margin-top:12px}#available-menu-items .item-add:focus:before,#available-menu-items-search .clear-results:focus,#customize-controls .customize-info .customize-help-toggle:focus:before,.customize-screen-options-toggle:focus:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,.wp-customizer .menu-item .submitbox .submitdelete:focus,.wp-customizer button:focus .toggle-indicator:after{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}@media screen and (max-width:782px){#available-menu-items #available-menu-items-search .accordion-section-content{top:63px}#available-menu-items-search .clear-results,#available-menu-items-search .spinner{top:20px}}@media screen and (max-width:640px){#available-menu-items #available-menu-items-search .accordion-section-content{top:133px}#available-menu-items-search .clear-results{top:90px}}
\ No newline at end of file
+#customize-theme-controls #accordion-section-menu_locations{position:relative;margin-bottom:15px}#customize-theme-controls #accordion-section-menu_locations>.accordion-section-title{border-bottom-color:#ddd}.menu-in-location,.menu-in-locations{display:block;font-weight:600;font-size:10px}#customize-controls .control-section .accordion-section-title:focus .menu-in-location,#customize-controls .control-section .accordion-section-title:hover .menu-in-location,#customize-controls .theme-location-set{color:#555}.customize-control-nav_menu_location .edit-menu{margin-right:6px;vertical-align:middle;line-height:28px;color:#0073aa;text-decoration:underline}.customize-control-nav_menu_location .edit-menu:active,.customize-control-nav_menu_location .edit-menu:hover{color:#00a0d2}.customize-control-nav_menu_location .edit-menu:focus{color:#124964}.wp-customizer .menu-item-bar .menu-item-handle,.wp-customizer .menu-item-settings,.wp-customizer .menu-item-settings .description-thin{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-customizer .menu-item-bar{margin:0}.wp-customizer .menu-item-bar .menu-item-handle{width:100%;background:#fff}.wp-customizer .menu-item-handle .item-title{margin-left:0}.wp-customizer .menu-item-handle .item-type{padding:1px 5px 0 21px;float:left;text-align:left}.wp-customizer .menu-item-handle:hover{z-index:8}.customize-control-nav_menu_item.has-notifications .menu-item-handle{border-right:4px solid #00a0d2}.wp-customizer .menu-item-settings{max-width:100%;overflow:hidden;z-index:8;padding:10px;background:#eee;border:1px solid #999;border-top:none}.wp-customizer .menu-item-settings .description-thin{width:100%;height:auto;margin:0 0 8px}.wp-customizer .menu-item-settings input[type=text]{width:100%}.wp-customizer .menu-item-settings .submitbox{margin:0;padding:0}.wp-customizer .menu-item-settings .link-to-original{padding:5px 0;border:none;font-style:normal;margin:0;width:100%}.wp-customizer .menu-item .submitbox .submitdelete{float:right;margin:6px 0 0;padding:0;cursor:pointer}.menu-item-reorder-nav{display:none;background-color:#fff;position:absolute;top:0;left:0}.menus-move-left:before{content:"\f345"}.menus-move-right:before{content:"\f341"}.reordering .menu-item .item-controls,.reordering .menu-item .item-type{display:none}.reordering .menu-item-reorder-nav{display:block}.customize-control input.menu-name-field{width:100%;margin:12px 0}.wp-customizer .menu-item .item-edit{position:absolute;left:-19px;top:2px;display:block;width:30px;height:38px;margin-left:0!important;-webkit-box-shadow:none;box-shadow:none;outline:0;overflow:hidden;cursor:pointer}.wp-customizer .menu-item.menu-item-edit-active .item-edit .toggle-indicator:after{content:"\f142"}.wp-customizer .menu-item-settings p.description{font-style:normal}.wp-customizer .menu-settings dl{margin:12px 0 0;padding:0}.wp-customizer .menu-settings .checkbox-input{margin-top:8px}.wp-customizer .menu-settings .menu-theme-locations{border-top:1px solid #ccc}.wp-customizer .menu-settings{margin-top:36px;border-top:none}.menu-settings .customize-control-checkbox label{line-height:1}.menu-settings .customize-control.customize-control-checkbox{margin-bottom:8px}.customize-control-menu{margin-top:4px}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle{color:#555}.customize-screen-options-toggle{background:0 0;border:none;color:#555;cursor:pointer;margin:0;padding:20px;position:absolute;left:0;top:30px}#customize-controls .customize-info .customize-help-toggle{padding:20px}#customize-controls .customize-info .customize-help-toggle:before{padding:4px}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,.active-menu-screen-options .customize-screen-options-toggle,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.customize-screen-options-toggle:hover{color:#0073aa}#customize-controls .customize-info .customize-help-toggle:focus,.customize-screen-options-toggle:focus{outline:0}.customize-screen-options-toggle:before{-moz-osx-font-smoothing:grayscale;border:none;content:"\f111";display:block;font:18px/1 dashicons;padding:5px;text-align:center;text-decoration:none!important;text-indent:0;right:6px;position:absolute;top:6px}#customize-controls .customize-info .customize-help-toggle:focus:before,.customize-screen-options-toggle:focus:before{-webkit-border-radius:100%;border-radius:100%}.wp-customizer #screen-options-wrap{display:none;background:#fff;border-top:1px solid #ddd;padding:4px 15px 15px}.wp-customizer .metabox-prefs label{display:block;padding-left:0;line-height:30px}.wp-customizer .toggle-indicator{display:inline-block;font-size:20px;line-height:1;text-indent:-1px}.rtl .wp-customizer .toggle-indicator{text-indent:1px}.wp-customizer .toggle-indicator:after{content:"\f140";speak:none;vertical-align:top;-webkit-border-radius:50%;border-radius:50%;color:#72777c;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.control-section-nav_menu .field-css-classes,.control-section-nav_menu .field-description,.control-section-nav_menu .field-link-target,.control-section-nav_menu .field-title-attribute,.control-section-nav_menu .field-xfn{display:none}.control-section-nav_menu.field-css-classes-active .field-css-classes,.control-section-nav_menu.field-description-active .field-description,.control-section-nav_menu.field-link-target-active .field-link-target,.control-section-nav_menu.field-title-attribute-active .field-title-attribute,.control-section-nav_menu.field-xfn-active .field-xfn{display:block}.menu-item-depth-0{margin-right:0}.menu-item-depth-1{margin-right:20px}.menu-item-depth-2{margin-right:40px}.menu-item-depth-3{margin-right:60px}.menu-item-depth-4{margin-right:80px}.menu-item-depth-5{margin-right:100px}.menu-item-depth-6{margin-right:120px}.menu-item-depth-7{margin-right:140px}.menu-item-depth-8{margin-right:160px}.menu-item-depth-9{margin-right:180px}.menu-item-depth-10{margin-right:200px}.menu-item-depth-11{margin-right:220px}.menu-item-depth-0>.menu-item-bar{margin-left:0}.menu-item-depth-1>.menu-item-bar{margin-left:20px}.menu-item-depth-2>.menu-item-bar{margin-left:40px}.menu-item-depth-3>.menu-item-bar{margin-left:60px}.menu-item-depth-4>.menu-item-bar{margin-left:80px}.menu-item-depth-5>.menu-item-bar{margin-left:100px}.menu-item-depth-6>.menu-item-bar{margin-left:120px}.menu-item-depth-7>.menu-item-bar{margin-left:140px}.menu-item-depth-8>.menu-item-bar{margin-left:160px}.menu-item-depth-9>.menu-item-bar{margin-left:180px}.menu-item-depth-10>.menu-item-bar{margin-left:200px}.menu-item-depth-11>.menu-item-bar{margin-left:220px}.menu-item-depth-0 .menu-item-transport{margin-right:0}.menu-item-depth-1 .menu-item-transport{margin-right:-20px}.menu-item-depth-3 .menu-item-transport{margin-right:-60px}.menu-item-depth-4 .menu-item-transport{margin-right:-80px}.menu-item-depth-2 .menu-item-transport{margin-right:-40px}.menu-item-depth-5 .menu-item-transport{margin-right:-100px}.menu-item-depth-6 .menu-item-transport{margin-right:-120px}.menu-item-depth-7 .menu-item-transport{margin-right:-140px}.menu-item-depth-8 .menu-item-transport{margin-right:-160px}.menu-item-depth-9 .menu-item-transport{margin-right:-180px}.menu-item-depth-10 .menu-item-transport{margin-right:-200px}.menu-item-depth-11 .menu-item-transport{margin-right:-220px}.reordering .menu-item-depth-0{margin-right:0}.reordering .menu-item-depth-1{margin-right:15px}.reordering .menu-item-depth-2{margin-right:30px}.reordering .menu-item-depth-3{margin-right:45px}.reordering .menu-item-depth-4{margin-right:60px}.reordering .menu-item-depth-5{margin-right:75px}.reordering .menu-item-depth-6{margin-right:90px}.reordering .menu-item-depth-7{margin-right:105px}.reordering .menu-item-depth-8{margin-right:120px}.reordering .menu-item-depth-9{margin-right:135px}.reordering .menu-item-depth-10{margin-right:150px}.reordering .menu-item-depth-11{margin-right:165px}.reordering .menu-item-depth-0>.menu-item-bar{margin-left:0}.reordering .menu-item-depth-1>.menu-item-bar{margin-left:15px}.reordering .menu-item-depth-2>.menu-item-bar{margin-left:30px}.reordering .menu-item-depth-3>.menu-item-bar{margin-left:45px}.reordering .menu-item-depth-4>.menu-item-bar{margin-left:60px}.reordering .menu-item-depth-5>.menu-item-bar{margin-left:75px}.reordering .menu-item-depth-6>.menu-item-bar{margin-left:90px}.reordering .menu-item-depth-7>.menu-item-bar{margin-left:105px}.reordering .menu-item-depth-8>.menu-item-bar{margin-left:120px}.reordering .menu-item-depth-9>.menu-item-bar{margin-left:135px}.reordering .menu-item-depth-10>.menu-item-bar{margin-left:150px}.reordering .menu-item-depth-11>.menu-item-bar{margin-left:165px}.control-section-nav_menu.menu .menu-item-edit-active{margin-right:0}.control-section-nav_menu.menu .menu-item-edit-active .menu-item-bar{margin-left:0}.control-section-nav_menu.menu .sortable-placeholder{margin-top:0;margin-bottom:1px;max-width:-webkit-calc(100% - 2px);max-width:calc(100% - 2px);float:right;display:list-item;border-color:#a0a5aa}.menu-item-transport li.customize-control{float:none}.control-section-nav_menu.menu ul.menu-item-transport .menu-item-bar{margin-top:0}.adding-menu-items .control-section{opacity:.4}.adding-menu-items .control-panel.control-section,.adding-menu-items .control-section.open{opacity:1}.menu-item-bar .item-delete{color:#a00;position:absolute;top:2px;left:-19px;width:30px;height:38px;cursor:pointer;display:none}.menu-item-bar .item-delete:before{content:"\f335";position:absolute;top:9px;right:5px;-webkit-border-radius:50%;border-radius:50%;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ie8 .menu-item-bar .item-delete:before{top:-10px}.menu-item-bar .item-delete:focus,.menu-item-bar .item-delete:hover{-webkit-box-shadow:none;box-shadow:none;outline:0;color:red}.adding-menu-items .menu-item-bar .item-edit{display:none}.adding-menu-items .menu-item-bar .item-delete{display:block}#available-menu-items.opening{overflow-y:hidden}#available-menu-items #available-menu-items-search.open{height:100%;border-bottom:none}#available-menu-items .accordion-section-title{border-right:none;border-left:none;background:#fff;-webkit-transition:background-color .15s;transition:background-color .15s;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}#available-menu-items #available-menu-items-search .accordion-section-title,#available-menu-items .open .accordion-section-title{background:#eee}#available-menu-items .accordion-section-title:after{content:none!important}#available-menu-items .accordion-section-title:hover .toggle-indicator:after,#available-menu-items .button-link:focus .toggle-indicator:after,#available-menu-items .button-link:hover .toggle-indicator:after{color:#23282d}#available-menu-items .open .accordion-section-title .toggle-indicator:after{content:"\f142";color:#23282d}#available-menu-items .available-menu-items-list{overflow-y:auto;max-height:200px;background:0 0}#available-menu-items .accordion-section-title button{display:block;width:28px;height:35px;position:absolute;top:5px;left:5px;-webkit-box-shadow:none;box-shadow:none;outline:0;cursor:pointer}#available-menu-items .accordion-section-title .no-items,#available-menu-items .cannot-expand .accordion-section-title .spinner,#available-menu-items .cannot-expand .accordion-section-title>button{display:none}#available-menu-items-search.cannot-expand .accordion-section-title .spinner{display:block}#available-menu-items .cannot-expand .accordion-section-title .no-items{float:left;color:#555d66;font-weight:400;margin-right:5px}#available-menu-items .accordion-section-content{max-height:290px;margin:0;padding:0;position:relative;background:0 0}#available-menu-items .accordion-section-content .available-menu-items-list{margin:0 0 45px;padding:1px 15px 15px}#available-menu-items .accordion-section-content .available-menu-items-list:only-child{margin-bottom:0}#new-custom-menu-item .accordion-section-content{padding:0 15px 15px}#available-menu-items .menu-item-tpl{margin:0}#available-menu-items .new-content-item .create-item-input.invalid,#available-menu-items .new-content-item .create-item-input.invalid:focus,#custom-menu-item-name.invalid,#custom-menu-item-url.invalid,.menu-name-field.invalid,.menu-name-field.invalid:focus{border:1px solid red}#available-menu-items .menu-item-handle .item-type{padding-left:0}#available-menu-items .menu-item-handle .item-title{padding-right:20px}#available-menu-items .menu-item-handle{cursor:pointer;-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}#available-menu-items .menu-item-handle:hover{z-index:1}#available-menu-items .item-title h4{padding:0 0 5px;font-size:14px}#available-menu-items .item-add{position:absolute;top:1px;right:1px;color:#82878c;width:30px;height:38px;-webkit-box-shadow:none;box-shadow:none;outline:0;cursor:pointer}#available-menu-items .menu-item-handle .item-add:focus{color:#23282d}#available-menu-items .item-add:before{content:"\f543";position:relative;right:2px;top:3px;display:inline-block;height:20px;-webkit-border-radius:50%;border-radius:50%;font:400 20px/1.05 dashicons}#available-menu-items .menu-item-handle.item-added .item-add:focus,#available-menu-items .menu-item-handle.item-added .item-title,#available-menu-items .menu-item-handle.item-added .item-type,#available-menu-items .menu-item-handle.item-added:hover .item-add{color:#82878c}#available-menu-items .menu-item-handle.item-added .item-add:before{content:"\f147"}#available-menu-items .accordion-section-title.loading .spinner,#available-menu-items-search.loading .accordion-section-title .spinner{visibility:visible;margin:0 20px}#available-menu-items-search .spinner{position:absolute;top:20px;left:21px;margin:0!important}#available-menu-items #available-menu-items-search .accordion-section-content{position:absolute;right:0;top:60px;bottom:0;max-height:none;width:100%;padding:1px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-menu-items-search .nothing-found{margin-top:-1px}#available-menu-items-search .accordion-section-title:after{display:none}#available-menu-items-search .accordion-section-content:empty{min-height:0;padding:0}#available-menu-items-search.loading .accordion-section-content div{opacity:.5}#available-menu-items-search.loading.loading-more .accordion-section-content div{opacity:1}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-menu-items #available-menu-items{right:0;visibility:visible}body.adding-menu-items .wp-full-overlay-main{right:300px}body.adding-menu-items #customize-preview{opacity:.4}.menu-item-handle .spinner{display:none;float:right;margin:0 0 0 8px}.nav-menu-inserted-item-loading .spinner{display:block}.nav-menu-inserted-item-loading .menu-item-handle .item-type{padding:0 8px 0 0}.added-menu-item .menu-item-handle.loading,.nav-menu-inserted-item-loading .menu-item-handle{padding:10px 8px 10px 15px;cursor:default;opacity:.5;background:#fff;color:#727773}.added-menu-item .menu-item-handle{-webkit-transition-property:opacity,background,color;transition-property:opacity,background,color;-webkit-transition-duration:1.25s;transition-duration:1.25s;-webkit-transition-timing-function:cubic-bezier(.25,-2.5,.75,8);transition-timing-function:cubic-bezier(.25,-2.5,.75,8)}#customize-theme-controls .control-panel-content .control-section-nav_menu:nth-last-child(2) .accordion-section-title{border-bottom-color:#ddd}#accordion-section-add_menu{margin:15px 12px;overflow:hidden}.new-menu-section-content{display:none;padding:15px 0 0;clear:both}#accordion-section-add_menu .accordion-section-title{padding-right:45px}#accordion-section-add_menu .accordion-section-title:before{font:400 20px/1 dashicons;position:absolute;top:12px;right:14px;content:"\f132"}#create-new-menu-submit{float:left;margin:0 0 12px}.menu-delete-item{float:right;padding:1em 0;width:100%}li.assigned-to-menu-location .menu-delete-item{display:none}li.assigned-to-menu-location .add-new-menu-item{margin-bottom:1em}.menu-delete{color:#a00;cursor:pointer;text-decoration:underline}.menu-delete:focus,.menu-delete:hover{color:red;text-decoration:none}.menu-item-handle{margin-top:-1px}.ui-sortable-disabled .menu-item-handle{cursor:default}.menu-item-handle:hover{position:relative;z-index:10;color:#0073aa}#available-menu-items .menu-item-handle:hover .item-add,.menu-item-handle:hover .item-edit,.menu-item-handle:hover .item-type{color:#0073aa}.menu-item-edit-active .menu-item-handle{border-color:#999;border-bottom:none}.customize-control-nav_menu_item{margin-bottom:0}.customize-control-nav_menu{margin-top:12px}#available-menu-items .item-add:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.customize-screen-options-toggle:focus:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,.wp-customizer .menu-item .submitbox .submitdelete:focus,.wp-customizer button:focus .toggle-indicator:after{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}@media screen and (max-width:782px){#available-menu-items #available-menu-items-search .accordion-section-content{top:63px}}@media screen and (max-width:640px){#available-menu-items #available-menu-items-search .accordion-section-content{top:130px}}
\ No newline at end of file
diff --git a/wp-admin/css/customize-nav-menus.css b/wp-admin/css/customize-nav-menus.css
index afe0cbc56..6fe558d28 100644
--- a/wp-admin/css/customize-nav-menus.css
+++ b/wp-admin/css/customize-nav-menus.css
@@ -1,8 +1,12 @@
-#accordion-section-menu_locations {
+#customize-theme-controls #accordion-section-menu_locations {
 	position: relative;
 	margin-bottom: 15px;
 }
 
+#customize-theme-controls #accordion-section-menu_locations > .accordion-section-title {
+	border-bottom-color: #ddd;
+}
+
 .menu-in-location,
 .menu-in-locations {
 	display: block;
@@ -61,9 +65,18 @@
 	text-align: right;
 }
 
+.wp-customizer .menu-item-handle:hover {
+	z-index: 8;
+}
+
+.customize-control-nav_menu_item.has-notifications .menu-item-handle {
+	border-left: 4px solid #00a0d2;
+}
+
 .wp-customizer .menu-item-settings {
 	max-width: 100%;
 	overflow: hidden;
+	z-index: 8;
 	padding: 10px;
 	background: #eee;
 	border: 1px solid #999;
@@ -288,19 +301,19 @@
 	text-decoration: none !important;
 }
 
-#accordion-panel-nav_menus .field-link-target,
-#accordion-panel-nav_menus .field-title-attribute,
-#accordion-panel-nav_menus .field-css-classes,
-#accordion-panel-nav_menus .field-xfn,
-#accordion-panel-nav_menus .field-description {
+.control-section-nav_menu .field-link-target,
+.control-section-nav_menu .field-title-attribute,
+.control-section-nav_menu .field-css-classes,
+.control-section-nav_menu .field-xfn,
+.control-section-nav_menu .field-description {
 	display: none;
 }
 
-#accordion-panel-nav_menus.field-link-target-active .field-link-target,
-#accordion-panel-nav_menus.field-title-attribute-active .field-title-attribute,
-#accordion-panel-nav_menus.field-css-classes-active .field-css-classes,
-#accordion-panel-nav_menus.field-xfn-active .field-xfn,
-#accordion-panel-nav_menus.field-description-active .field-description {
+.control-section-nav_menu.field-link-target-active .field-link-target,
+.control-section-nav_menu.field-title-attribute-active .field-title-attribute,
+.control-section-nav_menu.field-css-classes-active .field-css-classes,
+.control-section-nav_menu.field-xfn-active .field-xfn,
+.control-section-nav_menu.field-description-active .field-description {
 	display: block;
 }
 
@@ -373,15 +386,15 @@
 .reordering .menu-item-depth-10 > .menu-item-bar { margin-right: 150px; }
 .reordering .menu-item-depth-11 > .menu-item-bar { margin-right: 165px; }
 
-.control-section-nav_menu .menu .menu-item-edit-active {
+.control-section-nav_menu.menu .menu-item-edit-active {
 	margin-left: 0;
 }
 
-.control-section-nav_menu .menu .menu-item-edit-active .menu-item-bar {
+.control-section-nav_menu.menu .menu-item-edit-active .menu-item-bar {
 	margin-right: 0;
 }
 
-.control-section-nav_menu .menu .sortable-placeholder {
+.control-section-nav_menu.menu .sortable-placeholder {
 	margin-top: 0;
 	margin-bottom: 1px;
 	max-width: -webkit-calc(100% - 2px);
@@ -395,7 +408,7 @@
 	float: none;
 }
 
-.control-section-nav_menu .menu ul.menu-item-transport .menu-item-bar {
+.control-section-nav_menu.menu ul.menu-item-transport .menu-item-bar {
 	margin-top: 0;
 }
 
@@ -474,6 +487,11 @@
 	background: #fff;
 	-webkit-transition: background-color 0.15s;
 	transition: background-color 0.15s;
+	/* Reset the value inherited from the base .accordion-section-title style. Ticket #37589. */
+	-webkit-user-select: auto;
+	-moz-user-select: auto;
+	-ms-user-select: auto;
+	user-select: auto;
 }
 
 #available-menu-items .open .accordion-section-title,
@@ -497,7 +515,7 @@
 	color: #23282d;
 }
 
-#available-menu-items .accordion-section-content {
+#available-menu-items .available-menu-items-list {
 	overflow-y: auto;
 	max-height: 200px; /* This gets set in JS to fit the screen size, and based on # of sections. */
 	background: transparent;
@@ -534,9 +552,24 @@
 }
 
 #available-menu-items .accordion-section-content {
-	padding: 1px 15px 15px 15px;
-	margin: 0;
 	max-height: 290px;
+	margin: 0;
+	padding: 0;
+	position: relative;
+	background: transparent;
+}
+
+#available-menu-items .accordion-section-content .available-menu-items-list {
+	margin: 0 0 45px 0;
+	padding: 1px 15px 15px 15px;
+}
+
+#available-menu-items .accordion-section-content .available-menu-items-list:only-child { /* Types that do not support new items for the current user */
+	margin-bottom: 0;
+}
+
+#new-custom-menu-item .accordion-section-content {
+	padding: 0 15px 15px 15px;
 }
 
 #available-menu-items .menu-item-tpl {
@@ -546,7 +579,9 @@
 #custom-menu-item-name.invalid,
 #custom-menu-item-url.invalid,
 .menu-name-field.invalid,
-.menu-name-field.invalid:focus {
+.menu-name-field.invalid:focus,
+#available-menu-items .new-content-item .create-item-input.invalid,
+#available-menu-items .new-content-item .create-item-input.invalid:focus {
 	border: 1px solid #f00;
 }
 
@@ -623,58 +658,17 @@
 	margin: 0 20px;
 }
 
-#available-menu-items-search .clear-results {
-	position: absolute;
-	top: 18px; /* 12 container padding +1 input margin +1 input border +4 ( 4 is ( 28 input height - 20 button height ) / 2 ) */
-	right: 20px;
-	width: 20px;
-	height: 20px;
-	padding: 0;
-	border: 0;
-	cursor: pointer;
-	background: none;
-	color: #a00;
-	text-decoration: none;
-	outline: 0;
-}
-
-#available-menu-items-search .clear-results,
-#available-menu-items-search.loading .clear-results.is-visible {
-	display: none;
-}
-
-#available-menu-items-search .clear-results.is-visible {
-	display: block;
-}
-
-.ie8 #available-menu-items-search.loading .clear-results:before {
-	content: ""; /* help IE8 redraw the pseudo element */
-}
-
-#available-menu-items-search .clear-results:before {
-	content: "\f335";
-	font: normal 20px/1 dashicons;
-	vertical-align: middle;
-	-webkit-font-smoothing: antialiased;
-	-moz-osx-font-smoothing: grayscale;
-}
-
-#available-menu-items-search .clear-results:hover,
-#available-menu-items-search .clear-results:focus {
-	color: #f00;
-}
-
 #available-menu-items-search .spinner {
 	position: absolute;
-	top: 18px; /* 12 container padding +1 input margin +1 input border +4 ( ( 28 input height - 20 button height ) / 2 ) */
-	right: 20px;
+	top: 20px; /* 13 container padding +1 input margin +6 ( ( 32 input height - 20 spinner height ) / 2 ) */
+	right: 21px;
 	margin: 0 !important;
 }
 
 /* search results list */
 #available-menu-items #available-menu-items-search .accordion-section-content {
 	position: absolute;
-	left: 1px;
+	left: 0;
 	top: 60px; /* below title div / search input */
 	bottom: 0px; /* 100% height that still triggers lazy load */
 	max-height: none;
@@ -685,6 +679,11 @@
 	box-sizing: border-box;
 }
 
+#available-menu-items-search .nothing-found {
+	/* Compensate the 1px top padding of the container. */
+	margin-top: -1px;
+}
+
 #available-menu-items-search .accordion-section-title:after {
 	display: none;
 }
@@ -754,9 +753,14 @@ body.adding-menu-items #customize-preview {
 
 /* Add/delete Menus */
 
+#customize-theme-controls .control-panel-content .control-section-nav_menu:nth-last-child(2) .accordion-section-title {
+	border-bottom-color: #ddd;
+}
+
 /* @todo update selector */
 #accordion-section-add_menu {
 	margin: 15px 12px;
+	overflow: hidden;
 }
 
 .new-menu-section-content {
@@ -850,7 +854,6 @@ li.assigned-to-menu-location .add-new-menu-item {
 .customize-screen-options-toggle:focus:before,
 #customize-controls .customize-info .customize-help-toggle:focus:before,
 .wp-customizer button:focus .toggle-indicator:after,
-#available-menu-items-search .clear-results:focus,
 .menu-delete:focus,
 .menu-item-bar .item-delete:focus:before,
 #available-menu-items .item-add:focus:before {
@@ -867,19 +870,10 @@ li.assigned-to-menu-location .add-new-menu-item {
 	#available-menu-items #available-menu-items-search .accordion-section-content {
 		top: 63px;
 	}
-
-	#available-menu-items-search .spinner,
-	#available-menu-items-search .clear-results {
-		top: 20px; /* 12 container padding +1 input margin +1 input border +5.5 ( 5.5 rounded to 6 is ( 31 input height - 20 button height ) / 2 ) */
-	}
 }
 
 @media screen and ( max-width: 640px ) {
 	#available-menu-items #available-menu-items-search .accordion-section-content {
-		top: 133px;
-	}
-
-	#available-menu-items-search .clear-results {
-		top: 90px; /* 70 section title height + 12 container padding +1 input margin +1 input border +5.5 ( 5.5 rounded to 6 is ( 31 input height - 20 button height ) / 2 ) */
+		top: 130px;
 	}
 }
diff --git a/wp-admin/css/customize-nav-menus.min.css b/wp-admin/css/customize-nav-menus.min.css
index 4c2e208a1..7a0852375 100644
--- a/wp-admin/css/customize-nav-menus.min.css
+++ b/wp-admin/css/customize-nav-menus.min.css
@@ -1 +1 @@
-#accordion-section-menu_locations{position:relative;margin-bottom:15px}.menu-in-location,.menu-in-locations{display:block;font-weight:600;font-size:10px}#customize-controls .control-section .accordion-section-title:focus .menu-in-location,#customize-controls .control-section .accordion-section-title:hover .menu-in-location,#customize-controls .theme-location-set{color:#555}.customize-control-nav_menu_location .edit-menu{margin-left:6px;vertical-align:middle;line-height:28px;color:#0073aa;text-decoration:underline}.customize-control-nav_menu_location .edit-menu:active,.customize-control-nav_menu_location .edit-menu:hover{color:#00a0d2}.customize-control-nav_menu_location .edit-menu:focus{color:#124964}.wp-customizer .menu-item-bar .menu-item-handle,.wp-customizer .menu-item-settings,.wp-customizer .menu-item-settings .description-thin{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-customizer .menu-item-bar{margin:0}.wp-customizer .menu-item-bar .menu-item-handle{width:100%;background:#fff}.wp-customizer .menu-item-handle .item-title{margin-right:0}.wp-customizer .menu-item-handle .item-type{padding:1px 21px 0 5px;float:right;text-align:right}.wp-customizer .menu-item-settings{max-width:100%;overflow:hidden;padding:10px;background:#eee;border:1px solid #999;border-top:none}.wp-customizer .menu-item-settings .description-thin{width:100%;height:auto;margin:0 0 8px}.wp-customizer .menu-item-settings input[type=text]{width:100%}.wp-customizer .menu-item-settings .submitbox{margin:0;padding:0}.wp-customizer .menu-item-settings .link-to-original{padding:5px 0;border:none;font-style:normal;margin:0;width:100%}.wp-customizer .menu-item .submitbox .submitdelete{float:left;margin:6px 0 0;padding:0;cursor:pointer}.menu-item-reorder-nav{display:none;background-color:#fff;position:absolute;top:0;right:0}.menus-move-left:before{content:"\f341"}.menus-move-right:before{content:"\f345"}.reordering .menu-item .item-controls,.reordering .menu-item .item-type{display:none}.reordering .menu-item-reorder-nav{display:block}.customize-control input.menu-name-field{width:100%;margin:12px 0}.wp-customizer .menu-item .item-edit{position:absolute;right:-19px;top:2px;display:block;width:30px;height:38px;margin-right:0!important;-webkit-box-shadow:none;box-shadow:none;outline:0;overflow:hidden;cursor:pointer}.wp-customizer .menu-item.menu-item-edit-active .item-edit .toggle-indicator:after{content:"\f142"}.wp-customizer .menu-item-settings p.description{font-style:normal}.wp-customizer .menu-settings dl{margin:12px 0 0;padding:0}.wp-customizer .menu-settings .checkbox-input{margin-top:8px}.wp-customizer .menu-settings .menu-theme-locations{border-top:1px solid #ccc}.wp-customizer .menu-settings{margin-top:36px;border-top:none}.menu-settings .customize-control-checkbox label{line-height:1}.menu-settings .customize-control.customize-control-checkbox{margin-bottom:8px}.customize-control-menu{margin-top:4px}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle{color:#555}.customize-screen-options-toggle{background:0 0;border:none;color:#555;cursor:pointer;margin:0;padding:20px;position:absolute;right:0;top:30px}#customize-controls .customize-info .customize-help-toggle{padding:20px}#customize-controls .customize-info .customize-help-toggle:before{padding:4px}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,.active-menu-screen-options .customize-screen-options-toggle,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.customize-screen-options-toggle:hover{color:#0073aa}#customize-controls .customize-info .customize-help-toggle:focus,.customize-screen-options-toggle:focus{outline:0}.customize-screen-options-toggle:before{-moz-osx-font-smoothing:grayscale;border:none;content:"\f111";display:block;font:18px/1 dashicons;padding:5px;text-align:center;text-decoration:none!important;text-indent:0;left:6px;position:absolute;top:6px}#customize-controls .customize-info .customize-help-toggle:focus:before,.customize-screen-options-toggle:focus:before{-webkit-border-radius:100%;border-radius:100%}.wp-customizer #screen-options-wrap{display:none;background:#fff;border-top:1px solid #ddd;padding:4px 15px 15px}.wp-customizer .metabox-prefs label{display:block;padding-right:0;line-height:30px}.wp-customizer .toggle-indicator{display:inline-block;font-size:20px;line-height:1;text-indent:-1px}.rtl .wp-customizer .toggle-indicator{text-indent:1px}.wp-customizer .toggle-indicator:after{content:"\f140";speak:none;vertical-align:top;-webkit-border-radius:50%;border-radius:50%;color:#72777c;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}#accordion-panel-nav_menus .field-css-classes,#accordion-panel-nav_menus .field-description,#accordion-panel-nav_menus .field-link-target,#accordion-panel-nav_menus .field-title-attribute,#accordion-panel-nav_menus .field-xfn{display:none}#accordion-panel-nav_menus.field-css-classes-active .field-css-classes,#accordion-panel-nav_menus.field-description-active .field-description,#accordion-panel-nav_menus.field-link-target-active .field-link-target,#accordion-panel-nav_menus.field-title-attribute-active .field-title-attribute,#accordion-panel-nav_menus.field-xfn-active .field-xfn{display:block}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:20px}.menu-item-depth-2{margin-left:40px}.menu-item-depth-3{margin-left:60px}.menu-item-depth-4{margin-left:80px}.menu-item-depth-5{margin-left:100px}.menu-item-depth-6{margin-left:120px}.menu-item-depth-7{margin-left:140px}.menu-item-depth-8{margin-left:160px}.menu-item-depth-9{margin-left:180px}.menu-item-depth-10{margin-left:200px}.menu-item-depth-11{margin-left:220px}.menu-item-depth-0>.menu-item-bar{margin-right:0}.menu-item-depth-1>.menu-item-bar{margin-right:20px}.menu-item-depth-2>.menu-item-bar{margin-right:40px}.menu-item-depth-3>.menu-item-bar{margin-right:60px}.menu-item-depth-4>.menu-item-bar{margin-right:80px}.menu-item-depth-5>.menu-item-bar{margin-right:100px}.menu-item-depth-6>.menu-item-bar{margin-right:120px}.menu-item-depth-7>.menu-item-bar{margin-right:140px}.menu-item-depth-8>.menu-item-bar{margin-right:160px}.menu-item-depth-9>.menu-item-bar{margin-right:180px}.menu-item-depth-10>.menu-item-bar{margin-right:200px}.menu-item-depth-11>.menu-item-bar{margin-right:220px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-20px}.menu-item-depth-3 .menu-item-transport{margin-left:-60px}.menu-item-depth-4 .menu-item-transport{margin-left:-80px}.menu-item-depth-2 .menu-item-transport{margin-left:-40px}.menu-item-depth-5 .menu-item-transport{margin-left:-100px}.menu-item-depth-6 .menu-item-transport{margin-left:-120px}.menu-item-depth-7 .menu-item-transport{margin-left:-140px}.menu-item-depth-8 .menu-item-transport{margin-left:-160px}.menu-item-depth-9 .menu-item-transport{margin-left:-180px}.menu-item-depth-10 .menu-item-transport{margin-left:-200px}.menu-item-depth-11 .menu-item-transport{margin-left:-220px}.reordering .menu-item-depth-0{margin-left:0}.reordering .menu-item-depth-1{margin-left:15px}.reordering .menu-item-depth-2{margin-left:30px}.reordering .menu-item-depth-3{margin-left:45px}.reordering .menu-item-depth-4{margin-left:60px}.reordering .menu-item-depth-5{margin-left:75px}.reordering .menu-item-depth-6{margin-left:90px}.reordering .menu-item-depth-7{margin-left:105px}.reordering .menu-item-depth-8{margin-left:120px}.reordering .menu-item-depth-9{margin-left:135px}.reordering .menu-item-depth-10{margin-left:150px}.reordering .menu-item-depth-11{margin-left:165px}.reordering .menu-item-depth-0>.menu-item-bar{margin-right:0}.reordering .menu-item-depth-1>.menu-item-bar{margin-right:15px}.reordering .menu-item-depth-2>.menu-item-bar{margin-right:30px}.reordering .menu-item-depth-3>.menu-item-bar{margin-right:45px}.reordering .menu-item-depth-4>.menu-item-bar{margin-right:60px}.reordering .menu-item-depth-5>.menu-item-bar{margin-right:75px}.reordering .menu-item-depth-6>.menu-item-bar{margin-right:90px}.reordering .menu-item-depth-7>.menu-item-bar{margin-right:105px}.reordering .menu-item-depth-8>.menu-item-bar{margin-right:120px}.reordering .menu-item-depth-9>.menu-item-bar{margin-right:135px}.reordering .menu-item-depth-10>.menu-item-bar{margin-right:150px}.reordering .menu-item-depth-11>.menu-item-bar{margin-right:165px}.control-section-nav_menu .menu .menu-item-edit-active{margin-left:0}.control-section-nav_menu .menu .menu-item-edit-active .menu-item-bar{margin-right:0}.control-section-nav_menu .menu .sortable-placeholder{margin-top:0;margin-bottom:1px;max-width:-webkit-calc(100% - 2px);max-width:calc(100% - 2px);float:left;display:list-item;border-color:#a0a5aa}.menu-item-transport li.customize-control{float:none}.control-section-nav_menu .menu ul.menu-item-transport .menu-item-bar{margin-top:0}.adding-menu-items .control-section{opacity:.4}.adding-menu-items .control-panel.control-section,.adding-menu-items .control-section.open{opacity:1}.menu-item-bar .item-delete{color:#a00;position:absolute;top:2px;right:-19px;width:30px;height:38px;cursor:pointer;display:none}.menu-item-bar .item-delete:before{content:"\f335";position:absolute;top:9px;left:5px;-webkit-border-radius:50%;border-radius:50%;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ie8 .menu-item-bar .item-delete:before{top:-10px}.menu-item-bar .item-delete:focus,.menu-item-bar .item-delete:hover{-webkit-box-shadow:none;box-shadow:none;outline:0;color:red}.adding-menu-items .menu-item-bar .item-edit{display:none}.adding-menu-items .menu-item-bar .item-delete{display:block}#available-menu-items.opening{overflow-y:hidden}#available-menu-items #available-menu-items-search.open{height:100%;border-bottom:none}#available-menu-items .accordion-section-title{border-left:none;border-right:none;background:#fff;-webkit-transition:background-color .15s;transition:background-color .15s}#available-menu-items #available-menu-items-search .accordion-section-title,#available-menu-items .open .accordion-section-title{background:#eee}#available-menu-items .accordion-section-title:after{content:none!important}#available-menu-items .accordion-section-title:hover .toggle-indicator:after,#available-menu-items .button-link:focus .toggle-indicator:after,#available-menu-items .button-link:hover .toggle-indicator:after{color:#23282d}#available-menu-items .open .accordion-section-title .toggle-indicator:after{content:"\f142";color:#23282d}#available-menu-items .accordion-section-title button{display:block;width:28px;height:35px;position:absolute;top:5px;right:5px;-webkit-box-shadow:none;box-shadow:none;outline:0;cursor:pointer}#available-menu-items .accordion-section-title .no-items,#available-menu-items .cannot-expand .accordion-section-title .spinner,#available-menu-items .cannot-expand .accordion-section-title>button{display:none}#available-menu-items-search.cannot-expand .accordion-section-title .spinner{display:block}#available-menu-items .cannot-expand .accordion-section-title .no-items{float:right;color:#555d66;font-weight:400;margin-left:5px}#available-menu-items .accordion-section-content{overflow-y:auto;background:0 0;padding:1px 15px 15px;margin:0;max-height:290px}#available-menu-items .menu-item-tpl{margin:0}#custom-menu-item-name.invalid,#custom-menu-item-url.invalid,.menu-name-field.invalid,.menu-name-field.invalid:focus{border:1px solid red}#available-menu-items .menu-item-handle .item-type{padding-right:0}#available-menu-items .menu-item-handle .item-title{padding-left:20px}#available-menu-items .menu-item-handle{cursor:pointer;-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}#available-menu-items .menu-item-handle:hover{z-index:1}#available-menu-items .item-title h4{padding:0 0 5px;font-size:14px}#available-menu-items .item-add{position:absolute;top:1px;left:1px;color:#82878c;width:30px;height:38px;-webkit-box-shadow:none;box-shadow:none;outline:0;cursor:pointer}#available-menu-items .menu-item-handle .item-add:focus{color:#23282d}#available-menu-items .item-add:before{content:"\f543";position:relative;left:2px;top:3px;display:inline-block;height:20px;-webkit-border-radius:50%;border-radius:50%;font:400 20px/1.05 dashicons}#available-menu-items .menu-item-handle.item-added .item-add:focus,#available-menu-items .menu-item-handle.item-added .item-title,#available-menu-items .menu-item-handle.item-added .item-type,#available-menu-items .menu-item-handle.item-added:hover .item-add{color:#82878c}#available-menu-items .menu-item-handle.item-added .item-add:before{content:"\f147"}#available-menu-items .accordion-section-title.loading .spinner,#available-menu-items-search.loading .accordion-section-title .spinner{visibility:visible;margin:0 20px}#available-menu-items-search .clear-results{position:absolute;top:18px;right:20px;width:20px;height:20px;padding:0;border:0;cursor:pointer;background:0 0;color:#a00;text-decoration:none;outline:0}#available-menu-items-search .clear-results,#available-menu-items-search.loading .clear-results.is-visible{display:none}#available-menu-items-search .clear-results.is-visible{display:block}.ie8 #available-menu-items-search.loading .clear-results:before{content:""}#available-menu-items-search .clear-results:before{content:"\f335";font:400 20px/1 dashicons;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-menu-items-search .clear-results:focus,#available-menu-items-search .clear-results:hover{color:red}#available-menu-items-search .spinner{position:absolute;top:18px;right:20px;margin:0!important}#available-menu-items #available-menu-items-search .accordion-section-content{position:absolute;left:1px;top:60px;bottom:0;max-height:none;width:100%;padding:1px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-menu-items-search .accordion-section-title:after{display:none}#available-menu-items-search .accordion-section-content:empty{min-height:0;padding:0}#available-menu-items-search.loading .accordion-section-content div{opacity:.5}#available-menu-items-search.loading.loading-more .accordion-section-content div{opacity:1}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-menu-items #available-menu-items{left:0;visibility:visible}body.adding-menu-items .wp-full-overlay-main{left:300px}body.adding-menu-items #customize-preview{opacity:.4}.menu-item-handle .spinner{display:none;float:left;margin:0 8px 0 0}.nav-menu-inserted-item-loading .spinner{display:block}.nav-menu-inserted-item-loading .menu-item-handle .item-type{padding:0 0 0 8px}.added-menu-item .menu-item-handle.loading,.nav-menu-inserted-item-loading .menu-item-handle{padding:10px 15px 10px 8px;cursor:default;opacity:.5;background:#fff;color:#727773}.added-menu-item .menu-item-handle{-webkit-transition-property:opacity,background,color;transition-property:opacity,background,color;-webkit-transition-duration:1.25s;transition-duration:1.25s;-webkit-transition-timing-function:cubic-bezier(.25,-2.5,.75,8);transition-timing-function:cubic-bezier(.25,-2.5,.75,8)}#accordion-section-add_menu{margin:15px 12px}.new-menu-section-content{display:none;padding:15px 0 0;clear:both}#accordion-section-add_menu .accordion-section-title{padding-left:45px}#accordion-section-add_menu .accordion-section-title:before{font:400 20px/1 dashicons;position:absolute;top:12px;left:14px;content:"\f132"}#create-new-menu-submit{float:right;margin:0 0 12px}.menu-delete-item{float:left;padding:1em 0;width:100%}li.assigned-to-menu-location .menu-delete-item{display:none}li.assigned-to-menu-location .add-new-menu-item{margin-bottom:1em}.menu-delete{color:#a00;cursor:pointer;text-decoration:underline}.menu-delete:focus,.menu-delete:hover{color:red;text-decoration:none}.menu-item-handle{margin-top:-1px}.ui-sortable-disabled .menu-item-handle{cursor:default}.menu-item-handle:hover{position:relative;z-index:10;color:#0073aa}#available-menu-items .menu-item-handle:hover .item-add,.menu-item-handle:hover .item-edit,.menu-item-handle:hover .item-type{color:#0073aa}.menu-item-edit-active .menu-item-handle{border-color:#999;border-bottom:none}.customize-control-nav_menu_item{margin-bottom:0}.customize-control-nav_menu{margin-top:12px}#available-menu-items .item-add:focus:before,#available-menu-items-search .clear-results:focus,#customize-controls .customize-info .customize-help-toggle:focus:before,.customize-screen-options-toggle:focus:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,.wp-customizer .menu-item .submitbox .submitdelete:focus,.wp-customizer button:focus .toggle-indicator:after{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}@media screen and (max-width:782px){#available-menu-items #available-menu-items-search .accordion-section-content{top:63px}#available-menu-items-search .clear-results,#available-menu-items-search .spinner{top:20px}}@media screen and (max-width:640px){#available-menu-items #available-menu-items-search .accordion-section-content{top:133px}#available-menu-items-search .clear-results{top:90px}}
\ No newline at end of file
+#customize-theme-controls #accordion-section-menu_locations{position:relative;margin-bottom:15px}#customize-theme-controls #accordion-section-menu_locations>.accordion-section-title{border-bottom-color:#ddd}.menu-in-location,.menu-in-locations{display:block;font-weight:600;font-size:10px}#customize-controls .control-section .accordion-section-title:focus .menu-in-location,#customize-controls .control-section .accordion-section-title:hover .menu-in-location,#customize-controls .theme-location-set{color:#555}.customize-control-nav_menu_location .edit-menu{margin-left:6px;vertical-align:middle;line-height:28px;color:#0073aa;text-decoration:underline}.customize-control-nav_menu_location .edit-menu:active,.customize-control-nav_menu_location .edit-menu:hover{color:#00a0d2}.customize-control-nav_menu_location .edit-menu:focus{color:#124964}.wp-customizer .menu-item-bar .menu-item-handle,.wp-customizer .menu-item-settings,.wp-customizer .menu-item-settings .description-thin{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-customizer .menu-item-bar{margin:0}.wp-customizer .menu-item-bar .menu-item-handle{width:100%;background:#fff}.wp-customizer .menu-item-handle .item-title{margin-right:0}.wp-customizer .menu-item-handle .item-type{padding:1px 21px 0 5px;float:right;text-align:right}.wp-customizer .menu-item-handle:hover{z-index:8}.customize-control-nav_menu_item.has-notifications .menu-item-handle{border-left:4px solid #00a0d2}.wp-customizer .menu-item-settings{max-width:100%;overflow:hidden;z-index:8;padding:10px;background:#eee;border:1px solid #999;border-top:none}.wp-customizer .menu-item-settings .description-thin{width:100%;height:auto;margin:0 0 8px}.wp-customizer .menu-item-settings input[type=text]{width:100%}.wp-customizer .menu-item-settings .submitbox{margin:0;padding:0}.wp-customizer .menu-item-settings .link-to-original{padding:5px 0;border:none;font-style:normal;margin:0;width:100%}.wp-customizer .menu-item .submitbox .submitdelete{float:left;margin:6px 0 0;padding:0;cursor:pointer}.menu-item-reorder-nav{display:none;background-color:#fff;position:absolute;top:0;right:0}.menus-move-left:before{content:"\f341"}.menus-move-right:before{content:"\f345"}.reordering .menu-item .item-controls,.reordering .menu-item .item-type{display:none}.reordering .menu-item-reorder-nav{display:block}.customize-control input.menu-name-field{width:100%;margin:12px 0}.wp-customizer .menu-item .item-edit{position:absolute;right:-19px;top:2px;display:block;width:30px;height:38px;margin-right:0!important;-webkit-box-shadow:none;box-shadow:none;outline:0;overflow:hidden;cursor:pointer}.wp-customizer .menu-item.menu-item-edit-active .item-edit .toggle-indicator:after{content:"\f142"}.wp-customizer .menu-item-settings p.description{font-style:normal}.wp-customizer .menu-settings dl{margin:12px 0 0;padding:0}.wp-customizer .menu-settings .checkbox-input{margin-top:8px}.wp-customizer .menu-settings .menu-theme-locations{border-top:1px solid #ccc}.wp-customizer .menu-settings{margin-top:36px;border-top:none}.menu-settings .customize-control-checkbox label{line-height:1}.menu-settings .customize-control.customize-control-checkbox{margin-bottom:8px}.customize-control-menu{margin-top:4px}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle{color:#555}.customize-screen-options-toggle{background:0 0;border:none;color:#555;cursor:pointer;margin:0;padding:20px;position:absolute;right:0;top:30px}#customize-controls .customize-info .customize-help-toggle{padding:20px}#customize-controls .customize-info .customize-help-toggle:before{padding:4px}#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,.active-menu-screen-options .customize-screen-options-toggle,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.customize-screen-options-toggle:hover{color:#0073aa}#customize-controls .customize-info .customize-help-toggle:focus,.customize-screen-options-toggle:focus{outline:0}.customize-screen-options-toggle:before{-moz-osx-font-smoothing:grayscale;border:none;content:"\f111";display:block;font:18px/1 dashicons;padding:5px;text-align:center;text-decoration:none!important;text-indent:0;left:6px;position:absolute;top:6px}#customize-controls .customize-info .customize-help-toggle:focus:before,.customize-screen-options-toggle:focus:before{-webkit-border-radius:100%;border-radius:100%}.wp-customizer #screen-options-wrap{display:none;background:#fff;border-top:1px solid #ddd;padding:4px 15px 15px}.wp-customizer .metabox-prefs label{display:block;padding-right:0;line-height:30px}.wp-customizer .toggle-indicator{display:inline-block;font-size:20px;line-height:1;text-indent:-1px}.rtl .wp-customizer .toggle-indicator{text-indent:1px}.wp-customizer .toggle-indicator:after{content:"\f140";speak:none;vertical-align:top;-webkit-border-radius:50%;border-radius:50%;color:#72777c;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.control-section-nav_menu .field-css-classes,.control-section-nav_menu .field-description,.control-section-nav_menu .field-link-target,.control-section-nav_menu .field-title-attribute,.control-section-nav_menu .field-xfn{display:none}.control-section-nav_menu.field-css-classes-active .field-css-classes,.control-section-nav_menu.field-description-active .field-description,.control-section-nav_menu.field-link-target-active .field-link-target,.control-section-nav_menu.field-title-attribute-active .field-title-attribute,.control-section-nav_menu.field-xfn-active .field-xfn{display:block}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:20px}.menu-item-depth-2{margin-left:40px}.menu-item-depth-3{margin-left:60px}.menu-item-depth-4{margin-left:80px}.menu-item-depth-5{margin-left:100px}.menu-item-depth-6{margin-left:120px}.menu-item-depth-7{margin-left:140px}.menu-item-depth-8{margin-left:160px}.menu-item-depth-9{margin-left:180px}.menu-item-depth-10{margin-left:200px}.menu-item-depth-11{margin-left:220px}.menu-item-depth-0>.menu-item-bar{margin-right:0}.menu-item-depth-1>.menu-item-bar{margin-right:20px}.menu-item-depth-2>.menu-item-bar{margin-right:40px}.menu-item-depth-3>.menu-item-bar{margin-right:60px}.menu-item-depth-4>.menu-item-bar{margin-right:80px}.menu-item-depth-5>.menu-item-bar{margin-right:100px}.menu-item-depth-6>.menu-item-bar{margin-right:120px}.menu-item-depth-7>.menu-item-bar{margin-right:140px}.menu-item-depth-8>.menu-item-bar{margin-right:160px}.menu-item-depth-9>.menu-item-bar{margin-right:180px}.menu-item-depth-10>.menu-item-bar{margin-right:200px}.menu-item-depth-11>.menu-item-bar{margin-right:220px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-20px}.menu-item-depth-3 .menu-item-transport{margin-left:-60px}.menu-item-depth-4 .menu-item-transport{margin-left:-80px}.menu-item-depth-2 .menu-item-transport{margin-left:-40px}.menu-item-depth-5 .menu-item-transport{margin-left:-100px}.menu-item-depth-6 .menu-item-transport{margin-left:-120px}.menu-item-depth-7 .menu-item-transport{margin-left:-140px}.menu-item-depth-8 .menu-item-transport{margin-left:-160px}.menu-item-depth-9 .menu-item-transport{margin-left:-180px}.menu-item-depth-10 .menu-item-transport{margin-left:-200px}.menu-item-depth-11 .menu-item-transport{margin-left:-220px}.reordering .menu-item-depth-0{margin-left:0}.reordering .menu-item-depth-1{margin-left:15px}.reordering .menu-item-depth-2{margin-left:30px}.reordering .menu-item-depth-3{margin-left:45px}.reordering .menu-item-depth-4{margin-left:60px}.reordering .menu-item-depth-5{margin-left:75px}.reordering .menu-item-depth-6{margin-left:90px}.reordering .menu-item-depth-7{margin-left:105px}.reordering .menu-item-depth-8{margin-left:120px}.reordering .menu-item-depth-9{margin-left:135px}.reordering .menu-item-depth-10{margin-left:150px}.reordering .menu-item-depth-11{margin-left:165px}.reordering .menu-item-depth-0>.menu-item-bar{margin-right:0}.reordering .menu-item-depth-1>.menu-item-bar{margin-right:15px}.reordering .menu-item-depth-2>.menu-item-bar{margin-right:30px}.reordering .menu-item-depth-3>.menu-item-bar{margin-right:45px}.reordering .menu-item-depth-4>.menu-item-bar{margin-right:60px}.reordering .menu-item-depth-5>.menu-item-bar{margin-right:75px}.reordering .menu-item-depth-6>.menu-item-bar{margin-right:90px}.reordering .menu-item-depth-7>.menu-item-bar{margin-right:105px}.reordering .menu-item-depth-8>.menu-item-bar{margin-right:120px}.reordering .menu-item-depth-9>.menu-item-bar{margin-right:135px}.reordering .menu-item-depth-10>.menu-item-bar{margin-right:150px}.reordering .menu-item-depth-11>.menu-item-bar{margin-right:165px}.control-section-nav_menu.menu .menu-item-edit-active{margin-left:0}.control-section-nav_menu.menu .menu-item-edit-active .menu-item-bar{margin-right:0}.control-section-nav_menu.menu .sortable-placeholder{margin-top:0;margin-bottom:1px;max-width:-webkit-calc(100% - 2px);max-width:calc(100% - 2px);float:left;display:list-item;border-color:#a0a5aa}.menu-item-transport li.customize-control{float:none}.control-section-nav_menu.menu ul.menu-item-transport .menu-item-bar{margin-top:0}.adding-menu-items .control-section{opacity:.4}.adding-menu-items .control-panel.control-section,.adding-menu-items .control-section.open{opacity:1}.menu-item-bar .item-delete{color:#a00;position:absolute;top:2px;right:-19px;width:30px;height:38px;cursor:pointer;display:none}.menu-item-bar .item-delete:before{content:"\f335";position:absolute;top:9px;left:5px;-webkit-border-radius:50%;border-radius:50%;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ie8 .menu-item-bar .item-delete:before{top:-10px}.menu-item-bar .item-delete:focus,.menu-item-bar .item-delete:hover{-webkit-box-shadow:none;box-shadow:none;outline:0;color:red}.adding-menu-items .menu-item-bar .item-edit{display:none}.adding-menu-items .menu-item-bar .item-delete{display:block}#available-menu-items.opening{overflow-y:hidden}#available-menu-items #available-menu-items-search.open{height:100%;border-bottom:none}#available-menu-items .accordion-section-title{border-left:none;border-right:none;background:#fff;-webkit-transition:background-color .15s;transition:background-color .15s;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto;user-select:auto}#available-menu-items #available-menu-items-search .accordion-section-title,#available-menu-items .open .accordion-section-title{background:#eee}#available-menu-items .accordion-section-title:after{content:none!important}#available-menu-items .accordion-section-title:hover .toggle-indicator:after,#available-menu-items .button-link:focus .toggle-indicator:after,#available-menu-items .button-link:hover .toggle-indicator:after{color:#23282d}#available-menu-items .open .accordion-section-title .toggle-indicator:after{content:"\f142";color:#23282d}#available-menu-items .available-menu-items-list{overflow-y:auto;max-height:200px;background:0 0}#available-menu-items .accordion-section-title button{display:block;width:28px;height:35px;position:absolute;top:5px;right:5px;-webkit-box-shadow:none;box-shadow:none;outline:0;cursor:pointer}#available-menu-items .accordion-section-title .no-items,#available-menu-items .cannot-expand .accordion-section-title .spinner,#available-menu-items .cannot-expand .accordion-section-title>button{display:none}#available-menu-items-search.cannot-expand .accordion-section-title .spinner{display:block}#available-menu-items .cannot-expand .accordion-section-title .no-items{float:right;color:#555d66;font-weight:400;margin-left:5px}#available-menu-items .accordion-section-content{max-height:290px;margin:0;padding:0;position:relative;background:0 0}#available-menu-items .accordion-section-content .available-menu-items-list{margin:0 0 45px;padding:1px 15px 15px}#available-menu-items .accordion-section-content .available-menu-items-list:only-child{margin-bottom:0}#new-custom-menu-item .accordion-section-content{padding:0 15px 15px}#available-menu-items .menu-item-tpl{margin:0}#available-menu-items .new-content-item .create-item-input.invalid,#available-menu-items .new-content-item .create-item-input.invalid:focus,#custom-menu-item-name.invalid,#custom-menu-item-url.invalid,.menu-name-field.invalid,.menu-name-field.invalid:focus{border:1px solid red}#available-menu-items .menu-item-handle .item-type{padding-right:0}#available-menu-items .menu-item-handle .item-title{padding-left:20px}#available-menu-items .menu-item-handle{cursor:pointer;-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}#available-menu-items .menu-item-handle:hover{z-index:1}#available-menu-items .item-title h4{padding:0 0 5px;font-size:14px}#available-menu-items .item-add{position:absolute;top:1px;left:1px;color:#82878c;width:30px;height:38px;-webkit-box-shadow:none;box-shadow:none;outline:0;cursor:pointer}#available-menu-items .menu-item-handle .item-add:focus{color:#23282d}#available-menu-items .item-add:before{content:"\f543";position:relative;left:2px;top:3px;display:inline-block;height:20px;-webkit-border-radius:50%;border-radius:50%;font:400 20px/1.05 dashicons}#available-menu-items .menu-item-handle.item-added .item-add:focus,#available-menu-items .menu-item-handle.item-added .item-title,#available-menu-items .menu-item-handle.item-added .item-type,#available-menu-items .menu-item-handle.item-added:hover .item-add{color:#82878c}#available-menu-items .menu-item-handle.item-added .item-add:before{content:"\f147"}#available-menu-items .accordion-section-title.loading .spinner,#available-menu-items-search.loading .accordion-section-title .spinner{visibility:visible;margin:0 20px}#available-menu-items-search .spinner{position:absolute;top:20px;right:21px;margin:0!important}#available-menu-items #available-menu-items-search .accordion-section-content{position:absolute;left:0;top:60px;bottom:0;max-height:none;width:100%;padding:1px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-menu-items-search .nothing-found{margin-top:-1px}#available-menu-items-search .accordion-section-title:after{display:none}#available-menu-items-search .accordion-section-content:empty{min-height:0;padding:0}#available-menu-items-search.loading .accordion-section-content div{opacity:.5}#available-menu-items-search.loading.loading-more .accordion-section-content div{opacity:1}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-menu-items #available-menu-items{left:0;visibility:visible}body.adding-menu-items .wp-full-overlay-main{left:300px}body.adding-menu-items #customize-preview{opacity:.4}.menu-item-handle .spinner{display:none;float:left;margin:0 8px 0 0}.nav-menu-inserted-item-loading .spinner{display:block}.nav-menu-inserted-item-loading .menu-item-handle .item-type{padding:0 0 0 8px}.added-menu-item .menu-item-handle.loading,.nav-menu-inserted-item-loading .menu-item-handle{padding:10px 15px 10px 8px;cursor:default;opacity:.5;background:#fff;color:#727773}.added-menu-item .menu-item-handle{-webkit-transition-property:opacity,background,color;transition-property:opacity,background,color;-webkit-transition-duration:1.25s;transition-duration:1.25s;-webkit-transition-timing-function:cubic-bezier(.25,-2.5,.75,8);transition-timing-function:cubic-bezier(.25,-2.5,.75,8)}#customize-theme-controls .control-panel-content .control-section-nav_menu:nth-last-child(2) .accordion-section-title{border-bottom-color:#ddd}#accordion-section-add_menu{margin:15px 12px;overflow:hidden}.new-menu-section-content{display:none;padding:15px 0 0;clear:both}#accordion-section-add_menu .accordion-section-title{padding-left:45px}#accordion-section-add_menu .accordion-section-title:before{font:400 20px/1 dashicons;position:absolute;top:12px;left:14px;content:"\f132"}#create-new-menu-submit{float:right;margin:0 0 12px}.menu-delete-item{float:left;padding:1em 0;width:100%}li.assigned-to-menu-location .menu-delete-item{display:none}li.assigned-to-menu-location .add-new-menu-item{margin-bottom:1em}.menu-delete{color:#a00;cursor:pointer;text-decoration:underline}.menu-delete:focus,.menu-delete:hover{color:red;text-decoration:none}.menu-item-handle{margin-top:-1px}.ui-sortable-disabled .menu-item-handle{cursor:default}.menu-item-handle:hover{position:relative;z-index:10;color:#0073aa}#available-menu-items .menu-item-handle:hover .item-add,.menu-item-handle:hover .item-edit,.menu-item-handle:hover .item-type{color:#0073aa}.menu-item-edit-active .menu-item-handle{border-color:#999;border-bottom:none}.customize-control-nav_menu_item{margin-bottom:0}.customize-control-nav_menu{margin-top:12px}#available-menu-items .item-add:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.customize-screen-options-toggle:focus:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,.wp-customizer .menu-item .submitbox .submitdelete:focus,.wp-customizer button:focus .toggle-indicator:after{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}@media screen and (max-width:782px){#available-menu-items #available-menu-items-search .accordion-section-content{top:63px}}@media screen and (max-width:640px){#available-menu-items #available-menu-items-search .accordion-section-content{top:130px}}
\ No newline at end of file
diff --git a/wp-admin/css/customize-widgets-rtl.css b/wp-admin/css/customize-widgets-rtl.css
index 767a3e221..8567da930 100644
--- a/wp-admin/css/customize-widgets-rtl.css
+++ b/wp-admin/css/customize-widgets-rtl.css
@@ -229,8 +229,10 @@
 
 #available-widgets .widget-tpl:hover,
 #available-widgets .widget-tpl.selected {
-	background: #eee;
+	background: #f3f3f5;
 	border-bottom-color: #ccc;
+	color: #0073aa;
+	border-right: 4px solid #0073aa;
 }
 
 #customize-controls .widget-title h3 {
diff --git a/wp-admin/css/customize-widgets-rtl.min.css b/wp-admin/css/customize-widgets-rtl.min.css
index bfe8b97cc..7655a2ed3 100644
--- a/wp-admin/css/customize-widgets-rtl.min.css
+++ b/wp-admin/css/customize-widgets-rtl.min.css
@@ -1 +1 @@
-.control-section.control-section-sidebar .accordion-section-content.ui-sortable,.wp-full-overlay-sidebar{overflow:visible}.control-section.control-section-sidebar,.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{background:#fff;-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control .widget-action{color:#72777c}.customize-control .widget-action:focus,.customize-control .widget-top:hover .widget-action{color:#23282d}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form .spinner{visibility:hidden;margin-top:0}.customize-control-widget_form.previewer-loading .spinner{visibility:visible}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;right:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:none;line-height:16px}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f141"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f139"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title,.widget-top{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}#customize-theme-controls .widget-reorder-nav{display:none;float:left;background-color:#fafafa}.move-widget:before{content:"\f504"}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #ddd;border-top:none;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 42px 15px 15px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:"\f147";position:absolute;top:12px;right:10px;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);background:#00a0d2}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .move-widget-actions{text-align:left;padding:12px}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}.ios #available-widgets{-webkit-transition:right 0s;transition:right 0s}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#eee;border-bottom-color:#ccc}#customize-controls .widget-title h3{font-size:1em}#available-widgets .widget-title h3{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#72777c}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{right:0;visibility:visible}body.adding-widget .wp-full-overlay-main{right:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;left:100%;margin-left:20px;width:20px;height:20px;color:#32373c;font:400 20px/1 dashicons;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=super] .widget-title:before,#available-widgets [class*=like] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before,#available-widgets [class*=chat] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=event] .widget-title:before,#available-widgets [class*=calendar] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=video] .widget-title:before,#available-widgets [class*=tube] .widget-title:before{content:"\f126"}#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before,#available-widgets [class*=audio] .widget-title:before{content:"\f127"}#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=user] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before{content:"\f110"}#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before,#available-widgets [class*=cart] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=secur] .widget-title:before,#available-widgets [class*=firewall] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=stat] .widget-title:before,#available-widgets [class*=poll] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=subscribe] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control-widget{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h3{padding:13px 15px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 42px 11px 15px}#customize-theme-controls .widget-area-select li:before{top:8px}}
\ No newline at end of file
+.control-section.control-section-sidebar .accordion-section-content.ui-sortable,.wp-full-overlay-sidebar{overflow:visible}.control-section.control-section-sidebar,.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{background:#fff;-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control .widget-action{color:#72777c}.customize-control .widget-action:focus,.customize-control .widget-top:hover .widget-action{color:#23282d}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form .spinner{visibility:hidden;margin-top:0}.customize-control-widget_form.previewer-loading .spinner{visibility:visible}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;right:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:none;line-height:16px}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f141"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f139"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title,.widget-top{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}#customize-theme-controls .widget-reorder-nav{display:none;float:left;background-color:#fafafa}.move-widget:before{content:"\f504"}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #ddd;border-top:none;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 42px 15px 15px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:"\f147";position:absolute;top:12px;right:10px;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);background:#00a0d2}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .move-widget-actions{text-align:left;padding:12px}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}.ios #available-widgets{-webkit-transition:right 0s;transition:right 0s}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#f3f3f5;border-bottom-color:#ccc;color:#0073aa;border-right:4px solid #0073aa}#customize-controls .widget-title h3{font-size:1em}#available-widgets .widget-title h3{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#72777c}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{right:0;visibility:visible}body.adding-widget .wp-full-overlay-main{right:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;left:100%;margin-left:20px;width:20px;height:20px;color:#32373c;font:400 20px/1 dashicons;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=super] .widget-title:before,#available-widgets [class*=like] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before,#available-widgets [class*=chat] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=event] .widget-title:before,#available-widgets [class*=calendar] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=video] .widget-title:before,#available-widgets [class*=tube] .widget-title:before{content:"\f126"}#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before,#available-widgets [class*=audio] .widget-title:before{content:"\f127"}#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=user] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before{content:"\f110"}#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before,#available-widgets [class*=cart] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=secur] .widget-title:before,#available-widgets [class*=firewall] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=stat] .widget-title:before,#available-widgets [class*=poll] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=subscribe] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control-widget{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h3{padding:13px 15px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 42px 11px 15px}#customize-theme-controls .widget-area-select li:before{top:8px}}
\ No newline at end of file
diff --git a/wp-admin/css/customize-widgets.css b/wp-admin/css/customize-widgets.css
index a32f56e60..687c9f85f 100644
--- a/wp-admin/css/customize-widgets.css
+++ b/wp-admin/css/customize-widgets.css
@@ -229,8 +229,10 @@
 
 #available-widgets .widget-tpl:hover,
 #available-widgets .widget-tpl.selected {
-	background: #eee;
+	background: #f3f3f5;
 	border-bottom-color: #ccc;
+	color: #0073aa;
+	border-left: 4px solid #0073aa;
 }
 
 #customize-controls .widget-title h3 {
diff --git a/wp-admin/css/customize-widgets.min.css b/wp-admin/css/customize-widgets.min.css
index b802cdd8f..506c3f35c 100644
--- a/wp-admin/css/customize-widgets.min.css
+++ b/wp-admin/css/customize-widgets.min.css
@@ -1 +1 @@
-.control-section.control-section-sidebar .accordion-section-content.ui-sortable,.wp-full-overlay-sidebar{overflow:visible}.control-section.control-section-sidebar,.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{background:#fff;-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control .widget-action{color:#72777c}.customize-control .widget-action:focus,.customize-control .widget-top:hover .widget-action{color:#23282d}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form .spinner{visibility:hidden;margin-top:0}.customize-control-widget_form.previewer-loading .spinner{visibility:visible}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;left:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:none;line-height:16px}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title,.widget-top{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}#customize-theme-controls .widget-reorder-nav{display:none;float:right;background-color:#fafafa}.move-widget:before{content:"\f504"}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #ddd;border-top:none;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 15px 15px 42px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:"\f147";position:absolute;top:12px;left:10px;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);background:#00a0d2}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .move-widget-actions{text-align:right;padding:12px}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}.ios #available-widgets{-webkit-transition:left 0s;transition:left 0s}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#eee;border-bottom-color:#ccc}#customize-controls .widget-title h3{font-size:1em}#available-widgets .widget-title h3{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#72777c}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{left:0;visibility:visible}body.adding-widget .wp-full-overlay-main{left:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;right:100%;margin-right:20px;width:20px;height:20px;color:#32373c;font:400 20px/1 dashicons;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=super] .widget-title:before,#available-widgets [class*=like] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before,#available-widgets [class*=chat] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=event] .widget-title:before,#available-widgets [class*=calendar] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=video] .widget-title:before,#available-widgets [class*=tube] .widget-title:before{content:"\f126"}#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before,#available-widgets [class*=audio] .widget-title:before{content:"\f127"}#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=user] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before{content:"\f110"}#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before,#available-widgets [class*=cart] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=secur] .widget-title:before,#available-widgets [class*=firewall] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=stat] .widget-title:before,#available-widgets [class*=poll] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=subscribe] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control-widget{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h3{padding:13px 15px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 15px 11px 42px}#customize-theme-controls .widget-area-select li:before{top:8px}}
\ No newline at end of file
+.control-section.control-section-sidebar .accordion-section-content.ui-sortable,.wp-full-overlay-sidebar{overflow:visible}.control-section.control-section-sidebar,.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{background:#fff;-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control .widget-action{color:#72777c}.customize-control .widget-action:focus,.customize-control .widget-top:hover .widget-action{color:#23282d}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form .spinner{visibility:hidden;margin-top:0}.customize-control-widget_form.previewer-loading .spinner{visibility:visible}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;left:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:none;line-height:16px}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title,.widget-top{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}#customize-theme-controls .widget-reorder-nav{display:none;float:right;background-color:#fafafa}.move-widget:before{content:"\f504"}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #ddd;border-top:none;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 15px 15px 42px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:"\f147";position:absolute;top:12px;left:10px;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);background:#00a0d2}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .move-widget-actions{text-align:right;padding:12px}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}.ios #available-widgets{-webkit-transition:left 0s;transition:left 0s}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#f3f3f5;border-bottom-color:#ccc;color:#0073aa;border-left:4px solid #0073aa}#customize-controls .widget-title h3{font-size:1em}#available-widgets .widget-title h3{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#72777c}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{left:0;visibility:visible}body.adding-widget .wp-full-overlay-main{left:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;right:100%;margin-right:20px;width:20px;height:20px;color:#32373c;font:400 20px/1 dashicons;text-align:center;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=super] .widget-title:before,#available-widgets [class*=like] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before,#available-widgets [class*=chat] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=event] .widget-title:before,#available-widgets [class*=calendar] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=video] .widget-title:before,#available-widgets [class*=tube] .widget-title:before{content:"\f126"}#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before,#available-widgets [class*=audio] .widget-title:before{content:"\f127"}#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=user] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before{content:"\f110"}#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before,#available-widgets [class*=cart] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=secur] .widget-title:before,#available-widgets [class*=firewall] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=stat] .widget-title:before,#available-widgets [class*=poll] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=subscribe] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control-widget{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h3{padding:13px 15px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 15px 11px 42px}#customize-theme-controls .widget-area-select li:before{top:8px}}
\ No newline at end of file
diff --git a/wp-admin/css/edit-rtl.css b/wp-admin/css/edit-rtl.css
index 5e28c4ddd..e8f01145d 100644
--- a/wp-admin/css/edit-rtl.css
+++ b/wp-admin/css/edit-rtl.css
@@ -129,23 +129,10 @@ input#link_url {
 	float: right;
 }
 
-.submitbox .submitdelete {
-	text-decoration: none;
-	padding: 1px 2px;
-}
-
 body.post-new-php .submitbox .submitdelete {
 	display: none;
 }
 
-/* @todo: do we really need this? word on the street is we don't and this
-stray rule may actually be compensated for elsewhere. */
-#normal-sortables .submitbox .submitdelete:hover {
-	color: #000;
-	background-color: #f00;
-	border-bottom-color: #f00;
-}
-
 .submitbox .submit a:hover {
 	text-decoration: underline;
 }
@@ -349,7 +336,7 @@ form#tags-filter {
 }
 
 #content-resize-handle {
-	background: transparent url(../images/resize.gif) no-repeat scroll right bottom;
+	background: transparent url(../images/resize.gif) no-repeat scroll left bottom;
 	width: 12px;
 	cursor: row-resize;
 }
@@ -464,7 +451,7 @@ form#tags-filter {
 	height: auto !important;
 }
 
-#misc-publishing-actions label[for="post_status"]:before,
+#post-body .misc-pub-post-status:before,
 #post-body #visibility:before,
 .curtime #timestamp:before,
 #post-body .misc-pub-revisions:before,
@@ -472,20 +459,22 @@ span.wp-media-buttons-icon:before {
 	color: #82878c;
 }
 
+#post-body .misc-pub-post-status:before,
 #post-body #visibility:before,
 .curtime #timestamp:before,
 #post-body .misc-pub-revisions:before {
 	font: normal 20px/1 dashicons;
 	speak: none;
 	display: inline-block;
-	padding: 0 0 0 2px;
-	top: 0;
-	right: -1px;
-	position: relative;
+	margin-right: -1px;
+	padding-left: 3px;
 	vertical-align: top;
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
-	text-decoration: none !important;
+}
+
+#post-body .misc-pub-post-status:before {
+	content: "\f173";
 }
 
 #post-body #visibility:before {
@@ -494,6 +483,7 @@ span.wp-media-buttons-icon:before {
 
 .curtime #timestamp:before {
 	content: "\f145";
+	position: relative;
 	top: -1px;
 }
 
@@ -592,10 +582,9 @@ span.wp-media-buttons-icon:before {
 	position: absolute;
 }
 
-.tagchecklist span {
-	margin-left: 25px;
-	display: block;
+.tagchecklist > span {
 	float: right;
+	margin-left: 25px;
 	font-size: 13px;
 	line-height: 1.8em;
 	cursor: default;
@@ -604,16 +593,16 @@ span.wp-media-buttons-icon:before {
 	text-overflow: ellipsis;
 }
 
-.tagchecklist span a {
-	margin: 1px -17px 0 0;
+.tagchecklist .ntdelbutton {
+	position: absolute;
+	width: 24px;
+	height: 24px;
+	border: none;
+	margin: 0 -19px 0 0;
+	padding: 0;
+	background: none;
 	cursor: pointer;
-	width: 20px;
-	height: 20px;
-	display: block;
-	float: right;
 	text-indent: 0;
-	overflow: hidden;
-	position: absolute;
 }
 
 #poststuff h3.hndle, /* Back-compat for pre-4.4 */
@@ -639,11 +628,21 @@ span.wp-media-buttons-icon:before {
 	width: 250px;
 }
 
+.post-attributes-label-wrapper {
+	margin-bottom: 0.5em;
+}
+
+.post-attributes-label {
+	vertical-align: baseline;
+	font-weight: 600;
+}
+
 #post-visibility-select {
 	line-height: 1.5em;
 	margin-top: 3px;
 }
 
+#linksubmitdiv .inside, /* Old Link Manager back-compat. */
 #poststuff #submitdiv .inside {
 	margin: 0;
 	padding: 0;
@@ -1036,6 +1035,25 @@ span.description,
 	width: 260px;
 }
 
+.tagcloud-link.button-link {
+	color: #0073aa;
+	text-decoration: underline;
+}
+
+.tagcloud-link.button-link:hover {
+	color: #00a0d2;
+}
+
+.tagcloud-link.button-link:focus {
+	color: #124964;
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 #post-body-content .tagsdiv .the-tags {
 	margin: 0 5px;
 }
@@ -1061,6 +1079,7 @@ p.popular-tags a {
 	margin: 2px 0 12px;
 }
 
+/* Suggest.js autocomplete, no more used by core. */
 .ac_results {
 	display: none;
 	margin: -1px 0 0;
@@ -1300,7 +1319,7 @@ table.links-table {
   (min-resolution: 120dpi) {
 	#content-resize-handle,
 	#post-body .wp_themeSkin .mceStatusbar a.mceResize {
-		background: transparent url(../images/resize-2x.gif) no-repeat scroll right bottom;
+		background: transparent url(../images/resize-2x.gif) no-repeat scroll left bottom;
 		-webkit-background-size: 11px 11px;
 		background-size: 11px 11px;
 	}
@@ -1447,7 +1466,7 @@ table.links-table {
 		margin: 25px 10px;
 	}
 
-	.tagchecklist span {
+	.tagchecklist > span {
 		font-size: 16px;
 		line-height: 1.4;
 	}
diff --git a/wp-admin/css/edit-rtl.min.css b/wp-admin/css/edit-rtl.min.css
index af6cdf7a7..cf452031c 100644
--- a/wp-admin/css/edit-rtl.min.css
+++ b/wp-admin/css/edit-rtl.min.css
@@ -1 +1 @@
-#pending,#poststuff #titlewrap{border:0;padding:0}#pending,#poststuff #post-body{padding:0}#editable-post-name-full,body.post-new-php .submitbox .submitdelete{display:none}#titlediv,#wp-content-editor-container,.postbox,form#tags-filter{position:relative}#poststuff{padding-top:10px;min-width:763px}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-left:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:right}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:right;margin:0 0 0 5px}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#72777c;position:absolute;font-size:1.7em;padding:11px 10px}input#link_description,input#link_url{width:98%}#pending{background:100% none;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-left:10px;padding:0;font-size:11px;text-decoration:underline;color:#0073aa}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:22px;margin:0;width:16em}.postarea h3 label{float:right}.submitbox .submitdelete{text-decoration:none;padding:1px 2px}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:red;border-bottom-color:red}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-left:4px;padding:6px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:left;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#32373c}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #ddd;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}.ui-tabs-hide,.wp-editor-expand #content-resize-handle,.wp-hidden-children .wp-hidden-child{display:none}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:-webkit-linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),-webkit-linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-image:linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-position:100% 0,10px 10px;-webkit-background-size:20px 20px;background-size:20px 20px}#post-body .tagsdiv #newtag{margin-left:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:left}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) right bottom no-repeat;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw,.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#misc-publishing-actions label[for=post_status]:before,#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#82878c}#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 2px;top:0;right:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;max-height:70%;right:50%;width:450px;margin-right:-225px;background:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#post-lock-dialog .post-locked-message a.button{margin-left:10px}#post-lock-dialog .post-locked-avatar{float:right;margin:0 0 20px 20px}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:right;margin-left:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-right:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist span,.tagchecklist span a{display:block;float:right;overflow:hidden}.tagchecklist strong{margin-right:-8px;position:absolute}.tagchecklist span{margin-left:25px;font-size:13px;line-height:1.8em;cursor:default;max-width:100%;text-overflow:ellipsis}.tagchecklist span a{margin:1px -17px 0 0;cursor:pointer;width:20px;height:20px;text-indent:0;position:absolute}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}#post-visibility-select{line-height:1.5em;margin-top:3px}#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #ddd;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-left:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:right;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-left:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#00a0d2}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-right:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-left:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:"\f109"}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:"\f128"}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:"\f161"}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:"\f127"}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:"\f126"}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:"\f125"}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:"\f130"}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:"\f123"}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:"\f122"}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:"\f103"}.category-adder{margin-right:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #ddd;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-right:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field input[type=number],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:1em 0;padding:0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:right}.ac_over .ac_match,.ac_results .ac_over{background-color:#0073aa;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:outside;margin-right:2em}.comment-ays .comment-content a[href]:after{content:'(' attr(href) ')';display:inline-block;padding:0 4px;color:#72777C;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:'';padding:0}#comment-status-radio label,.links-table td,.links-table th{padding:5px 0}.comment-ays-submit .button-cancel{margin-right:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 0 1px 8px;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-left:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 0 5px 3px;vertical-align:middle}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:right;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td label{margin-left:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw,#wp-content-wrap .mce-wp-dfw{display:none}.wp-editor-expand #qt_content_dfw,.wp-editor-expand #wp-content-wrap .mce-wp-dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) right bottom no-repeat;-webkit-background-size:11px 11px;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}.post-format-options{padding-left:0}.post-format-options a{margin-left:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-left:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}.tagsdiv .newtag,ul.categorychecklist li{margin-bottom:15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto}.tagchecklist{margin:25px 10px}.tagchecklist span{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:right!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-right:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 6px 6px 3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1em;margin:7px 7px 0 0;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-right:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:left;font-size:16px}#delete-action,#publishing-action{line-height:47px}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}}
\ No newline at end of file
+#pending,#poststuff #titlewrap{border:0;padding:0}#pending,#poststuff #post-body{padding:0}#editable-post-name-full,body.post-new-php .submitbox .submitdelete{display:none}#edit-slug-box .cancel,.submitbox .submit a:hover{text-decoration:underline}#titlediv,#wp-content-editor-container,.postbox,form#tags-filter{position:relative}#poststuff{padding-top:10px;min-width:763px}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-left:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:right}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:right;margin:0 0 0 5px}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#72777c;position:absolute;font-size:1.7em;padding:11px 10px}input#link_description,input#link_url{width:98%}#pending{background:100% none;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-left:10px;padding:0;font-size:11px;color:#0073aa}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:22px;margin:0;width:16em}.postarea h3 label{float:right}.submitbox .submit input{margin-bottom:8px;margin-left:4px;padding:6px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:left;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#32373c}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #ddd;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}.ui-tabs-hide,.wp-editor-expand #content-resize-handle,.wp-hidden-children .wp-hidden-child{display:none}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:-webkit-linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),-webkit-linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-image:linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-position:100% 0,10px 10px;-webkit-background-size:20px 20px;background-size:20px 20px}#post-body .tagsdiv #newtag{margin-left:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:left}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) left bottom no-repeat;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw,.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#82878c}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;margin-right:-1px;padding-left:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;max-height:70%;right:50%;width:450px;margin-right:-225px;background:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#post-lock-dialog .post-locked-message a.button{margin-left:10px}#post-lock-dialog .post-locked-avatar{float:right;margin:0 0 20px 20px}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:right;margin-left:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-right:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-right:-8px;position:absolute}.tagchecklist>span{float:right;margin-left:25px;font-size:13px;line-height:1.8em;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 -19px 0 0;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#post-visibility-select{line-height:1.5em;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #ddd;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-left:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:right;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-left:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#00a0d2}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-right:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-left:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:"\f109"}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:"\f128"}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:"\f161"}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:"\f127"}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:"\f126"}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:"\f125"}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:"\f130"}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:"\f123"}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:"\f122"}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:"\f103"}.category-adder{margin-right:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #ddd;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-right:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field input[type=number],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:1em 0;padding:0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}.tagcloud-link.button-link{color:#0073aa;text-decoration:underline}.tagcloud-link.button-link:hover{color:#00a0d2}.tagcloud-link.button-link:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:right}.ac_over .ac_match,.ac_results .ac_over{background-color:#0073aa;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:outside;margin-right:2em}.comment-ays .comment-content a[href]:after{content:'(' attr(href) ')';display:inline-block;padding:0 4px;color:#72777C;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:'';padding:0}#comment-status-radio label,.links-table td,.links-table th{padding:5px 0}.comment-ays-submit .button-cancel{margin-right:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 0 1px 8px;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-left:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 0 5px 3px;vertical-align:middle}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:right;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td label{margin-left:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw,#wp-content-wrap .mce-wp-dfw{display:none}.wp-editor-expand #qt_content_dfw,.wp-editor-expand #wp-content-wrap .mce-wp-dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) left bottom no-repeat;-webkit-background-size:11px 11px;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}.post-format-options{padding-left:0}.post-format-options a{margin-left:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-left:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}.tagsdiv .newtag,ul.categorychecklist li{margin-bottom:15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto}.tagchecklist{margin:25px 10px}.tagchecklist>span{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:right!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-right:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 6px 6px 3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1em;margin:7px 7px 0 0;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-right:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:left;font-size:16px}#delete-action,#publishing-action{line-height:47px}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}}
\ No newline at end of file
diff --git a/wp-admin/css/edit.css b/wp-admin/css/edit.css
index ac7649217..d33f1077f 100644
--- a/wp-admin/css/edit.css
+++ b/wp-admin/css/edit.css
@@ -129,23 +129,10 @@ input#link_url {
 	float: left;
 }
 
-.submitbox .submitdelete {
-	text-decoration: none;
-	padding: 1px 2px;
-}
-
 body.post-new-php .submitbox .submitdelete {
 	display: none;
 }
 
-/* @todo: do we really need this? word on the street is we don't and this
-stray rule may actually be compensated for elsewhere. */
-#normal-sortables .submitbox .submitdelete:hover {
-	color: #000;
-	background-color: #f00;
-	border-bottom-color: #f00;
-}
-
 .submitbox .submit a:hover {
 	text-decoration: underline;
 }
@@ -464,7 +451,7 @@ form#tags-filter {
 	height: auto !important;
 }
 
-#misc-publishing-actions label[for="post_status"]:before,
+#post-body .misc-pub-post-status:before,
 #post-body #visibility:before,
 .curtime #timestamp:before,
 #post-body .misc-pub-revisions:before,
@@ -472,20 +459,22 @@ span.wp-media-buttons-icon:before {
 	color: #82878c;
 }
 
+#post-body .misc-pub-post-status:before,
 #post-body #visibility:before,
 .curtime #timestamp:before,
 #post-body .misc-pub-revisions:before {
 	font: normal 20px/1 dashicons;
 	speak: none;
 	display: inline-block;
-	padding: 0 2px 0 0;
-	top: 0;
-	left: -1px;
-	position: relative;
+	margin-left: -1px;
+	padding-right: 3px;
 	vertical-align: top;
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
-	text-decoration: none !important;
+}
+
+#post-body .misc-pub-post-status:before {
+	content: "\f173";
 }
 
 #post-body #visibility:before {
@@ -494,6 +483,7 @@ span.wp-media-buttons-icon:before {
 
 .curtime #timestamp:before {
 	content: "\f145";
+	position: relative;
 	top: -1px;
 }
 
@@ -592,10 +582,9 @@ span.wp-media-buttons-icon:before {
 	position: absolute;
 }
 
-.tagchecklist span {
-	margin-right: 25px;
-	display: block;
+.tagchecklist > span {
 	float: left;
+	margin-right: 25px;
 	font-size: 13px;
 	line-height: 1.8em;
 	cursor: default;
@@ -604,16 +593,16 @@ span.wp-media-buttons-icon:before {
 	text-overflow: ellipsis;
 }
 
-.tagchecklist span a {
-	margin: 1px 0 0 -17px;
+.tagchecklist .ntdelbutton {
+	position: absolute;
+	width: 24px;
+	height: 24px;
+	border: none;
+	margin: 0 0 0 -19px;
+	padding: 0;
+	background: none;
 	cursor: pointer;
-	width: 20px;
-	height: 20px;
-	display: block;
-	float: left;
 	text-indent: 0;
-	overflow: hidden;
-	position: absolute;
 }
 
 #poststuff h3.hndle, /* Back-compat for pre-4.4 */
@@ -639,11 +628,21 @@ span.wp-media-buttons-icon:before {
 	width: 250px;
 }
 
+.post-attributes-label-wrapper {
+	margin-bottom: 0.5em;
+}
+
+.post-attributes-label {
+	vertical-align: baseline;
+	font-weight: 600;
+}
+
 #post-visibility-select {
 	line-height: 1.5em;
 	margin-top: 3px;
 }
 
+#linksubmitdiv .inside, /* Old Link Manager back-compat. */
 #poststuff #submitdiv .inside {
 	margin: 0;
 	padding: 0;
@@ -1036,6 +1035,25 @@ span.description,
 	width: 260px;
 }
 
+.tagcloud-link.button-link {
+	color: #0073aa;
+	text-decoration: underline;
+}
+
+.tagcloud-link.button-link:hover {
+	color: #00a0d2;
+}
+
+.tagcloud-link.button-link:focus {
+	color: #124964;
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
+
 #post-body-content .tagsdiv .the-tags {
 	margin: 0 5px;
 }
@@ -1061,6 +1079,7 @@ p.popular-tags a {
 	margin: 2px 0 12px;
 }
 
+/* Suggest.js autocomplete, no more used by core. */
 .ac_results {
 	display: none;
 	margin: -1px 0 0;
@@ -1447,7 +1466,7 @@ table.links-table {
 		margin: 25px 10px;
 	}
 
-	.tagchecklist span {
+	.tagchecklist > span {
 		font-size: 16px;
 		line-height: 1.4;
 	}
diff --git a/wp-admin/css/edit.min.css b/wp-admin/css/edit.min.css
index 505a62abc..2967f643f 100644
--- a/wp-admin/css/edit.min.css
+++ b/wp-admin/css/edit.min.css
@@ -1 +1 @@
-#pending,#poststuff #titlewrap{border:0;padding:0}#pending,#poststuff #post-body{padding:0}#editable-post-name-full,body.post-new-php .submitbox .submitdelete{display:none}#titlediv,#wp-content-editor-container,.postbox,form#tags-filter{position:relative}#poststuff{padding-top:10px;min-width:763px}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:left}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:left;margin:0 5px 0 0}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#72777c;position:absolute;font-size:1.7em;padding:11px 10px}input#link_description,input#link_url{width:98%}#pending{background:0 none;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-right:10px;padding:0;font-size:11px;text-decoration:underline;color:#0073aa}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:22px;margin:0;width:16em}.postarea h3 label{float:left}.submitbox .submitdelete{text-decoration:none;padding:1px 2px}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:red;border-bottom-color:red}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:right;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#32373c}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #ddd;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}.ui-tabs-hide,.wp-editor-expand #content-resize-handle,.wp-hidden-children .wp-hidden-child{display:none}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:-webkit-linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),-webkit-linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-image:linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-position:0 0,10px 10px;-webkit-background-size:20px 20px;background-size:20px 20px}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:right}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) right bottom no-repeat;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw,.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#misc-publishing-actions label[for=post_status]:before,#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#82878c}#post-body #visibility:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 2px 0 0;top:0;left:-1px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;max-height:70%;left:50%;width:450px;margin-left:-225px;background:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#post-lock-dialog .post-locked-message a.button{margin-right:10px}#post-lock-dialog .post-locked-avatar{float:left;margin:0 20px 20px 0}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:left;margin-right:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist span,.tagchecklist span a{display:block;float:left;overflow:hidden}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist span{margin-right:25px;font-size:13px;line-height:1.8em;cursor:default;max-width:100%;text-overflow:ellipsis}.tagchecklist span a{margin:1px 0 0 -17px;cursor:pointer;width:20px;height:20px;text-indent:0;position:absolute}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}#post-visibility-select{line-height:1.5em;margin-top:3px}#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #ddd;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-right:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#00a0d2}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-left:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-right:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:"\f109"}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:"\f128"}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:"\f161"}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:"\f127"}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:"\f126"}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:"\f125"}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:"\f130"}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:"\f123"}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:"\f122"}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:"\f103"}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #ddd;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field input[type=number],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:1em 0;padding:0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:left}.ac_over .ac_match,.ac_results .ac_over{background-color:#0073aa;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:outside;margin-left:2em}.comment-ays .comment-content a[href]:after{content:'(' attr(href) ')';display:inline-block;padding:0 4px;color:#72777C;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:'';padding:0}#comment-status-radio label,.links-table td,.links-table th{padding:5px 0}.comment-ays-submit .button-cancel{margin-left:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 8px 1px 0;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td label{margin-right:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw,#wp-content-wrap .mce-wp-dfw{display:none}.wp-editor-expand #qt_content_dfw,.wp-editor-expand #wp-content-wrap .mce-wp-dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) right bottom no-repeat;-webkit-background-size:11px 11px;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}.post-format-options{padding-right:0}.post-format-options a{margin-right:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-right:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}.tagsdiv .newtag,ul.categorychecklist li{margin-bottom:15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto}.tagchecklist{margin:25px 10px}.tagchecklist span{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:left!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-left:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 3px 6px 6px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1em;margin:7px 0 0 7px;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-left:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:right;font-size:16px}#delete-action,#publishing-action{line-height:47px}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}}
\ No newline at end of file
+#pending,#poststuff #titlewrap{border:0;padding:0}#pending,#poststuff #post-body{padding:0}#editable-post-name-full,body.post-new-php .submitbox .submitdelete{display:none}#edit-slug-box .cancel,.submitbox .submit a:hover{text-decoration:underline}#titlediv,#wp-content-editor-container,.postbox,form#tags-filter{position:relative}#poststuff{padding-top:10px;min-width:763px}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:left}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:left;margin:0 5px 0 0}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#72777c;position:absolute;font-size:1.7em;padding:11px 10px}input#link_description,input#link_url{width:98%}#pending{background:0 none;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-right:10px;padding:0;font-size:11px;color:#0073aa}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:22px;margin:0;width:16em}.postarea h3 label{float:left}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:right;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#32373c}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #ddd;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}.ui-tabs-hide,.wp-editor-expand #content-resize-handle,.wp-hidden-children .wp-hidden-child{display:none}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:-webkit-linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),-webkit-linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-image:linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-position:0 0,10px 10px;-webkit-background-size:20px 20px;background-size:20px 20px}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:right}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) right bottom no-repeat;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw,.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#82878c}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;margin-left:-1px;padding-right:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;max-height:70%;left:50%;width:450px;margin-left:-225px;background:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#post-lock-dialog .post-locked-message a.button{margin-right:10px}#post-lock-dialog .post-locked-avatar{float:left;margin:0 20px 20px 0}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:left;margin-right:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist>span{float:left;margin-right:25px;font-size:13px;line-height:1.8em;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 0 0 -19px;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#post-visibility-select{line-height:1.5em;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #ddd;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-right:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#00a0d2}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-left:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-right:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:"\f109"}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:"\f128"}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:"\f161"}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:"\f127"}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:"\f126"}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:"\f125"}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:"\f130"}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:"\f123"}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:"\f122"}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:"\f103"}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #ddd;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field input[type=number],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:1em 0;padding:0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}.tagcloud-link.button-link{color:#0073aa;text-decoration:underline}.tagcloud-link.button-link:hover{color:#00a0d2}.tagcloud-link.button-link:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:left}.ac_over .ac_match,.ac_results .ac_over{background-color:#0073aa;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:outside;margin-left:2em}.comment-ays .comment-content a[href]:after{content:'(' attr(href) ')';display:inline-block;padding:0 4px;color:#72777C;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:'';padding:0}#comment-status-radio label,.links-table td,.links-table th{padding:5px 0}.comment-ays-submit .button-cancel{margin-left:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 8px 1px 0;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td label{margin-right:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw,#wp-content-wrap .mce-wp-dfw{display:none}.wp-editor-expand #qt_content_dfw,.wp-editor-expand #wp-content-wrap .mce-wp-dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{-webkit-transition-duration:.6s;transition-duration:.6s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) right bottom no-repeat;-webkit-background-size:11px 11px;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}.post-format-options{padding-right:0}.post-format-options a{margin-right:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-right:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}.tagsdiv .newtag,ul.categorychecklist li{margin-bottom:15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto}.tagchecklist{margin:25px 10px}.tagchecklist>span{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:left!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-left:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 3px 6px 6px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1em;margin:7px 0 0 7px;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-left:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:right;font-size:16px}#delete-action,#publishing-action{line-height:47px}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}}
\ No newline at end of file
diff --git a/wp-admin/css/forms-rtl.css b/wp-admin/css/forms-rtl.css
index b8a0956f0..0633c1af2 100644
--- a/wp-admin/css/forms-rtl.css
+++ b/wp-admin/css/forms-rtl.css
@@ -204,6 +204,7 @@ textarea {
 
 .wp-admin input[type="file"] {
 	padding: 3px 0;
+	cursor: pointer;
 }
 
 label {
@@ -297,6 +298,7 @@ input[type="range"].disabled {
 	background: none;
 	-webkit-box-shadow: none;
 	box-shadow: none;
+	cursor: default;
 }
 
 input[type="checkbox"]:disabled,
@@ -384,7 +386,7 @@ textarea.large-text {
 	width: 99%;
 }
 
-input.regular-text {
+.regular-text {
 	width: 25em;
 }
 
@@ -456,21 +458,6 @@ fieldset label,
 	vertical-align: baseline;
 }
 
-#misc-publishing-actions label[for="post_status"]:before {
-	content: "\f173";
-	display: inline-block;
-	font: normal 20px/1 dashicons;
-	speak: none;
-	right: -1px;
-	padding: 0 0 0 5px;
-	position: relative;
-	top: 0;
-	text-decoration: none !important;
-	vertical-align: top;
-	-webkit-font-smoothing: antialiased;
-	-moz-osx-font-smoothing: grayscale;
-}
-
 #pass-strength-result {
 	background-color: #eee;
 	border: 1px solid #ddd;
@@ -607,11 +594,18 @@ ul#add-to-blog-users {
 	padding: 4px 10px;
 	white-space: nowrap;
 	text-align: right;
+	cursor: pointer;
 }
 
-.ui-autocomplete li.ui-state-focus {
+/* Colors for the wplink toolbar autocomplete. */
+.ui-autocomplete .ui-state-focus {
 	background-color: #ddd;
-	cursor: pointer;
+}
+
+/* Colors for the tags autocomplete. */
+.wp-tags-autocomplete .ui-state-focus {
+	background-color: #0073aa;
+	color: #fff;
 }
 
 /*------------------------------------------------------------------------------
diff --git a/wp-admin/css/forms-rtl.min.css b/wp-admin/css/forms-rtl.min.css
index 79cb014b1..388b10828 100644
--- a/wp-admin/css/forms-rtl.min.css
+++ b/wp-admin/css/forms-rtl.min.css
@@ -1 +1 @@
-#pass-strength-result,input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.meta-box-sortables select,p.submit{max-width:100%}#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pressthis-code-wrap,textarea{overflow:auto}input,textarea{box-sizing:border-box}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:"\f147";margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;-webkit-box-shadow:0 0 2px rgba(204,0,0,.8);box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-right:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 -29px 0 6px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:right;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:"\f173";display:inline-block;font:400 20px/1 dashicons;speak:none;right:-1px;padding:0 0 0 5px;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 1px 5px 5px;padding:3px 5px;text-align:center;width:25em;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:left center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right}.ui-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(-20deg) rotate(-6deg);-ms-transform:skew(-20deg) rotate(-6deg);transform:skew(-20deg) rotate(-6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(-20deg) rotate(-9deg);-ms-transform:skew(-20deg) rotate(-9deg);transform:skew(-20deg) rotate(-9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-right:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 7px 6px 8px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:0 3px}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:left}.request-filesystem-credentials-dialog label[for=ftp]{margin-left:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-left:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:left;margin:-30px 0 0 3px}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-right:0}.form-table.permalink-structure td code{margin-right:32px}.form-table.permalink-structure td input[type=text]{margin-right:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-left:40px}.wp-pwd button.button{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;left:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:60px;margin:0}}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media only screen and (max-height:480px){.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;right:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-left:.5em}}
\ No newline at end of file
+#pass-strength-result,input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.meta-box-sortables select,p.submit{max-width:100%}#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pressthis-code-wrap,textarea{overflow:auto}input,textarea{box-sizing:border-box}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;-webkit-box-shadow:0 0 2px rgba(204,0,0,.8);box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-right:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 -29px 0 6px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:right;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 1px 5px 5px;padding:3px 5px;text-align:center;width:25em;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:left center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(-20deg) rotate(-6deg);-ms-transform:skew(-20deg) rotate(-6deg);transform:skew(-20deg) rotate(-6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(-20deg) rotate(-9deg);-ms-transform:skew(-20deg) rotate(-9deg);transform:skew(-20deg) rotate(-9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-right:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 7px 6px 8px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:0 3px}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:left}.request-filesystem-credentials-dialog label[for=ftp]{margin-left:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-left:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:left;margin:-30px 0 0 3px}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-right:0}.form-table.permalink-structure td code{margin-right:32px}.form-table.permalink-structure td input[type=text]{margin-right:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-left:40px}.wp-pwd button.button{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;left:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:60px;margin:0}}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media only screen and (max-height:480px){.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;right:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-left:.5em}}
\ No newline at end of file
diff --git a/wp-admin/css/forms.css b/wp-admin/css/forms.css
index 15be606f8..f0b1b372e 100644
--- a/wp-admin/css/forms.css
+++ b/wp-admin/css/forms.css
@@ -204,6 +204,7 @@ textarea {
 
 .wp-admin input[type="file"] {
 	padding: 3px 0;
+	cursor: pointer;
 }
 
 label {
@@ -297,6 +298,7 @@ input[type="range"].disabled {
 	background: none;
 	-webkit-box-shadow: none;
 	box-shadow: none;
+	cursor: default;
 }
 
 input[type="checkbox"]:disabled,
@@ -384,7 +386,7 @@ textarea.large-text {
 	width: 99%;
 }
 
-input.regular-text {
+.regular-text {
 	width: 25em;
 }
 
@@ -456,21 +458,6 @@ fieldset label,
 	vertical-align: baseline;
 }
 
-#misc-publishing-actions label[for="post_status"]:before {
-	content: "\f173";
-	display: inline-block;
-	font: normal 20px/1 dashicons;
-	speak: none;
-	left: -1px;
-	padding: 0 5px 0 0;
-	position: relative;
-	top: 0;
-	text-decoration: none !important;
-	vertical-align: top;
-	-webkit-font-smoothing: antialiased;
-	-moz-osx-font-smoothing: grayscale;
-}
-
 #pass-strength-result {
 	background-color: #eee;
 	border: 1px solid #ddd;
@@ -607,11 +594,18 @@ ul#add-to-blog-users {
 	padding: 4px 10px;
 	white-space: nowrap;
 	text-align: left;
+	cursor: pointer;
 }
 
-.ui-autocomplete li.ui-state-focus {
+/* Colors for the wplink toolbar autocomplete. */
+.ui-autocomplete .ui-state-focus {
 	background-color: #ddd;
-	cursor: pointer;
+}
+
+/* Colors for the tags autocomplete. */
+.wp-tags-autocomplete .ui-state-focus {
+	background-color: #0073aa;
+	color: #fff;
 }
 
 /*------------------------------------------------------------------------------
diff --git a/wp-admin/css/forms.min.css b/wp-admin/css/forms.min.css
index 12ee61b44..d6de85557 100644
--- a/wp-admin/css/forms.min.css
+++ b/wp-admin/css/forms.min.css
@@ -1 +1 @@
-#pass-strength-result,input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.meta-box-sortables select,p.submit{max-width:100%}#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pressthis-code-wrap,textarea{overflow:auto}input,textarea{box-sizing:border-box}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;-webkit-box-shadow:0 0 2px rgba(204,0,0,.8);box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-left:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 6px 0 -29px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:"\f173";display:inline-block;font:400 20px/1 dashicons;speak:none;left:-1px;padding:0 5px 0 0;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 1px;padding:3px 5px;text-align:center;width:25em;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:right center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left}.ui-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-left:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 8px 6px 7px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:0 3px}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:right}.request-filesystem-credentials-dialog label[for=ftp]{margin-right:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-right:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:right;margin:-30px 3px 0 0}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-left:0}.form-table.permalink-structure td code{margin-left:32px}.form-table.permalink-structure td input[type=text]{margin-left:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-right:40px}.wp-pwd button.button{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;right:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:60px;margin:0}}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media only screen and (max-height:480px){.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;left:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-right:.5em}}
\ No newline at end of file
+#pass-strength-result,input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.meta-box-sortables select,p.submit{max-width:100%}#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pressthis-code-wrap,textarea{overflow:auto}input,textarea{box-sizing:border-box}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;-webkit-box-shadow:0 0 2px rgba(204,0,0,.8);box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-left:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 6px 0 -29px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 1px;padding:3px 5px;text-align:center;width:25em;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:right center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-left:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 8px 6px 7px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:0 3px}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:right}.request-filesystem-credentials-dialog label[for=ftp]{margin-right:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-right:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:right;margin:-30px 3px 0 0}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-left:0}.form-table.permalink-structure td code{margin-left:32px}.form-table.permalink-structure td input[type=text]{margin-left:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-right:40px}.wp-pwd button.button{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;right:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:60px;margin:0}}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media only screen and (max-height:480px){.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;left:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-right:.5em}}
\ No newline at end of file
diff --git a/wp-admin/css/ie-rtl.css b/wp-admin/css/ie-rtl.css
index 739374a36..df19f457a 100644
--- a/wp-admin/css/ie-rtl.css
+++ b/wp-admin/css/ie-rtl.css
@@ -221,8 +221,7 @@ table.fixed td {
 }
 
 #wpbody-content input.button,
-#wpbody-content input.button-primary,
-#wpbody-content input.button-secondary {
+#wpbody-content input.button-primary {
 	overflow: visible;
 }
 
@@ -442,13 +441,17 @@ div#dashboard-widgets {
 	padding-left: 1px;
 }
 
-.tagchecklist span, .tagchecklist span a {
+.tagchecklist > span, .tagchecklist .ntdelbutton {
 	display: inline-block;
 	display: block;
 }
 
-.tablenav .button-secondary,
-.nav .button-secondary {
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
+	outline: 1px solid #5b9dd9;
+}
+
+.tablenav .button,
+.nav .button {
 	padding-top: 2px;
 	padding-bottom: 2px;
 }
@@ -507,7 +510,7 @@ table.ie-fixed {
 	border-collapse: collapse;
 }
 
-.tablenav a.button-secondary {
+.tablenav a.button {
 	display: inline-block;
 	padding: 2px 5px;
 }
diff --git a/wp-admin/css/ie-rtl.min.css b/wp-admin/css/ie-rtl.min.css
index d96fbaa9e..9535dae71 100644
--- a/wp-admin/css/ie-rtl.min.css
+++ b/wp-admin/css/ie-rtl.min.css
@@ -1 +1 @@
-#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:left;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp-editor-tabs,.wp-editor-wrap .wp-editor-tools,.wp-editor-wrap .wp-switch-editor{zoom:100%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-right:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}#adminmenuback{right:0;background-image:none}#adminmenu .wp-submenu,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open{right:110px}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu ul{margin:0}.folded #wpcontent,.folded #wpfooter{margin-right:170px}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:150px}.folded #adminmenu .wp-submenu{border-top-color:transparent}.folded #adminmenu .wp-menu-name{display:block}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{top:-1px;position:relative}.folded #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}#wpbody-content .postbox,* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea,* html input{border:1px solid #ddd}.folded #adminmenu .wp-submenu ul{margin-right:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#adminmenu li.wp-has-current-submenu .wp-submenu{right:-40px}#adminmenu .wp-menu-image{display:none!important}#adminmenu a.menu-top .wp-menu-name{padding-right:8px}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}.theme-browser .theme{width:30%;margin:0 0 4% 3%;cursor:auto}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:auto}.theme-browser .theme .theme-screenshot{height:180px}.theme-browser .theme .theme-actions{position:static;background-color:#e8e8e8}.theme-browser .theme .more-details{display:none}.plugins td,.plugins th,table.fixed td,table.fixed th{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary,#wpbody-content input.button-secondary{overflow:visible}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox .hndle{margin-bottom:-1px}#addcat,#editcat,#template,#template div,.major-publishing-actions,.wp-submenu,.wp-submenu li{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:right;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type=reset],input[type=button],input[type=submit]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type=reset].button-large,input[type=button].button-large,input[type=submit].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type=reset].button-small,input[type=button].button-small,input[type=submit].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#col-container,#col-left,#col-right,#dragHelper,#editorcontainer,#post-body,#post-status-info,#postdiv,#postdivrich,#poststuff,#the-comment-list .comment-item,#titlediv,#widgets-left,#wpwrap,#wrap,.fileedit-sub,.metabox-holder,.tablenav,.tagchecklist,.widget .widget-top,.widget-control-actions,.widget-liquid-left,.widget-liquid-right,.widgets-sortables{display:block;zoom:100%}p.search-box{position:static;float:left;margin:-3px 0 4px}#submitdiv a.button,#submitdiv input,#submitdiv select,.inactive-sidebar .widget,.revisions.pinned .revisions-controls,.widget-liquid-right .widget{position:relative}#widget-list .widget{display:inline}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #page_template,#poststuff .inside #parent_id,.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{width:250px}#bh{margin:7px 0 0 10px;float:left}div#dashboard-widgets{padding-left:1px}.tagchecklist span,.tagchecklist span a{display:inline-block;display:block}.nav .button-secondary,.tablenav .button-secondary{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}a.post-state-format{text-indent:0;line-height:0;font-size:0}table.ie-fixed{table-layout:fixed}.widefat tfoot td,.widefat th,.widefat thead td,.widefat tr{margin-bottom:0;border-spacing:0}.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 5px 0 0}.widefat tfoot .check-column,.widefat thead .check-column{padding-top:6px}.media.widefat tbody th.check-column,.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button-secondary{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.inactive-sidebar .widget{display:block;float:right}#wpcontent .button-primary-disabled{color:#9FD0D5;background:#298CBA}#the-comment-list .unapproved td,#the-comment-list .unapproved tr{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-left:7px;margin-left:7px}.about-wrap .three-col.about-updates .col-2{width:15%}.about-wrap .about-password-meter input{width:98%}.revisions-tickmarks,.revisions-tooltip{display:none!important}.login form .input,input[type=password]{font-family:sans-serif}.mce-btn i.mce-i-aligncenter,.mce-btn i.mce-i-alignjustify,.mce-btn i.mce-i-alignleft,.mce-btn i.mce-i-alignright,.mce-btn i.mce-i-blockquote,.mce-btn i.mce-i-bold,.mce-btn i.mce-i-bullist,.mce-btn i.mce-i-charmap,.mce-btn i.mce-i-forecolor,.mce-btn i.mce-i-fullscreen,.mce-btn i.mce-i-help,.mce-btn i.mce-i-hr,.mce-btn i.mce-i-indent,.mce-btn i.mce-i-italic,.mce-btn i.mce-i-link,.mce-btn i.mce-i-ltr,.mce-btn i.mce-i-numlist,.mce-btn i.mce-i-outdent,.mce-btn i.mce-i-pastetext,.mce-btn i.mce-i-pasteword,.mce-btn i.mce-i-redo,.mce-btn i.mce-i-removeformat,.mce-btn i.mce-i-spellchecker,.mce-btn i.mce-i-strikethrough,.mce-btn i.mce-i-underline,.mce-btn i.mce-i-undo,.mce-btn i.mce-i-unlink,.mce-btn i.mce-i-wp-media-library,.mce-btn i.mce-i-wp_adv,.mce-btn i.mce-i-wp_fullscreen,.mce-btn i.mce-i-wp_help,.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page,.mce-close{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;margin-right:0;padding-left:0}.mce-btn i.mce-i-wp_fullscreen,.qt-fullscreen{-ie7-icon:'\e023'}.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page{-ie7-icon:'\e027'}.mce-btn i.mce-i-wp_adv{background-color:#a0a5aa}.mce-btn i.mce-i-help,.mce-btn i.mce-i-wp_help{-ie7-icon:'\e016'}* html .row-actions{visibility:visible}* html div.widget-liquid-left,* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-right:0}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{left:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-right:-80px}* html .folded #adminmenu{margin-right:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
+#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:left;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp-editor-tabs,.wp-editor-wrap .wp-editor-tools,.wp-editor-wrap .wp-switch-editor{zoom:100%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-right:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}#adminmenuback{right:0;background-image:none}#adminmenu .wp-submenu,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open{right:110px}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu ul{margin:0}.folded #wpcontent,.folded #wpfooter{margin-right:170px}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:150px}.folded #adminmenu .wp-submenu{border-top-color:transparent}.folded #adminmenu .wp-menu-name{display:block}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{top:-1px;position:relative}.folded #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}#wpbody-content .postbox,* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea,* html input{border:1px solid #ddd}.folded #adminmenu .wp-submenu ul{margin-right:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#adminmenu li.wp-has-current-submenu .wp-submenu{right:-40px}#adminmenu .wp-menu-image{display:none!important}#adminmenu a.menu-top .wp-menu-name{padding-right:8px}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}.theme-browser .theme{width:30%;margin:0 0 4% 3%;cursor:auto}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:auto}.theme-browser .theme .theme-screenshot{height:180px}.theme-browser .theme .theme-actions{position:static;background-color:#e8e8e8}.theme-browser .theme .more-details{display:none}.plugins td,.plugins th,table.fixed td,table.fixed th{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary{overflow:visible}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox .hndle{margin-bottom:-1px}#addcat,#editcat,#template,#template div,.major-publishing-actions,.wp-submenu,.wp-submenu li{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:right;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type=reset],input[type=button],input[type=submit]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type=reset].button-large,input[type=button].button-large,input[type=submit].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type=reset].button-small,input[type=button].button-small,input[type=submit].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#col-container,#col-left,#col-right,#dragHelper,#editorcontainer,#post-body,#post-status-info,#postdiv,#postdivrich,#poststuff,#the-comment-list .comment-item,#titlediv,#widgets-left,#wpwrap,#wrap,.fileedit-sub,.metabox-holder,.tablenav,.tagchecklist,.widget .widget-top,.widget-control-actions,.widget-liquid-left,.widget-liquid-right,.widgets-sortables{display:block;zoom:100%}p.search-box{position:static;float:left;margin:-3px 0 4px}#submitdiv a.button,#submitdiv input,#submitdiv select,.inactive-sidebar .widget,.revisions.pinned .revisions-controls,.widget-liquid-right .widget{position:relative}#widget-list .widget{display:inline}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #page_template,#poststuff .inside #parent_id,.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{width:250px}#bh{margin:7px 0 0 10px;float:left}div#dashboard-widgets{padding-left:1px}.tagchecklist .ntdelbutton,.tagchecklist>span{display:inline-block;display:block}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{outline:#5b9dd9 solid 1px}.nav .button,.tablenav .button{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}a.post-state-format{text-indent:0;line-height:0;font-size:0}table.ie-fixed{table-layout:fixed}.widefat tfoot td,.widefat th,.widefat thead td,.widefat tr{margin-bottom:0;border-spacing:0}.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 5px 0 0}.widefat tfoot .check-column,.widefat thead .check-column{padding-top:6px}.media.widefat tbody th.check-column,.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.inactive-sidebar .widget{display:block;float:right}#wpcontent .button-primary-disabled{color:#9FD0D5;background:#298CBA}#the-comment-list .unapproved td,#the-comment-list .unapproved tr{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-left:7px;margin-left:7px}.about-wrap .three-col.about-updates .col-2{width:15%}.about-wrap .about-password-meter input{width:98%}.revisions-tickmarks,.revisions-tooltip{display:none!important}.login form .input,input[type=password]{font-family:sans-serif}.mce-btn i.mce-i-aligncenter,.mce-btn i.mce-i-alignjustify,.mce-btn i.mce-i-alignleft,.mce-btn i.mce-i-alignright,.mce-btn i.mce-i-blockquote,.mce-btn i.mce-i-bold,.mce-btn i.mce-i-bullist,.mce-btn i.mce-i-charmap,.mce-btn i.mce-i-forecolor,.mce-btn i.mce-i-fullscreen,.mce-btn i.mce-i-help,.mce-btn i.mce-i-hr,.mce-btn i.mce-i-indent,.mce-btn i.mce-i-italic,.mce-btn i.mce-i-link,.mce-btn i.mce-i-ltr,.mce-btn i.mce-i-numlist,.mce-btn i.mce-i-outdent,.mce-btn i.mce-i-pastetext,.mce-btn i.mce-i-pasteword,.mce-btn i.mce-i-redo,.mce-btn i.mce-i-removeformat,.mce-btn i.mce-i-spellchecker,.mce-btn i.mce-i-strikethrough,.mce-btn i.mce-i-underline,.mce-btn i.mce-i-undo,.mce-btn i.mce-i-unlink,.mce-btn i.mce-i-wp-media-library,.mce-btn i.mce-i-wp_adv,.mce-btn i.mce-i-wp_fullscreen,.mce-btn i.mce-i-wp_help,.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page,.mce-close{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;margin-right:0;padding-left:0}.mce-btn i.mce-i-wp_fullscreen,.qt-fullscreen{-ie7-icon:'\e023'}.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page{-ie7-icon:'\e027'}.mce-btn i.mce-i-wp_adv{background-color:#a0a5aa}.mce-btn i.mce-i-help,.mce-btn i.mce-i-wp_help{-ie7-icon:'\e016'}* html .row-actions{visibility:visible}* html div.widget-liquid-left,* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-right:0}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{left:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-right:-80px}* html .folded #adminmenu{margin-right:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
diff --git a/wp-admin/css/ie.css b/wp-admin/css/ie.css
index 90cf8f341..df8d79249 100644
--- a/wp-admin/css/ie.css
+++ b/wp-admin/css/ie.css
@@ -221,8 +221,7 @@ table.fixed td {
 }
 
 #wpbody-content input.button,
-#wpbody-content input.button-primary,
-#wpbody-content input.button-secondary {
+#wpbody-content input.button-primary {
 	overflow: visible;
 }
 
@@ -442,13 +441,17 @@ div#dashboard-widgets {
 	padding-right: 1px;
 }
 
-.tagchecklist span, .tagchecklist span a {
+.tagchecklist > span, .tagchecklist .ntdelbutton {
 	display: inline-block;
 	display: block;
 }
 
-.tablenav .button-secondary,
-.nav .button-secondary {
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
+	outline: 1px solid #5b9dd9;
+}
+
+.tablenav .button,
+.nav .button {
 	padding-top: 2px;
 	padding-bottom: 2px;
 }
@@ -507,7 +510,7 @@ table.ie-fixed {
 	border-collapse: collapse;
 }
 
-.tablenav a.button-secondary {
+.tablenav a.button {
 	display: inline-block;
 	padding: 2px 5px;
 }
diff --git a/wp-admin/css/ie.min.css b/wp-admin/css/ie.min.css
index 486502d0a..5cbe8b99a 100644
--- a/wp-admin/css/ie.min.css
+++ b/wp-admin/css/ie.min.css
@@ -1 +1 @@
-#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp-editor-tabs,.wp-editor-wrap .wp-editor-tools,.wp-editor-wrap .wp-switch-editor{zoom:100%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-left:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}#adminmenuback{left:0;background-image:none}#adminmenu .wp-submenu,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open{left:110px}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu ul{margin:0}.folded #wpcontent,.folded #wpfooter{margin-left:170px}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:150px}.folded #adminmenu .wp-submenu{border-top-color:transparent}.folded #adminmenu .wp-menu-name{display:block}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{top:-1px;position:relative}.folded #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}#wpbody-content .postbox,* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea,* html input{border:1px solid #ddd}.folded #adminmenu .wp-submenu ul{margin-left:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#adminmenu li.wp-has-current-submenu .wp-submenu{left:-40px}#adminmenu .wp-menu-image{display:none!important}#adminmenu a.menu-top .wp-menu-name{padding-left:8px}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}.theme-browser .theme{width:30%;margin:0 3% 4% 0;cursor:auto}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:auto}.theme-browser .theme .theme-screenshot{height:180px}.theme-browser .theme .theme-actions{position:static;background-color:#e8e8e8}.theme-browser .theme .more-details{display:none}.plugins td,.plugins th,table.fixed td,table.fixed th{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary,#wpbody-content input.button-secondary{overflow:visible}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox .hndle{margin-bottom:-1px}#addcat,#editcat,#template,#template div,.major-publishing-actions,.wp-submenu,.wp-submenu li{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type=reset],input[type=button],input[type=submit]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type=reset].button-large,input[type=button].button-large,input[type=submit].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type=reset].button-small,input[type=button].button-small,input[type=submit].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#col-container,#col-left,#col-right,#dragHelper,#editorcontainer,#post-body,#post-status-info,#postdiv,#postdivrich,#poststuff,#the-comment-list .comment-item,#titlediv,#widgets-left,#wpwrap,#wrap,.fileedit-sub,.metabox-holder,.tablenav,.tagchecklist,.widget .widget-top,.widget-control-actions,.widget-liquid-left,.widget-liquid-right,.widgets-sortables{display:block;zoom:100%}p.search-box{position:static;float:right;margin:-3px 0 4px}#submitdiv a.button,#submitdiv input,#submitdiv select,.inactive-sidebar .widget,.revisions.pinned .revisions-controls,.widget-liquid-right .widget{position:relative}#widget-list .widget{display:inline}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #page_template,#poststuff .inside #parent_id,.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{width:250px}#bh{margin:7px 10px 0 0;float:right}div#dashboard-widgets{padding-right:1px}.tagchecklist span,.tagchecklist span a{display:inline-block;display:block}.nav .button-secondary,.tablenav .button-secondary{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}a.post-state-format{text-indent:0;line-height:0;font-size:0}table.ie-fixed{table-layout:fixed}.widefat tfoot td,.widefat th,.widefat thead td,.widefat tr{margin-bottom:0;border-spacing:0}.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 0 0 5px}.widefat tfoot .check-column,.widefat thead .check-column{padding-top:6px}.media.widefat tbody th.check-column,.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button-secondary{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.inactive-sidebar .widget{display:block;float:left}#wpcontent .button-primary-disabled{color:#9FD0D5;background:#298CBA}#the-comment-list .unapproved td,#the-comment-list .unapproved tr{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-right:7px;margin-right:7px}.about-wrap .three-col.about-updates .col-2{width:15%}.about-wrap .about-password-meter input{width:98%}.revisions-tickmarks,.revisions-tooltip{display:none!important}.login form .input,input[type=password]{font-family:sans-serif}.mce-btn i.mce-i-aligncenter,.mce-btn i.mce-i-alignjustify,.mce-btn i.mce-i-alignleft,.mce-btn i.mce-i-alignright,.mce-btn i.mce-i-blockquote,.mce-btn i.mce-i-bold,.mce-btn i.mce-i-bullist,.mce-btn i.mce-i-charmap,.mce-btn i.mce-i-forecolor,.mce-btn i.mce-i-fullscreen,.mce-btn i.mce-i-help,.mce-btn i.mce-i-hr,.mce-btn i.mce-i-indent,.mce-btn i.mce-i-italic,.mce-btn i.mce-i-link,.mce-btn i.mce-i-ltr,.mce-btn i.mce-i-numlist,.mce-btn i.mce-i-outdent,.mce-btn i.mce-i-pastetext,.mce-btn i.mce-i-pasteword,.mce-btn i.mce-i-redo,.mce-btn i.mce-i-removeformat,.mce-btn i.mce-i-spellchecker,.mce-btn i.mce-i-strikethrough,.mce-btn i.mce-i-underline,.mce-btn i.mce-i-undo,.mce-btn i.mce-i-unlink,.mce-btn i.mce-i-wp-media-library,.mce-btn i.mce-i-wp_adv,.mce-btn i.mce-i-wp_fullscreen,.mce-btn i.mce-i-wp_help,.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page,.mce-close{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;margin-left:0;padding-right:0}.mce-btn i.mce-i-wp_fullscreen,.qt-fullscreen{-ie7-icon:'\e023'}.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page{-ie7-icon:'\e027'}.mce-btn i.mce-i-wp_adv{background-color:#a0a5aa}.mce-btn i.mce-i-help,.mce-btn i.mce-i-wp_help{-ie7-icon:'\e016'}* html .row-actions{visibility:visible}* html div.widget-liquid-left,* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-left:0}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{right:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-left:-80px}* html .folded #adminmenu{margin-left:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
+#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0;height:0;min-height:0}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp-editor-tabs,.wp-editor-wrap .wp-editor-tools,.wp-editor-wrap .wp-switch-editor{zoom:100%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-left:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}#adminmenuback{left:0;background-image:none}#adminmenu .wp-submenu,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-submenu.sub-open{left:110px}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu ul{margin:0}.folded #wpcontent,.folded #wpfooter{margin-left:170px}.folded #adminmenu,.folded #adminmenu li.menu-top,.folded #adminmenuback,.folded #adminmenuwrap{width:150px}.folded #adminmenu .wp-submenu{border-top-color:transparent}.folded #adminmenu .wp-menu-name{display:block}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{top:-1px;position:relative}.folded #adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}#wpbody-content .postbox,* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea,* html input{border:1px solid #ddd}.folded #adminmenu .wp-submenu ul{margin-left:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#adminmenu li.wp-has-current-submenu .wp-submenu{left:-40px}#adminmenu .wp-menu-image{display:none!important}#adminmenu a.menu-top .wp-menu-name{padding-left:8px}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}.theme-browser .theme{width:30%;margin:0 3% 4% 0;cursor:auto}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:auto}.theme-browser .theme .theme-screenshot{height:180px}.theme-browser .theme .theme-actions{position:static;background-color:#e8e8e8}.theme-browser .theme .more-details{display:none}.plugins td,.plugins th,table.fixed td,table.fixed th{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary{overflow:visible}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox .hndle{margin-bottom:-1px}#addcat,#editcat,#template,#template div,.major-publishing-actions,.wp-submenu,.wp-submenu li{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type=reset],input[type=button],input[type=submit]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type=reset].button-large,input[type=button].button-large,input[type=submit].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type=reset].button-small,input[type=button].button-small,input[type=submit].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#col-container,#col-left,#col-right,#dragHelper,#editorcontainer,#post-body,#post-status-info,#postdiv,#postdivrich,#poststuff,#the-comment-list .comment-item,#titlediv,#widgets-left,#wpwrap,#wrap,.fileedit-sub,.metabox-holder,.tablenav,.tagchecklist,.widget .widget-top,.widget-control-actions,.widget-liquid-left,.widget-liquid-right,.widgets-sortables{display:block;zoom:100%}p.search-box{position:static;float:right;margin:-3px 0 4px}#submitdiv a.button,#submitdiv input,#submitdiv select,.inactive-sidebar .widget,.revisions.pinned .revisions-controls,.widget-liquid-right .widget{position:relative}#widget-list .widget{display:inline}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #page_template,#poststuff .inside #parent_id,.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{width:250px}#bh{margin:7px 10px 0 0;float:right}div#dashboard-widgets{padding-right:1px}.tagchecklist .ntdelbutton,.tagchecklist>span{display:inline-block;display:block}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{outline:#5b9dd9 solid 1px}.nav .button,.tablenav .button{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}a.post-state-format{text-indent:0;line-height:0;font-size:0}table.ie-fixed{table-layout:fixed}.widefat tfoot td,.widefat th,.widefat thead td,.widefat tr{margin-bottom:0;border-spacing:0}.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 0 0 5px}.widefat tfoot .check-column,.widefat thead .check-column{padding-top:6px}.media.widefat tbody th.check-column,.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.inactive-sidebar .widget{display:block;float:left}#wpcontent .button-primary-disabled{color:#9FD0D5;background:#298CBA}#the-comment-list .unapproved td,#the-comment-list .unapproved tr{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-right:7px;margin-right:7px}.about-wrap .three-col.about-updates .col-2{width:15%}.about-wrap .about-password-meter input{width:98%}.revisions-tickmarks,.revisions-tooltip{display:none!important}.login form .input,input[type=password]{font-family:sans-serif}.mce-btn i.mce-i-aligncenter,.mce-btn i.mce-i-alignjustify,.mce-btn i.mce-i-alignleft,.mce-btn i.mce-i-alignright,.mce-btn i.mce-i-blockquote,.mce-btn i.mce-i-bold,.mce-btn i.mce-i-bullist,.mce-btn i.mce-i-charmap,.mce-btn i.mce-i-forecolor,.mce-btn i.mce-i-fullscreen,.mce-btn i.mce-i-help,.mce-btn i.mce-i-hr,.mce-btn i.mce-i-indent,.mce-btn i.mce-i-italic,.mce-btn i.mce-i-link,.mce-btn i.mce-i-ltr,.mce-btn i.mce-i-numlist,.mce-btn i.mce-i-outdent,.mce-btn i.mce-i-pastetext,.mce-btn i.mce-i-pasteword,.mce-btn i.mce-i-redo,.mce-btn i.mce-i-removeformat,.mce-btn i.mce-i-spellchecker,.mce-btn i.mce-i-strikethrough,.mce-btn i.mce-i-underline,.mce-btn i.mce-i-undo,.mce-btn i.mce-i-unlink,.mce-btn i.mce-i-wp-media-library,.mce-btn i.mce-i-wp_adv,.mce-btn i.mce-i-wp_fullscreen,.mce-btn i.mce-i-wp_help,.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page,.mce-close{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;margin-left:0;padding-right:0}.mce-btn i.mce-i-wp_fullscreen,.qt-fullscreen{-ie7-icon:'\e023'}.mce-btn i.mce-i-wp_more,.mce-btn i.mce-i-wp_page{-ie7-icon:'\e027'}.mce-btn i.mce-i-wp_adv{background-color:#a0a5aa}.mce-btn i.mce-i-help,.mce-btn i.mce-i-wp_help{-ie7-icon:'\e016'}* html .row-actions{visibility:visible}* html div.widget-liquid-left,* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-left:0}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{right:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-left:-80px}* html .folded #adminmenu{margin-left:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
diff --git a/wp-admin/css/install-rtl.css b/wp-admin/css/install-rtl.css
index 43378fc99..8f29fd280 100644
--- a/wp-admin/css/install-rtl.css
+++ b/wp-admin/css/install-rtl.css
@@ -443,7 +443,7 @@ body.language-chooser {
 	margin-left: 15px;
 }
 
-.button-secondary.hide-if-no-js,
+.button.hide-if-no-js,
 .hide-if-no-js {
 	display: none;
 }
diff --git a/wp-admin/css/install-rtl.min.css b/wp-admin/css/install-rtl.min.css
index d05100c24..a52e5dd8d 100644
--- a/wp-admin/css/install-rtl.min.css
+++ b/wp-admin/css/install-rtl.min.css
@@ -1 +1 @@
-a img,abbr,fieldset{border:0}#logo,h1,h2{padding:0 0 7px}#logo a,.form-table th p,h1,h2{font-weight:400}html{background:#f1f1f1;margin:0 20px}body{background:#fff;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}a{color:#0073aa}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}h1,h2{border-bottom:1px solid #ddd;clear:both;color:#666;font-size:24px}h3{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}input,submit,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}dl,ol,ul{padding:5px 22px 5px 5px}abbr{font-variant:normal}fieldset{padding:0;margin:0}label{cursor:pointer}#logo{margin:6px 0 14px;border-bottom:none;text-align:center}#logo a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:-130px auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#pass1-text,.pw-weak,.show-password #pass1{display:none}#logo a:focus{-webkit-box-shadow:none;box-shadow:none}.step{margin:20px 0 15px}.step,th{text-align:right;padding:0}.language-chooser.wp-core-ui .step .button.button-large{height:36px;font-size:14px;line-height:33px;vertical-align:middle}.form-table td,.form-table th{padding:10px 0 10px 20px;vertical-align:top;font-size:14px}textarea{border:1px solid #ddd;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px}.form-table th{text-align:right;width:140px}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:206px}.form-table.install-success td,.form-table.install-success th{vertical-align:middle;padding:16px 0 16px 20px}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}.wp-hide-pw>.dashicons{line-height:inherit}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 0 5px 5px;padding:3px 5px;text-align:center;width:218px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.message{border-right:4px solid #dc3232;padding:.7em .6em;background-color:#fbeaea}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}.language-chooser select,:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=text],.form-table td input[type=email],.form-table td input[type=url],.form-table td input[type=password],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #ddd;background-color:#fff;color:#32373c;font-size:16px;font-weight:400}.language-chooser p{text-align:left}.screen-reader-input,.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;visibility:hidden;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;vertical-align:middle;margin-left:15px}.button-secondary.hide-if-no-js,.hide-if-no-js{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}
\ No newline at end of file
+a img,abbr,fieldset{border:0}#logo,h1,h2{padding:0 0 7px}#logo a,.form-table th p,h1,h2{font-weight:400}html{background:#f1f1f1;margin:0 20px}body{background:#fff;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}a{color:#0073aa}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}h1,h2{border-bottom:1px solid #ddd;clear:both;color:#666;font-size:24px}h3{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}input,submit,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}dl,ol,ul{padding:5px 22px 5px 5px}abbr{font-variant:normal}fieldset{padding:0;margin:0}label{cursor:pointer}#logo{margin:6px 0 14px;border-bottom:none;text-align:center}#logo a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:-130px auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#pass1-text,.pw-weak,.show-password #pass1{display:none}#logo a:focus{-webkit-box-shadow:none;box-shadow:none}.step{margin:20px 0 15px}.step,th{text-align:right;padding:0}.language-chooser.wp-core-ui .step .button.button-large{height:36px;font-size:14px;line-height:33px;vertical-align:middle}.form-table td,.form-table th{padding:10px 0 10px 20px;vertical-align:top;font-size:14px}textarea{border:1px solid #ddd;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px}.form-table th{text-align:right;width:140px}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:206px}.form-table.install-success td,.form-table.install-success th{vertical-align:middle;padding:16px 0 16px 20px}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}.wp-hide-pw>.dashicons{line-height:inherit}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 0 5px 5px;padding:3px 5px;text-align:center;width:218px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.message{border-right:4px solid #dc3232;padding:.7em .6em;background-color:#fbeaea}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}.language-chooser select,:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=text],.form-table td input[type=email],.form-table td input[type=url],.form-table td input[type=password],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #ddd;background-color:#fff;color:#32373c;font-size:16px;font-weight:400}.language-chooser p{text-align:left}.screen-reader-input,.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;visibility:hidden;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;vertical-align:middle;margin-left:15px}.button.hide-if-no-js,.hide-if-no-js{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}
\ No newline at end of file
diff --git a/wp-admin/css/install.css b/wp-admin/css/install.css
index d1db4ec66..9de99ee36 100644
--- a/wp-admin/css/install.css
+++ b/wp-admin/css/install.css
@@ -443,7 +443,7 @@ body.language-chooser {
 	margin-right: 15px;
 }
 
-.button-secondary.hide-if-no-js,
+.button.hide-if-no-js,
 .hide-if-no-js {
 	display: none;
 }
diff --git a/wp-admin/css/install.min.css b/wp-admin/css/install.min.css
index ceac75164..714109f25 100644
--- a/wp-admin/css/install.min.css
+++ b/wp-admin/css/install.min.css
@@ -1 +1 @@
-a img,abbr,fieldset{border:0}#logo,h1,h2{padding:0 0 7px}#logo a,.form-table th p,h1,h2{font-weight:400}html{background:#f1f1f1;margin:0 20px}body{background:#fff;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}a{color:#0073aa}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}h1,h2{border-bottom:1px solid #ddd;clear:both;color:#666;font-size:24px}h3{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}input,submit,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}dl,ol,ul{padding:5px 5px 5px 22px}abbr{font-variant:normal}fieldset{padding:0;margin:0}label{cursor:pointer}#logo{margin:6px 0 14px;border-bottom:none;text-align:center}#logo a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:-130px auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#pass1-text,.pw-weak,.show-password #pass1{display:none}#logo a:focus{-webkit-box-shadow:none;box-shadow:none}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.language-chooser.wp-core-ui .step .button.button-large{height:36px;font-size:14px;line-height:33px;vertical-align:middle}.form-table td,.form-table th{padding:10px 20px 10px 0;vertical-align:top;font-size:14px}textarea{border:1px solid #ddd;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px}.form-table th{text-align:left;width:140px}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:206px}.form-table.install-success td,.form-table.install-success th{vertical-align:middle;padding:16px 20px 16px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}.wp-hide-pw>.dashicons{line-height:inherit}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 0;padding:3px 5px;text-align:center;width:218px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.message{border-left:4px solid #dc3232;padding:.7em .6em;background-color:#fbeaea}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}.language-chooser select,:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=text],.form-table td input[type=email],.form-table td input[type=url],.form-table td input[type=password],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #ddd;background-color:#fff;color:#32373c;font-size:16px;font-weight:400}.language-chooser p{text-align:right}.screen-reader-input,.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;visibility:hidden;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;vertical-align:middle;margin-right:15px}.button-secondary.hide-if-no-js,.hide-if-no-js{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}
\ No newline at end of file
+a img,abbr,fieldset{border:0}#logo,h1,h2{padding:0 0 7px}#logo a,.form-table th p,h1,h2{font-weight:400}html{background:#f1f1f1;margin:0 20px}body{background:#fff;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:140px auto 25px;padding:20px 20px 10px;max-width:700px;-webkit-font-smoothing:subpixel-antialiased;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}a{color:#0073aa}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}h1,h2{border-bottom:1px solid #ddd;clear:both;color:#666;font-size:24px}h3{font-size:16px}dd,dt,li,p{padding-bottom:2px;font-size:14px;line-height:1.5}.code,code{font-family:Consolas,Monaco,monospace}input,submit,textarea{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}dl,ol,ul{padding:5px 5px 5px 22px}abbr{font-variant:normal}fieldset{padding:0;margin:0}label{cursor:pointer}#logo{margin:6px 0 14px;border-bottom:none;text-align:center}#logo a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:-130px auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;overflow:hidden;display:block}#pass1-text,.pw-weak,.show-password #pass1{display:none}#logo a:focus{-webkit-box-shadow:none;box-shadow:none}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.language-chooser.wp-core-ui .step .button.button-large{height:36px;font-size:14px;line-height:33px;vertical-align:middle}.form-table td,.form-table th{padding:10px 20px 10px 0;vertical-align:top;font-size:14px}textarea{border:1px solid #ddd;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px}.form-table th{text-align:left;width:140px}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:3px 5px;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07)}.form-table input[type=email],.form-table input[type=password],.form-table input[type=text],.form-table input[type=url]{width:206px}.form-table.install-success td,.form-table.install-success th{vertical-align:middle;padding:16px 20px 16px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}.wp-hide-pw>.dashicons{line-height:inherit}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 0;padding:3px 5px;text-align:center;width:218px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.message{border-left:4px solid #dc3232;padding:.7em .6em;background-color:#fbeaea}#admin_email,#dbhost,#dbname,#pass1,#pass2,#prefix,#pwd,#uname,#user_login{direction:ltr}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}.rtl input,.rtl submit,.rtl textarea,body.rtl{font-family:Tahoma,sans-serif}.language-chooser select,:lang(he-il) .rtl input,:lang(he-il) .rtl submit,:lang(he-il) .rtl textarea,:lang(he-il) body.rtl{font-family:Arial,sans-serif}@media only screen and (max-width:799px){body{margin-top:115px}#logo a{margin:-125px auto 30px}}@media screen and (max-width:782px){.form-table{margin-top:0}.form-table td,.form-table th{display:block;width:auto;vertical-align:middle}.form-table th{padding:20px 0 0}.form-table td{padding:5px 0;border:0;margin:0}input,textarea{font-size:16px}.form-table span.description,.form-table td input[type=text],.form-table td input[type=email],.form-table td input[type=url],.form-table td input[type=password],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}}body.language-chooser{max-width:300px}.language-chooser select{padding:8px;width:100%;display:block;border:1px solid #ddd;background-color:#fff;color:#32373c;font-size:16px;font-weight:400}.language-chooser p{text-align:right}.screen-reader-input,.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.spinner{background:url(../images/spinner.gif) no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;visibility:hidden;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:2px 5px 0}.step .spinner{display:inline-block;vertical-align:middle;margin-right:15px}.button.hide-if-no-js,.hide-if-no-js{display:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}
\ No newline at end of file
diff --git a/wp-admin/css/list-tables-rtl.css b/wp-admin/css/list-tables-rtl.css
index 079c3c34f..250be23bb 100644
--- a/wp-admin/css/list-tables-rtl.css
+++ b/wp-admin/css/list-tables-rtl.css
@@ -555,15 +555,13 @@ tr.wp-locked .locked-indicator {
 	width: 16px;
 }
 
-tr.wp-locked .locked-indicator:before {
+tr.wp-locked .locked-indicator-icon:before {
 	color: #82878c;
 	content: "\f160";
 	display: inline-block;
-	float: right;
 	font: normal 20px/1 dashicons;
 	speak: none;
 	vertical-align: middle;
-	margin-right: 0;
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
 }
@@ -581,7 +579,7 @@ tr .locked-info {
 }
 
 tr.wp-locked .locked-info {
-	margin-top: 8px;
+	margin-top: 4px;
 	height: auto;
 	opacity: 1;
 }
@@ -656,6 +654,7 @@ th.asc a:focus span.sorting-indicator {
 	margin-right: 2px;
 }
 
+.tablenav a.button,
 .tablenav a.button-secondary {
 	display: block;
 	margin: 3px 0 0 8px;
diff --git a/wp-admin/css/list-tables-rtl.min.css b/wp-admin/css/list-tables-rtl.min.css
index 2523af057..cc68630d0 100644
--- a/wp-admin/css/list-tables-rtl.min.css
+++ b/wp-admin/css/list-tables-rtl.min.css
@@ -1 +1 @@
-.response-links{display:block;margin-bottom:1em}.response-links a{display:block}.response-links a.comments-edit-item-link{font-weight:600}.response-links a.comments-view-item-link{font-size:12px}.post-com-count-wrapper strong{font-weight:400}.comments-view-item-link{display:inline-block;clear:both}.column-comments .post-com-count-wrapper,.column-response .post-com-count-wrapper{white-space:nowrap;word-wrap:normal}.column-comments .post-com-count,.column-response .post-com-count{display:inline-block;vertical-align:top}.column-comments .post-com-count-approved,.column-comments .post-com-count-no-comments,.column-response .post-com-count-approved,.column-response .post-com-count-no-comments{margin-top:5px}.column-comments .comment-count-approved,.column-comments .comment-count-no-comments,.column-response .comment-count-approved,.column-response .comment-count-no-comments{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;padding:0 8px;min-width:24px;height:2em;-webkit-border-radius:5px;border-radius:5px;background-color:#72777c;color:#fff;font-size:11px;line-height:21px;text-align:center}.ie8 .column-comments .comment-count-approved,.ie8 .column-comments .comment-count-no-comments,.ie8 .column-response .comment-count-approved,.ie8 .column-response .comment-count-no-comments{min-width:0}.column-comments .post-com-count-approved:after,.column-comments .post-com-count-no-comments:after,.column-response .post-com-count-approved:after,.column-response .post-com-count-no-comments:after{content:"";display:block;margin-right:8px;width:0;height:0;border-top:5px solid #72777c;border-left:5px solid transparent}.column-comments .post-com-count-approved:focus .comment-count-approved,.column-comments .post-com-count-approved:hover .comment-count-approved,.column-response .post-com-count-approved:focus .comment-count-approved,.column-response .post-com-count-approved:hover .comment-count-approved{background:#0073aa}.column-comments .post-com-count-approved:focus:after,.column-comments .post-com-count-approved:hover:after,.column-response .post-com-count-approved:focus:after,.column-response .post-com-count-approved:hover:after{border-top-color:#0073aa}.column-comments .post-com-count-pending,.column-response .post-com-count-pending{position:relative;right:-3px;padding:0 5px;min-width:7px;height:17px;border:2px solid #fff;-webkit-border-radius:11px;border-radius:11px;background:#ca4a1f;color:#fff;font-size:9px;line-height:17px;text-align:center}.column-comments .post-com-count-no-pending,.column-response .post-com-count-no-pending{display:none}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom:1px solid #ccc}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#submitted-on,.submitted-on{color:#555d66}#replyrow td{padding:2px}#replysubmit{margin:0;padding:5px 7px 10px;overflow:hidden;text-align:center}#replysubmit .button{margin-left:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow.inline-edit-row fieldset.comment-reply{font-size:inherit;line-height:inherit}#replyrow legend{margin:0;padding:.2em 5px 0;font-size:13px;line-height:1.4;font-weight:600}#replyrow.inline-edit-row label{display:inline;vertical-align:baseline;line-height:inherit}#commentsdiv #edithead .inside,#edithead .inside{float:right;padding:3px 5px 2px 0;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}#replyerror{border-color:#ddd;background-color:#f9f9f9}.commentlist .avatar{vertical-align:text-top}#the-comment-list div.undo,#the-comment-list tr.undo{background-color:#f5f5f5}#the-comment-list .unapproved td,#the-comment-list .unapproved th{background-color:#fef7f1}#the-comment-list .unapproved th.check-column{border-right:4px solid #d54e21}#the-comment-list .unapproved th.check-column input{margin-right:4px}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}#the-comment-list td,#the-comment-list th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}#the-comment-list tr:last-child td,#the-comment-list tr:last-child th{-webkit-box-shadow:none;box-shadow:none}#the-comment-list tr.unapproved+tr.approved td,#the-comment-list tr.unapproved+tr.approved th{border-top:1px solid rgba(0,0,0,.03)}.vim-current,.vim-current td,.vim-current th{background-color:#e4f2fd!important}th .comment-grey-bubble{height:16px;width:16px}th .comment-grey-bubble:before{content:"\f101";font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-author,.fixed .column-date,.fixed .column-format,.fixed .column-links,.fixed .column-parent,.fixed .column-posts{width:10%}.fixed .column-posts{width:74px}.fixed .column-comment .comment-author{display:none}.fixed .column-categories,.fixed .column-rel,.fixed .column-response,.fixed .column-role,.fixed .column-tags{width:15%}.fixed .column-slug{width:25%}.fixed .column-locations{width:35%}.fixed .column-comments{width:5.5em;padding:8px 0;text-align:right}.fixed .column-comments .vers{padding-right:3px}td.column-title strong,td.plugin-title strong{display:block;margin-bottom:.2em;font-size:14px}td.column-title p,td.plugin-title p{margin:6px 0}table.media .column-title .media-icon{float:right;min-height:60px;margin:0 0 0 9px}table.media .column-title .media-icon img{max-width:60px;height:auto;vertical-align:top}table.media .column-title .has-media-icon~.row-actions{margin-right:70px}table.media .column-title .filename{margin-bottom:.2em}.wp-list-table a{-webkit-transition:none;transition:none}#the-list tr:last-child td,#the-list tr:last-child th{border-bottom:none!important;-webkit-box-shadow:none;box-shadow:none}#comments-form .fixed .column-author{width:20%}#comments-form .fixed .column-date{width:14%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv .comments-box{border:0}#commentsdiv .comments-box thead td,#commentsdiv .comments-box thead th{background:0 0;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv #edithead .inside input{width:160px}.sorting-indicator{display:block;visibility:hidden;width:10px;height:4px;margin-top:8px;margin-right:7px}.sorting-indicator:before{content:"\f142";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0;top:-4px;right:-8px;line-height:10px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.column-comments .sorting-indicator:before{top:0;right:-10px}th.desc a:focus span.sorting-indicator:before,th.desc:hover span.sorting-indicator:before,th.sorted.asc .sorting-indicator:before{content:"\f142"}th.asc a:focus span.sorting-indicator:before,th.asc:hover span.sorting-indicator:before,th.sorted.desc .sorting-indicator:before{content:"\f140"}.wp-list-table .toggle-row{position:absolute;left:8px;top:10px;display:none;padding:0;width:40px;height:40px;border:none;outline:0;background:0 0}.wp-list-table .toggle-row:hover{cursor:pointer}.wp-list-table .toggle-row:focus:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .wp-list-table .toggle-row:focus:before{outline:#5b9dd9 solid 1px}.wp-list-table .toggle-row:active{-webkit-box-shadow:none;box-shadow:none}.wp-list-table .toggle-row:before{position:absolute;top:-5px;right:10px;-webkit-border-radius:50%;border-radius:50%;display:block;padding:1px 0 1px 2px;color:#444;content:"\f140";font:400 20px/1 dashicons;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none}.wp-list-table .is-expanded .toggle-row:before{content:"\f142"}tr.wp-locked .locked-indicator{margin-right:6px;height:20px;width:16px}tr.wp-locked .locked-indicator:before{color:#82878c;content:"\f160";display:inline-block;float:right;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-right:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}tr.wp-locked .check-column input[type=checkbox],tr.wp-locked .check-column label,tr.wp-locked .row-actions .inline,tr.wp-locked .row-actions .trash{display:none}tr .locked-info{height:0;opacity:0}tr.wp-locked .locked-info{margin-top:8px;height:auto;opacity:1}.locked-text{vertical-align:top}tr.locked-info,tr.wp-locked .locked-info{-webkit-transition:height 1s,opacity .5s;transition:height 1s,opacity .5s}.fixed .column-comments .sorting-indicator{margin-top:3px}#menu-locations-wrap .widefat{width:60%}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:8px}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:right;cursor:pointer}th.asc a:focus span.sorting-indicator,th.asc:hover span.sorting-indicator,th.desc a:focus span.sorting-indicator,th.desc:hover span.sorting-indicator,th.sorted .sorting-indicator{visibility:visible}.tablenav-pages a,.tablenav-pages-navspan{font-weight:600;padding:0 2px}.tablenav-pages .current-page{margin:0 0 0 2px;padding-bottom:5px;font-size:13px;text-align:center}.tablenav .total-pages{margin-left:2px}.tablenav #table-paging{margin-right:2px}.tablenav a.button-secondary{display:block;margin:3px 0 0 8px}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:left;height:28px;margin-top:3px;cursor:default;color:#555}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a,.tablenav-pages-navspan{display:inline-block;min-width:17px;border:1px solid #ccc;padding:3px 5px 7px;background:#e5e5e5;font-size:16px;line-height:1;font-weight:400;text-align:center}.tablenav-pages-navspan{height:16px;border-color:#ddd;background:#f7f7f7;color:#a0a5aa}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover{border-color:#5b9dd9;color:#fff;background:#00a0d2;-webkit-box-shadow:none;box-shadow:none;outline:0}.tablenav .displaying-num{margin-left:7px}.tablenav .one-page .displaying-num{display:inline-block;margin-top:5px;margin-left:0}.tablenav .actions{overflow:hidden;padding:2px 0 0 8px}.wp-filter .actions{display:inline-block;vertical-align:middle}.tablenav .delete{margin-left:20px}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#0073aa}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#00a0d2}.tablenav .view-switch{float:left;margin:0 5px;padding-top:3px}.wp-filter .view-switch{display:inline-block;vertical-align:middle;padding:12px 0;margin:0 2px 0 8px}.media-toolbar.wp-filter .view-switch{margin:0 2px 0 12px}.view-switch a{float:right;width:28px;height:28px;text-align:center;line-height:24px;text-decoration:none}.view-switch a:before{color:#b4b9be;display:inline-block;font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.view-switch a:focus:before,.view-switch a:hover:before{color:#727272}.view-switch a.current:before{color:#0073aa}.view-switch .view-list:before{content:"\f163"}.view-switch .view-excerpt:before{content:"\f164"}.view-switch .view-grid:before{content:"\f509"}.filter{float:right;margin:-5px 10px 0 0}.filter .subsubsub{margin-right:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter .wp-filter{margin-bottom:0}#posts-filter fieldset{float:right;margin:0 0 1em 1.5ex;padding:0}#posts-filter fieldset legend{padding:0 1px .2em 0}.row-actions,.row-actions-visible{padding:2px 0 0}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:600;margin:0 6px}.row-title{font-size:14px!important;font-weight:600}.column-comment .comment-author{margin-bottom:.6em}.column-author img,.column-comment .comment-author img,.column-username img{float:right;margin-left:10px;margin-top:1px}.row-actions{color:#ddd;font-size:13px;position:relative;right:-9999em}.plugins,.plugins td,.plugins th,.row-actions .network_active,.row-actions .network_only{color:#000}.rtl .row-actions a{display:inline-block}.comment-item:hover .row-actions,.mobile .row-actions,.no-js .row-actions,.row-actions.visible,tr:hover .row-actions{position:static}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:right;margin:0;padding:0;width:100%}#wpbody-content .inline-edit-row fieldset .inline-edit-col,tr.inline-edit-row td{padding:0 .5em}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .quick-edit-row-page .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:left;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both;line-height:2.5}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}#the-list .inline-edit-row .inline-edit-legend{margin:0;padding:.2em .5em 0;line-height:2.5;font-weight:600}#the-list #bulk-edit.inline-edit-row .inline-edit-legend{padding:.2em .5em}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{margin:0;padding:0;font-style:italic}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0;line-height:2.5}.inline-edit-row fieldset.inline-edit-date label{display:inline-block;margin:0;line-height:1.5;vertical-align:baseline}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0;width:auto}.inline-edit-row fieldset label span.title,.inline-edit-row fieldset.inline-edit-date legend{display:block;float:right;width:6em;line-height:2.5}#posts-filter fieldset.inline-edit-date legend{padding:0}.inline-edit-row fieldset.inline-edit-date select{margin:1px;line-height:28px}.inline-edit-row fieldset .timestamp-wrap,.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-right:6em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-left:.5em}.inline-edit-row .inline-edit-or{margin:.2em 0 .2em 6px;line-height:2.5}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:middle}.inline-edit-row fieldset label textarea{width:100%;height:4em;vertical-align:top}#bulk-titles,ul.cat-checklist{height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-left:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-row .inline-edit-legend{text-transform:uppercase}.inline-edit-row fieldset .inline-edit-date{float:right}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.3em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}ul.cat-checklist{margin:0;background-color:#fff}#bulk-titles{display:block;margin:0 0 5px;line-height:140%}.inline-edit-row fieldset ul.cat-checklist input,.inline-edit-row fieldset ul.cat-checklist li{margin:0;position:relative}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-style:normal;font-size:11px}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{max-width:80%}.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name=page_template]{width:250px}.quick-edit-row-post fieldset label.inline-edit-status{float:right}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:right;height:18px;margin:0 -2px 0 3px;overflow:hidden;position:relative;width:20px}#bulk-titles div a:before{position:relative;top:-3px}.plugins tbody,.plugins tbody th.check-column{padding:8px 2px 0 0}.plugins tbody th.check-column input[type=checkbox]{margin-top:4px}.updates-table .plugin-title p{margin-top:0}.plugins .inactive th.check-column,.plugins tfoot td.check-column,.plugins thead td.check-column{padding-right:6px}.plugins tr{background:#fff}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ol,.plugins .desc ul{margin:0 2em 0 0}.plugins .desc ul{list-style-type:disc}.plugins .row-actions{font-size:13px}.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th{padding:10px 9px}.plugins .active td,.plugins .active th{background-color:#f7fcfe}.plugins .update td,.plugins .update th{border-bottom:0}.plugin-install #the-list td,.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th,.upgrade .plugins td,.upgrade .plugins th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th,.plugins tr.active.plugin-update-tr+tr.inactive td,.plugins tr.active.plugin-update-tr+tr.inactive th{border-top:1px solid rgba(0,0,0,.03);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1;box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1}.plugins .update td,.plugins .update th,.plugins .updated td,.plugins .updated th,.plugins tr.active+tr.inactive.update td,.plugins tr.active+tr.inactive.update th,.plugins tr.active+tr.inactive.updated td,.plugins tr.active+tr.inactive.updated th,.upgrade .plugins tr:last-of-type td,.upgrade .plugins tr:last-of-type th{-webkit-box-shadow:none;box-shadow:none}.plugin-update-tr.active td,.plugins .active th.check-column{border-right:4px solid #00a0d2}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-left:12px;white-space:nowrap}.updates-table-screenshot{float:right;padding:0 0 5px 10px}.plugins .inactive .plugin-title strong{font-weight:400}.plugins .row-actions,.plugins .second{padding:0 0 5px}.plugins .update .row-actions,.plugins .update .second,.plugins .updated .row-actions,.plugins .updated .second{padding-bottom:0}.plugins-php .widefat tfoot td,.plugins-php .widefat tfoot th{border-top-style:solid;border-top-width:1px}.plugins .plugin-update-tr .plugin-update{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);overflow:hidden;padding:0}.plugins .plugin-update-tr .notice,.plugins .plugin-update-tr div[class=update-message]{margin:5px 40px 15px 20px}.plugins .notice p{margin:.5em 0}.plugin-card .update-now:before{color:#f56e28;content:"\f463";display:inline-block;font:400 20px/1 dashicons;margin:3px -2px 0 5px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.plugin-card .updating-message:before{content:"\f463";-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}.plugin-card .updated-message:before{color:#79ba49;content:"\f147"}.plugin-install-php h2{clear:both}.plugin-install-php h3{margin:2.5em 0 8px}.plugin-install-php .wp-filter{margin-bottom:0}.plugin-group{overflow:hidden;margin-top:1.5em}.plugin-group h3{margin-top:0}.plugin-card{float:right;margin:0 8px 16px;width:48.5%;width:-webkit-calc(50% - 8px);width:calc(50% - 8px);background-color:#fff;border:1px solid #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.plugin-card:nth-child(odd){clear:both;margin-right:0}.plugin-card:nth-child(even){margin-left:0}@media screen and (min-width:1600px){.plugin-card{width:30%;width:-webkit-calc(33.1% - 8px);width:calc(33.1% - 8px)}.plugin-card:nth-child(odd){clear:none;margin-right:8px}.plugin-card:nth-child(even){margin-left:8px}.plugin-card:nth-child(3n+1){clear:both;margin-right:0}.plugin-card:nth-child(3n){margin-left:0}}.plugin-card-top{position:relative;padding:20px 20px 10px;min-height:135px}.plugin-action-buttons,div.action-links{margin:0}.plugin-card h3{margin:0 0 12px;font-size:18px;line-height:1.3}.plugin-card .desc,.plugin-card .name{margin-right:148px;margin-left:120px}.plugin-card .action-links{position:absolute;top:20px;left:20px;width:120px}.plugin-action-buttons{clear:left;float:left;margin-right:2em;margin-bottom:1em;text-align:left}.plugin-action-buttons li{margin-bottom:10px}.plugin-card-bottom{clear:both;padding:12px 20px;background-color:#fafafa;border-top:1px solid #ddd;overflow:hidden}.plugin-card-bottom .star-rating{display:inline}.plugin-card-update-failed .update-now{font-weight:600}.plugin-card-update-failed .notice-error{margin:0;padding-right:16px;-webkit-box-shadow:0 -1px 0 #ddd;box-shadow:0 -1px 0 #ddd}.plugin-card-update-failed .plugin-card-bottom{display:none}.plugin-card .column-rating{line-height:23px}.plugin-card .column-rating,.plugin-card .column-updated{margin-bottom:4px}.plugin-card .column-downloaded,.plugin-card .column-rating{float:right;clear:right;max-width:180px}.plugin-card .column-compatibility,.plugin-card .column-updated{text-align:left;float:left;clear:left;width:65%;width:-webkit-calc(100% - 180px);width:calc(100% - 180px)}.plugin-card .column-compatibility span:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-2px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.plugin-card .compatibility-incompatible:before{content:"\f158"}.plugin-card .compatibility-compatible:before{content:"\f147"}.plugin-icon{position:absolute;top:20px;right:20px;width:128px;height:128px;margin:0 0 20px 20px}.no-plugin-results{color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.wp-list-table .site-deleted,.wp-list-table tr.site-deleted{background:#ff8573}.wp-list-table .site-spammed,.wp-list-table tr.site-spammed{background:#faafaa}.wp-list-table .site-archived,.wp-list-table tr.site-archived{background:#ffebe8}.wp-list-table .site-mature,.wp-list-table tr.site-mature{background:#fecac2}.sites.fixed .column-lastupdated,.sites.fixed .column-registered{width:20%}.sites.fixed .column-users{width:80px}@media screen and (max-width:1100px) and (min-width:782px),(max-width:480px){.plugin-card .action-links{position:static;margin-right:148px;width:auto}.plugin-action-buttons{float:none;margin:1em 0 0;text-align:right}.plugin-action-buttons li{display:inline-block;vertical-align:middle}.plugin-action-buttons li .button{margin-left:20px}.plugin-card .desc,.plugin-card .name{margin-left:0}.plugin-card .desc p:first-of-type{margin-top:0}.fixed .column-date{width:14%}}@media screen and (max-width:782px){.plugins #the-list tr td,.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column{border-top:none}.tablenav{height:auto}.tablenav.top{margin:20px 0 5px}.tablenav.bottom{position:relative;margin-top:15px}.tablenav br{display:none}.tablenav br.clear{display:block}.form-wrap>p,.tablenav .view-switch,.tablenav.top .actions,.tablenav.top .displaying-num,.tablenav.top .tablenav-pages.one-page{display:none}.view-switch a{width:36px;height:36px;line-height:33px}.tablenav.bottom .displaying-num{position:absolute;left:0;top:11px;margin:0;font-size:14px}.tablenav .tablenav-pages{width:100%;height:auto;text-align:center;margin:0 0 25px}.tablenav.bottom .tablenav-pages{margin-top:25px}.tablenav.bottom .tablenav-pages.one-page{margin:15px 0 0;height:0}.tablenav-pages .pagination-links{font-size:16px}.tablenav-pages .pagination-links a,.tablenav-pages-navspan{padding:9px 11px 12px;font-size:18px}.tablenav-pages-navspan{height:18px}.tablenav-pages .pagination-links .current-page{padding:8px 9px 9px;font-size:16px}.comment-count{font-size:14px}.wp-list-table th.column-primary~th,.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){display:none}.wp-list-table thead th.column-primary{width:100%}.wp-list-table tr th.check-column{display:table-cell;width:35px}.wp-list-table .column-primary .toggle-row{display:block}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column){position:relative;clear:both;display:block;width:auto!important}.wp-list-table td.column-primary{padding-left:50px}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){padding:3px 35% 3px 8px}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{position:absolute;right:10px;display:block;overflow:hidden;width:32%;content:attr(data-colname);white-space:nowrap;text-overflow:ellipsis}.wp-list-table .is-expanded td:not(.hidden){display:block!important;overflow:hidden}.column-posts,.widefat .num{text-align:right}#comments-form .fixed .column-author,#commentsdiv .fixed .column-author{display:none!important}.fixed .column-comment .comment-author{display:block}#the-comment-list .is-expanded td{-webkit-box-shadow:none;box-shadow:none}#the-comment-list .is-expanded td:last-child{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.post-com-count .screen-reader-text{position:static;width:auto;height:auto;margin:0}.column-comments .post-com-count-approved:after,.column-comments .post-com-count-no-comments:after,.column-response .post-com-count-approved:after,.column-response .post-com-count-no-comments:after{content:none}.column-comments .post-com-count [aria-hidden=true],.column-response .post-com-count [aria-hidden=true]{display:none}#edithead label,.column-comments .post-com-count-wrapper>a,.column-response .post-com-count-wrapper>a{display:block}.column-comments .post-com-count-wrapper,.column-response .post-com-count-wrapper{white-space:normal}.column-comments .post-com-count-approved,.column-comments .post-com-count-no-comments,.column-response .post-com-count-approved,.column-response .post-com-count-no-comments{margin-top:0;margin-left:.5em}.column-comments .post-com-count-pending,.column-response .post-com-count-pending{position:static;height:auto;min-width:0;padding:0;border:none;-webkit-border-radius:0;border-radius:0;background:0 0;color:#bb2a2a;font-size:inherit;line-height:inherit;text-align:right}.column-comments .post-com-count-pending:hover,.column-response .post-com-count-pending:hover{color:#dc3232}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:10px}.widefat *{word-wrap:normal}#wpbody-content .bulk-edit-row .inline-edit-col-bottom,#wpbody-content .bulk-edit-row .inline-edit-col-left,#wpbody-content .bulk-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .inline-edit-row-post .inline-edit-col-center,#wpbody-content .quick-edit-row-page .inline-edit-col-left,#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .quick-edit-row-post .inline-edit-col-left,#wpbody-content .quick-edit-row-post .inline-edit-col-right{float:none;width:100%}#wpbody-content .bulk-edit-row fieldset .inline-edit-col label,#wpbody-content .bulk-edit-row fieldset .inline-edit-group label,#wpbody-content .quick-edit-row fieldset .inline-edit-col label,#wpbody-content .quick-edit-row fieldset .inline-edit-group label{max-width:none;float:none;margin-bottom:5px}#wpbody .bulk-edit-row fieldset select{display:block;width:100%;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-size:16px}.inline-edit-row fieldset label span.title,.inline-edit-row fieldset.inline-edit-date legend{float:none}.inline-edit-row fieldset label.inline-edit-tags{padding:0 .5em}.inline-edit-row fieldset .inline-edit-col label.inline-edit-tags{padding:0}.inline-edit-row fieldset .timestamp-wrap,.inline-edit-row fieldset label span.input-text-wrap{margin-right:0}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{width:3em}.inline-edit-row fieldset input[name=aa]{width:4.5em}.inline-edit-row .inline-edit-or{margin:0 0 0 6px}#commentsdiv #edithead .inside,#edithead .inside{float:none;text-align:right;padding:3px 5px}#commentsdiv #edithead .inside input,#edithead .inside input{width:100%}#bulk-titles div{margin:.8em .3em}.plugin-card,.plugin-update-tr .update-message,.plugins .plugin-update-tr .update-message{margin-right:0}#bulk-titles div a{height:22px}#wpbody-content .updates-table .plugin-title{width:auto;white-space:normal}.link-manager-php #posts-filter{margin-top:25px}.link-manager-php .tablenav.bottom{overflow:hidden}.comments-box .toggle-row,.wp-list-table.plugins .toggle-row{display:none}#wpbody-content .wp-list-table.plugins td{display:block;width:auto;padding:10px 9px}#wpbody-content .wp-list-table.plugins .column-description{padding-top:2px}#wpbody-content .wp-list-table.plugins .plugin-title,#wpbody-content .wp-list-table.plugins .theme-title{padding-left:12px;white-space:normal}.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-top:13px;padding-bottom:4px}.plugins #the-list .update td,.plugins #the-list .update th,.plugins #the-list tr>td:not(:last-child),.wp-list-table.plugins #the-list .theme-title{-webkit-box-shadow:none;box-shadow:none;border-top:none}.plugins tbody{padding:1px 0 0}.plugins .plugin-update-tr:before,.plugins tr.active+tr.inactive td.column-description,.plugins tr.active+tr.inactive th.check-column{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins .plugin-update-tr:before{content:"";display:table-cell}.plugins #the-list .plugin-update-tr .plugin-update{border-right:none}.plugins .active.update+.plugin-update-tr:before{background-color:#f7fcfe;border-right:4px solid #00a0d2}.wp-list-table.plugins .plugin-title strong,.wp-list-table.plugins .theme-title strong{font-size:1.4em;line-height:1.5}table.plugin-install .column-description,table.plugin-install .column-name,table.plugin-install .column-rating,table.plugin-install .column-version{display:block;width:auto}table.plugin-install th.column-description,table.plugin-install th.column-name,table.plugin-install th.column-rating,table.plugin-install th.column-version{display:none}table.plugin-install td.column-name strong{font-size:1.4em;line-height:1.6em}table.plugin-install #the-list td{-webkit-box-shadow:none;box-shadow:none}table.plugin-install #the-list tr{display:block;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugin-card{margin-left:0;width:100%}}@media screen and (max-width:480px){.tablenav-pages .current-page{margin:0}.tablenav-pages .tablenav-paging-text{float:right;width:100%;padding-top:.5em}}
\ No newline at end of file
+.response-links{display:block;margin-bottom:1em}.response-links a{display:block}.response-links a.comments-edit-item-link{font-weight:600}.response-links a.comments-view-item-link{font-size:12px}.post-com-count-wrapper strong{font-weight:400}.comments-view-item-link{display:inline-block;clear:both}.column-comments .post-com-count-wrapper,.column-response .post-com-count-wrapper{white-space:nowrap;word-wrap:normal}.column-comments .post-com-count,.column-response .post-com-count{display:inline-block;vertical-align:top}.column-comments .post-com-count-approved,.column-comments .post-com-count-no-comments,.column-response .post-com-count-approved,.column-response .post-com-count-no-comments{margin-top:5px}.column-comments .comment-count-approved,.column-comments .comment-count-no-comments,.column-response .comment-count-approved,.column-response .comment-count-no-comments{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;padding:0 8px;min-width:24px;height:2em;-webkit-border-radius:5px;border-radius:5px;background-color:#72777c;color:#fff;font-size:11px;line-height:21px;text-align:center}.ie8 .column-comments .comment-count-approved,.ie8 .column-comments .comment-count-no-comments,.ie8 .column-response .comment-count-approved,.ie8 .column-response .comment-count-no-comments{min-width:0}.column-comments .post-com-count-approved:after,.column-comments .post-com-count-no-comments:after,.column-response .post-com-count-approved:after,.column-response .post-com-count-no-comments:after{content:"";display:block;margin-right:8px;width:0;height:0;border-top:5px solid #72777c;border-left:5px solid transparent}.column-comments .post-com-count-approved:focus .comment-count-approved,.column-comments .post-com-count-approved:hover .comment-count-approved,.column-response .post-com-count-approved:focus .comment-count-approved,.column-response .post-com-count-approved:hover .comment-count-approved{background:#0073aa}.column-comments .post-com-count-approved:focus:after,.column-comments .post-com-count-approved:hover:after,.column-response .post-com-count-approved:focus:after,.column-response .post-com-count-approved:hover:after{border-top-color:#0073aa}.column-comments .post-com-count-pending,.column-response .post-com-count-pending{position:relative;right:-3px;padding:0 5px;min-width:7px;height:17px;border:2px solid #fff;-webkit-border-radius:11px;border-radius:11px;background:#ca4a1f;color:#fff;font-size:9px;line-height:17px;text-align:center}.column-comments .post-com-count-no-pending,.column-response .post-com-count-no-pending{display:none}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom:1px solid #ccc}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#submitted-on,.submitted-on{color:#555d66}#replyrow td{padding:2px}#replysubmit{margin:0;padding:5px 7px 10px;overflow:hidden;text-align:center}#replysubmit .button{margin-left:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow.inline-edit-row fieldset.comment-reply{font-size:inherit;line-height:inherit}#replyrow legend{margin:0;padding:.2em 5px 0;font-size:13px;line-height:1.4;font-weight:600}#replyrow.inline-edit-row label{display:inline;vertical-align:baseline;line-height:inherit}#commentsdiv #edithead .inside,#edithead .inside{float:right;padding:3px 5px 2px 0;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}#replyerror{border-color:#ddd;background-color:#f9f9f9}.commentlist .avatar{vertical-align:text-top}#the-comment-list div.undo,#the-comment-list tr.undo{background-color:#f5f5f5}#the-comment-list .unapproved td,#the-comment-list .unapproved th{background-color:#fef7f1}#the-comment-list .unapproved th.check-column{border-right:4px solid #d54e21}#the-comment-list .unapproved th.check-column input{margin-right:4px}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}#the-comment-list td,#the-comment-list th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}#the-comment-list tr:last-child td,#the-comment-list tr:last-child th{-webkit-box-shadow:none;box-shadow:none}#the-comment-list tr.unapproved+tr.approved td,#the-comment-list tr.unapproved+tr.approved th{border-top:1px solid rgba(0,0,0,.03)}.vim-current,.vim-current td,.vim-current th{background-color:#e4f2fd!important}th .comment-grey-bubble{height:16px;width:16px}th .comment-grey-bubble:before{content:"\f101";font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-author,.fixed .column-date,.fixed .column-format,.fixed .column-links,.fixed .column-parent,.fixed .column-posts{width:10%}.fixed .column-posts{width:74px}.fixed .column-comment .comment-author{display:none}.fixed .column-categories,.fixed .column-rel,.fixed .column-response,.fixed .column-role,.fixed .column-tags{width:15%}.fixed .column-slug{width:25%}.fixed .column-locations{width:35%}.fixed .column-comments{width:5.5em;padding:8px 0;text-align:right}.fixed .column-comments .vers{padding-right:3px}td.column-title strong,td.plugin-title strong{display:block;margin-bottom:.2em;font-size:14px}td.column-title p,td.plugin-title p{margin:6px 0}table.media .column-title .media-icon{float:right;min-height:60px;margin:0 0 0 9px}table.media .column-title .media-icon img{max-width:60px;height:auto;vertical-align:top}table.media .column-title .has-media-icon~.row-actions{margin-right:70px}table.media .column-title .filename{margin-bottom:.2em}.wp-list-table a{-webkit-transition:none;transition:none}#the-list tr:last-child td,#the-list tr:last-child th{border-bottom:none!important;-webkit-box-shadow:none;box-shadow:none}#comments-form .fixed .column-author{width:20%}#comments-form .fixed .column-date{width:14%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv .comments-box{border:0}#commentsdiv .comments-box thead td,#commentsdiv .comments-box thead th{background:0 0;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv #edithead .inside input{width:160px}.sorting-indicator{display:block;visibility:hidden;width:10px;height:4px;margin-top:8px;margin-right:7px}.sorting-indicator:before{content:"\f142";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0;top:-4px;right:-8px;line-height:10px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.column-comments .sorting-indicator:before{top:0;right:-10px}th.desc a:focus span.sorting-indicator:before,th.desc:hover span.sorting-indicator:before,th.sorted.asc .sorting-indicator:before{content:"\f142"}th.asc a:focus span.sorting-indicator:before,th.asc:hover span.sorting-indicator:before,th.sorted.desc .sorting-indicator:before{content:"\f140"}.wp-list-table .toggle-row{position:absolute;left:8px;top:10px;display:none;padding:0;width:40px;height:40px;border:none;outline:0;background:0 0}.wp-list-table .toggle-row:hover{cursor:pointer}.wp-list-table .toggle-row:focus:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .wp-list-table .toggle-row:focus:before{outline:#5b9dd9 solid 1px}.wp-list-table .toggle-row:active{-webkit-box-shadow:none;box-shadow:none}.wp-list-table .toggle-row:before{position:absolute;top:-5px;right:10px;-webkit-border-radius:50%;border-radius:50%;display:block;padding:1px 0 1px 2px;color:#444;content:"\f140";font:400 20px/1 dashicons;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none}.wp-list-table .is-expanded .toggle-row:before{content:"\f142"}tr.wp-locked .locked-indicator{margin-right:6px;height:20px;width:16px}tr.wp-locked .locked-indicator-icon:before{color:#82878c;content:"\f160";display:inline-block;font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}tr.wp-locked .check-column input[type=checkbox],tr.wp-locked .check-column label,tr.wp-locked .row-actions .inline,tr.wp-locked .row-actions .trash{display:none}tr .locked-info{height:0;opacity:0}tr.wp-locked .locked-info{margin-top:4px;height:auto;opacity:1}.locked-text{vertical-align:top}tr.locked-info,tr.wp-locked .locked-info{-webkit-transition:height 1s,opacity .5s;transition:height 1s,opacity .5s}.fixed .column-comments .sorting-indicator{margin-top:3px}#menu-locations-wrap .widefat{width:60%}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:8px}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:right;cursor:pointer}th.asc a:focus span.sorting-indicator,th.asc:hover span.sorting-indicator,th.desc a:focus span.sorting-indicator,th.desc:hover span.sorting-indicator,th.sorted .sorting-indicator{visibility:visible}.tablenav-pages a,.tablenav-pages-navspan{font-weight:600;padding:0 2px}.tablenav-pages .current-page{margin:0 0 0 2px;padding-bottom:5px;font-size:13px;text-align:center}.tablenav .total-pages{margin-left:2px}.tablenav #table-paging{margin-right:2px}.tablenav a.button,.tablenav a.button-secondary{display:block;margin:3px 0 0 8px}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:left;height:28px;margin-top:3px;cursor:default;color:#555}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a,.tablenav-pages-navspan{display:inline-block;min-width:17px;border:1px solid #ccc;padding:3px 5px 7px;background:#e5e5e5;font-size:16px;line-height:1;font-weight:400;text-align:center}.tablenav-pages-navspan{height:16px;border-color:#ddd;background:#f7f7f7;color:#a0a5aa}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover{border-color:#5b9dd9;color:#fff;background:#00a0d2;-webkit-box-shadow:none;box-shadow:none;outline:0}.tablenav .displaying-num{margin-left:7px}.tablenav .one-page .displaying-num{display:inline-block;margin-top:5px;margin-left:0}.tablenav .actions{overflow:hidden;padding:2px 0 0 8px}.wp-filter .actions{display:inline-block;vertical-align:middle}.tablenav .delete{margin-left:20px}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#0073aa}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#00a0d2}.tablenav .view-switch{float:left;margin:0 5px;padding-top:3px}.wp-filter .view-switch{display:inline-block;vertical-align:middle;padding:12px 0;margin:0 2px 0 8px}.media-toolbar.wp-filter .view-switch{margin:0 2px 0 12px}.view-switch a{float:right;width:28px;height:28px;text-align:center;line-height:24px;text-decoration:none}.view-switch a:before{color:#b4b9be;display:inline-block;font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.view-switch a:focus:before,.view-switch a:hover:before{color:#727272}.view-switch a.current:before{color:#0073aa}.view-switch .view-list:before{content:"\f163"}.view-switch .view-excerpt:before{content:"\f164"}.view-switch .view-grid:before{content:"\f509"}.filter{float:right;margin:-5px 10px 0 0}.filter .subsubsub{margin-right:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter .wp-filter{margin-bottom:0}#posts-filter fieldset{float:right;margin:0 0 1em 1.5ex;padding:0}#posts-filter fieldset legend{padding:0 1px .2em 0}.row-actions,.row-actions-visible{padding:2px 0 0}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:600;margin:0 6px}.row-title{font-size:14px!important;font-weight:600}.column-comment .comment-author{margin-bottom:.6em}.column-author img,.column-comment .comment-author img,.column-username img{float:right;margin-left:10px;margin-top:1px}.row-actions{color:#ddd;font-size:13px;position:relative;right:-9999em}.plugins,.plugins td,.plugins th,.row-actions .network_active,.row-actions .network_only{color:#000}.rtl .row-actions a{display:inline-block}.comment-item:hover .row-actions,.mobile .row-actions,.no-js .row-actions,.row-actions.visible,tr:hover .row-actions{position:static}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:right;margin:0;padding:0;width:100%}#wpbody-content .inline-edit-row fieldset .inline-edit-col,tr.inline-edit-row td{padding:0 .5em}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .quick-edit-row-page .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:left;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both;line-height:2.5}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}#the-list .inline-edit-row .inline-edit-legend{margin:0;padding:.2em .5em 0;line-height:2.5;font-weight:600}#the-list #bulk-edit.inline-edit-row .inline-edit-legend{padding:.2em .5em}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{margin:0;padding:0;font-style:italic}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0;line-height:2.5}.inline-edit-row fieldset.inline-edit-date label{display:inline-block;margin:0;line-height:1.5;vertical-align:baseline}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0;width:auto}.inline-edit-row fieldset label span.title,.inline-edit-row fieldset.inline-edit-date legend{display:block;float:right;width:6em;line-height:2.5}#posts-filter fieldset.inline-edit-date legend{padding:0}.inline-edit-row fieldset.inline-edit-date select{margin:1px;line-height:28px}.inline-edit-row fieldset .timestamp-wrap,.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-right:6em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-left:.5em}.inline-edit-row .inline-edit-or{margin:.2em 0 .2em 6px;line-height:2.5}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:middle}.inline-edit-row fieldset label textarea{width:100%;height:4em;vertical-align:top}#bulk-titles,ul.cat-checklist{height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-left:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-row .inline-edit-legend{text-transform:uppercase}.inline-edit-row fieldset .inline-edit-date{float:right}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.3em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}ul.cat-checklist{margin:0;background-color:#fff}#bulk-titles{display:block;margin:0 0 5px;line-height:140%}.inline-edit-row fieldset ul.cat-checklist input,.inline-edit-row fieldset ul.cat-checklist li{margin:0;position:relative}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-style:normal;font-size:11px}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{max-width:80%}.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name=page_template]{width:250px}.quick-edit-row-post fieldset label.inline-edit-status{float:right}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:right;height:18px;margin:0 -2px 0 3px;overflow:hidden;position:relative;width:20px}#bulk-titles div a:before{position:relative;top:-3px}.plugins tbody,.plugins tbody th.check-column{padding:8px 2px 0 0}.plugins tbody th.check-column input[type=checkbox]{margin-top:4px}.updates-table .plugin-title p{margin-top:0}.plugins .inactive th.check-column,.plugins tfoot td.check-column,.plugins thead td.check-column{padding-right:6px}.plugins tr{background:#fff}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ol,.plugins .desc ul{margin:0 2em 0 0}.plugins .desc ul{list-style-type:disc}.plugins .row-actions{font-size:13px}.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th{padding:10px 9px}.plugins .active td,.plugins .active th{background-color:#f7fcfe}.plugins .update td,.plugins .update th{border-bottom:0}.plugin-install #the-list td,.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th,.upgrade .plugins td,.upgrade .plugins th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th,.plugins tr.active.plugin-update-tr+tr.inactive td,.plugins tr.active.plugin-update-tr+tr.inactive th{border-top:1px solid rgba(0,0,0,.03);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1;box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1}.plugins .update td,.plugins .update th,.plugins .updated td,.plugins .updated th,.plugins tr.active+tr.inactive.update td,.plugins tr.active+tr.inactive.update th,.plugins tr.active+tr.inactive.updated td,.plugins tr.active+tr.inactive.updated th,.upgrade .plugins tr:last-of-type td,.upgrade .plugins tr:last-of-type th{-webkit-box-shadow:none;box-shadow:none}.plugin-update-tr.active td,.plugins .active th.check-column{border-right:4px solid #00a0d2}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-left:12px;white-space:nowrap}.updates-table-screenshot{float:right;padding:0 0 5px 10px}.plugins .inactive .plugin-title strong{font-weight:400}.plugins .row-actions,.plugins .second{padding:0 0 5px}.plugins .update .row-actions,.plugins .update .second,.plugins .updated .row-actions,.plugins .updated .second{padding-bottom:0}.plugins-php .widefat tfoot td,.plugins-php .widefat tfoot th{border-top-style:solid;border-top-width:1px}.plugins .plugin-update-tr .plugin-update{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);overflow:hidden;padding:0}.plugins .plugin-update-tr .notice,.plugins .plugin-update-tr div[class=update-message]{margin:5px 40px 15px 20px}.plugins .notice p{margin:.5em 0}.plugin-card .update-now:before{color:#f56e28;content:"\f463";display:inline-block;font:400 20px/1 dashicons;margin:3px -2px 0 5px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.plugin-card .updating-message:before{content:"\f463";-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}.plugin-card .updated-message:before{color:#79ba49;content:"\f147"}.plugin-install-php h2{clear:both}.plugin-install-php h3{margin:2.5em 0 8px}.plugin-install-php .wp-filter{margin-bottom:0}.plugin-group{overflow:hidden;margin-top:1.5em}.plugin-group h3{margin-top:0}.plugin-card{float:right;margin:0 8px 16px;width:48.5%;width:-webkit-calc(50% - 8px);width:calc(50% - 8px);background-color:#fff;border:1px solid #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.plugin-card:nth-child(odd){clear:both;margin-right:0}.plugin-card:nth-child(even){margin-left:0}@media screen and (min-width:1600px){.plugin-card{width:30%;width:-webkit-calc(33.1% - 8px);width:calc(33.1% - 8px)}.plugin-card:nth-child(odd){clear:none;margin-right:8px}.plugin-card:nth-child(even){margin-left:8px}.plugin-card:nth-child(3n+1){clear:both;margin-right:0}.plugin-card:nth-child(3n){margin-left:0}}.plugin-card-top{position:relative;padding:20px 20px 10px;min-height:135px}.plugin-action-buttons,div.action-links{margin:0}.plugin-card h3{margin:0 0 12px;font-size:18px;line-height:1.3}.plugin-card .desc,.plugin-card .name{margin-right:148px;margin-left:120px}.plugin-card .action-links{position:absolute;top:20px;left:20px;width:120px}.plugin-action-buttons{clear:left;float:left;margin-right:2em;margin-bottom:1em;text-align:left}.plugin-action-buttons li{margin-bottom:10px}.plugin-card-bottom{clear:both;padding:12px 20px;background-color:#fafafa;border-top:1px solid #ddd;overflow:hidden}.plugin-card-bottom .star-rating{display:inline}.plugin-card-update-failed .update-now{font-weight:600}.plugin-card-update-failed .notice-error{margin:0;padding-right:16px;-webkit-box-shadow:0 -1px 0 #ddd;box-shadow:0 -1px 0 #ddd}.plugin-card-update-failed .plugin-card-bottom{display:none}.plugin-card .column-rating{line-height:23px}.plugin-card .column-rating,.plugin-card .column-updated{margin-bottom:4px}.plugin-card .column-downloaded,.plugin-card .column-rating{float:right;clear:right;max-width:180px}.plugin-card .column-compatibility,.plugin-card .column-updated{text-align:left;float:left;clear:left;width:65%;width:-webkit-calc(100% - 180px);width:calc(100% - 180px)}.plugin-card .column-compatibility span:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;right:-2px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.plugin-card .compatibility-incompatible:before{content:"\f158"}.plugin-card .compatibility-compatible:before{content:"\f147"}.plugin-icon{position:absolute;top:20px;right:20px;width:128px;height:128px;margin:0 0 20px 20px}.no-plugin-results{color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.wp-list-table .site-deleted,.wp-list-table tr.site-deleted{background:#ff8573}.wp-list-table .site-spammed,.wp-list-table tr.site-spammed{background:#faafaa}.wp-list-table .site-archived,.wp-list-table tr.site-archived{background:#ffebe8}.wp-list-table .site-mature,.wp-list-table tr.site-mature{background:#fecac2}.sites.fixed .column-lastupdated,.sites.fixed .column-registered{width:20%}.sites.fixed .column-users{width:80px}@media screen and (max-width:1100px) and (min-width:782px),(max-width:480px){.plugin-card .action-links{position:static;margin-right:148px;width:auto}.plugin-action-buttons{float:none;margin:1em 0 0;text-align:right}.plugin-action-buttons li{display:inline-block;vertical-align:middle}.plugin-action-buttons li .button{margin-left:20px}.plugin-card .desc,.plugin-card .name{margin-left:0}.plugin-card .desc p:first-of-type{margin-top:0}.fixed .column-date{width:14%}}@media screen and (max-width:782px){.plugins #the-list tr td,.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column{border-top:none}.tablenav{height:auto}.tablenav.top{margin:20px 0 5px}.tablenav.bottom{position:relative;margin-top:15px}.tablenav br{display:none}.tablenav br.clear{display:block}.form-wrap>p,.tablenav .view-switch,.tablenav.top .actions,.tablenav.top .displaying-num,.tablenav.top .tablenav-pages.one-page{display:none}.view-switch a{width:36px;height:36px;line-height:33px}.tablenav.bottom .displaying-num{position:absolute;left:0;top:11px;margin:0;font-size:14px}.tablenav .tablenav-pages{width:100%;height:auto;text-align:center;margin:0 0 25px}.tablenav.bottom .tablenav-pages{margin-top:25px}.tablenav.bottom .tablenav-pages.one-page{margin:15px 0 0;height:0}.tablenav-pages .pagination-links{font-size:16px}.tablenav-pages .pagination-links a,.tablenav-pages-navspan{padding:9px 11px 12px;font-size:18px}.tablenav-pages-navspan{height:18px}.tablenav-pages .pagination-links .current-page{padding:8px 9px 9px;font-size:16px}.comment-count{font-size:14px}.wp-list-table th.column-primary~th,.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){display:none}.wp-list-table thead th.column-primary{width:100%}.wp-list-table tr th.check-column{display:table-cell;width:35px}.wp-list-table .column-primary .toggle-row{display:block}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column){position:relative;clear:both;display:block;width:auto!important}.wp-list-table td.column-primary{padding-left:50px}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){padding:3px 35% 3px 8px}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{position:absolute;right:10px;display:block;overflow:hidden;width:32%;content:attr(data-colname);white-space:nowrap;text-overflow:ellipsis}.wp-list-table .is-expanded td:not(.hidden){display:block!important;overflow:hidden}.column-posts,.widefat .num{text-align:right}#comments-form .fixed .column-author,#commentsdiv .fixed .column-author{display:none!important}.fixed .column-comment .comment-author{display:block}#the-comment-list .is-expanded td{-webkit-box-shadow:none;box-shadow:none}#the-comment-list .is-expanded td:last-child{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.post-com-count .screen-reader-text{position:static;width:auto;height:auto;margin:0}.column-comments .post-com-count-approved:after,.column-comments .post-com-count-no-comments:after,.column-response .post-com-count-approved:after,.column-response .post-com-count-no-comments:after{content:none}.column-comments .post-com-count [aria-hidden=true],.column-response .post-com-count [aria-hidden=true]{display:none}#edithead label,.column-comments .post-com-count-wrapper>a,.column-response .post-com-count-wrapper>a{display:block}.column-comments .post-com-count-wrapper,.column-response .post-com-count-wrapper{white-space:normal}.column-comments .post-com-count-approved,.column-comments .post-com-count-no-comments,.column-response .post-com-count-approved,.column-response .post-com-count-no-comments{margin-top:0;margin-left:.5em}.column-comments .post-com-count-pending,.column-response .post-com-count-pending{position:static;height:auto;min-width:0;padding:0;border:none;-webkit-border-radius:0;border-radius:0;background:0 0;color:#bb2a2a;font-size:inherit;line-height:inherit;text-align:right}.column-comments .post-com-count-pending:hover,.column-response .post-com-count-pending:hover{color:#dc3232}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:10px}.widefat *{word-wrap:normal}#wpbody-content .bulk-edit-row .inline-edit-col-bottom,#wpbody-content .bulk-edit-row .inline-edit-col-left,#wpbody-content .bulk-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .inline-edit-row-post .inline-edit-col-center,#wpbody-content .quick-edit-row-page .inline-edit-col-left,#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .quick-edit-row-post .inline-edit-col-left,#wpbody-content .quick-edit-row-post .inline-edit-col-right{float:none;width:100%}#wpbody-content .bulk-edit-row fieldset .inline-edit-col label,#wpbody-content .bulk-edit-row fieldset .inline-edit-group label,#wpbody-content .quick-edit-row fieldset .inline-edit-col label,#wpbody-content .quick-edit-row fieldset .inline-edit-group label{max-width:none;float:none;margin-bottom:5px}#wpbody .bulk-edit-row fieldset select{display:block;width:100%;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-size:16px}.inline-edit-row fieldset label span.title,.inline-edit-row fieldset.inline-edit-date legend{float:none}.inline-edit-row fieldset label.inline-edit-tags{padding:0 .5em}.inline-edit-row fieldset .inline-edit-col label.inline-edit-tags{padding:0}.inline-edit-row fieldset .timestamp-wrap,.inline-edit-row fieldset label span.input-text-wrap{margin-right:0}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{width:3em}.inline-edit-row fieldset input[name=aa]{width:4.5em}.inline-edit-row .inline-edit-or{margin:0 0 0 6px}#commentsdiv #edithead .inside,#edithead .inside{float:none;text-align:right;padding:3px 5px}#commentsdiv #edithead .inside input,#edithead .inside input{width:100%}#bulk-titles div{margin:.8em .3em}.plugin-card,.plugin-update-tr .update-message,.plugins .plugin-update-tr .update-message{margin-right:0}#bulk-titles div a{height:22px}#wpbody-content .updates-table .plugin-title{width:auto;white-space:normal}.link-manager-php #posts-filter{margin-top:25px}.link-manager-php .tablenav.bottom{overflow:hidden}.comments-box .toggle-row,.wp-list-table.plugins .toggle-row{display:none}#wpbody-content .wp-list-table.plugins td{display:block;width:auto;padding:10px 9px}#wpbody-content .wp-list-table.plugins .column-description{padding-top:2px}#wpbody-content .wp-list-table.plugins .plugin-title,#wpbody-content .wp-list-table.plugins .theme-title{padding-left:12px;white-space:normal}.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-top:13px;padding-bottom:4px}.plugins #the-list .update td,.plugins #the-list .update th,.plugins #the-list tr>td:not(:last-child),.wp-list-table.plugins #the-list .theme-title{-webkit-box-shadow:none;box-shadow:none;border-top:none}.plugins tbody{padding:1px 0 0}.plugins .plugin-update-tr:before,.plugins tr.active+tr.inactive td.column-description,.plugins tr.active+tr.inactive th.check-column{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins .plugin-update-tr:before{content:"";display:table-cell}.plugins #the-list .plugin-update-tr .plugin-update{border-right:none}.plugins .active.update+.plugin-update-tr:before{background-color:#f7fcfe;border-right:4px solid #00a0d2}.wp-list-table.plugins .plugin-title strong,.wp-list-table.plugins .theme-title strong{font-size:1.4em;line-height:1.5}table.plugin-install .column-description,table.plugin-install .column-name,table.plugin-install .column-rating,table.plugin-install .column-version{display:block;width:auto}table.plugin-install th.column-description,table.plugin-install th.column-name,table.plugin-install th.column-rating,table.plugin-install th.column-version{display:none}table.plugin-install td.column-name strong{font-size:1.4em;line-height:1.6em}table.plugin-install #the-list td{-webkit-box-shadow:none;box-shadow:none}table.plugin-install #the-list tr{display:block;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugin-card{margin-left:0;width:100%}}@media screen and (max-width:480px){.tablenav-pages .current-page{margin:0}.tablenav-pages .tablenav-paging-text{float:right;width:100%;padding-top:.5em}}
\ No newline at end of file
diff --git a/wp-admin/css/list-tables.css b/wp-admin/css/list-tables.css
index b66f0c0d8..05e5f82ad 100644
--- a/wp-admin/css/list-tables.css
+++ b/wp-admin/css/list-tables.css
@@ -555,15 +555,13 @@ tr.wp-locked .locked-indicator {
 	width: 16px;
 }
 
-tr.wp-locked .locked-indicator:before {
+tr.wp-locked .locked-indicator-icon:before {
 	color: #82878c;
 	content: "\f160";
 	display: inline-block;
-	float: left;
 	font: normal 20px/1 dashicons;
 	speak: none;
 	vertical-align: middle;
-	margin-left: 0;
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
 }
@@ -581,7 +579,7 @@ tr .locked-info {
 }
 
 tr.wp-locked .locked-info {
-	margin-top: 8px;
+	margin-top: 4px;
 	height: auto;
 	opacity: 1;
 }
@@ -656,6 +654,7 @@ th.asc a:focus span.sorting-indicator {
 	margin-left: 2px;
 }
 
+.tablenav a.button,
 .tablenav a.button-secondary {
 	display: block;
 	margin: 3px 8px 0 0;
diff --git a/wp-admin/css/list-tables.min.css b/wp-admin/css/list-tables.min.css
index cb07782ac..22cd6f0e9 100644
--- a/wp-admin/css/list-tables.min.css
+++ b/wp-admin/css/list-tables.min.css
@@ -1 +1 @@
-.response-links{display:block;margin-bottom:1em}.response-links a{display:block}.response-links a.comments-edit-item-link{font-weight:600}.response-links a.comments-view-item-link{font-size:12px}.post-com-count-wrapper strong{font-weight:400}.comments-view-item-link{display:inline-block;clear:both}.column-comments .post-com-count-wrapper,.column-response .post-com-count-wrapper{white-space:nowrap;word-wrap:normal}.column-comments .post-com-count,.column-response .post-com-count{display:inline-block;vertical-align:top}.column-comments .post-com-count-approved,.column-comments .post-com-count-no-comments,.column-response .post-com-count-approved,.column-response .post-com-count-no-comments{margin-top:5px}.column-comments .comment-count-approved,.column-comments .comment-count-no-comments,.column-response .comment-count-approved,.column-response .comment-count-no-comments{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;padding:0 8px;min-width:24px;height:2em;-webkit-border-radius:5px;border-radius:5px;background-color:#72777c;color:#fff;font-size:11px;line-height:21px;text-align:center}.ie8 .column-comments .comment-count-approved,.ie8 .column-comments .comment-count-no-comments,.ie8 .column-response .comment-count-approved,.ie8 .column-response .comment-count-no-comments{min-width:0}.column-comments .post-com-count-approved:after,.column-comments .post-com-count-no-comments:after,.column-response .post-com-count-approved:after,.column-response .post-com-count-no-comments:after{content:"";display:block;margin-left:8px;width:0;height:0;border-top:5px solid #72777c;border-right:5px solid transparent}.column-comments .post-com-count-approved:focus .comment-count-approved,.column-comments .post-com-count-approved:hover .comment-count-approved,.column-response .post-com-count-approved:focus .comment-count-approved,.column-response .post-com-count-approved:hover .comment-count-approved{background:#0073aa}.column-comments .post-com-count-approved:focus:after,.column-comments .post-com-count-approved:hover:after,.column-response .post-com-count-approved:focus:after,.column-response .post-com-count-approved:hover:after{border-top-color:#0073aa}.column-comments .post-com-count-pending,.column-response .post-com-count-pending{position:relative;left:-3px;padding:0 5px;min-width:7px;height:17px;border:2px solid #fff;-webkit-border-radius:11px;border-radius:11px;background:#ca4a1f;color:#fff;font-size:9px;line-height:17px;text-align:center}.column-comments .post-com-count-no-pending,.column-response .post-com-count-no-pending{display:none}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom:1px solid #ccc}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#submitted-on,.submitted-on{color:#555d66}#replyrow td{padding:2px}#replysubmit{margin:0;padding:5px 7px 10px;overflow:hidden;text-align:center}#replysubmit .button{margin-right:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow.inline-edit-row fieldset.comment-reply{font-size:inherit;line-height:inherit}#replyrow legend{margin:0;padding:.2em 5px 0;font-size:13px;line-height:1.4;font-weight:600}#replyrow.inline-edit-row label{display:inline;vertical-align:baseline;line-height:inherit}#commentsdiv #edithead .inside,#edithead .inside{float:left;padding:3px 0 2px 5px;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}#replyerror{border-color:#ddd;background-color:#f9f9f9}.commentlist .avatar{vertical-align:text-top}#the-comment-list div.undo,#the-comment-list tr.undo{background-color:#f5f5f5}#the-comment-list .unapproved td,#the-comment-list .unapproved th{background-color:#fef7f1}#the-comment-list .unapproved th.check-column{border-left:4px solid #d54e21}#the-comment-list .unapproved th.check-column input{margin-left:4px}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}#the-comment-list td,#the-comment-list th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}#the-comment-list tr:last-child td,#the-comment-list tr:last-child th{-webkit-box-shadow:none;box-shadow:none}#the-comment-list tr.unapproved+tr.approved td,#the-comment-list tr.unapproved+tr.approved th{border-top:1px solid rgba(0,0,0,.03)}.vim-current,.vim-current td,.vim-current th{background-color:#e4f2fd!important}th .comment-grey-bubble{height:16px;width:16px}th .comment-grey-bubble:before{content:"\f101";font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-author,.fixed .column-date,.fixed .column-format,.fixed .column-links,.fixed .column-parent,.fixed .column-posts{width:10%}.fixed .column-posts{width:74px}.fixed .column-comment .comment-author{display:none}.fixed .column-categories,.fixed .column-rel,.fixed .column-response,.fixed .column-role,.fixed .column-tags{width:15%}.fixed .column-slug{width:25%}.fixed .column-locations{width:35%}.fixed .column-comments{width:5.5em;padding:8px 0;text-align:left}.fixed .column-comments .vers{padding-left:3px}td.column-title strong,td.plugin-title strong{display:block;margin-bottom:.2em;font-size:14px}td.column-title p,td.plugin-title p{margin:6px 0}table.media .column-title .media-icon{float:left;min-height:60px;margin:0 9px 0 0}table.media .column-title .media-icon img{max-width:60px;height:auto;vertical-align:top}table.media .column-title .has-media-icon~.row-actions{margin-left:70px}table.media .column-title .filename{margin-bottom:.2em}.wp-list-table a{-webkit-transition:none;transition:none}#the-list tr:last-child td,#the-list tr:last-child th{border-bottom:none!important;-webkit-box-shadow:none;box-shadow:none}#comments-form .fixed .column-author{width:20%}#comments-form .fixed .column-date{width:14%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv .comments-box{border:0}#commentsdiv .comments-box thead td,#commentsdiv .comments-box thead th{background:0 0;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv #edithead .inside input{width:160px}.sorting-indicator{display:block;visibility:hidden;width:10px;height:4px;margin-top:8px;margin-left:7px}.sorting-indicator:before{content:"\f142";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0;top:-4px;left:-8px;line-height:10px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.column-comments .sorting-indicator:before{top:0;left:-10px}th.desc a:focus span.sorting-indicator:before,th.desc:hover span.sorting-indicator:before,th.sorted.asc .sorting-indicator:before{content:"\f142"}th.asc a:focus span.sorting-indicator:before,th.asc:hover span.sorting-indicator:before,th.sorted.desc .sorting-indicator:before{content:"\f140"}.wp-list-table .toggle-row{position:absolute;right:8px;top:10px;display:none;padding:0;width:40px;height:40px;border:none;outline:0;background:0 0}.wp-list-table .toggle-row:hover{cursor:pointer}.wp-list-table .toggle-row:focus:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .wp-list-table .toggle-row:focus:before{outline:#5b9dd9 solid 1px}.wp-list-table .toggle-row:active{-webkit-box-shadow:none;box-shadow:none}.wp-list-table .toggle-row:before{position:absolute;top:-5px;left:10px;-webkit-border-radius:50%;border-radius:50%;display:block;padding:1px 2px 1px 0;color:#444;content:"\f140";font:400 20px/1 dashicons;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none}.wp-list-table .is-expanded .toggle-row:before{content:"\f142"}tr.wp-locked .locked-indicator{margin-left:6px;height:20px;width:16px}tr.wp-locked .locked-indicator:before{color:#82878c;content:"\f160";display:inline-block;float:left;font:400 20px/1 dashicons;speak:none;vertical-align:middle;margin-left:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}tr.wp-locked .check-column input[type=checkbox],tr.wp-locked .check-column label,tr.wp-locked .row-actions .inline,tr.wp-locked .row-actions .trash{display:none}tr .locked-info{height:0;opacity:0}tr.wp-locked .locked-info{margin-top:8px;height:auto;opacity:1}.locked-text{vertical-align:top}tr.locked-info,tr.wp-locked .locked-info{-webkit-transition:height 1s,opacity .5s;transition:height 1s,opacity .5s}.fixed .column-comments .sorting-indicator{margin-top:3px}#menu-locations-wrap .widefat{width:60%}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:8px}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:left;cursor:pointer}th.asc a:focus span.sorting-indicator,th.asc:hover span.sorting-indicator,th.desc a:focus span.sorting-indicator,th.desc:hover span.sorting-indicator,th.sorted .sorting-indicator{visibility:visible}.tablenav-pages a,.tablenav-pages-navspan{font-weight:600;padding:0 2px}.tablenav-pages .current-page{margin:0 2px 0 0;padding-bottom:5px;font-size:13px;text-align:center}.tablenav .total-pages{margin-right:2px}.tablenav #table-paging{margin-left:2px}.tablenav a.button-secondary{display:block;margin:3px 8px 0 0}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:right;height:28px;margin-top:3px;cursor:default;color:#555}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a,.tablenav-pages-navspan{display:inline-block;min-width:17px;border:1px solid #ccc;padding:3px 5px 7px;background:#e5e5e5;font-size:16px;line-height:1;font-weight:400;text-align:center}.tablenav-pages-navspan{height:16px;border-color:#ddd;background:#f7f7f7;color:#a0a5aa}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover{border-color:#5b9dd9;color:#fff;background:#00a0d2;-webkit-box-shadow:none;box-shadow:none;outline:0}.tablenav .displaying-num{margin-right:7px}.tablenav .one-page .displaying-num{display:inline-block;margin-top:5px;margin-right:0}.tablenav .actions{overflow:hidden;padding:2px 8px 0 0}.wp-filter .actions{display:inline-block;vertical-align:middle}.tablenav .delete{margin-right:20px}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#0073aa}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#00a0d2}.tablenav .view-switch{float:right;margin:0 5px;padding-top:3px}.wp-filter .view-switch{display:inline-block;vertical-align:middle;padding:12px 0;margin:0 8px 0 2px}.media-toolbar.wp-filter .view-switch{margin:0 12px 0 2px}.view-switch a{float:left;width:28px;height:28px;text-align:center;line-height:24px;text-decoration:none}.view-switch a:before{color:#b4b9be;display:inline-block;font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.view-switch a:focus:before,.view-switch a:hover:before{color:#727272}.view-switch a.current:before{color:#0073aa}.view-switch .view-list:before{content:"\f163"}.view-switch .view-excerpt:before{content:"\f164"}.view-switch .view-grid:before{content:"\f509"}.filter{float:left;margin:-5px 0 0 10px}.filter .subsubsub{margin-left:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter .wp-filter{margin-bottom:0}#posts-filter fieldset{float:left;margin:0 1.5ex 1em 0;padding:0}#posts-filter fieldset legend{padding:0 0 .2em 1px}.row-actions,.row-actions-visible{padding:2px 0 0}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:600;margin:0 6px}.row-title{font-size:14px!important;font-weight:600}.column-comment .comment-author{margin-bottom:.6em}.column-author img,.column-comment .comment-author img,.column-username img{float:left;margin-right:10px;margin-top:1px}.row-actions{color:#ddd;font-size:13px;position:relative;left:-9999em}.plugins,.plugins td,.plugins th,.row-actions .network_active,.row-actions .network_only{color:#000}.rtl .row-actions a{display:inline-block}.comment-item:hover .row-actions,.mobile .row-actions,.no-js .row-actions,.row-actions.visible,tr:hover .row-actions{position:static}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:left;margin:0;padding:0;width:100%}#wpbody-content .inline-edit-row fieldset .inline-edit-col,tr.inline-edit-row td{padding:0 .5em}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .quick-edit-row-page .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:right;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both;line-height:2.5}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}#the-list .inline-edit-row .inline-edit-legend{margin:0;padding:.2em .5em 0;line-height:2.5;font-weight:600}#the-list #bulk-edit.inline-edit-row .inline-edit-legend{padding:.2em .5em}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{margin:0;padding:0;font-style:italic}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0;line-height:2.5}.inline-edit-row fieldset.inline-edit-date label{display:inline-block;margin:0;line-height:1.5;vertical-align:baseline}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0;width:auto}.inline-edit-row fieldset label span.title,.inline-edit-row fieldset.inline-edit-date legend{display:block;float:left;width:6em;line-height:2.5}#posts-filter fieldset.inline-edit-date legend{padding:0}.inline-edit-row fieldset.inline-edit-date select{margin:1px;line-height:28px}.inline-edit-row fieldset .timestamp-wrap,.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-left:6em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-right:.5em}.inline-edit-row .inline-edit-or{margin:.2em 6px .2em 0;line-height:2.5}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:middle}.inline-edit-row fieldset label textarea{width:100%;height:4em;vertical-align:top}#bulk-titles,ul.cat-checklist{height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-right:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-row .inline-edit-legend{text-transform:uppercase}.inline-edit-row fieldset .inline-edit-date{float:left}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.3em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}ul.cat-checklist{margin:0;background-color:#fff}#bulk-titles{display:block;margin:0 0 5px;line-height:140%}.inline-edit-row fieldset ul.cat-checklist input,.inline-edit-row fieldset ul.cat-checklist li{margin:0;position:relative}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-style:normal;font-size:11px}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{max-width:80%}.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name=page_template]{width:250px}.quick-edit-row-post fieldset label.inline-edit-status{float:left}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:left;height:18px;margin:0 3px 0 -2px;overflow:hidden;position:relative;width:20px}#bulk-titles div a:before{position:relative;top:-3px}.plugins tbody,.plugins tbody th.check-column{padding:8px 0 0 2px}.plugins tbody th.check-column input[type=checkbox]{margin-top:4px}.updates-table .plugin-title p{margin-top:0}.plugins .inactive th.check-column,.plugins tfoot td.check-column,.plugins thead td.check-column{padding-left:6px}.plugins tr{background:#fff}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ol,.plugins .desc ul{margin:0 0 0 2em}.plugins .desc ul{list-style-type:disc}.plugins .row-actions{font-size:13px}.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th{padding:10px 9px}.plugins .active td,.plugins .active th{background-color:#f7fcfe}.plugins .update td,.plugins .update th{border-bottom:0}.plugin-install #the-list td,.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th,.upgrade .plugins td,.upgrade .plugins th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th,.plugins tr.active.plugin-update-tr+tr.inactive td,.plugins tr.active.plugin-update-tr+tr.inactive th{border-top:1px solid rgba(0,0,0,.03);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1;box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1}.plugins .update td,.plugins .update th,.plugins .updated td,.plugins .updated th,.plugins tr.active+tr.inactive.update td,.plugins tr.active+tr.inactive.update th,.plugins tr.active+tr.inactive.updated td,.plugins tr.active+tr.inactive.updated th,.upgrade .plugins tr:last-of-type td,.upgrade .plugins tr:last-of-type th{-webkit-box-shadow:none;box-shadow:none}.plugin-update-tr.active td,.plugins .active th.check-column{border-left:4px solid #00a0d2}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-right:12px;white-space:nowrap}.updates-table-screenshot{float:left;padding:0 10px 5px 0}.plugins .inactive .plugin-title strong{font-weight:400}.plugins .row-actions,.plugins .second{padding:0 0 5px}.plugins .update .row-actions,.plugins .update .second,.plugins .updated .row-actions,.plugins .updated .second{padding-bottom:0}.plugins-php .widefat tfoot td,.plugins-php .widefat tfoot th{border-top-style:solid;border-top-width:1px}.plugins .plugin-update-tr .plugin-update{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);overflow:hidden;padding:0}.plugins .plugin-update-tr .notice,.plugins .plugin-update-tr div[class=update-message]{margin:5px 20px 15px 40px}.plugins .notice p{margin:.5em 0}.plugin-card .update-now:before{color:#f56e28;content:"\f463";display:inline-block;font:400 20px/1 dashicons;margin:3px 5px 0 -2px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.plugin-card .updating-message:before{content:"\f463";-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.plugin-card .updated-message:before{color:#79ba49;content:"\f147"}.plugin-install-php h2{clear:both}.plugin-install-php h3{margin:2.5em 0 8px}.plugin-install-php .wp-filter{margin-bottom:0}.plugin-group{overflow:hidden;margin-top:1.5em}.plugin-group h3{margin-top:0}.plugin-card{float:left;margin:0 8px 16px;width:48.5%;width:-webkit-calc(50% - 8px);width:calc(50% - 8px);background-color:#fff;border:1px solid #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.plugin-card:nth-child(odd){clear:both;margin-left:0}.plugin-card:nth-child(even){margin-right:0}@media screen and (min-width:1600px){.plugin-card{width:30%;width:-webkit-calc(33.1% - 8px);width:calc(33.1% - 8px)}.plugin-card:nth-child(odd){clear:none;margin-left:8px}.plugin-card:nth-child(even){margin-right:8px}.plugin-card:nth-child(3n+1){clear:both;margin-left:0}.plugin-card:nth-child(3n){margin-right:0}}.plugin-card-top{position:relative;padding:20px 20px 10px;min-height:135px}.plugin-action-buttons,div.action-links{margin:0}.plugin-card h3{margin:0 0 12px;font-size:18px;line-height:1.3}.plugin-card .desc,.plugin-card .name{margin-left:148px;margin-right:120px}.plugin-card .action-links{position:absolute;top:20px;right:20px;width:120px}.plugin-action-buttons{clear:right;float:right;margin-left:2em;margin-bottom:1em;text-align:right}.plugin-action-buttons li{margin-bottom:10px}.plugin-card-bottom{clear:both;padding:12px 20px;background-color:#fafafa;border-top:1px solid #ddd;overflow:hidden}.plugin-card-bottom .star-rating{display:inline}.plugin-card-update-failed .update-now{font-weight:600}.plugin-card-update-failed .notice-error{margin:0;padding-left:16px;-webkit-box-shadow:0 -1px 0 #ddd;box-shadow:0 -1px 0 #ddd}.plugin-card-update-failed .plugin-card-bottom{display:none}.plugin-card .column-rating{line-height:23px}.plugin-card .column-rating,.plugin-card .column-updated{margin-bottom:4px}.plugin-card .column-downloaded,.plugin-card .column-rating{float:left;clear:left;max-width:180px}.plugin-card .column-compatibility,.plugin-card .column-updated{text-align:right;float:right;clear:right;width:65%;width:-webkit-calc(100% - 180px);width:calc(100% - 180px)}.plugin-card .column-compatibility span:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-2px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.plugin-card .compatibility-incompatible:before{content:"\f158"}.plugin-card .compatibility-compatible:before{content:"\f147"}.plugin-icon{position:absolute;top:20px;left:20px;width:128px;height:128px;margin:0 20px 20px 0}.no-plugin-results{color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.wp-list-table .site-deleted,.wp-list-table tr.site-deleted{background:#ff8573}.wp-list-table .site-spammed,.wp-list-table tr.site-spammed{background:#faafaa}.wp-list-table .site-archived,.wp-list-table tr.site-archived{background:#ffebe8}.wp-list-table .site-mature,.wp-list-table tr.site-mature{background:#fecac2}.sites.fixed .column-lastupdated,.sites.fixed .column-registered{width:20%}.sites.fixed .column-users{width:80px}@media screen and (max-width:1100px) and (min-width:782px),(max-width:480px){.plugin-card .action-links{position:static;margin-left:148px;width:auto}.plugin-action-buttons{float:none;margin:1em 0 0;text-align:left}.plugin-action-buttons li{display:inline-block;vertical-align:middle}.plugin-action-buttons li .button{margin-right:20px}.plugin-card .desc,.plugin-card .name{margin-right:0}.plugin-card .desc p:first-of-type{margin-top:0}.fixed .column-date{width:14%}}@media screen and (max-width:782px){.plugins #the-list tr td,.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column{border-top:none}.tablenav{height:auto}.tablenav.top{margin:20px 0 5px}.tablenav.bottom{position:relative;margin-top:15px}.tablenav br{display:none}.tablenav br.clear{display:block}.form-wrap>p,.tablenav .view-switch,.tablenav.top .actions,.tablenav.top .displaying-num,.tablenav.top .tablenav-pages.one-page{display:none}.view-switch a{width:36px;height:36px;line-height:33px}.tablenav.bottom .displaying-num{position:absolute;right:0;top:11px;margin:0;font-size:14px}.tablenav .tablenav-pages{width:100%;height:auto;text-align:center;margin:0 0 25px}.tablenav.bottom .tablenav-pages{margin-top:25px}.tablenav.bottom .tablenav-pages.one-page{margin:15px 0 0;height:0}.tablenav-pages .pagination-links{font-size:16px}.tablenav-pages .pagination-links a,.tablenav-pages-navspan{padding:9px 11px 12px;font-size:18px}.tablenav-pages-navspan{height:18px}.tablenav-pages .pagination-links .current-page{padding:8px 9px 9px;font-size:16px}.comment-count{font-size:14px}.wp-list-table th.column-primary~th,.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){display:none}.wp-list-table thead th.column-primary{width:100%}.wp-list-table tr th.check-column{display:table-cell;width:35px}.wp-list-table .column-primary .toggle-row{display:block}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column){position:relative;clear:both;display:block;width:auto!important}.wp-list-table td.column-primary{padding-right:50px}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){padding:3px 8px 3px 35%}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{position:absolute;left:10px;display:block;overflow:hidden;width:32%;content:attr(data-colname);white-space:nowrap;text-overflow:ellipsis}.wp-list-table .is-expanded td:not(.hidden){display:block!important;overflow:hidden}.column-posts,.widefat .num{text-align:left}#comments-form .fixed .column-author,#commentsdiv .fixed .column-author{display:none!important}.fixed .column-comment .comment-author{display:block}#the-comment-list .is-expanded td{-webkit-box-shadow:none;box-shadow:none}#the-comment-list .is-expanded td:last-child{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.post-com-count .screen-reader-text{position:static;width:auto;height:auto;margin:0}.column-comments .post-com-count-approved:after,.column-comments .post-com-count-no-comments:after,.column-response .post-com-count-approved:after,.column-response .post-com-count-no-comments:after{content:none}.column-comments .post-com-count [aria-hidden=true],.column-response .post-com-count [aria-hidden=true]{display:none}#edithead label,.column-comments .post-com-count-wrapper>a,.column-response .post-com-count-wrapper>a{display:block}.column-comments .post-com-count-wrapper,.column-response .post-com-count-wrapper{white-space:normal}.column-comments .post-com-count-approved,.column-comments .post-com-count-no-comments,.column-response .post-com-count-approved,.column-response .post-com-count-no-comments{margin-top:0;margin-right:.5em}.column-comments .post-com-count-pending,.column-response .post-com-count-pending{position:static;height:auto;min-width:0;padding:0;border:none;-webkit-border-radius:0;border-radius:0;background:0 0;color:#bb2a2a;font-size:inherit;line-height:inherit;text-align:left}.column-comments .post-com-count-pending:hover,.column-response .post-com-count-pending:hover{color:#dc3232}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:10px}.widefat *{word-wrap:normal}#wpbody-content .bulk-edit-row .inline-edit-col-bottom,#wpbody-content .bulk-edit-row .inline-edit-col-left,#wpbody-content .bulk-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .inline-edit-row-post .inline-edit-col-center,#wpbody-content .quick-edit-row-page .inline-edit-col-left,#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .quick-edit-row-post .inline-edit-col-left,#wpbody-content .quick-edit-row-post .inline-edit-col-right{float:none;width:100%}#wpbody-content .bulk-edit-row fieldset .inline-edit-col label,#wpbody-content .bulk-edit-row fieldset .inline-edit-group label,#wpbody-content .quick-edit-row fieldset .inline-edit-col label,#wpbody-content .quick-edit-row fieldset .inline-edit-group label{max-width:none;float:none;margin-bottom:5px}#wpbody .bulk-edit-row fieldset select{display:block;width:100%;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-size:16px}.inline-edit-row fieldset label span.title,.inline-edit-row fieldset.inline-edit-date legend{float:none}.inline-edit-row fieldset label.inline-edit-tags{padding:0 .5em}.inline-edit-row fieldset .inline-edit-col label.inline-edit-tags{padding:0}.inline-edit-row fieldset .timestamp-wrap,.inline-edit-row fieldset label span.input-text-wrap{margin-left:0}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{width:3em}.inline-edit-row fieldset input[name=aa]{width:4.5em}.inline-edit-row .inline-edit-or{margin:0 6px 0 0}#commentsdiv #edithead .inside,#edithead .inside{float:none;text-align:left;padding:3px 5px}#commentsdiv #edithead .inside input,#edithead .inside input{width:100%}#bulk-titles div{margin:.8em .3em}.plugin-card,.plugin-update-tr .update-message,.plugins .plugin-update-tr .update-message{margin-left:0}#bulk-titles div a{height:22px}#wpbody-content .updates-table .plugin-title{width:auto;white-space:normal}.link-manager-php #posts-filter{margin-top:25px}.link-manager-php .tablenav.bottom{overflow:hidden}.comments-box .toggle-row,.wp-list-table.plugins .toggle-row{display:none}#wpbody-content .wp-list-table.plugins td{display:block;width:auto;padding:10px 9px}#wpbody-content .wp-list-table.plugins .column-description{padding-top:2px}#wpbody-content .wp-list-table.plugins .plugin-title,#wpbody-content .wp-list-table.plugins .theme-title{padding-right:12px;white-space:normal}.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-top:13px;padding-bottom:4px}.plugins #the-list .update td,.plugins #the-list .update th,.plugins #the-list tr>td:not(:last-child),.wp-list-table.plugins #the-list .theme-title{-webkit-box-shadow:none;box-shadow:none;border-top:none}.plugins tbody{padding:1px 0 0}.plugins .plugin-update-tr:before,.plugins tr.active+tr.inactive td.column-description,.plugins tr.active+tr.inactive th.check-column{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins .plugin-update-tr:before{content:"";display:table-cell}.plugins #the-list .plugin-update-tr .plugin-update{border-left:none}.plugins .active.update+.plugin-update-tr:before{background-color:#f7fcfe;border-left:4px solid #00a0d2}.wp-list-table.plugins .plugin-title strong,.wp-list-table.plugins .theme-title strong{font-size:1.4em;line-height:1.5}table.plugin-install .column-description,table.plugin-install .column-name,table.plugin-install .column-rating,table.plugin-install .column-version{display:block;width:auto}table.plugin-install th.column-description,table.plugin-install th.column-name,table.plugin-install th.column-rating,table.plugin-install th.column-version{display:none}table.plugin-install td.column-name strong{font-size:1.4em;line-height:1.6em}table.plugin-install #the-list td{-webkit-box-shadow:none;box-shadow:none}table.plugin-install #the-list tr{display:block;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugin-card{margin-right:0;width:100%}}@media screen and (max-width:480px){.tablenav-pages .current-page{margin:0}.tablenav-pages .tablenav-paging-text{float:left;width:100%;padding-top:.5em}}
\ No newline at end of file
+.response-links{display:block;margin-bottom:1em}.response-links a{display:block}.response-links a.comments-edit-item-link{font-weight:600}.response-links a.comments-view-item-link{font-size:12px}.post-com-count-wrapper strong{font-weight:400}.comments-view-item-link{display:inline-block;clear:both}.column-comments .post-com-count-wrapper,.column-response .post-com-count-wrapper{white-space:nowrap;word-wrap:normal}.column-comments .post-com-count,.column-response .post-com-count{display:inline-block;vertical-align:top}.column-comments .post-com-count-approved,.column-comments .post-com-count-no-comments,.column-response .post-com-count-approved,.column-response .post-com-count-no-comments{margin-top:5px}.column-comments .comment-count-approved,.column-comments .comment-count-no-comments,.column-response .comment-count-approved,.column-response .comment-count-no-comments{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;padding:0 8px;min-width:24px;height:2em;-webkit-border-radius:5px;border-radius:5px;background-color:#72777c;color:#fff;font-size:11px;line-height:21px;text-align:center}.ie8 .column-comments .comment-count-approved,.ie8 .column-comments .comment-count-no-comments,.ie8 .column-response .comment-count-approved,.ie8 .column-response .comment-count-no-comments{min-width:0}.column-comments .post-com-count-approved:after,.column-comments .post-com-count-no-comments:after,.column-response .post-com-count-approved:after,.column-response .post-com-count-no-comments:after{content:"";display:block;margin-left:8px;width:0;height:0;border-top:5px solid #72777c;border-right:5px solid transparent}.column-comments .post-com-count-approved:focus .comment-count-approved,.column-comments .post-com-count-approved:hover .comment-count-approved,.column-response .post-com-count-approved:focus .comment-count-approved,.column-response .post-com-count-approved:hover .comment-count-approved{background:#0073aa}.column-comments .post-com-count-approved:focus:after,.column-comments .post-com-count-approved:hover:after,.column-response .post-com-count-approved:focus:after,.column-response .post-com-count-approved:hover:after{border-top-color:#0073aa}.column-comments .post-com-count-pending,.column-response .post-com-count-pending{position:relative;left:-3px;padding:0 5px;min-width:7px;height:17px;border:2px solid #fff;-webkit-border-radius:11px;border-radius:11px;background:#ca4a1f;color:#fff;font-size:9px;line-height:17px;text-align:center}.column-comments .post-com-count-no-pending,.column-response .post-com-count-no-pending{display:none}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom:1px solid #ccc}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#submitted-on,.submitted-on{color:#555d66}#replyrow td{padding:2px}#replysubmit{margin:0;padding:5px 7px 10px;overflow:hidden;text-align:center}#replysubmit .button{margin-right:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow.inline-edit-row fieldset.comment-reply{font-size:inherit;line-height:inherit}#replyrow legend{margin:0;padding:.2em 5px 0;font-size:13px;line-height:1.4;font-weight:600}#replyrow.inline-edit-row label{display:inline;vertical-align:baseline;line-height:inherit}#commentsdiv #edithead .inside,#edithead .inside{float:left;padding:3px 0 2px 5px;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}#replyerror{border-color:#ddd;background-color:#f9f9f9}.commentlist .avatar{vertical-align:text-top}#the-comment-list div.undo,#the-comment-list tr.undo{background-color:#f5f5f5}#the-comment-list .unapproved td,#the-comment-list .unapproved th{background-color:#fef7f1}#the-comment-list .unapproved th.check-column{border-left:4px solid #d54e21}#the-comment-list .unapproved th.check-column input{margin-left:4px}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}#the-comment-list td,#the-comment-list th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}#the-comment-list tr:last-child td,#the-comment-list tr:last-child th{-webkit-box-shadow:none;box-shadow:none}#the-comment-list tr.unapproved+tr.approved td,#the-comment-list tr.unapproved+tr.approved th{border-top:1px solid rgba(0,0,0,.03)}.vim-current,.vim-current td,.vim-current th{background-color:#e4f2fd!important}th .comment-grey-bubble{height:16px;width:16px}th .comment-grey-bubble:before{content:"\f101";font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-4px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-author,.fixed .column-date,.fixed .column-format,.fixed .column-links,.fixed .column-parent,.fixed .column-posts{width:10%}.fixed .column-posts{width:74px}.fixed .column-comment .comment-author{display:none}.fixed .column-categories,.fixed .column-rel,.fixed .column-response,.fixed .column-role,.fixed .column-tags{width:15%}.fixed .column-slug{width:25%}.fixed .column-locations{width:35%}.fixed .column-comments{width:5.5em;padding:8px 0;text-align:left}.fixed .column-comments .vers{padding-left:3px}td.column-title strong,td.plugin-title strong{display:block;margin-bottom:.2em;font-size:14px}td.column-title p,td.plugin-title p{margin:6px 0}table.media .column-title .media-icon{float:left;min-height:60px;margin:0 9px 0 0}table.media .column-title .media-icon img{max-width:60px;height:auto;vertical-align:top}table.media .column-title .has-media-icon~.row-actions{margin-left:70px}table.media .column-title .filename{margin-bottom:.2em}.wp-list-table a{-webkit-transition:none;transition:none}#the-list tr:last-child td,#the-list tr:last-child th{border-bottom:none!important;-webkit-box-shadow:none;box-shadow:none}#comments-form .fixed .column-author{width:20%}#comments-form .fixed .column-date{width:14%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv .comments-box{border:0}#commentsdiv .comments-box thead td,#commentsdiv .comments-box thead th{background:0 0;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv #edithead .inside input{width:160px}.sorting-indicator{display:block;visibility:hidden;width:10px;height:4px;margin-top:8px;margin-left:7px}.sorting-indicator:before{content:"\f142";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0;top:-4px;left:-8px;line-height:10px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.column-comments .sorting-indicator:before{top:0;left:-10px}th.desc a:focus span.sorting-indicator:before,th.desc:hover span.sorting-indicator:before,th.sorted.asc .sorting-indicator:before{content:"\f142"}th.asc a:focus span.sorting-indicator:before,th.asc:hover span.sorting-indicator:before,th.sorted.desc .sorting-indicator:before{content:"\f140"}.wp-list-table .toggle-row{position:absolute;right:8px;top:10px;display:none;padding:0;width:40px;height:40px;border:none;outline:0;background:0 0}.wp-list-table .toggle-row:hover{cursor:pointer}.wp-list-table .toggle-row:focus:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .wp-list-table .toggle-row:focus:before{outline:#5b9dd9 solid 1px}.wp-list-table .toggle-row:active{-webkit-box-shadow:none;box-shadow:none}.wp-list-table .toggle-row:before{position:absolute;top:-5px;left:10px;-webkit-border-radius:50%;border-radius:50%;display:block;padding:1px 2px 1px 0;color:#444;content:"\f140";font:400 20px/1 dashicons;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none}.wp-list-table .is-expanded .toggle-row:before{content:"\f142"}tr.wp-locked .locked-indicator{margin-left:6px;height:20px;width:16px}tr.wp-locked .locked-indicator-icon:before{color:#82878c;content:"\f160";display:inline-block;font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}tr.wp-locked .check-column input[type=checkbox],tr.wp-locked .check-column label,tr.wp-locked .row-actions .inline,tr.wp-locked .row-actions .trash{display:none}tr .locked-info{height:0;opacity:0}tr.wp-locked .locked-info{margin-top:4px;height:auto;opacity:1}.locked-text{vertical-align:top}tr.locked-info,tr.wp-locked .locked-info{-webkit-transition:height 1s,opacity .5s;transition:height 1s,opacity .5s}.fixed .column-comments .sorting-indicator{margin-top:3px}#menu-locations-wrap .widefat{width:60%}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:8px}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:left;cursor:pointer}th.asc a:focus span.sorting-indicator,th.asc:hover span.sorting-indicator,th.desc a:focus span.sorting-indicator,th.desc:hover span.sorting-indicator,th.sorted .sorting-indicator{visibility:visible}.tablenav-pages a,.tablenav-pages-navspan{font-weight:600;padding:0 2px}.tablenav-pages .current-page{margin:0 2px 0 0;padding-bottom:5px;font-size:13px;text-align:center}.tablenav .total-pages{margin-right:2px}.tablenav #table-paging{margin-left:2px}.tablenav a.button,.tablenav a.button-secondary{display:block;margin:3px 8px 0 0}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:right;height:28px;margin-top:3px;cursor:default;color:#555}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a,.tablenav-pages-navspan{display:inline-block;min-width:17px;border:1px solid #ccc;padding:3px 5px 7px;background:#e5e5e5;font-size:16px;line-height:1;font-weight:400;text-align:center}.tablenav-pages-navspan{height:16px;border-color:#ddd;background:#f7f7f7;color:#a0a5aa}.tablenav .tablenav-pages a:focus,.tablenav .tablenav-pages a:hover{border-color:#5b9dd9;color:#fff;background:#00a0d2;-webkit-box-shadow:none;box-shadow:none;outline:0}.tablenav .displaying-num{margin-right:7px}.tablenav .one-page .displaying-num{display:inline-block;margin-top:5px;margin-right:0}.tablenav .actions{overflow:hidden;padding:2px 8px 0 0}.wp-filter .actions{display:inline-block;vertical-align:middle}.tablenav .delete{margin-right:20px}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#0073aa}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#00a0d2}.tablenav .view-switch{float:right;margin:0 5px;padding-top:3px}.wp-filter .view-switch{display:inline-block;vertical-align:middle;padding:12px 0;margin:0 8px 0 2px}.media-toolbar.wp-filter .view-switch{margin:0 12px 0 2px}.view-switch a{float:left;width:28px;height:28px;text-align:center;line-height:24px;text-decoration:none}.view-switch a:before{color:#b4b9be;display:inline-block;font:400 20px/1 dashicons;speak:none;vertical-align:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.view-switch a:focus:before,.view-switch a:hover:before{color:#727272}.view-switch a.current:before{color:#0073aa}.view-switch .view-list:before{content:"\f163"}.view-switch .view-excerpt:before{content:"\f164"}.view-switch .view-grid:before{content:"\f509"}.filter{float:left;margin:-5px 0 0 10px}.filter .subsubsub{margin-left:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter .wp-filter{margin-bottom:0}#posts-filter fieldset{float:left;margin:0 1.5ex 1em 0;padding:0}#posts-filter fieldset legend{padding:0 0 .2em 1px}.row-actions,.row-actions-visible{padding:2px 0 0}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:600;margin:0 6px}.row-title{font-size:14px!important;font-weight:600}.column-comment .comment-author{margin-bottom:.6em}.column-author img,.column-comment .comment-author img,.column-username img{float:left;margin-right:10px;margin-top:1px}.row-actions{color:#ddd;font-size:13px;position:relative;left:-9999em}.plugins,.plugins td,.plugins th,.row-actions .network_active,.row-actions .network_only{color:#000}.rtl .row-actions a{display:inline-block}.comment-item:hover .row-actions,.mobile .row-actions,.no-js .row-actions,.row-actions.visible,tr:hover .row-actions{position:static}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:left;margin:0;padding:0;width:100%}#wpbody-content .inline-edit-row fieldset .inline-edit-col,tr.inline-edit-row td{padding:0 .5em}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .quick-edit-row-page .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:right;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both;line-height:2.5}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}#the-list .inline-edit-row .inline-edit-legend{margin:0;padding:.2em .5em 0;line-height:2.5;font-weight:600}#the-list #bulk-edit.inline-edit-row .inline-edit-legend{padding:.2em .5em}.inline-edit-row fieldset span.checkbox-title,.inline-edit-row fieldset span.title{margin:0;padding:0;font-style:italic}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0;line-height:2.5}.inline-edit-row fieldset.inline-edit-date label{display:inline-block;margin:0;line-height:1.5;vertical-align:baseline}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0;width:auto}.inline-edit-row fieldset label span.title,.inline-edit-row fieldset.inline-edit-date legend{display:block;float:left;width:6em;line-height:2.5}#posts-filter fieldset.inline-edit-date legend{padding:0}.inline-edit-row fieldset.inline-edit-date select{margin:1px;line-height:28px}.inline-edit-row fieldset .timestamp-wrap,.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-left:6em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-right:.5em}.inline-edit-row .inline-edit-or{margin:.2em 6px .2em 0;line-height:2.5}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:middle}.inline-edit-row fieldset label textarea{width:100%;height:4em;vertical-align:top}#bulk-titles,ul.cat-checklist{height:12em;border:1px solid #ddd;overflow-y:scroll;padding:0 5px}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-right:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-row .inline-edit-legend{text-transform:uppercase}.inline-edit-row fieldset .inline-edit-date{float:left}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.3em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}ul.cat-checklist{margin:0;background-color:#fff}#bulk-titles{display:block;margin:0 0 5px;line-height:140%}.inline-edit-row fieldset ul.cat-checklist input,.inline-edit-row fieldset ul.cat-checklist li{margin:0;position:relative}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-style:normal;font-size:11px}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.inline-edit-row #post_parent,.inline-edit-row select[name=page_template]{max-width:80%}.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name=page_template]{width:250px}.quick-edit-row-post fieldset label.inline-edit-status{float:left}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:left;height:18px;margin:0 3px 0 -2px;overflow:hidden;position:relative;width:20px}#bulk-titles div a:before{position:relative;top:-3px}.plugins tbody,.plugins tbody th.check-column{padding:8px 0 0 2px}.plugins tbody th.check-column input[type=checkbox]{margin-top:4px}.updates-table .plugin-title p{margin-top:0}.plugins .inactive th.check-column,.plugins tfoot td.check-column,.plugins thead td.check-column{padding-left:6px}.plugins tr{background:#fff}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ol,.plugins .desc ul{margin:0 0 0 2em}.plugins .desc ul{list-style-type:disc}.plugins .row-actions{font-size:13px}.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th{padding:10px 9px}.plugins .active td,.plugins .active th{background-color:#f7fcfe}.plugins .update td,.plugins .update th{border-bottom:0}.plugin-install #the-list td,.plugins .active td,.plugins .active th,.plugins .inactive td,.plugins .inactive th,.upgrade .plugins td,.upgrade .plugins th{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th,.plugins tr.active.plugin-update-tr+tr.inactive td,.plugins tr.active.plugin-update-tr+tr.inactive th{border-top:1px solid rgba(0,0,0,.03);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1;box-shadow:inset 0 1px 0 rgba(0,0,0,.02),inset 0 -1px 0 #e1e1e1}.plugins .update td,.plugins .update th,.plugins .updated td,.plugins .updated th,.plugins tr.active+tr.inactive.update td,.plugins tr.active+tr.inactive.update th,.plugins tr.active+tr.inactive.updated td,.plugins tr.active+tr.inactive.updated th,.upgrade .plugins tr:last-of-type td,.upgrade .plugins tr:last-of-type th{-webkit-box-shadow:none;box-shadow:none}.plugin-update-tr.active td,.plugins .active th.check-column{border-left:4px solid #00a0d2}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-right:12px;white-space:nowrap}.updates-table-screenshot{float:left;padding:0 10px 5px 0}.plugins .inactive .plugin-title strong{font-weight:400}.plugins .row-actions,.plugins .second{padding:0 0 5px}.plugins .update .row-actions,.plugins .update .second,.plugins .updated .row-actions,.plugins .updated .second{padding-bottom:0}.plugins-php .widefat tfoot td,.plugins-php .widefat tfoot th{border-top-style:solid;border-top-width:1px}.plugins .plugin-update-tr .plugin-update{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);overflow:hidden;padding:0}.plugins .plugin-update-tr .notice,.plugins .plugin-update-tr div[class=update-message]{margin:5px 20px 15px 40px}.plugins .notice p{margin:.5em 0}.plugin-card .update-now:before{color:#f56e28;content:"\f463";display:inline-block;font:400 20px/1 dashicons;margin:3px 5px 0 -2px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.plugin-card .updating-message:before{content:"\f463";-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.plugin-card .updated-message:before{color:#79ba49;content:"\f147"}.plugin-install-php h2{clear:both}.plugin-install-php h3{margin:2.5em 0 8px}.plugin-install-php .wp-filter{margin-bottom:0}.plugin-group{overflow:hidden;margin-top:1.5em}.plugin-group h3{margin-top:0}.plugin-card{float:left;margin:0 8px 16px;width:48.5%;width:-webkit-calc(50% - 8px);width:calc(50% - 8px);background-color:#fff;border:1px solid #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.plugin-card:nth-child(odd){clear:both;margin-left:0}.plugin-card:nth-child(even){margin-right:0}@media screen and (min-width:1600px){.plugin-card{width:30%;width:-webkit-calc(33.1% - 8px);width:calc(33.1% - 8px)}.plugin-card:nth-child(odd){clear:none;margin-left:8px}.plugin-card:nth-child(even){margin-right:8px}.plugin-card:nth-child(3n+1){clear:both;margin-left:0}.plugin-card:nth-child(3n){margin-right:0}}.plugin-card-top{position:relative;padding:20px 20px 10px;min-height:135px}.plugin-action-buttons,div.action-links{margin:0}.plugin-card h3{margin:0 0 12px;font-size:18px;line-height:1.3}.plugin-card .desc,.plugin-card .name{margin-left:148px;margin-right:120px}.plugin-card .action-links{position:absolute;top:20px;right:20px;width:120px}.plugin-action-buttons{clear:right;float:right;margin-left:2em;margin-bottom:1em;text-align:right}.plugin-action-buttons li{margin-bottom:10px}.plugin-card-bottom{clear:both;padding:12px 20px;background-color:#fafafa;border-top:1px solid #ddd;overflow:hidden}.plugin-card-bottom .star-rating{display:inline}.plugin-card-update-failed .update-now{font-weight:600}.plugin-card-update-failed .notice-error{margin:0;padding-left:16px;-webkit-box-shadow:0 -1px 0 #ddd;box-shadow:0 -1px 0 #ddd}.plugin-card-update-failed .plugin-card-bottom{display:none}.plugin-card .column-rating{line-height:23px}.plugin-card .column-rating,.plugin-card .column-updated{margin-bottom:4px}.plugin-card .column-downloaded,.plugin-card .column-rating{float:left;clear:left;max-width:180px}.plugin-card .column-compatibility,.plugin-card .column-updated{text-align:right;float:right;clear:right;width:65%;width:-webkit-calc(100% - 180px);width:calc(100% - 180px)}.plugin-card .column-compatibility span:before{font:400 20px/.5 dashicons;speak:none;display:inline-block;padding:0;top:4px;left:-2px;position:relative;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#444}.plugin-card .compatibility-incompatible:before{content:"\f158"}.plugin-card .compatibility-compatible:before{content:"\f147"}.plugin-icon{position:absolute;top:20px;left:20px;width:128px;height:128px;margin:0 20px 20px 0}.no-plugin-results{color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.wp-list-table .site-deleted,.wp-list-table tr.site-deleted{background:#ff8573}.wp-list-table .site-spammed,.wp-list-table tr.site-spammed{background:#faafaa}.wp-list-table .site-archived,.wp-list-table tr.site-archived{background:#ffebe8}.wp-list-table .site-mature,.wp-list-table tr.site-mature{background:#fecac2}.sites.fixed .column-lastupdated,.sites.fixed .column-registered{width:20%}.sites.fixed .column-users{width:80px}@media screen and (max-width:1100px) and (min-width:782px),(max-width:480px){.plugin-card .action-links{position:static;margin-left:148px;width:auto}.plugin-action-buttons{float:none;margin:1em 0 0;text-align:left}.plugin-action-buttons li{display:inline-block;vertical-align:middle}.plugin-action-buttons li .button{margin-right:20px}.plugin-card .desc,.plugin-card .name{margin-right:0}.plugin-card .desc p:first-of-type{margin-top:0}.fixed .column-date{width:14%}}@media screen and (max-width:782px){.plugins #the-list tr td,.plugins tr.active+tr.inactive td,.plugins tr.active+tr.inactive th.check-column{border-top:none}.tablenav{height:auto}.tablenav.top{margin:20px 0 5px}.tablenav.bottom{position:relative;margin-top:15px}.tablenav br{display:none}.tablenav br.clear{display:block}.form-wrap>p,.tablenav .view-switch,.tablenav.top .actions,.tablenav.top .displaying-num,.tablenav.top .tablenav-pages.one-page{display:none}.view-switch a{width:36px;height:36px;line-height:33px}.tablenav.bottom .displaying-num{position:absolute;right:0;top:11px;margin:0;font-size:14px}.tablenav .tablenav-pages{width:100%;height:auto;text-align:center;margin:0 0 25px}.tablenav.bottom .tablenav-pages{margin-top:25px}.tablenav.bottom .tablenav-pages.one-page{margin:15px 0 0;height:0}.tablenav-pages .pagination-links{font-size:16px}.tablenav-pages .pagination-links a,.tablenav-pages-navspan{padding:9px 11px 12px;font-size:18px}.tablenav-pages-navspan{height:18px}.tablenav-pages .pagination-links .current-page{padding:8px 9px 9px;font-size:16px}.comment-count{font-size:14px}.wp-list-table th.column-primary~th,.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){display:none}.wp-list-table thead th.column-primary{width:100%}.wp-list-table tr th.check-column{display:table-cell;width:35px}.wp-list-table .column-primary .toggle-row{display:block}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column){position:relative;clear:both;display:block;width:auto!important}.wp-list-table td.column-primary{padding-right:50px}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td.column-primary~td:not(.check-column){padding:3px 8px 3px 35%}.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{position:absolute;left:10px;display:block;overflow:hidden;width:32%;content:attr(data-colname);white-space:nowrap;text-overflow:ellipsis}.wp-list-table .is-expanded td:not(.hidden){display:block!important;overflow:hidden}.column-posts,.widefat .num{text-align:left}#comments-form .fixed .column-author,#commentsdiv .fixed .column-author{display:none!important}.fixed .column-comment .comment-author{display:block}#the-comment-list .is-expanded td{-webkit-box-shadow:none;box-shadow:none}#the-comment-list .is-expanded td:last-child{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.post-com-count .screen-reader-text{position:static;width:auto;height:auto;margin:0}.column-comments .post-com-count-approved:after,.column-comments .post-com-count-no-comments:after,.column-response .post-com-count-approved:after,.column-response .post-com-count-no-comments:after{content:none}.column-comments .post-com-count [aria-hidden=true],.column-response .post-com-count [aria-hidden=true]{display:none}#edithead label,.column-comments .post-com-count-wrapper>a,.column-response .post-com-count-wrapper>a{display:block}.column-comments .post-com-count-wrapper,.column-response .post-com-count-wrapper{white-space:normal}.column-comments .post-com-count-approved,.column-comments .post-com-count-no-comments,.column-response .post-com-count-approved,.column-response .post-com-count-no-comments{margin-top:0;margin-right:.5em}.column-comments .post-com-count-pending,.column-response .post-com-count-pending{position:static;height:auto;min-width:0;padding:0;border:none;-webkit-border-radius:0;border-radius:0;background:0 0;color:#bb2a2a;font-size:inherit;line-height:inherit;text-align:left}.column-comments .post-com-count-pending:hover,.column-response .post-com-count-pending:hover{color:#dc3232}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:10px}.widefat *{word-wrap:normal}#wpbody-content .bulk-edit-row .inline-edit-col-bottom,#wpbody-content .bulk-edit-row .inline-edit-col-left,#wpbody-content .bulk-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right,#wpbody-content .inline-edit-row-post .inline-edit-col-center,#wpbody-content .quick-edit-row-page .inline-edit-col-left,#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .quick-edit-row-post .inline-edit-col-left,#wpbody-content .quick-edit-row-post .inline-edit-col-right{float:none;width:100%}#wpbody-content .bulk-edit-row fieldset .inline-edit-col label,#wpbody-content .bulk-edit-row fieldset .inline-edit-group label,#wpbody-content .quick-edit-row fieldset .inline-edit-col label,#wpbody-content .quick-edit-row fieldset .inline-edit-group label{max-width:none;float:none;margin-bottom:5px}#wpbody .bulk-edit-row fieldset select{display:block;width:100%;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.inline-edit-row #bulk-titles div,.inline-edit-row fieldset ul.cat-checklist label{font-size:16px}.inline-edit-row fieldset label span.title,.inline-edit-row fieldset.inline-edit-date legend{float:none}.inline-edit-row fieldset label.inline-edit-tags{padding:0 .5em}.inline-edit-row fieldset .inline-edit-col label.inline-edit-tags{padding:0}.inline-edit-row fieldset .timestamp-wrap,.inline-edit-row fieldset label span.input-text-wrap{margin-left:0}.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=mn]{width:3em}.inline-edit-row fieldset input[name=aa]{width:4.5em}.inline-edit-row .inline-edit-or{margin:0 6px 0 0}#commentsdiv #edithead .inside,#edithead .inside{float:none;text-align:left;padding:3px 5px}#commentsdiv #edithead .inside input,#edithead .inside input{width:100%}#bulk-titles div{margin:.8em .3em}.plugin-card,.plugin-update-tr .update-message,.plugins .plugin-update-tr .update-message{margin-left:0}#bulk-titles div a{height:22px}#wpbody-content .updates-table .plugin-title{width:auto;white-space:normal}.link-manager-php #posts-filter{margin-top:25px}.link-manager-php .tablenav.bottom{overflow:hidden}.comments-box .toggle-row,.wp-list-table.plugins .toggle-row{display:none}#wpbody-content .wp-list-table.plugins td{display:block;width:auto;padding:10px 9px}#wpbody-content .wp-list-table.plugins .column-description{padding-top:2px}#wpbody-content .wp-list-table.plugins .plugin-title,#wpbody-content .wp-list-table.plugins .theme-title{padding-right:12px;white-space:normal}.wp-list-table.plugins .plugin-title,.wp-list-table.plugins .theme-title{padding-top:13px;padding-bottom:4px}.plugins #the-list .update td,.plugins #the-list .update th,.plugins #the-list tr>td:not(:last-child),.wp-list-table.plugins #the-list .theme-title{-webkit-box-shadow:none;box-shadow:none;border-top:none}.plugins tbody{padding:1px 0 0}.plugins .plugin-update-tr:before,.plugins tr.active+tr.inactive td.column-description,.plugins tr.active+tr.inactive th.check-column{-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugins .plugin-update-tr:before{content:"";display:table-cell}.plugins #the-list .plugin-update-tr .plugin-update{border-left:none}.plugins .active.update+.plugin-update-tr:before{background-color:#f7fcfe;border-left:4px solid #00a0d2}.wp-list-table.plugins .plugin-title strong,.wp-list-table.plugins .theme-title strong{font-size:1.4em;line-height:1.5}table.plugin-install .column-description,table.plugin-install .column-name,table.plugin-install .column-rating,table.plugin-install .column-version{display:block;width:auto}table.plugin-install th.column-description,table.plugin-install th.column-name,table.plugin-install th.column-rating,table.plugin-install th.column-version{display:none}table.plugin-install td.column-name strong{font-size:1.4em;line-height:1.6em}table.plugin-install #the-list td{-webkit-box-shadow:none;box-shadow:none}table.plugin-install #the-list tr{display:block;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.plugin-card{margin-right:0;width:100%}}@media screen and (max-width:480px){.tablenav-pages .current-page{margin:0}.tablenav-pages .tablenav-paging-text{float:left;width:100%;padding-top:.5em}}
\ No newline at end of file
diff --git a/wp-admin/css/login-rtl.css b/wp-admin/css/login-rtl.css
index c870e28c0..a895b1c52 100644
--- a/wp-admin/css/login-rtl.css
+++ b/wp-admin/css/login-rtl.css
@@ -216,19 +216,6 @@ p {
 	width: 100%;
 }
 
-.mobile #login {
-	padding: 20px 0;
-}
-
-.mobile #login form {
-	margin-right: 0;
-}
-
-.mobile #login #nav,
-.mobile #login #backtoblog {
-	margin-right: 8px;
-}
-
 body.interim-login {
 	height: auto;
 }
@@ -255,6 +242,12 @@ body.interim-login {
 	width: device-width;
 }
 
+@media screen and ( max-height: 550px ) {
+	#login {
+		padding: 20px 0;
+	}
+}
+
 @media screen and ( max-width: 782px ) {
 	.interim-login input[type=checkbox] {
 		height: 16px;
diff --git a/wp-admin/css/login-rtl.min.css b/wp-admin/css/login-rtl.min.css
index 7e116e62c..64b36fa9d 100644
--- a/wp-admin/css/login-rtl.min.css
+++ b/wp-admin/css/login-rtl.min.css
@@ -1 +1 @@
-#pass-strength-result,input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.meta-box-sortables select,p.submit{max-width:100%}#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pressthis-code-wrap,textarea{overflow:auto}input,textarea{box-sizing:border-box}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:"\f147";margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;-webkit-box-shadow:0 0 2px rgba(204,0,0,.8);box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-right:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 -29px 0 6px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:right;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:"\f173";display:inline-block;font:400 20px/1 dashicons;speak:none;right:-1px;padding:0 0 0 5px;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 1px 5px 5px;padding:3px 5px;text-align:center;width:25em;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:left center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right}.ui-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.login form,.login h1 a{overflow:hidden;font-weight:400}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(-20deg) rotate(-6deg);-ms-transform:skew(-20deg) rotate(-6deg);transform:skew(-20deg) rotate(-6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(-20deg) rotate(-9deg);-ms-transform:skew(-20deg) rotate(-9deg);transform:skew(-20deg) rotate(-9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-right:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 7px 6px 8px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:0 3px}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:left}.request-filesystem-credentials-dialog label[for=ftp]{margin-left:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-left:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:left;margin:-30px 0 0 3px}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-right:0}.form-table.permalink-structure td code{margin-right:32px}.form-table.permalink-structure td input[type=text]{margin-right:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-left:40px}.wp-pwd button.button{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;left:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:60px;margin:0}}.locale-he-il em,.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-de-de #customize-header-actions .button,.locale-de-de-formal #customize-header-actions .button,.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}@media only screen and (max-height:480px){.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;right:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-left:.5em}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}.rtl h1,.rtl h2,.rtl h3,.rtl h4,.rtl h5,.rtl h6{font-family:Arial,sans-serif;font-weight:600}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-weight:600}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de #customize-header-actions .spinner,.locale-de-de-formal #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru #adminmenu{width:inherit}.locale-ru-ru #adminmenu,.locale-ru-ru #wpbody{margin-right:0}.locale-ru-ru .inline-edit-row fieldset label span.title,.locale-ru-ru .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-left:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title,.locale-lt-lt .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}@media screen and (max-width:782px){.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap,.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:0}}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;min-width:0;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}a{color:#0073aa;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}p{line-height:1.5}.login #login_error,.login .message{border-right:4px solid #00a0d2;padding:12px;margin-right:0;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-right-color:#dc3232}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login form{margin-top:20px;margin-right:0;padding:26px 24px 46px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:right;margin-bottom:0}.login .button-primary{float:left}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#72777c;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:0 auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;display:block}#login{width:320px;padding:8% 0 0;margin:auto}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#555d66}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#00a0d2}.login #backtoblog a:focus,.login #nav a:focus,.login h1 a:focus{color:#124964}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 0 16px 6px}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login-action-rp input[type=text]{-webkit-box-shadow:none;box-shadow:none;margin:0}.login #pass-strength-result{font-weight:600;margin:-1px 0 16px 5px;padding:6px 5px;text-align:center;width:100%}.mobile #login{padding:20px 0}.mobile #login form{margin-right:0}.mobile #login #backtoblog,.mobile #login #nav{margin-right:8px}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px -4px 0 0}}
\ No newline at end of file
+#pass-strength-result,input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.meta-box-sortables select,p.submit{max-width:100%}#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pressthis-code-wrap,textarea{overflow:auto}.login h1 a,form p.submit a.cancel:hover{text-decoration:none}input,textarea{box-sizing:border-box}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-left:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;-webkit-box-shadow:0 0 2px rgba(204,0,0,.8);box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-right:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 -29px 0 6px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border:none}p.submit{text-align:right;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 1px 5px 5px;padding:3px 5px;text-align:center;width:25em;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:left center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.login form,.login h1 a{overflow:hidden;font-weight:400}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(-20deg) rotate(-6deg);-ms-transform:skew(-20deg) rotate(-6deg);transform:skew(-20deg) rotate(-6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(-20deg) rotate(-9deg);-ms-transform:skew(-20deg) rotate(-9deg);transform:skew(-20deg) rotate(-9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-right:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 7px 6px 8px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:0 3px}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:left}.request-filesystem-credentials-dialog label[for=ftp]{margin-left:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-left:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:left;margin:-30px 0 0 3px}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-right:0}.form-table.permalink-structure td code{margin-right:32px}.form-table.permalink-structure td input[type=text]{margin-right:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-left:40px}.wp-pwd button.button{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;left:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:60px;margin:0}}.locale-he-il em,.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-de-de #customize-header-actions .button,.locale-de-de-formal #customize-header-actions .button,.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}@media only screen and (max-height:480px){.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;right:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-left:.5em}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}.rtl h1,.rtl h2,.rtl h3,.rtl h4,.rtl h5,.rtl h6{font-family:Arial,sans-serif;font-weight:600}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-weight:600}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de #customize-header-actions .spinner,.locale-de-de-formal #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru #adminmenu{width:inherit}.locale-ru-ru #adminmenu,.locale-ru-ru #wpbody{margin-right:0}.locale-ru-ru .inline-edit-row fieldset label span.title,.locale-ru-ru .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-left:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title,.locale-lt-lt .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}@media screen and (max-width:782px){.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap,.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:0}}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;min-width:0;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}a{color:#0073aa;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}p{line-height:1.5}.login #login_error,.login .message{border-right:4px solid #00a0d2;padding:12px;margin-right:0;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-right-color:#dc3232}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login form{margin-top:20px;margin-right:0;padding:26px 24px 46px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:right;margin-bottom:0}.login .button-primary{float:left}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#72777c;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:0 auto 25px;padding:0;width:84px;text-indent:-9999px;outline:0;display:block}#login{width:320px;padding:8% 0 0;margin:auto}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#555d66}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#00a0d2}.login #backtoblog a:focus,.login #nav a:focus,.login h1 a:focus{color:#124964}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 0 16px 6px}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login-action-rp input[type=text]{-webkit-box-shadow:none;box-shadow:none;margin:0}.login #pass-strength-result{font-weight:600;margin:-1px 0 16px 5px;padding:6px 5px;text-align:center;width:100%}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-height:550px){#login{padding:20px 0}}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px -4px 0 0}}
\ No newline at end of file
diff --git a/wp-admin/css/login.css b/wp-admin/css/login.css
index 9f69e9c91..0a652d60d 100644
--- a/wp-admin/css/login.css
+++ b/wp-admin/css/login.css
@@ -216,19 +216,6 @@ p {
 	width: 100%;
 }
 
-.mobile #login {
-	padding: 20px 0;
-}
-
-.mobile #login form {
-	margin-left: 0;
-}
-
-.mobile #login #nav,
-.mobile #login #backtoblog {
-	margin-left: 8px;
-}
-
 body.interim-login {
 	height: auto;
 }
@@ -255,6 +242,12 @@ body.interim-login {
 	width: device-width;
 }
 
+@media screen and ( max-height: 550px ) {
+	#login {
+		padding: 20px 0;
+	}
+}
+
 @media screen and ( max-width: 782px ) {
 	.interim-login input[type=checkbox] {
 		height: 16px;
diff --git a/wp-admin/css/login.min.css b/wp-admin/css/login.min.css
index 31dd86279..e2e932d7e 100644
--- a/wp-admin/css/login.min.css
+++ b/wp-admin/css/login.min.css
@@ -1 +1 @@
-#pass-strength-result,input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.meta-box-sortables select,p.submit{max-width:100%}#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pressthis-code-wrap,textarea{overflow:auto}input,textarea{box-sizing:border-box}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;-webkit-box-shadow:0 0 2px rgba(204,0,0,.8);box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-left:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 6px 0 -29px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}input.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#misc-publishing-actions label[for=post_status]:before{content:"\f173";display:inline-block;font:400 20px/1 dashicons;speak:none;left:-1px;padding:0 5px 0 0;position:relative;top:0;text-decoration:none!important;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 1px;padding:3px 5px;text-align:center;width:25em;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:right center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left}.ui-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.login form,.login h1 a{overflow:hidden;font-weight:400}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-left:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 8px 6px 7px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:0 3px}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:right}.request-filesystem-credentials-dialog label[for=ftp]{margin-right:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-right:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:right;margin:-30px 3px 0 0}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-left:0}.form-table.permalink-structure td code{margin-left:32px}.form-table.permalink-structure td input[type=text]{margin-left:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-right:40px}.wp-pwd button.button{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;right:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:60px;margin:0}}.locale-he-il em,.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-de-de #customize-header-actions .button,.locale-de-de-formal #customize-header-actions .button,.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}@media only screen and (max-height:480px){.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;left:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-right:.5em}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}.rtl h1,.rtl h2,.rtl h3,.rtl h4,.rtl h5,.rtl h6{font-family:Arial,sans-serif;font-weight:600}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-weight:600}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de #customize-header-actions .spinner,.locale-de-de-formal #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru #adminmenu{width:inherit}.locale-ru-ru #adminmenu,.locale-ru-ru #wpbody{margin-left:0}.locale-ru-ru .inline-edit-row fieldset label span.title,.locale-ru-ru .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title,.locale-lt-lt .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}@media screen and (max-width:782px){.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap,.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:0}}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;min-width:0;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}a{color:#0073aa;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}p{line-height:1.5}.login #login_error,.login .message{border-left:4px solid #00a0d2;padding:12px;margin-left:0;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-left-color:#dc3232}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login form{margin-top:20px;margin-left:0;padding:26px 24px 46px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:left;margin-bottom:0}.login .button-primary{float:right}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#72777c;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:0 auto 25px;padding:0;text-decoration:none;width:84px;text-indent:-9999px;outline:0;display:block}#login{width:320px;padding:8% 0 0;margin:auto}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#555d66}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#00a0d2}.login #backtoblog a:focus,.login #nav a:focus,.login h1 a:focus{color:#124964}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 6px 16px 0}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login-action-rp input[type=text]{-webkit-box-shadow:none;box-shadow:none;margin:0}.login #pass-strength-result{font-weight:600;margin:-1px 5px 16px 0;padding:6px 5px;text-align:center;width:100%}.mobile #login{padding:20px 0}.mobile #login form{margin-left:0}.mobile #login #backtoblog,.mobile #login #nav{margin-left:8px}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}}
\ No newline at end of file
+#pass-strength-result,input,textarea{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.meta-box-sortables select,p.submit{max-width:100%}#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pressthis-code-wrap,textarea{overflow:auto}.login h1 a,form p.submit a.cancel:hover{text-decoration:none}input,textarea{box-sizing:border-box}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1);-webkit-transition:.05s border-color ease-in-out;transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{-webkit-border-radius:50%;border-radius:50%;margin-right:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;-webkit-border-radius:50px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;-webkit-border-radius:0;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;-webkit-box-shadow:0 0 2px rgba(204,0,0,.8);box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-left:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 6px 0 -29px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.04);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;-webkit-box-shadow:none;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border:none}p.submit{text-align:left;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 1px;padding:3px 5px;text-align:center;width:25em;box-sizing:border-box;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:right center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table th.th-full{width:auto;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.login form,.login h1 a{overflow:hidden;font-weight:400}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);-ms-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.6);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-ms-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,.7);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-left:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 8px 6px 7px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:0 3px}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:right}.request-filesystem-credentials-dialog label[for=ftp]{margin-right:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-right:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:right;margin:-30px 3px 0 0}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:55px;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-left:0}.form-table.permalink-structure td code{margin-left:32px}.form-table.permalink-structure td input[type=text]{margin-left:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-right:40px}.wp-pwd button.button{background:0 0;border:none;-webkit-box-shadow:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;right:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:60px;margin:0}}.locale-he-il em,.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-de-de #customize-header-actions .button,.locale-de-de-formal #customize-header-actions .button,.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}@media only screen and (max-height:480px){.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;left:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-right:.5em}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}.rtl h1,.rtl h2,.rtl h3,.rtl h4,.rtl h5,.rtl h6{font-family:Arial,sans-serif;font-weight:600}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-weight:600}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de #customize-header-actions .spinner,.locale-de-de-formal #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru #adminmenu{width:inherit}.locale-ru-ru #adminmenu,.locale-ru-ru #wpbody{margin-left:0}.locale-ru-ru .inline-edit-row fieldset label span.title,.locale-ru-ru .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title,.locale-lt-lt .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}@media screen and (max-width:782px){.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap,.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:0}}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;min-width:0;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}a{color:#0073aa;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}p{line-height:1.5}.login #login_error,.login .message{border-left:4px solid #00a0d2;padding:12px;margin-left:0;background-color:#fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-left-color:#dc3232}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login form{margin-top:20px;margin-left:0;padding:26px 24px 46px;background:#fff;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.13);box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:left;margin-bottom:0}.login .button-primary{float:right}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#72777c;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);-webkit-background-size:84px;background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:0 auto 25px;padding:0;width:84px;text-indent:-9999px;outline:0;display:block}#login{width:320px;padding:8% 0 0;margin:auto}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#555d66}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#00a0d2}.login #backtoblog a:focus,.login #nav a:focus,.login h1 a:focus{color:#124964}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 6px 16px 0}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login-action-rp input[type=text]{-webkit-box-shadow:none;box-shadow:none;margin:0}.login #pass-strength-result{font-weight:600;margin:-1px 5px 16px 0;padding:6px 5px;text-align:center;width:100%}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-height:550px){#login{padding:20px 0}}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}}
\ No newline at end of file
diff --git a/wp-admin/css/media-rtl.css b/wp-admin/css/media-rtl.css
index 4406d96ef..24e15e151 100644
--- a/wp-admin/css/media-rtl.css
+++ b/wp-admin/css/media-rtl.css
@@ -769,13 +769,17 @@ border color while dragging a file over the uploader drop area */
 
 .edit-attachment-frame .attachment-media-view .details-image {
 	display: block;
-	margin-bottom: 16px;
+	margin: 0 auto 16px;
 	max-width: 100%;
 	max-height: 90%;
 	max-height: -webkit-calc( 100% - 42px );
 	max-height: calc( 100% - 42px ); /* leave space for actions underneath */
 }
 
+.edit-attachment-frame .attachment-media-view .attachment-actions {
+	text-align: center;
+}
+
 .edit-attachment-frame .wp-media-wrapper {
 	margin-bottom: 12px;
 }
@@ -1144,7 +1148,7 @@ span.imgedit-scale-warn {
 .imgedit-settings .imgedit-crop-sel input[type="text"] {
 	width: 50px;
 	font-size: 14px;
-	padding: 3px 5px;
+	padding: 5px 8px;
 }
 
 .imgedit-separator {
diff --git a/wp-admin/css/media-rtl.min.css b/wp-admin/css/media-rtl.min.css
index 8af1af5c3..662346bc3 100644
--- a/wp-admin/css/media-rtl.min.css
+++ b/wp-admin/css/media-rtl.min.css
@@ -1 +1 @@
-.imgedit-wait,.ui-find-overlay{opacity:.7;filter:alpha(opacity=70)}.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #ddd;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:right;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 0 8px 8px;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 10px 0 0}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-left:6px;margin-right:2px}.media-upload-form .align .field label{display:inline;padding:0 23px 0 0;margin:0 3px 0 1em;font-weight:600}.media-upload-form tr.image-size label{margin:0 5px 0 0;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 5px 0 0}.describe-toggle-off,.describe-toggle-on,.media-item .edit-attachment{display:block;line-height:36px;float:left;margin-left:10px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.js .html-uploader #plupload-upload-ui,.media-item .startclosed,.media-item .startopen{display:none}.media-upload-form .media-item{min-height:36px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{-webkit-box-shadow:0 1px 0 #ddd;box-shadow:0 1px 0 #ddd}#media-items:empty{border:0}.media-item .filename{line-height:36px;overflow:hidden;margin-right:6px}.media-item .pinkynail{float:right;margin:2px 3px 0 10px;max-width:40px;max-height:32px}.media-item .original{position:relative;height:34px}.media-item .progress{float:left;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;-webkit-border-radius:22px;border-radius:22px;background:#ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;-webkit-border-radius:22px;border-radius:22px;background-color:#0073aa;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,.3);box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 14px 10px 0}.media-item .error-div a.dismiss{display:block;float:left;margin:0 15px 0 10px}.find-box{background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-right:-300px;position:fixed;top:30px;bottom:30px;right:50%;z-index:100105}.find-box-head{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px;position:absolute;top:0;right:0;left:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;right:105px;position:absolute}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:right}#find-posts-input{width:140px;height:28px;margin:0 0 0 4px}.widefat .found-radio{padding-left:0;width:16px}#find-posts-close{width:36px;height:36px;border:none;padding:0;position:absolute;top:0;left:0;cursor:pointer;text-align:center;background:0 0;color:#666}#find-posts-close:focus,#find-posts-close:hover{color:#00a0d2}#find-posts-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#find-posts-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f158"}.find-box-buttons{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;right:0;left:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;right:0;left:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;z-index:100100}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #ddd;line-height:1.8em;word-spacing:3px}.drag-drop #drag-drop-area{border:4px dashed #b4b9be;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#a0a5aa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title,.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-bottom:16px;padding:0 16px;border-right:4px solid #dd3d36;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);background-color:#fff}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:12px 0;padding:4px 0 0;border:none;-webkit-box-shadow:none;box-shadow:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors{top:-10px;left:-14px;padding:10px}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:before{content:"\f153";display:block;font:400 16px/1 dashicons;color:#b4b9be}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:focus:before,.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:hover:before{color:#c00}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h2,.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h3{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;left:auto;right:auto;bottom:auto;padding-top:0;margin-top:0;border:4px dashed #b4b9be}.media-frame.mode-select .attachments-browser.fixed .attachments{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;outline:0}.media-frame.mode-grid .selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc}.media-frame.mode-grid .attachment.details{-webkit-box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 0 0 10px;font-size:14px}.media-frame.mode-grid.mode-edit .media-toolbar-secondary>.select-mode-toggle-button{margin:0 0 0 8px;vertical-align:middle}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 0 0 10px}.media-frame.mode-grid .search{margin-top:0}.media-frame.mode-grid .spinner{margin-top:16px}.attachments-browser .media-toolbar-secondary>.media-button{margin-left:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;right:auto;left:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:"\f335";font-size:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#72777c;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-right:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;left:0}.edit-attachment-frame .edit-media-header .left{left:102px}.edit-attachment-frame .edit-media-header .right{left:51px}.edit-attachment-frame .media-frame-title{right:0;left:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before,.rtl .edit-attachment-frame .edit-media-header .right:before{content:"\f345"}.edit-attachment-frame .edit-media-header .right:before,.rtl .edit-attachment-frame .edit-media-header .left:before{content:"\f341"}.edit-attachment-frame .edit-media-header .left.disabled,.edit-attachment-frame .edit-media-header .left.disabled:hover,.edit-attachment-frame .edit-media-header .right.disabled,.edit-attachment-frame .edit-media-header .right.disabled:hover{color:#ccc;background:inherit;cursor:default;pointer-events:none}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{right:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;left:0;right:0;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:right;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin-bottom:16px;max-width:100%;max-height:90%;max-height:-webkit-calc(100% - 42px);max-height:calc(100% - 42px)}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:6px 8px;line-height:16px}.edit-attachment-frame .attachment-info{overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-right:1px solid #ddd;background:#f3f3f3}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #ddd}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#666}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.imgedit-settings fieldset,.imgedit-settings p{margin:8px 0}.imgedit-settings legend{margin-bottom:5px}.describe .imgedit-wrap .imgedit-settings{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{padding:3px 0 0 16px;float:right}.wp_attachment_holder .imgedit-wrap .imgedit-settings{float:left;width:250px}.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;margin:-10px -10px 0 0;background:url(../images/spinner.gif) center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}.no-float{float:none}.A1B1 .button,.A1B1 .spinner,.wp_attachment_image .button,.wp_attachment_image .spinner{float:right}.imgedit-settings .disabled,.media-disabled{color:#a0a5aa}.A1B1{overflow:hidden}.no-js .wp_attachment_image .button{display:none}.imgedit-menu{min-width:300px;margin:0 0 12px}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{float:right;width:32px;height:32px;margin:0 0 0 8px;padding:0;background:#f1f1f1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:16px;color:#72777c}.imgedit-menu .button:before{font:400 20px/1 dashicons;speak:none;vertical-align:middle}.imgedit-menu .button.disabled{border-color:#ccc;background-color:#ddd;color:#72777c;filter:alpha(opacity=50);opacity:.5;cursor:default}.imgedit-crop:before{content:"\f165"}.imgedit-rleft:before{content:"\f166"}.imgedit-rright:before{content:"\f167"}.imgedit-flipv:before{content:"\f168"}.imgedit-fliph:before{content:"\f169"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 0 0 8px}.imgedit-rleft{margin:0 3px}.imgedit-rright{margin:0 3px 0 8px}.imgedit-flipv{margin:0 3px}.imgedit-fliph{margin:0 3px 0 8px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 3px 0 8px}.imgedit-thumbnail-preview{margin:10px 0 0 8px}.imgedit-thumbnail-preview-caption{display:block}#poststuff .imgedit-group-top h2,#poststuff .imgedit-group-top h3{display:inline-block;margin:0;padding:0;font-size:14px;line-height:1.4}.imgedit-group-top h2 a,.imgedit-group-top h3 a{text-decoration:none}.imgedit-applyto .imgedit-label{display:block;padding:.5em 0 0}.imgedit-help{display:none;font-style:italic}.image-editor .imgedit-settings .imgedit-help-toggle,.image-editor .imgedit-settings .imgedit-help-toggle:active,.image-editor .imgedit-settings .imgedit-help-toggle:hover{border:1px solid transparent;margin:-1px -1px 0 0;padding:0;background:0 0;color:#0074a2;font-size:20px;line-height:1;cursor:pointer;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-box-shadow:none;box-shadow:none}.image-editor .imgedit-settings .imgedit-help-toggle:focus{color:#0074a2;border-color:#5b9dd9;outline:0;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0 0}.imgedit-submit-btn{margin-right:20px}.imgedit-wrap .nowrap{white-space:nowrap;font-size:12px;line-height:inherit}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-save-target{margin:8px 0}.imgedit-group{margin-bottom:8px;padding:10px}.imgedit-settings .imgedit-crop-ratio input[type=text],.imgedit-settings .imgedit-crop-sel input[type=text],.imgedit-settings .imgedit-scale input[type=text]{width:50px;font-size:14px;padding:3px 5px}.imgedit-separator{display:inline-block;width:7px;text-align:center;vertical-align:middle;font-size:13px;color:#444}.imgedit-settings .imgedit-scale .button{margin-bottom:0}audio,video{display:inline-block;max-width:100%}.mejs-container{width:100%;max-width:100%}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 12px 10px 0}.imgedit-settings .imgedit-crop-ratio input[type=text],.imgedit-settings .imgedit-crop-sel input[type=text],.imgedit-settings .imgedit-scale input[type=text]{width:60px;font-size:16px;padding:6px 10px}.imgedit-applyto .imgedit-label{vertical-align:middle}}@media only screen and (max-width:1120px){#wp-media-grid .wp-filter .attachment-filters{max-width:100%}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;left:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{left:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.upload-php .media-modal-close .media-modal-icon{margin:9px 10px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{left:82px}.edit-attachment-frame .edit-media-header .right{left:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}}
\ No newline at end of file
+.imgedit-wait,.ui-find-overlay{opacity:.7;filter:alpha(opacity=70)}.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #ddd;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:right;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 0 8px 8px;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 10px 0 0}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-left:6px;margin-right:2px}.media-upload-form .align .field label{display:inline;padding:0 23px 0 0;margin:0 3px 0 1em;font-weight:600}.media-upload-form tr.image-size label{margin:0 5px 0 0;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 5px 0 0}.describe-toggle-off,.describe-toggle-on,.media-item .edit-attachment{display:block;line-height:36px;float:left;margin-left:10px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.js .html-uploader #plupload-upload-ui,.media-item .startclosed,.media-item .startopen{display:none}.media-upload-form .media-item{min-height:36px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{-webkit-box-shadow:0 1px 0 #ddd;box-shadow:0 1px 0 #ddd}#media-items:empty{border:0}.media-item .filename{line-height:36px;overflow:hidden;margin-right:6px}.media-item .pinkynail{float:right;margin:2px 3px 0 10px;max-width:40px;max-height:32px}.media-item .original{position:relative;height:34px}.media-item .progress{float:left;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;-webkit-border-radius:22px;border-radius:22px;background:#ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;-webkit-border-radius:22px;border-radius:22px;background-color:#0073aa;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,.3);box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 14px 10px 0}.media-item .error-div a.dismiss{display:block;float:left;margin:0 15px 0 10px}.find-box{background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-right:-300px;position:fixed;top:30px;bottom:30px;right:50%;z-index:100105}.find-box-head{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 16px 0 36px;position:absolute;top:0;right:0;left:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;right:105px;position:absolute}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:right}#find-posts-input{width:140px;height:28px;margin:0 0 0 4px}.widefat .found-radio{padding-left:0;width:16px}#find-posts-close{width:36px;height:36px;border:none;padding:0;position:absolute;top:0;left:0;cursor:pointer;text-align:center;background:0 0;color:#666}#find-posts-close:focus,#find-posts-close:hover{color:#00a0d2}#find-posts-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#find-posts-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f158"}.find-box-buttons{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;right:0;left:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;right:0;left:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;z-index:100100}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #ddd;line-height:1.8em;word-spacing:3px}.drag-drop #drag-drop-area{border:4px dashed #b4b9be;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#a0a5aa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title,.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-bottom:16px;padding:0 16px;border-right:4px solid #dd3d36;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);background-color:#fff}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:12px 0;padding:4px 0 0;border:none;-webkit-box-shadow:none;box-shadow:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors{top:-10px;left:-14px;padding:10px}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:before{content:"\f153";display:block;font:400 16px/1 dashicons;color:#b4b9be}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:focus:before,.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:hover:before{color:#c00}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h2,.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h3{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;left:auto;right:auto;bottom:auto;padding-top:0;margin-top:0;border:4px dashed #b4b9be}.media-frame.mode-select .attachments-browser.fixed .attachments{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;outline:0}.media-frame.mode-grid .selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc}.media-frame.mode-grid .attachment.details{-webkit-box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 0 0 10px;font-size:14px}.media-frame.mode-grid.mode-edit .media-toolbar-secondary>.select-mode-toggle-button{margin:0 0 0 8px;vertical-align:middle}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 0 0 10px}.media-frame.mode-grid .search{margin-top:0}.media-frame.mode-grid .spinner{margin-top:16px}.attachments-browser .media-toolbar-secondary>.media-button{margin-left:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;right:auto;left:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:"\f335";font-size:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#72777c;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-right:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;left:0}.edit-attachment-frame .edit-media-header .left{left:102px}.edit-attachment-frame .edit-media-header .right{left:51px}.edit-attachment-frame .media-frame-title{right:0;left:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before,.rtl .edit-attachment-frame .edit-media-header .right:before{content:"\f345"}.edit-attachment-frame .edit-media-header .right:before,.rtl .edit-attachment-frame .edit-media-header .left:before{content:"\f341"}.edit-attachment-frame .edit-media-header .left.disabled,.edit-attachment-frame .edit-media-header .left.disabled:hover,.edit-attachment-frame .edit-media-header .right.disabled,.edit-attachment-frame .edit-media-header .right.disabled:hover{color:#ccc;background:inherit;cursor:default;pointer-events:none}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{right:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;left:0;right:0;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:right;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin:0 auto 16px;max-width:100%;max-height:90%;max-height:-webkit-calc(100% - 42px);max-height:calc(100% - 42px)}.edit-attachment-frame .attachment-media-view .attachment-actions{text-align:center}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:6px 8px;line-height:16px}.edit-attachment-frame .attachment-info{overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-right:1px solid #ddd;background:#f3f3f3}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #ddd}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#666}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.imgedit-settings fieldset,.imgedit-settings p{margin:8px 0}.imgedit-settings legend{margin-bottom:5px}.describe .imgedit-wrap .imgedit-settings{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{padding:3px 0 0 16px;float:right}.wp_attachment_holder .imgedit-wrap .imgedit-settings{float:left;width:250px}.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;margin:-10px -10px 0 0;background:url(../images/spinner.gif) center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}.no-float{float:none}.A1B1 .button,.A1B1 .spinner,.wp_attachment_image .button,.wp_attachment_image .spinner{float:right}.imgedit-settings .disabled,.media-disabled{color:#a0a5aa}.A1B1{overflow:hidden}.no-js .wp_attachment_image .button{display:none}.imgedit-menu{min-width:300px;margin:0 0 12px}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{float:right;width:32px;height:32px;margin:0 0 0 8px;padding:0;background:#f1f1f1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:16px;color:#72777c}.imgedit-menu .button:before{font:400 20px/1 dashicons;speak:none;vertical-align:middle}.imgedit-menu .button.disabled{border-color:#ccc;background-color:#ddd;color:#72777c;filter:alpha(opacity=50);opacity:.5;cursor:default}.imgedit-crop:before{content:"\f165"}.imgedit-rleft:before{content:"\f166"}.imgedit-rright:before{content:"\f167"}.imgedit-flipv:before{content:"\f168"}.imgedit-fliph:before{content:"\f169"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 0 0 8px}.imgedit-rleft{margin:0 3px}.imgedit-rright{margin:0 3px 0 8px}.imgedit-flipv{margin:0 3px}.imgedit-fliph{margin:0 3px 0 8px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 3px 0 8px}.imgedit-thumbnail-preview{margin:10px 0 0 8px}.imgedit-thumbnail-preview-caption{display:block}#poststuff .imgedit-group-top h2,#poststuff .imgedit-group-top h3{display:inline-block;margin:0;padding:0;font-size:14px;line-height:1.4}.imgedit-group-top h2 a,.imgedit-group-top h3 a{text-decoration:none}.imgedit-applyto .imgedit-label{display:block;padding:.5em 0 0}.imgedit-help{display:none;font-style:italic}.image-editor .imgedit-settings .imgedit-help-toggle,.image-editor .imgedit-settings .imgedit-help-toggle:active,.image-editor .imgedit-settings .imgedit-help-toggle:hover{border:1px solid transparent;margin:-1px -1px 0 0;padding:0;background:0 0;color:#0074a2;font-size:20px;line-height:1;cursor:pointer;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-box-shadow:none;box-shadow:none}.image-editor .imgedit-settings .imgedit-help-toggle:focus{color:#0074a2;border-color:#5b9dd9;outline:0;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0 0}.imgedit-submit-btn{margin-right:20px}.imgedit-wrap .nowrap{white-space:nowrap;font-size:12px;line-height:inherit}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-save-target{margin:8px 0}.imgedit-group{margin-bottom:8px;padding:10px}.imgedit-settings .imgedit-crop-ratio input[type=text],.imgedit-settings .imgedit-crop-sel input[type=text],.imgedit-settings .imgedit-scale input[type=text]{width:50px;font-size:14px;padding:5px 8px}.imgedit-separator{display:inline-block;width:7px;text-align:center;vertical-align:middle;font-size:13px;color:#444}.imgedit-settings .imgedit-scale .button{margin-bottom:0}audio,video{display:inline-block;max-width:100%}.mejs-container{width:100%;max-width:100%}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 12px 10px 0}.imgedit-settings .imgedit-crop-ratio input[type=text],.imgedit-settings .imgedit-crop-sel input[type=text],.imgedit-settings .imgedit-scale input[type=text]{width:60px;font-size:16px;padding:6px 10px}.imgedit-applyto .imgedit-label{vertical-align:middle}}@media only screen and (max-width:1120px){#wp-media-grid .wp-filter .attachment-filters{max-width:100%}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;left:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{left:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.upload-php .media-modal-close .media-modal-icon{margin:9px 10px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{left:82px}.edit-attachment-frame .edit-media-header .right{left:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}}
\ No newline at end of file
diff --git a/wp-admin/css/media.css b/wp-admin/css/media.css
index 22cc406f2..65d396612 100644
--- a/wp-admin/css/media.css
+++ b/wp-admin/css/media.css
@@ -769,13 +769,17 @@ border color while dragging a file over the uploader drop area */
 
 .edit-attachment-frame .attachment-media-view .details-image {
 	display: block;
-	margin-bottom: 16px;
+	margin: 0 auto 16px;
 	max-width: 100%;
 	max-height: 90%;
 	max-height: -webkit-calc( 100% - 42px );
 	max-height: calc( 100% - 42px ); /* leave space for actions underneath */
 }
 
+.edit-attachment-frame .attachment-media-view .attachment-actions {
+	text-align: center;
+}
+
 .edit-attachment-frame .wp-media-wrapper {
 	margin-bottom: 12px;
 }
@@ -1144,7 +1148,7 @@ span.imgedit-scale-warn {
 .imgedit-settings .imgedit-crop-sel input[type="text"] {
 	width: 50px;
 	font-size: 14px;
-	padding: 3px 5px;
+	padding: 5px 8px;
 }
 
 .imgedit-separator {
diff --git a/wp-admin/css/media.min.css b/wp-admin/css/media.min.css
index 47395ef64..51a088f88 100644
--- a/wp-admin/css/media.min.css
+++ b/wp-admin/css/media.min.css
@@ -1 +1 @@
-.imgedit-wait,.ui-find-overlay{opacity:.7;filter:alpha(opacity=70)}.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #ddd;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:600}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.describe-toggle-off,.describe-toggle-on,.media-item .edit-attachment{display:block;line-height:36px;float:right;margin-right:10px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.js .html-uploader #plupload-upload-ui,.media-item .startclosed,.media-item .startopen{display:none}.media-upload-form .media-item{min-height:36px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{-webkit-box-shadow:0 1px 0 #ddd;box-shadow:0 1px 0 #ddd}#media-items:empty{border:0}.media-item .filename{line-height:36px;overflow:hidden;margin-left:6px}.media-item .pinkynail{float:left;margin:2px 10px 0 3px;max-width:40px;max-height:32px}.media-item .original{position:relative;height:34px}.media-item .progress{float:right;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;-webkit-border-radius:22px;border-radius:22px;background:#ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;-webkit-border-radius:22px;border-radius:22px;background-color:#0073aa;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,.3);box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 0 10px 14px}.media-item .error-div a.dismiss{display:block;float:right;margin:0 10px 0 15px}.find-box{background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-left:-300px;position:fixed;top:30px;bottom:30px;left:50%;z-index:100105}.find-box-head{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px;position:absolute;top:0;left:0;right:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;left:105px;position:absolute}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:left}#find-posts-input{width:140px;height:28px;margin:0 4px 0 0}.widefat .found-radio{padding-right:0;width:16px}#find-posts-close{width:36px;height:36px;border:none;padding:0;position:absolute;top:0;right:0;cursor:pointer;text-align:center;background:0 0;color:#666}#find-posts-close:focus,#find-posts-close:hover{color:#00a0d2}#find-posts-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#find-posts-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f158"}.find-box-buttons{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;left:0;right:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;left:0;right:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;z-index:100100}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #ddd;line-height:1.8em;word-spacing:3px}.drag-drop #drag-drop-area{border:4px dashed #b4b9be;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#a0a5aa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title,.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-bottom:16px;padding:0 16px;border-left:4px solid #dd3d36;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);background-color:#fff}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:12px 0;padding:4px 0 0;border:none;-webkit-box-shadow:none;box-shadow:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors{top:-10px;right:-14px;padding:10px}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:before{content:"\f153";display:block;font:400 16px/1 dashicons;color:#b4b9be}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:focus:before,.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:hover:before{color:#c00}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h2,.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h3{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;right:auto;left:auto;bottom:auto;padding-top:0;margin-top:0;border:4px dashed #b4b9be}.media-frame.mode-select .attachments-browser.fixed .attachments{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;outline:0}.media-frame.mode-grid .selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc}.media-frame.mode-grid .attachment.details{-webkit-box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 10px 0 0;font-size:14px}.media-frame.mode-grid.mode-edit .media-toolbar-secondary>.select-mode-toggle-button{margin:0 8px 0 0;vertical-align:middle}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 10px 0 0}.media-frame.mode-grid .search{margin-top:0}.media-frame.mode-grid .spinner{margin-top:16px}.attachments-browser .media-toolbar-secondary>.media-button{margin-right:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;left:auto;right:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:"\f335";font-size:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#72777c;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-left:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;right:0}.edit-attachment-frame .edit-media-header .left{right:102px}.edit-attachment-frame .edit-media-header .right{right:51px}.edit-attachment-frame .media-frame-title{left:0;right:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before,.rtl .edit-attachment-frame .edit-media-header .right:before{content:"\f341"}.edit-attachment-frame .edit-media-header .right:before,.rtl .edit-attachment-frame .edit-media-header .left:before{content:"\f345"}.edit-attachment-frame .edit-media-header .left.disabled,.edit-attachment-frame .edit-media-header .left.disabled:hover,.edit-attachment-frame .edit-media-header .right.disabled,.edit-attachment-frame .edit-media-header .right.disabled:hover{color:#ccc;background:inherit;cursor:default;pointer-events:none}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{left:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;right:0;left:0;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:left;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin-bottom:16px;max-width:100%;max-height:90%;max-height:-webkit-calc(100% - 42px);max-height:calc(100% - 42px)}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:6px 8px;line-height:16px}.edit-attachment-frame .attachment-info{overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-left:1px solid #ddd;background:#f3f3f3}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #ddd}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#666}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.imgedit-settings fieldset,.imgedit-settings p{margin:8px 0}.imgedit-settings legend{margin-bottom:5px}.describe .imgedit-wrap .imgedit-settings{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{padding:3px 16px 0 0;float:left}.wp_attachment_holder .imgedit-wrap .imgedit-settings{float:right;width:250px}.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;margin:-10px 0 0 -10px;background:url(../images/spinner.gif) center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}.no-float{float:none}.A1B1 .button,.A1B1 .spinner,.wp_attachment_image .button,.wp_attachment_image .spinner{float:left}.imgedit-settings .disabled,.media-disabled{color:#a0a5aa}.A1B1{overflow:hidden}.no-js .wp_attachment_image .button{display:none}.imgedit-menu{min-width:300px;margin:0 0 12px}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{float:left;width:32px;height:32px;margin:0 8px 0 0;padding:0;background:#f1f1f1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:16px;color:#72777c}.imgedit-menu .button:before{font:400 20px/1 dashicons;speak:none;vertical-align:middle}.imgedit-menu .button.disabled{border-color:#ccc;background-color:#ddd;color:#72777c;filter:alpha(opacity=50);opacity:.5;cursor:default}.imgedit-crop:before{content:"\f165"}.imgedit-rleft:before{content:"\f166"}.imgedit-rright:before{content:"\f167"}.imgedit-flipv:before{content:"\f168"}.imgedit-fliph:before{content:"\f169"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 8px 0 0}.imgedit-rleft{margin:0 3px}.imgedit-rright{margin:0 8px 0 3px}.imgedit-flipv{margin:0 3px}.imgedit-fliph{margin:0 8px 0 3px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 8px 0 3px}.imgedit-thumbnail-preview{margin:10px 8px 0 0}.imgedit-thumbnail-preview-caption{display:block}#poststuff .imgedit-group-top h2,#poststuff .imgedit-group-top h3{display:inline-block;margin:0;padding:0;font-size:14px;line-height:1.4}.imgedit-group-top h2 a,.imgedit-group-top h3 a{text-decoration:none}.imgedit-applyto .imgedit-label{display:block;padding:.5em 0 0}.imgedit-help{display:none;font-style:italic}.image-editor .imgedit-settings .imgedit-help-toggle,.image-editor .imgedit-settings .imgedit-help-toggle:active,.image-editor .imgedit-settings .imgedit-help-toggle:hover{border:1px solid transparent;margin:-1px 0 0 -1px;padding:0;background:0 0;color:#0074a2;font-size:20px;line-height:1;cursor:pointer;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-box-shadow:none;box-shadow:none}.image-editor .imgedit-settings .imgedit-help-toggle:focus{color:#0074a2;border-color:#5b9dd9;outline:0;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0 0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap;font-size:12px;line-height:inherit}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-save-target{margin:8px 0}.imgedit-group{margin-bottom:8px;padding:10px}.imgedit-settings .imgedit-crop-ratio input[type=text],.imgedit-settings .imgedit-crop-sel input[type=text],.imgedit-settings .imgedit-scale input[type=text]{width:50px;font-size:14px;padding:3px 5px}.imgedit-separator{display:inline-block;width:7px;text-align:center;vertical-align:middle;font-size:13px;color:#444}.imgedit-settings .imgedit-scale .button{margin-bottom:0}audio,video{display:inline-block;max-width:100%}.mejs-container{width:100%;max-width:100%}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 0 10px 12px}.imgedit-settings .imgedit-crop-ratio input[type=text],.imgedit-settings .imgedit-crop-sel input[type=text],.imgedit-settings .imgedit-scale input[type=text]{width:60px;font-size:16px;padding:6px 10px}.imgedit-applyto .imgedit-label{vertical-align:middle}}@media only screen and (max-width:1120px){#wp-media-grid .wp-filter .attachment-filters{max-width:100%}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;right:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{right:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.upload-php .media-modal-close .media-modal-icon{margin:9px 10px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{right:82px}.edit-attachment-frame .edit-media-header .right{right:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}}
\ No newline at end of file
+.imgedit-wait,.ui-find-overlay{opacity:.7;filter:alpha(opacity=70)}.media-item .describe{border-collapse:collapse;width:100%;border-top:1px solid #ddd;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:600}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:600}.media-upload-form th.label label{font-weight:600;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}.media-item .describe input[type=text],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.describe-toggle-off,.describe-toggle-on,.media-item .edit-attachment{display:block;line-height:36px;float:right;margin-right:10px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}.js .html-uploader #plupload-upload-ui,.media-item .startclosed,.media-item .startopen{display:none}.media-upload-form .media-item{min-height:36px;margin-bottom:1px;position:relative;width:100%;background:#fff}.media-upload-form .media-item,.media-upload-form .media-item .error{-webkit-box-shadow:0 1px 0 #ddd;box-shadow:0 1px 0 #ddd}#media-items:empty{border:0}.media-item .filename{line-height:36px;overflow:hidden;margin-left:6px}.media-item .pinkynail{float:left;margin:2px 10px 0 3px;max-width:40px;max-height:32px}.media-item .original{position:relative;height:34px}.media-item .progress{float:right;height:22px;margin:7px 6px;width:200px;line-height:2em;padding:0;overflow:hidden;-webkit-border-radius:22px;border-radius:22px;background:#ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-22px;-webkit-border-radius:22px;border-radius:22px;background-color:#0073aa;-webkit-box-shadow:inset 0 0 2px rgba(0,0,0,.3);box-shadow:inset 0 0 2px rgba(0,0,0,.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0;color:#fff;text-align:center;line-height:22px;font-weight:400;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item .error,.media-upload-form .media-item.error{width:auto;margin:0 0 1px}.media-upload-form .media-item .error{padding:10px 0 10px 14px}.media-item .error-div a.dismiss{display:block;float:right;margin:0 10px 0 15px}.find-box{background-color:#fff;-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3);box-shadow:0 3px 6px rgba(0,0,0,.3);width:600px;overflow:hidden;margin-left:-300px;position:fixed;top:30px;bottom:30px;left:50%;z-index:100105}.find-box-head{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;padding:0 36px 0 16px;position:absolute;top:0;left:0;right:0}.find-box-inside{overflow:auto;padding:16px;background-color:#fff;position:absolute;top:37px;bottom:45px;overflow-y:scroll;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.find-box-search{padding-bottom:16px}.find-box-search .spinner{float:none;left:105px;position:absolute}#find-posts-response,.find-box-search{position:relative}#find-posts-input,#find-posts-search{float:left}#find-posts-input{width:140px;height:28px;margin:0 4px 0 0}.widefat .found-radio{padding-right:0;width:16px}#find-posts-close{width:36px;height:36px;border:none;padding:0;position:absolute;top:0;right:0;cursor:pointer;text-align:center;background:0 0;color:#666}#find-posts-close:focus,#find-posts-close:hover{color:#00a0d2}#find-posts-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#find-posts-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f158"}.find-box-buttons{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;left:0;right:0}@media screen and (max-width:782px){.find-box-inside{bottom:57px}}@media screen and (max-width:660px){.find-box{top:0;bottom:0;left:0;right:0;margin:0;width:100%}}.ui-find-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;z-index:100100}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border:1px solid #ddd;line-height:1.8em;word-spacing:3px}.drag-drop #drag-drop-area{border:4px dashed #b4b9be;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#a0a5aa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.media-frame.mode-grid .media-frame-menu,.media-frame.mode-grid .media-frame-router,.media-frame.mode-grid .media-frame-title,.upload-php .mode-grid .hide-sidebar .media-sidebar{display:none}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.media-frame.mode-grid,.media-frame.mode-grid .attachments-browser .attachments,.media-frame.mode-grid .media-frame-content,.media-frame.mode-grid .uploader-inline-content{position:static}.media-frame.mode-grid .media-frame-content{background-color:transparent;border:none}.upload-php .mode-grid .media-sidebar{position:relative;width:auto;margin-bottom:16px;padding:0 16px;border-left:4px solid #dd3d36;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);background-color:#fff}.upload-php .mode-grid .media-sidebar .media-uploader-status{border-bottom:none;padding-bottom:0;max-width:100%}.upload-php .mode-grid .media-sidebar .upload-error{margin:12px 0;padding:4px 0 0;border:none;-webkit-box-shadow:none;box-shadow:none;background:0 0}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors{top:-10px;right:-14px;padding:10px}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:before{content:"\f153";display:block;font:400 16px/1 dashicons;color:#b4b9be}.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:focus:before,.upload-php .mode-grid .media-sidebar .media-uploader-status .upload-dismiss-errors:hover:before{color:#c00}.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h2,.upload-php .mode-grid .media-sidebar .media-uploader-status.errors h3{display:none}.media-frame.mode-grid .uploader-inline{position:relative;top:auto;right:auto;left:auto;bottom:auto;padding-top:0;margin-top:0;border:4px dashed #b4b9be}.media-frame.mode-select .attachments-browser.fixed .attachments{position:relative;top:94px;padding-bottom:94px}.media-frame.mode-grid .attachment.details:focus,.media-frame.mode-grid .attachment:focus,.media-frame.mode-grid .selected.attachment:focus{-webkit-box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;box-shadow:inset 0 0 2px 3px #f1f1f1,inset 0 0 0 7px #5b9dd9;outline:0}.media-frame.mode-grid .selected.attachment{-webkit-box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc;box-shadow:inset 0 0 0 5px #f1f1f1,inset 0 0 0 7px #ccc}.media-frame.mode-grid .attachment.details{-webkit-box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe;box-shadow:inset 0 0 0 3px #f1f1f1,inset 0 0 0 7px #1e8cbe}.media-frame.mode-grid.mode-select .attachment .thumbnail{opacity:.65}.media-frame.mode-select .attachment.selected .thumbnail{opacity:1}.media-frame.mode-grid .media-toolbar{margin-bottom:15px;height:auto}.media-frame.mode-grid .media-toolbar select{margin:0 10px 0 0;font-size:14px}.media-frame.mode-grid.mode-edit .media-toolbar-secondary>.select-mode-toggle-button{margin:0 8px 0 0;vertical-align:middle}.media-frame.mode-grid .attachments-browser .bulk-select{display:inline-block;margin:0 10px 0 0}.media-frame.mode-grid .search{margin-top:0}.media-frame.mode-grid .spinner{margin-top:16px}.attachments-browser .media-toolbar-secondary>.media-button{margin-right:10px}.media-frame.mode-select .attachments-browser.fixed .media-toolbar{position:fixed;top:32px;left:auto;right:20px;margin-top:0}.media-frame.mode-grid .attachments-browser{padding:0}.media-frame.mode-grid .attachments-browser .attachments{padding:2px}.media-frame.mode-grid .attachments-browser .no-media{color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0 0;text-align:center}.edit-attachment-frame{display:block;height:100%;width:100%}.edit-attachment-frame .edit-media-header{overflow:hidden}.upload-php .media-modal-close .media-modal-icon:before{content:"\f335";font-size:22px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{cursor:pointer;color:#72777c;background-color:transparent;height:50px;width:50px;padding:0;position:absolute;text-align:center;border:0;border-left:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.upload-php .media-modal-close{top:0;right:0}.edit-attachment-frame .edit-media-header .left{right:102px}.edit-attachment-frame .edit-media-header .right{right:51px}.edit-attachment-frame .media-frame-title{left:0;right:150px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.edit-attachment-frame .edit-media-header .left:focus,.edit-attachment-frame .edit-media-header .left:hover,.edit-attachment-frame .edit-media-header .right:focus,.edit-attachment-frame .edit-media-header .right:hover,.upload-php .media-modal-close:focus,.upload-php .media-modal-close:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.upload-php .media-modal-close:focus .media-modal-icon:before,.upload-php .media-modal-close:hover .media-modal-icon:before{color:#000}.edit-attachment-frame .edit-media-header .left:before,.rtl .edit-attachment-frame .edit-media-header .right:before{content:"\f341"}.edit-attachment-frame .edit-media-header .right:before,.rtl .edit-attachment-frame .edit-media-header .left:before{content:"\f345"}.edit-attachment-frame .edit-media-header .left.disabled,.edit-attachment-frame .edit-media-header .left.disabled:hover,.edit-attachment-frame .edit-media-header .right.disabled,.edit-attachment-frame .edit-media-header .right.disabled:hover{color:#ccc;background:inherit;cursor:default;pointer-events:none}.edit-attachment-frame .media-frame-content,.edit-attachment-frame .media-frame-router{left:0}.edit-attachment-frame .media-frame-content{border-bottom:none;bottom:0;top:50px}.edit-attachment-frame .attachment-details{position:absolute;overflow:auto;top:0;bottom:0;right:0;left:0;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1)}.edit-attachment-frame .attachment-media-view{float:left;width:65%;height:100%}.edit-attachment-frame .attachment-media-view .thumbnail{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:16px;height:100%}.edit-attachment-frame .attachment-media-view .details-image{display:block;margin:0 auto 16px;max-width:100%;max-height:90%;max-height:-webkit-calc(100% - 42px);max-height:calc(100% - 42px)}.edit-attachment-frame .attachment-media-view .attachment-actions{text-align:center}.edit-attachment-frame .wp-media-wrapper{margin-bottom:12px}.edit-attachment-frame input,.edit-attachment-frame textarea{padding:6px 8px;line-height:16px}.edit-attachment-frame .attachment-info{overflow:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:0;padding:12px 16px 0;width:35%;height:100%;-webkit-box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);box-shadow:inset 0 4px 4px -4px rgba(0,0,0,.1);border-bottom:0;border-left:1px solid #ddd;background:#f3f3f3}.edit-attachment-frame .attachment-info .details,.edit-attachment-frame .attachment-info .settings{position:relative;overflow:hidden;float:none;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #ddd}.edit-attachment-frame .attachment-info .filename{font-weight:400;color:#666}.edit-attachment-frame .attachment-info .thumbnail{margin-bottom:12px}.attachment-info .actions{margin-bottom:16px}.attachment-info .actions a{display:inline;text-decoration:none}.wp_attachment_details label[for=content]{font-size:13px;line-height:1.5;margin:1em 0}.wp_attachment_details #attachment_caption{height:4em}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative;padding-top:10px}.imgedit-settings fieldset,.imgedit-settings p{margin:8px 0}.imgedit-settings legend{margin-bottom:5px}.describe .imgedit-wrap .imgedit-settings{padding:0 5px}.wp_attachment_holder div.updated{margin-top:0}.wp_attachment_holder .imgedit-wrap>div{height:auto}.wp_attachment_holder .imgedit-wrap .imgedit-panel-content{padding:3px 16px 0 0;float:left}.wp_attachment_holder .imgedit-wrap .imgedit-settings{float:right;width:250px}.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;bottom:0;width:100%;background:#fff;display:none}.imgedit-wait:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;margin:-10px 0 0 -10px;background:url(../images/spinner.gif) center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}.no-float{float:none}.A1B1 .button,.A1B1 .spinner,.wp_attachment_image .button,.wp_attachment_image .spinner{float:left}.imgedit-settings .disabled,.media-disabled{color:#a0a5aa}.A1B1{overflow:hidden}.no-js .wp_attachment_image .button{display:none}.imgedit-menu{min-width:300px;margin:0 0 12px}.imgedit-menu .note-no-rotate{clear:both;margin:0;padding:1em 0 0}.image-editor .imgedit-menu .button{float:left;width:32px;height:32px;margin:0 8px 0 0;padding:0;background:#f1f1f1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:16px;color:#72777c}.imgedit-menu .button:before{font:400 20px/1 dashicons;speak:none;vertical-align:middle}.imgedit-menu .button.disabled{border-color:#ccc;background-color:#ddd;color:#72777c;filter:alpha(opacity=50);opacity:.5;cursor:default}.imgedit-crop:before{content:"\f165"}.imgedit-rleft:before{content:"\f166"}.imgedit-rright:before{content:"\f167"}.imgedit-flipv:before{content:"\f168"}.imgedit-fliph:before{content:"\f169"}.imgedit-undo:before{content:"\f171"}.imgedit-redo:before{content:"\f172"}.imgedit-crop-wrap{position:relative}.imgedit-crop{margin:0 8px 0 0}.imgedit-rleft{margin:0 3px}.imgedit-rright{margin:0 8px 0 3px}.imgedit-flipv{margin:0 3px}.imgedit-fliph{margin:0 8px 0 3px}.imgedit-undo{margin:0 3px}.imgedit-redo{margin:0 8px 0 3px}.imgedit-thumbnail-preview{margin:10px 8px 0 0}.imgedit-thumbnail-preview-caption{display:block}#poststuff .imgedit-group-top h2,#poststuff .imgedit-group-top h3{display:inline-block;margin:0;padding:0;font-size:14px;line-height:1.4}.imgedit-group-top h2 a,.imgedit-group-top h3 a{text-decoration:none}.imgedit-applyto .imgedit-label{display:block;padding:.5em 0 0}.imgedit-help{display:none;font-style:italic}.image-editor .imgedit-settings .imgedit-help-toggle,.image-editor .imgedit-settings .imgedit-help-toggle:active,.image-editor .imgedit-settings .imgedit-help-toggle:hover{border:1px solid transparent;margin:-1px 0 0 -1px;padding:0;background:0 0;color:#0074a2;font-size:20px;line-height:1;cursor:pointer;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-box-shadow:none;box-shadow:none}.image-editor .imgedit-settings .imgedit-help-toggle:focus{color:#0074a2;border-color:#5b9dd9;outline:0;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0 0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap;font-size:12px;line-height:inherit}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-save-target{margin:8px 0}.imgedit-group{margin-bottom:8px;padding:10px}.imgedit-settings .imgedit-crop-ratio input[type=text],.imgedit-settings .imgedit-crop-sel input[type=text],.imgedit-settings .imgedit-scale input[type=text]{width:50px;font-size:14px;padding:5px 8px}.imgedit-separator{display:inline-block;width:7px;text-align:center;vertical-align:middle;font-size:13px;color:#444}.imgedit-settings .imgedit-scale .button{margin-bottom:0}audio,video{display:inline-block;max-width:100%}.mejs-container{width:100%;max-width:100%}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.imgedit-wait:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.wp_attachment_details label[for=content]{font-size:14px;line-height:1.5em}.media-upload-form .media-item .error,.media-upload-form .media-item.error{font-size:13px;line-height:1.5}.media-upload-form .media-item.error{padding:1px 10px}.media-upload-form .media-item .error{padding:10px 0 10px 12px}.imgedit-settings .imgedit-crop-ratio input[type=text],.imgedit-settings .imgedit-crop-sel input[type=text],.imgedit-settings .imgedit-scale input[type=text]{width:60px;font-size:16px;padding:6px 10px}.imgedit-applyto .imgedit-label{vertical-align:middle}}@media only screen and (max-width:1120px){#wp-media-grid .wp-filter .attachment-filters{max-width:100%}}@media only screen and (max-width:782px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:46px;right:10px}}@media only screen and (max-width:600px){.media-frame.mode-select .attachments-browser.fixed .media-toolbar{top:0}}@media only screen and (max-width:480px){.edit-attachment-frame .media-frame-title{right:110px}.edit-attachment-frame .edit-media-header .left,.edit-attachment-frame .edit-media-header .right,.upload-php .media-modal-close{width:40px;height:40px}.upload-php .media-modal-close .media-modal-icon{margin:9px 10px}.edit-attachment-frame .edit-media-header .left:before,.edit-attachment-frame .edit-media-header .right:before{line-height:40px!important}.edit-attachment-frame .edit-media-header .left{right:82px}.edit-attachment-frame .edit-media-header .right{right:41px}.edit-attachment-frame .media-frame-content{top:40px}.edit-attachment-frame .attachment-media-view{float:none;height:auto;width:100%}.edit-attachment-frame .attachment-info{height:auto;width:100%}}@media only screen and (max-width:640px),screen and (max-height:400px){.upload-php .mode-grid .media-sidebar{max-width:100%}}
\ No newline at end of file
diff --git a/wp-admin/css/nav-menus-rtl.css b/wp-admin/css/nav-menus-rtl.css
index e5496043b..8618240ba 100644
--- a/wp-admin/css/nav-menus-rtl.css
+++ b/wp-admin/css/nav-menus-rtl.css
@@ -27,6 +27,10 @@ ul.add-menu-item-tabs li {
 	margin-bottom: 0;
 }
 
+.has-no-menu-item .button-controls {
+	display: none;
+}
+
 #nav-menus-frame {
 	margin-right: 300px;
 	margin-top: 23px;
@@ -105,24 +109,28 @@ ul.add-menu-item-tabs li {
 	margin-top: 2em;
 }
 
-.menu-settings dl {
+.menu-settings-group {
 	margin: 0 0 10px;
 	overflow: hidden;
-	padding-right: 18%;
+	padding-right: 20%;
 }
 
-.menu-settings dd {
+.menu-settings-group:last-of-type {
+	margin-bottom: 0;
+}
+
+.menu-settings-input {
 	float: right;
 	margin: 0;
 	width: 100%;
 }
 
-.menu-settings dt {
+.menu-settings-group-name {
 	float: right;
 	clear: both;
-	width: 21.951%;
+	width: 25%;
 	padding: 3px 0 0;
-	margin-right: -21.951%;
+	margin-right: -25%; /* 20 container left padding x ( 100 container % width / 80 this % width ) */
 }
 
 .menu-settings label {
@@ -139,12 +147,15 @@ ul.add-menu-item-tabs li {
 }
 
 /* Menu Container */
+
+/* @todo: responsive view. */
 #menu-management-liquid {
 	float: right;
 	min-width: 100%;
 	margin-top: 3px;
 }
 
+/* @todo: responsive view. */
 #menu-management {
 	position: relative;
 	margin-left: 20px;
@@ -284,19 +295,6 @@ ul.add-menu-item-tabs li {
 	padding: 0;
 }
 
-.nav-menus-php .meta-sep,
-.nav-menus-php .submitdelete,
-.nav-menus-php .submitcancel {
-	display: block;
-	float: right;
-	margin: 6px 0;
-	line-height: 15px;
-}
-
-.meta-sep {
-	padding: 0 2px;
-}
-
 /* @todo: is this actually used? */
 #cancel-save {
 	text-decoration: underline;
@@ -480,6 +478,7 @@ ul.add-menu-item-tabs li {
 	font-weight: 600;
 	line-height: 20px;
 	display: block;
+	/* @todo: responsive view. */
 	margin-left: 13em;
 }
 
@@ -651,9 +650,38 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 	box-shadow: 0 1px 1px rgba(0,0,0,0.04);
 }
 
-.menu-item-settings .field-move a {
+.menu-item-settings .field-move {
+	margin: 3px 0 5px;
+	line-height: 1.5;
+}
+
+.field-move-visual-label {
+	float: right;
+	margin-left: 4px;
+	font-style: italic;
+}
+
+.menu-item-settings .field-move .button-link {
 	display: none;
 	margin: 0 2px;
+	color: #0073aa;
+	font-style: italic;
+	text-decoration: underline;
+}
+
+.menu-item-settings .field-move .button-link:hover,
+.menu-item-settings .field-move .button-link:active {
+	color: #00a0d2;
+}
+
+.menu-item-settings .field-move .button-link:focus {
+	color: #124964;
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 .menu-item-edit-active .menu-item-settings {
@@ -665,13 +693,22 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 }
 
 .add-menu-item-pagelinks {
-	margin: .5em auto;
+	margin: .5em -10px;
 	text-align: center;
 }
 
+.add-menu-item-pagelinks .page-numbers {
+	display: inline-block;
+	min-width: 20px;
+}
+
+.add-menu-item-pagelinks .page-numbers.dots {
+	min-width: 0;
+}
+
 .link-to-original {
 	display: block;
-	margin: 0 0 10px;
+	margin: 0 0 15px;
 	padding: 3px 5px 5px;
 	border: 1px solid #ddd;
 	color: #72777c;
@@ -704,6 +741,7 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 
 .menu-item-actions {
 	padding-top: 15px;
+	padding-bottom: 7px;
 }
 
 #cancel-save {
@@ -713,7 +751,8 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 /* Major/minor publishing actions (classes) */
 .nav-menus-php .major-publishing-actions {
 	clear: both;
-	padding: 7px 0 6px;
+	padding: 10px 0;
+	line-height: 28px;
 }
 
 .nav-menus-php .major-publishing-actions .publishing-action {
@@ -725,21 +764,10 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 	display: none;
 }
 
+/* Same as the Publish Meta Box #delete-action */
 .nav-menus-php .delete-action {
 	float: right;
-	margin-top: 2px;
-}
-
-.nav-menus-php .submitbox .submitcancel {
-	border-bottom: 1px solid #0073aa;
-	padding: 1px 2px;
-	color: #0073aa;
-	text-decoration: none;
-}
-
-.nav-menus-php .submitbox .submitcancel:hover {
-	background: #0073aa;
-	color: #fff;
+	line-height: 28px;
 }
 
 .nav-menus-php .major-publishing-actions .form-invalid {
@@ -825,14 +853,9 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 		margin-top: 4px;
 	}
 
-	.nav-menus-php .major-publishing-actions .publishing-action {
-		margin-top: 6px;
-	}
-
 	.nav-menus-php .delete-action {
 		font-size: 14px;
-		line-height: 50px;
-		margin-top: 12px;
+		line-height: 30px;
 	}
 
 	.menu-item-bar .menu-item-handle,
@@ -859,23 +882,26 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 		width: 25px;
 	}
 
-	.menu-settings dl {
+	.menu-settings-group {
 		padding-right: 0;
 	}
 
-	.menu-settings dd {
+	.menu-settings-group-name {
 		float: none;
-		width: 100%;
+		width: auto;
+		margin-right: 0;
 		margin-bottom: 15px;
 	}
 
-	.menu-settings dt {
+	.menu-settings-input {
 		float: none;
-		width: auto;
-		margin-right: 0;
 		margin-bottom: 15px;
 	}
 
+	.menu-edit .checkbox-input {
+	    margin-top: 0;
+	}
+
 	.manage-menus select {
 		margin: 0.5em 0;
 	}
diff --git a/wp-admin/css/nav-menus-rtl.min.css b/wp-admin/css/nav-menus-rtl.min.css
index afc8bc0bc..47178d1c2 100644
--- a/wp-admin/css/nav-menus-rtl.min.css
+++ b/wp-admin/css/nav-menus-rtl.min.css
@@ -1 +1 @@
-.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 8px 4px 5px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}#nav-menus-frame{margin-right:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-right:-300px;clear:both;float:right;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#555d66;font-style:italic;font-weight:400;margin-right:4px}#menu-management .menu-add-new abbr,.menu-location-title label{font-weight:600}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus .selected-menu,.manage-menus .submit-btn,.manage-menus select,.nav-menus-php .add-new-menu-action{display:inline-block;margin-left:3px;vertical-align:middle}.manage-menus select,.menu-location-menus select{max-width:100%}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings dl{margin:0 0 10px;overflow:hidden;padding-right:18%}.menu-settings dd{float:right;margin:0;width:100%}.menu-settings dt{float:right;clear:both;width:21.951%;padding:3px 0 0;margin-right:-21.951%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#72777c;font-size:11px}#add-custom-link .howto,#cancel-save{font-size:12px}#menu-management-liquid{float:right;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-left:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #ddd;margin-bottom:0}#nav-menu-header .menu-name-label{display:inline-block;vertical-align:middle;margin-left:7px;font-style:italic}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#select-nav-menu-container{text-align:left;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat .menu-locations .menu-location-title{padding:13px 10px 0}.menu-location-menus select{float:right}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:right;width:160px;margin-left:5px}.locations-row-links{float:right;margin:6px 6px 0 0}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-left:3px;border-left:1px solid #ccc}#menu-management .inside{padding:0 10px}.customlinkdiv .menu-item-textbox,.postbox .howto input{width:180px;float:left}.accordion-container .outer-border{margin:0}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:left}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}.nav-menus-php .meta-sep,.nav-menus-php .submitcancel,.nav-menus-php .submitdelete{display:block;float:right;margin:6px 0;line-height:15px}.meta-sep{padding:0 2px}#cancel-save{text-decoration:underline;margin-right:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:left}.list-controls{float:right;margin-top:5px}.add-to-menu{float:left}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px;vertical-align:middle}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link label span{display:block;float:right;margin-top:5px;padding-left:5px}.menu-item-textbox{width:180px}.customlinkdiv label,.nav-menus-php .howto span{float:right;margin-top:6px}.quick-search{width:190px}.quick-search-wrap .spinner{float:none;margin:-3px 0 0 -10px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-left:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #ddd;position:relative;padding:10px 15px;height:auto;min-height:20px;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}#cancel-save,.item-controls a:hover{cursor:pointer}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-left:13em}.menu-item-handle .menu-item-title.no-title{color:#72777c}li.menu-item.ui-sortable-helper .menu-item-bar{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport .menu-item-bar{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item .menu-item-transport:empty{display:none}.menu-item-depth-0{margin-right:0}.menu-item-depth-1{margin-right:30px}.menu-item-depth-2{margin-right:60px}.menu-item-depth-3{margin-right:90px}.menu-item-depth-4{margin-right:120px}.menu-item-depth-5{margin-right:150px}.menu-item-depth-6{margin-right:180px}.menu-item-depth-7{margin-right:210px}.menu-item-depth-8{margin-right:240px}.menu-item-depth-9{margin-right:270px}.menu-item-depth-10{margin-right:300px}.menu-item-depth-11{margin-right:330px}.menu-item-depth-0 .menu-item-transport{margin-right:0}.menu-item-depth-1 .menu-item-transport{margin-right:-30px}.menu-item-depth-2 .menu-item-transport{margin-right:-60px}.menu-item-depth-3 .menu-item-transport{margin-right:-90px}.menu-item-depth-4 .menu-item-transport{margin-right:-120px}.menu-item-depth-5 .menu-item-transport{margin-right:-150px}.menu-item-depth-6 .menu-item-transport{margin-right:-180px}.menu-item-depth-7 .menu-item-transport{margin-right:-210px}.menu-item-depth-8 .menu-item-transport{margin-right:-240px}.menu-item-depth-9 .menu-item-transport{margin-right:-270px}.menu-item-depth-10 .menu-item-transport{margin-right:-300px}.menu-item-depth-11 .menu-item-transport{margin-right:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{display:inline-block;padding:12px 16px;color:#666;font-size:12px;line-height:18px}.item-controls{font-size:12px;position:absolute;left:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls .item-order{padding-left:10px}.nav-menus-php .item-edit{position:absolute;left:-20px;top:0;display:block;width:30px;height:40px;margin-left:0!important;text-indent:100%;outline:0;overflow:hidden;white-space:nowrap}.no-js.nav-menus-php .item-edit{position:static;float:left;width:auto;height:auto;margin-left:-10px!important;padding:12px 0;color:#0073aa;text-decoration:underline;font-size:12px;line-height:18px;text-indent:0}.nav-menus-php .item-edit:before{margin-top:10px;margin-right:4px;width:20px;-webkit-border-radius:50%;border-radius:50%;text-indent:-1px}.no-js.nav-menus-php .item-edit:before{display:none}.rtl .nav-menus-php .item-edit:before{text-indent:1px}.nav-menus-php .item-edit:focus{-webkit-box-shadow:none;box-shadow:none}.nav-menus-php .item-edit:focus:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 10px 10px 0;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move a{display:none;margin:0 2px}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em auto;text-align:center}.link-to-original{display:block;margin:0 0 10px;padding:3px 5px 5px;border:1px solid #ddd;color:#72777c;font-size:12px;font-style:italic}.hidden-field,.nav-menus-php .blank-slate .menu-settings{display:none}.link-to-original a{padding-right:4px;font-style:normal}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-left:10px;float:right}.description-thin{width:190px}.description-wide{width:390px}.menu-item-actions{padding-top:15px}.nav-menus-php .major-publishing-actions{clear:both;padding:7px 0 6px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:left;float:left}.nav-menus-php .delete-action{float:right;margin-top:2px}.nav-menus-php .submitbox .submitcancel{border-bottom:1px solid #0073aa;padding:1px 2px;color:#0073aa;text-decoration:none}.nav-menus-php .submitbox .submitcancel:hover{background:#0073aa;color:#fff}.nav-menus-php .major-publishing-actions .form-invalid{padding-right:4px;margin-right:-4px}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media only screen and (min-width:769px) and (max-width:1000px){body.menu-max-depth-0{min-width:0!important}#menu-management-liquid{width:100%}.nav-menus-php #post-body-content{min-width:0}.menu-item-bar .menu-item-handle{width:90%}}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-right:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-right:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .item-controls .item-type{margin-top:2px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}.menu-name-label #menu-name{margin-top:4px}.nav-menus-php .major-publishing-actions .publishing-action{margin-top:6px}.nav-menus-php .delete-action{font-size:14px;line-height:50px;margin-top:12px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide,.menu-item-settings input{width:100%}.menu-item-settings input[type=checkbox],.menu-item-settings input[type=radio]{width:25px}.menu-settings dl{padding-right:0}.menu-settings dd{float:none;width:100%;margin-bottom:15px}.menu-settings dt{float:none;width:auto;margin-right:0;margin-bottom:15px}.manage-menus select{margin:.5em 0}.widefat .menu-locations .menu-location-title{padding-top:16px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}}
\ No newline at end of file
+.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 8px 4px 5px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}.has-no-menu-item .button-controls{display:none}#nav-menus-frame{margin-right:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-right:-300px;clear:both;float:right;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#555d66;font-style:italic;font-weight:400;margin-right:4px}#menu-management .menu-add-new abbr,.menu-location-title label{font-weight:600}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus .selected-menu,.manage-menus .submit-btn,.manage-menus select,.nav-menus-php .add-new-menu-action{display:inline-block;margin-left:3px;vertical-align:middle}.manage-menus select,.menu-location-menus select{max-width:100%}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings-group{margin:0 0 10px;overflow:hidden;padding-right:20%}.menu-settings-group:last-of-type{margin-bottom:0}.menu-settings-input{float:right;margin:0;width:100%}.menu-settings-group-name{float:right;clear:both;width:25%;padding:3px 0 0;margin-right:-25%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#72777c;font-size:11px}#add-custom-link .howto,#cancel-save{font-size:12px}#menu-management-liquid{float:right;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-left:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #ddd;margin-bottom:0}#nav-menu-header .menu-name-label{display:inline-block;vertical-align:middle;margin-left:7px;font-style:italic}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#select-nav-menu-container{text-align:left;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat .menu-locations .menu-location-title{padding:13px 10px 0}.menu-location-menus select{float:right}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:right;width:160px;margin-left:5px}.locations-row-links{float:right;margin:6px 6px 0 0}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-left:3px;border-left:1px solid #ccc}#menu-management .inside{padding:0 10px}.customlinkdiv .menu-item-textbox,.postbox .howto input{width:180px;float:left}.accordion-container .outer-border{margin:0}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:left}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}#cancel-save{text-decoration:underline;margin-right:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:left}.list-controls{float:right;margin-top:5px}.add-to-menu{float:left}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px;vertical-align:middle}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link label span{display:block;float:right;margin-top:5px;padding-left:5px}.menu-item-textbox{width:180px}.customlinkdiv label,.nav-menus-php .howto span{float:right;margin-top:6px}.quick-search{width:190px}.quick-search-wrap .spinner{float:none;margin:-3px 0 0 -10px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-left:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #ddd;position:relative;padding:10px 15px;height:auto;min-height:20px;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}#cancel-save,.item-controls a:hover{cursor:pointer}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-left:13em}.menu-item-handle .menu-item-title.no-title{color:#72777c}li.menu-item.ui-sortable-helper .menu-item-bar{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport .menu-item-bar{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item .menu-item-transport:empty{display:none}.menu-item-depth-0{margin-right:0}.menu-item-depth-1{margin-right:30px}.menu-item-depth-2{margin-right:60px}.menu-item-depth-3{margin-right:90px}.menu-item-depth-4{margin-right:120px}.menu-item-depth-5{margin-right:150px}.menu-item-depth-6{margin-right:180px}.menu-item-depth-7{margin-right:210px}.menu-item-depth-8{margin-right:240px}.menu-item-depth-9{margin-right:270px}.menu-item-depth-10{margin-right:300px}.menu-item-depth-11{margin-right:330px}.menu-item-depth-0 .menu-item-transport{margin-right:0}.menu-item-depth-1 .menu-item-transport{margin-right:-30px}.menu-item-depth-2 .menu-item-transport{margin-right:-60px}.menu-item-depth-3 .menu-item-transport{margin-right:-90px}.menu-item-depth-4 .menu-item-transport{margin-right:-120px}.menu-item-depth-5 .menu-item-transport{margin-right:-150px}.menu-item-depth-6 .menu-item-transport{margin-right:-180px}.menu-item-depth-7 .menu-item-transport{margin-right:-210px}.menu-item-depth-8 .menu-item-transport{margin-right:-240px}.menu-item-depth-9 .menu-item-transport{margin-right:-270px}.menu-item-depth-10 .menu-item-transport{margin-right:-300px}.menu-item-depth-11 .menu-item-transport{margin-right:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{display:inline-block;padding:12px 16px;color:#666;font-size:12px;line-height:18px}.item-controls{font-size:12px;position:absolute;left:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls .item-order{padding-left:10px}.nav-menus-php .item-edit{position:absolute;left:-20px;top:0;display:block;width:30px;height:40px;margin-left:0!important;text-indent:100%;outline:0;overflow:hidden;white-space:nowrap}.no-js.nav-menus-php .item-edit{position:static;float:left;width:auto;height:auto;margin-left:-10px!important;padding:12px 0;color:#0073aa;text-decoration:underline;font-size:12px;line-height:18px;text-indent:0}.nav-menus-php .item-edit:before{margin-top:10px;margin-right:4px;width:20px;-webkit-border-radius:50%;border-radius:50%;text-indent:-1px}.no-js.nav-menus-php .item-edit:before{display:none}.rtl .nav-menus-php .item-edit:before{text-indent:1px}.nav-menus-php .item-edit:focus{-webkit-box-shadow:none;box-shadow:none}.nav-menus-php .item-edit:focus:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 10px 10px 0;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move{margin:3px 0 5px;line-height:1.5}.field-move-visual-label{float:right;margin-left:4px;font-style:italic}.menu-item-settings .field-move .button-link{display:none;margin:0 2px;color:#0073aa;font-style:italic;text-decoration:underline}.menu-item-settings .field-move .button-link:active,.menu-item-settings .field-move .button-link:hover{color:#00a0d2}.menu-item-settings .field-move .button-link:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em -10px;text-align:center}.add-menu-item-pagelinks .page-numbers{display:inline-block;min-width:20px}.add-menu-item-pagelinks .page-numbers.dots{min-width:0}.link-to-original{display:block;margin:0 0 15px;padding:3px 5px 5px;border:1px solid #ddd;color:#72777c;font-size:12px;font-style:italic}.hidden-field,.nav-menus-php .blank-slate .menu-settings{display:none}.link-to-original a{padding-right:4px;font-style:normal}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-left:10px;float:right}.description-thin{width:190px}.description-wide{width:390px}.menu-item-actions{padding-top:15px;padding-bottom:7px}.nav-menus-php .major-publishing-actions{clear:both;padding:10px 0;line-height:28px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:left;float:left}.nav-menus-php .delete-action{float:right;line-height:28px}.nav-menus-php .major-publishing-actions .form-invalid{padding-right:4px;margin-right:-4px}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media only screen and (min-width:769px) and (max-width:1000px){body.menu-max-depth-0{min-width:0!important}#menu-management-liquid{width:100%}.nav-menus-php #post-body-content{min-width:0}.menu-item-bar .menu-item-handle{width:90%}}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-right:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-right:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}.menu-settings-group-name,.menu-settings-input{float:none;margin-bottom:15px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .item-controls .item-type{margin-top:2px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}.menu-name-label #menu-name{margin-top:4px}.nav-menus-php .delete-action{font-size:14px;line-height:30px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide,.menu-item-settings input{width:100%}.menu-item-settings input[type=checkbox],.menu-item-settings input[type=radio]{width:25px}.menu-settings-group{padding-right:0}.menu-settings-group-name{width:auto;margin-right:0}.menu-edit .checkbox-input{margin-top:0}.manage-menus select{margin:.5em 0}.widefat .menu-locations .menu-location-title{padding-top:16px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}}
\ No newline at end of file
diff --git a/wp-admin/css/nav-menus.css b/wp-admin/css/nav-menus.css
index 2e4ee7cba..b7a25a12d 100644
--- a/wp-admin/css/nav-menus.css
+++ b/wp-admin/css/nav-menus.css
@@ -27,6 +27,10 @@ ul.add-menu-item-tabs li {
 	margin-bottom: 0;
 }
 
+.has-no-menu-item .button-controls {
+	display: none;
+}
+
 #nav-menus-frame {
 	margin-left: 300px;
 	margin-top: 23px;
@@ -105,24 +109,28 @@ ul.add-menu-item-tabs li {
 	margin-top: 2em;
 }
 
-.menu-settings dl {
+.menu-settings-group {
 	margin: 0 0 10px;
 	overflow: hidden;
-	padding-left: 18%;
+	padding-left: 20%;
 }
 
-.menu-settings dd {
+.menu-settings-group:last-of-type {
+	margin-bottom: 0;
+}
+
+.menu-settings-input {
 	float: left;
 	margin: 0;
 	width: 100%;
 }
 
-.menu-settings dt {
+.menu-settings-group-name {
 	float: left;
 	clear: both;
-	width: 21.951%;
+	width: 25%;
 	padding: 3px 0 0;
-	margin-left: -21.951%;
+	margin-left: -25%; /* 20 container left padding x ( 100 container % width / 80 this % width ) */
 }
 
 .menu-settings label {
@@ -139,12 +147,15 @@ ul.add-menu-item-tabs li {
 }
 
 /* Menu Container */
+
+/* @todo: responsive view. */
 #menu-management-liquid {
 	float: left;
 	min-width: 100%;
 	margin-top: 3px;
 }
 
+/* @todo: responsive view. */
 #menu-management {
 	position: relative;
 	margin-right: 20px;
@@ -284,19 +295,6 @@ ul.add-menu-item-tabs li {
 	padding: 0;
 }
 
-.nav-menus-php .meta-sep,
-.nav-menus-php .submitdelete,
-.nav-menus-php .submitcancel {
-	display: block;
-	float: left;
-	margin: 6px 0;
-	line-height: 15px;
-}
-
-.meta-sep {
-	padding: 0 2px;
-}
-
 /* @todo: is this actually used? */
 #cancel-save {
 	text-decoration: underline;
@@ -480,6 +478,7 @@ ul.add-menu-item-tabs li {
 	font-weight: 600;
 	line-height: 20px;
 	display: block;
+	/* @todo: responsive view. */
 	margin-right: 13em;
 }
 
@@ -651,9 +650,38 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 	box-shadow: 0 1px 1px rgba(0,0,0,0.04);
 }
 
-.menu-item-settings .field-move a {
+.menu-item-settings .field-move {
+	margin: 3px 0 5px;
+	line-height: 1.5;
+}
+
+.field-move-visual-label {
+	float: left;
+	margin-right: 4px;
+	font-style: italic;
+}
+
+.menu-item-settings .field-move .button-link {
 	display: none;
 	margin: 0 2px;
+	color: #0073aa;
+	font-style: italic;
+	text-decoration: underline;
+}
+
+.menu-item-settings .field-move .button-link:hover,
+.menu-item-settings .field-move .button-link:active {
+	color: #00a0d2;
+}
+
+.menu-item-settings .field-move .button-link:focus {
+	color: #124964;
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
 }
 
 .menu-item-edit-active .menu-item-settings {
@@ -665,13 +693,22 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 }
 
 .add-menu-item-pagelinks {
-	margin: .5em auto;
+	margin: .5em -10px;
 	text-align: center;
 }
 
+.add-menu-item-pagelinks .page-numbers {
+	display: inline-block;
+	min-width: 20px;
+}
+
+.add-menu-item-pagelinks .page-numbers.dots {
+	min-width: 0;
+}
+
 .link-to-original {
 	display: block;
-	margin: 0 0 10px;
+	margin: 0 0 15px;
 	padding: 3px 5px 5px;
 	border: 1px solid #ddd;
 	color: #72777c;
@@ -704,6 +741,7 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 
 .menu-item-actions {
 	padding-top: 15px;
+	padding-bottom: 7px;
 }
 
 #cancel-save {
@@ -713,7 +751,8 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 /* Major/minor publishing actions (classes) */
 .nav-menus-php .major-publishing-actions {
 	clear: both;
-	padding: 7px 0 6px;
+	padding: 10px 0;
+	line-height: 28px;
 }
 
 .nav-menus-php .major-publishing-actions .publishing-action {
@@ -725,21 +764,10 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 	display: none;
 }
 
+/* Same as the Publish Meta Box #delete-action */
 .nav-menus-php .delete-action {
 	float: left;
-	margin-top: 2px;
-}
-
-.nav-menus-php .submitbox .submitcancel {
-	border-bottom: 1px solid #0073aa;
-	padding: 1px 2px;
-	color: #0073aa;
-	text-decoration: none;
-}
-
-.nav-menus-php .submitbox .submitcancel:hover {
-	background: #0073aa;
-	color: #fff;
+	line-height: 28px;
 }
 
 .nav-menus-php .major-publishing-actions .form-invalid {
@@ -825,14 +853,9 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 		margin-top: 4px;
 	}
 
-	.nav-menus-php .major-publishing-actions .publishing-action {
-		margin-top: 6px;
-	}
-
 	.nav-menus-php .delete-action {
 		font-size: 14px;
-		line-height: 50px;
-		margin-top: 12px;
+		line-height: 30px;
 	}
 
 	.menu-item-bar .menu-item-handle,
@@ -859,23 +882,26 @@ body.menu-max-depth-11 { min-width: 1280px !important; }
 		width: 25px;
 	}
 
-	.menu-settings dl {
+	.menu-settings-group {
 		padding-left: 0;
 	}
 
-	.menu-settings dd {
+	.menu-settings-group-name {
 		float: none;
-		width: 100%;
+		width: auto;
+		margin-left: 0;
 		margin-bottom: 15px;
 	}
 
-	.menu-settings dt {
+	.menu-settings-input {
 		float: none;
-		width: auto;
-		margin-left: 0;
 		margin-bottom: 15px;
 	}
 
+	.menu-edit .checkbox-input {
+	    margin-top: 0;
+	}
+
 	.manage-menus select {
 		margin: 0.5em 0;
 	}
diff --git a/wp-admin/css/nav-menus.min.css b/wp-admin/css/nav-menus.min.css
index da00a5323..6880a543b 100644
--- a/wp-admin/css/nav-menus.min.css
+++ b/wp-admin/css/nav-menus.min.css
@@ -1 +1 @@
-.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 5px 4px 8px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}#nav-menus-frame{margin-left:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-left:-300px;clear:both;float:left;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#555d66;font-style:italic;font-weight:400;margin-left:4px}#menu-management .menu-add-new abbr,.menu-location-title label{font-weight:600}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus .selected-menu,.manage-menus .submit-btn,.manage-menus select,.nav-menus-php .add-new-menu-action{display:inline-block;margin-right:3px;vertical-align:middle}.manage-menus select,.menu-location-menus select{max-width:100%}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings dl{margin:0 0 10px;overflow:hidden;padding-left:18%}.menu-settings dd{float:left;margin:0;width:100%}.menu-settings dt{float:left;clear:both;width:21.951%;padding:3px 0 0;margin-left:-21.951%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#72777c;font-size:11px}#add-custom-link .howto,#cancel-save{font-size:12px}#menu-management-liquid{float:left;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-right:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #ddd;margin-bottom:0}#nav-menu-header .menu-name-label{display:inline-block;vertical-align:middle;margin-right:7px;font-style:italic}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#select-nav-menu-container{text-align:right;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat .menu-locations .menu-location-title{padding:13px 10px 0}.menu-location-menus select{float:left}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:left;width:160px;margin-right:5px}.locations-row-links{float:left;margin:6px 0 0 6px}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-right:3px;border-right:1px solid #ccc}#menu-management .inside{padding:0 10px}.customlinkdiv .menu-item-textbox,.postbox .howto input{width:180px;float:right}.accordion-container .outer-border{margin:0}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:right}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}.nav-menus-php .meta-sep,.nav-menus-php .submitcancel,.nav-menus-php .submitdelete{display:block;float:left;margin:6px 0;line-height:15px}.meta-sep{padding:0 2px}#cancel-save{text-decoration:underline;margin-left:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:right}.list-controls{float:left;margin-top:5px}.add-to-menu{float:right}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px;vertical-align:middle}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link label span{display:block;float:left;margin-top:5px;padding-right:5px}.menu-item-textbox{width:180px}.customlinkdiv label,.nav-menus-php .howto span{float:left;margin-top:6px}.quick-search{width:190px}.quick-search-wrap .spinner{float:none;margin:-3px -10px 0 0}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-right:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #ddd;position:relative;padding:10px 15px;height:auto;min-height:20px;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}#cancel-save,.item-controls a:hover{cursor:pointer}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-right:13em}.menu-item-handle .menu-item-title.no-title{color:#72777c}li.menu-item.ui-sortable-helper .menu-item-bar{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport .menu-item-bar{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item .menu-item-transport:empty{display:none}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:30px}.menu-item-depth-2{margin-left:60px}.menu-item-depth-3{margin-left:90px}.menu-item-depth-4{margin-left:120px}.menu-item-depth-5{margin-left:150px}.menu-item-depth-6{margin-left:180px}.menu-item-depth-7{margin-left:210px}.menu-item-depth-8{margin-left:240px}.menu-item-depth-9{margin-left:270px}.menu-item-depth-10{margin-left:300px}.menu-item-depth-11{margin-left:330px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-30px}.menu-item-depth-2 .menu-item-transport{margin-left:-60px}.menu-item-depth-3 .menu-item-transport{margin-left:-90px}.menu-item-depth-4 .menu-item-transport{margin-left:-120px}.menu-item-depth-5 .menu-item-transport{margin-left:-150px}.menu-item-depth-6 .menu-item-transport{margin-left:-180px}.menu-item-depth-7 .menu-item-transport{margin-left:-210px}.menu-item-depth-8 .menu-item-transport{margin-left:-240px}.menu-item-depth-9 .menu-item-transport{margin-left:-270px}.menu-item-depth-10 .menu-item-transport{margin-left:-300px}.menu-item-depth-11 .menu-item-transport{margin-left:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{display:inline-block;padding:12px 16px;color:#666;font-size:12px;line-height:18px}.item-controls{font-size:12px;position:absolute;right:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls .item-order{padding-right:10px}.nav-menus-php .item-edit{position:absolute;right:-20px;top:0;display:block;width:30px;height:40px;margin-right:0!important;text-indent:100%;outline:0;overflow:hidden;white-space:nowrap}.no-js.nav-menus-php .item-edit{position:static;float:right;width:auto;height:auto;margin-right:-10px!important;padding:12px 0;color:#0073aa;text-decoration:underline;font-size:12px;line-height:18px;text-indent:0}.nav-menus-php .item-edit:before{margin-top:10px;margin-left:4px;width:20px;-webkit-border-radius:50%;border-radius:50%;text-indent:-1px}.no-js.nav-menus-php .item-edit:before{display:none}.rtl .nav-menus-php .item-edit:before{text-indent:1px}.nav-menus-php .item-edit:focus{-webkit-box-shadow:none;box-shadow:none}.nav-menus-php .item-edit:focus:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 0 10px 10px;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move a{display:none;margin:0 2px}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em auto;text-align:center}.link-to-original{display:block;margin:0 0 10px;padding:3px 5px 5px;border:1px solid #ddd;color:#72777c;font-size:12px;font-style:italic}.hidden-field,.nav-menus-php .blank-slate .menu-settings{display:none}.link-to-original a{padding-left:4px;font-style:normal}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-right:10px;float:left}.description-thin{width:190px}.description-wide{width:390px}.menu-item-actions{padding-top:15px}.nav-menus-php .major-publishing-actions{clear:both;padding:7px 0 6px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:right;float:right}.nav-menus-php .delete-action{float:left;margin-top:2px}.nav-menus-php .submitbox .submitcancel{border-bottom:1px solid #0073aa;padding:1px 2px;color:#0073aa;text-decoration:none}.nav-menus-php .submitbox .submitcancel:hover{background:#0073aa;color:#fff}.nav-menus-php .major-publishing-actions .form-invalid{padding-left:4px;margin-left:-4px}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media only screen and (min-width:769px) and (max-width:1000px){body.menu-max-depth-0{min-width:0!important}#menu-management-liquid{width:100%}.nav-menus-php #post-body-content{min-width:0}.menu-item-bar .menu-item-handle{width:90%}}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-left:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-left:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .item-controls .item-type{margin-top:2px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}.menu-name-label #menu-name{margin-top:4px}.nav-menus-php .major-publishing-actions .publishing-action{margin-top:6px}.nav-menus-php .delete-action{font-size:14px;line-height:50px;margin-top:12px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide,.menu-item-settings input{width:100%}.menu-item-settings input[type=checkbox],.menu-item-settings input[type=radio]{width:25px}.menu-settings dl{padding-left:0}.menu-settings dd{float:none;width:100%;margin-bottom:15px}.menu-settings dt{float:none;width:auto;margin-left:0;margin-bottom:15px}.manage-menus select{margin:.5em 0}.widefat .menu-locations .menu-location-title{padding-top:16px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}}
\ No newline at end of file
+.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 5px 4px 8px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}.has-no-menu-item .button-controls{display:none}#nav-menus-frame{margin-left:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-left:-300px;clear:both;float:left;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#555d66;font-style:italic;font-weight:400;margin-left:4px}#menu-management .menu-add-new abbr,.menu-location-title label{font-weight:600}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus .selected-menu,.manage-menus .submit-btn,.manage-menus select,.nav-menus-php .add-new-menu-action{display:inline-block;margin-right:3px;vertical-align:middle}.manage-menus select,.menu-location-menus select{max-width:100%}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings-group{margin:0 0 10px;overflow:hidden;padding-left:20%}.menu-settings-group:last-of-type{margin-bottom:0}.menu-settings-input{float:left;margin:0;width:100%}.menu-settings-group-name{float:left;clear:both;width:25%;padding:3px 0 0;margin-left:-25%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#72777c;font-size:11px}#add-custom-link .howto,#cancel-save{font-size:12px}#menu-management-liquid{float:left;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-right:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #ddd;margin-bottom:0}#nav-menu-header .menu-name-label{display:inline-block;vertical-align:middle;margin-right:7px;font-style:italic}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#select-nav-menu-container{text-align:right;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat .menu-locations .menu-location-title{padding:13px 10px 0}.menu-location-menus select{float:left}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:left;width:160px;margin-right:5px}.locations-row-links{float:left;margin:6px 0 0 6px}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-right:3px;border-right:1px solid #ccc}#menu-management .inside{padding:0 10px}.customlinkdiv .menu-item-textbox,.postbox .howto input{width:180px;float:right}.accordion-container .outer-border{margin:0}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:right}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}#cancel-save{text-decoration:underline;margin-left:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:right}.list-controls{float:left;margin-top:5px}.add-to-menu{float:right}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px;vertical-align:middle}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link label span{display:block;float:left;margin-top:5px;padding-right:5px}.menu-item-textbox{width:180px}.customlinkdiv label,.nav-menus-php .howto span{float:left;margin-top:6px}.quick-search{width:190px}.quick-search-wrap .spinner{float:none;margin:-3px -10px 0 0}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-right:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #ddd;position:relative;padding:10px 15px;height:auto;min-height:20px;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}#cancel-save,.item-controls a:hover{cursor:pointer}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-right:13em}.menu-item-handle .menu-item-title.no-title{color:#72777c}li.menu-item.ui-sortable-helper .menu-item-bar{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport .menu-item-bar{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item .menu-item-transport:empty{display:none}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:30px}.menu-item-depth-2{margin-left:60px}.menu-item-depth-3{margin-left:90px}.menu-item-depth-4{margin-left:120px}.menu-item-depth-5{margin-left:150px}.menu-item-depth-6{margin-left:180px}.menu-item-depth-7{margin-left:210px}.menu-item-depth-8{margin-left:240px}.menu-item-depth-9{margin-left:270px}.menu-item-depth-10{margin-left:300px}.menu-item-depth-11{margin-left:330px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-30px}.menu-item-depth-2 .menu-item-transport{margin-left:-60px}.menu-item-depth-3 .menu-item-transport{margin-left:-90px}.menu-item-depth-4 .menu-item-transport{margin-left:-120px}.menu-item-depth-5 .menu-item-transport{margin-left:-150px}.menu-item-depth-6 .menu-item-transport{margin-left:-180px}.menu-item-depth-7 .menu-item-transport{margin-left:-210px}.menu-item-depth-8 .menu-item-transport{margin-left:-240px}.menu-item-depth-9 .menu-item-transport{margin-left:-270px}.menu-item-depth-10 .menu-item-transport{margin-left:-300px}.menu-item-depth-11 .menu-item-transport{margin-left:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{display:inline-block;padding:12px 16px;color:#666;font-size:12px;line-height:18px}.item-controls{font-size:12px;position:absolute;right:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls .item-order{padding-right:10px}.nav-menus-php .item-edit{position:absolute;right:-20px;top:0;display:block;width:30px;height:40px;margin-right:0!important;text-indent:100%;outline:0;overflow:hidden;white-space:nowrap}.no-js.nav-menus-php .item-edit{position:static;float:right;width:auto;height:auto;margin-right:-10px!important;padding:12px 0;color:#0073aa;text-decoration:underline;font-size:12px;line-height:18px;text-indent:0}.nav-menus-php .item-edit:before{margin-top:10px;margin-left:4px;width:20px;-webkit-border-radius:50%;border-radius:50%;text-indent:-1px}.no-js.nav-menus-php .item-edit:before{display:none}.rtl .nav-menus-php .item-edit:before{text-indent:1px}.nav-menus-php .item-edit:focus{-webkit-box-shadow:none;box-shadow:none}.nav-menus-php .item-edit:focus:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 0 10px 10px;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move{margin:3px 0 5px;line-height:1.5}.field-move-visual-label{float:left;margin-right:4px;font-style:italic}.menu-item-settings .field-move .button-link{display:none;margin:0 2px;color:#0073aa;font-style:italic;text-decoration:underline}.menu-item-settings .field-move .button-link:active,.menu-item-settings .field-move .button-link:hover{color:#00a0d2}.menu-item-settings .field-move .button-link:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em -10px;text-align:center}.add-menu-item-pagelinks .page-numbers{display:inline-block;min-width:20px}.add-menu-item-pagelinks .page-numbers.dots{min-width:0}.link-to-original{display:block;margin:0 0 15px;padding:3px 5px 5px;border:1px solid #ddd;color:#72777c;font-size:12px;font-style:italic}.hidden-field,.nav-menus-php .blank-slate .menu-settings{display:none}.link-to-original a{padding-left:4px;font-style:normal}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-right:10px;float:left}.description-thin{width:190px}.description-wide{width:390px}.menu-item-actions{padding-top:15px;padding-bottom:7px}.nav-menus-php .major-publishing-actions{clear:both;padding:10px 0;line-height:28px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:right;float:right}.nav-menus-php .delete-action{float:left;line-height:28px}.nav-menus-php .major-publishing-actions .form-invalid{padding-left:4px;margin-left:-4px}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media only screen and (min-width:769px) and (max-width:1000px){body.menu-max-depth-0{min-width:0!important}#menu-management-liquid{width:100%}.nav-menus-php #post-body-content{min-width:0}.menu-item-bar .menu-item-handle{width:90%}}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-left:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-left:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}.menu-settings-group-name,.menu-settings-input{float:none;margin-bottom:15px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .item-controls .item-type{margin-top:2px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}.menu-name-label #menu-name{margin-top:4px}.nav-menus-php .delete-action{font-size:14px;line-height:30px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide,.menu-item-settings input{width:100%}.menu-item-settings input[type=checkbox],.menu-item-settings input[type=radio]{width:25px}.menu-settings-group{padding-left:0}.menu-settings-group-name{width:auto;margin-left:0}.menu-edit .checkbox-input{margin-top:0}.manage-menus select{margin:.5em 0}.widefat .menu-locations .menu-location-title{padding-top:16px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}}
\ No newline at end of file
diff --git a/wp-admin/css/press-this-rtl.css b/wp-admin/css/press-this-rtl.css
index 2c471494d..eba293902 100644
--- a/wp-admin/css/press-this-rtl.css
+++ b/wp-admin/css/press-this-rtl.css
@@ -770,38 +770,6 @@ dd {
 	margin: 10px 16px 6px 0;
 }
 
-
-/* Tag hint TODO needed? */
-/* Tag suggestions */
-.ac_results {
-	padding: 0;
-	margin: -1px -1px 0 0;
-	list-style: none;
-	position: absolute;
-	z-index: 10000;
-	display: none;
-	border: 1px solid #d8d8d8;
-	background-color: #fff;
-	font-size: 14px;
-}
-
-.ac_results li {
-	padding: 6px 16px;
-	white-space: nowrap;
-	text-align: right;
-}
-
-.ac_results .ac_over {
-	background-color: #e5e5e5;
-	background-color: #00a0d2;
-	color: #fff;
-	cursor: pointer;
-}
-
-.ac_match {
-	text-decoration: underline;
-}
-
 /* Tags */
 .tagchecklist {
 	padding: 16px 28px 5px;
@@ -817,10 +785,9 @@ dd {
 	clear: both;
 }
 
-.tagchecklist span {
-	display: block;
-	margin-left: 25px;
+.tagchecklist > span {
 	float: right;
+	margin-left: 25px;
 	font-size: 13px;
 	line-height: 1.8;
 	white-space: nowrap;
@@ -828,7 +795,7 @@ dd {
 }
 
 @media (max-width: 600px) {
-	.tagchecklist span {
+	.tagchecklist > span {
 		margin-bottom: 15px;
 		font-size: 16px;
 		line-height: 1.3;
@@ -836,36 +803,51 @@ dd {
 }
 
 .tagchecklist .ntdelbutton {
-	margin: 1px -17px 0 0;
+	position: absolute;
+	width: 24px;
+	height: 24px;
+	border: none;
+	margin: 0 -19px 0 0;
+	padding: 0;
+	background: none;
 	cursor: pointer;
-	width: 20px;
-	height: 20px;
-	display: block;
-	float: right;
-	text-indent: 0;
-	overflow: hidden;
+	text-indent: 0;;
 	position: absolute;
-	outline: 0;
 }
 
-.tagchecklist .ntdelbutton:before {
+.tagchecklist .ntdelbutton .remove-tag-icon:before {
 	content: "\f153";
 	display: block;
-	margin: 2px 0;
+	margin-right: 2px;
 	height: 20px;
 	width: 20px;
-	background: 100% 0;
-	color: #9ea7af;
-	font: 400 16px/1 dashicons;
+	-webkit-border-radius: 50%;
+	border-radius: 50%;
+	background: transparent;
+	color: #0073aa;
+	/* line-height tweak to vertically center the icon cross browsers */
+	font: 400 16px/1.28 dashicons;
 	text-align: center;
-	speak: none;
 	-webkit-font-smoothing: antialiased;
 }
 
-.tagchecklist .ntdelbutton:focus:before {
-	color: #00a0d2;
+.tagchecklist .ntdelbutton:focus {
+	outline: 0;
 }
 
+.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
+	color: #c00;
+}
+
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
 
 /* THE TAG CLOUD. */
 .tagsdiv + p {
@@ -2194,6 +2176,7 @@ html {
 	-webkit-box-shadow: 0 1px 2px rgba( 30, 140, 190, 0.8 );
 	box-shadow: 0 1px 2px rgba( 30, 140, 190, 0.8 );
 	background-color: #fff;
+	font-size: 14px;
 }
 
 .ui-autocomplete li {
@@ -2201,9 +2184,16 @@ html {
 	padding: 4px 10px;
 	white-space: nowrap;
 	text-align: right;
+	cursor: pointer;
 }
 
-.ui-autocomplete li.ui-state-focus {
+/* Colors for the wplink toolbar autocomplete. */
+.ui-autocomplete .ui-state-focus {
 	background-color: #ddd;
-	cursor: pointer;
+}
+
+/* Colors for the tags autocomplete. */
+.wp-tags-autocomplete .ui-state-focus {
+	background-color: #0073aa;
+	color: #fff;
 }
diff --git a/wp-admin/css/press-this-rtl.min.css b/wp-admin/css/press-this-rtl.min.css
index 07be2b999..c75639954 100644
--- a/wp-admin/css/press-this-rtl.min.css
+++ b/wp-admin/css/press-this-rtl.min.css
@@ -1 +1 @@
-body,fieldset{margin:0}.screen-reader-text,fieldset,legend,td,th{padding:0}.current-site,.post-options .post-option,.postform{text-overflow:ellipsis;white-space:nowrap}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi){*,:after,:before{-webkit-font-smoothing:antialiased}}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}fieldset,img,legend{border:0}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.hide-if-js{display:none}.screen-reader-text{position:absolute;margin:-1px;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}body,button,input,select,textarea{color:#404040;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-weight:400;line-height:1.6}b,dt,strong{font-weight:700}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}.scan-submit{display:inline-block;margin:0;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-appearance:none}.split-button{position:relative;display:inline-block;vertical-align:middle}.split-button-body{display:none;position:absolute;bottom:39px;left:0;border:1px solid #ddd;background-color:#fff;min-width:180px;max-width:100%;margin:0;padding:8px;list-style:none;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,.15);box-shadow:-1px 0 4px rgba(0,0,0,.15)}.split-button-body:after,.split-button-body:before{position:absolute;left:12px;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.split-button-body:before{bottom:-18px;border-top-color:#ccc;border-width:9px;left:11px}.split-button-body:after{bottom:-16px;border-top-color:#fff;border-width:8px}.split-button-body .split-button-option{display:block;padding:5px 15px;margin:0;width:100%;text-align:right;line-height:2}.is-open .split-button-body{display:block}.split-button-primary,.split-button-toggle{-webkit-border-radius:0;border-radius:0;display:block;margin:0;font-size:13px;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-appearance:none;line-height:2;padding:0 10px 1px;background:#0085ba;border-color:#0073aa #006799 #006799;border-width:1px;border-style:solid;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-shadow:0 -1px 1px #006799,-1px 0 1px #006799,0 1px 1px #006799,1px 0 1px #006799}.split-button-primary{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border-left:0 none;float:right}.split-button-toggle{padding:0;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border-right:1px solid #006799;float:left}.split-button-toggle i{margin:4px 0 3px 20px;padding:0 10px}.split-button-primary:hover,.split-button-toggle:hover{outline:0;background:#008ec2;border-color:#006799}.split-button-primary:focus,.split-button-toggle:focus{outline:0;-webkit-box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.split-button-primary:active,.split-button-toggle:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 10px #006799,0 1px 0 #0073aa;box-shadow:inset 0 2px 10px #006799,0 1px 0 #0073aa}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.postform,textarea{vertical-align:top}[type=checkbox],[type=radio]{padding:0}[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}[type=text],[type=email],[type=url],[type=password],[type=search],textarea{padding:.4em .75em;color:#32373c;border:1px solid #ccc}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=search]:focus,textarea:focus{color:#32373c;outline:0}textarea{overflow:auto;padding-right:3px}a,a:visited{color:#0073aa}a:active,a:focus,a:hover{color:#00a0d2}ol,ul{margin:0 3em 1.5em 0}ul{list-style:disc}ol{list-style:decimal}li>ol,li>ul{margin-bottom:0;margin-right:1.5em}dd{margin:0 1.5em 1.5em}#post-formats-select br{display:none}.post-format{width:1px;height:1px;position:absolute;top:-9999px}.lt-ie9 .post-format{margin:17px 13px 0 12px;position:static;top:auto;float:right;width:16px;height:16px}.add-category,.post-format-icon,.tagsdiv .ajaxtag,.tagsdiv .newtag{position:relative}.post-format-icon{display:block;padding:13px 13px 14px 2px;cursor:pointer}.post-format-icon:after,.post-format-icon:before{content:"";display:inline-block;width:20px;height:20px;margin-left:10px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;color:#9ea7af;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before{content:"\f109"}.post-format-icon:after{display:none;content:"\f147";float:left}.post-format:checked+.post-format-icon{-webkit-box-shadow:inset -6px 0 0 #00a0d2;box-shadow:inset -6px 0 0 #00a0d2;background:rgba(46,162,204,.1)}.post-format:checked+.post-format-icon:after,.post-format:checked+.post-format-icon:before{color:#32373c}.post-format:focus+.post-format-icon{background:#00a0d2;color:#fff}.post-format:focus+.post-format-icon:after,.post-format:focus+.post-format-icon:before{color:#fff}.post-format:checked+.post-format-icon:after{display:block}.lt-ie9 .post-format-icon{margin-right:16px}.post-format-aside:before{content:"\f123"}.post-format-image:before{content:"\f128"}.post-format-video:before{content:"\f126"}.post-format-audio:before{content:"\f127"}.post-format-quote:before{content:"\f122"}.post-format-link:before{content:"\f103"}.post-format-gallery:before{content:"\f161"}.tagsdiv p{margin:0}.tagsdiv .newtag{display:block;padding:11px 16px 11px 58px;width:100%;border:0;border-bottom:1px solid #e5e5e5;font-size:16px}.tagsdiv .tagadd{position:absolute;top:0;left:0;bottom:1px;border:0;-webkit-border-radius:0;border-radius:0;margin:0;padding:0 16px;background:#f7f7f7;border-right:1px solid #f1f1f1;-webkit-box-shadow:none;box-shadow:none}.tagsdiv .tagadd:active,.tagsdiv .tagadd:focus,.tagsdiv .tagadd:hover{outline:0;background:#2991b7;border-color:#20708e;color:#fff;-webkit-box-shadow:none;box-shadow:none}.tagsdiv .howto{color:#727272;font-style:italic;margin:10px 16px 6px 0}.ac_results{padding:0;margin:-1px -1px 0 0;list-style:none;position:absolute;z-index:10000;display:none;border:1px solid #d8d8d8;background-color:#fff;font-size:14px}.ac_results li{padding:6px 16px;white-space:nowrap;text-align:right}.ac_results .ac_over{background-color:#00a0d2;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}.tagchecklist{padding:16px 28px 5px}.tagchecklist:after,.tagchecklist:before{content:"";display:table}.tagchecklist:after{clear:both}.tagchecklist span{display:block;margin-left:25px;float:right;font-size:13px;line-height:1.8;white-space:nowrap;cursor:default}@media (max-width:600px){.tagchecklist span{margin-bottom:15px;font-size:16px;line-height:1.3}}.tagchecklist .ntdelbutton{margin:1px -17px 0 0;cursor:pointer;width:20px;height:20px;display:block;float:right;text-indent:0;overflow:hidden;position:absolute;outline:0}.tagchecklist .ntdelbutton:before{content:"\f153";display:block;margin:2px 0;height:20px;width:20px;background:100% 0;color:#9ea7af;font:400 16px/1 dashicons;text-align:center;speak:none;-webkit-font-smoothing:antialiased}.tagchecklist .ntdelbutton:focus:before{color:#00a0d2}.tagsdiv+p{margin:0}.press-this .tagcloud-link{display:block;margin:0 16px 5px;padding:0;text-decoration:none;outline:0}.tagcloud-link:focus{text-decoration:underline}.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}.popular-tags a{padding:0 3px}.the-tagcloud{margin:0;padding:16px}.the-tagcloud a{text-decoration:none;outline:0}.the-tagcloud a:focus{text-decoration:underline}.tagcloud h3{margin:2px 0 12px}.add-category-name,input[type=search].categories-search{display:block;width:100%;padding:.85714em 1.07143em;border:0;-webkit-border-radius:0;border-radius:0;border-bottom:1px solid #e5e5e5;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (max-width:600px){.add-category-name,input[type=search].categories-search{font-size:16px}}.press-this .add-cat-toggle{float:left;margin-top:-45px;line-height:20px;padding:12px 10px 8px;color:#0073aa}.press-this .add-cat-toggle:focus{text-decoration:none;color:#00a0d2}.press-this .add-cat-toggle.is-toggled{padding:10px}.press-this .add-cat-toggle.is-toggled .dashicons:before{content:"\f179"}.add-category{border-bottom:1px solid #e5e5e5}.add-category.is-hidden{display:none}.add-category .add-cat-submit{position:absolute;top:0;left:0;border:0;-webkit-border-radius:0;border-radius:0;padding:12px 16px;background:#f7f7f7;border-right:1px solid #f1f1f1}.add-category .add-cat-submit:active,.add-category .add-cat-submit:focus,.add-category .add-cat-submit:hover{outline:0;background:#2991b7;border-color:#20708e;color:#fff}.postform-wrapper{padding:12px}.postform{display:block;margin:0;width:100%;height:34px;-webkit-border-radius:0;border-radius:0;border:1px solid #e5e5e5;background:#fff;-webkit-background-size:20px 20px;background-size:20px 20px;overflow:hidden;line-height:21px;text-decoration:none;cursor:pointer;outline:0}.postform:focus{border-color:#0073aa;-webkit-box-shadow:0 0 0 3px #00a0d2;box-shadow:0 0 0 3px #00a0d2;outline:0;-moz-outline:none;-moz-user-focus:ignore}.alert,.scan{border-bottom:1px solid #e5e5e5}.postform::-ms-expand{display:none}.postform::-ms-value{background:0 0;color:#727272}.postform:-moz-focusring{color:transparent;text-shadow:0 0 0 #727272}.categories-select,.categories-select ul{margin:0;padding:0;list-style:none}.category{position:relative;display:block;padding:13px 16px 14px;cursor:pointer;background:#fff}.category.selected:focus,.category:focus{outline:0;background:#00a0d2;color:#fff}.category.selected{-webkit-box-shadow:inset -6px 0 0 #00a0d2;box-shadow:inset -6px 0 0 #00a0d2;background:#E9F5F9}.category.selected:after{display:inline-block;content:"\f147";position:absolute;top:13px;left:0;width:20px;height:20px;margin-left:10px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;color:#23282d;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.category.selected:focus:after{color:#fff}.categories-select ul .category{padding-right:24px}.categories-select ul ul .category{padding-right:32px}.categories-select ul ul ul .category{padding-right:40px}.categories-select ul ul ul ul .category{padding-right:48px}.categories-select ul ul ul ul ul .category{padding-right:56px}.categories-select ul ul ul ul ul ul .category{padding-right:64px}.categories-select .is-hidden{display:none}.categories-select .is-hidden.searched-parent{display:block}.categories-search-wrapper{position:relative}.categories-search-wrapper.is-hidden{display:none}.categories-search-wrapper label{position:absolute;top:50%;left:10px;margin-top:-10px;color:#9ea7af}html{overflow:auto;background:#fff;-webkit-box-shadow:10px 0 0 rgba(0,0,0,.3);box-shadow:10px 0 0 rgba(0,0,0,.3)}body{overflow-x:hidden;height:100%}@media (max-width:900px){body{font-size:16px}}@media (max-width:320px){body{font-size:14px}}.lt-ie9{overflow:visible}.adminbar{position:relative;width:100%;padding:0 .8em;min-height:3.2em;background:#23282d;color:#fff;z-index:9999}.adminbar:after,.adminbar:before{content:"";display:table}.adminbar:after{clear:both}.adminbar .dashicons{color:#a0a5aa}.press-this .adminbar button{position:absolute;top:50%;left:6px;margin-top:-13px;padding:0 10px 1px;font-size:13px}.current-site{margin-top:.5625em;font-size:16px;line-height:44px;font-weight:400;overflow:hidden}@media (max-width:600px){.current-site{margin:3px 0 0}}.current-site-link{text-decoration:none}.current-site-link:focus{outline:0}.current-site-link:focus .current-site-name{text-decoration:underline}.current-site-name{color:#ededed}@media (max-width:320px){.adminbar{min-height:45px}.current-site{margin:0;font-size:14px}.current-site-name{font-weight:600}}.current-site .dashicons-wordpress{position:relative;top:-1px;margin-left:10px;vertical-align:middle}.options,.options.closed .on-open,.options.open .on-closed{display:none}@media (max-width:900px){.options{display:block}.scan form{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.scan.is-hidden form{opacity:.2;pointer-events:none}}.options-panel-back.is-hidden{display:none}.options:focus .dashicons{color:#fff;text-decoration:none}.options .dashicons{margin-top:3px}.options{color:#00a0d2}.alert{position:relative;margin:0;padding:16px 50px;font-size:14px}.alert:before{content:"";position:absolute;top:50%;right:30px;width:8px;height:8px;margin-top:-4px;-webkit-border-radius:50%;border-radius:50%;background:#00a0d2}@media (max-width:600px){.alert{padding:16px 35px}.alert:before{right:15px}}.alert.is-error:before{background:red}.scan{position:relative}.scan-url{display:block;border:0;padding:.85714em 1.07143em;font-size:14px;width:100%}@media (max-width:600px){.scan-url{font-size:16px}}.scan-submit{position:absolute;top:0;left:0;bottom:0;padding:0 1.07143em;background:#f7f7f7;border:0;border-right:1px solid #f1f1f1;-webkit-border-radius:0;border-radius:0;color:#555;font-size:14px;line-height:1.6}.scan-submit:focus,.scan-submit:hover{background:#008ec2;border-color:#006799;color:#fff;outline:0}.scan-submit:active{background:#0073aa;border-color:#006799;color:#fff}.scan-submit:visited{color:#555}.wrapper{position:relative;margin-bottom:60px;margin-left:320px}.wrapper:after,.wrapper:before{content:"";display:table}.wrapper:after{clear:both}@media (max-width:900px){.wrapper{margin:0;width:100%}}.editor-wrapper{overflow:auto;float:right;width:100%}.editor-wrapper:after,.editor-wrapper:before{content:"";display:table}.editor-wrapper:after{clear:both}.editor{padding:0 1.5em 4.75em;max-width:700px;margin:0 auto}.spinner{height:20px;width:20px;display:inline-block;visibility:hidden;background:url(../images/spinner.gif) center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;opacity:.7;filter:alpha(opacity=70);line-height:1;vertical-align:middle}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}.spinner.is-active{visibility:visible}@media (min-width:901px){.editor{max-width:760px}}@media (max-width:320px){.editor{padding:0}}.post-title,.post-title-placeholder{margin:0;padding:.83em 0;width:100%;border-bottom:1px solid #e5e5e5;font-size:32px;line-height:1.4;font-weight:700}.post-title-placeholder:active,.post-title-placeholder:focus,.post-title:active,.post-title:focus{outline:0;-webkit-box-shadow:inset 0 -3px 0 #00a0d2;box-shadow:inset 0 -3px 0 #00a0d2;border-color:#00a0d2}@media (max-width:900px){.post-title,.post-title-placeholder{font-size:24px}}@media (max-height:400px){.post-title,.post-title-placeholder{padding:15px 0;font-size:16px}}@media (max-width:320px){.post-title,.post-title-placeholder{font-size:16px;font-weight:600;padding:1.14286em 1.42857em}}.post-title{background:url(data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///////wAAACH5BAEHAAIALAAAAAABAAEAAAICVAEAOw==);background:0 0,none}.post-title:before{content:"\a0";display:inline-block;width:0;speak:none}.post-title-placeholder{position:absolute;border:0;color:#82878c;z-index:-1}.post-title-placeholder.is-hidden{display:none}.media-list-container{position:relative;padding:2px 0;border-bottom:1px solid #e5e5e5;display:none}.media-list-inner-container{overflow:auto;max-height:150px;max-height:40vw}.media-list-container.has-media{display:block}.media-list-inner-container:after,.media-list-inner-container:before{content:"";display:table}.media-list-inner-container:after{clear:both}.media-list{margin:0;padding:0}@media (min-width:321px){.media-list-inner-container{max-height:250px;max-height:40vw}}.wppt-all-media-list{list-style:none;margin:0;padding:0}.is-embed:focus,.suggested-media-thumbnail:focus{outline:0;-webkit-box-shadow:inset 0 0 0 3px #00a0d2;box-shadow:inset 0 0 0 3px #00a0d2}.suggested-media-thumbnail{position:relative;display:block;float:right;width:16.66%;padding:16.66% 16.66% 0 0;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;background-color:#d8d8d8;color:#fff;color:rgba(255,255,255,.6);cursor:pointer}.suggested-media-thumbnail:active,.suggested-media-thumbnail:focus,.suggested-media-thumbnail:hover{color:#fff}.suggested-media-thumbnail:after,.suggested-media-thumbnail:before{display:inline-block;position:absolute;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.suggested-media-thumbnail:before{right:50%;top:50%;margin:-20px -20px 0 0;font-size:40px}.suggested-media-thumbnail:after{content:"\f132";left:3%;bottom:2%}@media (min-width:601px){.media-list-inner-container{max-height:200px;max-height:18.75vw}.suggested-media-thumbnail{width:12.5%;padding:12.5% 12.5% 0 0}}.is-embed:before{content:"\f104";color:#fff;color:rgba(255,255,255,.9)}.is-embed.is-audio:active:before,.is-embed.is-audio:focus:before,.is-embed.is-audio:hover:before,.is-embed.is-tweet:active:before,.is-embed.is-tweet:focus:before,.is-embed.is-tweet:hover:before{color:#fff}.is-embed.is-video{background-color:#23282d}.is-embed.is-video:active:before,.is-embed.is-video:focus:before,.is-embed.is-video:hover:before{color:rgba(255,255,255,.2)}.is-embed.is-video:before{content:"\f236"}.is-embed.is-audio{background-color:#ff7d44}.is-embed.is-audio:before{content:"\f127"}.is-embed.is-tweet{background-color:#55acee}.is-embed.is-tweet:before{content:"\f301"}.no-media{margin:0;padding:0;border:0}.press-this-actions{position:fixed;bottom:0;right:0;width:100%;background:#f1f1f1;background:rgba(241,241,241,.9);border-top:1px solid #e5e5e5}.add-media{float:right;margin:14px 30px 14px 0;font-size:0}@media (max-width:320px){.add-media{margin:10px 10px 10px 0}}.insert-media{color:#9ea7af;float:right;margin:0;padding:0;border:0;border-left:1px solid #e5e5e5;-webkit-border-radius:0;border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.insert-media:active,.insert-media:focus,.insert-media:hover{margin:0;background:0 0;border-color:#e5e5e5;color:#23282d}.insert-media:active,.insert-media:focus{outline:0;color:#00a0d2;text-decoration:none}.insert-media .dashicons{padding:11px;width:63px;height:58px;font-size:40px}@media (max-width:320px){.insert-media .dashicons{width:55px;height:49px;padding:14px;font-size:20px}}#wp-link-wrap,.post-actions{font-size:13px}.post-actions{float:left;margin:14px 0 14px 30px}@media (max-width:320px){.post-actions{margin:10px 0 10px 10px}}.publish-button .saving-draft,.publish-button.is-saving .publish{display:none}.publish-button.is-saving .saving-draft{display:inline}.editor .wp-media-buttons{float:none}.editor div.mce-toolbar-grp{padding:.71429em 0;background:0 0;border:0}@media (max-height:400px),(max-width:320px){.editor div.mce-toolbar-grp{padding:0}}.mce-stack-layout:after,.mce-stack-layout:before{content:"";display:table}.mce-stack-layout:after{clear:both}.mce-container.mce-toolbar{float:right}.mce-container.mce-toolbar:nth-child(2){float:left}@media (max-width:600px){.mce-first .mce-btn:nth-child(3),.mce-first .mce-btn:nth-child(4){position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.mce-first .mce-btn:nth-child(3):focus,.mce-first .mce-btn:nth-child(4):focus{position:static;margin:1px;padding:inherit;height:auto;width:auto;overflow:visible;clip:auto;border:1px solid #999}}#wp-link-wrap input[type=text]{padding:3px 5px;margin:1px}@media screen and (max-width:782px){#wp-link-wrap{font-size:14px}#wp-link-wrap input[type=text]{padding:6px 10px}}#wp-link-wrap .howto{color:#666;font-style:italic}.options-panel{position:relative;float:left;margin-left:-320px;width:320px;border-right:1px solid #e5e5e5;font-size:14px;-webkit-box-shadow:-5001px 5000px 0 5000px #fff,-5000px 5000px 0 5000px #e5e5e5;box-shadow:-5001px 5000px 0 5000px #fff,-5000px 5000px 0 5000px #e5e5e5;outline:0}.options-panel-back{position:absolute;top:0;left:0;bottom:0;width:320px;outline:0}@media (max-width:900px){.press-this-actions{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.press-this-actions.is-hidden{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.options-panel{background:#fff;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.options-panel.is-hidden{visibility:hidden}.options-panel.is-off-screen{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}@media (max-width:320px){.options-panel{margin-left:-100%;width:100%;border:0;-webkit-box-shadow:-5001px 5000px 0 5000px #fff;box-shadow:-5001px 5000px 0 5000px #fff}.options-panel-back{width:100%}}.post-options{background:#fff;position:absolute;left:0;width:100%;overflow-x:hidden}.post-options .post-option-contents{margin-right:3px;color:#32373c}.post-option-forward:before{position:absolute;top:50%;left:8px;margin-top:-10px;content:"\f341"}.post-option,.setting-modal,.setting-title{position:relative}.post-option-back:before{content:"\f345"}.lt-ie9 .options-panel,.lt-ie9 .post-options{border-right:1px solid #e5e5e5}.lt-ie9 .post-options.is-off-screen{border:0}.post-options .post-option{display:block;width:100%;padding:13px 14px 13px 37px;border-bottom:1px solid #e5e5e5;text-decoration:none;text-align:right;color:#9ea7af;overflow:hidden;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.post-options .post-option:focus{outline:0;-webkit-box-shadow:inset -5px 0 0 #00a0d2;box-shadow:inset -5px 0 0 #00a0d2;border-color:#e5e5e5}.is-off-screen>.post-option{left:100%}.is-hidden>.post-option{visibility:hidden}.post-option-title{display:inline-block;margin:0 8px 0 0;font-size:14px;font-weight:400}.setting-modal{top:0;right:0;width:100%;overflow:hidden;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.setting-modal.is-hidden{visibility:hidden;height:0}.setting-modal.is-off-screen{right:100%}@media (min-width:1px){.is-off-screen>.post-option{left:auto;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.setting-modal.is-off-screen{right:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}}.press-this .modal-close{display:block;width:100%;padding:13px 14px;border-bottom:1px solid #e5e5e5;color:#00a0d2;text-decoration:none;text-align:right}.press-this .modal-close:focus{outline:0;-webkit-box-shadow:inset -5px 0 0 #00a0d2;box-shadow:inset -5px 0 0 #00a0d2;border-color:#e5e5e5}.setting-title{top:-1px;margin-right:11px}#pressthis{color:#404040;resize:none;padding-top:30px;font-size:16px}.wp-editor-wrap .quicktags-toolbar{background:0 0;border:none}.wp-editor-wrap .wp-editor-tools{z-index:0}.wp-editor-wrap .wp-editor-tabs{padding:2px}.wp-editor-wrap .wp-switch-editor{top:0;margin:3px 5px 0 0;padding:3px 8px;background:#f5f5f5;color:#555;border-color:#ccc}.wp-editor-wrap .wp-switch-editor:hover{background:#fafafa;border-color:#999;color:#23282d}.wp-editor-wrap.html-active .switch-html,.wp-editor-wrap.tmce-active .switch-tmce{background:#fff;border-color:#d8d8d8}.wp-link-input input{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right}.ui-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}
\ No newline at end of file
+body,fieldset{margin:0}.screen-reader-text,fieldset,legend,td,th{padding:0}.scan-submit,.split-button-primary,.split-button-toggle{text-decoration:none;-webkit-appearance:none;cursor:pointer}.current-site,.post-options .post-option,.postform{text-overflow:ellipsis;white-space:nowrap}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi){*,:after,:before{-webkit-font-smoothing:antialiased}}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}fieldset,img,legend{border:0}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.hide-if-js{display:none}.screen-reader-text{position:absolute;margin:-1px;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}body,button,input,select,textarea{color:#404040;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-weight:400;line-height:1.6}b,dt,strong{font-weight:700}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}.scan-submit{display:inline-block;margin:0;white-space:nowrap}.split-button{position:relative;display:inline-block;vertical-align:middle}.split-button-body{display:none;position:absolute;bottom:39px;left:0;border:1px solid #ddd;background-color:#fff;min-width:180px;max-width:100%;margin:0;padding:8px;list-style:none;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,.15);box-shadow:-1px 0 4px rgba(0,0,0,.15)}.split-button-body:after,.split-button-body:before{position:absolute;left:12px;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.split-button-body:before{bottom:-18px;border-top-color:#ccc;border-width:9px;left:11px}.split-button-body:after{bottom:-16px;border-top-color:#fff;border-width:8px}.split-button-body .split-button-option{display:block;padding:5px 15px;margin:0;width:100%;text-align:right;line-height:2}.is-open .split-button-body{display:block}.split-button-primary,.split-button-toggle{-webkit-border-radius:0;border-radius:0;display:block;margin:0;font-size:13px;white-space:nowrap;line-height:2;padding:0 10px 1px;background:#0085ba;border-color:#0073aa #006799 #006799;border-width:1px;border-style:solid;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-shadow:0 -1px 1px #006799,-1px 0 1px #006799,0 1px 1px #006799,1px 0 1px #006799}.split-button-primary{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border-left:0 none;float:right}.split-button-toggle{padding:0;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border-right:1px solid #006799;float:left}.split-button-toggle i{margin:4px 0 3px 20px;padding:0 10px}.split-button-primary:hover,.split-button-toggle:hover{outline:0;background:#008ec2;border-color:#006799}.split-button-primary:focus,.split-button-toggle:focus{outline:0;-webkit-box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.split-button-primary:active,.split-button-toggle:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 10px #006799,0 1px 0 #0073aa;box-shadow:inset 0 2px 10px #006799,0 1px 0 #0073aa}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.postform,textarea{vertical-align:top}[type=checkbox],[type=radio]{padding:0}[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}[type=text],[type=email],[type=url],[type=password],[type=search],textarea{padding:.4em .75em;color:#32373c;border:1px solid #ccc}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=search]:focus,textarea:focus{color:#32373c;outline:0}textarea{overflow:auto;padding-right:3px}a,a:visited{color:#0073aa}a:active,a:focus,a:hover{color:#00a0d2}ol,ul{margin:0 3em 1.5em 0}ul{list-style:disc}ol{list-style:decimal}li>ol,li>ul{margin-bottom:0;margin-right:1.5em}dd{margin:0 1.5em 1.5em}#post-formats-select br{display:none}.post-format{width:1px;height:1px;position:absolute;top:-9999px}.lt-ie9 .post-format{margin:17px 13px 0 12px;position:static;top:auto;float:right;width:16px;height:16px}.add-category,.post-format-icon,.tagsdiv .ajaxtag,.tagsdiv .newtag{position:relative}.post-format-icon{display:block;padding:13px 13px 14px 2px;cursor:pointer}.post-format-icon:after,.post-format-icon:before{content:"";display:inline-block;width:20px;height:20px;margin-left:10px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;color:#9ea7af;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before{content:"\f109"}.post-format-icon:after{display:none;content:"\f147";float:left}.post-format:checked+.post-format-icon{-webkit-box-shadow:inset -6px 0 0 #00a0d2;box-shadow:inset -6px 0 0 #00a0d2;background:rgba(46,162,204,.1)}.post-format:checked+.post-format-icon:after,.post-format:checked+.post-format-icon:before{color:#32373c}.post-format:focus+.post-format-icon{background:#00a0d2;color:#fff}.post-format:focus+.post-format-icon:after,.post-format:focus+.post-format-icon:before{color:#fff}.post-format:checked+.post-format-icon:after{display:block}.lt-ie9 .post-format-icon{margin-right:16px}.post-format-aside:before{content:"\f123"}.post-format-image:before{content:"\f128"}.post-format-video:before{content:"\f126"}.post-format-audio:before{content:"\f127"}.post-format-quote:before{content:"\f122"}.post-format-link:before{content:"\f103"}.post-format-gallery:before{content:"\f161"}.tagsdiv p{margin:0}.tagsdiv .newtag{display:block;padding:11px 16px 11px 58px;width:100%;border:0;border-bottom:1px solid #e5e5e5;font-size:16px}.tagsdiv .tagadd{position:absolute;top:0;left:0;bottom:1px;border:0;-webkit-border-radius:0;border-radius:0;margin:0;padding:0 16px;background:#f7f7f7;border-right:1px solid #f1f1f1;-webkit-box-shadow:none;box-shadow:none}.tagsdiv .tagadd:active,.tagsdiv .tagadd:focus,.tagsdiv .tagadd:hover{outline:0;background:#2991b7;border-color:#20708e;color:#fff;-webkit-box-shadow:none;box-shadow:none}.tagsdiv .howto{color:#727272;font-style:italic;margin:10px 16px 6px 0}.tagchecklist{padding:16px 28px 5px}.tagchecklist:after,.tagchecklist:before{content:"";display:table}.tagchecklist:after{clear:both}.tagchecklist>span{float:right;margin-left:25px;font-size:13px;line-height:1.8;white-space:nowrap;cursor:default}@media (max-width:600px){.tagchecklist>span{margin-bottom:15px;font-size:16px;line-height:1.3}}.tagchecklist .ntdelbutton{width:24px;height:24px;border:none;margin:0 -19px 0 0;padding:0;background:0 0;cursor:pointer;text-indent:0;position:absolute}.tagchecklist .ntdelbutton .remove-tag-icon:before{content:"\f153";display:block;margin-right:2px;height:20px;width:20px;-webkit-border-radius:50%;border-radius:50%;background:0 0;color:#0073aa;font:400 16px/1.28 dashicons;text-align:center;-webkit-font-smoothing:antialiased}.tagchecklist .ntdelbutton:focus{outline:0}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before{color:#c00}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.tagsdiv+p{margin:0}.press-this .tagcloud-link{display:block;margin:0 16px 5px;padding:0;text-decoration:none;outline:0}.tagcloud-link:focus{text-decoration:underline}.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}.popular-tags a{padding:0 3px}.the-tagcloud{margin:0;padding:16px}.the-tagcloud a{text-decoration:none;outline:0}.the-tagcloud a:focus{text-decoration:underline}.tagcloud h3{margin:2px 0 12px}.add-category-name,input[type=search].categories-search{display:block;width:100%;padding:.85714em 1.07143em;border:0;-webkit-border-radius:0;border-radius:0;border-bottom:1px solid #e5e5e5;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (max-width:600px){.add-category-name,input[type=search].categories-search{font-size:16px}}.press-this .add-cat-toggle{float:left;margin-top:-45px;line-height:20px;padding:12px 10px 8px;color:#0073aa}.press-this .add-cat-toggle:focus{text-decoration:none;color:#00a0d2}.press-this .add-cat-toggle.is-toggled{padding:10px}.press-this .add-cat-toggle.is-toggled .dashicons:before{content:"\f179"}.add-category{border-bottom:1px solid #e5e5e5}.add-category.is-hidden{display:none}.add-category .add-cat-submit{position:absolute;top:0;left:0;border:0;-webkit-border-radius:0;border-radius:0;padding:12px 16px;background:#f7f7f7;border-right:1px solid #f1f1f1}.add-category .add-cat-submit:active,.add-category .add-cat-submit:focus,.add-category .add-cat-submit:hover{outline:0;background:#2991b7;border-color:#20708e;color:#fff}.postform-wrapper{padding:12px}.postform{display:block;margin:0;width:100%;height:34px;-webkit-border-radius:0;border-radius:0;border:1px solid #e5e5e5;background:#fff;-webkit-background-size:20px 20px;background-size:20px 20px;overflow:hidden;line-height:21px;text-decoration:none;cursor:pointer;outline:0}.postform:focus{border-color:#0073aa;-webkit-box-shadow:0 0 0 3px #00a0d2;box-shadow:0 0 0 3px #00a0d2;outline:0;-moz-outline:none;-moz-user-focus:ignore}.alert,.scan{border-bottom:1px solid #e5e5e5}.postform::-ms-expand{display:none}.postform::-ms-value{background:0 0;color:#727272}.postform:-moz-focusring{color:transparent;text-shadow:0 0 0 #727272}.categories-select,.categories-select ul{margin:0;padding:0;list-style:none}.category{position:relative;display:block;padding:13px 16px 14px;cursor:pointer;background:#fff}.category.selected:focus,.category:focus{outline:0;background:#00a0d2;color:#fff}.category.selected{-webkit-box-shadow:inset -6px 0 0 #00a0d2;box-shadow:inset -6px 0 0 #00a0d2;background:#E9F5F9}.category.selected:after{display:inline-block;content:"\f147";position:absolute;top:13px;left:0;width:20px;height:20px;margin-left:10px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;color:#23282d;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.category.selected:focus:after{color:#fff}.categories-select ul .category{padding-right:24px}.categories-select ul ul .category{padding-right:32px}.categories-select ul ul ul .category{padding-right:40px}.categories-select ul ul ul ul .category{padding-right:48px}.categories-select ul ul ul ul ul .category{padding-right:56px}.categories-select ul ul ul ul ul ul .category{padding-right:64px}.categories-select .is-hidden{display:none}.categories-select .is-hidden.searched-parent{display:block}.categories-search-wrapper{position:relative}.categories-search-wrapper.is-hidden{display:none}.categories-search-wrapper label{position:absolute;top:50%;left:10px;margin-top:-10px;color:#9ea7af}html{overflow:auto;background:#fff;-webkit-box-shadow:10px 0 0 rgba(0,0,0,.3);box-shadow:10px 0 0 rgba(0,0,0,.3)}body{overflow-x:hidden;height:100%}@media (max-width:900px){body{font-size:16px}}@media (max-width:320px){body{font-size:14px}}.lt-ie9{overflow:visible}.adminbar{position:relative;width:100%;padding:0 .8em;min-height:3.2em;background:#23282d;color:#fff;z-index:9999}.adminbar:after,.adminbar:before{content:"";display:table}.adminbar:after{clear:both}.adminbar .dashicons{color:#a0a5aa}.press-this .adminbar button{position:absolute;top:50%;left:6px;margin-top:-13px;padding:0 10px 1px;font-size:13px}.current-site{margin-top:.5625em;font-size:16px;line-height:44px;font-weight:400;overflow:hidden}@media (max-width:600px){.current-site{margin:3px 0 0}}.current-site-link{text-decoration:none}.current-site-link:focus{outline:0}.current-site-link:focus .current-site-name{text-decoration:underline}.current-site-name{color:#ededed}@media (max-width:320px){.adminbar{min-height:45px}.current-site{margin:0;font-size:14px}.current-site-name{font-weight:600}}.current-site .dashicons-wordpress{position:relative;top:-1px;margin-left:10px;vertical-align:middle}.options,.options.closed .on-open,.options.open .on-closed{display:none}@media (max-width:900px){.options{display:block}.scan form{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.scan.is-hidden form{opacity:.2;pointer-events:none}}.options-panel-back.is-hidden{display:none}.options:focus .dashicons{color:#fff;text-decoration:none}.options .dashicons{margin-top:3px}.options{color:#00a0d2}.alert{position:relative;margin:0;padding:16px 50px;font-size:14px}.alert:before{content:"";position:absolute;top:50%;right:30px;width:8px;height:8px;margin-top:-4px;-webkit-border-radius:50%;border-radius:50%;background:#00a0d2}@media (max-width:600px){.alert{padding:16px 35px}.alert:before{right:15px}}.alert.is-error:before{background:red}.scan{position:relative}.scan-url{display:block;border:0;padding:.85714em 1.07143em;font-size:14px;width:100%}@media (max-width:600px){.scan-url{font-size:16px}}.scan-submit{position:absolute;top:0;left:0;bottom:0;padding:0 1.07143em;background:#f7f7f7;border:0;border-right:1px solid #f1f1f1;-webkit-border-radius:0;border-radius:0;color:#555;font-size:14px;line-height:1.6}.scan-submit:focus,.scan-submit:hover{background:#008ec2;border-color:#006799;color:#fff;outline:0}.scan-submit:active{background:#0073aa;border-color:#006799;color:#fff}.scan-submit:visited{color:#555}.wrapper{position:relative;margin-bottom:60px;margin-left:320px}.wrapper:after,.wrapper:before{content:"";display:table}.wrapper:after{clear:both}@media (max-width:900px){.wrapper{margin:0;width:100%}}.editor-wrapper{overflow:auto;float:right;width:100%}.editor-wrapper:after,.editor-wrapper:before{content:"";display:table}.editor-wrapper:after{clear:both}.editor{padding:0 1.5em 4.75em;max-width:700px;margin:0 auto}.spinner{height:20px;width:20px;display:inline-block;visibility:hidden;background:url(../images/spinner.gif) center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;opacity:.7;filter:alpha(opacity=70);line-height:1;vertical-align:middle}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}.spinner.is-active{visibility:visible}@media (min-width:901px){.editor{max-width:760px}}@media (max-width:320px){.editor{padding:0}}.post-title,.post-title-placeholder{margin:0;padding:.83em 0;width:100%;border-bottom:1px solid #e5e5e5;font-size:32px;line-height:1.4;font-weight:700}.post-title-placeholder:active,.post-title-placeholder:focus,.post-title:active,.post-title:focus{outline:0;-webkit-box-shadow:inset 0 -3px 0 #00a0d2;box-shadow:inset 0 -3px 0 #00a0d2;border-color:#00a0d2}@media (max-width:900px){.post-title,.post-title-placeholder{font-size:24px}}@media (max-height:400px){.post-title,.post-title-placeholder{padding:15px 0;font-size:16px}}@media (max-width:320px){.post-title,.post-title-placeholder{font-size:16px;font-weight:600;padding:1.14286em 1.42857em}}.post-title{background:url(data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///////wAAACH5BAEHAAIALAAAAAABAAEAAAICVAEAOw==);background:0 0,none}.post-title:before{content:"\a0";display:inline-block;width:0;speak:none}.post-title-placeholder{position:absolute;border:0;color:#82878c;z-index:-1}.post-title-placeholder.is-hidden{display:none}.media-list-container{position:relative;padding:2px 0;border-bottom:1px solid #e5e5e5;display:none}.media-list-inner-container{overflow:auto;max-height:150px;max-height:40vw}.media-list-container.has-media{display:block}.media-list-inner-container:after,.media-list-inner-container:before{content:"";display:table}.media-list-inner-container:after{clear:both}.media-list{margin:0;padding:0}@media (min-width:321px){.media-list-inner-container{max-height:250px;max-height:40vw}}.wppt-all-media-list{list-style:none;margin:0;padding:0}.is-embed:focus,.suggested-media-thumbnail:focus{outline:0;-webkit-box-shadow:inset 0 0 0 3px #00a0d2;box-shadow:inset 0 0 0 3px #00a0d2}.suggested-media-thumbnail{position:relative;display:block;float:right;width:16.66%;padding:16.66% 16.66% 0 0;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;background-color:#d8d8d8;color:#fff;color:rgba(255,255,255,.6);cursor:pointer}.suggested-media-thumbnail:active,.suggested-media-thumbnail:focus,.suggested-media-thumbnail:hover{color:#fff}.suggested-media-thumbnail:after,.suggested-media-thumbnail:before{display:inline-block;position:absolute;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.suggested-media-thumbnail:before{right:50%;top:50%;margin:-20px -20px 0 0;font-size:40px}.suggested-media-thumbnail:after{content:"\f132";left:3%;bottom:2%}@media (min-width:601px){.media-list-inner-container{max-height:200px;max-height:18.75vw}.suggested-media-thumbnail{width:12.5%;padding:12.5% 12.5% 0 0}}.is-embed:before{content:"\f104";color:#fff;color:rgba(255,255,255,.9)}.is-embed.is-audio:active:before,.is-embed.is-audio:focus:before,.is-embed.is-audio:hover:before,.is-embed.is-tweet:active:before,.is-embed.is-tweet:focus:before,.is-embed.is-tweet:hover:before{color:#fff}.is-embed.is-video{background-color:#23282d}.is-embed.is-video:active:before,.is-embed.is-video:focus:before,.is-embed.is-video:hover:before{color:rgba(255,255,255,.2)}.is-embed.is-video:before{content:"\f236"}.is-embed.is-audio{background-color:#ff7d44}.is-embed.is-audio:before{content:"\f127"}.is-embed.is-tweet{background-color:#55acee}.is-embed.is-tweet:before{content:"\f301"}.no-media{margin:0;padding:0;border:0}.press-this-actions{position:fixed;bottom:0;right:0;width:100%;background:#f1f1f1;background:rgba(241,241,241,.9);border-top:1px solid #e5e5e5}.add-media{float:right;margin:14px 30px 14px 0;font-size:0}@media (max-width:320px){.add-media{margin:10px 10px 10px 0}}.insert-media{color:#9ea7af;float:right;margin:0;padding:0;border:0;border-left:1px solid #e5e5e5;-webkit-border-radius:0;border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.insert-media:active,.insert-media:focus,.insert-media:hover{margin:0;background:0 0;border-color:#e5e5e5;color:#23282d}.insert-media:active,.insert-media:focus{outline:0;color:#00a0d2;text-decoration:none}.insert-media .dashicons{padding:11px;width:63px;height:58px;font-size:40px}@media (max-width:320px){.insert-media .dashicons{width:55px;height:49px;padding:14px;font-size:20px}}#wp-link-wrap,.post-actions{font-size:13px}.post-actions{float:left;margin:14px 0 14px 30px}@media (max-width:320px){.post-actions{margin:10px 0 10px 10px}}.publish-button .saving-draft,.publish-button.is-saving .publish{display:none}.publish-button.is-saving .saving-draft{display:inline}.editor .wp-media-buttons{float:none}.editor div.mce-toolbar-grp{padding:.71429em 0;background:0 0;border:0}@media (max-height:400px),(max-width:320px){.editor div.mce-toolbar-grp{padding:0}}.mce-stack-layout:after,.mce-stack-layout:before{content:"";display:table}.mce-stack-layout:after{clear:both}.mce-container.mce-toolbar{float:right}.mce-container.mce-toolbar:nth-child(2){float:left}@media (max-width:600px){.mce-first .mce-btn:nth-child(3),.mce-first .mce-btn:nth-child(4){position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.mce-first .mce-btn:nth-child(3):focus,.mce-first .mce-btn:nth-child(4):focus{position:static;margin:1px;padding:inherit;height:auto;width:auto;overflow:visible;clip:auto;border:1px solid #999}}#wp-link-wrap input[type=text]{padding:3px 5px;margin:1px}@media screen and (max-width:782px){#wp-link-wrap{font-size:14px}#wp-link-wrap input[type=text]{padding:6px 10px}}#wp-link-wrap .howto{color:#666;font-style:italic}.options-panel{position:relative;float:left;margin-left:-320px;width:320px;border-right:1px solid #e5e5e5;font-size:14px;-webkit-box-shadow:-5001px 5000px 0 5000px #fff,-5000px 5000px 0 5000px #e5e5e5;box-shadow:-5001px 5000px 0 5000px #fff,-5000px 5000px 0 5000px #e5e5e5;outline:0}.options-panel-back{position:absolute;top:0;left:0;bottom:0;width:320px;outline:0}@media (max-width:900px){.press-this-actions{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.press-this-actions.is-hidden{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.options-panel{background:#fff;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.options-panel.is-hidden{visibility:hidden}.options-panel.is-off-screen{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}@media (max-width:320px){.options-panel{margin-left:-100%;width:100%;border:0;-webkit-box-shadow:-5001px 5000px 0 5000px #fff;box-shadow:-5001px 5000px 0 5000px #fff}.options-panel-back{width:100%}}.post-options{background:#fff;position:absolute;left:0;width:100%;overflow-x:hidden}.post-options .post-option-contents{margin-right:3px;color:#32373c}.post-option-forward:before{position:absolute;top:50%;left:8px;margin-top:-10px;content:"\f341"}.post-option,.setting-modal,.setting-title{position:relative}.post-option-back:before{content:"\f345"}.lt-ie9 .options-panel,.lt-ie9 .post-options{border-right:1px solid #e5e5e5}.lt-ie9 .post-options.is-off-screen{border:0}.post-options .post-option{display:block;width:100%;padding:13px 14px 13px 37px;border-bottom:1px solid #e5e5e5;text-decoration:none;text-align:right;color:#9ea7af;overflow:hidden;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.post-options .post-option:focus{outline:0;-webkit-box-shadow:inset -5px 0 0 #00a0d2;box-shadow:inset -5px 0 0 #00a0d2;border-color:#e5e5e5}.is-off-screen>.post-option{left:100%}.is-hidden>.post-option{visibility:hidden}.post-option-title{display:inline-block;margin:0 8px 0 0;font-size:14px;font-weight:400}.setting-modal{top:0;right:0;width:100%;overflow:hidden;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.setting-modal.is-hidden{visibility:hidden;height:0}.setting-modal.is-off-screen{right:100%}@media (min-width:1px){.is-off-screen>.post-option{left:auto;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.setting-modal.is-off-screen{right:0;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}}.press-this .modal-close{display:block;width:100%;padding:13px 14px;border-bottom:1px solid #e5e5e5;color:#00a0d2;text-decoration:none;text-align:right}.press-this .modal-close:focus{outline:0;-webkit-box-shadow:inset -5px 0 0 #00a0d2;box-shadow:inset -5px 0 0 #00a0d2;border-color:#e5e5e5}.setting-title{top:-1px;margin-right:11px}#pressthis{color:#404040;resize:none;padding-top:30px;font-size:16px}.wp-editor-wrap .quicktags-toolbar{background:0 0;border:none}.wp-editor-wrap .wp-editor-tools{z-index:0}.wp-editor-wrap .wp-editor-tabs{padding:2px}.wp-editor-wrap .wp-switch-editor{top:0;margin:3px 5px 0 0;padding:3px 8px;background:#f5f5f5;color:#555;border-color:#ccc}.wp-editor-wrap .wp-switch-editor:hover{background:#fafafa;border-color:#999;color:#23282d}.wp-editor-wrap.html-active .switch-html,.wp-editor-wrap.tmce-active .switch-tmce{background:#fff;border-color:#d8d8d8}.wp-link-input input{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff;font-size:14px}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}
\ No newline at end of file
diff --git a/wp-admin/css/press-this.css b/wp-admin/css/press-this.css
index 1ec3ba06b..36b988814 100644
--- a/wp-admin/css/press-this.css
+++ b/wp-admin/css/press-this.css
@@ -770,38 +770,6 @@ dd {
 	margin: 10px 0 6px 16px;
 }
 
-
-/* Tag hint TODO needed? */
-/* Tag suggestions */
-.ac_results {
-	padding: 0;
-	margin: -1px 0 0 -1px;
-	list-style: none;
-	position: absolute;
-	z-index: 10000;
-	display: none;
-	border: 1px solid #d8d8d8;
-	background-color: #fff;
-	font-size: 14px;
-}
-
-.ac_results li {
-	padding: 6px 16px;
-	white-space: nowrap;
-	text-align: left;
-}
-
-.ac_results .ac_over {
-	background-color: #e5e5e5;
-	background-color: #00a0d2;
-	color: #fff;
-	cursor: pointer;
-}
-
-.ac_match {
-	text-decoration: underline;
-}
-
 /* Tags */
 .tagchecklist {
 	padding: 16px 28px 5px;
@@ -817,10 +785,9 @@ dd {
 	clear: both;
 }
 
-.tagchecklist span {
-	display: block;
-	margin-right: 25px;
+.tagchecklist > span {
 	float: left;
+	margin-right: 25px;
 	font-size: 13px;
 	line-height: 1.8;
 	white-space: nowrap;
@@ -828,7 +795,7 @@ dd {
 }
 
 @media (max-width: 600px) {
-	.tagchecklist span {
+	.tagchecklist > span {
 		margin-bottom: 15px;
 		font-size: 16px;
 		line-height: 1.3;
@@ -836,36 +803,51 @@ dd {
 }
 
 .tagchecklist .ntdelbutton {
-	margin: 1px 0 0 -17px;
+	position: absolute;
+	width: 24px;
+	height: 24px;
+	border: none;
+	margin: 0 0 0 -19px;
+	padding: 0;
+	background: none;
 	cursor: pointer;
-	width: 20px;
-	height: 20px;
-	display: block;
-	float: left;
-	text-indent: 0;
-	overflow: hidden;
+	text-indent: 0;;
 	position: absolute;
-	outline: 0;
 }
 
-.tagchecklist .ntdelbutton:before {
+.tagchecklist .ntdelbutton .remove-tag-icon:before {
 	content: "\f153";
 	display: block;
-	margin: 2px 0;
+	margin-left: 2px;
 	height: 20px;
 	width: 20px;
-	background: 0 0;
-	color: #9ea7af;
-	font: 400 16px/1 dashicons;
+	-webkit-border-radius: 50%;
+	border-radius: 50%;
+	background: transparent;
+	color: #0073aa;
+	/* line-height tweak to vertically center the icon cross browsers */
+	font: 400 16px/1.28 dashicons;
 	text-align: center;
-	speak: none;
 	-webkit-font-smoothing: antialiased;
 }
 
-.tagchecklist .ntdelbutton:focus:before {
-	color: #00a0d2;
+.tagchecklist .ntdelbutton:focus {
+	outline: 0;
 }
 
+.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
+	color: #c00;
+}
+
+.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
+	-webkit-box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+	box-shadow:
+		0 0 0 1px #5b9dd9,
+		0 0 2px 1px rgba(30, 140, 190, .8);
+}
 
 /* THE TAG CLOUD. */
 .tagsdiv + p {
@@ -2194,6 +2176,7 @@ html {
 	-webkit-box-shadow: 0 1px 2px rgba( 30, 140, 190, 0.8 );
 	box-shadow: 0 1px 2px rgba( 30, 140, 190, 0.8 );
 	background-color: #fff;
+	font-size: 14px;
 }
 
 .ui-autocomplete li {
@@ -2201,9 +2184,16 @@ html {
 	padding: 4px 10px;
 	white-space: nowrap;
 	text-align: left;
+	cursor: pointer;
 }
 
-.ui-autocomplete li.ui-state-focus {
+/* Colors for the wplink toolbar autocomplete. */
+.ui-autocomplete .ui-state-focus {
 	background-color: #ddd;
-	cursor: pointer;
+}
+
+/* Colors for the tags autocomplete. */
+.wp-tags-autocomplete .ui-state-focus {
+	background-color: #0073aa;
+	color: #fff;
 }
diff --git a/wp-admin/css/press-this.min.css b/wp-admin/css/press-this.min.css
index 2e3377a8b..a6925ea3a 100644
--- a/wp-admin/css/press-this.min.css
+++ b/wp-admin/css/press-this.min.css
@@ -1 +1 @@
-body,fieldset{margin:0}.screen-reader-text,fieldset,legend,td,th{padding:0}.current-site,.post-options .post-option,.postform{text-overflow:ellipsis;white-space:nowrap}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi){*,:after,:before{-webkit-font-smoothing:antialiased}}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}fieldset,img,legend{border:0}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.hide-if-js{display:none}.screen-reader-text{position:absolute;margin:-1px;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}body,button,input,select,textarea{color:#404040;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-weight:400;line-height:1.6}b,dt,strong{font-weight:700}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}.scan-submit{display:inline-block;margin:0;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-appearance:none}.split-button{position:relative;display:inline-block;vertical-align:middle}.split-button-body{display:none;position:absolute;bottom:39px;right:0;border:1px solid #ddd;background-color:#fff;min-width:180px;max-width:100%;margin:0;padding:8px;list-style:none;-webkit-box-shadow:1px 0 4px rgba(0,0,0,.15);box-shadow:1px 0 4px rgba(0,0,0,.15)}.split-button-body:after,.split-button-body:before{position:absolute;right:12px;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.split-button-body:before{bottom:-18px;border-top-color:#ccc;border-width:9px;right:11px}.split-button-body:after{bottom:-16px;border-top-color:#fff;border-width:8px}.split-button-body .split-button-option{display:block;padding:5px 15px;margin:0;width:100%;text-align:left;line-height:2}.is-open .split-button-body{display:block}.split-button-primary,.split-button-toggle{-webkit-border-radius:0;border-radius:0;display:block;margin:0;font-size:13px;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-appearance:none;line-height:2;padding:0 10px 1px;background:#0085ba;border-color:#0073aa #006799 #006799;border-width:1px;border-style:solid;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.split-button-primary{-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border-right:0 none;float:left}.split-button-toggle{padding:0;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border-left:1px solid #006799;float:right}.split-button-toggle i{margin:4px 20px 3px 0;padding:0 10px}.split-button-primary:hover,.split-button-toggle:hover{outline:0;background:#008ec2;border-color:#006799}.split-button-primary:focus,.split-button-toggle:focus{outline:0;-webkit-box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.split-button-primary:active,.split-button-toggle:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 10px #006799,0 1px 0 #0073aa;box-shadow:inset 0 2px 10px #006799,0 1px 0 #0073aa}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.postform,textarea{vertical-align:top}[type=checkbox],[type=radio]{padding:0}[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}[type=text],[type=email],[type=url],[type=password],[type=search],textarea{padding:.4em .75em;color:#32373c;border:1px solid #ccc}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=search]:focus,textarea:focus{color:#32373c;outline:0}textarea{overflow:auto;padding-left:3px}a,a:visited{color:#0073aa}a:active,a:focus,a:hover{color:#00a0d2}ol,ul{margin:0 0 1.5em 3em}ul{list-style:disc}ol{list-style:decimal}li>ol,li>ul{margin-bottom:0;margin-left:1.5em}dd{margin:0 1.5em 1.5em}#post-formats-select br{display:none}.post-format{width:1px;height:1px;position:absolute;top:-9999px}.lt-ie9 .post-format{margin:17px 12px 0 13px;position:static;top:auto;float:left;width:16px;height:16px}.add-category,.post-format-icon,.tagsdiv .ajaxtag,.tagsdiv .newtag{position:relative}.post-format-icon{display:block;padding:13px 2px 14px 13px;cursor:pointer}.post-format-icon:after,.post-format-icon:before{content:"";display:inline-block;width:20px;height:20px;margin-right:10px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;color:#9ea7af;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before{content:"\f109"}.post-format-icon:after{display:none;content:"\f147";float:right}.post-format:checked+.post-format-icon{-webkit-box-shadow:inset 6px 0 0 #00a0d2;box-shadow:inset 6px 0 0 #00a0d2;background:rgba(46,162,204,.1)}.post-format:checked+.post-format-icon:after,.post-format:checked+.post-format-icon:before{color:#32373c}.post-format:focus+.post-format-icon{background:#00a0d2;color:#fff}.post-format:focus+.post-format-icon:after,.post-format:focus+.post-format-icon:before{color:#fff}.post-format:checked+.post-format-icon:after{display:block}.lt-ie9 .post-format-icon{margin-left:16px}.post-format-aside:before{content:"\f123"}.post-format-image:before{content:"\f128"}.post-format-video:before{content:"\f126"}.post-format-audio:before{content:"\f127"}.post-format-quote:before{content:"\f122"}.post-format-link:before{content:"\f103"}.post-format-gallery:before{content:"\f161"}.tagsdiv p{margin:0}.tagsdiv .newtag{display:block;padding:11px 58px 11px 16px;width:100%;border:0;border-bottom:1px solid #e5e5e5;font-size:16px}.tagsdiv .tagadd{position:absolute;top:0;right:0;bottom:1px;border:0;-webkit-border-radius:0;border-radius:0;margin:0;padding:0 16px;background:#f7f7f7;border-left:1px solid #f1f1f1;-webkit-box-shadow:none;box-shadow:none}.tagsdiv .tagadd:active,.tagsdiv .tagadd:focus,.tagsdiv .tagadd:hover{outline:0;background:#2991b7;border-color:#20708e;color:#fff;-webkit-box-shadow:none;box-shadow:none}.tagsdiv .howto{color:#727272;font-style:italic;margin:10px 0 6px 16px}.ac_results{padding:0;margin:-1px 0 0 -1px;list-style:none;position:absolute;z-index:10000;display:none;border:1px solid #d8d8d8;background-color:#fff;font-size:14px}.ac_results li{padding:6px 16px;white-space:nowrap;text-align:left}.ac_results .ac_over{background-color:#00a0d2;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}.tagchecklist{padding:16px 28px 5px}.tagchecklist:after,.tagchecklist:before{content:"";display:table}.tagchecklist:after{clear:both}.tagchecklist span{display:block;margin-right:25px;float:left;font-size:13px;line-height:1.8;white-space:nowrap;cursor:default}@media (max-width:600px){.tagchecklist span{margin-bottom:15px;font-size:16px;line-height:1.3}}.tagchecklist .ntdelbutton{margin:1px 0 0 -17px;cursor:pointer;width:20px;height:20px;display:block;float:left;text-indent:0;overflow:hidden;position:absolute;outline:0}.tagchecklist .ntdelbutton:before{content:"\f153";display:block;margin:2px 0;height:20px;width:20px;background:0 0;color:#9ea7af;font:400 16px/1 dashicons;text-align:center;speak:none;-webkit-font-smoothing:antialiased}.tagchecklist .ntdelbutton:focus:before{color:#00a0d2}.tagsdiv+p{margin:0}.press-this .tagcloud-link{display:block;margin:0 16px 5px;padding:0;text-decoration:none;outline:0}.tagcloud-link:focus{text-decoration:underline}.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}.popular-tags a{padding:0 3px}.the-tagcloud{margin:0;padding:16px}.the-tagcloud a{text-decoration:none;outline:0}.the-tagcloud a:focus{text-decoration:underline}.tagcloud h3{margin:2px 0 12px}.add-category-name,input[type=search].categories-search{display:block;width:100%;padding:.85714em 1.07143em;border:0;-webkit-border-radius:0;border-radius:0;border-bottom:1px solid #e5e5e5;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (max-width:600px){.add-category-name,input[type=search].categories-search{font-size:16px}}.press-this .add-cat-toggle{float:right;margin-top:-45px;line-height:20px;padding:12px 10px 8px;color:#0073aa}.press-this .add-cat-toggle:focus{text-decoration:none;color:#00a0d2}.press-this .add-cat-toggle.is-toggled{padding:10px}.press-this .add-cat-toggle.is-toggled .dashicons:before{content:"\f179"}.add-category{border-bottom:1px solid #e5e5e5}.add-category.is-hidden{display:none}.add-category .add-cat-submit{position:absolute;top:0;right:0;border:0;-webkit-border-radius:0;border-radius:0;padding:12px 16px;background:#f7f7f7;border-left:1px solid #f1f1f1}.add-category .add-cat-submit:active,.add-category .add-cat-submit:focus,.add-category .add-cat-submit:hover{outline:0;background:#2991b7;border-color:#20708e;color:#fff}.postform-wrapper{padding:12px}.postform{display:block;margin:0;width:100%;height:34px;-webkit-border-radius:0;border-radius:0;border:1px solid #e5e5e5;background:#fff;-webkit-background-size:20px 20px;background-size:20px 20px;overflow:hidden;line-height:21px;text-decoration:none;cursor:pointer;outline:0}.postform:focus{border-color:#0073aa;-webkit-box-shadow:0 0 0 3px #00a0d2;box-shadow:0 0 0 3px #00a0d2;outline:0;-moz-outline:none;-moz-user-focus:ignore}.alert,.scan{border-bottom:1px solid #e5e5e5}.postform::-ms-expand{display:none}.postform::-ms-value{background:0 0;color:#727272}.postform:-moz-focusring{color:transparent;text-shadow:0 0 0 #727272}.categories-select,.categories-select ul{margin:0;padding:0;list-style:none}.category{position:relative;display:block;padding:13px 16px 14px;cursor:pointer;background:#fff}.category.selected:focus,.category:focus{outline:0;background:#00a0d2;color:#fff}.category.selected{-webkit-box-shadow:inset 6px 0 0 #00a0d2;box-shadow:inset 6px 0 0 #00a0d2;background:#E9F5F9}.category.selected:after{display:inline-block;content:"\f147";position:absolute;top:13px;right:0;width:20px;height:20px;margin-right:10px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;color:#23282d;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.category.selected:focus:after{color:#fff}.categories-select ul .category{padding-left:24px}.categories-select ul ul .category{padding-left:32px}.categories-select ul ul ul .category{padding-left:40px}.categories-select ul ul ul ul .category{padding-left:48px}.categories-select ul ul ul ul ul .category{padding-left:56px}.categories-select ul ul ul ul ul ul .category{padding-left:64px}.categories-select .is-hidden{display:none}.categories-select .is-hidden.searched-parent{display:block}.categories-search-wrapper{position:relative}.categories-search-wrapper.is-hidden{display:none}.categories-search-wrapper label{position:absolute;top:50%;right:10px;margin-top:-10px;color:#9ea7af}html{overflow:auto;background:#fff;-webkit-box-shadow:-10px 0 0 rgba(0,0,0,.3);box-shadow:-10px 0 0 rgba(0,0,0,.3)}body{overflow-x:hidden;height:100%}@media (max-width:900px){body{font-size:16px}}@media (max-width:320px){body{font-size:14px}}.lt-ie9{overflow:visible}.adminbar{position:relative;width:100%;padding:0 .8em;min-height:3.2em;background:#23282d;color:#fff;z-index:9999}.adminbar:after,.adminbar:before{content:"";display:table}.adminbar:after{clear:both}.adminbar .dashicons{color:#a0a5aa}.press-this .adminbar button{position:absolute;top:50%;right:6px;margin-top:-13px;padding:0 10px 1px;font-size:13px}.current-site{margin-top:.5625em;font-size:16px;line-height:44px;font-weight:400;overflow:hidden}@media (max-width:600px){.current-site{margin:3px 0 0}}.current-site-link{text-decoration:none}.current-site-link:focus{outline:0}.current-site-link:focus .current-site-name{text-decoration:underline}.current-site-name{color:#ededed}@media (max-width:320px){.adminbar{min-height:45px}.current-site{margin:0;font-size:14px}.current-site-name{font-weight:600}}.current-site .dashicons-wordpress{position:relative;top:-1px;margin-right:10px;vertical-align:middle}.options,.options.closed .on-open,.options.open .on-closed{display:none}@media (max-width:900px){.options{display:block}.scan form{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.scan.is-hidden form{opacity:.2;pointer-events:none}}.options-panel-back.is-hidden{display:none}.options:focus .dashicons{color:#fff;text-decoration:none}.options .dashicons{margin-top:3px}.options{color:#00a0d2}.alert{position:relative;margin:0;padding:16px 50px;font-size:14px}.alert:before{content:"";position:absolute;top:50%;left:30px;width:8px;height:8px;margin-top:-4px;-webkit-border-radius:50%;border-radius:50%;background:#00a0d2}@media (max-width:600px){.alert{padding:16px 35px}.alert:before{left:15px}}.alert.is-error:before{background:red}.scan{position:relative}.scan-url{display:block;border:0;padding:.85714em 1.07143em;font-size:14px;width:100%}@media (max-width:600px){.scan-url{font-size:16px}}.scan-submit{position:absolute;top:0;right:0;bottom:0;padding:0 1.07143em;background:#f7f7f7;border:0;border-left:1px solid #f1f1f1;-webkit-border-radius:0;border-radius:0;color:#555;font-size:14px;line-height:1.6}.scan-submit:focus,.scan-submit:hover{background:#008ec2;border-color:#006799;color:#fff;outline:0}.scan-submit:active{background:#0073aa;border-color:#006799;color:#fff}.scan-submit:visited{color:#555}.wrapper{position:relative;margin-bottom:60px;margin-right:320px}.wrapper:after,.wrapper:before{content:"";display:table}.wrapper:after{clear:both}@media (max-width:900px){.wrapper{margin:0;width:100%}}.editor-wrapper{overflow:auto;float:left;width:100%}.editor-wrapper:after,.editor-wrapper:before{content:"";display:table}.editor-wrapper:after{clear:both}.editor{padding:0 1.5em 4.75em;max-width:700px;margin:0 auto}.spinner{height:20px;width:20px;display:inline-block;visibility:hidden;background:url(../images/spinner.gif) center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;opacity:.7;filter:alpha(opacity=70);line-height:1;vertical-align:middle}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}.spinner.is-active{visibility:visible}@media (min-width:901px){.editor{max-width:760px}}@media (max-width:320px){.editor{padding:0}}.post-title,.post-title-placeholder{margin:0;padding:.83em 0;width:100%;border-bottom:1px solid #e5e5e5;font-size:32px;line-height:1.4;font-weight:700}.post-title-placeholder:active,.post-title-placeholder:focus,.post-title:active,.post-title:focus{outline:0;-webkit-box-shadow:inset 0 -3px 0 #00a0d2;box-shadow:inset 0 -3px 0 #00a0d2;border-color:#00a0d2}@media (max-width:900px){.post-title,.post-title-placeholder{font-size:24px}}@media (max-height:400px){.post-title,.post-title-placeholder{padding:15px 0;font-size:16px}}@media (max-width:320px){.post-title,.post-title-placeholder{font-size:16px;font-weight:600;padding:1.14286em 1.42857em}}.post-title{background:url(data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///////wAAACH5BAEHAAIALAAAAAABAAEAAAICVAEAOw==);background:0 0,none}.post-title:before{content:"\a0";display:inline-block;width:0;speak:none}.post-title-placeholder{position:absolute;border:0;color:#82878c;z-index:-1}.post-title-placeholder.is-hidden{display:none}.media-list-container{position:relative;padding:2px 0;border-bottom:1px solid #e5e5e5;display:none}.media-list-inner-container{overflow:auto;max-height:150px;max-height:40vw}.media-list-container.has-media{display:block}.media-list-inner-container:after,.media-list-inner-container:before{content:"";display:table}.media-list-inner-container:after{clear:both}.media-list{margin:0;padding:0}@media (min-width:321px){.media-list-inner-container{max-height:250px;max-height:40vw}}.wppt-all-media-list{list-style:none;margin:0;padding:0}.is-embed:focus,.suggested-media-thumbnail:focus{outline:0;-webkit-box-shadow:inset 0 0 0 3px #00a0d2;box-shadow:inset 0 0 0 3px #00a0d2}.suggested-media-thumbnail{position:relative;display:block;float:left;width:16.66%;padding:16.66% 0 0 16.66%;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;background-color:#d8d8d8;color:#fff;color:rgba(255,255,255,.6);cursor:pointer}.suggested-media-thumbnail:active,.suggested-media-thumbnail:focus,.suggested-media-thumbnail:hover{color:#fff}.suggested-media-thumbnail:after,.suggested-media-thumbnail:before{display:inline-block;position:absolute;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.suggested-media-thumbnail:before{left:50%;top:50%;margin:-20px 0 0 -20px;font-size:40px}.suggested-media-thumbnail:after{content:"\f132";right:3%;bottom:2%}@media (min-width:601px){.media-list-inner-container{max-height:200px;max-height:18.75vw}.suggested-media-thumbnail{width:12.5%;padding:12.5% 0 0 12.5%}}.is-embed:before{content:"\f104";color:#fff;color:rgba(255,255,255,.9)}.is-embed.is-audio:active:before,.is-embed.is-audio:focus:before,.is-embed.is-audio:hover:before,.is-embed.is-tweet:active:before,.is-embed.is-tweet:focus:before,.is-embed.is-tweet:hover:before{color:#fff}.is-embed.is-video{background-color:#23282d}.is-embed.is-video:active:before,.is-embed.is-video:focus:before,.is-embed.is-video:hover:before{color:rgba(255,255,255,.2)}.is-embed.is-video:before{content:"\f236"}.is-embed.is-audio{background-color:#ff7d44}.is-embed.is-audio:before{content:"\f127"}.is-embed.is-tweet{background-color:#55acee}.is-embed.is-tweet:before{content:"\f301"}.no-media{margin:0;padding:0;border:0}.press-this-actions{position:fixed;bottom:0;left:0;width:100%;background:#f1f1f1;background:rgba(241,241,241,.9);border-top:1px solid #e5e5e5}.add-media{float:left;margin:14px 0 14px 30px;font-size:0}@media (max-width:320px){.add-media{margin:10px 0 10px 10px}}.insert-media{color:#9ea7af;float:left;margin:0;padding:0;border:0;border-right:1px solid #e5e5e5;-webkit-border-radius:0;border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.insert-media:active,.insert-media:focus,.insert-media:hover{margin:0;background:0 0;border-color:#e5e5e5;color:#23282d}.insert-media:active,.insert-media:focus{outline:0;color:#00a0d2;text-decoration:none}.insert-media .dashicons{padding:11px;width:63px;height:58px;font-size:40px}@media (max-width:320px){.insert-media .dashicons{width:55px;height:49px;padding:14px;font-size:20px}}#wp-link-wrap,.post-actions{font-size:13px}.post-actions{float:right;margin:14px 30px 14px 0}@media (max-width:320px){.post-actions{margin:10px 10px 10px 0}}.publish-button .saving-draft,.publish-button.is-saving .publish{display:none}.publish-button.is-saving .saving-draft{display:inline}.editor .wp-media-buttons{float:none}.editor div.mce-toolbar-grp{padding:.71429em 0;background:0 0;border:0}@media (max-height:400px),(max-width:320px){.editor div.mce-toolbar-grp{padding:0}}.mce-stack-layout:after,.mce-stack-layout:before{content:"";display:table}.mce-stack-layout:after{clear:both}.mce-container.mce-toolbar{float:left}.mce-container.mce-toolbar:nth-child(2){float:right}@media (max-width:600px){.mce-first .mce-btn:nth-child(3),.mce-first .mce-btn:nth-child(4){position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.mce-first .mce-btn:nth-child(3):focus,.mce-first .mce-btn:nth-child(4):focus{position:static;margin:1px;padding:inherit;height:auto;width:auto;overflow:visible;clip:auto;border:1px solid #999}}#wp-link-wrap input[type=text]{padding:3px 5px;margin:1px}@media screen and (max-width:782px){#wp-link-wrap{font-size:14px}#wp-link-wrap input[type=text]{padding:6px 10px}}#wp-link-wrap .howto{color:#666;font-style:italic}.options-panel{position:relative;float:right;margin-right:-320px;width:320px;border-left:1px solid #e5e5e5;font-size:14px;-webkit-box-shadow:5001px 5000px 0 5000px #fff,5000px 5000px 0 5000px #e5e5e5;box-shadow:5001px 5000px 0 5000px #fff,5000px 5000px 0 5000px #e5e5e5;outline:0}.options-panel-back{position:absolute;top:0;right:0;bottom:0;width:320px;outline:0}@media (max-width:900px){.press-this-actions{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.press-this-actions.is-hidden{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.options-panel{background:#fff;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.options-panel.is-hidden{visibility:hidden}.options-panel.is-off-screen{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}@media (max-width:320px){.options-panel{margin-right:-100%;width:100%;border:0;-webkit-box-shadow:5001px 5000px 0 5000px #fff;box-shadow:5001px 5000px 0 5000px #fff}.options-panel-back{width:100%}}.post-options{background:#fff;position:absolute;right:0;width:100%;overflow-x:hidden}.post-options .post-option-contents{margin-left:3px;color:#32373c}.post-option-forward:before{position:absolute;top:50%;right:8px;margin-top:-10px;content:"\f345"}.post-option,.setting-modal,.setting-title{position:relative}.post-option-back:before{content:"\f341"}.lt-ie9 .options-panel,.lt-ie9 .post-options{border-left:1px solid #e5e5e5}.lt-ie9 .post-options.is-off-screen{border:0}.post-options .post-option{display:block;width:100%;padding:13px 37px 13px 14px;border-bottom:1px solid #e5e5e5;text-decoration:none;text-align:left;color:#9ea7af;overflow:hidden;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.post-options .post-option:focus{outline:0;-webkit-box-shadow:inset 5px 0 0 #00a0d2;box-shadow:inset 5px 0 0 #00a0d2;border-color:#e5e5e5}.is-off-screen>.post-option{right:100%}.is-hidden>.post-option{visibility:hidden}.post-option-title{display:inline-block;margin:0 0 0 8px;font-size:14px;font-weight:400}.setting-modal{top:0;left:0;width:100%;overflow:hidden;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.setting-modal.is-hidden{visibility:hidden;height:0}.setting-modal.is-off-screen{left:100%}@media (min-width:1px){.is-off-screen>.post-option{right:auto;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.setting-modal.is-off-screen{left:0;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}}.press-this .modal-close{display:block;width:100%;padding:13px 14px;border-bottom:1px solid #e5e5e5;color:#00a0d2;text-decoration:none;text-align:left}.press-this .modal-close:focus{outline:0;-webkit-box-shadow:inset 5px 0 0 #00a0d2;box-shadow:inset 5px 0 0 #00a0d2;border-color:#e5e5e5}.setting-title{top:-1px;margin-left:11px}#pressthis{color:#404040;resize:none;padding-top:30px;font-size:16px}.wp-editor-wrap .quicktags-toolbar{background:0 0;border:none}.wp-editor-wrap .wp-editor-tools{z-index:0}.wp-editor-wrap .wp-editor-tabs{padding:2px}.wp-editor-wrap .wp-switch-editor{top:0;margin:3px 0 0 5px;padding:3px 8px;background:#f5f5f5;color:#555;border-color:#ccc}.wp-editor-wrap .wp-switch-editor:hover{background:#fafafa;border-color:#999;color:#23282d}.wp-editor-wrap.html-active .switch-html,.wp-editor-wrap.tmce-active .switch-tmce{background:#fff;border-color:#d8d8d8}.wp-link-input input{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left}.ui-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}
\ No newline at end of file
+body,fieldset{margin:0}.screen-reader-text,fieldset,legend,td,th{padding:0}.scan-submit,.split-button-primary,.split-button-toggle{text-decoration:none;-webkit-appearance:none;cursor:pointer}.current-site,.post-options .post-option,.postform{text-overflow:ellipsis;white-space:nowrap}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:144dpi){*,:after,:before{-webkit-font-smoothing:antialiased}}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}fieldset,img,legend{border:0}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.clearfix:after,.clearfix:before{content:"";display:table}.clearfix:after{clear:both}.hide-if-js{display:none}.screen-reader-text{position:absolute;margin:-1px;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}body,button,input,select,textarea{color:#404040;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:20px;font-weight:400;line-height:1.6}b,dt,strong{font-weight:700}h1,h2,h3,h4,h5,h6{clear:both}p{margin-bottom:1.5em}.scan-submit{display:inline-block;margin:0;white-space:nowrap}.split-button{position:relative;display:inline-block;vertical-align:middle}.split-button-body{display:none;position:absolute;bottom:39px;right:0;border:1px solid #ddd;background-color:#fff;min-width:180px;max-width:100%;margin:0;padding:8px;list-style:none;-webkit-box-shadow:1px 0 4px rgba(0,0,0,.15);box-shadow:1px 0 4px rgba(0,0,0,.15)}.split-button-body:after,.split-button-body:before{position:absolute;right:12px;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.split-button-body:before{bottom:-18px;border-top-color:#ccc;border-width:9px;right:11px}.split-button-body:after{bottom:-16px;border-top-color:#fff;border-width:8px}.split-button-body .split-button-option{display:block;padding:5px 15px;margin:0;width:100%;text-align:left;line-height:2}.is-open .split-button-body{display:block}.split-button-primary,.split-button-toggle{-webkit-border-radius:0;border-radius:0;display:block;margin:0;font-size:13px;white-space:nowrap;line-height:2;padding:0 10px 1px;background:#0085ba;border-color:#0073aa #006799 #006799;border-width:1px;border-style:solid;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.split-button-primary{-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border-right:0 none;float:left}.split-button-toggle{padding:0;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;border-left:1px solid #006799;float:right}.split-button-toggle i{margin:4px 20px 3px 0;padding:0 10px}.split-button-primary:hover,.split-button-toggle:hover{outline:0;background:#008ec2;border-color:#006799}.split-button-primary:focus,.split-button-toggle:focus{outline:0;-webkit-box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.split-button-primary:active,.split-button-toggle:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 10px #006799,0 1px 0 #0073aa;box-shadow:inset 0 2px 10px #006799,0 1px 0 #0073aa}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.postform,textarea{vertical-align:top}[type=checkbox],[type=radio]{padding:0}[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}[type=text],[type=email],[type=url],[type=password],[type=search],textarea{padding:.4em .75em;color:#32373c;border:1px solid #ccc}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=search]:focus,textarea:focus{color:#32373c;outline:0}textarea{overflow:auto;padding-left:3px}a,a:visited{color:#0073aa}a:active,a:focus,a:hover{color:#00a0d2}ol,ul{margin:0 0 1.5em 3em}ul{list-style:disc}ol{list-style:decimal}li>ol,li>ul{margin-bottom:0;margin-left:1.5em}dd{margin:0 1.5em 1.5em}#post-formats-select br{display:none}.post-format{width:1px;height:1px;position:absolute;top:-9999px}.lt-ie9 .post-format{margin:17px 12px 0 13px;position:static;top:auto;float:left;width:16px;height:16px}.add-category,.post-format-icon,.tagsdiv .ajaxtag,.tagsdiv .newtag{position:relative}.post-format-icon{display:block;padding:13px 2px 14px 13px;cursor:pointer}.post-format-icon:after,.post-format-icon:before{content:"";display:inline-block;width:20px;height:20px;margin-right:10px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;color:#9ea7af;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before{content:"\f109"}.post-format-icon:after{display:none;content:"\f147";float:right}.post-format:checked+.post-format-icon{-webkit-box-shadow:inset 6px 0 0 #00a0d2;box-shadow:inset 6px 0 0 #00a0d2;background:rgba(46,162,204,.1)}.post-format:checked+.post-format-icon:after,.post-format:checked+.post-format-icon:before{color:#32373c}.post-format:focus+.post-format-icon{background:#00a0d2;color:#fff}.post-format:focus+.post-format-icon:after,.post-format:focus+.post-format-icon:before{color:#fff}.post-format:checked+.post-format-icon:after{display:block}.lt-ie9 .post-format-icon{margin-left:16px}.post-format-aside:before{content:"\f123"}.post-format-image:before{content:"\f128"}.post-format-video:before{content:"\f126"}.post-format-audio:before{content:"\f127"}.post-format-quote:before{content:"\f122"}.post-format-link:before{content:"\f103"}.post-format-gallery:before{content:"\f161"}.tagsdiv p{margin:0}.tagsdiv .newtag{display:block;padding:11px 58px 11px 16px;width:100%;border:0;border-bottom:1px solid #e5e5e5;font-size:16px}.tagsdiv .tagadd{position:absolute;top:0;right:0;bottom:1px;border:0;-webkit-border-radius:0;border-radius:0;margin:0;padding:0 16px;background:#f7f7f7;border-left:1px solid #f1f1f1;-webkit-box-shadow:none;box-shadow:none}.tagsdiv .tagadd:active,.tagsdiv .tagadd:focus,.tagsdiv .tagadd:hover{outline:0;background:#2991b7;border-color:#20708e;color:#fff;-webkit-box-shadow:none;box-shadow:none}.tagsdiv .howto{color:#727272;font-style:italic;margin:10px 0 6px 16px}.tagchecklist{padding:16px 28px 5px}.tagchecklist:after,.tagchecklist:before{content:"";display:table}.tagchecklist:after{clear:both}.tagchecklist>span{float:left;margin-right:25px;font-size:13px;line-height:1.8;white-space:nowrap;cursor:default}@media (max-width:600px){.tagchecklist>span{margin-bottom:15px;font-size:16px;line-height:1.3}}.tagchecklist .ntdelbutton{width:24px;height:24px;border:none;margin:0 0 0 -19px;padding:0;background:0 0;cursor:pointer;text-indent:0;position:absolute}.tagchecklist .ntdelbutton .remove-tag-icon:before{content:"\f153";display:block;margin-left:2px;height:20px;width:20px;-webkit-border-radius:50%;border-radius:50%;background:0 0;color:#0073aa;font:400 16px/1.28 dashicons;text-align:center;-webkit-font-smoothing:antialiased}.tagchecklist .ntdelbutton:focus{outline:0}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before{color:#c00}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.tagsdiv+p{margin:0}.press-this .tagcloud-link{display:block;margin:0 16px 5px;padding:0;text-decoration:none;outline:0}.tagcloud-link:focus{text-decoration:underline}.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}.popular-tags a{padding:0 3px}.the-tagcloud{margin:0;padding:16px}.the-tagcloud a{text-decoration:none;outline:0}.the-tagcloud a:focus{text-decoration:underline}.tagcloud h3{margin:2px 0 12px}.add-category-name,input[type=search].categories-search{display:block;width:100%;padding:.85714em 1.07143em;border:0;-webkit-border-radius:0;border-radius:0;border-bottom:1px solid #e5e5e5;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (max-width:600px){.add-category-name,input[type=search].categories-search{font-size:16px}}.press-this .add-cat-toggle{float:right;margin-top:-45px;line-height:20px;padding:12px 10px 8px;color:#0073aa}.press-this .add-cat-toggle:focus{text-decoration:none;color:#00a0d2}.press-this .add-cat-toggle.is-toggled{padding:10px}.press-this .add-cat-toggle.is-toggled .dashicons:before{content:"\f179"}.add-category{border-bottom:1px solid #e5e5e5}.add-category.is-hidden{display:none}.add-category .add-cat-submit{position:absolute;top:0;right:0;border:0;-webkit-border-radius:0;border-radius:0;padding:12px 16px;background:#f7f7f7;border-left:1px solid #f1f1f1}.add-category .add-cat-submit:active,.add-category .add-cat-submit:focus,.add-category .add-cat-submit:hover{outline:0;background:#2991b7;border-color:#20708e;color:#fff}.postform-wrapper{padding:12px}.postform{display:block;margin:0;width:100%;height:34px;-webkit-border-radius:0;border-radius:0;border:1px solid #e5e5e5;background:#fff;-webkit-background-size:20px 20px;background-size:20px 20px;overflow:hidden;line-height:21px;text-decoration:none;cursor:pointer;outline:0}.postform:focus{border-color:#0073aa;-webkit-box-shadow:0 0 0 3px #00a0d2;box-shadow:0 0 0 3px #00a0d2;outline:0;-moz-outline:none;-moz-user-focus:ignore}.alert,.scan{border-bottom:1px solid #e5e5e5}.postform::-ms-expand{display:none}.postform::-ms-value{background:0 0;color:#727272}.postform:-moz-focusring{color:transparent;text-shadow:0 0 0 #727272}.categories-select,.categories-select ul{margin:0;padding:0;list-style:none}.category{position:relative;display:block;padding:13px 16px 14px;cursor:pointer;background:#fff}.category.selected:focus,.category:focus{outline:0;background:#00a0d2;color:#fff}.category.selected{-webkit-box-shadow:inset 6px 0 0 #00a0d2;box-shadow:inset 6px 0 0 #00a0d2;background:#E9F5F9}.category.selected:after{display:inline-block;content:"\f147";position:absolute;top:13px;right:0;width:20px;height:20px;margin-right:10px;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;color:#23282d;font-weight:400;font-style:normal;vertical-align:top;text-align:center;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.category.selected:focus:after{color:#fff}.categories-select ul .category{padding-left:24px}.categories-select ul ul .category{padding-left:32px}.categories-select ul ul ul .category{padding-left:40px}.categories-select ul ul ul ul .category{padding-left:48px}.categories-select ul ul ul ul ul .category{padding-left:56px}.categories-select ul ul ul ul ul ul .category{padding-left:64px}.categories-select .is-hidden{display:none}.categories-select .is-hidden.searched-parent{display:block}.categories-search-wrapper{position:relative}.categories-search-wrapper.is-hidden{display:none}.categories-search-wrapper label{position:absolute;top:50%;right:10px;margin-top:-10px;color:#9ea7af}html{overflow:auto;background:#fff;-webkit-box-shadow:-10px 0 0 rgba(0,0,0,.3);box-shadow:-10px 0 0 rgba(0,0,0,.3)}body{overflow-x:hidden;height:100%}@media (max-width:900px){body{font-size:16px}}@media (max-width:320px){body{font-size:14px}}.lt-ie9{overflow:visible}.adminbar{position:relative;width:100%;padding:0 .8em;min-height:3.2em;background:#23282d;color:#fff;z-index:9999}.adminbar:after,.adminbar:before{content:"";display:table}.adminbar:after{clear:both}.adminbar .dashicons{color:#a0a5aa}.press-this .adminbar button{position:absolute;top:50%;right:6px;margin-top:-13px;padding:0 10px 1px;font-size:13px}.current-site{margin-top:.5625em;font-size:16px;line-height:44px;font-weight:400;overflow:hidden}@media (max-width:600px){.current-site{margin:3px 0 0}}.current-site-link{text-decoration:none}.current-site-link:focus{outline:0}.current-site-link:focus .current-site-name{text-decoration:underline}.current-site-name{color:#ededed}@media (max-width:320px){.adminbar{min-height:45px}.current-site{margin:0;font-size:14px}.current-site-name{font-weight:600}}.current-site .dashicons-wordpress{position:relative;top:-1px;margin-right:10px;vertical-align:middle}.options,.options.closed .on-open,.options.open .on-closed{display:none}@media (max-width:900px){.options{display:block}.scan form{-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.scan.is-hidden form{opacity:.2;pointer-events:none}}.options-panel-back.is-hidden{display:none}.options:focus .dashicons{color:#fff;text-decoration:none}.options .dashicons{margin-top:3px}.options{color:#00a0d2}.alert{position:relative;margin:0;padding:16px 50px;font-size:14px}.alert:before{content:"";position:absolute;top:50%;left:30px;width:8px;height:8px;margin-top:-4px;-webkit-border-radius:50%;border-radius:50%;background:#00a0d2}@media (max-width:600px){.alert{padding:16px 35px}.alert:before{left:15px}}.alert.is-error:before{background:red}.scan{position:relative}.scan-url{display:block;border:0;padding:.85714em 1.07143em;font-size:14px;width:100%}@media (max-width:600px){.scan-url{font-size:16px}}.scan-submit{position:absolute;top:0;right:0;bottom:0;padding:0 1.07143em;background:#f7f7f7;border:0;border-left:1px solid #f1f1f1;-webkit-border-radius:0;border-radius:0;color:#555;font-size:14px;line-height:1.6}.scan-submit:focus,.scan-submit:hover{background:#008ec2;border-color:#006799;color:#fff;outline:0}.scan-submit:active{background:#0073aa;border-color:#006799;color:#fff}.scan-submit:visited{color:#555}.wrapper{position:relative;margin-bottom:60px;margin-right:320px}.wrapper:after,.wrapper:before{content:"";display:table}.wrapper:after{clear:both}@media (max-width:900px){.wrapper{margin:0;width:100%}}.editor-wrapper{overflow:auto;float:left;width:100%}.editor-wrapper:after,.editor-wrapper:before{content:"";display:table}.editor-wrapper:after{clear:both}.editor{padding:0 1.5em 4.75em;max-width:700px;margin:0 auto}.spinner{height:20px;width:20px;display:inline-block;visibility:hidden;background:url(../images/spinner.gif) center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px;opacity:.7;filter:alpha(opacity=70);line-height:1;vertical-align:middle}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.spinner{background-image:url(../images/spinner-2x.gif)}}.spinner.is-active{visibility:visible}@media (min-width:901px){.editor{max-width:760px}}@media (max-width:320px){.editor{padding:0}}.post-title,.post-title-placeholder{margin:0;padding:.83em 0;width:100%;border-bottom:1px solid #e5e5e5;font-size:32px;line-height:1.4;font-weight:700}.post-title-placeholder:active,.post-title-placeholder:focus,.post-title:active,.post-title:focus{outline:0;-webkit-box-shadow:inset 0 -3px 0 #00a0d2;box-shadow:inset 0 -3px 0 #00a0d2;border-color:#00a0d2}@media (max-width:900px){.post-title,.post-title-placeholder{font-size:24px}}@media (max-height:400px){.post-title,.post-title-placeholder{padding:15px 0;font-size:16px}}@media (max-width:320px){.post-title,.post-title-placeholder{font-size:16px;font-weight:600;padding:1.14286em 1.42857em}}.post-title{background:url(data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///////wAAACH5BAEHAAIALAAAAAABAAEAAAICVAEAOw==);background:0 0,none}.post-title:before{content:"\a0";display:inline-block;width:0;speak:none}.post-title-placeholder{position:absolute;border:0;color:#82878c;z-index:-1}.post-title-placeholder.is-hidden{display:none}.media-list-container{position:relative;padding:2px 0;border-bottom:1px solid #e5e5e5;display:none}.media-list-inner-container{overflow:auto;max-height:150px;max-height:40vw}.media-list-container.has-media{display:block}.media-list-inner-container:after,.media-list-inner-container:before{content:"";display:table}.media-list-inner-container:after{clear:both}.media-list{margin:0;padding:0}@media (min-width:321px){.media-list-inner-container{max-height:250px;max-height:40vw}}.wppt-all-media-list{list-style:none;margin:0;padding:0}.is-embed:focus,.suggested-media-thumbnail:focus{outline:0;-webkit-box-shadow:inset 0 0 0 3px #00a0d2;box-shadow:inset 0 0 0 3px #00a0d2}.suggested-media-thumbnail{position:relative;display:block;float:left;width:16.66%;padding:16.66% 0 0 16.66%;background-position:center;background-repeat:no-repeat;-webkit-background-size:cover;background-size:cover;background-color:#d8d8d8;color:#fff;color:rgba(255,255,255,.6);cursor:pointer}.suggested-media-thumbnail:active,.suggested-media-thumbnail:focus,.suggested-media-thumbnail:hover{color:#fff}.suggested-media-thumbnail:after,.suggested-media-thumbnail:before{display:inline-block;position:absolute;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;-webkit-transition:color .1s ease-in 0;transition:color .1s ease-in 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.suggested-media-thumbnail:before{left:50%;top:50%;margin:-20px 0 0 -20px;font-size:40px}.suggested-media-thumbnail:after{content:"\f132";right:3%;bottom:2%}@media (min-width:601px){.media-list-inner-container{max-height:200px;max-height:18.75vw}.suggested-media-thumbnail{width:12.5%;padding:12.5% 0 0 12.5%}}.is-embed:before{content:"\f104";color:#fff;color:rgba(255,255,255,.9)}.is-embed.is-audio:active:before,.is-embed.is-audio:focus:before,.is-embed.is-audio:hover:before,.is-embed.is-tweet:active:before,.is-embed.is-tweet:focus:before,.is-embed.is-tweet:hover:before{color:#fff}.is-embed.is-video{background-color:#23282d}.is-embed.is-video:active:before,.is-embed.is-video:focus:before,.is-embed.is-video:hover:before{color:rgba(255,255,255,.2)}.is-embed.is-video:before{content:"\f236"}.is-embed.is-audio{background-color:#ff7d44}.is-embed.is-audio:before{content:"\f127"}.is-embed.is-tweet{background-color:#55acee}.is-embed.is-tweet:before{content:"\f301"}.no-media{margin:0;padding:0;border:0}.press-this-actions{position:fixed;bottom:0;left:0;width:100%;background:#f1f1f1;background:rgba(241,241,241,.9);border-top:1px solid #e5e5e5}.add-media{float:left;margin:14px 0 14px 30px;font-size:0}@media (max-width:320px){.add-media{margin:10px 0 10px 10px}}.insert-media{color:#9ea7af;float:left;margin:0;padding:0;border:0;border-right:1px solid #e5e5e5;-webkit-border-radius:0;border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.insert-media:active,.insert-media:focus,.insert-media:hover{margin:0;background:0 0;border-color:#e5e5e5;color:#23282d}.insert-media:active,.insert-media:focus{outline:0;color:#00a0d2;text-decoration:none}.insert-media .dashicons{padding:11px;width:63px;height:58px;font-size:40px}@media (max-width:320px){.insert-media .dashicons{width:55px;height:49px;padding:14px;font-size:20px}}#wp-link-wrap,.post-actions{font-size:13px}.post-actions{float:right;margin:14px 30px 14px 0}@media (max-width:320px){.post-actions{margin:10px 10px 10px 0}}.publish-button .saving-draft,.publish-button.is-saving .publish{display:none}.publish-button.is-saving .saving-draft{display:inline}.editor .wp-media-buttons{float:none}.editor div.mce-toolbar-grp{padding:.71429em 0;background:0 0;border:0}@media (max-height:400px),(max-width:320px){.editor div.mce-toolbar-grp{padding:0}}.mce-stack-layout:after,.mce-stack-layout:before{content:"";display:table}.mce-stack-layout:after{clear:both}.mce-container.mce-toolbar{float:left}.mce-container.mce-toolbar:nth-child(2){float:right}@media (max-width:600px){.mce-first .mce-btn:nth-child(3),.mce-first .mce-btn:nth-child(4){position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0}.mce-first .mce-btn:nth-child(3):focus,.mce-first .mce-btn:nth-child(4):focus{position:static;margin:1px;padding:inherit;height:auto;width:auto;overflow:visible;clip:auto;border:1px solid #999}}#wp-link-wrap input[type=text]{padding:3px 5px;margin:1px}@media screen and (max-width:782px){#wp-link-wrap{font-size:14px}#wp-link-wrap input[type=text]{padding:6px 10px}}#wp-link-wrap .howto{color:#666;font-style:italic}.options-panel{position:relative;float:right;margin-right:-320px;width:320px;border-left:1px solid #e5e5e5;font-size:14px;-webkit-box-shadow:5001px 5000px 0 5000px #fff,5000px 5000px 0 5000px #e5e5e5;box-shadow:5001px 5000px 0 5000px #fff,5000px 5000px 0 5000px #e5e5e5;outline:0}.options-panel-back{position:absolute;top:0;right:0;bottom:0;width:320px;outline:0}@media (max-width:900px){.press-this-actions{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.press-this-actions.is-hidden{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.options-panel{background:#fff;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.options-panel.is-hidden{visibility:hidden}.options-panel.is-off-screen{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}@media (max-width:320px){.options-panel{margin-right:-100%;width:100%;border:0;-webkit-box-shadow:5001px 5000px 0 5000px #fff;box-shadow:5001px 5000px 0 5000px #fff}.options-panel-back{width:100%}}.post-options{background:#fff;position:absolute;right:0;width:100%;overflow-x:hidden}.post-options .post-option-contents{margin-left:3px;color:#32373c}.post-option-forward:before{position:absolute;top:50%;right:8px;margin-top:-10px;content:"\f345"}.post-option,.setting-modal,.setting-title{position:relative}.post-option-back:before{content:"\f341"}.lt-ie9 .options-panel,.lt-ie9 .post-options{border-left:1px solid #e5e5e5}.lt-ie9 .post-options.is-off-screen{border:0}.post-options .post-option{display:block;width:100%;padding:13px 37px 13px 14px;border-bottom:1px solid #e5e5e5;text-decoration:none;text-align:left;color:#9ea7af;overflow:hidden;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.post-options .post-option:focus{outline:0;-webkit-box-shadow:inset 5px 0 0 #00a0d2;box-shadow:inset 5px 0 0 #00a0d2;border-color:#e5e5e5}.is-off-screen>.post-option{right:100%}.is-hidden>.post-option{visibility:hidden}.post-option-title{display:inline-block;margin:0 0 0 8px;font-size:14px;font-weight:400}.setting-modal{top:0;left:0;width:100%;overflow:hidden;-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.setting-modal.is-hidden{visibility:hidden;height:0}.setting-modal.is-off-screen{left:100%}@media (min-width:1px){.is-off-screen>.post-option{right:auto;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.setting-modal.is-off-screen{left:0;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}}.press-this .modal-close{display:block;width:100%;padding:13px 14px;border-bottom:1px solid #e5e5e5;color:#00a0d2;text-decoration:none;text-align:left}.press-this .modal-close:focus{outline:0;-webkit-box-shadow:inset 5px 0 0 #00a0d2;box-shadow:inset 5px 0 0 #00a0d2;border-color:#e5e5e5}.setting-title{top:-1px;margin-left:11px}#pressthis{color:#404040;resize:none;padding-top:30px;font-size:16px}.wp-editor-wrap .quicktags-toolbar{background:0 0;border:none}.wp-editor-wrap .wp-editor-tools{z-index:0}.wp-editor-wrap .wp-editor-tabs{padding:2px}.wp-editor-wrap .wp-switch-editor{top:0;margin:3px 0 0 5px;padding:3px 8px;background:#f5f5f5;color:#555;border-color:#ccc}.wp-editor-wrap .wp-switch-editor:hover{background:#fafafa;border-color:#999;color:#23282d}.wp-editor-wrap.html-active .switch-html,.wp-editor-wrap.tmce-active .switch-tmce{background:#fff;border-color:#d8d8d8}.wp-link-input input{border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;-webkit-transition:50ms border-color ease-in-out;transition:50ms border-color ease-in-out}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff;font-size:14px}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}
\ No newline at end of file
diff --git a/wp-admin/css/themes-rtl.css b/wp-admin/css/themes-rtl.css
index b62029828..0e5f8dcbe 100644
--- a/wp-admin/css/themes-rtl.css
+++ b/wp-admin/css/themes-rtl.css
@@ -114,7 +114,7 @@
 	margin-left: 3px;
 }
 
-.theme-browser .theme .theme-actions .button-secondary {
+.theme-browser .theme .theme-actions .button {
 	float: none;
 	margin-right: 3px;
 }
@@ -1017,7 +1017,7 @@ body.folded .theme-browser ~ .theme-overlay .theme-wrap {
 }
 
 .theme-install-php .wp-filter {
-	padding: 0 20px;
+	padding-right: 20px;
 }
 
 .theme-install-php a.upload,
@@ -1176,12 +1176,143 @@ div#custom-background-image img {
 	max-height: 300px;
 }
 
+.background-position-control input[type="radio"]:checked ~ .button {
+	background: #eee;
+	border-color: #999;
+	-webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, .5 );
+	box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, .5 );
+	z-index: 1;
+}
+
+.background-position-control input[type="radio"]:focus ~ .button {
+	border-color: #5b9dd9;
+	-webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, .5 ), 0 0 3px rgba( 0, 115, 170, .8 );
+	box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, .5 ), 0 0 3px rgba( 0, 115, 170, .8 );
+	color: #23282d;
+}
+
+.background-position-control .background-position-center-icon,
+.background-position-control .background-position-center-icon:before {
+	display: inline-block;
+	line-height: 1;
+	text-align: center;
+	-webkit-transition: background-color .1s ease-in 0;
+	transition: background-color .1s ease-in 0;
+}
+
+.background-position-control .background-position-center-icon {
+	height: 20px;
+	margin-top: 13px;
+	vertical-align: top;
+	width: 20px;
+}
+
+.background-position-control .background-position-center-icon:before {
+	background-color: #555;
+	-webkit-border-radius: 50%;
+	border-radius: 50%;
+	content: "";
+	height: 12px;
+	width: 12px;
+}
+
+.background-position-control .button:hover .background-position-center-icon:before,
+.background-position-control input[type="radio"]:focus ~ .button .background-position-center-icon:before {
+	background-color: #23282d;
+}
+
+.background-position-control .button-group {
+	display: block;
+}
+
+.background-position-control .button-group .button {
+	-webkit-border-radius: 0;
+	border-radius: 0;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	/* Following properties are overridden by buttons responsive styles (see: wp-includes/css/buttons.css). */
+	height: 40px !important;
+	line-height: 37px !important;
+	margin: 0 0 0 -1px !important;
+	padding: 0 10px 1px !important;
+	position: relative;
+}
+
+.background-position-control .button-group .button:active,
+.background-position-control .button-group .button:hover,
+.background-position-control .button-group .button:focus {
+	z-index: 1;
+}
+
+.background-position-control .button-group:last-child .button {
+	-webkit-box-shadow: 0 1px 0 #ccc;
+	box-shadow: 0 1px 0 #ccc;
+}
+
+.background-position-control .button-group > label {
+	margin: 0 !important;
+}
+
+.background-position-control .button-group:first-child > label:first-child .button {
+	-webkit-border-radius: 0 3px 0 0;
+	border-radius: 0 3px 0 0;
+}
+
+.background-position-control .button-group:first-child > label:first-child .dashicons {
+	-webkit-transform: rotate( -45deg );
+	-ms-transform: rotate( -45deg );
+	transform: rotate( -45deg );
+}
+
+.background-position-control .button-group:first-child > label:last-child .button {
+	-webkit-border-radius: 3px 0 0 0;
+	border-radius: 3px 0 0 0;
+}
+
+.background-position-control .button-group:first-child > label:last-child .dashicons {
+	-webkit-transform: rotate( 45deg );
+	-ms-transform: rotate( 45deg );
+	transform: rotate( 45deg );
+}
+
+.background-position-control .button-group:last-child > label:first-child .button {
+	-webkit-border-radius: 0 0 3px 0;
+	border-radius: 0 0 3px 0;
+}
+
+.background-position-control .button-group:last-child > label:first-child .dashicons {
+	-webkit-transform: rotate( 45deg );
+	-ms-transform: rotate( 45deg );
+	transform: rotate( 45deg );
+}
+
+.background-position-control .button-group:last-child > label:last-child .button {
+	-webkit-border-radius: 0 0 0 3px;
+	border-radius: 0 0 0 3px;
+}
+
+.background-position-control .button-group:last-child > label:last-child .dashicons {
+	-webkit-transform: rotate( -45deg );
+	-ms-transform: rotate( -45deg );
+	transform: rotate( -45deg );
+}
+
+.background-position-control .button-group .dashicons {
+	margin-top: 9px;
+}
+
+.background-position-control .button-group + .button-group {
+	margin-top: -1px;
+}
+
 /*------------------------------------------------------------------------------
   23.0 - Full Overlay w/ Sidebar
 ------------------------------------------------------------------------------*/
 
 body.full-overlay-active {
 	overflow: hidden;
+	/* Hide all the content, the Customizer overlay is then made visible to be the only available content. */
+	visibility: hidden;
 }
 
 .wp-full-overlay {
@@ -1390,6 +1521,7 @@ body.full-overlay-active {
 	box-shadow: none !important;
 	-webkit-border-radius: 0 !important;
 	border-radius: 0 !important;
+	z-index: -1; /* Below device buttons */
 }
 
 .wp-core-ui .wp-full-overlay .collapse-sidebar:hover,
@@ -1485,7 +1617,7 @@ body.full-overlay-active {
 	position: fixed;
 	bottom: 0;
 	right: 0;
-	width: 300px;
+	width: 299px;
 	height: 45px;
 	border-top: 1px solid #ddd;
 	background: #eee;
@@ -1493,6 +1625,9 @@ body.full-overlay-active {
 
 .wp-full-overlay-footer .devices {
 	float: left;
+	background: #eee;
+	-webkit-box-shadow: 20px 0 10px -5px #eee;
+	box-shadow: 20px 0 10px -5px #eee;
 }
 
 .wp-full-overlay-footer .devices button {
@@ -1506,8 +1641,12 @@ body.full-overlay-active {
 	box-shadow: none;
 	border-top: 1px solid transparent;
 	border-bottom: 4px solid transparent;
-	-webkit-transition: background .1s ease-in-out;
-	transition: background .1s ease-in-out;
+	-webkit-transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
+	transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
 }
 
 .wp-full-overlay-footer .devices button:focus {
@@ -1535,15 +1674,18 @@ body.full-overlay-active {
 	background-color: #fff;
 }
 
-.wp-full-overlay-footer .devices button:focus {
-	background-color: #fff;
+.wp-full-overlay-footer .devices button:focus,
+.wp-full-overlay-footer .devices button.active:hover {
 	border-bottom-color: #0073aa;
 }
 
-.wp-full-overlay-footer .devices button.active:before,
+.wp-full-overlay-footer .devices button.active:before {
+	color: #191e23;
+}
+
 .wp-full-overlay-footer .devices button:hover:before,
 .wp-full-overlay-footer .devices button:focus:before {
-	color: #191e23;
+	color: #0073aa;
 }
 
 .wp-full-overlay-footer .devices .preview-desktop:before {
@@ -1613,8 +1755,10 @@ body.full-overlay-active {
 	height: 100%;
 }
 
-.customize-active #customize-container {
-	display: block;
+/* Make the Customizer and Theme installer overlays the only available content. */
+#customize-container,
+.theme-install-overlay {
+	visibility: visible;
 }
 
 .customize-loading #customize-container iframe {
diff --git a/wp-admin/css/themes-rtl.min.css b/wp-admin/css/themes-rtl.min.css
index cdd6a8d4b..ad2797e46 100644
--- a/wp-admin/css/themes-rtl.min.css
+++ b/wp-admin/css/themes-rtl.min.css
@@ -1 +1 @@
-.theme-browser .themes{clear:both}.themes-php:not(.network-admin) .wrap h1{margin-bottom:15px}.themes-php .wrap h1 .button{margin-right:20px}.themes-php .wp-filter-search{position:relative;top:-2px;right:20px;margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5}.theme .notice,.theme .notice.is-dismissible{right:0;margin:0;position:absolute;left:0;top:0}.theme-browser .theme{cursor:pointer;float:right;margin:0 0 4% 4%;position:relative;width:30.6%;border:1px solid #ddd;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ie8 .theme-browser .theme{width:30%;margin:0 0 4% 3%}.theme-browser .theme:nth-child(3n){margin-left:0}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;left:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-right:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:focus .theme-actions,.theme-browser .theme:hover .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-left:3px}.theme-browser .theme .theme-actions .button-secondary{float:none;margin-right:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;right:0;top:0;width:100%;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme:focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;position:absolute;top:35%;left:20%;right:20%;background:#23282d;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.theme-browser .theme:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.theme-browser .theme:focus .more-details{opacity:1}.theme-browser .theme.active:focus .theme-actions{display:block}.theme-browser.rendered .theme:focus .more-details,.theme-browser.rendered .theme:hover .more-details{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.theme-browser .theme.active .theme-name{background:#23282d;color:#fff;padding-left:110px;font-weight:300;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .customize-control .theme.active .theme-name{padding-left:15px}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(49,49,49,.7);border-right:none;opacity:1}.theme-browser .theme.active .theme-actions .button-primary{margin-left:0}.theme-browser .theme .theme-author{background:#23282d;color:#eee;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit;text-decoration:none}.theme-browser .theme.add-new-theme{border:none;-webkit-box-shadow:none;box-shadow:none}.theme-browser .theme.add-new-theme a{text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme a:after{display:block;content:"";background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;right:0;left:0;bottom:0;padding:0;text-shadow:none;border:5px dashed #d5d2ca;border:5px dashed rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-overlay .theme-actions,.theme-overlay .theme-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#e5e5e5;background:rgba(153,153,153,.1);-webkit-border-radius:50%;border-radius:50%;display:inline-block;content:"\f132";-webkit-font-smoothing:antialiased;font:400 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#999;position:absolute;top:30%;right:50%;margin-right:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme a:focus .theme-screenshot,.theme-browser .theme.add-new-theme a:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{background:#fff;color:#0073aa}.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{border-color:transparent;color:#fff;background:#0073aa;content:""}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;-webkit-box-shadow:none;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-18px;padding-top:0;padding-bottom:48px}.theme-browser .theme.add-new-theme a:focus .theme-name,.theme-browser .theme.add-new-theme a:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;right:-20px;left:0;top:0;bottom:0;background:#f1f1f1;background:rgba(238,238,238,.9);z-index:10000}.theme-overlay .theme-header .close,.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;background-color:transparent;height:48px;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;text-align:center}.theme-overlay .theme-header{position:absolute;top:0;right:0;left:0;height:48px;border-bottom:1px solid #ddd}.theme-overlay .theme-header button{padding:0}.theme-overlay .theme-header .close{width:50px;float:left;border:0;border-right:1px solid #ddd;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:400 22px/50px dashicons!important;color:#72777c;display:inline-block;content:"\f335";font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{color:#72777c;width:54px;float:right;border:0;border-left:1px solid #ddd;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#ddd;border-color:#ccc;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#ccc;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-header"],.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-background"],.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-header .left:before{content:"\f345"}.theme-overlay .theme-header .right:before{content:"\f341"}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;right:190px;left:30px;bottom:3%;background:#fff;-webkit-box-shadow:0 1px 20px 5px rgba(0,0,0,.1);box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:10000;box-sizing:border-box;-webkit-overflow-scrolling:touch}body.folded .theme-browser~.theme-overlay .theme-wrap{right:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;right:0;left:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;right:0;left:0;padding:10px 25px 5px;background:#f3f3f3;z-index:30;box-sizing:border-box;border-top:1px solid #eee}.theme-overlay .screenshot,.upload-plugin,.upload-theme{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.ie8 .theme-overlay .theme-actions{border:1px solid #eee}.theme-overlay .theme-actions a{margin-left:5px;margin-bottom:5px}.broken-themes a.delete-theme,.theme-overlay .theme-actions .delete-theme{color:#a00;text-decoration:none;border-color:transparent;-webkit-box-shadow:none;box-shadow:none;background:0 0}.theme-overlay .theme-actions .delete-theme{position:absolute;left:10px;bottom:5px}.broken-themes a.delete-theme:focus,.broken-themes a.delete-theme:hover,.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#d54e21;color:#fff;border-color:#d54e21}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:right;margin:0 0 0 30px;width:55%;max-width:880px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;box-sizing:border-box;overflow:hidden;position:relative;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:"";display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;right:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:350px;width:auto}.theme-overlay .screenshot.thumb{background:#ccc;border:1px solid #eee;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:"";display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;position:absolute;right:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #00a0d2}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:right}.theme-overlay .current-label{background:#32373c;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;-webkit-border-radius:2px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-name{color:#23282d;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.theme-overlay .theme-version{color:#72777c;font-size:13px;font-weight:400;float:none;display:inline-block;margin-right:10px}.theme-overlay .theme-author{margin:15px 0 25px;color:#72777c;font-size:16px;font-weight:400;line-height:inherit}.theme-overlay .theme-author a{text-decoration:none}.theme-overlay .theme-description{color:#555;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #eee;color:#82878c;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#444;font-weight:600;margin-left:5px}.theme-overlay .parent-theme{background:#f7fcfe;border:1px solid #eee;border-right:4px solid #00a0d2;font-size:14px;font-weight:400;margin-top:30px;padding:10px 20px 10px 10px}.theme-overlay .parent-theme strong{font-weight:700}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;right:auto;left:auto;top:auto;bottom:auto;z-index:10}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 0 3% 3%}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-left:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-left:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 0 3% 3%}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-left:3%}.theme-browser .theme:nth-child(4n){margin-left:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-left:0}.theme-browser .theme:nth-child(even){margin-left:0}.theme-browser .theme:nth-child(odd){margin-left:5%}}@media only screen and (max-width:900px){.theme-overlay .theme-wrap{right:65px}}@media only screen and (max-width:780px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;left:0;bottom:0;right:0;padding:70px 20px 20px;border:none;z-index:100000;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:0;width:auto}.theme:focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-left:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-left:0}}@media only screen and (max-width:650px){.theme-overlay .theme-description{margin-right:0}.theme-overlay .theme-actions .delete-theme{position:relative;left:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wp-filter-search{float:none;clear:both;right:0;top:0;left:0;margin:10px 0;width:100%;max-width:280px}.theme-browser .theme.add-new-theme span:after{font:400 60px/90px dashicons;width:80px;height:80px;top:30%;right:50%;text-indent:0;margin-right:-40px}.single-theme .theme-wrap{margin:0 -10px 0 -12px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:right;width:50%;border-spacing:3px;padding:3px}.theme-browser .theme .theme-installed{background:#0073aa}.theme-browser .theme .notice-success p:before{color:#79ba49;content:"\f147";display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.theme-install.updated-message:before{content:''}.theme-install-php .wp-filter{padding:0 20px}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.plugin-install-tab-upload .upload-view-toggle .upload,.upload-view-toggle .browse{display:none}.plugin-install-tab-upload .upload-view-toggle .browse{display:inline}.upload-plugin,.upload-theme{box-sizing:border-box;display:none;margin:0;padding:50px 0;width:100%;overflow:hidden;position:relative;top:10px}.wp-full-overlay,.wp-full-overlay-main,.wp-full-overlay-sidebar{top:0;height:100%;bottom:0;right:0}.upload-plugin-wrap{display:none}.plugin-install-tab-upload .upload-plugin,.show-upload-view .upload-plugin,.show-upload-view .upload-plugin-wrap,.show-upload-view .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#fafafa;border:1px solid #e5e5e5;padding:30px;margin:30px auto;max-width:380px}.upload-plugin .install-help,.upload-theme .install-help{color:#555d66;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center}p.no-themes{clear:both;color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0;text-align:center;display:none}.no-results p.no-themes{display:block}.theme-install-php .add-new-theme{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0;text-align:right}}.theme-details .theme-rating{line-height:23px}.theme-details .star-rating{display:inline}.theme-details .no-rating,.theme-details .num-ratings{font-size:11px;color:#72777c}.theme-details .no-rating{display:block;line-height:20px}.appearance_page_custom-header #headimg{border:1px solid #ddd;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:right;margin:0 0 20px 20px}.appearance_page_custom-header .random-header{clear:both;margin:0 0 20px 20px;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-left:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #ddd}div#custom-background-image img{max-width:400px;max-height:300px}body.full-overlay-active{overflow:hidden}.wp-full-overlay{z-index:500000;position:fixed;overflow:visible;left:0;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:fixed;width:300px;padding:0;margin:0;z-index:10;background:#eee;border-left:none}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-right:0!important}.wp-full-overlay.expanded{margin-right:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible;margin-right:-300px}.wp-full-overlay-sidebar:after{content:"";display:block;position:absolute;top:0;bottom:0;left:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;left:0}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;right:0;left:0;height:45px;padding:0 15px;line-height:45px;z-index:10;margin:0;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;right:0;left:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:right;width:45px;height:45px;padding-left:2px;background:#eee;border-left:1px solid #ddd;color:#444;cursor:pointer;text-decoration:none;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:400 22px/1 dashicons;content:"\f335";position:relative;top:7px;right:13px}.theme-install-overlay .previous-theme:before{font:400 20px/1 dashicons;content:"\f345";position:relative;top:6px;right:14px}.theme-install-overlay .next-theme:before{font:400 20px/1 dashicons;content:"\f341";position:relative;top:6px;right:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#b4b9be;background:#eee;cursor:default;pointer-events:none}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{border-right:0;border-top:0;border-bottom:0}.theme-install-overlay .close-full-overlay:before,.theme-install-overlay .next-theme:before,.theme-install-overlay .previous-theme:before{top:2px;right:0}.wp-core-ui .wp-full-overlay .collapse-sidebar{position:fixed;bottom:0;right:0;padding:9px 10px 9px 0;height:45px;color:#656a6f;outline:0;line-height:1;background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0!important;border-radius:0!important}.wp-core-ui .wp-full-overlay .collapse-sidebar:focus,.wp-core-ui .wp-full-overlay .collapse-sidebar:hover{color:#0073aa}.wp-full-overlay .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar-label{display:inline-block;vertical-align:middle;line-height:20px}.wp-full-overlay .collapse-sidebar-arrow{width:20px;height:20px;margin:0 2px;-webkit-border-radius:50%;border-radius:50%;overflow:hidden}.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-full-overlay .collapse-sidebar-label{margin-right:3px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar-arrow:before{display:block;content:"\f148";background:#eee;font:400 20px/1 dashicons;speak:none;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-core-ui .wp-full-overlay.collapsed .collapse-sidebar{padding:9px 10px}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:rotate(180.001deg);-ms-transform:rotate(180.001deg);transform:rotate(180.001deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:none;-ms-transform:none;transform:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{-webkit-transition-property:right,left,top,bottom,width,margin;transition-property:right,left,top,bottom,width,margin;-webkit-transition-duration:.2s;transition-duration:.2s}.wp-full-overlay{background:#191e23}.wp-full-overlay-main{background-color:#f1f1f1}.expanded .wp-full-overlay-footer{position:fixed;bottom:0;right:0;width:300px;height:45px;border-top:1px solid #ddd;background:#eee}.wp-full-overlay-footer .devices{float:left}.wp-full-overlay-footer .devices button{cursor:pointer;background:0 0;border:none;height:45px;padding:0 3px;margin:0 -4px 0 0;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid transparent;border-bottom:4px solid transparent;-webkit-transition:background .1s ease-in-out;transition:background .1s ease-in-out}.wp-full-overlay-footer .devices button:before{display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/30px dashicons;vertical-align:top;margin:3px 0;padding:4px 8px;color:#656a6f}.wp-full-overlay-footer .devices button.active{border-bottom-color:#191e23}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button:hover{background-color:#fff}.wp-full-overlay-footer .devices button:focus{-webkit-box-shadow:none;box-shadow:none;outline:0;background-color:#fff;border-bottom-color:#0073aa}.wp-full-overlay-footer .devices button.active:before,.wp-full-overlay-footer .devices button:focus:before,.wp-full-overlay-footer .devices button:hover:before{color:#191e23}.wp-full-overlay-footer .devices .preview-desktop:before{content:"\f472"}.wp-full-overlay-footer .devices .preview-tablet:before{content:"\f471"}.wp-full-overlay-footer .devices .preview-mobile:before{content:"\f470"}@media screen and (max-width:1024px){.wp-full-overlay-footer .devices{display:none}}.collapsed .wp-full-overlay-footer .devices button:before{display:none}.preview-mobile .wp-full-overlay-main{margin:auto -160px auto 0;width:320px;height:480px;max-height:100%;max-width:100%;right:50%}.preview-tablet .wp-full-overlay-main{margin:auto -360px auto 0;width:720px;height:1080px;max-height:100%;max-width:100%;right:50%}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%}.customize-active #customize-container{display:block}.customize-loading #customize-container iframe{opacity:0}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;transition:opacity .3s}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:left;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin:15px 0;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0}.theme-details .theme-description{float:right;color:#72777c;line-height:20px;max-width:100%}.theme-install-overlay .wp-full-overlay-header .button{float:left;margin:8px 0 0 10px;line-height:26px}.theme-install-overlay .wp-full-overlay-sidebar{background:#eee;border-left:1px solid #ddd}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.theme-install-overlay .wp-full-overlay-main{position:absolute;z-index:0;background-color:#f1f1f1}.customize-loading #customize-container{background-color:#f1f1f1}#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;-webkit-transform:translateZ(0);transform:translateZ(0);background:url(../images/spinner.gif) center center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px}#customize-preview.wp-full-overlay-main.iframe-ready:before,.theme-install-overlay.iframe-ready .wp-full-overlay-main:before{background-image:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);-webkit-background-size:15px 123px;background-size:15px 123px}#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}.broken-themes table{width:100%}.theme-install-overlay .wp-full-overlay-header .theme-install{margin-top:6px;line-height:normal}}@media aural{.theme .notice:before,.theme-info .updated-message:before,.theme-info .updating-message:before,.theme-install.updating-message:before{speak:none}}
\ No newline at end of file
+.theme-browser .themes{clear:both}.themes-php:not(.network-admin) .wrap h1{margin-bottom:15px}.themes-php .wrap h1 .button{margin-right:20px}.themes-php .wp-filter-search{position:relative;top:-2px;right:20px;margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5}.theme .notice,.theme .notice.is-dismissible{right:0;margin:0;position:absolute;left:0;top:0}.theme-browser .theme{cursor:pointer;float:right;margin:0 0 4% 4%;position:relative;width:30.6%;border:1px solid #ddd;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ie8 .theme-browser .theme{width:30%;margin:0 0 4% 3%}.theme-browser .theme:nth-child(3n){margin-left:0}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;left:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-right:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:focus .theme-actions,.theme-browser .theme:hover .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-left:3px}.theme-browser .theme .theme-actions .button{float:none;margin-right:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;right:0;top:0;width:100%;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme:focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;position:absolute;top:35%;left:20%;right:20%;background:#23282d;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.theme-browser .theme:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.theme-browser .theme:focus .more-details{opacity:1}.theme-browser .theme.active:focus .theme-actions{display:block}.theme-browser.rendered .theme:focus .more-details,.theme-browser.rendered .theme:hover .more-details{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.theme-browser .theme.active .theme-name{background:#23282d;color:#fff;padding-left:110px;font-weight:300;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .customize-control .theme.active .theme-name{padding-left:15px}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(49,49,49,.7);border-right:none;opacity:1}.theme-browser .theme.active .theme-actions .button-primary{margin-left:0}.theme-browser .theme .theme-author{background:#23282d;color:#eee;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit;text-decoration:none}.theme-browser .theme.add-new-theme{border:none;-webkit-box-shadow:none;box-shadow:none}.theme-browser .theme.add-new-theme a{text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme a:after{display:block;content:"";background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;right:0;left:0;bottom:0;padding:0;text-shadow:none;border:5px dashed #d5d2ca;border:5px dashed rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-overlay .theme-actions,.theme-overlay .theme-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#e5e5e5;background:rgba(153,153,153,.1);-webkit-border-radius:50%;border-radius:50%;display:inline-block;content:"\f132";-webkit-font-smoothing:antialiased;font:400 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#999;position:absolute;top:30%;right:50%;margin-right:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme a:focus .theme-screenshot,.theme-browser .theme.add-new-theme a:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{background:#fff;color:#0073aa}.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{border-color:transparent;color:#fff;background:#0073aa;content:""}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;-webkit-box-shadow:none;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-18px;padding-top:0;padding-bottom:48px}.theme-browser .theme.add-new-theme a:focus .theme-name,.theme-browser .theme.add-new-theme a:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;right:-20px;left:0;top:0;bottom:0;background:#f1f1f1;background:rgba(238,238,238,.9);z-index:10000}.theme-overlay .theme-header{position:absolute;top:0;right:0;left:0;height:48px;border-bottom:1px solid #ddd}.theme-overlay .theme-header button{padding:0}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:left;border:0;border-right:1px solid #ddd;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:400 22px/50px dashicons!important;color:#72777c;display:inline-block;content:"\f335";font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#72777c;background-color:transparent;height:48px;width:54px;float:right;text-align:center;border:0;border-left:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#ddd;border-color:#ccc;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#ccc;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-header"],.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-background"],.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-header .left:before{content:"\f345"}.theme-overlay .theme-header .right:before{content:"\f341"}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;right:190px;left:30px;bottom:3%;background:#fff;-webkit-box-shadow:0 1px 20px 5px rgba(0,0,0,.1);box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:10000;box-sizing:border-box;-webkit-overflow-scrolling:touch}body.folded .theme-browser~.theme-overlay .theme-wrap{right:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;right:0;left:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;right:0;left:0;padding:10px 25px 5px;background:#f3f3f3;z-index:30;box-sizing:border-box;border-top:1px solid #eee}.theme-overlay .screenshot,.upload-plugin,.upload-theme{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.ie8 .theme-overlay .theme-actions{border:1px solid #eee}.theme-overlay .theme-actions a{margin-left:5px;margin-bottom:5px}.broken-themes a.delete-theme,.theme-overlay .theme-actions .delete-theme{color:#a00;text-decoration:none;border-color:transparent;-webkit-box-shadow:none;box-shadow:none;background:0 0}.theme-overlay .theme-actions .delete-theme{position:absolute;left:10px;bottom:5px}.broken-themes a.delete-theme:focus,.broken-themes a.delete-theme:hover,.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#d54e21;color:#fff;border-color:#d54e21}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:right;margin:0 0 0 30px;width:55%;max-width:880px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;box-sizing:border-box;overflow:hidden;position:relative;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:"";display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;right:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:350px;width:auto}.theme-overlay .screenshot.thumb{background:#ccc;border:1px solid #eee;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:"";display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;position:absolute;right:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #00a0d2}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:right}.theme-overlay .current-label{background:#32373c;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;-webkit-border-radius:2px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-name{color:#23282d;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.theme-overlay .theme-version{color:#72777c;font-size:13px;font-weight:400;float:none;display:inline-block;margin-right:10px}.theme-overlay .theme-author{margin:15px 0 25px;color:#72777c;font-size:16px;font-weight:400;line-height:inherit}.theme-overlay .theme-author a{text-decoration:none}.theme-overlay .theme-description{color:#555;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #eee;color:#82878c;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#444;font-weight:600;margin-left:5px}.theme-overlay .parent-theme{background:#f7fcfe;border:1px solid #eee;border-right:4px solid #00a0d2;font-size:14px;font-weight:400;margin-top:30px;padding:10px 20px 10px 10px}.theme-overlay .parent-theme strong{font-weight:700}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;right:auto;left:auto;top:auto;bottom:auto;z-index:10}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 0 3% 3%}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-left:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-left:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 0 3% 3%}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-left:3%}.theme-browser .theme:nth-child(4n){margin-left:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-left:0}.theme-browser .theme:nth-child(even){margin-left:0}.theme-browser .theme:nth-child(odd){margin-left:5%}}@media only screen and (max-width:900px){.theme-overlay .theme-wrap{right:65px}}@media only screen and (max-width:780px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;left:0;bottom:0;right:0;padding:70px 20px 20px;border:none;z-index:100000;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-right:0;width:auto}.theme:focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-left:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-left:0}}@media only screen and (max-width:650px){.theme-overlay .theme-description{margin-right:0}.theme-overlay .theme-actions .delete-theme{position:relative;left:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wp-filter-search{float:none;clear:both;right:0;top:0;left:0;margin:10px 0;width:100%;max-width:280px}.theme-browser .theme.add-new-theme span:after{font:400 60px/90px dashicons;width:80px;height:80px;top:30%;right:50%;text-indent:0;margin-right:-40px}.single-theme .theme-wrap{margin:0 -10px 0 -12px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:right;width:50%;border-spacing:3px;padding:3px}.theme-browser .theme .theme-installed{background:#0073aa}.theme-browser .theme .notice-success p:before{color:#79ba49;content:"\f147";display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.theme-install.updated-message:before{content:''}.theme-install-php .wp-filter{padding-right:20px}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.plugin-install-tab-upload .upload-view-toggle .upload,.upload-view-toggle .browse{display:none}.plugin-install-tab-upload .upload-view-toggle .browse{display:inline}.upload-plugin,.upload-theme{box-sizing:border-box;display:none;margin:0;padding:50px 0;width:100%;overflow:hidden;position:relative;top:10px}.upload-plugin-wrap{display:none}.plugin-install-tab-upload .upload-plugin,.show-upload-view .upload-plugin,.show-upload-view .upload-plugin-wrap,.show-upload-view .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#fafafa;border:1px solid #e5e5e5;padding:30px;margin:30px auto;max-width:380px}.upload-plugin .install-help,.upload-theme .install-help{color:#555d66;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center}p.no-themes{clear:both;color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0;text-align:center;display:none}.no-results p.no-themes{display:block}.theme-install-php .add-new-theme{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0;text-align:right}}.theme-details .theme-rating{line-height:23px}.theme-details .star-rating{display:inline}.theme-details .no-rating,.theme-details .num-ratings{font-size:11px;color:#72777c}.theme-details .no-rating{display:block;line-height:20px}.appearance_page_custom-header #headimg{border:1px solid #ddd;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:right;margin:0 0 20px 20px}.appearance_page_custom-header .random-header{clear:both;margin:0 0 20px 20px;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-left:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #ddd}div#custom-background-image img{max-width:400px;max-height:300px}.background-position-control input[type=radio]:checked~.button{background:#eee;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);z-index:1}.background-position-control input[type=radio]:focus~.button{border-color:#5b9dd9;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(0,115,170,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(0,115,170,.8);color:#23282d}.background-position-control .background-position-center-icon,.background-position-control .background-position-center-icon:before{display:inline-block;line-height:1;text-align:center;-webkit-transition:background-color .1s ease-in 0;transition:background-color .1s ease-in 0}.background-position-control .background-position-center-icon{height:20px;margin-top:13px;vertical-align:top;width:20px}.background-position-control .background-position-center-icon:before{background-color:#555;-webkit-border-radius:50%;border-radius:50%;content:"";height:12px;width:12px}.background-position-control .button:hover .background-position-center-icon:before,.background-position-control input[type=radio]:focus~.button .background-position-center-icon:before{background-color:#23282d}.background-position-control .button-group{display:block}.background-position-control .button-group .button{-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;height:40px!important;line-height:37px!important;margin:0 0 0 -1px!important;padding:0 10px 1px!important;position:relative}.wp-full-overlay,.wp-full-overlay-sidebar{position:fixed;top:0;height:100%;bottom:0;right:0}.background-position-control .button-group .button:active,.background-position-control .button-group .button:focus,.background-position-control .button-group .button:hover{z-index:1}.background-position-control .button-group:last-child .button{-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc}.background-position-control .button-group>label{margin:0!important}.background-position-control .button-group:first-child>label:first-child .button{-webkit-border-radius:0 3px 0 0;border-radius:0 3px 0 0}.background-position-control .button-group:first-child>label:first-child .dashicons{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.background-position-control .button-group:first-child>label:last-child .button{-webkit-border-radius:3px 0 0;border-radius:3px 0 0}.background-position-control .button-group:first-child>label:last-child .dashicons{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.background-position-control .button-group:last-child>label:first-child .button{-webkit-border-radius:0 0 3px;border-radius:0 0 3px}.background-position-control .button-group:last-child>label:first-child .dashicons{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.background-position-control .button-group:last-child>label:last-child .button{-webkit-border-radius:0 0 0 3px;border-radius:0 0 0 3px}.background-position-control .button-group:last-child>label:last-child .dashicons{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.background-position-control .button-group .dashicons{margin-top:9px}.background-position-control .button-group+.button-group{margin-top:-1px}body.full-overlay-active{overflow:hidden;visibility:hidden}.wp-full-overlay{z-index:500000;overflow:visible;left:0;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:300px;padding:0;margin:0;z-index:10;background:#eee;border-left:none}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-right:0!important}.wp-full-overlay.expanded{margin-right:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible;margin-right:-300px}.wp-full-overlay-sidebar:after{content:"";display:block;position:absolute;top:0;bottom:0;left:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;right:0;left:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;right:0;left:0;height:45px;padding:0 15px;line-height:45px;z-index:10;margin:0;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;right:0;left:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:right;width:45px;height:45px;padding-left:2px;background:#eee;border-left:1px solid #ddd;color:#444;cursor:pointer;text-decoration:none;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:400 22px/1 dashicons;content:"\f335";position:relative;top:7px;right:13px}.theme-install-overlay .previous-theme:before{font:400 20px/1 dashicons;content:"\f345";position:relative;top:6px;right:14px}.theme-install-overlay .next-theme:before{font:400 20px/1 dashicons;content:"\f341";position:relative;top:6px;right:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#b4b9be;background:#eee;cursor:default;pointer-events:none}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{border-right:0;border-top:0;border-bottom:0}.theme-install-overlay .close-full-overlay:before,.theme-install-overlay .next-theme:before,.theme-install-overlay .previous-theme:before{top:2px;right:0}.wp-core-ui .wp-full-overlay .collapse-sidebar{position:fixed;bottom:0;right:0;padding:9px 10px 9px 0;height:45px;color:#656a6f;outline:0;line-height:1;background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0!important;border-radius:0!important;z-index:-1}.wp-core-ui .wp-full-overlay .collapse-sidebar:focus,.wp-core-ui .wp-full-overlay .collapse-sidebar:hover{color:#0073aa}.wp-full-overlay .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar-label{display:inline-block;vertical-align:middle;line-height:20px}.wp-full-overlay .collapse-sidebar-arrow{width:20px;height:20px;margin:0 2px;-webkit-border-radius:50%;border-radius:50%;overflow:hidden}.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-full-overlay .collapse-sidebar-label{margin-right:3px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar-arrow:before{display:block;content:"\f148";background:#eee;font:400 20px/1 dashicons;speak:none;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-core-ui .wp-full-overlay.collapsed .collapse-sidebar{padding:9px 10px}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:rotate(180.001deg);-ms-transform:rotate(180.001deg);transform:rotate(180.001deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:none;-ms-transform:none;transform:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{-webkit-transition-property:right,left,top,bottom,width,margin;transition-property:right,left,top,bottom,width,margin;-webkit-transition-duration:.2s;transition-duration:.2s}.wp-full-overlay{background:#191e23}.wp-full-overlay-main{background-color:#f1f1f1}.expanded .wp-full-overlay-footer{position:fixed;bottom:0;right:0;width:299px;height:45px;border-top:1px solid #ddd;background:#eee}.wp-full-overlay-footer .devices{float:left;background:#eee;-webkit-box-shadow:20px 0 10px -5px #eee;box-shadow:20px 0 10px -5px #eee}.wp-full-overlay-footer .devices button{cursor:pointer;background:0 0;border:none;height:45px;padding:0 3px;margin:0 -4px 0 0;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid transparent;border-bottom:4px solid transparent;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}.wp-full-overlay-footer .devices button:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.wp-full-overlay-footer .devices button:before{display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/30px dashicons;vertical-align:top;margin:3px 0;padding:4px 8px;color:#656a6f}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize,.theme-install-overlay{display:none}.wp-full-overlay-footer .devices button.active{border-bottom-color:#191e23}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button:hover{background-color:#fff}.wp-full-overlay-footer .devices button.active:hover,.wp-full-overlay-footer .devices button:focus{border-bottom-color:#0073aa}.wp-full-overlay-footer .devices button.active:before{color:#191e23}.wp-full-overlay-footer .devices button:focus:before,.wp-full-overlay-footer .devices button:hover:before{color:#0073aa}.wp-full-overlay-footer .devices .preview-desktop:before{content:"\f472"}.wp-full-overlay-footer .devices .preview-tablet:before{content:"\f471"}.wp-full-overlay-footer .devices .preview-mobile:before{content:"\f470"}@media screen and (max-width:1024px){.wp-full-overlay-footer .devices{display:none}}.collapsed .wp-full-overlay-footer .devices button:before{display:none}.preview-mobile .wp-full-overlay-main{margin:auto -160px auto 0;width:320px;height:480px;max-height:100%;max-width:100%;right:50%}.preview-tablet .wp-full-overlay-main{margin:auto -360px auto 0;width:720px;height:1080px;max-height:100%;max-width:100%;right:50%}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;right:0;left:0;height:100%}#customize-container,.theme-install-overlay{visibility:visible}.customize-loading #customize-container iframe{opacity:0}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;transition:opacity .3s}#customize-controls{margin-top:0}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:left;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin:15px 0;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0}.theme-details .theme-description{float:right;color:#72777c;line-height:20px;max-width:100%}.theme-install-overlay .wp-full-overlay-header .button{float:left;margin:8px 0 0 10px;line-height:26px}.theme-install-overlay .wp-full-overlay-sidebar{background:#eee;border-left:1px solid #ddd}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.theme-install-overlay .wp-full-overlay-main{position:absolute;z-index:0;background-color:#f1f1f1}.customize-loading #customize-container{background-color:#f1f1f1}#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;-webkit-transform:translateZ(0);transform:translateZ(0);background:url(../images/spinner.gif) center center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px}#customize-preview.wp-full-overlay-main.iframe-ready:before,.theme-install-overlay.iframe-ready .wp-full-overlay-main:before{background-image:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);-webkit-background-size:15px 123px;background-size:15px 123px}#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}.broken-themes table{width:100%}.theme-install-overlay .wp-full-overlay-header .theme-install{margin-top:6px;line-height:normal}}@media aural{.theme .notice:before,.theme-info .updated-message:before,.theme-info .updating-message:before,.theme-install.updating-message:before{speak:none}}
\ No newline at end of file
diff --git a/wp-admin/css/themes.css b/wp-admin/css/themes.css
index ab67ad064..db01ce10e 100644
--- a/wp-admin/css/themes.css
+++ b/wp-admin/css/themes.css
@@ -114,7 +114,7 @@
 	margin-right: 3px;
 }
 
-.theme-browser .theme .theme-actions .button-secondary {
+.theme-browser .theme .theme-actions .button {
 	float: none;
 	margin-left: 3px;
 }
@@ -1017,7 +1017,7 @@ body.folded .theme-browser ~ .theme-overlay .theme-wrap {
 }
 
 .theme-install-php .wp-filter {
-	padding: 0 20px;
+	padding-left: 20px;
 }
 
 .theme-install-php a.upload,
@@ -1176,12 +1176,143 @@ div#custom-background-image img {
 	max-height: 300px;
 }
 
+.background-position-control input[type="radio"]:checked ~ .button {
+	background: #eee;
+	border-color: #999;
+	-webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, .5 );
+	box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, .5 );
+	z-index: 1;
+}
+
+.background-position-control input[type="radio"]:focus ~ .button {
+	border-color: #5b9dd9;
+	-webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, .5 ), 0 0 3px rgba( 0, 115, 170, .8 );
+	box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, .5 ), 0 0 3px rgba( 0, 115, 170, .8 );
+	color: #23282d;
+}
+
+.background-position-control .background-position-center-icon,
+.background-position-control .background-position-center-icon:before {
+	display: inline-block;
+	line-height: 1;
+	text-align: center;
+	-webkit-transition: background-color .1s ease-in 0;
+	transition: background-color .1s ease-in 0;
+}
+
+.background-position-control .background-position-center-icon {
+	height: 20px;
+	margin-top: 13px;
+	vertical-align: top;
+	width: 20px;
+}
+
+.background-position-control .background-position-center-icon:before {
+	background-color: #555;
+	-webkit-border-radius: 50%;
+	border-radius: 50%;
+	content: "";
+	height: 12px;
+	width: 12px;
+}
+
+.background-position-control .button:hover .background-position-center-icon:before,
+.background-position-control input[type="radio"]:focus ~ .button .background-position-center-icon:before {
+	background-color: #23282d;
+}
+
+.background-position-control .button-group {
+	display: block;
+}
+
+.background-position-control .button-group .button {
+	-webkit-border-radius: 0;
+	border-radius: 0;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	/* Following properties are overridden by buttons responsive styles (see: wp-includes/css/buttons.css). */
+	height: 40px !important;
+	line-height: 37px !important;
+	margin: 0 -1px 0 0 !important;
+	padding: 0 10px 1px !important;
+	position: relative;
+}
+
+.background-position-control .button-group .button:active,
+.background-position-control .button-group .button:hover,
+.background-position-control .button-group .button:focus {
+	z-index: 1;
+}
+
+.background-position-control .button-group:last-child .button {
+	-webkit-box-shadow: 0 1px 0 #ccc;
+	box-shadow: 0 1px 0 #ccc;
+}
+
+.background-position-control .button-group > label {
+	margin: 0 !important;
+}
+
+.background-position-control .button-group:first-child > label:first-child .button {
+	-webkit-border-radius: 3px 0 0;
+	border-radius: 3px 0 0;
+}
+
+.background-position-control .button-group:first-child > label:first-child .dashicons {
+	-webkit-transform: rotate( 45deg );
+	-ms-transform: rotate( 45deg );
+	transform: rotate( 45deg );
+}
+
+.background-position-control .button-group:first-child > label:last-child .button {
+	-webkit-border-radius: 0 3px 0 0;
+	border-radius: 0 3px 0 0;
+}
+
+.background-position-control .button-group:first-child > label:last-child .dashicons {
+	-webkit-transform: rotate( -45deg );
+	-ms-transform: rotate( -45deg );
+	transform: rotate( -45deg );
+}
+
+.background-position-control .button-group:last-child > label:first-child .button {
+	-webkit-border-radius: 0 0 0 3px;
+	border-radius: 0 0 0 3px;
+}
+
+.background-position-control .button-group:last-child > label:first-child .dashicons {
+	-webkit-transform: rotate( -45deg );
+	-ms-transform: rotate( -45deg );
+	transform: rotate( -45deg );
+}
+
+.background-position-control .button-group:last-child > label:last-child .button {
+	-webkit-border-radius: 0 0 3px 0;
+	border-radius: 0 0 3px 0;
+}
+
+.background-position-control .button-group:last-child > label:last-child .dashicons {
+	-webkit-transform: rotate( 45deg );
+	-ms-transform: rotate( 45deg );
+	transform: rotate( 45deg );
+}
+
+.background-position-control .button-group .dashicons {
+	margin-top: 9px;
+}
+
+.background-position-control .button-group + .button-group {
+	margin-top: -1px;
+}
+
 /*------------------------------------------------------------------------------
   23.0 - Full Overlay w/ Sidebar
 ------------------------------------------------------------------------------*/
 
 body.full-overlay-active {
 	overflow: hidden;
+	/* Hide all the content, the Customizer overlay is then made visible to be the only available content. */
+	visibility: hidden;
 }
 
 .wp-full-overlay {
@@ -1390,6 +1521,7 @@ body.full-overlay-active {
 	box-shadow: none !important;
 	-webkit-border-radius: 0 !important;
 	border-radius: 0 !important;
+	z-index: -1; /* Below device buttons */
 }
 
 .wp-core-ui .wp-full-overlay .collapse-sidebar:hover,
@@ -1485,7 +1617,7 @@ body.full-overlay-active {
 	position: fixed;
 	bottom: 0;
 	left: 0;
-	width: 300px;
+	width: 299px;
 	height: 45px;
 	border-top: 1px solid #ddd;
 	background: #eee;
@@ -1493,6 +1625,9 @@ body.full-overlay-active {
 
 .wp-full-overlay-footer .devices {
 	float: right;
+	background: #eee;
+	-webkit-box-shadow: -20px 0 10px -5px #eee;
+	box-shadow: -20px 0 10px -5px #eee;
 }
 
 .wp-full-overlay-footer .devices button {
@@ -1506,8 +1641,12 @@ body.full-overlay-active {
 	box-shadow: none;
 	border-top: 1px solid transparent;
 	border-bottom: 4px solid transparent;
-	-webkit-transition: background .1s ease-in-out;
-	transition: background .1s ease-in-out;
+	-webkit-transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
+	transition: .15s color ease-in-out,
+	            .15s background-color ease-in-out,
+	            .15s border-color ease-in-out;
 }
 
 .wp-full-overlay-footer .devices button:focus {
@@ -1535,15 +1674,18 @@ body.full-overlay-active {
 	background-color: #fff;
 }
 
-.wp-full-overlay-footer .devices button:focus {
-	background-color: #fff;
+.wp-full-overlay-footer .devices button:focus,
+.wp-full-overlay-footer .devices button.active:hover {
 	border-bottom-color: #0073aa;
 }
 
-.wp-full-overlay-footer .devices button.active:before,
+.wp-full-overlay-footer .devices button.active:before {
+	color: #191e23;
+}
+
 .wp-full-overlay-footer .devices button:hover:before,
 .wp-full-overlay-footer .devices button:focus:before {
-	color: #191e23;
+	color: #0073aa;
 }
 
 .wp-full-overlay-footer .devices .preview-desktop:before {
@@ -1613,8 +1755,10 @@ body.full-overlay-active {
 	height: 100%;
 }
 
-.customize-active #customize-container {
-	display: block;
+/* Make the Customizer and Theme installer overlays the only available content. */
+#customize-container,
+.theme-install-overlay {
+	visibility: visible;
 }
 
 .customize-loading #customize-container iframe {
diff --git a/wp-admin/css/themes.min.css b/wp-admin/css/themes.min.css
index 0dc2017ae..e904bb55e 100644
--- a/wp-admin/css/themes.min.css
+++ b/wp-admin/css/themes.min.css
@@ -1 +1 @@
-.theme-browser .themes{clear:both}.themes-php:not(.network-admin) .wrap h1{margin-bottom:15px}.themes-php .wrap h1 .button{margin-left:20px}.themes-php .wp-filter-search{position:relative;top:-2px;left:20px;margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5}.theme .notice,.theme .notice.is-dismissible{left:0;margin:0;position:absolute;right:0;top:0}.theme-browser .theme{cursor:pointer;float:left;margin:0 4% 4% 0;position:relative;width:30.6%;border:1px solid #ddd;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ie8 .theme-browser .theme{width:30%;margin:0 3% 4% 0}.theme-browser .theme:nth-child(3n){margin-right:0}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;right:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-left:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:focus .theme-actions,.theme-browser .theme:hover .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-right:3px}.theme-browser .theme .theme-actions .button-secondary{float:none;margin-left:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;left:0;top:0;width:100%;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme:focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;position:absolute;top:35%;right:20%;left:20%;background:#23282d;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.theme-browser .theme:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.theme-browser .theme:focus .more-details{opacity:1}.theme-browser .theme.active:focus .theme-actions{display:block}.theme-browser.rendered .theme:focus .more-details,.theme-browser.rendered .theme:hover .more-details{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.theme-browser .theme.active .theme-name{background:#23282d;color:#fff;padding-right:110px;font-weight:300;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .customize-control .theme.active .theme-name{padding-right:15px}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(49,49,49,.7);border-left:none;opacity:1}.theme-browser .theme.active .theme-actions .button-primary{margin-right:0}.theme-browser .theme .theme-author{background:#23282d;color:#eee;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit;text-decoration:none}.theme-browser .theme.add-new-theme{border:none;-webkit-box-shadow:none;box-shadow:none}.theme-browser .theme.add-new-theme a{text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme a:after{display:block;content:"";background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;left:0;right:0;bottom:0;padding:0;text-shadow:none;border:5px dashed #d5d2ca;border:5px dashed rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-overlay .theme-actions,.theme-overlay .theme-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#e5e5e5;background:rgba(153,153,153,.1);-webkit-border-radius:50%;border-radius:50%;display:inline-block;content:"\f132";-webkit-font-smoothing:antialiased;font:400 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#999;position:absolute;top:30%;left:50%;margin-left:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme a:focus .theme-screenshot,.theme-browser .theme.add-new-theme a:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{background:#fff;color:#0073aa}.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{border-color:transparent;color:#fff;background:#0073aa;content:""}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;-webkit-box-shadow:none;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-18px;padding-top:0;padding-bottom:48px}.theme-browser .theme.add-new-theme a:focus .theme-name,.theme-browser .theme.add-new-theme a:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;left:-20px;right:0;top:0;bottom:0;background:#f1f1f1;background:rgba(238,238,238,.9);z-index:10000}.theme-overlay .theme-header .close,.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;background-color:transparent;height:48px;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;text-align:center}.theme-overlay .theme-header{position:absolute;top:0;left:0;right:0;height:48px;border-bottom:1px solid #ddd}.theme-overlay .theme-header button{padding:0}.theme-overlay .theme-header .close{width:50px;float:right;border:0;border-left:1px solid #ddd;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:400 22px/50px dashicons!important;color:#72777c;display:inline-block;content:"\f335";font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{color:#72777c;width:54px;float:left;border:0;border-right:1px solid #ddd;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#ddd;border-color:#ccc;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#ccc;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-header"],.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-background"],.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-header .left:before{content:"\f341"}.theme-overlay .theme-header .right:before{content:"\f345"}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;left:190px;right:30px;bottom:3%;background:#fff;-webkit-box-shadow:0 1px 20px 5px rgba(0,0,0,.1);box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:10000;box-sizing:border-box;-webkit-overflow-scrolling:touch}body.folded .theme-browser~.theme-overlay .theme-wrap{left:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;left:0;right:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;left:0;right:0;padding:10px 25px 5px;background:#f3f3f3;z-index:30;box-sizing:border-box;border-top:1px solid #eee}.theme-overlay .screenshot,.upload-plugin,.upload-theme{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.ie8 .theme-overlay .theme-actions{border:1px solid #eee}.theme-overlay .theme-actions a{margin-right:5px;margin-bottom:5px}.broken-themes a.delete-theme,.theme-overlay .theme-actions .delete-theme{color:#a00;text-decoration:none;border-color:transparent;-webkit-box-shadow:none;box-shadow:none;background:0 0}.theme-overlay .theme-actions .delete-theme{position:absolute;right:10px;bottom:5px}.broken-themes a.delete-theme:focus,.broken-themes a.delete-theme:hover,.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#d54e21;color:#fff;border-color:#d54e21}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:left;margin:0 30px 0 0;width:55%;max-width:880px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;box-sizing:border-box;overflow:hidden;position:relative;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:"";display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;left:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:350px;width:auto}.theme-overlay .screenshot.thumb{background:#ccc;border:1px solid #eee;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:"";display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;position:absolute;left:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #00a0d2}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:left}.theme-overlay .current-label{background:#32373c;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;-webkit-border-radius:2px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-name{color:#23282d;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.theme-overlay .theme-version{color:#72777c;font-size:13px;font-weight:400;float:none;display:inline-block;margin-left:10px}.theme-overlay .theme-author{margin:15px 0 25px;color:#72777c;font-size:16px;font-weight:400;line-height:inherit}.theme-overlay .theme-author a{text-decoration:none}.theme-overlay .theme-description{color:#555;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #eee;color:#82878c;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#444;font-weight:600;margin-right:5px}.theme-overlay .parent-theme{background:#f7fcfe;border:1px solid #eee;border-left:4px solid #00a0d2;font-size:14px;font-weight:400;margin-top:30px;padding:10px 10px 10px 20px}.theme-overlay .parent-theme strong{font-weight:700}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;left:auto;right:auto;top:auto;bottom:auto;z-index:10}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 3% 3% 0}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-right:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-right:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 3% 3% 0}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-right:3%}.theme-browser .theme:nth-child(4n){margin-right:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-right:0}.theme-browser .theme:nth-child(even){margin-right:0}.theme-browser .theme:nth-child(odd){margin-right:5%}}@media only screen and (max-width:900px){.theme-overlay .theme-wrap{left:65px}}@media only screen and (max-width:780px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;right:0;bottom:0;left:0;padding:70px 20px 20px;border:none;z-index:100000;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:0;width:auto}.theme:focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-right:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-right:0}}@media only screen and (max-width:650px){.theme-overlay .theme-description{margin-left:0}.theme-overlay .theme-actions .delete-theme{position:relative;right:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wp-filter-search{float:none;clear:both;left:0;top:0;right:0;margin:10px 0;width:100%;max-width:280px}.theme-browser .theme.add-new-theme span:after{font:400 60px/90px dashicons;width:80px;height:80px;top:30%;left:50%;text-indent:0;margin-left:-40px}.single-theme .theme-wrap{margin:0 -12px 0 -10px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:left;width:50%;border-spacing:3px;padding:3px}.theme-browser .theme .theme-installed{background:#0073aa}.theme-browser .theme .notice-success p:before{color:#79ba49;content:"\f147";display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.theme-install.updated-message:before{content:''}.theme-install-php .wp-filter{padding:0 20px}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.plugin-install-tab-upload .upload-view-toggle .upload,.upload-view-toggle .browse{display:none}.plugin-install-tab-upload .upload-view-toggle .browse{display:inline}.upload-plugin,.upload-theme{box-sizing:border-box;display:none;margin:0;padding:50px 0;width:100%;overflow:hidden;position:relative;top:10px}.wp-full-overlay,.wp-full-overlay-main,.wp-full-overlay-sidebar{top:0;height:100%;bottom:0;left:0}.upload-plugin-wrap{display:none}.plugin-install-tab-upload .upload-plugin,.show-upload-view .upload-plugin,.show-upload-view .upload-plugin-wrap,.show-upload-view .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#fafafa;border:1px solid #e5e5e5;padding:30px;margin:30px auto;max-width:380px}.upload-plugin .install-help,.upload-theme .install-help{color:#555d66;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center}p.no-themes{clear:both;color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0;text-align:center;display:none}.no-results p.no-themes{display:block}.theme-install-php .add-new-theme{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0;text-align:left}}.theme-details .theme-rating{line-height:23px}.theme-details .star-rating{display:inline}.theme-details .no-rating,.theme-details .num-ratings{font-size:11px;color:#72777c}.theme-details .no-rating{display:block;line-height:20px}.appearance_page_custom-header #headimg{border:1px solid #ddd;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:left;margin:0 20px 20px 0}.appearance_page_custom-header .random-header{clear:both;margin:0 20px 20px 0;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #ddd}div#custom-background-image img{max-width:400px;max-height:300px}body.full-overlay-active{overflow:hidden}.wp-full-overlay{z-index:500000;position:fixed;overflow:visible;right:0;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:fixed;width:300px;padding:0;margin:0;z-index:10;background:#eee;border-right:none}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-left:0!important}.wp-full-overlay.expanded{margin-left:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible;margin-left:-300px}.wp-full-overlay-sidebar:after{content:"";display:block;position:absolute;top:0;bottom:0;right:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;right:0}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;left:0;right:0;height:45px;padding:0 15px;line-height:45px;z-index:10;margin:0;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;left:0;right:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:left;width:45px;height:45px;padding-right:2px;background:#eee;border-right:1px solid #ddd;color:#444;cursor:pointer;text-decoration:none;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:400 22px/1 dashicons;content:"\f335";position:relative;top:7px;left:13px}.theme-install-overlay .previous-theme:before{font:400 20px/1 dashicons;content:"\f341";position:relative;top:6px;left:14px}.theme-install-overlay .next-theme:before{font:400 20px/1 dashicons;content:"\f345";position:relative;top:6px;left:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#b4b9be;background:#eee;cursor:default;pointer-events:none}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{border-left:0;border-top:0;border-bottom:0}.theme-install-overlay .close-full-overlay:before,.theme-install-overlay .next-theme:before,.theme-install-overlay .previous-theme:before{top:2px;left:0}.wp-core-ui .wp-full-overlay .collapse-sidebar{position:fixed;bottom:0;left:0;padding:9px 0 9px 10px;height:45px;color:#656a6f;outline:0;line-height:1;background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0!important;border-radius:0!important}.wp-core-ui .wp-full-overlay .collapse-sidebar:focus,.wp-core-ui .wp-full-overlay .collapse-sidebar:hover{color:#0073aa}.wp-full-overlay .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar-label{display:inline-block;vertical-align:middle;line-height:20px}.wp-full-overlay .collapse-sidebar-arrow{width:20px;height:20px;margin:0 2px;-webkit-border-radius:50%;border-radius:50%;overflow:hidden}.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-full-overlay .collapse-sidebar-label{margin-left:3px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar-arrow:before{display:block;content:"\f148";background:#eee;font:400 20px/1 dashicons;speak:none;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-core-ui .wp-full-overlay.collapsed .collapse-sidebar{padding:9px 10px}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:rotate(180.001deg);-ms-transform:rotate(180.001deg);transform:rotate(180.001deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:none;-ms-transform:none;transform:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{-webkit-transition-property:left,right,top,bottom,width,margin;transition-property:left,right,top,bottom,width,margin;-webkit-transition-duration:.2s;transition-duration:.2s}.wp-full-overlay{background:#191e23}.wp-full-overlay-main{background-color:#f1f1f1}.expanded .wp-full-overlay-footer{position:fixed;bottom:0;left:0;width:300px;height:45px;border-top:1px solid #ddd;background:#eee}.wp-full-overlay-footer .devices{float:right}.wp-full-overlay-footer .devices button{cursor:pointer;background:0 0;border:none;height:45px;padding:0 3px;margin:0 0 0 -4px;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid transparent;border-bottom:4px solid transparent;-webkit-transition:background .1s ease-in-out;transition:background .1s ease-in-out}.wp-full-overlay-footer .devices button:before{display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/30px dashicons;vertical-align:top;margin:3px 0;padding:4px 8px;color:#656a6f}.wp-full-overlay-footer .devices button.active{border-bottom-color:#191e23}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button:hover{background-color:#fff}.wp-full-overlay-footer .devices button:focus{-webkit-box-shadow:none;box-shadow:none;outline:0;background-color:#fff;border-bottom-color:#0073aa}.wp-full-overlay-footer .devices button.active:before,.wp-full-overlay-footer .devices button:focus:before,.wp-full-overlay-footer .devices button:hover:before{color:#191e23}.wp-full-overlay-footer .devices .preview-desktop:before{content:"\f472"}.wp-full-overlay-footer .devices .preview-tablet:before{content:"\f471"}.wp-full-overlay-footer .devices .preview-mobile:before{content:"\f470"}@media screen and (max-width:1024px){.wp-full-overlay-footer .devices{display:none}}.collapsed .wp-full-overlay-footer .devices button:before{display:none}.preview-mobile .wp-full-overlay-main{margin:auto 0 auto -160px;width:320px;height:480px;max-height:100%;max-width:100%;left:50%}.preview-tablet .wp-full-overlay-main{margin:auto 0 auto -360px;width:720px;height:1080px;max-height:100%;max-width:100%;left:50%}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%}.customize-active #customize-container{display:block}.customize-loading #customize-container iframe{opacity:0}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;transition:opacity .3s}#customize-controls{margin-top:0}.theme-install-overlay{display:none}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:right;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin:15px 0;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0}.theme-details .theme-description{float:left;color:#72777c;line-height:20px;max-width:100%}.theme-install-overlay .wp-full-overlay-header .button{float:right;margin:8px 10px 0 0;line-height:26px}.theme-install-overlay .wp-full-overlay-sidebar{background:#eee;border-right:1px solid #ddd}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.theme-install-overlay .wp-full-overlay-main{position:absolute;z-index:0;background-color:#f1f1f1}.customize-loading #customize-container{background-color:#f1f1f1}#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;-webkit-transform:translateZ(0);transform:translateZ(0);background:url(../images/spinner.gif) center center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px}#customize-preview.wp-full-overlay-main.iframe-ready:before,.theme-install-overlay.iframe-ready .wp-full-overlay-main:before{background-image:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);-webkit-background-size:15px 123px;background-size:15px 123px}#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}.broken-themes table{width:100%}.theme-install-overlay .wp-full-overlay-header .theme-install{margin-top:6px;line-height:normal}}@media aural{.theme .notice:before,.theme-info .updated-message:before,.theme-info .updating-message:before,.theme-install.updating-message:before{speak:none}}
\ No newline at end of file
+.theme-browser .themes{clear:both}.themes-php:not(.network-admin) .wrap h1{margin-bottom:15px}.themes-php .wrap h1 .button{margin-left:20px}.themes-php .wp-filter-search{position:relative;top:-2px;left:20px;margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5}.theme .notice,.theme .notice.is-dismissible{left:0;margin:0;position:absolute;right:0;top:0}.theme-browser .theme{cursor:pointer;float:left;margin:0 4% 4% 0;position:relative;width:30.6%;border:1px solid #ddd;-webkit-box-shadow:0 1px 1px -1px rgba(0,0,0,.1);box-shadow:0 1px 1px -1px rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ie8 .theme-browser .theme{width:30%;margin:0 3% 4% 0}.theme-browser .theme:nth-child(3n){margin-right:0}.theme-browser .theme:focus,.theme-browser .theme:hover{cursor:pointer}.theme-browser .theme .theme-name{font-size:15px;font-weight:600;height:18px;margin:0;padding:15px;-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,.1);box-shadow:inset 0 1px 0 rgba(0,0,0,.1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:#fff;background:rgba(255,255,255,.65)}.theme-browser .theme .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out;position:absolute;bottom:0;right:0;height:38px;padding:9px 10px 0;background:rgba(244,244,244,.7);border-left:1px solid rgba(0,0,0,.05)}.theme-browser .theme.focus .theme-actions,.theme-browser .theme:focus .theme-actions,.theme-browser .theme:hover .theme-actions{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.theme-browser .theme .theme-actions .button-primary{margin-right:3px}.theme-browser .theme .theme-actions .button{float:none;margin-left:3px}.theme-browser .theme .theme-screenshot{display:block;overflow:hidden;position:relative;-webkit-backface-visibility:hidden;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme .theme-screenshot:after{content:"";display:block;padding-top:66.66666%}.theme-browser .theme .theme-screenshot img{height:auto;position:absolute;left:0;top:0;width:100%;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.theme-browser .theme:focus .theme-screenshot,.theme-browser .theme:hover .theme-screenshot{background:#fff}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:.4}.theme-browser .theme .more-details{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";opacity:0;position:absolute;top:35%;right:20%;left:20%;background:#23282d;background:rgba(0,0,0,.7);color:#fff;font-size:15px;text-shadow:0 1px 0 rgba(0,0,0,.6);-webkit-font-smoothing:antialiased;font-weight:600;padding:15px 12px;text-align:center;-webkit-border-radius:3px;border-radius:3px;-webkit-transition:opacity .1s ease-in-out;transition:opacity .1s ease-in-out}.theme-browser .theme:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.theme-browser .theme:focus .more-details{opacity:1}.theme-browser .theme.active:focus .theme-actions{display:block}.theme-browser.rendered .theme:focus .more-details,.theme-browser.rendered .theme:hover .more-details{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";opacity:1}.theme-browser .theme.active .theme-name{background:#23282d;color:#fff;padding-right:110px;font-weight:300;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.5);box-shadow:inset 0 1px 1px rgba(0,0,0,.5)}.theme-browser .customize-control .theme.active .theme-name{padding-right:15px}.theme-browser .theme.active .theme-name span{font-weight:600}.theme-browser .theme.active .theme-actions{background:rgba(49,49,49,.7);border-left:none;opacity:1}.theme-browser .theme.active .theme-actions .button-primary{margin-right:0}.theme-browser .theme .theme-author{background:#23282d;color:#eee;display:none;font-size:14px;margin:0 10px;padding:5px 10px;position:absolute;bottom:56px}.theme-browser .theme.display-author .theme-author{display:block}.theme-browser .theme.display-author .theme-author a{color:inherit;text-decoration:none}.theme-browser .theme.add-new-theme{border:none;-webkit-box-shadow:none;box-shadow:none}.theme-browser .theme.add-new-theme a{text-decoration:none;display:block;position:relative;z-index:1}.theme-browser .theme.add-new-theme a:after{display:block;content:"";background:0 0;background:rgba(0,0,0,0);position:absolute;top:0;left:0;right:0;bottom:0;padding:0;text-shadow:none;border:5px dashed #d5d2ca;border:5px dashed rgba(0,0,0,.1);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.theme-overlay .theme-actions,.theme-overlay .theme-wrap{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.theme-browser .theme.add-new-theme span:after{background:#e5e5e5;background:rgba(153,153,153,.1);-webkit-border-radius:50%;border-radius:50%;display:inline-block;content:"\f132";-webkit-font-smoothing:antialiased;font:400 74px/115px dashicons;width:100px;height:100px;vertical-align:middle;text-align:center;color:#999;position:absolute;top:30%;left:50%;margin-left:-50px;text-indent:-4px;padding:0;text-shadow:none;z-index:4}.rtl .theme-browser .theme.add-new-theme span:after{text-indent:4px}.theme-browser .theme.add-new-theme a:focus .theme-screenshot,.theme-browser .theme.add-new-theme a:hover .theme-screenshot{background:0 0}.theme-browser .theme.add-new-theme a:focus span:after,.theme-browser .theme.add-new-theme a:hover span:after{background:#fff;color:#0073aa}.theme-browser .theme.add-new-theme a:focus:after,.theme-browser .theme.add-new-theme a:hover:after{border-color:transparent;color:#fff;background:#0073aa;content:""}.theme-browser .theme.add-new-theme .theme-name{background:0 0;text-align:center;-webkit-box-shadow:none;box-shadow:none;font-weight:400;position:relative;top:0;margin-top:-18px;padding-top:0;padding-bottom:48px}.theme-browser .theme.add-new-theme a:focus .theme-name,.theme-browser .theme.add-new-theme a:hover .theme-name{color:#fff;z-index:2}.theme-overlay .theme-backdrop{position:absolute;left:-20px;right:0;top:0;bottom:0;background:#f1f1f1;background:rgba(238,238,238,.9);z-index:10000}.theme-overlay .theme-header{position:absolute;top:0;left:0;right:0;height:48px;border-bottom:1px solid #ddd}.theme-overlay .theme-header button{padding:0}.theme-overlay .theme-header .close{cursor:pointer;height:48px;width:50px;text-align:center;float:right;border:0;border-left:1px solid #ddd;background-color:transparent;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:before{font:400 22px/50px dashicons!important;color:#72777c;display:inline-block;content:"\f335";font-weight:300}.theme-overlay .theme-header .left,.theme-overlay .theme-header .right{cursor:pointer;color:#72777c;background-color:transparent;height:48px;width:54px;float:left;text-align:center;border:0;border-right:1px solid #ddd;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .close:hover,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .left:hover,.theme-overlay .theme-header .right:focus,.theme-overlay .theme-header .right:hover{background:#ddd;border-color:#ccc;color:#000}.theme-overlay .theme-header .close:focus:before,.theme-overlay .theme-header .close:hover:before{color:#000}.theme-overlay .theme-header .close:focus,.theme-overlay .theme-header .left:focus,.theme-overlay .theme-header .right:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.theme-overlay .theme-header .left.disabled,.theme-overlay .theme-header .left.disabled:hover,.theme-overlay .theme-header .right.disabled,.theme-overlay .theme-header .right.disabled:hover{color:#ccc;background:inherit;cursor:inherit}.theme-overlay .theme-header .left:before,.theme-overlay .theme-header .right:before{font:400 20px/50px dashicons!important;display:inline;font-weight:300}.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-header"],.customize-support .theme-overlay .theme-actions a[href="themes.php?page=custom-background"],.theme-overlay .theme-actions .active-theme,.theme-overlay.active .theme-actions .inactive-theme{display:none}.theme-overlay .theme-header .left:before{content:"\f341"}.theme-overlay .theme-header .right:before{content:"\f345"}.theme-overlay .theme-wrap{clear:both;position:fixed;top:9%;left:190px;right:30px;bottom:3%;background:#fff;-webkit-box-shadow:0 1px 20px 5px rgba(0,0,0,.1);box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:10000;box-sizing:border-box;-webkit-overflow-scrolling:touch}body.folded .theme-browser~.theme-overlay .theme-wrap{left:70px}.theme-overlay .theme-about{position:absolute;top:49px;bottom:57px;left:0;right:0;overflow:auto;padding:2% 4%}.theme-overlay .theme-actions{position:absolute;text-align:center;bottom:0;left:0;right:0;padding:10px 25px 5px;background:#f3f3f3;z-index:30;box-sizing:border-box;border-top:1px solid #eee}.theme-overlay .screenshot,.upload-plugin,.upload-theme{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.ie8 .theme-overlay .theme-actions{border:1px solid #eee}.theme-overlay .theme-actions a{margin-right:5px;margin-bottom:5px}.broken-themes a.delete-theme,.theme-overlay .theme-actions .delete-theme{color:#a00;text-decoration:none;border-color:transparent;-webkit-box-shadow:none;box-shadow:none;background:0 0}.theme-overlay .theme-actions .delete-theme{position:absolute;right:10px;bottom:5px}.broken-themes a.delete-theme:focus,.broken-themes a.delete-theme:hover,.theme-overlay .theme-actions .delete-theme:focus,.theme-overlay .theme-actions .delete-theme:hover{background:#d54e21;color:#fff;border-color:#d54e21}.theme-overlay .theme-actions .inactive-theme,.theme-overlay.active .theme-actions .active-theme{display:block}.theme-overlay .theme-screenshots{float:left;margin:0 30px 0 0;width:55%;max-width:880px;text-align:center}.theme-overlay .screenshot{border:1px solid #fff;box-sizing:border-box;overflow:hidden;position:relative;-webkit-box-shadow:0 0 0 1px rgba(0,0,0,.2);box-shadow:0 0 0 1px rgba(0,0,0,.2)}.theme-overlay .screenshot:after{content:"";display:block;padding-top:75%}.theme-overlay .screenshot img{height:auto;position:absolute;left:0;top:0;width:100%}.theme-overlay.small-screenshot .theme-screenshots{position:absolute;width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:350px;width:auto}.theme-overlay .screenshot.thumb{background:#ccc;border:1px solid #eee;float:none;display:inline-block;margin:10px 5px 0;width:140px;height:80px;cursor:pointer}.theme-overlay .screenshot.thumb:after{content:"";display:block;padding-top:100%}.theme-overlay .screenshot.thumb img{cursor:pointer;position:absolute;left:0;top:0;width:100%;height:auto}.theme-overlay .screenshot.selected{background:0 0;border:2px solid #00a0d2}.theme-overlay .screenshot.selected img{opacity:.8}.theme-browser .theme .theme-screenshot.blank,.theme-overlay .screenshot.blank{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYGWO8d+/efwYkoKioiMRjYGBC4WHhUK6A8T8QIJt8//59ZC493AAAQssKpBK4F5AAAAAASUVORK5CYII=)}.theme-overlay .theme-info{width:40%;float:left}.theme-overlay .current-label{background:#32373c;color:#fff;font-size:11px;display:inline-block;padding:2px 8px;-webkit-border-radius:2px;border-radius:2px;margin:0 0 -10px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.theme-overlay .theme-name{color:#23282d;font-size:32px;font-weight:100;margin:10px 0 0;line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.theme-overlay .theme-version{color:#72777c;font-size:13px;font-weight:400;float:none;display:inline-block;margin-left:10px}.theme-overlay .theme-author{margin:15px 0 25px;color:#72777c;font-size:16px;font-weight:400;line-height:inherit}.theme-overlay .theme-author a{text-decoration:none}.theme-overlay .theme-description{color:#555;font-size:15px;font-weight:400;line-height:1.5;margin:30px 0 0}.theme-overlay .theme-tags{border-top:3px solid #eee;color:#82878c;font-size:13px;font-weight:400;margin:30px 0 0;padding-top:20px}.theme-overlay .theme-tags span{color:#444;font-weight:600;margin-right:5px}.theme-overlay .parent-theme{background:#f7fcfe;border:1px solid #eee;border-left:4px solid #00a0d2;font-size:14px;font-weight:400;margin-top:30px;padding:10px 10px 10px 20px}.theme-overlay .parent-theme strong{font-weight:700}.single-theme .theme,.single-theme .theme-overlay .theme-backdrop,.single-theme .theme-overlay .theme-header{display:none}.single-theme .theme-overlay .theme-wrap{clear:both;min-height:330px;position:relative;left:auto;right:auto;top:auto;bottom:auto;z-index:10}.single-theme .theme-overlay .theme-about{padding:30px 30px 70px;position:static}.single-theme .theme-overlay .theme-actions{position:absolute}@media only screen and (min-width:2000px){#wpwrap .theme-browser .theme{width:17.6%;margin:0 3% 3% 0}#wpwrap .theme-browser .theme:nth-child(3n),#wpwrap .theme-browser .theme:nth-child(4n){margin-right:3%}#wpwrap .theme-browser .theme:nth-child(5n){margin-right:0}}@media only screen and (min-width:1680px){.theme-overlay .theme-wrap{width:1450px;margin:0 auto}}@media only screen and (min-width:1640px){.theme-browser .theme{width:22.7%;margin:0 3% 3% 0}.theme-browser .theme .theme-screenshot:after{padding-top:75%}.theme-browser .theme:nth-child(3n){margin-right:3%}.theme-browser .theme:nth-child(4n){margin-right:0}}@media only screen and (max-width:1120px){.theme-browser .theme{width:47.5%;margin-right:0}.theme-browser .theme:nth-child(even){margin-right:0}.theme-browser .theme:nth-child(odd){margin-right:5%}}@media only screen and (max-width:900px){.theme-overlay .theme-wrap{left:65px}}@media only screen and (max-width:780px){.theme-overlay .theme-wrap,body.folded .theme-overlay .theme-wrap{top:0;right:0;bottom:0;left:0;padding:70px 20px 20px;border:none;z-index:100000;position:fixed}.theme-browser .theme.active .theme-name span{display:none}.theme-overlay .theme-screenshots{width:40%}.theme-overlay .theme-info{width:50%}.single-theme .theme-wrap{padding:10px}.theme-browser .theme .theme-actions{padding:5px 10px 4px}.theme-overlay.small-screenshot .theme-screenshots{position:static;float:none;max-width:302px}.theme-overlay.small-screenshot .theme-info{margin-left:0;width:auto}.theme:focus .more-details,.theme:hover .more-details,.theme:not(.active):focus .theme-actions,.theme:not(.active):hover .theme-actions{display:none}.theme-browser.rendered .theme:focus .theme-screenshot img,.theme-browser.rendered .theme:hover .theme-screenshot img{opacity:1}}@media only screen and (max-width:480px){.theme-browser .theme{width:100%;margin-right:0}.theme-browser .theme:nth-child(2n),.theme-browser .theme:nth-child(3n){margin-right:0}}@media only screen and (max-width:650px){.theme-overlay .theme-description{margin-left:0}.theme-overlay .theme-actions .delete-theme{position:relative;right:auto;bottom:auto}.theme-overlay .theme-actions .inactive-theme{display:inline}.theme-overlay .theme-screenshots{width:100%;float:none}.theme-overlay .theme-info{width:100%}.theme-overlay .theme-author{margin:5px 0 15px}.theme-overlay .current-label{margin-top:10px;font-size:13px}.themes-php .wp-filter-search{float:none;clear:both;left:0;top:0;right:0;margin:10px 0;width:100%;max-width:280px}.theme-browser .theme.add-new-theme span:after{font:400 60px/90px dashicons;width:80px;height:80px;top:30%;left:50%;text-indent:0;margin-left:-40px}.single-theme .theme-wrap{margin:0 -12px 0 -10px;padding:10px}.single-theme .theme-overlay .theme-about{padding:10px;overflow:visible}.single-theme .current-label{display:none}.single-theme .theme-overlay .theme-actions{position:static}}.broken-themes{clear:both}.broken-themes table{text-align:left;width:50%;border-spacing:3px;padding:3px}.theme-browser .theme .theme-installed{background:#0073aa}.theme-browser .theme .notice-success p:before{color:#79ba49;content:"\f147";display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.theme-install.updated-message:before{content:''}.theme-install-php .wp-filter{padding-left:20px}.theme-install-php a.browse-themes,.theme-install-php a.upload{cursor:pointer}.plugin-install-tab-upload .upload-view-toggle .upload,.upload-view-toggle .browse{display:none}.plugin-install-tab-upload .upload-view-toggle .browse{display:inline}.upload-plugin,.upload-theme{box-sizing:border-box;display:none;margin:0;padding:50px 0;width:100%;overflow:hidden;position:relative;top:10px}.upload-plugin-wrap{display:none}.plugin-install-tab-upload .upload-plugin,.show-upload-view .upload-plugin,.show-upload-view .upload-plugin-wrap,.show-upload-view .upload-theme{display:block}.upload-plugin .wp-upload-form,.upload-theme .wp-upload-form{background:#fafafa;border:1px solid #e5e5e5;padding:30px;margin:30px auto;max-width:380px}.upload-plugin .install-help,.upload-theme .install-help{color:#555d66;font-size:18px;font-style:normal;margin:0;padding:0;text-align:center}p.no-themes{clear:both;color:#666;font-size:18px;font-style:normal;margin:0;padding:100px 0;text-align:center;display:none}.no-results p.no-themes{display:block}.theme-install-php .add-new-theme{display:none!important}@media only screen and (max-width:1120px){.upload-theme .wp-upload-form{margin:20px 0;max-width:100%}.upload-theme .install-help{font-size:15px;padding:20px 0 0;text-align:left}}.theme-details .theme-rating{line-height:23px}.theme-details .star-rating{display:inline}.theme-details .no-rating,.theme-details .num-ratings{font-size:11px;color:#72777c}.theme-details .no-rating{display:block;line-height:20px}.appearance_page_custom-header #headimg{border:1px solid #ddd;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:left;margin:0 20px 20px 0}.appearance_page_custom-header .random-header{clear:both;margin:0 20px 20px 0;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #ddd}div#custom-background-image img{max-width:400px;max-height:300px}.background-position-control input[type=radio]:checked~.button{background:#eee;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);z-index:1}.background-position-control input[type=radio]:focus~.button{border-color:#5b9dd9;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(0,115,170,.8);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 3px rgba(0,115,170,.8);color:#23282d}.background-position-control .background-position-center-icon,.background-position-control .background-position-center-icon:before{display:inline-block;line-height:1;text-align:center;-webkit-transition:background-color .1s ease-in 0;transition:background-color .1s ease-in 0}.background-position-control .background-position-center-icon{height:20px;margin-top:13px;vertical-align:top;width:20px}.background-position-control .background-position-center-icon:before{background-color:#555;-webkit-border-radius:50%;border-radius:50%;content:"";height:12px;width:12px}.background-position-control .button:hover .background-position-center-icon:before,.background-position-control input[type=radio]:focus~.button .background-position-center-icon:before{background-color:#23282d}.background-position-control .button-group{display:block}.background-position-control .button-group .button{-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;height:40px!important;line-height:37px!important;margin:0 -1px 0 0!important;padding:0 10px 1px!important;position:relative}.wp-full-overlay,.wp-full-overlay-sidebar{position:fixed;top:0;height:100%;bottom:0;left:0}.background-position-control .button-group .button:active,.background-position-control .button-group .button:focus,.background-position-control .button-group .button:hover{z-index:1}.background-position-control .button-group:last-child .button{-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc}.background-position-control .button-group>label{margin:0!important}.background-position-control .button-group:first-child>label:first-child .button{-webkit-border-radius:3px 0 0;border-radius:3px 0 0}.background-position-control .button-group:first-child>label:first-child .dashicons{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.background-position-control .button-group:first-child>label:last-child .button{-webkit-border-radius:0 3px 0 0;border-radius:0 3px 0 0}.background-position-control .button-group:first-child>label:last-child .dashicons{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.background-position-control .button-group:last-child>label:first-child .button{-webkit-border-radius:0 0 0 3px;border-radius:0 0 0 3px}.background-position-control .button-group:last-child>label:first-child .dashicons{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.background-position-control .button-group:last-child>label:last-child .button{-webkit-border-radius:0 0 3px;border-radius:0 0 3px}.background-position-control .button-group:last-child>label:last-child .dashicons{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.background-position-control .button-group .dashicons{margin-top:9px}.background-position-control .button-group+.button-group{margin-top:-1px}body.full-overlay-active{overflow:hidden;visibility:hidden}.wp-full-overlay{z-index:500000;overflow:visible;right:0;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:300px;padding:0;margin:0;z-index:10;background:#eee;border-right:none}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-left:0!important}.wp-full-overlay.expanded{margin-left:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible;margin-left:-300px}.wp-full-overlay-sidebar:after{content:"";display:block;position:absolute;top:0;bottom:0;right:0;width:3px;z-index:1000}.wp-full-overlay-main{position:absolute;left:0;right:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;left:0;right:0;height:45px;padding:0 15px;line-height:45px;z-index:10;margin:0;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-header a.back{margin-top:9px}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:none;border-top:none;-webkit-box-shadow:none;box-shadow:none}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;left:0;right:0;overflow:auto}.theme-install-overlay .wp-full-overlay-sidebar .wp-full-overlay-header{padding:0}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{display:block;position:relative;float:left;width:45px;height:45px;padding-right:2px;background:#eee;border-right:1px solid #ddd;color:#444;cursor:pointer;text-decoration:none;-webkit-transition:color .1s ease-in-out,background .1s ease-in-out;transition:color .1s ease-in-out,background .1s ease-in-out}.theme-install-overlay .close-full-overlay:focus,.theme-install-overlay .close-full-overlay:hover,.theme-install-overlay .next-theme:focus,.theme-install-overlay .next-theme:hover,.theme-install-overlay .previous-theme:focus,.theme-install-overlay .previous-theme:hover{background:#ddd;border-color:#ccc;color:#000;outline:0;-webkit-box-shadow:none;box-shadow:none}.theme-install-overlay .close-full-overlay:before{font:400 22px/1 dashicons;content:"\f335";position:relative;top:7px;left:13px}.theme-install-overlay .previous-theme:before{font:400 20px/1 dashicons;content:"\f341";position:relative;top:6px;left:14px}.theme-install-overlay .next-theme:before{font:400 20px/1 dashicons;content:"\f345";position:relative;top:6px;left:13px}.theme-install-overlay .next-theme.disabled,.theme-install-overlay .next-theme.disabled:focus,.theme-install-overlay .next-theme.disabled:hover,.theme-install-overlay .previous-theme.disabled,.theme-install-overlay .previous-theme.disabled:focus,.theme-install-overlay .previous-theme.disabled:hover{color:#b4b9be;background:#eee;cursor:default;pointer-events:none}.theme-install-overlay .close-full-overlay,.theme-install-overlay .next-theme,.theme-install-overlay .previous-theme{border-left:0;border-top:0;border-bottom:0}.theme-install-overlay .close-full-overlay:before,.theme-install-overlay .next-theme:before,.theme-install-overlay .previous-theme:before{top:2px;left:0}.wp-core-ui .wp-full-overlay .collapse-sidebar{position:fixed;bottom:0;left:0;padding:9px 0 9px 10px;height:45px;color:#656a6f;outline:0;line-height:1;background-color:transparent!important;border:none!important;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-border-radius:0!important;border-radius:0!important;z-index:-1}.wp-core-ui .wp-full-overlay .collapse-sidebar:focus,.wp-core-ui .wp-full-overlay .collapse-sidebar:hover{color:#0073aa}.wp-full-overlay .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar-label{display:inline-block;vertical-align:middle;line-height:20px}.wp-full-overlay .collapse-sidebar-arrow{width:20px;height:20px;margin:0 2px;-webkit-border-radius:50%;border-radius:50%;overflow:hidden}.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.wp-full-overlay .collapse-sidebar-label{margin-left:3px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar-arrow:before{display:block;content:"\f148";background:#eee;font:400 20px/1 dashicons;speak:none;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-core-ui .wp-full-overlay.collapsed .collapse-sidebar{padding:9px 10px}.rtl .wp-full-overlay .collapse-sidebar-arrow:before,.wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:rotate(180.001deg);-ms-transform:rotate(180.001deg);transform:rotate(180.001deg)}.rtl .wp-full-overlay.collapsed .collapse-sidebar-arrow:before{-webkit-transform:none;-ms-transform:none;transform:none}.wp-full-overlay,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main,.wp-full-overlay-sidebar{-webkit-transition-property:left,right,top,bottom,width,margin;transition-property:left,right,top,bottom,width,margin;-webkit-transition-duration:.2s;transition-duration:.2s}.wp-full-overlay{background:#191e23}.wp-full-overlay-main{background-color:#f1f1f1}.expanded .wp-full-overlay-footer{position:fixed;bottom:0;left:0;width:299px;height:45px;border-top:1px solid #ddd;background:#eee}.wp-full-overlay-footer .devices{float:right;background:#eee;-webkit-box-shadow:-20px 0 10px -5px #eee;box-shadow:-20px 0 10px -5px #eee}.wp-full-overlay-footer .devices button{cursor:pointer;background:0 0;border:none;height:45px;padding:0 3px;margin:0 0 0 -4px;-webkit-box-shadow:none;box-shadow:none;border-top:1px solid transparent;border-bottom:4px solid transparent;-webkit-transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;transition:.15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out}.wp-full-overlay-footer .devices button:focus{-webkit-box-shadow:none;box-shadow:none;outline:0}.wp-full-overlay-footer .devices button:before{display:inline-block;-webkit-font-smoothing:antialiased;font:400 20px/30px dashicons;vertical-align:top;margin:3px 0;padding:4px 8px;color:#656a6f}.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize,.theme-install-overlay{display:none}.wp-full-overlay-footer .devices button.active{border-bottom-color:#191e23}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button:hover{background-color:#fff}.wp-full-overlay-footer .devices button.active:hover,.wp-full-overlay-footer .devices button:focus{border-bottom-color:#0073aa}.wp-full-overlay-footer .devices button.active:before{color:#191e23}.wp-full-overlay-footer .devices button:focus:before,.wp-full-overlay-footer .devices button:hover:before{color:#0073aa}.wp-full-overlay-footer .devices .preview-desktop:before{content:"\f472"}.wp-full-overlay-footer .devices .preview-tablet:before{content:"\f471"}.wp-full-overlay-footer .devices .preview-mobile:before{content:"\f470"}@media screen and (max-width:1024px){.wp-full-overlay-footer .devices{display:none}}.collapsed .wp-full-overlay-footer .devices button:before{display:none}.preview-mobile .wp-full-overlay-main{margin:auto 0 auto -160px;width:320px;height:480px;max-height:100%;max-width:100%;left:50%}.preview-tablet .wp-full-overlay-main{margin:auto 0 auto -360px;width:720px;height:1080px;max-height:100%;max-width:100%;left:50%}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%}#customize-container,.theme-install-overlay{visibility:visible}.customize-loading #customize-container iframe{opacity:0}#customize-container iframe,.theme-install-overlay iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;transition:opacity .3s}#customize-controls{margin-top:0}.theme-install-overlay.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 60px}.single-theme .install-theme-info{padding-top:15px}.theme-install-overlay .install-theme-info{display:block}.install-theme-info .theme-install{float:right;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0;margin-top:0}.install-theme-info .theme-screenshot{margin:15px 0;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0}.theme-details .theme-description{float:left;color:#72777c;line-height:20px;max-width:100%}.theme-install-overlay .wp-full-overlay-header .button{float:right;margin:8px 10px 0 0;line-height:26px}.theme-install-overlay .wp-full-overlay-sidebar{background:#eee;border-right:1px solid #ddd}.theme-install-overlay .wp-full-overlay-sidebar-content{background:#fff;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.theme-install-overlay .wp-full-overlay-main{position:absolute;z-index:0;background-color:#f1f1f1}.customize-loading #customize-container{background-color:#f1f1f1}#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;-webkit-transform:translateZ(0);transform:translateZ(0);background:url(../images/spinner.gif) center center no-repeat;-webkit-background-size:20px 20px;background-size:20px 20px}#customize-preview.wp-full-overlay-main.iframe-ready:before,.theme-install-overlay.iframe-ready .wp-full-overlay-main:before{background-image:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-full-overlay .collapse-sidebar-arrow{background-image:url(../images/arrows-2x.png);-webkit-background-size:15px 123px;background-size:15px 123px}#customize-preview.wp-full-overlay-main:before,.customize-loading #customize-container:before,.theme-install-overlay .wp-full-overlay-main:before{background-image:url(../images/spinner-2x.gif)}}@media screen and (max-width:782px){.available-theme .action-links .delete-theme{float:none;margin:0;padding:0;clear:both}.available-theme .action-links .delete-theme a{padding:0}.broken-themes table{width:100%}.theme-install-overlay .wp-full-overlay-header .theme-install{margin-top:6px;line-height:normal}}@media aural{.theme .notice:before,.theme-info .updated-message:before,.theme-info .updating-message:before,.theme-install.updating-message:before{speak:none}}
\ No newline at end of file
diff --git a/wp-admin/custom-background.php b/wp-admin/custom-background.php
index a03986f59..bea4084c3 100644
--- a/wp-admin/custom-background.php
+++ b/wp-admin/custom-background.php
@@ -97,8 +97,8 @@ class Custom_Background {
 
 		get_current_screen()->set_help_sidebar(
 			'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-			'<p>' . __( '<a href="https://codex.wordpress.org/Appearance_Background_Screen" target="_blank">Documentation on Custom Background</a>' ) . '</p>' .
-			'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+			'<p>' . __( '<a href="https://codex.wordpress.org/Appearance_Background_Screen">Documentation on Custom Background</a>' ) . '</p>' .
+			'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 		);
 
 		wp_enqueue_media();
@@ -133,31 +133,73 @@ class Custom_Background {
 			return;
 		}
 
-		if ( isset($_POST['background-repeat']) ) {
-			check_admin_referer('custom-background');
-			if ( in_array($_POST['background-repeat'], array('repeat', 'no-repeat', 'repeat-x', 'repeat-y')) )
-				$repeat = $_POST['background-repeat'];
-			else
-				$repeat = 'repeat';
-			set_theme_mod('background_repeat', $repeat);
+		if ( isset( $_POST['background-preset'] ) ) {
+			check_admin_referer( 'custom-background' );
+
+			if ( in_array( $_POST['background-preset'], array( 'default', 'fill', 'fit', 'repeat', 'custom' ), true ) ) {
+				$preset = $_POST['background-preset'];
+			} else {
+				$preset = 'default';
+			}
+
+			set_theme_mod( 'background_preset', $preset );
 		}
 
-		if ( isset($_POST['background-position-x']) ) {
-			check_admin_referer('custom-background');
-			if ( in_array($_POST['background-position-x'], array('center', 'right', 'left')) )
-				$position = $_POST['background-position-x'];
-			else
-				$position = 'left';
-			set_theme_mod('background_position_x', $position);
+		if ( isset( $_POST['background-position'] ) ) {
+			check_admin_referer( 'custom-background' );
+
+			$position = explode( ' ', $_POST['background-position'] );
+
+			if ( in_array( $position[0], array( 'left', 'center', 'right' ), true ) ) {
+				$position_x = $position[0];
+			} else {
+				$position_x = 'left';
+			}
+
+			if ( in_array( $position[1], array( 'top', 'center', 'bottom' ), true ) ) {
+				$position_y = $position[1];
+			} else {
+				$position_y = 'top';
+			}
+
+			set_theme_mod( 'background_position_x', $position_x );
+			set_theme_mod( 'background_position_y', $position_y );
 		}
 
-		if ( isset($_POST['background-attachment']) ) {
-			check_admin_referer('custom-background');
-			if ( in_array($_POST['background-attachment'], array('fixed', 'scroll')) )
-				$attachment = $_POST['background-attachment'];
-			else
-				$attachment = 'fixed';
-			set_theme_mod('background_attachment', $attachment);
+		if ( isset( $_POST['background-size'] ) ) {
+			check_admin_referer( 'custom-background' );
+
+			if ( in_array( $_POST['background-size'], array( 'auto', 'contain', 'cover' ), true ) ) {
+				$size = $_POST['background-size'];
+			} else {
+				$size = 'auto';
+			}
+
+			set_theme_mod( 'background_size', $size );
+		}
+
+		if ( isset( $_POST['background-repeat'] ) ) {
+			check_admin_referer( 'custom-background' );
+
+			$repeat = $_POST['background-repeat'];
+
+			if ( 'no-repeat' !== $repeat ) {
+				$repeat = 'repeat';
+			}
+
+			set_theme_mod( 'background_repeat', $repeat );
+		}
+
+		if ( isset( $_POST['background-attachment'] ) ) {
+			check_admin_referer( 'custom-background' );
+
+			$attachment = $_POST['background-attachment'];
+
+			if ( 'fixed' !== $attachment ) {
+				$attachment = 'scroll';
+			}
+
+			set_theme_mod( 'background_attachment', $attachment );
 		}
 
 		if ( isset($_POST['background-color']) ) {
@@ -219,11 +261,18 @@ class Custom_Background {
 		$background_image_thumb = get_background_image();
 		if ( $background_image_thumb ) {
 			$background_image_thumb = esc_url( set_url_scheme( get_theme_mod( 'background_image_thumb', str_replace( '%', '%%', $background_image_thumb ) ) ) );
+			$background_position_x = get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) );
+			$background_position_y = get_theme_mod( 'background_position_y', get_theme_support( 'custom-background', 'default-position-y' ) );
+			$background_size = get_theme_mod( 'background_size', get_theme_support( 'custom-background', 'default-size' ) );
+			$background_repeat = get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) );
+			$background_attachment = get_theme_mod( 'background_attachment', get_theme_support( 'custom-background', 'default-attachment' ) );
 
 			// Background-image URL must be single quote, see below.
-			$background_styles .= ' background-image: url(\'' . $background_image_thumb . '\');'
-				. ' background-repeat: ' . get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) . ';'
-				. ' background-position: top ' . get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) );
+			$background_styles .= " background-image: url('$background_image_thumb');"
+				. " background-size: $background_size;"
+				. " background-position: $background_position_x $background_position_y;"
+				. " background-repeat: $background_repeat;"
+				. " background-attachment: $background_attachment;";
 		}
 	?>
 	<div id="custom-background-image" style="<?php echo $background_styles; ?>"><?php // must be double quote, see above ?>
@@ -242,7 +291,7 @@ class Custom_Background {
 <td>
 <form method="post">
 <?php wp_nonce_field('custom-background-remove', '_wpnonce-custom-background-remove'); ?>
-<?php submit_button( __( 'Remove Background Image' ), 'button', 'remove-background', false ); ?><br/>
+<?php submit_button( __( 'Remove Background Image' ), '', 'remove-background', false ); ?><br/>
 <?php _e('This will remove the background image. You will not be able to restore any customizations.') ?>
 </form>
 </td>
@@ -256,7 +305,7 @@ class Custom_Background {
 <td>
 <form method="post">
 <?php wp_nonce_field('custom-background-reset', '_wpnonce-custom-background-reset'); ?>
-<?php submit_button( __( 'Restore Original Image' ), 'button', 'reset-background', false ); ?><br/>
+<?php submit_button( __( 'Restore Original Image' ), '', 'reset-background', false ); ?><br/>
 <?php _e('This will restore the original background image. You will not be able to restore any customizations.') ?>
 </form>
 </td>
@@ -272,7 +321,7 @@ class Custom_Background {
 		<input type="file" id="upload" name="import" />
 		<input type="hidden" name="action" value="save" />
 		<?php wp_nonce_field( 'custom-background-upload', '_wpnonce-custom-background-upload' ); ?>
-		<?php submit_button( __( 'Upload' ), 'button', 'submit', false ); ?>
+		<?php submit_button( __( 'Upload' ), '', 'submit', false ); ?>
 	</p>
 	<p>
 		<label for="choose-from-library-link"><?php _e( 'Or choose an image from your media library:' ); ?></label><br />
@@ -287,50 +336,81 @@ class Custom_Background {
 </tbody>
 </table>
 
-<h3><?php _e('Display Options') ?></h3>
+<h3><?php _e( 'Display Options' ); ?></h3>
 <form method="post">
 <table class="form-table">
 <tbody>
 <?php if ( get_background_image() ) : ?>
+<input name="background-preset" type="hidden" value="custom">
+
+<?php
+$background_position = sprintf(
+	'%s %s',
+	get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) ),
+	get_theme_mod( 'background_position_y', get_theme_support( 'custom-background', 'default-position-y' ) )
+);
+
+$background_position_options = array(
+	array(
+		'left top'   => array( 'label' => __( 'Top Left' ), 'icon' => 'dashicons dashicons-arrow-left-alt' ),
+		'center top' => array( 'label' => __( 'Top' ), 'icon' => 'dashicons dashicons-arrow-up-alt' ),
+		'right top'  => array( 'label' => __( 'Top Right' ), 'icon' => 'dashicons dashicons-arrow-right-alt' ),
+	),
+	array(
+		'left center'   => array( 'label' => __( 'Left' ), 'icon' => 'dashicons dashicons-arrow-left-alt' ),
+		'center center' => array( 'label' => __( 'Center' ), 'icon' => 'background-position-center-icon' ),
+		'right center'  => array( 'label' => __( 'Right' ), 'icon' => 'dashicons dashicons-arrow-right-alt' ),
+	),
+	array(
+		'left bottom'   => array( 'label' => __( 'Bottom Left' ), 'icon' => 'dashicons dashicons-arrow-left-alt' ),
+		'center bottom' => array( 'label' => __( 'Bottom' ), 'icon' => 'dashicons dashicons-arrow-down-alt' ),
+		'right bottom'  => array( 'label' => __( 'Bottom Right' ), 'icon' => 'dashicons dashicons-arrow-right-alt' ),
+	),
+);
+?>
+<tr>
+<th scope="row"><?php _e( 'Image Position' ); ?></th>
+<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Image Position' ); ?></span></legend>
+<div class="background-position-control">
+<?php foreach ( $background_position_options as $group ) : ?>
+	<div class="button-group">
+	<?php foreach ( $group as $value => $input ) : ?>
+		<label>
+			<input class="screen-reader-text" name="background-position" type="radio" value="<?php echo esc_attr( $value ); ?>"<?php checked( $value, $background_position ); ?>>
+			<span class="button display-options position"><span class="<?php echo esc_attr( $input['icon'] ); ?>" aria-hidden="true"></span></span>
+			<span class="screen-reader-text"><?php echo $input['label']; ?></span>
+		</label>
+	<?php endforeach; ?>
+	</div>
+<?php endforeach; ?>
+</div>
+</fieldset></td>
+</tr>
+
 <tr>
-<th scope="row"><?php _e( 'Position' ); ?></th>
-<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Position' ); ?></span></legend>
-<label>
-<input name="background-position-x" type="radio" value="left"<?php checked( 'left', get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) ) ); ?> />
-<?php _e('Left') ?>
-</label>
-<label>
-<input name="background-position-x" type="radio" value="center"<?php checked( 'center', get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) ) ); ?> />
-<?php _e('Center') ?>
-</label>
-<label>
-<input name="background-position-x" type="radio" value="right"<?php checked( 'right', get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) ) ); ?> />
-<?php _e('Right') ?>
-</label>
+<th scope="row"><label for="background-size"><?php _e( 'Image Size' ); ?></label></th>
+<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Image Size' ); ?></span></legend>
+<select id="background-size" name="background-size">
+<option value="auto"<?php selected( 'auto', get_theme_mod( 'background_size', get_theme_support( 'custom-background', 'default-size' ) ) ); ?>><?php _ex( 'Original', 'Original Size' ); ?></option>
+<option value="contain"<?php selected( 'contain', get_theme_mod( 'background_size', get_theme_support( 'custom-background', 'default-size' ) ) ); ?>><?php _e( 'Fit to Screen' ); ?></option>
+<option value="cover"<?php selected( 'cover', get_theme_mod( 'background_size', get_theme_support( 'custom-background', 'default-size' ) ) ); ?>><?php _e( 'Fill Screen' ); ?></option>
+</select>
 </fieldset></td>
 </tr>
 
 <tr>
-<th scope="row"><?php _e( 'Repeat' ); ?></th>
-<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Repeat' ); ?></span></legend>
-<label><input type="radio" name="background-repeat" value="no-repeat"<?php checked( 'no-repeat', get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) ); ?> /> <?php _e('No Repeat'); ?></label>
-	<label><input type="radio" name="background-repeat" value="repeat"<?php checked( 'repeat', get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) ); ?> /> <?php _e('Tile'); ?></label>
-	<label><input type="radio" name="background-repeat" value="repeat-x"<?php checked( 'repeat-x', get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) ); ?> /> <?php _e('Tile Horizontally'); ?></label>
-	<label><input type="radio" name="background-repeat" value="repeat-y"<?php checked( 'repeat-y', get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) ); ?> /> <?php _e('Tile Vertically'); ?></label>
+<th scope="row"><?php _ex( 'Repeat', 'Background Repeat' ); ?></th>
+<td><fieldset><legend class="screen-reader-text"><span><?php _ex( 'Repeat', 'Background Repeat' ); ?></span></legend>
+<input name="background-repeat" type="hidden" value="no-repeat">
+<label><input type="checkbox" name="background-repeat" value="repeat"<?php checked( 'repeat', get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) ); ?>> <?php _e( 'Repeat Background Image' ); ?></label>
 </fieldset></td>
 </tr>
 
 <tr>
-<th scope="row"><?php _ex( 'Attachment', 'Background Attachment' ); ?></th>
-<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Attachment' ); ?></span></legend>
-<label>
-<input name="background-attachment" type="radio" value="scroll" <?php checked( 'scroll', get_theme_mod( 'background_attachment', get_theme_support( 'custom-background', 'default-attachment' ) ) ); ?> />
-<?php _e( 'Scroll' ); ?>
-</label>
-<label>
-<input name="background-attachment" type="radio" value="fixed" <?php checked( 'fixed', get_theme_mod( 'background_attachment', get_theme_support( 'custom-background', 'default-attachment' ) ) ); ?> />
-<?php _e( 'Fixed' ); ?>
-</label>
+<th scope="row"><?php _ex( 'Scroll', 'Background Scroll' ); ?></th>
+<td><fieldset><legend class="screen-reader-text"><span><?php _ex( 'Scroll', 'Background Scroll' ); ?></span></legend>
+<input name="background-attachment" type="hidden" value="fixed">
+<label><input name="background-attachment" type="checkbox" value="scroll" <?php checked( 'scroll', get_theme_mod( 'background_attachment', get_theme_support( 'custom-background', 'default-attachment' ) ) ); ?>> <?php _e( 'Scroll with Page' ); ?></label>
 </fieldset></td>
 </tr>
 <?php endif; // get_background_image() ?>
@@ -342,7 +422,7 @@ $default_color = '';
 if ( current_theme_supports( 'custom-background', 'default-color' ) )
 	$default_color = ' data-default-color="#' . esc_attr( get_theme_support( 'custom-background', 'default-color' ) ) . '"';
 ?>
-<input type="text" name="background-color" id="background-color" value="#<?php echo esc_attr( get_background_color() ); ?>"<?php echo $default_color ?> />
+<input type="text" name="background-color" id="background-color" value="#<?php echo esc_attr( get_background_color() ); ?>"<?php echo $default_color ?>>
 </fieldset></td>
 </tr>
 </tbody>
diff --git a/wp-admin/custom-header.php b/wp-admin/custom-header.php
index fc5adb670..5cc64ef7b 100644
--- a/wp-admin/custom-header.php
+++ b/wp-admin/custom-header.php
@@ -124,8 +124,8 @@ class Custom_Image_Header {
 
 		get_current_screen()->set_help_sidebar(
 			'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-			'<p>' . __( '<a href="https://codex.wordpress.org/Appearance_Header_Screen" target="_blank">Documentation on Custom Header</a>' ) . '</p>' .
-			'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+			'<p>' . __( '<a href="https://codex.wordpress.org/Appearance_Header_Screen">Documentation on Custom Header</a>' ) . '</p>' .
+			'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 		);
 	}
 
@@ -576,7 +576,7 @@ class Custom_Image_Header {
 		<input type="file" id="upload" name="import" />
 		<input type="hidden" name="action" value="save" />
 		<?php wp_nonce_field( 'custom-header-upload', '_wpnonce-custom-header-upload' ); ?>
-		<?php submit_button( __( 'Upload' ), 'button', 'submit', false ); ?>
+		<?php submit_button( __( 'Upload' ), '', 'submit', false ); ?>
 	</p>
 	<?php
 		$modal_update_href = esc_url( add_query_arg( array(
@@ -634,18 +634,18 @@ class Custom_Image_Header {
 <th scope="row"><?php _e( 'Remove Image' ); ?></th>
 <td>
 	<p><?php _e( 'This will remove the header image. You will not be able to restore any customizations.' ) ?></p>
-	<?php submit_button( __( 'Remove Header Image' ), 'button', 'removeheader', false ); ?>
+	<?php submit_button( __( 'Remove Header Image' ), '', 'removeheader', false ); ?>
 </td>
 </tr>
 	<?php endif;
 
-	$default_image = get_theme_support( 'custom-header', 'default-image' );
+	$default_image = sprintf( get_theme_support( 'custom-header', 'default-image' ), get_template_directory_uri(), get_stylesheet_directory_uri() );
 	if ( $default_image && get_header_image() != $default_image ) : ?>
 <tr>
 <th scope="row"><?php _e( 'Reset Image' ); ?></th>
 <td>
 	<p><?php _e( 'This will restore the original header image. You will not be able to restore any customizations.' ) ?></p>
-	<?php submit_button( __( 'Restore Original Header Image' ), 'button', 'resetheader', false ); ?>
+	<?php submit_button( __( 'Restore Original Header Image' ), '', 'resetheader', false ); ?>
 </td>
 </tr>
 	<?php endif; ?>
@@ -823,7 +823,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?>
 	<?php submit_button( __( 'Crop and Publish' ), 'primary', 'submit', false ); ?>
 	<?php
 	if ( isset( $oitar ) && 1 == $oitar && ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) )
-		submit_button( __( 'Skip Cropping, Publish Image as Is' ), 'secondary', 'skip-cropping', false );
+		submit_button( __( 'Skip Cropping, Publish Image as Is' ), '', 'skip-cropping', false );
 	?>
 	</p>
 </form>
diff --git a/wp-admin/customize.php b/wp-admin/customize.php
index bd8e11819..44654c003 100644
--- a/wp-admin/customize.php
+++ b/wp-admin/customize.php
@@ -20,6 +20,31 @@ if ( ! current_user_can( 'customize' ) ) {
 	);
 }
 
+/**
+ * @global WP_Scripts           $wp_scripts
+ * @global WP_Customize_Manager $wp_customize
+ */
+global $wp_scripts, $wp_customize;
+
+if ( $wp_customize->changeset_post_id() ) {
+	if ( ! current_user_can( get_post_type_object( 'customize_changeset' )->cap->edit_post, $wp_customize->changeset_post_id() ) ) {
+		wp_die(
+			'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
+			'<p>' . __( 'Sorry, you are not allowed to edit this changeset.' ) . '</p>',
+			403
+		);
+	}
+	if ( in_array( get_post_status( $wp_customize->changeset_post_id() ), array( 'publish', 'trash' ), true ) ) {
+		wp_die(
+			'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
+			'<p>' . __( 'This changeset has already been published and cannot be further modified.' ) . '</p>' .
+			'<p><a href="' . esc_url( remove_query_arg( 'changeset_uuid' ) ) . '">' . __( 'Customize New Changes' ) . '</a></p>',
+			403
+		);
+	}
+}
+
+
 wp_reset_vars( array( 'url', 'return', 'autofocus' ) );
 if ( ! empty( $url ) ) {
 	$wp_customize->set_preview_url( wp_unslash( $url ) );
@@ -31,12 +56,6 @@ if ( ! empty( $autofocus ) && is_array( $autofocus ) ) {
 	$wp_customize->set_autofocus( wp_unslash( $autofocus ) );
 }
 
-/**
- * @global WP_Scripts           $wp_scripts
- * @global WP_Customize_Manager $wp_customize
- */
-global $wp_scripts, $wp_customize;
-
 $registered = $wp_scripts->registered;
 $wp_scripts = new WP_Scripts;
 $wp_scripts->registered = $registered;
@@ -115,7 +134,11 @@ do_action( 'customize_controls_print_scripts' );
 		<div id="customize-header-actions" class="wp-full-overlay-header">
 			<?php
 			$save_text = $wp_customize->is_theme_active() ? __( 'Save &amp; Publish' ) : __( 'Save &amp; Activate' );
-			submit_button( $save_text, 'primary save', 'save', false );
+			$save_attrs = array();
+			if ( ! current_user_can( get_post_type_object( 'customize_changeset' )->cap->publish_posts ) ) {
+				$save_attrs['style'] = 'display: none';
+			}
+			submit_button( $save_text, 'primary save', 'save', false, $save_attrs );
 			?>
 			<span class="spinner"></span>
 			<button type="button" class="customize-controls-preview-toggle">
@@ -137,12 +160,12 @@ do_action( 'customize_controls_print_scripts' );
 					<button type="button" class="customize-help-toggle dashicons dashicons-editor-help" aria-expanded="false"><span class="screen-reader-text"><?php _e( 'Help' ); ?></span></button>
 				</div>
 				<div class="customize-panel-description"><?php
-					_e( 'The Customizer allows you to preview changes to your site before publishing them. You can also navigate to different pages on your site to preview them.' );
+					_e( 'The Customizer allows you to preview changes to your site before publishing them. You can navigate to different pages on your site within the preview. Edit shortcuts are shown for some editable elements.' );
 				?></div>
 			</div>
 
 			<div id="customize-theme-controls">
-				<ul><?php // Panels and sections are managed here via JavaScript ?></ul>
+				<ul class="customize-pane-parent"><?php // Panels and sections are managed here via JavaScript ?></ul>
 			</div>
 		</div>
 		</div>
@@ -168,9 +191,9 @@ do_action( 'customize_controls_print_scripts' );
 				<?php endforeach; ?>
 			</div>
 			<?php endif; ?>
-			<button type="button" class="collapse-sidebar button-secondary" aria-expanded="true" aria-label="<?php esc_attr_e( 'Collapse Sidebar' ); ?>">
+			<button type="button" class="collapse-sidebar button" aria-expanded="true" aria-label="<?php echo esc_attr( _x( 'Hide Controls', 'label for hide controls button without length constraints' ) ); ?>">
 				<span class="collapse-sidebar-arrow"></span>
-				<span class="collapse-sidebar-label"><?php _e( 'Collapse' ); ?></span>
+				<span class="collapse-sidebar-label"><?php _ex( 'Hide Controls', 'short (~12 characters) label for hide controls button' ); ?></span>
 			</button>
 		</div>
 	</form>
diff --git a/wp-admin/edit-comments.php b/wp-admin/edit-comments.php
index f0ecec92e..a33f986b3 100644
--- a/wp-admin/edit-comments.php
+++ b/wp-admin/edit-comments.php
@@ -82,6 +82,22 @@ if ( $doaction ) {
 		}
 	}
 
+	if ( ! in_array( $doaction, array( 'approve', 'unapprove', 'spam', 'unspam', 'trash', 'delete' ), true ) ) {
+		/**
+		 * Fires when a custom bulk action should be handled.
+		 *
+		 * The redirect link should be modified with success or failure feedback
+		 * from the action to be used to display feedback to the user.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param string $redirect_url The redirect URL.
+		 * @param string $doaction     The action being taken.
+		 * @param array  $items        The items to take the action on.
+		 */
+		$redirect_to = apply_filters( 'handle_bulk_actions-' . get_current_screen()->id, $redirect_to, $doaction, $comment_ids );
+	}
+
 	wp_defer_comment_counting( false );
 
 	if ( $approved )
@@ -162,10 +178,10 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Administration_Screens#Comments" target="_blank">Documentation on Comments</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Comment_Spam" target="_blank">Documentation on Comment Spam</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Keyboard_Shortcuts" target="_blank">Documentation on Keyboard Shortcuts</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Administration_Screens#Comments">Documentation on Comments</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://codex.wordpress.org/Comment_Spam">Documentation on Comment Spam</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://codex.wordpress.org/Keyboard_Shortcuts">Documentation on Keyboard Shortcuts</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
diff --git a/wp-admin/edit-form-advanced.php b/wp-admin/edit-form-advanced.php
index bd229b90c..803300f40 100644
--- a/wp-admin/edit-form-advanced.php
+++ b/wp-admin/edit-form-advanced.php
@@ -259,8 +259,9 @@ foreach ( get_object_taxonomies( $post ) as $tax_name ) {
 	add_meta_box( $tax_meta_box_id, $label, $taxonomy->meta_box_cb, null, 'side', 'core', array( 'taxonomy' => $tax_name ) );
 }
 
-if ( post_type_supports($post_type, 'page-attributes') )
-	add_meta_box('pageparentdiv', 'page' == $post_type ? __('Page Attributes') : __('Attributes'), 'page_attributes_meta_box', null, 'side', 'core');
+if ( post_type_supports( $post_type, 'page-attributes' ) || count( get_page_templates( $post ) ) > 0 ) {
+	add_meta_box( 'pageparentdiv', $post_type_object->labels->attributes, 'page_attributes_meta_box', null, 'side', 'core' );
+}
 
 if ( $thumbnail_support && current_user_can( 'upload_files' ) )
 	add_meta_box('postimagediv', esc_html( $post_type_object->labels->featured_image ), 'post_thumbnail_meta_box', null, 'side', 'low');
@@ -331,7 +332,7 @@ do_action( 'add_meta_boxes', $post_type, $post );
  *
  * @param WP_Post $post Post object.
  */
-do_action( 'add_meta_boxes_' . $post_type, $post );
+do_action( "add_meta_boxes_{$post_type}", $post );
 
 /**
  * Fires after meta boxes have been added.
@@ -378,8 +379,8 @@ if ( 'post' == $post_type ) {
 	get_current_screen()->set_help_sidebar(
 			'<p>' . sprintf(__('You can also create posts with the <a href="%s">Press This bookmarklet</a>.'), 'tools.php') . '</p>' .
 			'<p><strong>' . __('For more information:') . '</strong></p>' .
-			'<p>' . __('<a href="https://codex.wordpress.org/Posts_Add_New_Screen" target="_blank">Documentation on Writing and Editing Posts</a>') . '</p>' .
-			'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+			'<p>' . __('<a href="https://codex.wordpress.org/Posts_Add_New_Screen">Documentation on Writing and Editing Posts</a>') . '</p>' .
+			'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 	);
 } elseif ( 'page' == $post_type ) {
 	$about_pages = '<p>' . __('Pages are similar to posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest pages under other pages by making one the &#8220;Parent&#8221; of the other, creating a group of pages.') . '</p>' .
@@ -393,9 +394,9 @@ if ( 'post' == $post_type ) {
 
 	get_current_screen()->set_help_sidebar(
 			'<p><strong>' . __('For more information:') . '</strong></p>' .
-			'<p>' . __('<a href="https://codex.wordpress.org/Pages_Add_New_Screen" target="_blank">Documentation on Adding New Pages</a>') . '</p>' .
-			'<p>' . __('<a href="https://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages" target="_blank">Documentation on Editing Pages</a>') . '</p>' .
-			'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+			'<p>' . __('<a href="https://codex.wordpress.org/Pages_Add_New_Screen">Documentation on Adding New Pages</a>') . '</p>' .
+			'<p>' . __('<a href="https://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages">Documentation on Editing Pages</a>') . '</p>' .
+			'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 	);
 } elseif ( 'attachment' == $post_type ) {
 	get_current_screen()->add_help_tab( array(
@@ -410,8 +411,8 @@ if ( 'post' == $post_type ) {
 
 	get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Media_Add_New_Screen#Edit_Media" target="_blank">Documentation on Edit Media</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Media_Add_New_Screen#Edit_Media">Documentation on Edit Media</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 	);
 }
 
@@ -473,11 +474,18 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 
 <div class="wrap">
-<h1><?php
+<h1 class="wp-heading-inline"><?php
 echo esc_html( $title );
-if ( isset( $post_new_file ) && current_user_can( $post_type_object->cap->create_posts ) )
-	echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="page-title-action">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
 ?></h1>
+
+<?php
+if ( isset( $post_new_file ) && current_user_can( $post_type_object->cap->create_posts ) ) {
+	echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="page-title-action">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
+}
+?>
+
+<hr class="wp-header-end">
+
 <?php if ( $notice ) : ?>
 <div id="notice" class="notice notice-warning"><p id="has-newer-autosave"><?php echo $notice ?></p></div>
 <?php endif; ?>
@@ -631,8 +639,10 @@ if ( post_type_supports($post_type, 'editor') ) {
 	if ( 'auto-draft' != $post->post_status ) {
 		echo '<span id="last-edit">';
 		if ( $last_user = get_userdata( get_post_meta( $post_ID, '_edit_last', true ) ) ) {
+			/* translators: 1: Name of most recent post author, 2: Post edited date, 3: Post edited time */
 			printf( __( 'Last edited by %1$s on %2$s at %3$s' ), esc_html( $last_user->display_name ), mysql2date( __( 'F j, Y' ), $post->post_modified ), mysql2date( __( 'g:i a' ), $post->post_modified ) );
 		} else {
+			/* translators: 1: Post edited date, 2: Post edited time */
 			printf( __( 'Last edited on %1$s at %2$s' ), mysql2date( __( 'F j, Y' ), $post->post_modified ), mysql2date( __( 'g:i a' ), $post->post_modified ) );
 		}
 		echo '</span>';
diff --git a/wp-admin/edit-form-comment.php b/wp-admin/edit-form-comment.php
index 9fac3e934..2ae7957f7 100644
--- a/wp-admin/edit-form-comment.php
+++ b/wp-admin/edit-form-comment.php
@@ -162,7 +162,7 @@ endif; ?>
 <?php echo "<a class='submitdelete deletion' href='" . wp_nonce_url("comment.php?action=" . ( !EMPTY_TRASH_DAYS ? 'deletecomment' : 'trashcomment' ) . "&amp;c=$comment->comment_ID&amp;_wp_original_http_referer=" . urlencode(wp_get_referer()), 'delete-comment_' . $comment->comment_ID) . "'>" . ( !EMPTY_TRASH_DAYS ? __('Delete Permanently') : __('Move to Trash') ) . "</a>\n"; ?>
 </div>
 <div id="publishing-action">
-<?php submit_button( __( 'Update' ), 'primary', 'save', false ); ?>
+<?php submit_button( __( 'Update' ), 'primary large', 'save', false ); ?>
 </div>
 <div class="clear"></div>
 </div>
diff --git a/wp-admin/edit-link-form.php b/wp-admin/edit-link-form.php
index ff02e394c..e25841d3d 100644
--- a/wp-admin/edit-link-form.php
+++ b/wp-admin/edit-link-form.php
@@ -57,13 +57,13 @@ get_current_screen()->add_help_tab( array(
 	'content' =>
 	'<p>' . __( 'You can add or edit links on this screen by entering information in each of the boxes. Only the link&#8217;s web address and name (the text you want to display on your site as the link) are required fields.' ) . '</p>' .
 	'<p>' . __( 'The boxes for link name, web address, and description have fixed positions, while the others may be repositioned using drag and drop. You can also hide boxes you don&#8217;t use in the Screen Options tab, or minimize boxes by clicking on the title bar of the box.' ) . '</p>' .
-	'<p>' . __( 'XFN stands for <a href="http://gmpg.org/xfn/" target="_blank">XHTML Friends Network</a>, which is optional. WordPress allows the generation of XFN attributes to show how you are related to the authors/owners of the site to which you are linking.' ) . '</p>'
+	'<p>' . __( 'XFN stands for <a href="http://gmpg.org/xfn/">XHTML Friends Network</a>, which is optional. WordPress allows the generation of XFN attributes to show how you are related to the authors/owners of the site to which you are linking.' ) . '</p>'
 ) );
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Links_Add_New_Screen" target="_blank">Documentation on Creating Links</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Links_Add_New_Screen">Documentation on Creating Links</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 );
 
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/edit-tag-form.php b/wp-admin/edit-tag-form.php
index 7d218dd57..d233b3091 100644
--- a/wp-admin/edit-tag-form.php
+++ b/wp-admin/edit-tag-form.php
@@ -78,24 +78,17 @@ do_action( "{$taxonomy}_pre_edit_form", $tag, $taxonomy ); ?>
 		/* translators: %s: taxonomy name */
 		printf( _x( '&larr; Back to %s', 'admin screen' ), $tax->labels->name );
 	?></a></p>
-	<?php } else { ?>
-	<p><a href="<?php echo esc_url( wp_get_referer() ); ?>"><?php
-		/* translators: %s: taxonomy name */
-		printf( _x( '&larr; Back to %s', 'admin screen' ), $tax->labels->name );
-	?></a></p>
 	<?php } ?>
 </div>
 <?php endif; ?>
 
 <div id="ajax-response"></div>
 
-<form name="edittag" id="edittag" method="post" action="edit-tags.php" class="validate"
-<?php
+<form name="edittag" id="edittag" method="post" action="edit-tags.php" class="validate"<?php
 /**
  * Fires inside the Edit Term form tag.
  *
- * The dynamic portion of the hook name, `$taxonomy`, refers to
- * the taxonomy slug.
+ * The dynamic portion of the hook name, `$taxonomy`, refers to the taxonomy slug.
  *
  * @since 3.7.0
  */
diff --git a/wp-admin/edit-tags.php b/wp-admin/edit-tags.php
index dbb1f4836..e90a87f76 100644
--- a/wp-admin/edit-tags.php
+++ b/wp-admin/edit-tags.php
@@ -18,13 +18,13 @@ if ( ! $tax )
 	wp_die( __( 'Invalid taxonomy.' ) );
 
 if ( ! in_array( $tax->name, get_taxonomies( array( 'show_ui' => true ) ) ) ) {
-   wp_die( __( 'Sorry, you are not allowed to manage these items.' ) );
+   wp_die( __( 'Sorry, you are not allowed to edit terms in this taxonomy.' ) );
 }
 
 if ( ! current_user_can( $tax->cap->manage_terms ) ) {
 	wp_die(
 		'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
-		'<p>' . __( 'Sorry, you are not allowed to manage these items.' ) . '</p>',
+		'<p>' . __( 'Sorry, you are not allowed to manage terms in this taxonomy.' ) . '</p>',
 		403
 	);
 }
@@ -61,46 +61,33 @@ get_current_screen()->set_screen_reader_content( array(
 
 $location = false;
 $referer = wp_get_referer();
+if ( ! $referer ) { // For POST requests.
+	$referer = wp_unslash( $_SERVER['REQUEST_URI'] );
+}
+$referer = remove_query_arg( array( '_wp_http_referer', '_wpnonce', 'error', 'message', 'paged' ), $referer );
 
 switch ( $wp_list_table->current_action() ) {
 
 case 'add-tag':
-
 	check_admin_referer( 'add-tag', '_wpnonce_add-tag' );
 
 	if ( ! current_user_can( $tax->cap->edit_terms ) ) {
 		wp_die(
 			'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
-			'<p>' . __( 'Sorry, you are not allowed to add this item.' ) . '</p>',
+			'<p>' . __( 'Sorry, you are not allowed to create terms in this taxonomy.' ) . '</p>',
 			403
 		);
 	}
 
 	$ret = wp_insert_term( $_POST['tag-name'], $taxonomy, $_POST );
-	$location = 'edit-tags.php?taxonomy=' . $taxonomy;
-	if ( 'post' != $post_type )
-		$location .= '&post_type=' . $post_type;
-
-	if ( $referer && false !== strpos( $referer, 'edit-tags.php' ) ) {
-		$location = $referer;
-	}
-
 	if ( $ret && !is_wp_error( $ret ) )
 		$location = add_query_arg( 'message', 1, $location );
 	else
-		$location = add_query_arg( array( 'error' => true, 'message' => 4 ), $location );
+		$location = add_query_arg( array( 'error' => true, 'message' => 4 ), $referer );
 
 	break;
 
 case 'delete':
-	$location = 'edit-tags.php?taxonomy=' . $taxonomy;
-	if ( 'post' != $post_type )
-		$location .= '&post_type=' . $post_type;
-
-	if ( $referer && false !== strpos( $referer, 'edit-tags.php' ) ) {
-		$location = $referer;
-	}
-
 	if ( ! isset( $_REQUEST['tag_ID'] ) ) {
 		break;
 	}
@@ -108,7 +95,7 @@ case 'delete':
 	$tag_ID = (int) $_REQUEST['tag_ID'];
 	check_admin_referer( 'delete-tag_' . $tag_ID );
 
-	if ( ! current_user_can( $tax->cap->delete_terms ) ) {
+	if ( ! current_user_can( 'delete_term', $tag_ID ) ) {
 		wp_die(
 			'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
 			'<p>' . __( 'Sorry, you are not allowed to delete this item.' ) . '</p>',
@@ -118,7 +105,7 @@ case 'delete':
 
 	wp_delete_term( $tag_ID, $taxonomy );
 
-	$location = add_query_arg( 'message', 2, $location );
+	$location = add_query_arg( 'message', 2, $referer );
 
 	break;
 
@@ -138,14 +125,7 @@ case 'bulk-delete':
 		wp_delete_term( $tag_ID, $taxonomy );
 	}
 
-	$location = 'edit-tags.php?taxonomy=' . $taxonomy;
-	if ( 'post' != $post_type )
-		$location .= '&post_type=' . $post_type;
-	if ( $referer && false !== strpos( $referer, 'edit-tags.php' ) ) {
-		$location = $referer;
-	}
-
-	$location = add_query_arg( 'message', 6, $location );
+	$location = add_query_arg( 'message', 6, $referer );
 
 	break;
 
@@ -168,7 +148,7 @@ case 'editedtag':
 	$tag_ID = (int) $_POST['tag_ID'];
 	check_admin_referer( 'update-tag_' . $tag_ID );
 
-	if ( ! current_user_can( $tax->cap->edit_terms ) ) {
+	if ( ! current_user_can( 'edit_term', $tag_ID ) ) {
 		wp_die(
 			'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
 			'<p>' . __( 'Sorry, you are not allowed to edit this item.' ) . '</p>',
@@ -182,35 +162,37 @@ case 'editedtag':
 
 	$ret = wp_update_term( $tag_ID, $taxonomy, $_POST );
 
-	$location = 'edit-tags.php?taxonomy=' . $taxonomy;
-	if ( 'post' != $post_type )
-		$location .= '&post_type=' . $post_type;
-
-	if ( $referer && false !== strpos( $referer, 'edit-tags.php' ) ) {
-		$location = $referer;
+	if ( $ret && ! is_wp_error( $ret ) ) {
+		$location = add_query_arg( 'message', 3, $referer );
+	} else {
+		$location = add_query_arg( array( 'error' => true, 'message' => 5 ), $referer );
 	}
-
-	if ( $ret && !is_wp_error( $ret ) )
-		$location = add_query_arg( 'message', 3, $location );
-	else
-		$location = add_query_arg( array( 'error' => true, 'message' => 5 ), $location );
+	break;
+default:
+	if ( ! $wp_list_table->current_action() || ! isset( $_REQUEST['delete_tags'] ) ) {
+		break;
+	}
+	check_admin_referer( 'bulk-tags' );
+	$tags = (array) $_REQUEST['delete_tags'];
+	/** This action is documented in wp-admin/edit-comments.php */
+	$location = apply_filters( 'handle_bulk_actions-' . get_current_screen()->id, $location, $wp_list_table->current_action(), $tags );
 	break;
 }
 
 if ( ! $location && ! empty( $_REQUEST['_wp_http_referer'] ) ) {
-	$location = remove_query_arg( array('_wp_http_referer', '_wpnonce'), wp_unslash($_SERVER['REQUEST_URI']) );
+	$location = remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), wp_unslash( $_SERVER['REQUEST_URI'] ) );
 }
 
 if ( $location ) {
-	if ( ! empty( $_REQUEST['paged'] ) ) {
-		$location = add_query_arg( 'paged', (int) $_REQUEST['paged'], $location );
+	if ( $pagenum > 1 ) {
+		$location = add_query_arg( 'paged', $pagenum, $location ); // $pagenum takes care of $total_pages.
 	}
 
 	/**
 	 * Filters the taxonomy redirect destination URL.
 	 *
 	 * @since 4.6.0
-	 * 
+	 *
 	 * @param string $location The destination URL.
 	 * @param object $tax      The taxonomy object.
 	 */
@@ -279,13 +261,13 @@ if ( 'category' == $taxonomy || 'link_category' == $taxonomy || 'post_tag' == $t
 	$help = '<p><strong>' . __( 'For more information:' ) . '</strong></p>';
 
 	if ( 'category' == $taxonomy )
-		$help .= '<p>' . __( '<a href="https://codex.wordpress.org/Posts_Categories_Screen" target="_blank">Documentation on Categories</a>' ) . '</p>';
+		$help .= '<p>' . __( '<a href="https://codex.wordpress.org/Posts_Categories_Screen">Documentation on Categories</a>' ) . '</p>';
 	elseif ( 'link_category' == $taxonomy )
-		$help .= '<p>' . __( '<a href="https://codex.wordpress.org/Links_Link_Categories_Screen" target="_blank">Documentation on Link Categories</a>' ) . '</p>';
+		$help .= '<p>' . __( '<a href="https://codex.wordpress.org/Links_Link_Categories_Screen">Documentation on Link Categories</a>' ) . '</p>';
 	else
-		$help .= '<p>' . __( '<a href="https://codex.wordpress.org/Posts_Tags_Screen" target="_blank">Documentation on Tags</a>' ) . '</p>';
+		$help .= '<p>' . __( '<a href="https://codex.wordpress.org/Posts_Tags_Screen">Documentation on Tags</a>' ) . '</p>';
 
-	$help .= '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>';
+	$help .= '<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>';
 
 	get_current_screen()->set_help_sidebar( $help );
 
@@ -294,14 +276,6 @@ if ( 'category' == $taxonomy || 'link_category' == $taxonomy || 'post_tag' == $t
 
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
 
-if ( ! current_user_can( $tax->cap->edit_terms ) ) {
-	wp_die(
-		'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
-		'<p>' . __( 'Sorry, you are not allowed to edit this item.' ) . '</p>',
-		403
-	);
-}
-
 /** Also used by the Edit Tag  form */
 require_once( ABSPATH . 'wp-admin/includes/edit-tag-messages.php' );
 
@@ -392,10 +366,9 @@ if ( current_user_can($tax->cap->edit_terms) ) {
 
 <div class="form-wrap">
 <h2><?php echo $tax->labels->add_new_item; ?></h2>
-<form id="addtag" method="post" action="edit-tags.php" class="validate"
-<?php
+<form id="addtag" method="post" action="edit-tags.php" class="validate"<?php
 /**
- * Fires at the beginning of the Add Tag form.
+ * Fires inside the Add Tag form tag.
  *
  * The dynamic portion of the hook name, `$taxonomy`, refers to the taxonomy slug.
  *
@@ -540,26 +513,7 @@ if ( 'category' == $taxonomy ) {
 do_action( "{$taxonomy}_add_form", $taxonomy );
 ?>
 </form></div>
-<?php }
-
-if ( ! is_null( $tax->labels->popular_items ) ) {
-	if ( current_user_can( $tax->cap->edit_terms ) ) {
-		$tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'post_type' => $post_type, 'echo' => false, 'link' => 'edit' ) );
-	} else {
-		$tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'echo' => false ) );
-	}
-
-	if ( $tag_cloud ) :
-	?>
-<div class="tagcloud">
-<h2><?php echo $tax->labels->popular_items; ?></h2>
-<?php echo $tag_cloud; unset( $tag_cloud ); ?>
-</div>
-<?php
-	endif;
-}
-
-?>
+<?php } ?>
 
 </div>
 </div><!-- /col-left -->
diff --git a/wp-admin/edit.php b/wp-admin/edit.php
index 59cb4f195..3b11eb71b 100644
--- a/wp-admin/edit.php
+++ b/wp-admin/edit.php
@@ -162,6 +162,10 @@ if ( $doaction ) {
 				}
 			}
 			break;
+		default:
+			/** This action is documented in wp-admin/edit-comments.php */
+			$sendback = apply_filters( 'handle_bulk_actions-' . get_current_screen()->id, $sendback, $doaction, $post_ids );
+			break;
 	}
 
 	$sendback = remove_query_arg( array('action', 'action2', 'tags_input', 'post_author', 'comment_status', 'ping_status', '_status', 'post', 'bulk_edit', 'post_view'), $sendback );
@@ -221,8 +225,8 @@ if ( 'post' == $post_type ) {
 
 	get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Posts_Screen" target="_blank">Documentation on Managing Posts</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Posts_Screen">Documentation on Managing Posts</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 	);
 
 } elseif ( 'page' == $post_type ) {
@@ -242,8 +246,8 @@ if ( 'post' == $post_type ) {
 
 	get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Pages_Screen" target="_blank">Documentation on Managing Pages</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Pages_Screen">Documentation on Managing Pages</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 	);
 
 }
@@ -299,16 +303,22 @@ $bulk_counts = array_filter( $bulk_counts );
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 <div class="wrap">
-<h1><?php
+<h1 class="wp-heading-inline"><?php
 echo esc_html( $post_type_object->labels->name );
-if ( current_user_can( $post_type_object->cap->create_posts ) )
+?></h1>
+
+<?php
+if ( current_user_can( $post_type_object->cap->create_posts ) ) {
 	echo ' <a href="' . esc_url( admin_url( $post_new_file ) ) . '" class="page-title-action">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
+}
 
 if ( isset( $_REQUEST['s'] ) && strlen( $_REQUEST['s'] ) ) {
 	/* translators: %s: search keywords */
 	printf( ' <span class="subtitle">' . __( 'Search results for &#8220;%s&#8221;' ) . '</span>', get_search_query() );
 }
-?></h1>
+?>
+
+<hr class="wp-header-end">
 
 <?php
 // If we have a bulk message to issue:
diff --git a/wp-admin/export.php b/wp-admin/export.php
index ebf5a910e..c1d4d8b52 100644
--- a/wp-admin/export.php
+++ b/wp-admin/export.php
@@ -51,8 +51,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Tools_Export_Screen" target="_blank">Documentation on Export</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Tools_Export_Screen">Documentation on Export</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 // If the 'download' URL parameter is set, a WXR export file is baked and returned.
diff --git a/wp-admin/freedoms.php b/wp-admin/freedoms.php
index b47465d73..2aa953721 100644
--- a/wp-admin/freedoms.php
+++ b/wp-admin/freedoms.php
@@ -11,7 +11,7 @@ require_once( dirname( __FILE__ ) . '/admin.php' );
 
 $title = __( 'Freedoms' );
 
-list( $display_version ) = explode( '-', $wp_version );
+list( $display_version ) = explode( '-', get_bloginfo( 'version' ) );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
@@ -19,7 +19,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
-<p class="about-text"><?php printf( __( 'Thank you for updating to the latest version. WordPress %s changes a lot behind the scenes to make your WordPress experience even better!' ), $display_version ); ?></p>
+<p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s helps you get your site set up the way you want it.' ), $display_version ); ?></p>
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
@@ -42,8 +42,8 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 
 <p><?php
 
-$plugins_url = current_user_can( 'activate_plugins' ) ? admin_url( 'plugins.php' ) : 'https://wordpress.org/plugins/';
-$themes_url = current_user_can( 'switch_themes' ) ? admin_url( 'themes.php' ) : 'https://wordpress.org/themes/';
+$plugins_url = current_user_can( 'activate_plugins' ) ? admin_url( 'plugins.php' ) : __( 'https://wordpress.org/plugins/' );
+$themes_url = current_user_can( 'switch_themes' ) ? admin_url( 'themes.php' ) : __( 'https://wordpress.org/themes/' );
 
 printf( __( 'Every plugin and theme in WordPress.org&#8217;s directory is 100%% GPL or a similarly free and compatible license, so you can feel safe finding <a href="%1$s">plugins</a> and <a href="%2$s">themes</a> there. If you get a plugin or theme from another source, make sure to <a href="%3$s">ask them if it&#8217;s GPL</a> first. If they don&#8217;t respect the WordPress license, we don&#8217;t recommend them.' ), $plugins_url, $themes_url, 'https://wordpress.org/about/license/' ); ?></p>
 
diff --git a/wp-admin/import.php b/wp-admin/import.php
index 518376623..1aa682ae9 100644
--- a/wp-admin/import.php
+++ b/wp-admin/import.php
@@ -26,8 +26,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Tools_Import_Screen" target="_blank">Documentation on Import</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Tools_Import_Screen">Documentation on Import</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 if ( current_user_can( 'install_plugins' ) ) {
diff --git a/wp-admin/includes/admin.php b/wp-admin/includes/admin.php
index a44abba91..ee197714a 100644
--- a/wp-admin/includes/admin.php
+++ b/wp-admin/includes/admin.php
@@ -61,6 +61,7 @@ require_once(ABSPATH . 'wp-admin/includes/template.php');
 
 /** WordPress List Table Administration API and base class */
 require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
+require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table-compat.php');
 require_once(ABSPATH . 'wp-admin/includes/list-table.php');
 
 /** WordPress Theme Administration API */
diff --git a/wp-admin/includes/ajax-actions.php b/wp-admin/includes/ajax-actions.php
index dc965d63c..ef89a6b81 100644
--- a/wp-admin/includes/ajax-actions.php
+++ b/wp-admin/includes/ajax-actions.php
@@ -79,21 +79,19 @@ function wp_ajax_nopriv_heartbeat() {
  * Ajax handler for fetching a list table.
  *
  * @since 3.1.0
- *
- * @global WP_List_Table $wp_list_table
  */
 function wp_ajax_fetch_list() {
-	global $wp_list_table;
-
 	$list_class = $_GET['list_args']['class'];
 	check_ajax_referer( "fetch-list-$list_class", '_ajax_fetch_list_nonce' );
 
 	$wp_list_table = _get_list_table( $list_class, array( 'screen' => $_GET['list_args']['screen']['id'] ) );
-	if ( ! $wp_list_table )
+	if ( ! $wp_list_table ) {
 		wp_die( 0 );
+	}
 
-	if ( ! $wp_list_table->ajax_user_can() )
+	if ( ! $wp_list_table->ajax_user_can() ) {
 		wp_die( -1 );
+	}
 
 	$wp_list_table->ajax_response();
 
@@ -136,9 +134,9 @@ function wp_ajax_ajax_tag_search() {
 	 *
 	 * @since 4.0.0
 	 *
-	 * @param int    $characters The minimum number of characters required. Default 2.
-	 * @param object $tax        The taxonomy object.
-	 * @param string $s          The search term.
+	 * @param int         $characters The minimum number of characters required. Default 2.
+	 * @param WP_Taxonomy $tax        The taxonomy object.
+	 * @param string      $s          The search term.
 	 */
 	$term_search_min_chars = (int) apply_filters( 'term_search_min_chars', 2, $tax, $s );
 
@@ -596,12 +594,11 @@ function wp_ajax_delete_tag() {
 	$tag_id = (int) $_POST['tag_ID'];
 	check_ajax_referer( "delete-tag_$tag_id" );
 
-	$taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
-	$tax = get_taxonomy($taxonomy);
-
-	if ( !current_user_can( $tax->cap->delete_terms ) )
+	if ( ! current_user_can( 'delete_term', $tag_id ) ) {
 		wp_die( -1 );
+	}
 
+	$taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
 	$tag = get_term( $tag_id, $taxonomy );
 	if ( !$tag || is_wp_error( $tag ) )
 		wp_die( 1 );
@@ -788,7 +785,7 @@ function wp_ajax_dim_comment() {
 }
 
 /**
- * Ajax handler for deleting a link category.
+ * Ajax handler for adding a link category.
  *
  * @since 3.1.0
  *
@@ -798,8 +795,10 @@ function wp_ajax_add_link_category( $action ) {
 	if ( empty( $action ) )
 		$action = 'add-link-category';
 	check_ajax_referer( $action );
-	if ( !current_user_can( 'manage_categories' ) )
+	$tax = get_taxonomy( 'link_category' );
+	if ( ! current_user_can( $tax->cap->manage_terms ) ) {
 		wp_die( -1 );
+	}
 	$names = explode(',', wp_unslash( $_POST['newcat'] ) );
 	$x = new WP_Ajax_Response();
 	foreach ( $names as $cat_name ) {
@@ -829,12 +828,8 @@ function wp_ajax_add_link_category( $action ) {
  * Ajax handler to add a tag.
  *
  * @since 3.1.0
- *
- * @global WP_List_Table $wp_list_table
  */
 function wp_ajax_add_tag() {
-	global $wp_list_table;
-
 	check_ajax_referer( 'add-tag', '_wpnonce_add-tag' );
 	$taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
 	$tax = get_taxonomy($taxonomy);
@@ -933,36 +928,39 @@ function wp_ajax_get_tagcloud() {
  *
  * @since 3.1.0
  *
- * @global WP_List_Table $wp_list_table
  * @global int           $post_id
  *
  * @param string $action Action to perform.
  */
 function wp_ajax_get_comments( $action ) {
-	global $wp_list_table, $post_id;
-	if ( empty( $action ) )
+	global $post_id;
+	if ( empty( $action ) ) {
 		$action = 'get-comments';
-
+	}
 	check_ajax_referer( $action );
 
 	if ( empty( $post_id ) && ! empty( $_REQUEST['p'] ) ) {
 		$id = absint( $_REQUEST['p'] );
-		if ( ! empty( $id ) )
+		if ( ! empty( $id ) ) {
 			$post_id = $id;
+		}
 	}
 
-	if ( empty( $post_id ) )
+	if ( empty( $post_id ) ) {
 		wp_die( -1 );
+	}
 
 	$wp_list_table = _get_list_table( 'WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
 
-	if ( ! current_user_can( 'edit_post', $post_id ) )
+	if ( ! current_user_can( 'edit_post', $post_id ) ) {
 		wp_die( -1 );
+	}
 
 	$wp_list_table->prepare_items();
 
-	if ( !$wp_list_table->has_items() )
+	if ( ! $wp_list_table->has_items() ) {
 		wp_die( 1 );
+	}
 
 	$x = new WP_Ajax_Response();
 	ob_start();
@@ -986,12 +984,9 @@ function wp_ajax_get_comments( $action ) {
  *
  * @since 3.1.0
  *
- * @global WP_List_Table $wp_list_table
- *
  * @param string $action Action to perform.
  */
 function wp_ajax_replyto_comment( $action ) {
-	global $wp_list_table;
 	if ( empty( $action ) )
 		$action = 'replyto-comment';
 
@@ -1108,12 +1103,8 @@ function wp_ajax_replyto_comment( $action ) {
  * Ajax handler for editing a comment.
  *
  * @since 3.1.0
- *
- * @global WP_List_Table $wp_list_table
  */
 function wp_ajax_edit_comment() {
-	global $wp_list_table;
-
 	check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' );
 
 	$comment_id = (int) $_POST['comment_ID'];
@@ -1257,6 +1248,7 @@ function wp_ajax_add_meta() {
 			$post_data['post_type'] = $post->post_type;
 			$post_data['post_status'] = 'draft';
 			$now = current_time('timestamp', 1);
+			/* translators: 1: Post creation date, 2: Post creation time */
 			$post_data['post_title'] = sprintf( __( 'Draft created on %1$s at %2$s' ), date( __( 'F j, Y' ), $now ), date( __( 'g:i a' ), $now ) );
 
 			$pid = edit_post( $post_data );
@@ -1327,14 +1319,12 @@ function wp_ajax_add_meta() {
  *
  * @since 3.1.0
  *
- * @global WP_List_Table $wp_list_table
- *
  * @param string $action Action to perform.
  */
 function wp_ajax_add_user( $action ) {
-	global $wp_list_table;
-	if ( empty( $action ) )
+	if ( empty( $action ) ) {
 		$action = 'add-user';
+	}
 
 	check_ajax_referer( $action );
 	if ( ! current_user_can('create_users') )
@@ -1608,11 +1598,9 @@ function wp_ajax_sample_permalink() {
  * Ajax handler for Quick Edit saving a post from a list table.
  *
  * @since 3.1.0
- *
- * @global WP_List_Table $wp_list_table
  */
 function wp_ajax_inline_save() {
-	global $wp_list_table, $mode;
+	global $mode;
 
 	check_ajax_referer( 'inlineeditnonce', '_inline_edit' );
 
@@ -1708,12 +1696,8 @@ function wp_ajax_inline_save() {
  * Ajax handler for quick edit saving for a term.
  *
  * @since 3.1.0
- *
- * @global WP_List_Table $wp_list_table
  */
 function wp_ajax_inline_save_tax() {
-	global $wp_list_table;
-
 	check_ajax_referer( 'taxinlineeditnonce', '_inline_edit' );
 
 	$taxonomy = sanitize_key( $_POST['taxonomy'] );
@@ -1721,13 +1705,15 @@ function wp_ajax_inline_save_tax() {
 	if ( ! $tax )
 		wp_die( 0 );
 
-	if ( ! current_user_can( $tax->cap->edit_terms ) )
+	if ( ! isset( $_POST['tax_ID'] ) || ! ( $id = (int) $_POST['tax_ID'] ) ) {
 		wp_die( -1 );
+	}
 
-	$wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => 'edit-' . $taxonomy ) );
-
-	if ( ! isset($_POST['tax_ID']) || ! ( $id = (int) $_POST['tax_ID'] ) )
+	if ( ! current_user_can( 'edit_term', $id ) ) {
 		wp_die( -1 );
+	}
+
+	$wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => 'edit-' . $taxonomy ) );
 
 	$tag = get_term( $id, $taxonomy );
 	$_POST['description'] = $tag->description;
@@ -2033,7 +2019,7 @@ function wp_ajax_upload_attachment() {
 			echo wp_json_encode( array(
 				'success' => false,
 				'data'    => array(
-					'message'  => __( "You don't have permission to attach files to this post." ),
+					'message'  => __( 'Sorry, you are not allowed to attach files to this post.' ),
 					'filename' => $_FILES['async-upload']['name'],
 				)
 			) );
@@ -2415,6 +2401,11 @@ function wp_ajax_query_attachments() {
 	if ( current_user_can( get_post_type_object( 'attachment' )->cap->read_private_posts ) )
 		$query['post_status'] .= ',private';
 
+	// Filter query clauses to include filenames.
+	if ( isset( $query['s'] ) ) {
+		add_filter( 'posts_clauses', '_filter_query_attachment_filenames' );
+	}
+
 	/**
 	 * Filters the arguments passed to WP_Query during an Ajax
 	 * call for querying attachments.
@@ -3132,38 +3123,28 @@ function wp_ajax_destroy_sessions() {
  * Ajax handler for saving a post from Press This.
  *
  * @since 4.2.0
- *
- * @global WP_Press_This $wp_press_this
  */
 function wp_ajax_press_this_save_post() {
-	if ( empty( $GLOBALS['wp_press_this'] ) ) {
-		include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
-	}
-
-	$GLOBALS['wp_press_this']->save_post();
+	include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
+	$wp_press_this = new WP_Press_This();
+	$wp_press_this->save_post();
 }
 
 /**
  * Ajax handler for creating new category from Press This.
  *
  * @since 4.2.0
- *
- * @global WP_Press_This $wp_press_this
  */
 function wp_ajax_press_this_add_category() {
-	if ( empty( $GLOBALS['wp_press_this'] ) ) {
-		include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
-	}
-
-	$GLOBALS['wp_press_this']->add_category();
+	include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
+	$wp_press_this = new WP_Press_This();
+	$wp_press_this->add_category();
 }
 
 /**
  * Ajax handler for cropping an image.
  *
  * @since 4.3.0
- *
- * @global WP_Site_Icon $wp_site_icon
  */
 function wp_ajax_crop_image() {
 	$attachment_id = absint( $_POST['id'] );
@@ -3184,7 +3165,7 @@ function wp_ajax_crop_image() {
 	switch ( $context ) {
 		case 'site-icon':
 			require_once ABSPATH . '/wp-admin/includes/class-wp-site-icon.php';
-			global $wp_site_icon;
+			$wp_site_icon = new WP_Site_Icon();
 
 			// Skip creating a new attachment if the attachment is a Site Icon.
 			if ( get_post_meta( $attachment_id, '_wp_attachment_context', true ) == $context ) {
@@ -3427,7 +3408,7 @@ function wp_ajax_update_theme() {
 		) );
 	}
 
-	$stylesheet = sanitize_key( wp_unslash( $_POST['slug'] ) );
+	$stylesheet = preg_replace( '/[^A-z0-9_\-]/', '', wp_unslash( $_POST['slug'] ) );
 	$status     = array(
 		'update'     => 'theme',
 		'slug'       => $stylesheet,
@@ -3512,7 +3493,7 @@ function wp_ajax_delete_theme() {
 		) );
 	}
 
-	$stylesheet = sanitize_key( wp_unslash( $_POST['slug'] ) );
+	$stylesheet = preg_replace( '/[^A-z0-9_\-]/', '', wp_unslash( $_POST['slug'] ) );
 	$status     = array(
 		'delete' => 'theme',
 		'slug'   => $stylesheet,
@@ -3641,16 +3622,20 @@ function wp_ajax_install_plugin() {
 	}
 
 	$install_status = install_plugin_install_status( $api );
+	$pagenow = isset( $_POST['pagenow'] ) ? sanitize_key( $_POST['pagenow'] ) : '';
+
+	// If install request is coming from import page, do not return network activation link.
+	$plugins_url = ( 'import' === $pagenow ) ? admin_url( 'plugins.php' ) : network_admin_url( 'plugins.php' );
 
 	if ( current_user_can( 'activate_plugins' ) && is_plugin_inactive( $install_status['file'] ) ) {
 		$status['activateUrl'] = add_query_arg( array(
 			'_wpnonce' => wp_create_nonce( 'activate-plugin_' . $install_status['file'] ),
 			'action'   => 'activate',
 			'plugin'   => $install_status['file'],
-		), network_admin_url( 'plugins.php' ) );
+		), $plugins_url );
 	}
 
-	if ( is_multisite() && current_user_can( 'manage_network_plugins' ) ) {
+	if ( is_multisite() && current_user_can( 'manage_network_plugins' ) && 'import' !== $pagenow ) {
 		$status['activateUrl'] = add_query_arg( array( 'networkwide' => 1 ), $status['activateUrl'] );
 	}
 
@@ -3698,7 +3683,7 @@ function wp_ajax_update_plugin() {
 		$status['oldVersion'] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
 	}
 
-	include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+	include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
 
 	wp_update_plugins();
 
diff --git a/wp-admin/includes/class-ftp-pure.php b/wp-admin/includes/class-ftp-pure.php
index 28e56779f..38d348bad 100644
--- a/wp-admin/includes/class-ftp-pure.php
+++ b/wp-admin/includes/class-ftp-pure.php
@@ -25,16 +25,12 @@
  * @link http://www.phpclasses.org/browse/package/1743.html Site
  * @license LGPL http://www.opensource.org/licenses/lgpl-license.html
  */
-class ftp extends ftp_base {
+class ftp_pure extends ftp_base {
 
 	function __construct($verb=FALSE, $le=FALSE) {
 		parent::__construct(false, $verb, $le);
 	}
 
-	function ftp($verb=FALSE, $le=FALSE) {
-		$this->__construct($verb, $le);
-	}
-
 // <!-- --------------------------------------------------------------------------------------- -->
 // <!--       Private functions                                                                 -->
 // <!-- --------------------------------------------------------------------------------------- -->
diff --git a/wp-admin/includes/class-ftp-sockets.php b/wp-admin/includes/class-ftp-sockets.php
index c71205e92..5ca4a2b57 100644
--- a/wp-admin/includes/class-ftp-sockets.php
+++ b/wp-admin/includes/class-ftp-sockets.php
@@ -25,16 +25,12 @@
  * @link http://www.phpclasses.org/browse/package/1743.html Site
  * @license LGPL http://www.opensource.org/licenses/lgpl-license.html
  */
-class ftp extends ftp_base {
+class ftp_sockets extends ftp_base {
 
 	function __construct($verb=FALSE, $le=FALSE) {
 		parent::__construct(true, $verb, $le);
 	}
 
-	function ftp($verb=FALSE, $le=FALSE) {
-		$this->__construct($verb, $le);
-	}
-
 // <!-- --------------------------------------------------------------------------------------- -->
 // <!--       Private functions                                                                 -->
 // <!-- --------------------------------------------------------------------------------------- -->
diff --git a/wp-admin/includes/class-ftp.php b/wp-admin/includes/class-ftp.php
index de6a29966..35f670ff3 100644
--- a/wp-admin/includes/class-ftp.php
+++ b/wp-admin/includes/class-ftp.php
@@ -818,7 +818,7 @@ class ftp_base {
 	function glob_regexp($pattern,$probe) {
 		$sensitive=(PHP_OS!='WIN32');
 		return ($sensitive?
-			preg_match( '/' . preg_quote( $pattern, '/' ) . '/', $probe ) : 
+			preg_match( '/' . preg_quote( $pattern, '/' ) . '/', $probe ) :
 			preg_match( '/' . preg_quote( $pattern, '/' ) . '/i', $probe )
 		);
 	}
@@ -904,3 +904,9 @@ if ( ! $mod_sockets && function_exists( 'dl' ) && is_callable( 'dl' ) ) {
 }
 
 require_once dirname( __FILE__ ) . "/class-ftp-" . ( $mod_sockets ? "sockets" : "pure" ) . ".php";
+
+if ( $mod_sockets ) {
+	class ftp extends ftp_sockets {}
+} else {
+	class ftp extends ftp_pure {}
+}
diff --git a/wp-admin/includes/class-plugin-installer-skin.php b/wp-admin/includes/class-plugin-installer-skin.php
index 34b202035..6c5545523 100644
--- a/wp-admin/includes/class-plugin-installer-skin.php
+++ b/wp-admin/includes/class-plugin-installer-skin.php
@@ -52,12 +52,12 @@ class Plugin_Installer_Skin extends WP_Upgrader_Skin {
 		$from = isset($_GET['from']) ? wp_unslash( $_GET['from'] ) : 'plugins';
 
 		if ( 'import' == $from )
-			$install_actions['activate_plugin'] = '<a href="' . wp_nonce_url( 'plugins.php?action=activate&amp;from=import&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ) . '" target="_parent">' . __( 'Activate Plugin &amp; Run Importer' ) . '</a>';
+			$install_actions['activate_plugin'] = '<a class="button button-primary" href="' . wp_nonce_url( 'plugins.php?action=activate&amp;from=import&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ) . '" target="_parent">' . __( 'Activate Plugin &amp; Run Importer' ) . '</a>';
 		else
-			$install_actions['activate_plugin'] = '<a href="' . wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ) . '" target="_parent">' . __( 'Activate Plugin' ) . '</a>';
+			$install_actions['activate_plugin'] = '<a class="button button-primary" href="' . wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ) . '" target="_parent">' . __( 'Activate Plugin' ) . '</a>';
 
 		if ( is_multisite() && current_user_can( 'manage_network_plugins' ) ) {
-			$install_actions['network_activate'] = '<a href="' . wp_nonce_url( 'plugins.php?action=activate&amp;networkwide=1&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ) . '" target="_parent">' . __( 'Network Activate' ) . '</a>';
+			$install_actions['network_activate'] = '<a class="button button-primary" href="' . wp_nonce_url( 'plugins.php?action=activate&amp;networkwide=1&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ) . '" target="_parent">' . __( 'Network Activate' ) . '</a>';
 			unset( $install_actions['activate_plugin'] );
 		}
 
@@ -90,7 +90,8 @@ class Plugin_Installer_Skin extends WP_Upgrader_Skin {
 		 */
 		$install_actions = apply_filters( 'install_plugin_complete_actions', $install_actions, $this->api, $plugin_file );
 
-		if ( ! empty($install_actions) )
-			$this->feedback(implode(' | ', (array)$install_actions));
+		if ( ! empty( $install_actions ) ) {
+			$this->feedback( implode( ' ', (array) $install_actions ) );
+		}
 	}
 }
diff --git a/wp-admin/includes/class-plugin-upgrader.php b/wp-admin/includes/class-plugin-upgrader.php
index ffb46204f..1327d28c1 100644
--- a/wp-admin/includes/class-plugin-upgrader.php
+++ b/wp-admin/includes/class-plugin-upgrader.php
@@ -101,8 +101,10 @@ class Plugin_Upgrader extends WP_Upgrader {
 		$this->install_strings();
 
 		add_filter('upgrader_source_selection', array($this, 'check_package') );
-		// Clear cache so wp_update_plugins() knows about the new plugin.
-		add_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9, 0 );
+		if ( $parsed_args['clear_update_cache'] ) {
+			// Clear cache so wp_update_plugins() knows about the new plugin.
+			add_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9, 0 );
+		}
 
 		$this->run( array(
 			'package' => $package,
@@ -168,8 +170,10 @@ class Plugin_Upgrader extends WP_Upgrader {
 		add_filter('upgrader_pre_install', array($this, 'deactivate_plugin_before_upgrade'), 10, 2);
 		add_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'), 10, 4);
 		//'source_selection' => array($this, 'source_selection'), //there's a trac ticket to move up the directory for zip's which are made a bit differently, useful for non-.org plugins.
-		// Clear cache so wp_update_plugins() knows about the new plugin.
-		add_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9, 0 );
+		if ( $parsed_args['clear_update_cache'] ) {
+			// Clear cache so wp_update_plugins() knows about the new plugin.
+			add_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9, 0 );
+		}
 
 		$this->run( array(
 			'package' => $r->package,
@@ -227,7 +231,6 @@ class Plugin_Upgrader extends WP_Upgrader {
 		$current = get_site_transient( 'update_plugins' );
 
 		add_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'), 10, 4);
-		add_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9, 0 );
 
 		$this->skin->header();
 
@@ -294,6 +297,9 @@ class Plugin_Upgrader extends WP_Upgrader {
 
 		$this->maintenance_mode(false);
 
+		// Force refresh of plugin update information.
+		wp_clean_plugins_cache( $parsed_args['clear_update_cache'] );
+
 		/** This action is documented in wp-admin/includes/class-wp-upgrader.php */
 		do_action( 'upgrader_process_complete', $this, array(
 			'action' => 'update',
@@ -307,12 +313,8 @@ class Plugin_Upgrader extends WP_Upgrader {
 		$this->skin->footer();
 
 		// Cleanup our hooks, in case something else does a upgrade on this connection.
-		remove_action( 'upgrader_process_complete', 'wp_clean_plugins_cache', 9 );
 		remove_filter('upgrader_clear_destination', array($this, 'delete_old_plugin'));
 
-		// Force refresh of plugin update information.
-		wp_clean_plugins_cache( $parsed_args['clear_update_cache'] );
-
 		return $results;
 	}
 
diff --git a/wp-admin/includes/class-theme-upgrader.php b/wp-admin/includes/class-theme-upgrader.php
index 76129e340..b2571ee7f 100644
--- a/wp-admin/includes/class-theme-upgrader.php
+++ b/wp-admin/includes/class-theme-upgrader.php
@@ -201,8 +201,10 @@ class Theme_Upgrader extends WP_Upgrader {
 
 		add_filter('upgrader_source_selection', array($this, 'check_package') );
 		add_filter('upgrader_post_install', array($this, 'check_parent_theme_filter'), 10, 3);
-		// Clear cache so wp_update_themes() knows about the new theme.
-		add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 );
+		if ( $parsed_args['clear_update_cache'] ) {
+			// Clear cache so wp_update_themes() knows about the new theme.
+			add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 );
+		}
 
 		$this->run( array(
 			'package' => $package,
@@ -269,8 +271,10 @@ class Theme_Upgrader extends WP_Upgrader {
 		add_filter('upgrader_pre_install', array($this, 'current_before'), 10, 2);
 		add_filter('upgrader_post_install', array($this, 'current_after'), 10, 2);
 		add_filter('upgrader_clear_destination', array($this, 'delete_old_theme'), 10, 4);
-		// Clear cache so wp_update_themes() knows about the new theme.
-		add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 );
+		if ( $parsed_args['clear_update_cache'] ) {
+			// Clear cache so wp_update_themes() knows about the new theme.
+			add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 );
+		}
 
 		$this->run( array(
 			'package' => $r['package'],
@@ -329,8 +333,6 @@ class Theme_Upgrader extends WP_Upgrader {
 		add_filter('upgrader_pre_install', array($this, 'current_before'), 10, 2);
 		add_filter('upgrader_post_install', array($this, 'current_after'), 10, 2);
 		add_filter('upgrader_clear_destination', array($this, 'delete_old_theme'), 10, 4);
-		// Clear cache so wp_update_themes() knows about the new theme.
-		add_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9, 0 );
 
 		$this->skin->header();
 
@@ -394,6 +396,9 @@ class Theme_Upgrader extends WP_Upgrader {
 
 		$this->maintenance_mode(false);
 
+		// Refresh the Theme Update information
+		wp_clean_themes_cache( $parsed_args['clear_update_cache'] );
+
 		/** This action is documented in wp-admin/includes/class-wp-upgrader.php */
 		do_action( 'upgrader_process_complete', $this, array(
 			'action' => 'update',
@@ -407,14 +412,10 @@ class Theme_Upgrader extends WP_Upgrader {
 		$this->skin->footer();
 
 		// Cleanup our hooks, in case something else does a upgrade on this connection.
-		remove_action( 'upgrader_process_complete', 'wp_clean_themes_cache', 9 );
 		remove_filter('upgrader_pre_install', array($this, 'current_before'));
 		remove_filter('upgrader_post_install', array($this, 'current_after'));
 		remove_filter('upgrader_clear_destination', array($this, 'delete_old_theme'));
 
-		// Refresh the Theme Update information
-		wp_clean_themes_cache( $parsed_args['clear_update_cache'] );
-
 		return $results;
 	}
 
diff --git a/wp-admin/includes/class-walker-nav-menu-edit.php b/wp-admin/includes/class-walker-nav-menu-edit.php
index 9a2f3ecb6..1f6857667 100644
--- a/wp-admin/includes/class-walker-nav-menu-edit.php
+++ b/wp-admin/includes/class-walker-nav-menu-edit.php
@@ -197,16 +197,14 @@ class Walker_Nav_Menu_Edit extends Walker_Nav_Menu {
 					</label>
 				</p>
 
-				<p class="field-move hide-if-no-js description description-wide">
-					<label>
-						<span><?php _e( 'Move' ); ?></span>
-						<a href="#" class="menus-move menus-move-up" data-dir="up"><?php _e( 'Up one' ); ?></a>
-						<a href="#" class="menus-move menus-move-down" data-dir="down"><?php _e( 'Down one' ); ?></a>
-						<a href="#" class="menus-move menus-move-left" data-dir="left"></a>
-						<a href="#" class="menus-move menus-move-right" data-dir="right"></a>
-						<a href="#" class="menus-move menus-move-top" data-dir="top"><?php _e( 'To the top' ); ?></a>
-					</label>
-				</p>
+				<fieldset class="field-move hide-if-no-js description description-wide">
+					<span class="field-move-visual-label" aria-hidden="true"><?php _e( 'Move' ); ?></span>
+					<button type="button" class="button-link menus-move menus-move-up" data-dir="up"><?php _e( 'Up one' ); ?></button>
+					<button type="button" class="button-link menus-move menus-move-down" data-dir="down"><?php _e( 'Down one' ); ?></button>
+					<button type="button" class="button-link menus-move menus-move-left" data-dir="left"></button>
+					<button type="button" class="button-link menus-move menus-move-right" data-dir="right"></button>
+					<button type="button" class="button-link menus-move menus-move-top" data-dir="top"><?php _e( 'To the top' ); ?></button>
+				</fieldset>
 
 				<div class="menu-item-actions description-wide submitbox">
 					<?php if ( 'custom' != $item->type && $original_title !== false ) : ?>
diff --git a/wp-admin/includes/class-wp-automatic-updater.php b/wp-admin/includes/class-wp-automatic-updater.php
index 121993941..ea2d70c5c 100644
--- a/wp-admin/includes/class-wp-automatic-updater.php
+++ b/wp-admin/includes/class-wp-automatic-updater.php
@@ -176,7 +176,7 @@ class WP_Automatic_Updater {
 		 * @param bool   $update Whether to update.
 		 * @param object $item   The update offer.
 		 */
-		$update = apply_filters( 'auto_update_' . $type, $update, $item );
+		$update = apply_filters( "auto_update_{$type}", $update, $item );
 
 		if ( ! $update ) {
 			if ( 'core' == $type )
@@ -371,13 +371,8 @@ class WP_Automatic_Updater {
 	 *
 	 * @since 3.7.0
 	 * @access public
-	 *
-	 * @global wpdb   $wpdb
-	 * @global string $wp_version
 	 */
 	public function run() {
-		global $wpdb, $wp_version;
-
 		if ( $this->is_disabled() )
 			return;
 
@@ -457,7 +452,7 @@ class WP_Automatic_Updater {
 
 		// Send debugging email to all development installs.
 		if ( ! empty( $this->update_results ) ) {
-			$development_version = false !== strpos( $wp_version, '-' );
+			$development_version = false !== strpos( get_bloginfo( 'version' ), '-' );
 
 			/**
 			 * Filters whether to send a debugging email for each automatic background update.
@@ -494,12 +489,10 @@ class WP_Automatic_Updater {
 	 * @since Unknown
 	 * @access protected
 	 *
-	 * @global string $wp_version
-	 *
 	 * @param object $update_result The result of the core update. Includes the update offer and result.
 	 */
 	protected function after_core_update( $update_result ) {
-		global $wp_version;
+		$wp_version = get_bloginfo( 'version' );
 
 		$core_update = $update_result->item;
 		$result      = $update_result->result;
@@ -584,8 +577,6 @@ class WP_Automatic_Updater {
 	 * @since 3.7.0
 	 * @access protected
 	 *
-	 * @global string $wp_version
-	 *
 	 * @param string $type        The type of email to send. Can be one of 'success', 'fail', 'manual', 'critical'.
 	 * @param object $core_update The update offer that was attempted.
 	 * @param mixed  $result      Optional. The result for the core update. Can be WP_Error.
@@ -722,7 +713,7 @@ class WP_Automatic_Updater {
 
 		if ( 'critical' == $type && is_wp_error( $result ) ) {
 			$body .= "\n***\n\n";
-			$body .= sprintf( __( 'Your site was running version %s.' ), $GLOBALS['wp_version'] );
+			$body .= sprintf( __( 'Your site was running version %s.' ), get_bloginfo( 'version' ) );
 			$body .= ' ' . __( 'We have some data that describes the error your site encountered.' );
 			$body .= ' ' . __( 'Your hosting company, support forum volunteers, or a friendly developer may be able to use this information to help you:' );
 
diff --git a/wp-admin/includes/class-wp-comments-list-table.php b/wp-admin/includes/class-wp-comments-list-table.php
index 116a55e06..37a2e751a 100644
--- a/wp-admin/includes/class-wp-comments-list-table.php
+++ b/wp-admin/includes/class-wp-comments-list-table.php
@@ -94,7 +94,7 @@ class WP_Comments_List_Table extends WP_List_Table {
 
 		$comments_per_page = $this->get_per_page( $comment_status );
 
-		$doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX;
+		$doing_ajax = wp_doing_ajax();
 
 		if ( isset( $_REQUEST['number'] ) ) {
 			$number = (int) $_REQUEST['number'];
@@ -351,7 +351,7 @@ class WP_Comments_List_Table extends WP_List_Table {
 			 * @since 3.5.0
 			 */
 			do_action( 'restrict_manage_comments' );
-			submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
+			submit_button( __( 'Filter' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
 		}
 
 		if ( ( 'spam' === $comment_status || 'trash' === $comment_status ) && current_user_can( 'moderate_comments' ) ) {
@@ -600,7 +600,7 @@ class WP_Comments_List_Table extends WP_List_Table {
 			( ( ( 'approve' === $action || 'unapprove' === $action ) && 2 === $i ) || 1 === $i ) ? $sep = '' : $sep = ' | ';
 
 			// Reply and quickedit need a hide-if-no-js span when not added with ajax
-			if ( ( 'reply' === $action || 'quickedit' === $action ) && ! defined('DOING_AJAX') )
+			if ( ( 'reply' === $action || 'quickedit' === $action ) && ! wp_doing_ajax() )
 				$action .= ' hide-if-no-js';
 			elseif ( ( $action === 'untrash' && $the_comment_status === 'trash' ) || ( $action === 'unspam' && $the_comment_status === 'spam' ) ) {
 				if ( '1' == get_comment_meta( $comment->comment_ID, '_wp_trash_meta_status', true ) )
diff --git a/wp-admin/includes/class-wp-importer.php b/wp-admin/includes/class-wp-importer.php
index 408fe1bc0..794fa5cf0 100644
--- a/wp-admin/includes/class-wp-importer.php
+++ b/wp-admin/includes/class-wp-importer.php
@@ -136,13 +136,15 @@ class WP_Importer {
 				fwrite( STDERR, "Error: can not determine blog_id from $blog_id\n" );
 				exit();
 			}
-			if ( empty( $parsed['path'] ) )
+			if ( empty( $parsed['path'] ) ) {
 				$parsed['path'] = '/';
-			$blog = get_blog_details( array( 'domain' => $parsed['host'], 'path' => $parsed['path'] ) );
-			if ( !$blog ) {
+			}
+			$blogs = get_sites( array( 'domain' => $parsed['host'], 'number' => 1, 'path' => $parsed['path'] ) );
+			if ( ! $blogs ) {
 				fwrite( STDERR, "Error: Could not find blog\n" );
 				exit();
 			}
+			$blog = array_shift( $blogs );
 			$blog_id = (int) $blog->blog_id;
 		}
 
diff --git a/wp-admin/includes/class-wp-links-list-table.php b/wp-admin/includes/class-wp-links-list-table.php
index e4560e480..222d6dfc2 100644
--- a/wp-admin/includes/class-wp-links-list-table.php
+++ b/wp-admin/includes/class-wp-links-list-table.php
@@ -112,7 +112,7 @@ class WP_Links_List_Table extends WP_List_Table {
 
 			echo '<label class="screen-reader-text" for="cat_id">' . __( 'Filter by category' ) . '</label>';
 			wp_dropdown_categories( $dropdown_options );
-			submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
+			submit_button( __( 'Filter' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
 ?>
 		</div>
 <?php
diff --git a/wp-admin/includes/class-wp-list-table-compat.php b/wp-admin/includes/class-wp-list-table-compat.php
new file mode 100644
index 000000000..128764793
--- /dev/null
+++ b/wp-admin/includes/class-wp-list-table-compat.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Helper functions for displaying a list of items in an ajaxified HTML table.
+ *
+ * @package WordPress
+ * @subpackage List_Table
+ * @since 4.7.0
+ */
+
+/**
+ * Helper class to be used only by back compat functions
+ *
+ * @since 3.1.0
+ */
+class _WP_List_Table_Compat extends WP_List_Table {
+	public $_screen;
+	public $_columns;
+
+	public function __construct( $screen, $columns = array() ) {
+		if ( is_string( $screen ) )
+			$screen = convert_to_screen( $screen );
+
+		$this->_screen = $screen;
+
+		if ( !empty( $columns ) ) {
+			$this->_columns = $columns;
+			add_filter( 'manage_' . $screen->id . '_columns', array( $this, 'get_columns' ), 0 );
+		}
+	}
+
+	/**
+	 * @access protected
+	 *
+	 * @return array
+	 */
+	protected function get_column_info() {
+		$columns = get_column_headers( $this->_screen );
+		$hidden = get_hidden_columns( $this->_screen );
+		$sortable = array();
+		$primary = $this->get_default_primary_column_name();
+
+		return array( $columns, $hidden, $sortable, $primary );
+	}
+
+	/**
+	 * @access public
+	 *
+	 * @return array
+	 */
+	public function get_columns() {
+		return $this->_columns;
+	}
+}
diff --git a/wp-admin/includes/class-wp-list-table.php b/wp-admin/includes/class-wp-list-table.php
index ee0f9af59..bf642acb2 100644
--- a/wp-admin/includes/class-wp-list-table.php
+++ b/wp-admin/includes/class-wp-list-table.php
@@ -284,7 +284,7 @@ class WP_List_Table {
 			$args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] );
 
 		// Redirect if page number is invalid and headers are not already sent.
-		if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
+		if ( ! headers_sent() && ! wp_doing_ajax() && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
 			wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) );
 			exit;
 		}
@@ -361,7 +361,7 @@ class WP_List_Table {
 <p class="search-box">
 	<label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>"><?php echo $text; ?>:</label>
 	<input type="search" id="<?php echo esc_attr( $input_id ); ?>" name="s" value="<?php _admin_search_query(); ?>" />
-	<?php submit_button( $text, 'button', '', false, array( 'id' => 'search-submit' ) ); ?>
+	<?php submit_button( $text, '', '', false, array( 'id' => 'search-submit' ) ); ?>
 </p>
 <?php
 	}
@@ -436,7 +436,7 @@ class WP_List_Table {
 	 */
 	protected function bulk_actions( $which = '' ) {
 		if ( is_null( $this->_actions ) ) {
-			$no_new_actions = $this->_actions = $this->get_bulk_actions();
+			$this->_actions = $this->get_bulk_actions();
 			/**
 			 * Filters the list table Bulk Actions drop-down.
 			 *
@@ -450,7 +450,6 @@ class WP_List_Table {
 			 * @param array $actions An array of the available bulk actions.
 			 */
 			$this->_actions = apply_filters( "bulk_actions-{$this->screen->id}", $this->_actions );
-			$this->_actions = array_intersect_assoc( $this->_actions, $no_new_actions );
 			$two = '';
 		} else {
 			$two = '2';
diff --git a/wp-admin/includes/class-wp-media-list-table.php b/wp-admin/includes/class-wp-media-list-table.php
index 170ec5a2c..d0c24449f 100644
--- a/wp-admin/includes/class-wp-media-list-table.php
+++ b/wp-admin/includes/class-wp-media-list-table.php
@@ -174,7 +174,7 @@ class WP_Media_List_Table extends WP_List_Table {
 			/** This action is documented in wp-admin/includes/class-wp-posts-list-table.php */
 			do_action( 'restrict_manage_posts', $this->screen->post_type );
 
-			submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
+			submit_button( __( 'Filter' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
 		}
 
 		if ( $this->is_trash && current_user_can( 'edit_others_posts' ) ) {
@@ -262,7 +262,7 @@ class WP_Media_List_Table extends WP_List_Table {
 
 	<div class="search-form">
 		<label for="media-search-input" class="screen-reader-text"><?php esc_html_e( 'Search Media' ); ?></label>
-		<input type="search" placeholder="<?php esc_attr_e( 'Search' ) ?>" id="media-search-input" class="search" name="s" value="<?php _admin_search_query(); ?>"></div>
+		<input type="search" placeholder="<?php esc_attr_e( 'Search media items...' ) ?>" id="media-search-input" class="search" name="s" value="<?php _admin_search_query(); ?>"></div>
 	</div>
 	<?php
 	}
diff --git a/wp-admin/includes/class-wp-ms-sites-list-table.php b/wp-admin/includes/class-wp-ms-sites-list-table.php
index 9ce3ffee9..6c7bcc3b4 100644
--- a/wp-admin/includes/class-wp-ms-sites-list-table.php
+++ b/wp-admin/includes/class-wp-ms-sites-list-table.php
@@ -518,7 +518,7 @@ class WP_MS_Sites_List_Table extends WP_List_Table {
 
 		$actions['edit']	= '<a href="' . esc_url( network_admin_url( 'site-info.php?id=' . $blog['blog_id'] ) ) . '">' . __( 'Edit' ) . '</a>';
 		$actions['backend']	= "<a href='" . esc_url( get_admin_url( $blog['blog_id'] ) ) . "' class='edit'>" . __( 'Dashboard' ) . '</a>';
-		if ( get_current_site()->blog_id != $blog['blog_id'] ) {
+		if ( get_network()->site_id != $blog['blog_id'] ) {
 			if ( $blog['deleted'] == '1' ) {
 				$actions['activate']   = '<a href="' . esc_url( wp_nonce_url( network_admin_url( 'sites.php?action=confirm&amp;action2=activateblog&amp;id=' . $blog['blog_id'] ), 'activateblog_' . $blog['blog_id'] ) ) . '">' . __( 'Activate' ) . '</a>';
 			} else {
diff --git a/wp-admin/includes/class-wp-ms-themes-list-table.php b/wp-admin/includes/class-wp-ms-themes-list-table.php
index d35956c14..0f3865a98 100644
--- a/wp-admin/includes/class-wp-ms-themes-list-table.php
+++ b/wp-admin/includes/class-wp-ms-themes-list-table.php
@@ -150,7 +150,8 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
 		$total_this_page = $totals[ $status ];
 
 		wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
-			'totals' => $totals,
+			'themes' => $totals,
+			'totals' => wp_get_update_data(),
 		) );
 
 		if ( $orderby ) {
@@ -518,7 +519,7 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
 		 * @param WP_Theme $theme   The current WP_Theme object.
 		 * @param string   $context Status of the theme.
 		 */
-		$actions = apply_filters( "theme_action_links_$stylesheet", $actions, $theme, $context );
+		$actions = apply_filters( "theme_action_links_{$stylesheet}", $actions, $theme, $context );
 
 		echo $this->row_actions( $actions, true );
 	}
@@ -726,6 +727,6 @@ class WP_MS_Themes_List_Table extends WP_List_Table {
 		 * @param WP_Theme $theme      Current WP_Theme object.
 		 * @param string   $status     Status of the theme.
 		 */
-		do_action( "after_theme_row_$stylesheet", $stylesheet, $theme, $status );
+		do_action( "after_theme_row_{$stylesheet}", $stylesheet, $theme, $status );
 	}
 }
diff --git a/wp-admin/includes/class-wp-ms-users-list-table.php b/wp-admin/includes/class-wp-ms-users-list-table.php
index da00131bc..d219efc38 100644
--- a/wp-admin/includes/class-wp-ms-users-list-table.php
+++ b/wp-admin/includes/class-wp-ms-users-list-table.php
@@ -329,7 +329,7 @@ class WP_MS_Users_List_Table extends WP_List_Table {
 
 			$path	= ( $val->path === '/' ) ? '' : $val->path;
 			echo '<span class="site-' . $val->site_id . '" >';
-			echo '<a href="'. esc_url( network_admin_url( 'site-info.php?id=' . $val->userblog_id ) ) .'">' . str_replace( '.' . get_current_site()->domain, '', $val->domain . $path ) . '</a>';
+			echo '<a href="'. esc_url( network_admin_url( 'site-info.php?id=' . $val->userblog_id ) ) .'">' . str_replace( '.' . get_network()->domain, '', $val->domain . $path ) . '</a>';
 			echo ' <small class="row-actions">';
 			$actions = array();
 			$actions['edit'] = '<a href="'. esc_url( network_admin_url( 'site-info.php?id=' . $val->userblog_id ) ) .'">' . __( 'Edit' ) . '</a>';
diff --git a/wp-admin/includes/class-wp-plugin-install-list-table.php b/wp-admin/includes/class-wp-plugin-install-list-table.php
index 6e389b1a2..cd718360c 100644
--- a/wp-admin/includes/class-wp-plugin-install-list-table.php
+++ b/wp-admin/includes/class-wp-plugin-install-list-table.php
@@ -69,7 +69,6 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 	 * @global int    $paged
 	 * @global string $type
 	 * @global string $term
-	 * @global string $wp_version
 	 */
 	public function prepare_items() {
 		include( ABSPATH . 'wp-admin/includes/plugin-install.php' );
@@ -88,7 +87,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 		if ( 'search' === $tab ) {
 			$tabs['search'] = __( 'Search Results' );
 		}
-		if ( $tab === 'beta' || false !== strpos( $GLOBALS['wp_version'], '-' ) ) {
+		if ( $tab === 'beta' || false !== strpos( get_bloginfo( 'version' ), '-' ) ) {
 			$tabs['beta'] = _x( 'Beta Testing', 'Plugin Installer' );
 		}
 		$tabs['featured']    = _x( 'Featured', 'Plugin Installer' );
@@ -135,7 +134,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 				'active_installs' => true
 			),
 			// Send the locale and installed plugin slugs to the API so it can provide context-sensitive results.
-			'locale' => get_locale(),
+			'locale' => get_user_locale(),
 			'installed_plugins' => $this->get_installed_plugin_slugs(),
 		);
 
@@ -200,7 +199,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 		 *
 		 * @param array|bool $args Plugin Install API arguments.
 		 */
-		$args = apply_filters( "install_plugins_table_api_args_$tab", $args );
+		$args = apply_filters( "install_plugins_table_api_args_{$tab}", $args );
 
 		if ( !$args )
 			return;
@@ -391,9 +390,6 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 		}
 	}
 
-	/**
-	 * @global string $wp_version
-	 */
 	public function display_rows() {
 		$plugins_allowedtags = array(
 			'a' => array( 'href' => array(),'title' => array(), 'target' => array() ),
@@ -492,7 +488,7 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 							}
 
 							$action_links[] = sprintf(
-								'<a href="%1$s" class="button activate-now button-secondary" aria-label="%2$s">%3$s</a>',
+								'<a href="%1$s" class="button activate-now" aria-label="%2$s">%3$s</a>',
 								esc_url( $activate_url ),
 								esc_attr( sprintf( $button_label, $plugin['name'] ) ),
 								$button_text
@@ -566,6 +562,8 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 					<?php
 					if ( $plugin['active_installs'] >= 1000000 ) {
 						$active_installs_text = _x( '1+ Million', 'Active plugin installs' );
+					} elseif ( 0 == $plugin['active_installs'] ) {
+						$active_installs_text = _x( 'Less Than 10', 'Active plugin installs' );
 					} else {
 						$active_installs_text = number_format_i18n( $plugin['active_installs'] ) . '+';
 					}
@@ -574,9 +572,11 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 				</div>
 				<div class="column-compatibility">
 					<?php
-					if ( ! empty( $plugin['tested'] ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '>' ) ) {
+					$wp_version = get_bloginfo( 'version' );
+
+					if ( ! empty( $plugin['tested'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '>' ) ) {
 						echo '<span class="compatibility-untested">' . __( 'Untested with your version of WordPress' ) . '</span>';
-					} elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) {
+					} elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) {
 						echo '<span class="compatibility-incompatible">' . __( '<strong>Incompatible</strong> with your version of WordPress' ) . '</span>';
 					} else {
 						echo '<span class="compatibility-compatible">' . __( '<strong>Compatible</strong> with your version of WordPress' ) . '</span>';
diff --git a/wp-admin/includes/class-wp-plugins-list-table.php b/wp-admin/includes/class-wp-plugins-list-table.php
index 4204cf93b..136fbd4c7 100644
--- a/wp-admin/includes/class-wp-plugins-list-table.php
+++ b/wp-admin/includes/class-wp-plugins-list-table.php
@@ -253,6 +253,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
 
 		wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
 			'plugins' => $js_plugins,
+			'totals'  => wp_get_update_data(),
 		) );
 
 		if ( ! $orderby ) {
@@ -367,7 +368,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
 		<p class="search-box">
 			<label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>"><?php echo $text; ?>:</label>
 			<input type="search" id="<?php echo esc_attr( $input_id ); ?>" class="wp-filter-search" name="s" value="<?php _admin_search_query(); ?>" placeholder="<?php esc_attr_e( 'Search installed plugins...' ); ?>"/>
-			<?php submit_button( $text, 'button hide-if-js', '', false, array( 'id' => 'search-submit' ) ); ?>
+			<?php submit_button( $text, 'hide-if-js', '', false, array( 'id' => 'search-submit' ) ); ?>
 		</p>
 		<?php
 	}
@@ -496,7 +497,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
 		echo '<div class="alignleft actions">';
 
 		if ( 'recently_activated' == $status ) {
-			submit_button( __( 'Clear List' ), 'button', 'clear-recent-list', false );
+			submit_button( __( 'Clear List' ), '', 'clear-recent-list', false );
 		} elseif ( 'top' === $which && 'mustuse' === $status ) {
 			/* translators: %s: mu-plugins directory name */
 			echo '<p>' . sprintf( __( 'Files in the %s directory are executed automatically.' ),
@@ -652,8 +653,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
 			 * The default action links for the Network plugins list table include
 			 * 'Network Activate', 'Network Deactivate', 'Edit', and 'Delete'.
 			 *
-			 * @since 3.1.0 As `{$prefix}_plugin_action_links`
-			 * @since 4.4.0
+			 * @since 3.1.0
 			 *
 			 * @param array  $actions     An array of plugin action links.
 			 * @param string $plugin_file Path to the plugin file relative to the plugins directory.
@@ -670,8 +670,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
 			 * The dynamic portion of the hook name, $plugin_file, refers to the path
 			 * to the plugin file, relative to the plugins directory.
 			 *
-			 * @since 3.1.0 As `{$prefix}_plugin_action_links_{$plugin_file}`
-			 * @since 4.4.0
+			 * @since 3.1.0
 			 *
 			 * @param array  $actions     An array of plugin action links.
 			 * @param string $plugin_file Path to the plugin file relative to the plugins directory.
@@ -691,8 +690,8 @@ class WP_Plugins_List_Table extends WP_List_Table {
 			 * 'Activate', 'Deactivate', and 'Edit', for a network site, and
 			 * 'Activate', 'Deactivate', 'Edit', and 'Delete' for a single site.
 			 *
-			 * @since 2.5.0 As `{$prefix}_plugin_action_links`
-			 * @since 4.4.0
+			 * @since 2.5.0
+			 * @since 2.6.0 The `$context` parameter was added.
 			 *
 			 * @param array  $actions     An array of plugin action links.
 			 * @param string $plugin_file Path to the plugin file relative to the plugins directory.
@@ -709,8 +708,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
 			 * The dynamic portion of the hook name, $plugin_file, refers to the path
 			 * to the plugin file, relative to the plugins directory.
 			 *
-			 * @since 2.7.0 As `{$prefix}_plugin_action_links_{$plugin_file}`
-			 * @since 4.4.0
+			 * @since 2.7.0
 			 *
 			 * @param array  $actions     An array of plugin action links.
 			 * @param string $plugin_file Path to the plugin file relative to the plugins directory.
@@ -864,7 +862,7 @@ class WP_Plugins_List_Table extends WP_List_Table {
 		 *                            'Inactive', 'Recently Activated', 'Upgrade', 'Must-Use',
 		 *                            'Drop-ins', 'Search'.
 		 */
-		do_action( "after_plugin_row_$plugin_file", $plugin_file, $plugin_data, $status );
+		do_action( "after_plugin_row_{$plugin_file}", $plugin_file, $plugin_data, $status );
 	}
 
 	/**
diff --git a/wp-admin/includes/class-wp-posts-list-table.php b/wp-admin/includes/class-wp-posts-list-table.php
index 7ef790e31..ae0f2441f 100644
--- a/wp-admin/includes/class-wp-posts-list-table.php
+++ b/wp-admin/includes/class-wp-posts-list-table.php
@@ -459,6 +459,7 @@ class WP_Posts_List_Table extends WP_List_Table {
 		<div class="alignleft actions">
 <?php
 		if ( 'top' === $which && !is_singular() ) {
+			ob_start();
 
 			$this->months_dropdown( $this->screen->post_type );
 			$this->categories_dropdown( $this->screen->post_type );
@@ -479,7 +480,12 @@ class WP_Posts_List_Table extends WP_List_Table {
 			 */
 			do_action( 'restrict_manage_posts', $this->screen->post_type, $which );
 
-			submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
+			$output = ob_get_clean();
+
+			if ( ! empty( $output ) ) {
+				echo $output;
+				submit_button( __( 'Filter' ), '', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
+			}
 		}
 
 		if ( $this->is_trash && current_user_can( get_post_type_object( $this->screen->post_type )->cap->edit_others_posts ) ) {
@@ -829,7 +835,16 @@ class WP_Posts_List_Table extends WP_List_Table {
 				printf( __( 'Select %s' ), _draft_or_post_title() );
 			?></label>
 			<input id="cb-select-<?php the_ID(); ?>" type="checkbox" name="post[]" value="<?php the_ID(); ?>" />
-			<div class="locked-indicator"></div>
+			<div class="locked-indicator">
+				<span class="locked-indicator-icon" aria-hidden="true"></span>
+				<span class="screen-reader-text"><?php
+				printf(
+					/* translators: %s: post title */
+					__( '&#8220;%s&#8221; is locked' ),
+					_draft_or_post_title()
+				);
+				?></span>
+			</div>
 		<?php endif;
 	}
 
@@ -884,6 +899,22 @@ class WP_Posts_List_Table extends WP_List_Table {
 			}
 		}
 
+		$can_edit_post = current_user_can( 'edit_post', $post->ID );
+
+		if ( $can_edit_post && $post->post_status != 'trash' ) {
+			$lock_holder = wp_check_post_lock( $post->ID );
+
+			if ( $lock_holder ) {
+				$lock_holder = get_userdata( $lock_holder );
+				$locked_avatar = get_avatar( $lock_holder->ID, 18 );
+				$locked_text = esc_html( sprintf( __( '%s is currently editing' ), $lock_holder->display_name ) );
+			} else {
+				$locked_avatar = $locked_text = '';
+			}
+
+			echo '<div class="locked-info"><span class="locked-avatar">' . $locked_avatar . '</span> <span class="locked-text">' . $locked_text . "</span></div>\n";
+		}
+
 		$pad = str_repeat( '&#8212; ', $this->current_level );
 		echo "<strong>";
 
@@ -901,7 +932,6 @@ class WP_Posts_List_Table extends WP_List_Table {
 			echo $this->get_edit_link( $format_args, $label . ':', $format_class );
 		}
 
-		$can_edit_post = current_user_can( 'edit_post', $post->ID );
 		$title = _draft_or_post_title();
 
 		if ( $can_edit_post && $post->post_status != 'trash' ) {
@@ -924,20 +954,6 @@ class WP_Posts_List_Table extends WP_List_Table {
 		}
 		echo "</strong>\n";
 
-		if ( $can_edit_post && $post->post_status != 'trash' ) {
-			$lock_holder = wp_check_post_lock( $post->ID );
-
-			if ( $lock_holder ) {
-				$lock_holder = get_userdata( $lock_holder );
-				$locked_avatar = get_avatar( $lock_holder->ID, 18 );
-				$locked_text = esc_html( sprintf( __( '%s is currently editing' ), $lock_holder->display_name ) );
-			} else {
-				$locked_avatar = $locked_text = '';
-			}
-
-			echo '<div class="locked-info"><span class="locked-avatar">' . $locked_avatar . '</span> <span class="locked-text">' . $locked_text . "</span></div>\n";
-		}
-
 		if ( ! is_post_type_hierarchical( $this->screen->post_type ) && 'excerpt' === $mode && current_user_can( 'read_post', $post->ID ) ) {
 			the_excerpt();
 		}
@@ -1522,38 +1538,38 @@ class WP_Posts_List_Table extends WP_List_Table {
 				<span class="input-text-wrap"><input type="text" name="menu_order" class="inline-edit-menu-order-input" value="<?php echo $post->menu_order ?>" /></span>
 			</label>
 
-	<?php	endif; // !$bulk
-
-			if ( 'page' === $screen->post_type ) :
-	?>
-
-			<label>
-				<span class="title"><?php _e( 'Template' ); ?></span>
-				<select name="page_template">
-	<?php	if ( $bulk ) : ?>
-					<option value="-1"><?php _e( '&mdash; No Change &mdash;' ); ?></option>
-	<?php	endif; // $bulk ?>
-    				<?php
-					/** This filter is documented in wp-admin/includes/meta-boxes.php */
-					$default_title = apply_filters( 'default_page_template_title',  __( 'Default Template' ), 'quick-edit' );
-    				?>
-					<option value="default"><?php echo esc_html( $default_title ); ?></option>
-					<?php page_template_dropdown() ?>
-				</select>
-			</label>
-
 	<?php
-			endif; // page post_type
+			endif; // !$bulk
 		endif; // page-attributes
 	?>
 
+	<?php if ( 0 < count( get_page_templates( null, $screen->post_type ) ) ) : ?>
+		<label>
+			<span class="title"><?php _e( 'Template' ); ?></span>
+			<select name="page_template">
+<?php	if ( $bulk ) : ?>
+				<option value="-1"><?php _e( '&mdash; No Change &mdash;' ); ?></option>
+<?php	endif; // $bulk ?>
+                <?php
+				/** This filter is documented in wp-admin/includes/meta-boxes.php */
+				$default_title = apply_filters( 'default_page_template_title',  __( 'Default Template' ), 'quick-edit' );
+                ?>
+				<option value="default"><?php echo esc_html( $default_title ); ?></option>
+				<?php page_template_dropdown( '', $screen->post_type ) ?>
+			</select>
+		</label>
+	<?php endif; ?>
+
 	<?php if ( count( $flat_taxonomies ) && !$bulk ) : ?>
 
 	<?php foreach ( $flat_taxonomies as $taxonomy ) : ?>
-		<?php if ( current_user_can( $taxonomy->cap->assign_terms ) ) : ?>
+		<?php if ( current_user_can( $taxonomy->cap->assign_terms ) ) :
+			$taxonomy_name = esc_attr( $taxonomy->name );
+
+			?>
 			<label class="inline-edit-tags">
 				<span class="title"><?php echo esc_html( $taxonomy->labels->name ) ?></span>
-				<textarea cols="22" rows="1" name="tax_input[<?php echo esc_attr( $taxonomy->name )?>]" class="tax_input_<?php echo esc_attr( $taxonomy->name )?>"></textarea>
+				<textarea data-wp-taxonomy="<?php echo $taxonomy_name; ?>" cols="22" rows="1" name="tax_input[<?php echo $taxonomy_name; ?>]" class="tax_input_<?php echo $taxonomy_name; ?>"></textarea>
 			</label>
 		<?php endif; ?>
 
@@ -1713,14 +1729,14 @@ class WP_Posts_List_Table extends WP_List_Table {
 		}
 	?>
 		<p class="submit inline-edit-save">
-			<button type="button" class="button-secondary cancel alignleft"><?php _e( 'Cancel' ); ?></button>
+			<button type="button" class="button cancel alignleft"><?php _e( 'Cancel' ); ?></button>
 			<?php if ( ! $bulk ) {
 				wp_nonce_field( 'inlineeditnonce', '_inline_edit', false );
 				?>
-				<button type="button" class="button-primary save alignright"><?php _e( 'Update' ); ?></button>
+				<button type="button" class="button button-primary save alignright"><?php _e( 'Update' ); ?></button>
 				<span class="spinner"></span>
 			<?php } else {
-				submit_button( __( 'Update' ), 'button-primary alignright', 'bulk_edit', false );
+				submit_button( __( 'Update' ), 'primary alignright', 'bulk_edit', false );
 			} ?>
 			<input type="hidden" name="post_view" value="<?php echo esc_attr( $m ); ?>" />
 			<input type="hidden" name="screen" value="<?php echo esc_attr( $screen->id ); ?>" />
diff --git a/wp-admin/includes/class-wp-press-this.php b/wp-admin/includes/class-wp-press-this.php
index a00bbaa40..71ce5153d 100644
--- a/wp-admin/includes/class-wp-press-this.php
+++ b/wp-admin/includes/class-wp-press-this.php
@@ -13,8 +13,8 @@
  * @since 4.2.0
  */
 class WP_Press_This {
-
 	// Used to trigger the bookmarklet update notice.
+	const VERSION = 8;
 	public $version = 8;
 
 	private $images = array();
@@ -267,8 +267,6 @@ class WP_Press_This {
 	 * @return string Source's HTML sanitized markup
 	 */
 	public function fetch_source_html( $url ) {
-		global $wp_version;
-
 		if ( empty( $url ) ) {
 			return new WP_Error( 'invalid-url', __( 'A valid URL was not provided.' ) );
 		}
@@ -276,7 +274,7 @@ class WP_Press_This {
 		$remote_url = wp_safe_remote_get( $url, array(
 			'timeout' => 30,
 			// Use an explicit user-agent for Press This
-			'user-agent' => 'Press This (WordPress/' . $wp_version . '); ' . get_bloginfo( 'url' )
+			'user-agent' => 'Press This (WordPress/' . get_bloginfo( 'version' ) . '); ' . get_bloginfo( 'url' )
 		) );
 
 		if ( is_wp_error( $remote_url ) ) {
@@ -479,7 +477,6 @@ class WP_Press_This {
 			// Embedded Daily Motion videos
 			$src = 'https://www.dailymotion.com/video/' . $src_matches[2];
 		} else {
-			require_once( ABSPATH . WPINC . '/class-oembed.php' );
 			$oembed = _wp_oembed_get_object();
 
 			if ( ! $oembed->get_provider( $src, array( 'discover' => false ) ) ) {
@@ -943,7 +940,7 @@ class WP_Press_This {
 
 		if ( $user_can_assign_terms ) {
 			?>
-			<button type="button" class="button-link tagcloud-link" id="link-post_tag"><?php echo $taxonomy->labels->choose_from_most_used; ?></button>
+			<button type="button" class="button-link tagcloud-link" id="link-post_tag" aria-expanded="false"><?php echo $taxonomy->labels->choose_from_most_used; ?></button>
 			<?php
 		}
 	}
@@ -1190,11 +1187,12 @@ class WP_Press_This {
 	 * @access public
 	 *
 	 * @global WP_Locale $wp_locale
-	 * @global string    $wp_version
 	 * @global bool      $is_IE
 	 */
 	public function html() {
-		global $wp_locale, $wp_version;
+		global $wp_locale;
+
+		$wp_version = get_bloginfo( 'version' );
 
 		// Get data, new (POST) and old (GET).
 		$data = $this->merge_or_fetch_data();
@@ -1314,7 +1312,7 @@ class WP_Press_This {
 	$admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', floatval( $wp_version ) );
 	$admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', $wp_version ) );
 	$admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' );
-	$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
+	$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) );
 
 	/** This filter is documented in wp-admin/admin-header.php */
 	$admin_body_classes = apply_filters( 'admin_body_class', '' );
@@ -1517,9 +1515,3 @@ class WP_Press_This {
 		die();
 	}
 }
-
-/**
- *
- * @global WP_Press_This $wp_press_this
- */
-$GLOBALS['wp_press_this'] = new WP_Press_This;
diff --git a/wp-admin/includes/class-wp-site-icon.php b/wp-admin/includes/class-wp-site-icon.php
index 3afc83def..a54c60b70 100644
--- a/wp-admin/includes/class-wp-site-icon.php
+++ b/wp-admin/includes/class-wp-site-icon.php
@@ -240,8 +240,3 @@ class WP_Site_Icon {
 		return $value;
 	}
 }
-
-/**
- * @global WP_Site_Icon $wp_site_icon
- */
-$GLOBALS['wp_site_icon'] = new WP_Site_Icon;
diff --git a/wp-admin/includes/class-wp-terms-list-table.php b/wp-admin/includes/class-wp-terms-list-table.php
index e765794a4..7d59624a2 100644
--- a/wp-admin/includes/class-wp-terms-list-table.php
+++ b/wp-admin/includes/class-wp-terms-list-table.php
@@ -151,7 +151,10 @@ class WP_Terms_List_Table extends WP_List_Table {
 	 */
 	protected function get_bulk_actions() {
 		$actions = array();
-		$actions['delete'] = __( 'Delete' );
+
+		if ( current_user_can( get_taxonomy( $this->screen->taxonomy )->cap->delete_terms ) ) {
+			$actions['delete'] = __( 'Delete' );
+		}
 
 		return $actions;
 	}
@@ -313,7 +316,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 
 	/**
 	 * @global string $taxonomy
-	 * @param object $tag
+	 * @param WP_Term $tag Term object.
 	 * @param int $level
 	 */
 	public function single_row( $tag, $level = 0 ) {
@@ -328,21 +331,20 @@ class WP_Terms_List_Table extends WP_List_Table {
 	}
 
 	/**
-	 * @param object $tag
+	 * @param WP_Term $tag Term object.
 	 * @return string
 	 */
 	public function column_cb( $tag ) {
-		$default_term = get_option( 'default_' . $this->screen->taxonomy );
-
-		if ( current_user_can( get_taxonomy( $this->screen->taxonomy )->cap->delete_terms ) && $tag->term_id != $default_term )
+		if ( current_user_can( 'delete_term', $tag->term_id ) ) {
 			return '<label class="screen-reader-text" for="cb-select-' . $tag->term_id . '">' . sprintf( __( 'Select %s' ), $tag->name ) . '</label>'
 				. '<input type="checkbox" name="delete_tags[]" value="' . $tag->term_id . '" id="cb-select-' . $tag->term_id . '" />';
+		}
 
 		return '&nbsp;';
 	}
 
 	/**
-	 * @param object $tag
+	 * @param WP_Term $tag Term object.
 	 * @return string
 	 */
 	public function column_name( $tag ) {
@@ -361,13 +363,13 @@ class WP_Terms_List_Table extends WP_List_Table {
 		 * @see WP_Terms_List_Table::column_name()
 		 *
 		 * @param string $pad_tag_name The term name, padded if not top-level.
-		 * @param object $tag          Term object.
+		 * @param WP_Term $tag         Term object.
 		 */
 		$name = apply_filters( 'term_name', $pad . ' ' . $tag->name, $tag );
 
 		$qe_data = get_term( $tag->term_id, $taxonomy, OBJECT, 'edit' );
 
-		$uri = ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ? wp_get_referer() : $_SERVER['REQUEST_URI'];
+		$uri = wp_doing_ajax() ? wp_get_referer() : $_SERVER['REQUEST_URI'];
 
 		$edit_link = add_query_arg(
 			'wp_http_referer',
@@ -411,9 +413,9 @@ class WP_Terms_List_Table extends WP_List_Table {
 	 * @since 4.3.0
 	 * @access protected
 	 *
-	 * @param object $tag         Tag being acted upon.
-	 * @param string $column_name Current column name.
-	 * @param string $primary     Primary column name.
+	 * @param WP_Term $tag         Tag being acted upon.
+	 * @param string  $column_name Current column name.
+	 * @param string  $primary     Primary column name.
 	 * @return string Row actions output for terms.
 	 */
 	protected function handle_row_actions( $tag, $column_name, $primary ) {
@@ -423,9 +425,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 
 		$taxonomy = $this->screen->taxonomy;
 		$tax = get_taxonomy( $taxonomy );
-		$default_term = get_option( 'default_' . $taxonomy );
-
-		$uri = ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ? wp_get_referer() : $_SERVER['REQUEST_URI'];
+		$uri = wp_doing_ajax() ? wp_get_referer() : $_SERVER['REQUEST_URI'];
 
 		$edit_link = add_query_arg(
 			'wp_http_referer',
@@ -434,7 +434,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 		);
 
 		$actions = array();
-		if ( current_user_can( $tax->cap->edit_terms ) ) {
+		if ( current_user_can( 'edit_term', $tag->term_id ) ) {
 			$actions['edit'] = sprintf(
 				'<a href="%s" aria-label="%s">%s</a>',
 				esc_url( $edit_link ),
@@ -449,7 +449,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 				__( 'Quick&nbsp;Edit' )
 			);
 		}
-		if ( current_user_can( $tax->cap->delete_terms ) && $tag->term_id != $default_term ) {
+		if ( current_user_can( 'delete_term', $tag->term_id ) ) {
 			$actions['delete'] = sprintf(
 				'<a href="%s" class="delete-tag aria-button-if-js" aria-label="%s">%s</a>',
 				wp_nonce_url( "edit-tags.php?action=delete&amp;taxonomy=$taxonomy&amp;tag_ID=$tag->term_id", 'delete-tag_' . $tag->term_id ),
@@ -476,7 +476,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 		 *
 		 * @param array  $actions An array of action links to be displayed. Default
 		 *                        'Edit', 'Quick Edit', 'Delete', and 'View'.
-		 * @param object $tag     Term object.
+		 * @param WP_Term $tag    Term object.
 		 */
 		$actions = apply_filters( 'tag_row_actions', $actions, $tag );
 
@@ -489,7 +489,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 		 *
 		 * @param array  $actions An array of action links to be displayed. Default
 		 *                        'Edit', 'Quick Edit', 'Delete', and 'View'.
-		 * @param object $tag     Term object.
+		 * @param WP_Term $tag    Term object.
 		 */
 		$actions = apply_filters( "{$taxonomy}_row_actions", $actions, $tag );
 
@@ -497,7 +497,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 	}
 
 	/**
-	 * @param object $tag
+	 * @param WP_Term $tag Term object.
 	 * @return string
 	 */
 	public function column_description( $tag ) {
@@ -505,7 +505,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 	}
 
 	/**
-	 * @param object $tag
+	 * @param WP_Term $tag Term object.
 	 * @return string
 	 */
 	public function column_slug( $tag ) {
@@ -514,7 +514,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 	}
 
 	/**
-	 * @param object $tag
+	 * @param WP_Term $tag Term object.
 	 * @return string
 	 */
 	public function column_posts( $tag ) {
@@ -542,7 +542,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 	}
 
 	/**
-	 * @param object $tag
+	 * @param WP_Term $tag Term object.
 	 * @return string
 	 */
 	public function column_links( $tag ) {
@@ -553,7 +553,7 @@ class WP_Terms_List_Table extends WP_List_Table {
 	}
 
 	/**
-	 * @param object $tag
+	 * @param WP_Term $tag Term object.
 	 * @param string $column_name
 	 * @return string
 	 */
@@ -619,8 +619,8 @@ class WP_Terms_List_Table extends WP_List_Table {
 	?>
 
 		<p class="inline-edit-save submit">
-			<button type="button" class="cancel button-secondary alignleft"><?php _e( 'Cancel' ); ?></button>
-			<button type="button" class="save button-primary alignright"><?php echo $tax->labels->update_item; ?></button>
+			<button type="button" class="cancel button alignleft"><?php _e( 'Cancel' ); ?></button>
+			<button type="button" class="save button button-primary alignright"><?php echo $tax->labels->update_item; ?></button>
 			<span class="spinner"></span>
 			<span class="error" style="display:none;"></span>
 			<?php wp_nonce_field( 'taxinlineeditnonce', '_inline_edit', false ); ?>
diff --git a/wp-admin/includes/class-wp-theme-install-list-table.php b/wp-admin/includes/class-wp-theme-install-list-table.php
index 492497ed3..f459d67d1 100644
--- a/wp-admin/includes/class-wp-theme-install-list-table.php
+++ b/wp-admin/includes/class-wp-theme-install-list-table.php
@@ -134,7 +134,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
 		 *
 		 * @param array $args An array of themes API arguments.
 		 */
-		$args = apply_filters( 'install_themes_table_api_args_' . $tab, $args );
+		$args = apply_filters( "install_themes_table_api_args_{$tab}", $args );
 
 		if ( ! $args )
 			return;
@@ -226,23 +226,26 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
 	/**
 	 * Prints a theme from the WordPress.org API.
 	 *
+	 * @since 3.1.0
+	 * @access public
+	 *
 	 * @global array $themes_allowedtags
 	 *
-	 * @param object $theme An object that contains theme data returned by the WordPress.org API.
+	 * @param object $theme {
+	 *     An object that contains theme data returned by the WordPress.org API.
 	 *
-	 * Example theme data:
-	 *   object(stdClass)[59]
-	 *     public 'name' => string 'Magazine Basic'
-	 *     public 'slug' => string 'magazine-basic'
-	 *     public 'version' => string '1.1'
-	 *     public 'author' => string 'tinkerpriest'
-	 *     public 'preview_url' => string 'http://wp-themes.com/?magazine-basic'
-	 *     public 'screenshot_url' => string 'http://wp-themes.com/wp-content/themes/magazine-basic/screenshot.png'
-	 *     public 'rating' => float 80
-	 *     public 'num_ratings' => int 1
-	 *     public 'homepage' => string 'http://wordpress.org/themes/magazine-basic'
-	 *     public 'description' => string 'A basic magazine style layout with a fully customizable layout through a back-end interface. Designed by <a href="http://bavotasan.com">c.bavota</a> of <a href="http://tinkerpriestmedia.com">Tinker Priest Media</a>.'
-	 *     public 'download_link' => string 'http://wordpress.org/themes/download/magazine-basic.1.1.zip'
+	 *     @type string $name           Theme name, e.g. 'Twenty Seventeen'.
+	 *     @type string $slug           Theme slug, e.g. 'twentyseventeen'.
+	 *     @type string $version        Theme version, e.g. '1.1'.
+	 *     @type string $author         Theme author username, e.g. 'melchoyce'.
+	 *     @type string $preview_url    Preview URL, e.g. 'http://2017.wordpress.net/'.
+	 *     @type string $screenshot_url Screenshot URL, e.g. 'https://wordpress.org/themes/twentyseventeen/'.
+	 *     @type float  $rating         Rating score.
+	 *     @type int    $num_ratings    The number of ratings.
+	 *     @type string $homepage       Theme homepage, e.g. 'https://wordpress.org/themes/twentyseventeen/'.
+	 *     @type string $description    Theme description.
+	 *     @type string $download_link  Theme ZIP download URL.
+	 * }
 	 */
 	public function single_row( $theme ) {
 		global $themes_allowedtags;
@@ -329,14 +332,14 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
 		<div id="theme-installer" class="wp-full-overlay expanded">
 			<div class="wp-full-overlay-sidebar">
 				<div class="wp-full-overlay-header">
-					<a href="#" class="close-full-overlay button-secondary"><?php _e( 'Close' ); ?></a>
+					<a href="#" class="close-full-overlay button"><?php _e( 'Close' ); ?></a>
 					<span class="theme-install"></span>
 				</div>
 				<div class="wp-full-overlay-sidebar-content">
 					<div class="install-theme-info"></div>
 				</div>
 				<div class="wp-full-overlay-footer">
-					<button type="button" class="collapse-sidebar button-secondary" aria-expanded="true" aria-label="<?php esc_attr_e( 'Collapse Sidebar' ); ?>">
+					<button type="button" class="collapse-sidebar button" aria-expanded="true" aria-label="<?php esc_attr_e( 'Collapse Sidebar' ); ?>">
 						<span class="collapse-sidebar-arrow"></span>
 						<span class="collapse-sidebar-label"><?php _e( 'Collapse' ); ?></span>
 					</button>
@@ -398,7 +401,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
 		<div class="install-theme-info"><?php
 			switch ( $status ) {
 				case 'update_available':
-					echo '<a class="theme-install button-primary" href="' . esc_url( wp_nonce_url( $update_url, 'upgrade-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Update to version %s' ), $theme->version ) ) . '">' . __( 'Update' ) . '</a>';
+					echo '<a class="theme-install button button-primary" href="' . esc_url( wp_nonce_url( $update_url, 'upgrade-theme_' . $theme->slug ) ) . '" title="' . esc_attr( sprintf( __( 'Update to version %s' ), $theme->version ) ) . '">' . __( 'Update' ) . '</a>';
 					break;
 				case 'newer_installed':
 				case 'latest_installed':
@@ -406,7 +409,7 @@ class WP_Theme_Install_List_Table extends WP_Themes_List_Table {
 					break;
 				case 'install':
 				default:
-					echo '<a class="theme-install button-primary" href="' . esc_url( wp_nonce_url( $install_url, 'install-theme_' . $theme->slug ) ) . '">' . __( 'Install' ) . '</a>';
+					echo '<a class="theme-install button button-primary" href="' . esc_url( wp_nonce_url( $install_url, 'install-theme_' . $theme->slug ) ) . '">' . __( 'Install' ) . '</a>';
 					break;
 			} ?>
 			<h3 class="theme-name"><?php echo $name; ?></h3>
diff --git a/wp-admin/includes/class-wp-themes-list-table.php b/wp-admin/includes/class-wp-themes-list-table.php
index a232cd05b..9ac4597b3 100644
--- a/wp-admin/includes/class-wp-themes-list-table.php
+++ b/wp-admin/includes/class-wp-themes-list-table.php
@@ -91,13 +91,14 @@ class WP_Themes_List_Table extends WP_List_Table {
 			return;
 		}
 
+		$blog_id = get_current_blog_id();
 		if ( is_multisite() ) {
 			if ( current_user_can( 'install_themes' ) && current_user_can( 'manage_network_themes' ) ) {
-				printf( __( 'You only have one theme enabled for this site right now. Visit the Network Admin to <a href="%1$s">enable</a> or <a href="%2$s">install</a> more themes.' ), network_admin_url( 'site-themes.php?id=' . $GLOBALS['blog_id'] ), network_admin_url( 'theme-install.php' ) );
+				printf( __( 'You only have one theme enabled for this site right now. Visit the Network Admin to <a href="%1$s">enable</a> or <a href="%2$s">install</a> more themes.' ), network_admin_url( 'site-themes.php?id=' . $blog_id ), network_admin_url( 'theme-install.php' ) );
 
 				return;
 			} elseif ( current_user_can( 'manage_network_themes' ) ) {
-				printf( __( 'You only have one theme enabled for this site right now. Visit the Network Admin to <a href="%1$s">enable</a> more themes.' ), network_admin_url( 'site-themes.php?id=' . $GLOBALS['blog_id'] ) );
+				printf( __( 'You only have one theme enabled for this site right now. Visit the Network Admin to <a href="%1$s">enable</a> more themes.' ), network_admin_url( 'site-themes.php?id=' . $blog_id ) );
 
 				return;
 			}
diff --git a/wp-admin/includes/class-wp-upgrader-skins.php b/wp-admin/includes/class-wp-upgrader-skins.php
index 8b2789da0..183a01193 100644
--- a/wp-admin/includes/class-wp-upgrader-skins.php
+++ b/wp-admin/includes/class-wp-upgrader-skins.php
@@ -7,6 +7,8 @@
  * @since 2.8.0
  */
 
+_deprecated_file( basename( __FILE__ ), '4.7.0', 'class-wp-upgrader.php' );
+
 /** WP_Upgrader_Skin class */
 require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader-skin.php';
 
diff --git a/wp-admin/includes/class-wp-upgrader.php b/wp-admin/includes/class-wp-upgrader.php
index 485197c49..acfae5be0 100644
--- a/wp-admin/includes/class-wp-upgrader.php
+++ b/wp-admin/includes/class-wp-upgrader.php
@@ -833,7 +833,7 @@ class WP_Upgrader {
  	 * @param string $lock_name       The name of this unique lock.
  	 * @param int    $release_timeout Optional. The duration in seconds to respect an existing lock.
 	 *                                Default: 1 hour.
- 	 * @return bool False if a lock couldn't be created or if the lock is no longer valid. True otherwise.
+ 	 * @return bool False if a lock couldn't be created or if the lock is still valid. True otherwise.
  	 */
 	public static function create_lock( $lock_name, $release_timeout = null ) {
 		global $wpdb;
@@ -853,7 +853,7 @@ class WP_Upgrader {
 				return false;
 			}
 
-			// Check to see if the lock is still valid. If not, bail.
+			// Check to see if the lock is still valid. If it is, bail.
 			if ( $lock_result > ( time() - $release_timeout ) ) {
 				return false;
 			}
diff --git a/wp-admin/includes/class-wp-users-list-table.php b/wp-admin/includes/class-wp-users-list-table.php
index 80720b6c0..3b7795dfa 100644
--- a/wp-admin/includes/class-wp-users-list-table.php
+++ b/wp-admin/includes/class-wp-users-list-table.php
@@ -267,7 +267,7 @@ class WP_Users_List_Table extends WP_List_Table {
 			<?php wp_dropdown_roles(); ?>
 		</select>
 	<?php
-			submit_button( __( 'Change' ), 'button', 'changeit', false );
+			submit_button( __( 'Change' ), '', 'changeit', false );
 		endif;
 
 		/**
diff --git a/wp-admin/includes/credits.php b/wp-admin/includes/credits.php
index 80f1269ec..005858c38 100644
--- a/wp-admin/includes/credits.php
+++ b/wp-admin/includes/credits.php
@@ -10,15 +10,13 @@
 /**
  * Retrieve the contributor credits.
  *
- * @global string $wp_version The current WordPress version.
- *
  * @since 3.2.0
  *
  * @return array|false A list of all of the contributors, or false on error.
  */
 function wp_credits() {
-	global $wp_version;
-	$locale = get_locale();
+	$wp_version = get_bloginfo( 'version' );
+	$locale = get_user_locale();
 
 	$results = get_site_transient( 'wordpress_credits_' . $locale );
 
@@ -26,7 +24,7 @@ function wp_credits() {
 		|| false !== strpos( $wp_version, '-' )
 		|| ( isset( $results['data']['version'] ) && strpos( $wp_version, $results['data']['version'] ) !== 0 )
 	) {
-		$response = wp_remote_get( "http://api.wordpress.org/core/credits/1.1/?version=$wp_version&locale=$locale" );
+		$response = wp_remote_get( "http://api.wordpress.org/core/credits/1.1/?version={$wp_version}&locale={$locale}" );
 
 		if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) )
 			return false;
diff --git a/wp-admin/includes/dashboard.php b/wp-admin/includes/dashboard.php
index e517f956c..0ecf0a23f 100644
--- a/wp-admin/includes/dashboard.php
+++ b/wp-admin/includes/dashboard.php
@@ -392,9 +392,12 @@ function wp_network_dashboard_right_now() {
 	$c_users = get_user_count();
 	$c_blogs = get_blog_count();
 
+	/* translators: 1: Number of users on the network */
 	$user_text = sprintf( _n( '%s user', '%s users', $c_users ), number_format_i18n( $c_users ) );
+	/* translators: 1: Number of sites on the network */
 	$blog_text = sprintf( _n( '%s site', '%s sites', $c_blogs ), number_format_i18n( $c_blogs ) );
 
+	/* translators: 1: Text indicating the number of sites on the network, 2: Text indicating the number of users on the network */
 	$sentence = sprintf( __( 'You have %1$s and %2$s.' ), $blog_text, $user_text );
 
 	if ( $actions ) {
@@ -427,7 +430,7 @@ function wp_network_dashboard_right_now() {
 		<p>
 			<label class="screen-reader-text" for="search-users"><?php _e( 'Search Users' ); ?></label>
 			<input type="search" name="s" value="" size="30" autocomplete="off" id="search-users"/>
-			<?php submit_button( __( 'Search Users' ), 'button', false, false, array( 'id' => 'submit_users' ) ); ?>
+			<?php submit_button( __( 'Search Users' ), '', false, false, array( 'id' => 'submit_users' ) ); ?>
 		</p>
 	</form>
 
@@ -435,7 +438,7 @@ function wp_network_dashboard_right_now() {
 		<p>
 			<label class="screen-reader-text" for="search-sites"><?php _e( 'Search Sites' ); ?></label>
 			<input type="search" name="s" value="" size="30" autocomplete="off" id="search-sites"/>
-			<?php submit_button( __( 'Search Sites' ), 'button', false, false, array( 'id' => 'submit_sites' ) ); ?>
+			<?php submit_button( __( 'Search Sites' ), '', false, false, array( 'id' => 'submit_sites' ) ); ?>
 		</p>
 	</form>
 <?php
@@ -777,7 +780,7 @@ function wp_dashboard_site_activity() {
 
 	if ( !$future_posts && !$recent_posts && !$recent_comments ) {
 		echo '<div class="no-activity">';
-		echo '<p class="smiley"></p>';
+		echo '<p class="smiley" aria-hidden="true"></p>';
 		echo '<p>' . __( 'No activity yet!' ) . '</p>';
 		echo '</div>';
 	}
@@ -966,7 +969,7 @@ function wp_dashboard_rss_output( $widget_id ) {
  */
 function wp_dashboard_cached_rss_widget( $widget_id, $callback, $check_urls = array() ) {
 	$loading = '<p class="widget-loading hide-if-no-js">' . __( 'Loading&#8230;' ) . '</p><p class="hide-if-js">' . __( 'This widget requires JavaScript.' ) . '</p>';
-	$doing_ajax = ( defined('DOING_AJAX') && DOING_AJAX );
+	$doing_ajax = wp_doing_ajax();
 
 	if ( empty($check_urls) ) {
 		$widgets = get_option( 'dashboard_widget_options' );
@@ -1149,7 +1152,7 @@ function wp_dashboard_primary() {
 		)
 	);
 
-	if ( ( ! is_multisite() && is_blog_admin() && current_user_can( 'install_plugins' ) ) || ( is_network_admin() && current_user_can( 'manage_network_plugins' ) && current_user_can( 'install_plugins' ) ) ) {
+	if ( ( ! defined( 'DISALLOW_FILE_MODS' ) || ! DISALLOW_FILE_MODS ) && ( ! is_multisite() && is_blog_admin() && current_user_can( 'install_plugins' ) ) || ( is_network_admin() && current_user_can( 'manage_network_plugins' ) && current_user_can( 'install_plugins' ) ) ) {
 		$feeds['plugins'] = array(
 			'link'         => '',
 			'url'          => array(
@@ -1353,7 +1356,7 @@ function wp_dashboard_browser_nag() {
 		$notice .= "<p class='browser-update-nag{$browser_nag_class}'>{$msg}</p>";
 
 		$browsehappy = 'http://browsehappy.com/';
-		$locale = get_locale();
+		$locale = get_user_locale();
 		if ( 'en_US' !== $locale )
 			$browsehappy = add_query_arg( 'locale', $locale, $browsehappy );
 
@@ -1393,8 +1396,6 @@ function dashboard_browser_nag_class( $classes ) {
  *
  * @since 3.2.0
  *
- * @global string $wp_version
- *
  * @return array|bool False on failure, array of browser data on success.
  */
 function wp_check_browser_version() {
@@ -1404,11 +1405,9 @@ function wp_check_browser_version() {
 	$key = md5( $_SERVER['HTTP_USER_AGENT'] );
 
 	if ( false === ($response = get_site_transient('browser_' . $key) ) ) {
-		global $wp_version;
-
 		$options = array(
 			'body'			=> array( 'useragent' => $_SERVER['HTTP_USER_AGENT'] ),
-			'user-agent'	=> 'WordPress/' . $wp_version . '; ' . home_url()
+			'user-agent'	=> 'WordPress/' . get_bloginfo( 'version' ) . '; ' . home_url()
 		);
 
 		$response = wp_remote_post( 'http://api.wordpress.org/core/browse-happy/1.1/', $options );
diff --git a/wp-admin/includes/export.php b/wp-admin/includes/export.php
index 25bf5e7fe..f321a56ee 100644
--- a/wp-admin/includes/export.php
+++ b/wp-admin/includes/export.php
@@ -18,12 +18,40 @@ define( 'WXR_VERSION', '1.2' );
 /**
  * Generates the WXR export file for download.
  *
+ * Default behavior is to export all content, however, note that post content will only
+ * be exported for post types with the `can_export` argument enabled. Any posts with the
+ * 'auto-draft' status will be skipped.
+ *
  * @since 2.1.0
  *
- * @global wpdb    $wpdb
- * @global WP_Post $post
+ * @global wpdb    $wpdb WordPress database abstraction object.
+ * @global WP_Post $post Global `$post`.
+ *
+ * @param array $args {
+ *     Optional. Arguments for generating the WXR export file for download. Default empty array.
  *
- * @param array $args Filters defining what should be included in the export.
+ *     @type string $content        Type of content to export. If set, only the post content of this post type
+ *                                  will be exported. Accepts 'all', 'post', 'page', 'attachment', or a defined
+ *                                  custom post. If an invalid custom post type is supplied, every post type for
+ *                                  which `can_export` is enabled will be exported instead. If a valid custom post
+ *                                  type is supplied but `can_export` is disabled, then 'posts' will be exported
+ *                                  instead. When 'all' is supplied, only post types with `can_export` enabled will
+ *                                  be exported. Default 'all'.
+ *     @type string $author         Author to export content for. Only used when `$content` is 'post', 'page', or
+ *                                  'attachment'. Accepts false (all) or a specific author ID. Default false (all).
+ *     @type string $category       Category (slug) to export content for. Used only when `$content` is 'post'. If
+ *                                  set, only post content assigned to `$category will be exported. Accepts false
+ *                                  or a specific category slug. Default is false (all categories).
+ *     @type string $start_date     Start date to export content from. Expected date format is 'Y-m-d'. Used only
+ *                                  when `$content` is 'post', 'page' or 'attachment'. Default false (since the
+ *                                  beginning of time).
+ *     @type string $end_date       End date to export content to. Expected date format is 'Y-m-d'. Used only when
+ *                                  `$content` is 'post', 'page' or 'attachment'. Default false (latest publish date).
+ *     @type string $status         Post status to export posts for. Used only when `$content` is 'post' or 'page'.
+ *                                  Accepts false (all statuses except 'auto-draft'), or a specific status, i.e.
+ *                                  'publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', or
+ *                                  'trash'. Default false (all statuses except 'auto-draft').
+ * }
  */
 function export_wp( $args = array() ) {
 	global $wpdb, $post;
@@ -325,7 +353,7 @@ function export_wp( $args = array() ) {
 	}
 
 	/**
-	 * Ouput all navigation menu terms
+	 * Output all navigation menu terms
 	 *
 	 * @since 3.1.0
 	 */
diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php
index face9164b..079e1ae89 100644
--- a/wp-admin/includes/file.php
+++ b/wp-admin/includes/file.php
@@ -77,9 +77,10 @@ $wp_file_descriptions = array(
 function get_file_description( $file ) {
 	global $wp_file_descriptions, $allowed_files;
 
-	$relative_pathinfo = pathinfo( $file );
+	$dirname = pathinfo( $file, PATHINFO_DIRNAME );
+
 	$file_path = $allowed_files[ $file ];
-	if ( isset( $wp_file_descriptions[ basename( $file ) ] ) && '.' === $relative_pathinfo['dirname'] ) {
+	if ( isset( $wp_file_descriptions[ basename( $file ) ] ) && '.' === $dirname ) {
 		return $wp_file_descriptions[ basename( $file ) ];
 	} elseif ( file_exists( $file_path ) && is_file( $file_path ) ) {
 		$template_data = implode( '', file( $file_path ) );
@@ -1260,7 +1261,7 @@ foreach ( (array) $extra_fields as $field ) {
 ?>
 	<p class="request-filesystem-credentials-action-buttons">
 		<button class="button cancel-button" data-js-action="close" type="button"><?php _e( 'Cancel' ); ?></button>
-		<?php submit_button( __( 'Proceed' ), 'button', 'upgrade', false ); ?>
+		<?php submit_button( __( 'Proceed' ), '', 'upgrade', false ); ?>
 	</p>
 </div>
 </form>
diff --git a/wp-admin/includes/image-edit.php b/wp-admin/includes/image-edit.php
index 928cd1357..db11b5669 100644
--- a/wp-admin/includes/image-edit.php
+++ b/wp-admin/includes/image-edit.php
@@ -387,7 +387,7 @@ function _image_get_preview_ratio($w, $h) {
  * @return resource|false GD image resource, false otherwise.
  */
 function _rotate_image_resource($img, $angle) {
-	_deprecated_function( __FUNCTION__, '3.5.0', __( 'Use WP_Image_Editor::rotate' ) );
+	_deprecated_function( __FUNCTION__, '3.5.0', 'WP_Image_Editor::rotate()' );
 	if ( function_exists('imagerotate') ) {
 		$rotated = imagerotate($img, $angle, 0);
 		if ( is_resource($rotated) ) {
@@ -410,7 +410,7 @@ function _rotate_image_resource($img, $angle) {
  * @return resource (maybe) flipped image resource.
  */
 function _flip_image_resource($img, $horz, $vert) {
-	_deprecated_function( __FUNCTION__, '3.5.0', __( 'Use WP_Image_Editor::flip' ) );
+	_deprecated_function( __FUNCTION__, '3.5.0', 'WP_Image_Editor::flip()' );
 	$w = imagesx($img);
 	$h = imagesy($img);
 	$dst = wp_imagecreatetruecolor($w, $h);
@@ -700,13 +700,11 @@ function wp_restore_image($post_id) {
  * Saves image to post along with enqueued changes
  * in $_REQUEST['history']
  *
- * @global array $_wp_additional_image_sizes
- *
  * @param int $post_id
  * @return \stdClass
  */
 function wp_save_image( $post_id ) {
-	global $_wp_additional_image_sizes;
+	$_wp_additional_image_sizes = wp_get_additional_image_sizes();
 
 	$return = new stdClass;
 	$success = $delete = $scaled = $nocrop = false;
@@ -761,28 +759,33 @@ function wp_save_image( $post_id ) {
 		$backup_sizes = array();
 
 	// Generate new filename.
-	$path = get_attached_file($post_id);
-	$path_parts = pathinfo( $path );
-	$filename = $path_parts['filename'];
+	$path = get_attached_file( $post_id );
+
+	$basename = pathinfo( $path, PATHINFO_BASENAME );
+	$dirname = pathinfo( $path, PATHINFO_DIRNAME );
+	$ext = pathinfo( $path, PATHINFO_EXTENSION );
+	$filename = pathinfo( $path, PATHINFO_FILENAME );
 	$suffix = time() . rand(100, 999);
 
 	if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE &&
-		isset($backup_sizes['full-orig']) && $backup_sizes['full-orig']['file'] != $path_parts['basename'] ) {
+		isset($backup_sizes['full-orig']) && $backup_sizes['full-orig']['file'] != $basename ) {
 
-		if ( 'thumbnail' == $target )
-			$new_path = "{$path_parts['dirname']}/{$filename}-temp.{$path_parts['extension']}";
-		else
+		if ( 'thumbnail' == $target ) {
+			$new_path = "{$dirname}/{$filename}-temp.{$ext}";
+		} else {
 			$new_path = $path;
+		}
 	} else {
-		while( true ) {
+		while ( true ) {
 			$filename = preg_replace( '/-e([0-9]+)$/', '', $filename );
 			$filename .= "-e{$suffix}";
-			$new_filename = "{$filename}.{$path_parts['extension']}";
-			$new_path = "{$path_parts['dirname']}/$new_filename";
-			if ( file_exists($new_path) )
+			$new_filename = "{$filename}.{$ext}";
+			$new_path = "{$dirname}/$new_filename";
+			if ( file_exists($new_path) ) {
 				$suffix++;
-			else
+			} else {
 				break;
+			}
 		}
 	}
 
@@ -792,18 +795,19 @@ function wp_save_image( $post_id ) {
 		return $return;
 	}
 
-	if ( 'nothumb' == $target || 'all' == $target || 'full' == $target || $scaled ) {
+	if ( 'nothumb' === $target || 'all' === $target || 'full' === $target || $scaled ) {
 		$tag = false;
-		if ( isset($backup_sizes['full-orig']) ) {
-			if ( ( !defined('IMAGE_EDIT_OVERWRITE') || !IMAGE_EDIT_OVERWRITE ) && $backup_sizes['full-orig']['file'] != $path_parts['basename'] )
+		if ( isset( $backup_sizes['full-orig'] ) ) {
+			if ( ( ! defined( 'IMAGE_EDIT_OVERWRITE' ) || ! IMAGE_EDIT_OVERWRITE ) && $backup_sizes['full-orig']['file'] !== $basename ) {
 				$tag = "full-$suffix";
+			}
 		} else {
 			$tag = 'full-orig';
 		}
 
-		if ( $tag )
-			$backup_sizes[$tag] = array('width' => $meta['width'], 'height' => $meta['height'], 'file' => $path_parts['basename']);
-
+		if ( $tag ) {
+			$backup_sizes[$tag] = array('width' => $meta['width'], 'height' => $meta['height'], 'file' => $basename );
+		}
 		$success = ( $path === $new_path ) || update_attached_file( $post_id, $new_path );
 
 		$meta['file'] = _wp_relative_upload_path( $new_path );
@@ -834,7 +838,7 @@ function wp_save_image( $post_id ) {
 	if ( defined( 'IMAGE_EDIT_OVERWRITE' ) && IMAGE_EDIT_OVERWRITE && ! empty( $meta['sizes'] ) ) {
 		foreach ( $meta['sizes'] as $size ) {
 			if ( ! empty( $size['file'] ) && preg_match( '/-e[0-9]{13}-/', $size['file'] ) ) {
-				$delete_file = path_join( $path_parts['dirname'], $size['file'] );
+				$delete_file = path_join( $dirname, $size['file'] );
 				wp_delete_file( $delete_file );
 			}
 		}
diff --git a/wp-admin/includes/image.php b/wp-admin/includes/image.php
index 4d9e07692..5f7b583d5 100644
--- a/wp-admin/includes/image.php
+++ b/wp-admin/includes/image.php
@@ -67,8 +67,6 @@ function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $s
  *
  * @since 2.1.0
  *
- * @global array $_wp_additional_image_sizes
- *
  * @param int $attachment_id Attachment Id to process.
  * @param string $file Filepath of the Attached image.
  * @return mixed Metadata for attachment.
@@ -78,7 +76,9 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
 
 	$metadata = array();
 	$support = false;
-	if ( preg_match('!^image/!', get_post_mime_type( $attachment )) && file_is_displayable_image($file) ) {
+	$mime_type = get_post_mime_type( $attachment );
+
+	if ( preg_match( '!^image/!', $mime_type ) && file_is_displayable_image( $file ) ) {
 		$imagesize = getimagesize( $file );
 		$metadata['width'] = $imagesize[0];
 		$metadata['height'] = $imagesize[1];
@@ -87,23 +87,34 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
 		$metadata['file'] = _wp_relative_upload_path($file);
 
 		// Make thumbnails and other intermediate sizes.
-		global $_wp_additional_image_sizes;
+		$_wp_additional_image_sizes = wp_get_additional_image_sizes();
 
 		$sizes = array();
 		foreach ( get_intermediate_image_sizes() as $s ) {
 			$sizes[$s] = array( 'width' => '', 'height' => '', 'crop' => false );
-			if ( isset( $_wp_additional_image_sizes[$s]['width'] ) )
-				$sizes[$s]['width'] = intval( $_wp_additional_image_sizes[$s]['width'] ); // For theme-added sizes
-			else
-				$sizes[$s]['width'] = get_option( "{$s}_size_w" ); // For default sizes set in options
-			if ( isset( $_wp_additional_image_sizes[$s]['height'] ) )
-				$sizes[$s]['height'] = intval( $_wp_additional_image_sizes[$s]['height'] ); // For theme-added sizes
-			else
-				$sizes[$s]['height'] = get_option( "{$s}_size_h" ); // For default sizes set in options
-			if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) )
-				$sizes[$s]['crop'] = $_wp_additional_image_sizes[$s]['crop']; // For theme-added sizes
-			else
-				$sizes[$s]['crop'] = get_option( "{$s}_crop" ); // For default sizes set in options
+			if ( isset( $_wp_additional_image_sizes[$s]['width'] ) ) {
+				// For theme-added sizes
+				$sizes[$s]['width'] = intval( $_wp_additional_image_sizes[$s]['width'] );
+			} else {
+				// For default sizes set in options
+				$sizes[$s]['width'] = get_option( "{$s}_size_w" );
+			}
+
+			if ( isset( $_wp_additional_image_sizes[$s]['height'] ) ) {
+				// For theme-added sizes
+				$sizes[$s]['height'] = intval( $_wp_additional_image_sizes[$s]['height'] );
+			} else {
+				// For default sizes set in options
+				$sizes[$s]['height'] = get_option( "{$s}_size_h" );
+			}
+
+			if ( isset( $_wp_additional_image_sizes[$s]['crop'] ) ) {
+				// For theme-added sizes
+				$sizes[$s]['crop'] = $_wp_additional_image_sizes[$s]['crop'];
+			} else {
+				// For default sizes set in options
+				$sizes[$s]['crop'] = get_option( "{$s}_crop" );
+			}
 		}
 
 		/**
@@ -192,6 +203,56 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
 			}
 		}
 	}
+	// Try to create image thumbnails for PDFs
+	else if ( 'application/pdf' === $mime_type ) {
+		$fallback_sizes = array(
+			'thumbnail',
+			'medium',
+			'large',
+		);
+
+		/**
+		 * Filters the image sizes generated for non-image mime types.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param array $fallback_sizes An array of image size names.
+		 */
+		$fallback_sizes = apply_filters( 'fallback_intermediate_image_sizes', $fallback_sizes, $metadata );
+
+		$sizes = array();
+
+		foreach ( $fallback_sizes as $s ) {
+			$sizes[ $s ]['width']  = get_option( "{$s}_size_w" );
+			$sizes[ $s ]['height'] = get_option( "{$s}_size_h" );
+
+			// Force thumbnails to be soft crops.
+			if ( ! 'thumbnail' === $s ) {
+				$sizes[ $s ]['crop'] = get_option( "{$s}_crop" );
+			}
+		}
+
+		// Only load PDFs in an image editor if we're processing sizes.
+		if ( ! empty( $sizes ) ) {
+			$editor = wp_get_image_editor( $file );
+
+			if ( ! is_wp_error( $editor ) ) { // No support for this type of file
+				$uploaded = $editor->save( $file, 'image/jpeg' );
+				unset( $editor );
+
+				// Resize based on the full size image, rather than the source.
+				if ( ! is_wp_error( $uploaded ) ) {
+					$editor = wp_get_image_editor( $uploaded['path'] );
+					unset( $uploaded['path'] );
+
+					if ( ! is_wp_error( $editor ) ) {
+						$metadata['sizes'] = $editor->multi_resize( $sizes );
+						$metadata['sizes']['full'] = $uploaded;
+					}
+				}
+			}
+		}
+	}
 
 	// Remove the blob of binary data from the array.
 	if ( $metadata ) {
@@ -554,7 +615,7 @@ function _load_image_to_edit_path( $attachment_id, $size = 'full' ) {
 			 */
 			$filepath = apply_filters( 'load_image_to_edit_filesystempath', path_join( dirname( $filepath ), $data['file'] ), $attachment_id, $size );
 		}
-	} elseif ( function_exists( 'fopen' ) && function_exists( 'ini_get' ) && true == ini_get( 'allow_url_fopen' ) ) {
+	} elseif ( function_exists( 'fopen' ) && true == ini_get( 'allow_url_fopen' ) ) {
 		/**
 		 * Filters the image URL if not in the local filesystem.
 		 *
diff --git a/wp-admin/includes/import.php b/wp-admin/includes/import.php
index 4f0b78536..0d534422c 100644
--- a/wp-admin/includes/import.php
+++ b/wp-admin/includes/import.php
@@ -125,13 +125,13 @@ function wp_import_handle_upload() {
 function wp_get_popular_importers() {
 	include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
 
-	$locale = get_locale();
+	$locale = get_user_locale();
 	$cache_key = 'popular_importers_' . md5( $locale . $wp_version );
 	$popular_importers = get_site_transient( $cache_key );
 
 	if ( ! $popular_importers ) {
 		$url = add_query_arg( array(
-			'locale'  => get_locale(),
+			'locale'  => get_user_locale(),
 			'version' => $wp_version,
 		), 'http://api.wordpress.org/core/importers/1.1/' );
 		$options = array( 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url() );
diff --git a/wp-admin/includes/list-table.php b/wp-admin/includes/list-table.php
index bcc182c86..e4c66d1ff 100644
--- a/wp-admin/includes/list-table.php
+++ b/wp-admin/includes/list-table.php
@@ -66,7 +66,7 @@ function _get_list_table( $class, $args = array() ) {
  * @see get_column_headers(), print_column_headers(), get_hidden_columns()
  */
 function register_column_headers($screen, $columns) {
-	$wp_list_table = new _WP_List_Table_Compat($screen, $columns);
+	new _WP_List_Table_Compat( $screen, $columns );
 }
 
 /**
@@ -82,48 +82,3 @@ function print_column_headers( $screen, $with_id = true ) {
 
 	$wp_list_table->print_column_headers( $with_id );
 }
-
-/**
- * Helper class to be used only by back compat functions
- *
- * @since 3.1.0
- */
-class _WP_List_Table_Compat extends WP_List_Table {
-	public $_screen;
-	public $_columns;
-
-	public function __construct( $screen, $columns = array() ) {
-		if ( is_string( $screen ) )
-			$screen = convert_to_screen( $screen );
-
-		$this->_screen = $screen;
-
-		if ( !empty( $columns ) ) {
-			$this->_columns = $columns;
-			add_filter( 'manage_' . $screen->id . '_columns', array( $this, 'get_columns' ), 0 );
-		}
-	}
-
-	/**
-	 * @access protected
-	 *
-	 * @return array
-	 */
-	protected function get_column_info() {
-		$columns = get_column_headers( $this->_screen );
-		$hidden = get_hidden_columns( $this->_screen );
-		$sortable = array();
-		$primary = $this->get_default_primary_column_name();
-
-		return array( $columns, $hidden, $sortable, $primary );
-	}
-
-	/**
-	 * @access public
-	 *
-	 * @return array
-	 */
-	public function get_columns() {
-		return $this->_columns;
-	}
-}
diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php
index c6b2dcd1b..ede25b3df 100644
--- a/wp-admin/includes/media.php
+++ b/wp-admin/includes/media.php
@@ -135,7 +135,7 @@ function get_image_send_to_editor( $id, $caption, $title, $align, $url = '', $re
 		$html = '<a href="' . esc_attr( $url ) . '"' . $rel . '>' . $html . '</a>';
 
 	/**
-	 * Filters the image HTML markup to send to the editor.
+	 * Filters the image HTML markup to send to the editor when inserting an image.
 	 *
 	 * @since 2.5.0
 	 *
@@ -278,19 +278,19 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
 			$time = $post->post_date;
 	}
 
-	$name = $_FILES[$file_id]['name'];
 	$file = wp_handle_upload($_FILES[$file_id], $overrides, $time);
 
 	if ( isset($file['error']) )
 		return new WP_Error( 'upload_error', $file['error'] );
 
-	$name_parts = pathinfo($name);
-	$name = trim( substr( $name, 0, -(1 + strlen($name_parts['extension'])) ) );
+	$name = $_FILES[$file_id]['name'];
+	$ext  = pathinfo( $name, PATHINFO_EXTENSION );
+	$name = wp_basename( $name, ".$ext" );
 
 	$url = $file['url'];
 	$type = $file['type'];
 	$file = $file['file'];
-	$title = sanitize_title( $name );
+	$title = sanitize_text_field( $name );
 	$content = '';
 	$excerpt = '';
 
@@ -313,6 +313,7 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
 				/* translators: 1: audio track title, 2: artist name */
 				$content .= sprintf( __( '"%1$s" by %2$s.' ), $title, $meta['artist'] );
 			} else {
+				/* translators: 1: audio track title */
 				$content .= sprintf( __( '"%s".' ), $title );
 			}
 
@@ -331,19 +332,26 @@ function media_handle_upload($file_id, $post_id, $post_data = array(), $override
 
 		}
 
-		if ( ! empty( $meta['year'] ) )
+		if ( ! empty( $meta['year'] ) ) {
+			/* translators: Audio file track information. 1: Year of audio track release */
 			$content .= ' ' . sprintf( __( 'Released: %d.' ), $meta['year'] );
+		}
 
 		if ( ! empty( $meta['track_number'] ) ) {
 			$track_number = explode( '/', $meta['track_number'] );
-			if ( isset( $track_number[1] ) )
+			if ( isset( $track_number[1] ) ) {
+				/* translators: Audio file track information. 1: Audio track number, 2: Total audio tracks */
 				$content .= ' ' . sprintf( __( 'Track %1$s of %2$s.' ), number_format_i18n( $track_number[0] ), number_format_i18n( $track_number[1] ) );
-			else
+			} else {
+				/* translators: Audio file track information. 1: Audio track number */
 				$content .= ' ' . sprintf( __( 'Track %1$s.' ), number_format_i18n( $track_number[0] ) );
+			}
 		}
 
-		if ( ! empty( $meta['genre'] ) )
+		if ( ! empty( $meta['genre'] ) ) {
+			/* translators: Audio file genre information. 1: Audio genre name */
 			$content .= ' ' . sprintf( __( 'Genre: %s.' ), $meta['genre'] );
+		}
 
 	// Use image exif/iptc data for title and caption defaults if possible.
 	} elseif ( 0 === strpos( $type, 'image/' ) && $image_meta = @wp_read_image_metadata( $file ) ) {
@@ -619,7 +627,7 @@ function get_upload_iframe_src( $type = null, $post_id = null, $tab = null ) {
 	 *
 	 * @param string $upload_iframe_src The upload iframe source URL by type.
 	 */
-	$upload_iframe_src = apply_filters( $type . '_upload_iframe_src', $upload_iframe_src );
+	$upload_iframe_src = apply_filters( "{$type}_upload_iframe_src", $upload_iframe_src );
 
 	return add_query_arg('TB_iframe', true, $upload_iframe_src);
 }
@@ -787,7 +795,7 @@ function wp_media_upload_handler() {
 			 * @param string $src   Media source URL.
 			 * @param string $title Media title.
 			 */
-			$html = apply_filters( $type . '_send_to_editor_url', $html, esc_url_raw( $src ), $title );
+			$html = apply_filters( "{$type}_send_to_editor_url", $html, esc_url_raw( $src ), $title );
 		} else {
 			$align = '';
 			$alt = esc_attr( wp_unslash( $_POST['alt'] ) );
@@ -1482,7 +1490,7 @@ function get_media_item( $attachment_id, $args = null ) {
 	);
 
 	if ( $r['send'] ) {
-		$r['send'] = get_submit_button( __( 'Insert into Post' ), 'button', "send[$attachment_id]", false );
+		$r['send'] = get_submit_button( __( 'Insert into Post' ), '', "send[$attachment_id]", false );
 	}
 
 	$delete = empty( $r['delete'] ) ? '' : $r['delete'];
@@ -2033,7 +2041,7 @@ if ( $id ) {
 ?></div>
 
 <p class="savebutton ml-submit">
-<?php submit_button( __( 'Save all changes' ), 'button', 'save', false ); ?>
+<?php submit_button( __( 'Save all changes' ), '', 'save', false ); ?>
 </p>
 </form>
 <?php
@@ -2244,7 +2252,7 @@ jQuery(function($){
 </div>
 
 <p class="ml-submit">
-<?php submit_button( __( 'Save all changes' ), 'button savebutton', 'save', false, array( 'id' => 'save-all', 'style' => 'display: none;' ) ); ?>
+<?php submit_button( __( 'Save all changes' ), 'savebutton', 'save', false, array( 'id' => 'save-all', 'style' => 'display: none;' ) ); ?>
 <input type="hidden" name="post_id" id="post_id" value="<?php echo (int) $post_id; ?>" />
 <input type="hidden" name="type" value="<?php echo esc_attr( $GLOBALS['type'] ); ?>" />
 <input type="hidden" name="tab" value="<?php echo esc_attr( $GLOBALS['tab'] ); ?>" />
@@ -2384,7 +2392,7 @@ function media_upload_library_form($errors) {
 <p id="media-search" class="search-box">
 	<label class="screen-reader-text" for="media-search-input"><?php _e('Search Media');?>:</label>
 	<input type="search" id="media-search-input" name="s" value="<?php the_search_query(); ?>" />
-	<?php submit_button( __( 'Search Media' ), 'button', '', false ); ?>
+	<?php submit_button( __( 'Search Media' ), '', '', false ); ?>
 </p>
 
 <ul class="subsubsub">
@@ -2481,7 +2489,7 @@ foreach ($arc_result as $arc_row) {
 </select>
 <?php } ?>
 
-<?php submit_button( __( 'Filter &#187;' ), 'button', 'post-query-submit', false ); ?>
+<?php submit_button( __( 'Filter &#187;' ), '', 'post-query-submit', false ); ?>
 
 </div>
 
@@ -2511,7 +2519,7 @@ jQuery(function($){
 <?php echo get_media_items(null, $errors); ?>
 </div>
 <p class="ml-submit">
-<?php submit_button( __( 'Save all changes' ), 'button savebutton', 'save', false ); ?>
+<?php submit_button( __( 'Save all changes' ), 'savebutton', 'save', false ); ?>
 <input type="hidden" name="post_id" id="post_id" value="<?php echo (int) $post_id; ?>" />
 </p>
 </form>
@@ -2614,7 +2622,7 @@ function wp_media_insert_url_form( $default_view = 'image' ) {
 		<tr class="not-image">
 			<td></td>
 			<td>
-				' . get_submit_button( __( 'Insert into Post' ), 'button', 'insertonlybutton', false ) . '
+				' . get_submit_button( __( 'Insert into Post' ), '', 'insertonlybutton', false ) . '
 			</td>
 		</tr>
 	</tbody></table>
@@ -2766,7 +2774,17 @@ function edit_form_image_editor( $post ) {
 
 		echo wp_video_shortcode( $attr );
 
-	else :
+	elseif ( isset( $thumb_url[0] ) ):
+
+		?>
+		<div class="wp_attachment_image wp-clearfix" id="media-head-<?php echo $attachment_id; ?>">
+			<p id="thumbnail-head-<?php echo $attachment_id; ?>">
+				<img class="thumbnail" src="<?php echo set_url_scheme( $thumb_url[0] ); ?>" style="max-width:100%" alt="" />
+			</p>
+		</div>
+		<?php
+
+	else:
 
 		/**
 		 * Fires when an attachment type can't be rendered in the edit form.
diff --git a/wp-admin/includes/meta-boxes.php b/wp-admin/includes/meta-boxes.php
index 89e17671c..c26ced427 100644
--- a/wp-admin/includes/meta-boxes.php
+++ b/wp-admin/includes/meta-boxes.php
@@ -32,7 +32,7 @@ function post_submit_meta_box( $post, $args = array() ) {
 
 <?php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
 <div style="display:none;">
-<?php submit_button( __( 'Save' ), 'button', 'save' ); ?>
+<?php submit_button( __( 'Save' ), '', 'save' ); ?>
 </div>
 
 <div id="minor-publishing-actions">
@@ -74,9 +74,9 @@ do_action( 'post_submitbox_minor_actions', $post );
 
 <div id="misc-publishing-actions">
 
-<div class="misc-pub-section misc-pub-post-status"><label for="post_status"><?php _e('Status:') ?></label>
-<span id="post-status-display">
-<?php
+<div class="misc-pub-section misc-pub-post-status">
+<?php _e( 'Status:' ) ?> <span id="post-status-display"><?php
+
 switch ( $post->post_status ) {
 	case 'private':
 		_e('Privately Published');
@@ -98,11 +98,12 @@ switch ( $post->post_status ) {
 ?>
 </span>
 <?php if ( 'publish' == $post->post_status || 'private' == $post->post_status || $can_publish ) { ?>
-<a href="#post_status" <?php if ( 'private' == $post->post_status ) { ?>style="display:none;" <?php } ?>class="edit-post-status hide-if-no-js"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit status' ); ?></span></a>
+<a href="#post_status" <?php if ( 'private' == $post->post_status ) { ?>style="display:none;" <?php } ?>class="edit-post-status hide-if-no-js" role="button"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit status' ); ?></span></a>
 
 <div id="post-status-select" class="hide-if-js">
 <input type="hidden" name="hidden_post_status" id="hidden_post_status" value="<?php echo esc_attr( ('auto-draft' == $post->post_status ) ? 'draft' : $post->post_status); ?>" />
-<select name='post_status' id='post_status'>
+<label for="post_status" class="screen-reader-text"><?php _e( 'Set status' ) ?></label>
+<select name="post_status" id="post_status">
 <?php if ( 'publish' == $post->post_status ) : ?>
 <option<?php selected( $post->post_status, 'publish' ); ?> value='publish'><?php _e('Published') ?></option>
 <?php elseif ( 'private' == $post->post_status ) : ?>
@@ -144,7 +145,7 @@ if ( 'private' == $post->post_status ) {
 
 echo esc_html( $visibility_trans ); ?></span>
 <?php if ( $can_publish ) { ?>
-<a href="#visibility" class="edit-visibility hide-if-no-js"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit visibility' ); ?></span></a>
+<a href="#visibility" class="edit-visibility hide-if-no-js" role="button"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit visibility' ); ?></span></a>
 
 <div id="post-visibility-select" class="hide-if-js">
 <input type="hidden" name="hidden_post_password" id="hidden-post-password" value="<?php echo esc_attr($post->post_password); ?>" />
@@ -157,7 +158,7 @@ echo esc_html( $visibility_trans ); ?></span>
 <span id="sticky-span"><input id="sticky" name="sticky" type="checkbox" value="sticky" <?php checked( is_sticky( $post->ID ) ); ?> /> <label for="sticky" class="selectit"><?php _e( 'Stick this post to the front page' ); ?></label><br /></span>
 <?php endif; ?>
 <input type="radio" name="visibility" id="visibility-radio-password" value="password" <?php checked( $visibility, 'password' ); ?> /> <label for="visibility-radio-password" class="selectit"><?php _e('Password protected'); ?></label><br />
-<span id="password-span"><label for="post_password"><?php _e('Password:'); ?></label> <input type="text" name="post_password" id="post_password" value="<?php echo esc_attr($post->post_password); ?>"  maxlength="20" /><br /></span>
+<span id="password-span"><label for="post_password"><?php _e('Password:'); ?></label> <input type="text" name="post_password" id="post_password" value="<?php echo esc_attr($post->post_password); ?>"  maxlength="255" /><br /></span>
 <input type="radio" name="visibility" id="visibility-radio-private" value="private" <?php checked( $visibility, 'private' ); ?> /> <label for="visibility-radio-private" class="selectit"><?php _e('Private'); ?></label><br />
 
 <p>
@@ -174,14 +175,18 @@ echo esc_html( $visibility_trans ); ?></span>
 $datef = __( 'M j, Y @ H:i' );
 if ( 0 != $post->ID ) {
 	if ( 'future' == $post->post_status ) { // scheduled for publishing at a future date
+		/* translators: Post date information. 1: Date on which the post is currently scheduled to be published */
 		$stamp = __('Scheduled for: <b>%1$s</b>');
 	} elseif ( 'publish' == $post->post_status || 'private' == $post->post_status ) { // already published
+		/* translators: Post date information. 1: Date on which the post was published */
 		$stamp = __('Published on: <b>%1$s</b>');
 	} elseif ( '0000-00-00 00:00:00' == $post->post_date_gmt ) { // draft, 1 or more saves, no date specified
 		$stamp = __('Publish <b>immediately</b>');
 	} elseif ( time() < strtotime( $post->post_date_gmt . ' +0000' ) ) { // draft, 1 or more saves, future date specified
+		/* translators: Post date information. 1: Date on which the post is to be published */
 		$stamp = __('Schedule for: <b>%1$s</b>');
 	} else { // draft, 1 or more saves, date specified
+		/* translators: Post date information. 1: Date on which the post is to be published */
 		$stamp = __('Publish on: <b>%1$s</b>');
 	}
 	$date = date_i18n( $datef, strtotime( $post->post_date ) );
@@ -192,7 +197,10 @@ if ( 0 != $post->ID ) {
 
 if ( ! empty( $args['args']['revisions_count'] ) ) : ?>
 <div class="misc-pub-section misc-pub-revisions">
-	<?php printf( __( 'Revisions: %s' ), '<b>' . number_format_i18n( $args['args']['revisions_count'] ) . '</b>' ); ?>
+	<?php
+		/* translators: Post revisions heading. 1: The number of available revisions */
+		printf( __( 'Revisions: %s' ), '<b>' . number_format_i18n( $args['args']['revisions_count'] ) . '</b>' );
+	?>
 	<a class="hide-if-no-js" href="<?php echo esc_url( get_edit_post_link( $args['args']['revision_id'] ) ); ?>"><span aria-hidden="true"><?php _ex( 'Browse', 'revisions' ); ?></span> <span class="screen-reader-text"><?php _e( 'Browse revisions' ); ?></span></a>
 </div>
 <?php endif;
@@ -201,7 +209,7 @@ if ( $can_publish ) : // Contributors don't get to choose the date of publish ?>
 <div class="misc-pub-section curtime misc-pub-curtime">
 	<span id="timestamp">
 	<?php printf($stamp, $date); ?></span>
-	<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit date and time' ); ?></span></a>
+	<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js" role="button"><span aria-hidden="true"><?php _e( 'Edit' ); ?></span> <span class="screen-reader-text"><?php _e( 'Edit date and time' ); ?></span></a>
 	<fieldset id="timestampdiv" class="hide-if-js">
 	<legend class="screen-reader-text"><?php _e( 'Date and time' ); ?></legend>
 	<?php touch_time( ( $action === 'edit' ), 1 ); ?>
@@ -252,14 +260,14 @@ if ( !in_array( $post->post_status, array('publish', 'future', 'private') ) || 0
 	if ( $can_publish ) :
 		if ( !empty($post->post_date_gmt) && time() < strtotime( $post->post_date_gmt . ' +0000' ) ) : ?>
 		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Schedule') ?>" />
-		<?php submit_button( __( 'Schedule' ), 'primary button-large', 'publish', false ); ?>
+		<?php submit_button( __( 'Schedule' ), 'primary large', 'publish', false ); ?>
 <?php	else : ?>
 		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Publish') ?>" />
-		<?php submit_button( __( 'Publish' ), 'primary button-large', 'publish', false ); ?>
+		<?php submit_button( __( 'Publish' ), 'primary large', 'publish', false ); ?>
 <?php	endif;
 	else : ?>
 		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Submit for Review') ?>" />
-		<?php submit_button( __( 'Submit for Review' ), 'primary button-large', 'publish', false ); ?>
+		<?php submit_button( __( 'Submit for Review' ), 'primary large', 'publish', false ); ?>
 <?php
 	endif;
 } else { ?>
@@ -290,7 +298,7 @@ function attachment_submit_meta_box( $post ) {
 
 <?php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
 <div style="display:none;">
-<?php submit_button( __( 'Save' ), 'button', 'save' ); ?>
+<?php submit_button( __( 'Save' ), '', 'save' ); ?>
 </div>
 
 
@@ -298,6 +306,7 @@ function attachment_submit_meta_box( $post ) {
 	<?php
 	/* translators: Publish box date format, see https://secure.php.net/date */
 	$datef = __( 'M j, Y @ H:i' );
+	/* translators: Attachment information. 1: Date the attachment was uploaded */
 	$stamp = __('Uploaded on: <b>%1$s</b>');
 	$date = date_i18n( $datef, strtotime( $post->post_date ) );
 	?>
@@ -334,7 +343,7 @@ function attachment_submit_meta_box( $post ) {
 	<div id="publishing-action">
 		<span class="spinner"></span>
 		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Update') ?>" />
-		<input name="save" type="submit" class="button-primary button-large" id="publish" value="<?php esc_attr_e( 'Update' ) ?>" />
+		<input name="save" type="submit" class="button button-primary button-large" id="publish" value="<?php esc_attr_e( 'Update' ) ?>" />
 	</div>
 	<div class="clear"></div>
 </div><!-- #major-publishing-actions -->
@@ -430,16 +439,18 @@ function post_tags_meta_box( $post, $box ) {
  	<?php if ( $user_can_assign_terms ) : ?>
 	<div class="ajaxtag hide-if-no-js">
 		<label class="screen-reader-text" for="new-tag-<?php echo $tax_name; ?>"><?php echo $taxonomy->labels->add_new_item; ?></label>
-		<p><input type="text" id="new-tag-<?php echo $tax_name; ?>" name="newtag[<?php echo $tax_name; ?>]" class="newtag form-input-tip" size="16" autocomplete="off" aria-describedby="new-tag-<?php echo $tax_name; ?>-desc" value="" />
+		<p><input data-wp-taxonomy="<?php echo $tax_name; ?>" type="text" id="new-tag-<?php echo $tax_name; ?>" name="newtag[<?php echo $tax_name; ?>]" class="newtag form-input-tip" size="16" autocomplete="off" aria-describedby="new-tag-<?php echo $tax_name; ?>-desc" value="" />
 		<input type="button" class="button tagadd" value="<?php esc_attr_e('Add'); ?>" /></p>
 	</div>
 	<p class="howto" id="new-tag-<?php echo $tax_name; ?>-desc"><?php echo $taxonomy->labels->separate_items_with_commas; ?></p>
+	<?php elseif ( empty( $terms_to_edit ) ): ?>
+		<p><?php echo $taxonomy->labels->no_terms; ?></p>
 	<?php endif; ?>
 	</div>
 	<div class="tagchecklist"></div>
 </div>
 <?php if ( $user_can_assign_terms ) : ?>
-<p class="hide-if-no-js"><a href="#titlediv" class="tagcloud-link" id="link-<?php echo $tax_name; ?>"><?php echo $taxonomy->labels->choose_from_most_used; ?></a></p>
+<p class="hide-if-no-js"><button type="button" class="button-link tagcloud-link" id="link-<?php echo $tax_name; ?>" aria-expanded="false"><?php echo $taxonomy->labels->choose_from_most_used; ?></button></p>
 <?php endif; ?>
 <?php
 }
@@ -785,8 +796,7 @@ function post_revisions_meta_box( $post ) {
  * @param object $post
  */
 function page_attributes_meta_box($post) {
-	$post_type_object = get_post_type_object($post->post_type);
-	if ( $post_type_object->hierarchical ) {
+	if ( is_post_type_hierarchical( $post->post_type ) ) :
 		$dropdown_args = array(
 			'post_type'        => $post->post_type,
 			'exclude_tree'     => $post->ID,
@@ -809,20 +819,20 @@ function page_attributes_meta_box($post) {
 		 */
 		$dropdown_args = apply_filters( 'page_attributes_dropdown_pages_args', $dropdown_args, $post );
 		$pages = wp_dropdown_pages( $dropdown_args );
-		if ( ! empty($pages) ) {
+		if ( ! empty($pages) ) :
 ?>
-<p><strong><?php _e('Parent') ?></strong></p>
-<label class="screen-reader-text" for="parent_id"><?php _e('Parent') ?></label>
+<p class="post-attributes-label-wrapper"><label class="post-attributes-label" for="parent_id"><?php _e( 'Parent' ); ?></label></p>
 <?php echo $pages; ?>
 <?php
-		} // end empty pages check
-	} // end hierarchical check.
-	if ( 'page' == $post->post_type && 0 != count( get_page_templates( $post ) ) && get_option( 'page_for_posts' ) != $post->ID ) {
-		$template = !empty($post->page_template) ? $post->page_template : false;
+		endif; // end empty pages check
+	endif;  // end hierarchical check.
+
+	if ( count( get_page_templates( $post ) ) > 0 && get_option( 'page_for_posts' ) != $post->ID ) :
+		$template = ! empty( $post->page_template ) ? $post->page_template : false;
 		?>
-<p><strong><?php _e('Template') ?></strong><?php
+<p class="post-attributes-label-wrapper"><label class="post-attributes-label" for="page_template"><?php _e( 'Template' ); ?></label><?php
 	/**
-	 * Fires immediately after the heading inside the 'Template' section
+	 * Fires immediately after the label inside the 'Template' section
 	 * of the 'Page Attributes' meta box.
 	 *
 	 * @since 4.4.0
@@ -832,7 +842,7 @@ function page_attributes_meta_box($post) {
 	 */
 	do_action( 'page_attributes_meta_box_template', $template, $post );
 ?></p>
-<label class="screen-reader-text" for="page_template"><?php _e('Page Template') ?></label><select name="page_template" id="page_template">
+<select name="page_template" id="page_template">
 <?php
 /**
  * Filters the title of the default page template displayed in the drop-down.
@@ -846,16 +856,16 @@ function page_attributes_meta_box($post) {
 $default_title = apply_filters( 'default_page_template_title',  __( 'Default Template' ), 'meta-box' );
 ?>
 <option value="default"><?php echo esc_html( $default_title ); ?></option>
-<?php page_template_dropdown($template); ?>
+<?php page_template_dropdown( $template, $post->post_type ); ?>
 </select>
-<?php
-	} ?>
-<p><strong><?php _e('Order') ?></strong></p>
-<p><label class="screen-reader-text" for="menu_order"><?php _e('Order') ?></label><input name="menu_order" type="text" size="4" id="menu_order" value="<?php echo esc_attr($post->menu_order) ?>" /></p>
-<?php if ( 'page' == $post->post_type && get_current_screen()->get_help_tabs() ) { ?>
+<?php endif; ?>
+<?php if ( post_type_supports( $post->post_type, 'page-attributes' ) ) : ?>
+<p class="post-attributes-label-wrapper"><label class="post-attributes-label" for="menu_order"><?php _e( 'Order' ); ?></label></p>
+<input name="menu_order" type="text" size="4" id="menu_order" value="<?php echo esc_attr( $post->menu_order ); ?>" />
+<?php if ( 'page' == $post->post_type && get_current_screen()->get_help_tabs() ) : ?>
 <p><?php _e( 'Need help? Use the Help tab above the screen title.' ); ?></p>
-<?php
-	}
+<?php endif;
+	endif;
 }
 
 // -- Link related Meta Boxes
@@ -875,7 +885,7 @@ function link_submit_meta_box($link) {
 
 <?php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
 <div style="display:none;">
-<?php submit_button( __( 'Save' ), 'button', 'save', false ); ?>
+<?php submit_button( __( 'Save' ), '', 'save', false ); ?>
 </div>
 
 <div id="minor-publishing-actions">
@@ -909,9 +919,9 @@ if ( !empty($_GET['action']) && 'edit' == $_GET['action'] && current_user_can('m
 
 <div id="publishing-action">
 <?php if ( !empty($link->link_id) ) { ?>
-	<input name="save" type="submit" class="button-large button-primary" id="publish" value="<?php esc_attr_e( 'Update Link' ) ?>" />
+	<input name="save" type="submit" class="button button-primary button-large" id="publish" value="<?php esc_attr_e( 'Update Link' ) ?>" />
 <?php } else { ?>
-	<input name="save" type="submit" class="button-large button-primary" id="publish" value="<?php esc_attr_e( 'Add Link' ) ?>" />
+	<input name="save" type="submit" class="button button-primary button-large" id="publish" value="<?php esc_attr_e( 'Add Link' ) ?>" />
 <?php } ?>
 </div>
 <div class="clear"></div>
diff --git a/wp-admin/includes/misc.php b/wp-admin/includes/misc.php
index 0cc57cbc9..679b9ac5d 100644
--- a/wp-admin/includes/misc.php
+++ b/wp-admin/includes/misc.php
@@ -133,7 +133,7 @@ function insert_with_markers( $filename, $marker, $insertion ) {
 		$lines[] = rtrim( fgets( $fp ), "\r\n" );
 	}
 
-	// Split out the existing file into the preceeding lines, and those that appear after the marker
+	// Split out the existing file into the preceding lines, and those that appear after the marker
 	$pre_lines = $post_lines = $existing_lines = array();
 	$found_marker = $found_end_marker = false;
 	foreach ( $lines as $line ) {
diff --git a/wp-admin/includes/ms.php b/wp-admin/includes/ms.php
index c88123a1f..0edc30838 100644
--- a/wp-admin/includes/ms.php
+++ b/wp-admin/includes/ms.php
@@ -29,10 +29,12 @@ function check_upload_size( $file ) {
 
 	$file_size = filesize( $file['tmp_name'] );
 	if ( $space_left < $file_size ) {
+		/* translators: 1: Required disk space in kilobytes */
 		$file['error'] = sprintf( __( 'Not enough space to upload. %1$s KB needed.' ), number_format( ( $file_size - $space_left ) / KB_IN_BYTES ) );
 	}
 
 	if ( $file_size > ( KB_IN_BYTES * get_site_option( 'fileupload_maxk', 1500 ) ) ) {
+		/* translators: 1: Maximum allowed file size in kilobytes */
 		$file['error'] = sprintf( __( 'This file is too big. Files must be less than %1$s KB in size.' ), get_site_option( 'fileupload_maxk', 1500 ) );
 	}
 
@@ -40,7 +42,7 @@ function check_upload_size( $file ) {
 		$file['error'] = __( 'You have used your space quota. Please delete files before uploading.' );
 	}
 
-	if ( $file['error'] != '0' && ! isset( $_POST['html-upload'] ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
+	if ( $file['error'] != '0' && ! isset( $_POST['html-upload'] ) && ! wp_doing_ajax() ) {
 		wp_die( $file['error'] . ' <a href="javascript:history.go(-1)">' . __( 'Back' ) . '</a>' );
 	}
 
@@ -66,7 +68,7 @@ function wpmu_delete_blog( $blog_id, $drop = false ) {
 		switch_to_blog( $blog_id );
 	}
 
-	$blog = get_blog_details( $blog_id );
+	$blog = get_site( $blog_id );
 	/**
 	 * Fires before a site is deleted.
 	 *
@@ -88,7 +90,7 @@ function wpmu_delete_blog( $blog_id, $drop = false ) {
 
 	update_blog_status( $blog_id, 'deleted', 1 );
 
-	$current_site = get_current_site();
+	$current_network = get_network();
 
 	// If a full blog object is not available, do not destroy anything.
 	if ( $drop && ! $blog ) {
@@ -96,7 +98,7 @@ function wpmu_delete_blog( $blog_id, $drop = false ) {
 	}
 
 	// Don't destroy the initial, main, or root blog.
-	if ( $drop && ( 1 == $blog_id || is_main_site( $blog_id ) || ( $blog->path == $current_site->path && $blog->domain == $current_site->domain ) ) ) {
+	if ( $drop && ( 1 == $blog_id || is_main_site( $blog_id ) || ( $blog->path == $current_network->path && $blog->domain == $current_network->domain ) ) ) {
 		$drop = false;
 	}
 
@@ -272,6 +274,8 @@ function update_option_new_admin_email( $old_value, $value ) {
 	);
 	update_option( 'adminhash', $new_admin_email );
 
+	$switched_locale = switch_to_locale( get_user_locale() );
+
 	/* translators: Do not translate USERNAME, ADMIN_URL, EMAIL, SITENAME, SITEURL: those are placeholders. */
 	$email_text = __( 'Howdy ###USERNAME###,
 
@@ -315,6 +319,10 @@ All at ###SITENAME###
 	$content = str_replace( '###SITEURL###', network_home_url(), $content );
 
 	wp_mail( $value, sprintf( __( '[%s] New Admin Email Address' ), wp_specialchars_decode( get_option( 'blogname' ) ) ), $content );
+
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
 }
 
 /**
@@ -353,6 +361,8 @@ function send_confirmation_on_profile_email() {
 		);
 		update_user_meta( $current_user->ID, '_new_email', $new_user_email );
 
+		$switched_locale = switch_to_locale( get_user_locale() );
+
 		/* translators: Do not translate USERNAME, ADMIN_URL, EMAIL, SITENAME, SITEURL: those are placeholders. */
 		$email_text = __( 'Howdy ###USERNAME###,
 
@@ -388,13 +398,17 @@ All at ###SITENAME###
 		$content = apply_filters( 'new_user_email_content', $email_text, $new_user_email );
 
 		$content = str_replace( '###USERNAME###', $current_user->user_login, $content );
-		$content = str_replace( '###ADMIN_URL###', esc_url( admin_url( 'profile.php?newuseremail='.$hash ) ), $content );
+		$content = str_replace( '###ADMIN_URL###', esc_url( self_admin_url( 'profile.php?newuseremail=' . $hash ) ), $content );
 		$content = str_replace( '###EMAIL###', $_POST['email'], $content);
 		$content = str_replace( '###SITENAME###', get_site_option( 'site_name' ), $content );
 		$content = str_replace( '###SITEURL###', network_home_url(), $content );
 
 		wp_mail( $_POST['email'], sprintf( __( '[%s] New Email Address' ), wp_specialchars_decode( get_option( 'blogname' ) ) ), $content );
 		$_POST['email'] = $current_user->user_email;
+
+		if ( $switched_locale ) {
+			restore_previous_locale();
+		}
 	}
 }
 
@@ -462,7 +476,10 @@ function display_space_usage() {
 		$space .= __( 'MB' );
 	}
 	?>
-	<strong><?php printf( __( 'Used: %1$s%% of %2$s' ), number_format( $percent_used ), $space ); ?></strong>
+	<strong><?php
+		/* translators: Storage space that's been used. 1: Percentage of used space, 2: Total space allowed in megabytes or gigabytes */
+		printf( __( 'Used: %1$s%% of %2$s' ), number_format( $percent_used ), $space );
+	?></strong>
 	<?php
 }
 
diff --git a/wp-admin/includes/nav-menu.php b/wp-admin/includes/nav-menu.php
index cb1519c83..a6aac3305 100644
--- a/wp-admin/includes/nav-menu.php
+++ b/wp-admin/includes/nav-menu.php
@@ -70,14 +70,22 @@ function _wp_ajax_menu_quick_search( $request = array() ) {
 
 	} elseif ( preg_match('/quick-search-(posttype|taxonomy)-([a-zA-Z_-]*\b)/', $type, $matches) ) {
 		if ( 'posttype' == $matches[1] && get_post_type_object( $matches[2] ) ) {
-			$search_results_query = new WP_Query( array(
-				'no_found_rows'          => true,
-				'update_post_meta_cache' => false,
-				'update_post_term_cache' => false,
-				'posts_per_page'         => 10,
-				'post_type'              => $matches[2],
-				's'                      => $query,
-			) );
+			$post_type_obj = _wp_nav_menu_meta_box_object( get_post_type_object( $matches[2] ) );
+			$args = array_merge(
+				$args,
+				array(
+					'no_found_rows'          => true,
+					'update_post_meta_cache' => false,
+					'update_post_term_cache' => false,
+					'posts_per_page'         => 10,
+					'post_type'              => $matches[2],
+					's'                      => $query,
+				)
+			);
+			if ( isset( $post_type_obj->_default_query ) ) {
+				$args = array_merge( $args, (array) $post_type_obj->_default_query );
+			}
+			$search_results_query = new WP_Query( $args );
 			if ( ! $search_results_query->have_posts() ) {
 				return;
 			}
@@ -279,7 +287,7 @@ function wp_nav_menu_item_link_meta_box() {
 
 		<p class="button-controls wp-clearfix">
 			<span class="add-to-menu">
-				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
+				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
 				<span class="spinner"></span>
 			</span>
 		</p>
@@ -350,9 +358,10 @@ function wp_nav_menu_item_post_type_meta_box( $object, $box ) {
 			)
 		),
 		'format' => '',
-		'prev_text' => __('&laquo;'),
-		'next_text' => __('&raquo;'),
-		'total' => $num_pages,
+		'prev_text'          => '<span aria-label="' . esc_attr__( 'Previous page' ) . '">' . __( '&laquo;' ) . '</span>',
+		'next_text'          => '<span aria-label="' . esc_attr__( 'Next page' ) . '">' . __( '&raquo;' ) . '</span>',
+		'before_page_number' => '<span class="screen-reader-text">' . __( 'Page' ) . '</span> ',
+		'total'   => $num_pages,
 		'current' => $pagenum
 	));
 
@@ -445,7 +454,7 @@ function wp_nav_menu_item_post_type_meta_box( $object, $box ) {
 				<label for="quick-search-posttype-<?php echo $post_type_name; ?>" class="screen-reader-text"><?php _e( 'Search' ); ?></label>
 				<input type="search" class="quick-search" value="<?php echo $searched; ?>" name="quick-search-posttype-<?php echo $post_type_name; ?>" id="quick-search-posttype-<?php echo $post_type_name; ?>" />
 				<span class="spinner"></span>
-				<?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
+				<?php submit_button( __( 'Search' ), 'small quick-search-submit hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
 			</p>
 
 			<ul id="<?php echo $post_type_name; ?>-search-checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
@@ -502,7 +511,7 @@ function wp_nav_menu_item_post_type_meta_box( $object, $box ) {
 				}
 
 				$post_type = get_post_type_object( $post_type_name );
-				$archive_link = get_post_type_archive_link( $post_type_name );
+
 				if ( $post_type->has_archive ) {
 					$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
 					array_unshift( $posts, (object) array(
@@ -563,11 +572,11 @@ function wp_nav_menu_item_post_type_meta_box( $object, $box ) {
 						),
 						remove_query_arg( $removed_args )
 					));
-				?>#posttype-<?php echo $post_type_name; ?>" class="select-all"><?php _e('Select All'); ?></a>
+				?>#posttype-<?php echo $post_type_name; ?>" class="select-all aria-button-if-js"><?php _e( 'Select All' ); ?></a>
 			</span>
 
 			<span class="add-to-menu">
-				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-post-type-menu-item" id="<?php echo esc_attr( 'submit-posttype-' . $post_type_name ); ?>" />
+				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-post-type-menu-item" id="<?php echo esc_attr( 'submit-posttype-' . $post_type_name ); ?>" />
 				<span class="spinner"></span>
 			</span>
 		</p>
@@ -634,9 +643,10 @@ function wp_nav_menu_item_taxonomy_meta_box( $object, $box ) {
 			)
 		),
 		'format' => '',
-		'prev_text' => __('&laquo;'),
-		'next_text' => __('&raquo;'),
-		'total' => $num_pages,
+		'prev_text'          => '<span aria-label="' . esc_attr__( 'Previous page' ) . '">' . __( '&laquo;' ) . '</span>',
+		'next_text'          => '<span aria-label="' . esc_attr__( 'Next page' ) . '">' . __( '&raquo;' ) . '</span>',
+		'before_page_number' => '<span class="screen-reader-text">' . __( 'Page' ) . '</span> ',
+		'total'   => $num_pages,
 		'current' => $pagenum
 	));
 
@@ -734,7 +744,7 @@ function wp_nav_menu_item_taxonomy_meta_box( $object, $box ) {
 				<label for="quick-search-taxonomy-<?php echo $taxonomy_name; ?>" class="screen-reader-text"><?php _e( 'Search' ); ?></label>
 				<input type="search" class="quick-search" value="<?php echo $searched; ?>" name="quick-search-taxonomy-<?php echo $taxonomy_name; ?>" id="quick-search-taxonomy-<?php echo $taxonomy_name; ?>" />
 				<span class="spinner"></span>
-				<?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
+				<?php submit_button( __( 'Search' ), 'small quick-search-submit hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
 			</p>
 
 			<ul id="<?php echo $taxonomy_name; ?>-search-checklist" data-wp-lists="list:<?php echo $taxonomy_name?>" class="categorychecklist form-no-clear">
@@ -761,11 +771,11 @@ function wp_nav_menu_item_taxonomy_meta_box( $object, $box ) {
 						),
 						remove_query_arg($removed_args)
 					));
-				?>#taxonomy-<?php echo $taxonomy_name; ?>" class="select-all"><?php _e('Select All'); ?></a>
+				?>#taxonomy-<?php echo $taxonomy_name; ?>" class="select-all aria-button-if-js"><?php _e( 'Select All' ); ?></a>
 			</span>
 
 			<span class="add-to-menu">
-				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-taxonomy-menu-item" id="<?php echo esc_attr( 'submit-taxonomy-' . $taxonomy_name ); ?>" />
+				<input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-taxonomy-menu-item" id="<?php echo esc_attr( 'submit-taxonomy-' . $taxonomy_name ); ?>" />
 				<span class="spinner"></span>
 			</span>
 		</p>
diff --git a/wp-admin/includes/network.php b/wp-admin/includes/network.php
index d04b4f9a2..fef6b6685 100644
--- a/wp-admin/includes/network.php
+++ b/wp-admin/includes/network.php
@@ -144,8 +144,18 @@ function network_step1( $errors = false ) {
 		$error_codes = $errors->get_error_codes();
 	}
 
-	$site_name = ( ! empty( $_POST['sitename'] ) && ! in_array( 'empty_sitename', $error_codes ) ) ? $_POST['sitename'] : sprintf( _x('%s Sites', 'Default network name' ), get_option( 'blogname' ) );
-	$admin_email = ( ! empty( $_POST['email'] ) && ! in_array( 'invalid_email', $error_codes ) ) ? $_POST['email'] : get_option( 'admin_email' );
+	if ( ! empty( $_POST['sitename'] ) && ! in_array( 'empty_sitename', $error_codes ) ) {
+		$site_name = $_POST['sitename'];
+	} else {
+		/* translators: %s: Default network name */
+		$site_name = sprintf( __( '%s Sites' ), get_option( 'blogname' ) );
+	}
+
+	if ( ! empty( $_POST['email'] ) && ! in_array( 'invalid_email', $error_codes ) ) {
+		$admin_email = $_POST['email'];
+	} else {
+		$admin_email = get_option( 'admin_email' );
+	}
 	?>
 	<p><?php _e( 'Welcome to the Network installation process!' ); ?></p>
 	<p><?php _e( 'Fill in the information below and you&#8217;ll be on your way to creating a network of WordPress sites. We will create configuration files in the next step.' ); ?></p>
diff --git a/wp-admin/includes/plugin-install.php b/wp-admin/includes/plugin-install.php
index 4d558cf0e..0d932c261 100644
--- a/wp-admin/includes/plugin-install.php
+++ b/wp-admin/includes/plugin-install.php
@@ -109,7 +109,7 @@ function plugins_api( $action, $args = array() ) {
 	}
 
 	if ( ! isset( $args->locale ) ) {
-		$args->locale = get_locale();
+		$args->locale = get_user_locale();
 	}
 
 	/**
@@ -155,16 +155,38 @@ function plugins_api( $action, $args = array() ) {
 		$request = wp_remote_post( $url, $http_args );
 
 		if ( $ssl && is_wp_error( $request ) ) {
-			trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+			trigger_error(
+				sprintf(
+					/* translators: %s: support forums URL */
+					__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+					__( 'https://wordpress.org/support/' )
+				) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ),
+				headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE
+			);
 			$request = wp_remote_post( $http_url, $http_args );
 		}
 
 		if ( is_wp_error($request) ) {
-			$res = new WP_Error('plugins_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), $request->get_error_message() );
+			$res = new WP_Error( 'plugins_api_failed',
+				sprintf(
+					/* translators: %s: support forums URL */
+					__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+					__( 'https://wordpress.org/support/' )
+				),
+				$request->get_error_message()
+			);
 		} else {
 			$res = maybe_unserialize( wp_remote_retrieve_body( $request ) );
-			if ( ! is_object( $res ) && ! is_array( $res ) )
-				$res = new WP_Error('plugins_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), wp_remote_retrieve_body( $request ) );
+			if ( ! is_object( $res ) && ! is_array( $res ) ) {
+				$res = new WP_Error( 'plugins_api_failed',
+					sprintf(
+						/* translators: %s: support forums URL */
+						__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+						__( 'https://wordpress.org/support/' )
+					),
+					wp_remote_retrieve_body( $request )
+				);
+			}
 		}
 	} elseif ( !is_wp_error($res) ) {
 		$res->external = true;
@@ -210,7 +232,7 @@ function install_popular_tags( $args = array() ) {
  */
 function install_dashboard() {
 	?>
-	<p><?php printf( __( 'Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the <a href="%1$s">WordPress Plugin Directory</a> or upload a plugin in .zip format by clicking the button at the top of this page.' ), 'https://wordpress.org/plugins/' ); ?></p>
+	<p><?php printf( __( 'Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the <a href="%1$s">WordPress Plugin Directory</a> or upload a plugin in .zip format by clicking the button at the top of this page.' ), __( 'https://wordpress.org/plugins/' ) ); ?></p>
 
 	<?php display_plugins_table(); ?>
 
@@ -263,9 +285,9 @@ function install_search_form( $deprecated = true ) {
 			<option value="tag"<?php selected( 'tag', $type ); ?>><?php _ex( 'Tag', 'Plugin Installer' ); ?></option>
 		</select>
 		<label><span class="screen-reader-text"><?php _e( 'Search Plugins' ); ?></span>
-			<input type="search" name="s" value="<?php echo esc_attr( $term ) ?>" class="wp-filter-search" placeholder="<?php esc_attr_e( 'Search Plugins' ); ?>" />
+			<input type="search" name="s" value="<?php echo esc_attr( $term ) ?>" class="wp-filter-search" placeholder="<?php esc_attr_e( 'Search plugins...' ); ?>" />
 		</label>
-		<?php submit_button( __( 'Search Plugins' ), 'button hide-if-js', false, false, array( 'id' => 'search-submit' ) ); ?>
+		<?php submit_button( __( 'Search Plugins' ), 'hide-if-js', false, false, array( 'id' => 'search-submit' ) ); ?>
 	</form><?php
 }
 
@@ -281,7 +303,7 @@ function install_plugins_upload() {
 		<?php wp_nonce_field( 'plugin-upload' ); ?>
 		<label class="screen-reader-text" for="pluginzip"><?php _e( 'Plugin zip file' ); ?></label>
 		<input type="file" id="pluginzip" name="pluginzip" />
-		<?php submit_button( __( 'Install Now' ), 'button', 'install-plugin-submit', false ); ?>
+		<?php submit_button( __( 'Install Now' ), '', 'install-plugin-submit', false ); ?>
 	</form>
 </div>
 <?php
@@ -348,9 +370,16 @@ function display_plugins_table() {
  *
  * @since 3.0.0
  *
- * @param array|object $api
- * @param bool        $loop
- * @return type
+ * @param  array|object $api  Data about the plugin retrieved from the API.
+ * @param  bool         $loop Optional. Disable further loops. Default false.
+ * @return array {
+ *     Plugin installation status data.
+ *
+ *     @type string $status  Status of a plugin. Could be one of 'install', 'update_available', 'latest_installed' or 'newer_installed'.
+ *     @type string $url     Plugin installation URL.
+ *     @type string $version The most recent version of the plugin.
+ *     @type string $file    Plugin filename relative to the plugins directory.
+ * }
  */
 function install_plugin_install_status($api, $loop = false) {
 	// This function is called recursively, $loop prevents further loops.
@@ -423,7 +452,6 @@ function install_plugin_install_status($api, $loop = false) {
  * @since 2.7.0
  *
  * @global string $tab
- * @global string $wp_version
  */
 function install_plugin_information() {
 	global $tab;
@@ -557,16 +585,18 @@ function install_plugin_information() {
 				</li>
 			<?php } if ( ! empty( $api->tested ) ) { ?>
 				<li><strong><?php _e( 'Compatible up to:' ); ?></strong> <?php echo $api->tested; ?></li>
-			<?php } if ( ! empty( $api->active_installs ) ) { ?>
+			<?php } if ( isset( $api->active_installs ) ) { ?>
 				<li><strong><?php _e( 'Active Installs:' ); ?></strong> <?php
 					if ( $api->active_installs >= 1000000 ) {
 						_ex( '1+ Million', 'Active plugin installs' );
+					} elseif ( 0 == $api->active_installs ) {
+						_ex( 'Less Than 10', 'Active plugin installs' );
 					} else {
 						echo number_format_i18n( $api->active_installs ) . '+';
 					}
 					?></li>
 			<?php } if ( ! empty( $api->slug ) && empty( $api->external ) ) { ?>
-				<li><a target="_blank" href="https://wordpress.org/plugins/<?php echo $api->slug; ?>/"><?php _e( 'WordPress.org Plugin Page &#187;' ); ?></a></li>
+				<li><a target="_blank" href="<?php echo __( 'https://wordpress.org/plugins/' ) . $api->slug; ?>/"><?php _e( 'WordPress.org Plugin Page &#187;' ); ?></a></li>
 			<?php } if ( ! empty( $api->homepage ) ) { ?>
 				<li><a target="_blank" href="<?php echo esc_url( $api->homepage ); ?>"><?php _e( 'Plugin Homepage &#187;' ); ?></a></li>
 			<?php } if ( ! empty( $api->donate_link ) && empty( $api->contributors ) ) { ?>
@@ -630,9 +660,11 @@ function install_plugin_information() {
 	</div>
 	<div id="section-holder" class="wrap">
 	<?php
-	if ( ! empty( $api->tested ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->tested ) ), $api->tested, '>' ) ) {
+	$wp_version = get_bloginfo( 'version' );
+
+	if ( ! empty( $api->tested ) && version_compare( substr( $wp_version, 0, strlen( $api->tested ) ), $api->tested, '>' ) ) {
 		echo '<div class="notice notice-warning notice-alt"><p>' . __( '<strong>Warning:</strong> This plugin has <strong>not been tested</strong> with your current version of WordPress.' ) . '</p></div>';
-	} elseif ( ! empty( $api->requires ) && version_compare( substr( $GLOBALS['wp_version'], 0, strlen( $api->requires ) ), $api->requires, '<' ) ) {
+	} elseif ( ! empty( $api->requires ) && version_compare( substr( $wp_version, 0, strlen( $api->requires ) ), $api->requires, '<' ) ) {
 		echo '<div class="notice notice-warning notice-alt"><p>' . __( '<strong>Warning:</strong> This plugin has <strong>not been marked as compatible</strong> with your version of WordPress.' ) . '</p></div>';
 	}
 
diff --git a/wp-admin/includes/plugin.php b/wp-admin/includes/plugin.php
index cf6b4babf..9a4d0cb29 100644
--- a/wp-admin/includes/plugin.php
+++ b/wp-admin/includes/plugin.php
@@ -588,7 +588,7 @@ function activate_plugin( $plugin, $redirect = '', $network_wide = false, $silen
 			 * @param bool $network_wide Whether to enable the plugin for all sites in the network
 			 *                           or just the current site. Multisite only. Default is false.
 			 */
-			do_action( 'activate_' . $plugin, $network_wide );
+			do_action( "activate_{$plugin}", $network_wide );
 		}
 
 		if ( $network_wide ) {
@@ -701,7 +701,7 @@ function deactivate_plugins( $plugins, $silent = false, $network_wide = null ) {
 			 * @param bool $network_deactivating Whether the plugin is deactivated for all sites in the network
 			 *                                   or just the current site. Multisite only. Default is false.
 			 */
-			do_action( 'deactivate_' . $plugin, $network_deactivating );
+			do_action( "deactivate_{$plugin}", $network_deactivating );
 
 			/**
 			 * Fires after a plugin is deactivated.
@@ -1764,67 +1764,6 @@ function user_can_access_admin_page() {
 
 /* Whitelist functions */
 
-/**
- * Register a setting and its sanitization callback
- *
- * @since 2.7.0
- *
- * @global array $new_whitelist_options
- *
- * @param string $option_group A settings group name. Should correspond to a whitelisted option key name.
- * 	Default whitelisted option key names include "general," "discussion," and "reading," among others.
- * @param string $option_name The name of an option to sanitize and save.
- * @param callable $sanitize_callback A callback function that sanitizes the option's value.
- */
-function register_setting( $option_group, $option_name, $sanitize_callback = '' ) {
-	global $new_whitelist_options;
-
-	if ( 'misc' == $option_group ) {
-		_deprecated_argument( __FUNCTION__, '3.0.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'misc' ) );
-		$option_group = 'general';
-	}
-
-	if ( 'privacy' == $option_group ) {
-		_deprecated_argument( __FUNCTION__, '3.5.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'privacy' ) );
-		$option_group = 'reading';
-	}
-
-	$new_whitelist_options[ $option_group ][] = $option_name;
-	if ( $sanitize_callback != '' )
-		add_filter( "sanitize_option_{$option_name}", $sanitize_callback );
-}
-
-/**
- * Unregister a setting
- *
- * @since 2.7.0
- *
- * @global array $new_whitelist_options
- *
- * @param string   $option_group
- * @param string   $option_name
- * @param callable $sanitize_callback
- */
-function unregister_setting( $option_group, $option_name, $sanitize_callback = '' ) {
-	global $new_whitelist_options;
-
-	if ( 'misc' == $option_group ) {
-		_deprecated_argument( __FUNCTION__, '3.0.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'misc' ) );
-		$option_group = 'general';
-	}
-
-	if ( 'privacy' == $option_group ) {
-		_deprecated_argument( __FUNCTION__, '3.5.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'privacy' ) );
-		$option_group = 'reading';
-	}
-
-	$pos = array_search( $option_name, (array) $new_whitelist_options[ $option_group ] );
-	if ( $pos !== false )
-		unset( $new_whitelist_options[ $option_group ][ $pos ] );
-	if ( $sanitize_callback != '' )
-		remove_filter( "sanitize_option_{$option_name}", $sanitize_callback );
-}
-
 /**
  * Refreshes the value of the options whitelist available via the 'whitelist_options' hook.
  *
diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php
index 790b736cd..ab50c27d9 100644
--- a/wp-admin/includes/post.php
+++ b/wp-admin/includes/post.php
@@ -160,7 +160,7 @@ function _wp_translate_postdata( $update = false, $post_data = null ) {
 		$post_data['post_date'] = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $aa, $mm, $jj, $hh, $mn, $ss );
 		$valid_date = wp_checkdate( $mm, $jj, $aa, $post_data['post_date'] );
 		if ( !$valid_date ) {
-			return new WP_Error( 'invalid_date', __( 'Whoops, the provided date is invalid.' ) );
+			return new WP_Error( 'invalid_date', __( 'Invalid date.' ) );
 		}
 		$post_data['post_date_gmt'] = get_gmt_from_date( $post_data['post_date'] );
 	}
@@ -288,6 +288,8 @@ function edit_post( $post_data = null ) {
 				continue;
 			if ( $meta->post_id != $post_ID )
 				continue;
+			if ( is_protected_meta( $meta->meta_key, 'post' ) || ! current_user_can( 'edit_post_meta', $post_ID, $meta->meta_key ) )
+				continue;
 			if ( is_protected_meta( $value['key'], 'post' ) || ! current_user_can( 'edit_post_meta', $post_ID, $value['key'] ) )
 				continue;
 			update_meta( $key, $value['key'], $value['value'] );
@@ -1144,9 +1146,43 @@ function wp_edit_attachments_query_vars( $q = false ) {
 		$q['post_parent'] = 0;
 	}
 
+	// Filter query clauses to include filenames.
+	if ( isset( $q['s'] ) ) {
+		add_filter( 'posts_clauses', '_filter_query_attachment_filenames' );
+	}
+
 	return $q;
 }
 
+/**
+ * Filter the SQL clauses of an attachment query to include filenames.
+ *
+ * @since 4.7.0
+ * @access private
+ *
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
+ * @param array $clauses An array including WHERE, GROUP BY, JOIN, ORDER BY,
+ *                       DISTINCT, fields (SELECT), and LIMITS clauses.
+ * @return array The modified clauses.
+ */
+function _filter_query_attachment_filenames( $clauses ) {
+	global $wpdb;
+	remove_filter( 'posts_clauses', __FUNCTION__ );
+
+	// Add a LEFT JOIN of the postmeta table so we don't trample existing JOINs.
+	$clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS sq1 ON ( {$wpdb->posts}.ID = sq1.post_id AND sq1.meta_key = '_wp_attached_file' )";
+
+	$clauses['groupby'] = "{$wpdb->posts}.ID";
+
+	$clauses['where'] = preg_replace(
+		"/\({$wpdb->posts}.post_content (NOT LIKE|LIKE) (\'[^']+\')\)/",
+		"$0 OR ( sq1.meta_value $1 $2 )",
+		$clauses['where'] );
+
+	return $clauses;
+}
+
 /**
  * Executes a query for attachments. An array of WP_Query arguments
  * can be passed in, which will override the arguments set by this function.
@@ -1207,9 +1243,9 @@ function postbox_classes( $id, $page ) {
  * @since 2.5.0
  *
  * @param int    $id    Post ID or post object.
- * @param string $title Optional. Title. Default null.
- * @param string $name  Optional. Name. Default null.
- * @return array Array with two entries of type string.
+ * @param string $title Optional. Title to override the post's current title when generating the post name. Default null.
+ * @param string $name  Optional. Name to override the post name. Default null.
+ * @return array Array containing the sample permalink with placeholder for the post name, and the post name.
  */
 function get_sample_permalink($id, $title = null, $name = null) {
 	$post = get_post( $id );
@@ -1270,7 +1306,7 @@ function get_sample_permalink($id, $title = null, $name = null) {
 	 *
 	 * @since 4.4.0
 	 *
-	 * @param string  $permalink Sample permalink.
+	 * @param array   $permalink Array containing the sample permalink with placeholder for the post name, and the post name.
 	 * @param int     $post_id   Post ID.
 	 * @param string  $title     Post title.
 	 * @param string  $name      Post name (slug).
@@ -1300,14 +1336,14 @@ function get_sample_permalink_html( $id, $new_title = null, $new_slug = null ) {
 	$preview_target = '';
 
 	if ( current_user_can( 'read_post', $post->ID ) ) {
-		if ( 'draft' === $post->post_status ) {
+		if ( 'draft' === $post->post_status || empty( $post->post_name ) ) {
 			$view_link = get_preview_post_link( $post );
 			$preview_target = " target='wp-preview-{$post->ID}'";
 		} else {
 			if ( 'publish' === $post->post_status || 'attachment' === $post->post_type ) {
 				$view_link = get_permalink( $post );
 			} else {
-				// Allow non-published (private, future) to be viewed at a pretty permalink.
+				// Allow non-published (private, future) to be viewed at a pretty permalink, in case $post->post_name is set
 				$view_link = str_replace( array( '%pagename%', '%postname%' ), $post->post_name, $permalink );
 			}
 		}
@@ -1367,14 +1403,12 @@ function get_sample_permalink_html( $id, $new_title = null, $new_slug = null ) {
  *
  * @since 2.9.0
  *
- * @global array $_wp_additional_image_sizes
- *
  * @param int $thumbnail_id ID of the attachment used for thumbnail
  * @param mixed $post The post ID or object associated with the thumbnail, defaults to global $post.
  * @return string html
  */
 function _wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) {
-	global $_wp_additional_image_sizes;
+	$_wp_additional_image_sizes = wp_get_additional_image_sizes();
 
 	$post               = get_post( $post );
 	$post_type_object   = get_post_type_object( $post->post_type );
diff --git a/wp-admin/includes/revision.php b/wp-admin/includes/revision.php
index dee879d61..9edf52d2a 100644
--- a/wp-admin/includes/revision.php
+++ b/wp-admin/includes/revision.php
@@ -70,10 +70,10 @@ function wp_get_revision_ui_diff( $post, $compare_from, $compare_to ) {
 		 * @param string  null                  The context of whether the current revision is the old
 		 *                                      or the new one. Values are 'to' or 'from'.
 		 */
-		$content_from = $compare_from ? apply_filters( "_wp_post_revision_field_$field", $compare_from->$field, $field, $compare_from, 'from' ) : '';
+		$content_from = $compare_from ? apply_filters( "_wp_post_revision_field_{$field}", $compare_from->$field, $field, $compare_from, 'from' ) : '';
 
 		/** This filter is documented in wp-admin/includes/revision.php */
-		$content_to = apply_filters( "_wp_post_revision_field_$field", $compare_to->$field, $field, $compare_to, 'to' );
+		$content_to = apply_filters( "_wp_post_revision_field_{$field}", $compare_to->$field, $field, $compare_to, 'to' );
 
 		$args = array(
 			'show_split_view' => true
@@ -340,7 +340,7 @@ function wp_print_revision_templates() {
 				}
 				#>
 				/>
-				<?php esc_attr_e( 'Compare any two revisions' ); ?>
+				<?php esc_html_e( 'Compare any two revisions' ); ?>
 			</label>
 		</div>
 	</script>
@@ -400,4 +400,4 @@ function wp_print_revision_templates() {
 		<# }); #>
 		</div>
 	</script><?php
-}
\ No newline at end of file
+}
diff --git a/wp-admin/includes/schema.php b/wp-admin/includes/schema.php
index 83ba53179..cd66e1924 100644
--- a/wp-admin/includes/schema.php
+++ b/wp-admin/includes/schema.php
@@ -165,7 +165,7 @@ CREATE TABLE $wpdb->posts (
   post_status varchar(20) NOT NULL default 'publish',
   comment_status varchar(20) NOT NULL default 'open',
   ping_status varchar(20) NOT NULL default 'open',
-  post_password varchar(20) NOT NULL default '',
+  post_password varchar(255) NOT NULL default '',
   post_name varchar(200) NOT NULL default '',
   to_ping text NOT NULL,
   pinged text NOT NULL,
@@ -527,7 +527,7 @@ function populate_options() {
 	// 3.0 multisite
 	if ( is_multisite() ) {
 		/* translators: site tagline */
-		$options[ 'blogdescription' ] = sprintf(__('Just another %s site'), get_current_site()->site_name );
+		$options[ 'blogdescription' ] = sprintf(__('Just another %s site'), get_network()->site_name );
 		$options[ 'permalink_structure' ] = '/%year%/%monthnum%/%day%/%postname%/';
 	}
 
diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php
index 57478a117..edf9a8641 100644
--- a/wp-admin/includes/template.php
+++ b/wp-admin/includes/template.php
@@ -293,14 +293,15 @@ function get_inline_data($post) {
 	<div class="ss">' . mysql2date( 's', $post->post_date, false ) . '</div>
 	<div class="post_password">' . esc_html( $post->post_password ) . '</div>';
 
-	if ( $post_type_object->hierarchical )
+	if ( $post_type_object->hierarchical ) {
 		echo '<div class="post_parent">' . $post->post_parent . '</div>';
+	}
 
-	if ( $post->post_type == 'page' )
-		echo '<div class="page_template">' . esc_html( get_post_meta( $post->ID, '_wp_page_template', true ) ) . '</div>';
+	echo '<div class="page_template">' . ( $post->page_template ? esc_html( $post->page_template ) : 'default' ) . '</div>';
 
-	if ( post_type_supports( $post->post_type, 'page-attributes' ) )
+	if ( post_type_supports( $post->post_type, 'page-attributes' ) ) {
 		echo '<div class="menu_order">' . $post->menu_order . '</div>';
+	}
 
 	$taxonomy_names = get_object_taxonomies( $post->post_type );
 	foreach ( $taxonomy_names as $taxonomy_name) {
@@ -423,11 +424,11 @@ function wp_comment_reply( $position = 1, $checkbox = false, $mode = 'single', $
 	</div>
 
 	<p id="replysubmit" class="submit">
-	<a href="#comments-form" class="save button-primary alignright">
+	<a href="#comments-form" class="save button button-primary alignright">
 	<span id="addbtn" style="display:none;"><?php _e('Add Comment'); ?></span>
 	<span id="savebtn" style="display:none;"><?php _e('Update Comment'); ?></span>
 	<span id="replybtn" style="display:none;"><?php _e('Submit Reply'); ?></span></a>
-	<a href="#comments-form" class="cancel button-secondary alignleft"><?php _e('Cancel'); ?></a>
+	<a href="#comments-form" class="cancel button alignleft"><?php _e('Cancel'); ?></a>
 	<span class="waiting spinner"></span>
 	<span class="error" style="display:none;"></span>
 	</p>
@@ -657,7 +658,7 @@ function meta_form( $post = null ) {
 
 <tr><td colspan="2">
 <div class="submit">
-<?php submit_button( __( 'Add Custom Field' ), 'secondary', 'addmeta', false, array( 'id' => 'newmeta-submit', 'data-wp-lists' => 'add:the-list:newmeta' ) ); ?>
+<?php submit_button( __( 'Add Custom Field' ), '', 'addmeta', false, array( 'id' => 'newmeta-submit', 'data-wp-lists' => 'add:the-list:newmeta' ) ); ?>
 </div>
 <?php wp_nonce_field( 'add-meta', '_ajax_nonce-add-meta', false ); ?>
 </td></tr>
@@ -761,11 +762,13 @@ function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
  * Print out option HTML elements for the page templates drop-down.
  *
  * @since 1.5.0
+ * @since 4.7.0 Added the `$post_type` parameter.
  *
- * @param string $default Optional. The template file name. Default empty.
+ * @param string $default   Optional. The template file name. Default empty.
+ * @param string $post_type Optional. Post type to get templates for. Default 'post'.
  */
-function page_template_dropdown( $default = '' ) {
-	$templates = get_page_templates( get_post() );
+function page_template_dropdown( $default = '', $post_type = 'page' ) {
+	$templates = get_page_templates( null, $post_type );
 	ksort( $templates );
 	foreach ( array_keys( $templates ) as $template ) {
 		$selected = selected( $default, $templates[ $template ], false );
@@ -1513,7 +1516,7 @@ function find_posts_div($found_action = '') {
 			<div id="find-posts-response"></div>
 		</div>
 		<div class="find-box-buttons">
-			<?php submit_button( __( 'Select' ), 'button-primary alignright', 'find-posts-submit', false ); ?>
+			<?php submit_button( __( 'Select' ), 'primary alignright', 'find-posts-submit', false ); ?>
 			<div class="clear"></div>
 		</div>
 	</div>
@@ -1622,7 +1625,7 @@ do_action( "admin_head-$hook_suffix" );
 /** This action is documented in wp-admin/admin-header.php */
 do_action( 'admin_head' );
 
-$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
+$admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) );
 
 if ( is_rtl() )
 	$admin_body_class .= ' rtl';
@@ -1752,14 +1755,39 @@ function _media_states( $post ) {
 
 	if ( current_theme_supports( 'custom-header') ) {
 		$meta_header = get_post_meta($post->ID, '_wp_attachment_is_custom_header', true );
-		if ( ! empty( $meta_header ) && $meta_header == $stylesheet )
-			$media_states[] = __( 'Header Image' );
+
+		if ( is_random_header_image() ) {
+			$header_images = wp_list_pluck( get_uploaded_header_images(), 'attachment_id' );
+
+			if ( $meta_header == $stylesheet && in_array( $post->ID, $header_images ) ) {
+				$media_states[] = __( 'Header Image' );
+			}
+		} else {
+			$header_image = get_header_image();
+
+			// Display "Header Image" if the image was ever used as a header image
+			if ( ! empty( $meta_header ) && $meta_header == $stylesheet && $header_image !== wp_get_attachment_url( $post->ID ) ) {
+				$media_states[] = __( 'Header Image' );
+			}
+
+			// Display "Current Header Image" if the image is currently the header image
+			if ( $header_image && $header_image == wp_get_attachment_url( $post->ID ) ) {
+				$media_states[] = __( 'Current Header Image' );
+			}
+		}
 	}
 
 	if ( current_theme_supports( 'custom-background') ) {
 		$meta_background = get_post_meta($post->ID, '_wp_attachment_is_custom_background', true );
-		if ( ! empty( $meta_background ) && $meta_background == $stylesheet )
+
+		if ( ! empty( $meta_background ) && $meta_background == $stylesheet ) {
 			$media_states[] = __( 'Background Image' );
+
+			$background_image = get_background_image();
+			if ( $background_image && $background_image == wp_get_attachment_url( $post->ID ) ) {
+				$media_states[] = __( 'Current Background Image' );
+			}
+		}
 	}
 
 	if ( $post->ID == get_option( 'site_icon' ) ) {
@@ -1914,10 +1942,8 @@ function get_submit_button( $text = '', $type = 'primary large', $name = 'submit
 			continue;
 		$classes[] = in_array( $t, $button_shorthand ) ? 'button-' . $t : $t;
 	}
-	$class = implode( ' ', array_unique( $classes ) );
-
-	if ( 'delete' === $type )
-		$class = 'button-secondary delete';
+	// Remove empty items, remove duplicate items, and finally build a string.
+	$class = implode( ' ', array_unique( array_filter( $classes ) ) );
 
 	$text = $text ? $text : __( 'Save Changes' );
 
@@ -1995,7 +2021,7 @@ function _wp_admin_html_begin() {
  * @return WP_Screen Screen object.
  */
 function convert_to_screen( $hook_name ) {
-	if ( ! class_exists( 'WP_Screen', false ) ) {
+	if ( ! class_exists( 'WP_Screen' ) ) {
 		_doing_it_wrong( 'convert_to_screen(), add_meta_box()', __( "Likely direct inclusion of wp-admin/includes/template.php in order to use add_meta_box(). This is very wrong. Hook the add_meta_box() call into the add_meta_boxes action instead." ), '3.3.0' );
 		return (object) array( 'id' => '_invalid', 'base' => '_are_belong_to_us' );
 	}
diff --git a/wp-admin/includes/theme-install.php b/wp-admin/includes/theme-install.php
index 9333beac9..31ce5f797 100644
--- a/wp-admin/includes/theme-install.php
+++ b/wp-admin/includes/theme-install.php
@@ -85,7 +85,7 @@ function install_theme_search_form( $type_selector = true ) {
 	<label class="screen-reader-text" for="s"><?php _e('Search by keyword'); ?></label>
 	<?php endif; ?>
 	<input type="search" name="s" id="s" size="30" value="<?php echo esc_attr($term) ?>" autofocus="autofocus" />
-	<?php submit_button( __( 'Search' ), 'button', 'search', false ); ?>
+	<?php submit_button( __( 'Search' ), '', 'search', false ); ?>
 </form>
 <?php
 }
@@ -130,7 +130,7 @@ function install_themes_dashboard() {
 
 </div>
 <br class="clear" />
-<?php submit_button( __( 'Find Themes' ), 'button', 'search' ); ?>
+<?php submit_button( __( 'Find Themes' ), '', 'search' ); ?>
 </form>
 <?php
 }
@@ -145,7 +145,7 @@ function install_themes_upload() {
 	<?php wp_nonce_field( 'theme-upload' ); ?>
 	<label class="screen-reader-text" for="themezip"><?php _e( 'Theme zip file' ); ?></label>
 	<input type="file" id="themezip" name="themezip" />
-	<?php submit_button( __( 'Install Now' ), 'button', 'install-theme-submit', false ); ?>
+	<?php submit_button( __( 'Install Now' ), '', 'install-theme-submit', false ); ?>
 </form>
 	<?php
 }
diff --git a/wp-admin/includes/theme.php b/wp-admin/includes/theme.php
index 73567e1fd..822fb5b65 100644
--- a/wp-admin/includes/theme.php
+++ b/wp-admin/includes/theme.php
@@ -102,12 +102,14 @@ function delete_theme($stylesheet, $redirect = '') {
  * Get the Page Templates available in this theme
  *
  * @since 1.5.0
+ * @since 4.7.0 Added the `$post_type` parameter.
  *
- * @param WP_Post|null $post Optional. The post being edited, provided for context.
+ * @param WP_Post|null $post      Optional. The post being edited, provided for context.
+ * @param string       $post_type Optional. Post type to get the templates for. Default 'page'.
  * @return array Key is the template name, value is the filename of the template
  */
-function get_page_templates( $post = null ) {
-	return array_flip( wp_get_theme()->get_page_templates( $post ) );
+function get_page_templates( $post = null, $post_type = 'page' ) {
+	return array_flip( wp_get_theme()->get_page_templates( $post, $post_type ) );
 }
 
 /**
@@ -360,9 +362,9 @@ function get_theme_feature_list( $api = true ) {
  * @param string       $action API action to perform: 'query_themes', 'theme_information',
  *                             'hot_tags' or 'feature_list'.
  * @param array|object $args   {
- *     Optional. Array or object of arguments to serialize for the Plugin Info API.
+ *     Optional. Array or object of arguments to serialize for the Themes API.
  *
- *     @type string  $slug     The plugin slug. Default empty.
+ *     @type string  $slug     The theme slug. Default empty.
  *     @type int     $per_page Number of themes per page. Default 24.
  *     @type int     $page     Number of current page. Default 1.
  *     @type int     $number   Number of tags to be queried.
@@ -412,7 +414,7 @@ function themes_api( $action, $args = array() ) {
 	}
 
 	if ( ! isset( $args->locale ) ) {
-		$args->locale = get_locale();
+		$args->locale = get_user_locale();
 	}
 
 	/**
@@ -459,18 +461,40 @@ function themes_api( $action, $args = array() ) {
 		$request = wp_remote_post( $url, $http_args );
 
 		if ( $ssl && is_wp_error( $request ) ) {
-			if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) {
-				trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+			if ( ! wp_doing_ajax() ) {
+				trigger_error(
+					sprintf(
+						/* translators: %s: support forums URL */
+						__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+						__( 'https://wordpress.org/support/' )
+					) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ),
+					headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE
+				);
 			}
 			$request = wp_remote_post( $http_url, $http_args );
 		}
 
 		if ( is_wp_error($request) ) {
-			$res = new WP_Error('themes_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), $request->get_error_message() );
+			$res = new WP_Error( 'themes_api_failed',
+				sprintf(
+					/* translators: %s: support forums URL */
+					__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+					__( 'https://wordpress.org/support/' )
+				),
+				$request->get_error_message()
+			);
 		} else {
 			$res = maybe_unserialize( wp_remote_retrieve_body( $request ) );
-			if ( ! is_object( $res ) && ! is_array( $res ) )
-				$res = new WP_Error('themes_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), wp_remote_retrieve_body( $request ) );
+			if ( ! is_object( $res ) && ! is_array( $res ) ) {
+				$res = new WP_Error( 'themes_api_failed',
+					sprintf(
+						/* translators: %s: support forums URL */
+						__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+						__( 'https://wordpress.org/support/' )
+					),
+					wp_remote_retrieve_body( $request )
+				);
+			}
 		}
 	}
 
@@ -572,6 +596,7 @@ function wp_prepare_themes_for_js( $themes = null ) {
 			'parent'       => $parent,
 			'active'       => $slug === $current_theme,
 			'hasUpdate'    => isset( $updates[ $slug ] ),
+			'hasPackage'   => isset( $updates[ $slug ] ) && ! empty( $updates[ $slug ][ 'package' ] ),
 			'update'       => get_theme_update_available( $theme ),
 			'actions'      => array(
 				'activate' => current_user_can( 'switch_themes' ) ? wp_nonce_url( admin_url( 'themes.php?action=activate&amp;stylesheet=' . $encoded_slug ), 'switch-theme_' . $slug ) : null,
diff --git a/wp-admin/includes/translation-install.php b/wp-admin/includes/translation-install.php
index ee8254d50..ed86b15cc 100644
--- a/wp-admin/includes/translation-install.php
+++ b/wp-admin/includes/translation-install.php
@@ -56,17 +56,38 @@ function translations_api( $type, $args = null ) {
 		$request = wp_remote_post( $url, $options );
 
 		if ( $ssl && is_wp_error( $request ) ) {
-			trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+			trigger_error(
+				sprintf(
+					/* translators: %s: support forums URL */
+					__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+					__( 'https://wordpress.org/support/' )
+				) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ),
+				headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE
+			);
 
 			$request = wp_remote_post( $http_url, $options );
 		}
 
 		if ( is_wp_error( $request ) ) {
-			$res = new WP_Error( 'translations_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), $request->get_error_message() );
+			$res = new WP_Error( 'translations_api_failed',
+				sprintf(
+					/* translators: %s: support forums URL */
+					__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+					__( 'https://wordpress.org/support/' )
+				),
+				$request->get_error_message()
+			);
 		} else {
 			$res = json_decode( wp_remote_retrieve_body( $request ), true );
 			if ( ! is_object( $res ) && ! is_array( $res ) ) {
-				$res = new WP_Error( 'translations_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), wp_remote_retrieve_body( $request ) );
+				$res = new WP_Error( 'translations_api_failed',
+					sprintf(
+						/* translators: %s: support forums URL */
+						__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+						__( 'https://wordpress.org/support/' )
+					),
+					wp_remote_retrieve_body( $request )
+				);
 			}
 		}
 	}
diff --git a/wp-admin/includes/update-core.php b/wp-admin/includes/update-core.php
index a378d3ce9..3e6aaa205 100644
--- a/wp-admin/includes/update-core.php
+++ b/wp-admin/includes/update-core.php
@@ -720,8 +720,9 @@ $_old_files = array(
  * Directories should be noted by suffixing it with a trailing slash (/)
  *
  * @since 3.2.0
- * @since 4.4.0 New themes are not automatically installed on upgrade.
- *              This can still be explicitly asked for by defining
+ * @since 4.7.0 New themes were not automatically installed for 4.4-4.6 on
+ *              upgrade. New themes are now installed again. To disable new
+ *              themes from being installed on upgrade, explicitly define
  *              CORE_UPGRADE_SKIP_NEW_BUNDLED as false.
  * @global array $_new_bundled_files
  * @var array
@@ -730,21 +731,17 @@ $_old_files = array(
 global $_new_bundled_files;
 
 $_new_bundled_files = array(
-	'plugins/akismet/'       => '2.0',
-	'themes/twentyten/'      => '3.0',
-	'themes/twentyeleven/'   => '3.2',
-	'themes/twentytwelve/'   => '3.5',
-	'themes/twentythirteen/' => '3.6',
-	'themes/twentyfourteen/' => '3.8',
-	'themes/twentyfifteen/'  => '4.1',
-	'themes/twentysixteen/'  => '4.4',
+	'plugins/akismet/'        => '2.0',
+	'themes/twentyten/'       => '3.0',
+	'themes/twentyeleven/'    => '3.2',
+	'themes/twentytwelve/'    => '3.5',
+	'themes/twentythirteen/'  => '3.6',
+	'themes/twentyfourteen/'  => '3.8',
+	'themes/twentyfifteen/'   => '4.1',
+	'themes/twentysixteen/'   => '4.4',
+	'themes/twentyseventeen/' => '4.7',
 );
 
-// If not explicitly defined as false, don't install new default themes.
-if ( ! defined( 'CORE_UPGRADE_SKIP_NEW_BUNDLED' ) || CORE_UPGRADE_SKIP_NEW_BUNDLED ) {
-	$_new_bundled_files = array( 'plugins/akismet/' => '2.0' );
-}
-
 /**
  * Upgrades the core of WordPress.
  *
@@ -902,6 +899,8 @@ function update_core($from, $to) {
 					continue;
 				if ( ! file_exists( $working_dir_local . $file ) )
 					continue;
+				if ( '.' === dirname( $file ) && in_array( pathinfo( $file, PATHINFO_EXTENSION ), array( 'html', 'txt' ) ) )
+					continue;
 				if ( md5_file( ABSPATH . $file ) === $checksum )
 					$skip[] = $file;
 				else
@@ -963,6 +962,10 @@ function update_core($from, $to) {
 				continue;
 			if ( ! file_exists( $working_dir_local . $file ) )
 				continue;
+			if ( '.' === dirname( $file ) && in_array( pathinfo( $file, PATHINFO_EXTENSION ), array( 'html', 'txt' ) ) ) {
+				$skip[] = $file;
+				continue;
+			}
 			if ( file_exists( ABSPATH . $file ) && md5_file( ABSPATH . $file ) == $checksum )
 				$skip[] = $file;
 			else
diff --git a/wp-admin/includes/update.php b/wp-admin/includes/update.php
index 74899e37c..e7a8b5e75 100644
--- a/wp-admin/includes/update.php
+++ b/wp-admin/includes/update.php
@@ -112,7 +112,14 @@ function get_core_checksums( $version, $locale ) {
 
 	$response = wp_remote_get( $url, $options );
 	if ( $ssl && is_wp_error( $response ) ) {
-		trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+		trigger_error(
+			sprintf(
+				/* translators: %s: support forums URL */
+				__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+				__( 'https://wordpress.org/support/' )
+			) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ),
+			headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE
+		);
 		$response = wp_remote_get( $http_url, $options );
 	}
 
@@ -200,6 +207,7 @@ function core_update_footer( $msg = '' ) {
 
 	switch ( $cur->response ) {
 	case 'development' :
+		/* translators: 1: WordPress version number, 2: WordPress updates admin screen URL */
 		return sprintf( __( 'You are using a development version (%1$s). Cool! Please <a href="%2$s">stay updated</a>.' ), get_bloginfo( 'version', 'display' ), network_admin_url( 'update-core.php' ) );
 
 	case 'upgrade' :
diff --git a/wp-admin/includes/upgrade.php b/wp-admin/includes/upgrade.php
index 807673a7f..94a122509 100644
--- a/wp-admin/includes/upgrade.php
+++ b/wp-admin/includes/upgrade.php
@@ -50,6 +50,9 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
 	update_option('admin_email', $user_email);
 	update_option('blog_public', $public);
 
+	// Freshness of site - in the future, this could get more specific about actions taken, perhaps.
+	update_option( 'fresh_site', 1 );
+
 	if ( $language ) {
 		update_option( 'WPLANG', $language );
 	}
@@ -161,12 +164,12 @@ function wp_install_defaults( $user_id ) {
 		}
 
 		$first_post = sprintf( $first_post,
-			sprintf( '<a href="%s">%s</a>', esc_url( network_home_url() ), get_current_site()->site_name )
+			sprintf( '<a href="%s">%s</a>', esc_url( network_home_url() ), get_network()->site_name )
 		);
 
 		// Back-compat for pre-4.4
 		$first_post = str_replace( 'SITE_URL', esc_url( network_home_url() ), $first_post );
-		$first_post = str_replace( 'SITE_NAME', get_current_site()->site_name, $first_post );
+		$first_post = str_replace( 'SITE_NAME', get_network()->site_name, $first_post );
 	} else {
 		$first_post = __( 'Welcome to WordPress. This is your first post. Edit or delete it, then start writing!' );
 	}
@@ -253,8 +256,7 @@ As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to d
 	update_option( 'widget_archives', array ( 2 => array ( 'title' => '', 'count' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) );
 	update_option( 'widget_categories', array ( 2 => array ( 'title' => '', 'count' => 0, 'hierarchical' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) );
 	update_option( 'widget_meta', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) );
-	update_option( 'sidebars_widgets', array ( 'wp_inactive_widgets' => array (), 'sidebar-1' => array ( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2', ), 'array_version' => 3 ) );
-
+	update_option( 'sidebars_widgets', array( 'wp_inactive_widgets' => array(), 'sidebar-1' => array( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2' ), 'sidebar-2' => array(), 'sidebar-3' => array(), 'array_version' => 3 ) );
 	if ( ! is_multisite() )
 		update_user_meta( $user_id, 'show_welcome_panel', 1 );
 	elseif ( ! is_super_admin( $user_id ) && ! metadata_exists( 'user', $user_id, 'show_welcome_panel' ) )
@@ -373,6 +375,7 @@ function wp_new_blog_notification($blog_title, $blog_url, $user_id, $password) {
 	$email = $user->user_email;
 	$name = $user->user_login;
 	$login_url = wp_login_url();
+	/* translators: New site notification email. 1: New site URL, 2: User login, 3: User password or password reset link, 4: Login URL */
 	$message = sprintf( __( "Your new WordPress site has been successfully set up at:
 
 %1\$s
@@ -2283,7 +2286,7 @@ function dbDelta( $queries = '', $execute = true ) {
 					$index_type = str_replace( 'INDEX', 'KEY', $index_type );
 
 					// Escape the index name with backticks. An index for a primary key has no name.
-					$index_name = ( 'PRIMARY KEY' === $index_type ) ? '' : '`' . $index_matches['index_name'] . '`';
+					$index_name = ( 'PRIMARY KEY' === $index_type ) ? '' : '`' . strtolower( $index_matches['index_name'] ) . '`';
 
 					// Parse the columns. Multiple columns are separated by a comma.
 					$index_columns = array_map( 'trim', explode( ',', $index_matches['index_columns'] ) );
@@ -2407,7 +2410,7 @@ function dbDelta( $queries = '', $execute = true ) {
 			foreach ($tableindices as $tableindex) {
 
 				// Add the index to the index data array.
-				$keyname = $tableindex->Key_name;
+				$keyname = strtolower( $tableindex->Key_name );
 				$index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part);
 				$index_ary[$keyname]['unique'] = ($tableindex->Non_unique == 0)?true:false;
 				$index_ary[$keyname]['index_type'] = $tableindex->Index_type;
@@ -2418,7 +2421,7 @@ function dbDelta( $queries = '', $execute = true ) {
 
 				// Build a create string to compare to the query.
 				$index_string = '';
-				if ($index_name == 'PRIMARY') {
+				if ($index_name == 'primary') {
 					$index_string .= 'PRIMARY ';
 				} elseif ( $index_data['unique'] ) {
 					$index_string .= 'UNIQUE ';
@@ -2430,7 +2433,7 @@ function dbDelta( $queries = '', $execute = true ) {
 					$index_string .= 'SPATIAL ';
 				}
 				$index_string .= 'KEY ';
-				if ( 'PRIMARY' !== $index_name  ) {
+				if ( 'primary' !== $index_name  ) {
 					$index_string .= '`' . $index_name . '`';
 				}
 				$index_columns = '';
@@ -2821,7 +2824,7 @@ function pre_schema_upgrade() {
 	// Multisite schema upgrades.
 	if ( $wp_current_db_version < 25448 && is_multisite() && wp_should_upgrade_global_tables() ) {
 
-		// Upgrade verions prior to 3.7
+		// Upgrade versions prior to 3.7
 		if ( $wp_current_db_version < 25179 ) {
 			// New primary key for signups.
 			$wpdb->query( "ALTER TABLE $wpdb->signups ADD signup_id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST" );
diff --git a/wp-admin/includes/user.php b/wp-admin/includes/user.php
index f6c52dd95..d962717a0 100644
--- a/wp-admin/includes/user.php
+++ b/wp-admin/includes/user.php
@@ -94,6 +94,20 @@ function edit_user( $user_id = 0 ) {
 		$user->rich_editing = isset( $_POST['rich_editing'] ) && 'false' == $_POST['rich_editing'] ? 'false' : 'true';
 		$user->admin_color = isset( $_POST['admin_color'] ) ? sanitize_text_field( $_POST['admin_color'] ) : 'fresh';
 		$user->show_admin_bar_front = isset( $_POST['admin_bar_front'] ) ? 'true' : 'false';
+		$user->locale = '';
+
+		if ( isset( $_POST['locale'] ) ) {
+			$locale = sanitize_text_field( $_POST['locale'] );
+			if ( 'site-default' === $locale ) {
+				$locale = '';
+			} elseif ( '' === $locale ) {
+				$locale = 'en_US';
+			} elseif ( ! in_array( $locale, get_available_languages(), true ) ) {
+				$locale = '';
+			}
+
+			$user->locale = $locale;
+		}
 	}
 
 	$user->comment_shortcuts = isset( $_POST['comment_shortcuts'] ) && 'true' == $_POST['comment_shortcuts'] ? 'true' : '';
@@ -171,7 +185,7 @@ function edit_user( $user_id = 0 ) {
 	 *
 	 * @param WP_Error &$errors WP_Error object, passed by reference.
 	 * @param bool     $update  Whether this is a user update.
-	 * @param WP_User  &$user   WP_User object, passed by reference.
+	 * @param stdClass &$user   User object, passed by reference.
 	 */
 	do_action_ref_array( 'user_profile_update_errors', array( &$errors, $update, &$user ) );
 
diff --git a/wp-admin/includes/widgets.php b/wp-admin/includes/widgets.php
index 746a89279..fe2a957fa 100644
--- a/wp-admin/includes/widgets.php
+++ b/wp-admin/includes/widgets.php
@@ -254,7 +254,7 @@ function wp_widget_control( $sidebar_args ) {
 		<a class="widget-control-close" href="#close"><?php _e('Close'); ?></a>
 		</div>
 		<div class="alignright<?php if ( 'noform' === $has_form ) echo ' widget-control-noform'; ?>">
-			<?php submit_button( __( 'Save' ), 'button-primary widget-control-save right', 'savewidget', false, array( 'id' => 'widget-' . esc_attr( $id_format ) . '-savewidget' ) ); ?>
+			<?php submit_button( __( 'Save' ), 'primary widget-control-save right', 'savewidget', false, array( 'id' => 'widget-' . esc_attr( $id_format ) . '-savewidget' ) ); ?>
 			<span class="spinner"></span>
 		</div>
 		<br class="clear" />
@@ -278,4 +278,4 @@ function wp_widget_control( $sidebar_args ) {
  */
 function wp_widgets_access_body_class($classes) {
 	return "$classes widgets_access ";
-}
\ No newline at end of file
+}
diff --git a/wp-admin/index.php b/wp-admin/index.php
index 86bed0adf..d2d7ec889 100644
--- a/wp-admin/index.php
+++ b/wp-admin/index.php
@@ -33,7 +33,6 @@ $parent_file = 'index.php';
 
 $help = '<p>' . __( 'Welcome to your WordPress Dashboard! This is the screen you will see when you log in to your site, and gives you access to all the site management features of WordPress. You can get help for any screen by clicking the Help tab above the screen title.' ) . '</p>';
 
-// Not using chaining here, so as to be parseable by PHP4.
 $screen = get_current_screen();
 
 $screen->add_help_tab( array(
@@ -95,8 +94,8 @@ unset( $help );
 
 $screen->set_help_sidebar(
 	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Dashboard_Screen" target="_blank">Documentation on Dashboard</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Dashboard_Screen">Documentation on Dashboard</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/install.php b/wp-admin/install.php
index 240398204..ed9d06d19 100644
--- a/wp-admin/install.php
+++ b/wp-admin/install.php
@@ -141,7 +141,7 @@ function display_setup_form( $error = null ) {
 				<div class="">
 					<?php $initial_password = isset( $_POST['admin_password'] ) ? stripslashes( $_POST['admin_password'] ) : wp_generate_password( 18 ); ?>
 					<input type="password" name="admin_password" id="pass1" class="regular-text" autocomplete="off" data-reveal="1" data-pw="<?php echo esc_attr( $initial_password ); ?>" aria-describedby="pass-strength-result" />
-					<button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-start-masked="<?php echo (int) isset( $_POST['admin_password'] ); ?>" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
+					<button type="button" class="button wp-hide-pw hide-if-no-js" data-start-masked="<?php echo (int) isset( $_POST['admin_password'] ); ?>" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
 						<span class="dashicons dashicons-hidden"></span>
 						<span class="text"><?php _e( 'Hide' ); ?></span>
 					</button>
@@ -232,12 +232,16 @@ $mysql_version  = $wpdb->db_version();
 $php_compat     = version_compare( $php_version, $required_php_version, '>=' );
 $mysql_compat   = version_compare( $mysql_version, $required_mysql_version, '>=' ) || file_exists( WP_CONTENT_DIR . '/db.php' );
 
-if ( !$mysql_compat && !$php_compat )
+if ( !$mysql_compat && !$php_compat ) {
+	/* translators: 1: WordPress version number, 2: Minimum required PHP version number, 3: Minimum required MySQL version number, 4: Current PHP version number, 5: Current MySQL version number */
 	$compat = sprintf( __( 'You cannot install because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s.' ), $wp_version, $required_php_version, $required_mysql_version, $php_version, $mysql_version );
-elseif ( !$php_compat )
+} elseif ( !$php_compat ) {
+	/* translators: 1: WordPress version number, 2: Minimum required PHP version number, 3: Current PHP version number */
 	$compat = sprintf( __( 'You cannot install because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires PHP version %2$s or higher. You are running version %3$s.' ), $wp_version, $required_php_version, $php_version );
-elseif ( !$mysql_compat )
+} elseif ( !$mysql_compat ) {
+	/* translators: 1: WordPress version number, 2: Minimum required MySQL version number, 3: Current MySQL version number */
 	$compat = sprintf( __( 'You cannot install because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running version %3$s.' ), $wp_version, $required_mysql_version, $mysql_version );
+}
 
 if ( !$mysql_compat || !$php_compat ) {
 	display_header();
@@ -330,7 +334,6 @@ switch($step) {
 
 		$scripts_to_print[] = 'user-profile';
 
-		display_header();
 		// Fill in the data we gathered
 		$weblog_title = isset( $_POST['weblog_title'] ) ? trim( wp_unslash( $_POST['weblog_title'] ) ) : '';
 		$user_name = isset($_POST['user_name']) ? trim( wp_unslash( $_POST['user_name'] ) ) : '';
@@ -343,21 +346,26 @@ switch($step) {
 		$error = false;
 		if ( empty( $user_name ) ) {
 			// TODO: poka-yoke
+			display_header();
 			display_setup_form( __( 'Please provide a valid username.' ) );
 			$error = true;
 		} elseif ( $user_name != sanitize_user( $user_name, true ) ) {
+			display_header();
 			display_setup_form( __( 'The username you provided has invalid characters.' ) );
 			$error = true;
 		} elseif ( $admin_password != $admin_password_check ) {
 			// TODO: poka-yoke
+			display_header();
 			display_setup_form( __( 'Your passwords do not match. Please try again.' ) );
 			$error = true;
 		} elseif ( empty( $admin_email ) ) {
 			// TODO: poka-yoke
+			display_header();
 			display_setup_form( __( 'You must provide an email address.' ) );
 			$error = true;
 		} elseif ( ! is_email( $admin_email ) ) {
 			// TODO: poka-yoke
+			display_header();
 			display_setup_form( __( 'Sorry, that isn&#8217;t a valid email address. Email addresses look like <code>username@example.com</code>.' ) );
 			$error = true;
 		}
@@ -365,6 +373,16 @@ switch($step) {
 		if ( $error === false ) {
 			$wpdb->show_errors();
 			$result = wp_install( $weblog_title, $user_name, $admin_email, $public, '', wp_slash( $admin_password ), $loaded_language );
+
+			// Log the user in and send them to wp-admin:
+			if ( ! headers_sent() ) {
+				wp_set_auth_cookie( $result['user_id'], true, is_ssl() );
+				wp_redirect( admin_url() );
+				exit;
+			}
+
+			// If headers have already been sent, fall back to a "Success!" message:
+			display_header();
 ?>
 
 <h1><?php _e( 'Success!' ); ?></h1>
diff --git a/wp-admin/js/bookmarklet.min.js b/wp-admin/js/bookmarklet.min.js
index 089a84951..153180699 100644
--- a/wp-admin/js/bookmarklet.min.js
+++ b/wp-admin/js/bookmarklet.min.js
@@ -1 +1 @@
-(function(a,b,c,d){function e(a,c){if("undefined"!=typeof c){var d=b.createElement("input");d.name=a,d.value=c,d.type="hidden",p.appendChild(d)}}var f,g,h,i,j,k,l,m,n,o=a.encodeURIComponent,p=b.createElement("form"),q=b.getElementsByTagName("head")[0],r="_press_this_app",s=!0;if(d){if(!c.match(/^https?:/))return void(top.location.href=d);if(d+="&u="+o(c),c.match(/^https:/)&&d.match(/^http:/)&&(s=!1),a.getSelection?h=a.getSelection()+"":b.getSelection?h=b.getSelection()+"":b.selection&&(h=b.selection.createRange().text||""),d+="&buster="+(new Date).getTime(),s||(b.title&&(d+="&t="+o(b.title.substr(0,256))),h&&(d+="&s="+o(h.substr(0,512)))),f=a.outerWidth||b.documentElement.clientWidth||600,g=a.outerHeight||b.documentElement.clientHeight||700,f=800>f||f>5e3?600:.7*f,g=800>g||g>3e3?700:.9*g,!s)return void a.open(d,r,"location,resizable,scrollbars,width="+f+",height="+g);i=q.getElementsByTagName("meta")||[];for(var t=0;t<i.length&&!(t>200);t++){var u=i[t],v=u.getAttribute("name"),w=u.getAttribute("property"),x=u.getAttribute("content");x&&(v?e("_meta["+v+"]",x):w&&e("_meta["+w+"]",x))}j=q.getElementsByTagName("link")||[];for(var y=0;y<j.length&&!(y>=50);y++){var z=j[y],A=z.getAttribute("rel");"canonical"!==A&&"icon"!==A&&"shortlink"!==A||e("_links["+A+"]",z.getAttribute("href"))}b.body.getElementsByClassName&&(k=b.body.getElementsByClassName("hfeed")[0]),k=b.getElementById("content")||k||b.body,l=k.getElementsByTagName("img")||[];for(var B=0;B<l.length&&!(B>=100);B++)n=l[B],n.src.indexOf("avatar")>-1||n.className.indexOf("avatar")>-1||n.width&&n.width<256||n.height&&n.height<128||e("_images[]",n.src);m=b.body.getElementsByTagName("iframe")||[];for(var C=0;C<m.length&&!(C>=50);C++)e("_embeds[]",m[C].src);b.title&&e("t",b.title),h&&e("s",h),p.setAttribute("method","POST"),p.setAttribute("action",d),p.setAttribute("target",r),p.setAttribute("style","display: none;"),a.open("about:blank",r,"location,resizable,scrollbars,width="+f+",height="+g),b.body.appendChild(p),p.submit()}})(window,document,top.location.href,window.pt_url);
\ No newline at end of file
+(function(a,b,c,d){function e(a,c){if("undefined"!=typeof c){var d=b.createElement("input");d.name=a,d.value=c,d.type="hidden",p.appendChild(d)}}var f,g,h,i,j,k,l,m,n,o=a.encodeURIComponent,p=b.createElement("form"),q=b.getElementsByTagName("head")[0],r="_press_this_app",s=!0;if(d){if(!c.match(/^https?:/))return void(top.location.href=d);if(d+="&u="+o(c),c.match(/^https:/)&&d.match(/^http:/)&&(s=!1),a.getSelection?h=a.getSelection()+"":b.getSelection?h=b.getSelection()+"":b.selection&&(h=b.selection.createRange().text||""),d+="&buster="+(new Date).getTime(),s||(b.title&&(d+="&t="+o(b.title.substr(0,256))),h&&(d+="&s="+o(h.substr(0,512)))),f=a.outerWidth||b.documentElement.clientWidth||600,g=a.outerHeight||b.documentElement.clientHeight||700,f=f<800||f>5e3?600:.7*f,g=g<800||g>3e3?700:.9*g,!s)return void a.open(d,r,"location,resizable,scrollbars,width="+f+",height="+g);i=q.getElementsByTagName("meta")||[];for(var t=0;t<i.length&&!(t>200);t++){var u=i[t],v=u.getAttribute("name"),w=u.getAttribute("property"),x=u.getAttribute("content");x&&(v?e("_meta["+v+"]",x):w&&e("_meta["+w+"]",x))}j=q.getElementsByTagName("link")||[];for(var y=0;y<j.length&&!(y>=50);y++){var z=j[y],A=z.getAttribute("rel");"canonical"!==A&&"icon"!==A&&"shortlink"!==A||e("_links["+A+"]",z.getAttribute("href"))}b.body.getElementsByClassName&&(k=b.body.getElementsByClassName("hfeed")[0]),k=b.getElementById("content")||k||b.body,l=k.getElementsByTagName("img")||[];for(var B=0;B<l.length&&!(B>=100);B++)n=l[B],n.src.indexOf("avatar")>-1||n.className.indexOf("avatar")>-1||n.width&&n.width<256||n.height&&n.height<128||e("_images[]",n.src);m=b.body.getElementsByTagName("iframe")||[];for(var C=0;C<m.length&&!(C>=50);C++)e("_embeds[]",m[C].src);b.title&&e("t",b.title),h&&e("s",h),p.setAttribute("method","POST"),p.setAttribute("action",d),p.setAttribute("target",r),p.setAttribute("style","display: none;"),a.open("about:blank",r,"location,resizable,scrollbars,width="+f+",height="+g),b.body.appendChild(p),p.submit()}})(window,document,top.location.href,window.pt_url);
\ No newline at end of file
diff --git a/wp-admin/js/color-picker.js b/wp-admin/js/color-picker.js
index 96f55daed..807ff2a14 100644
--- a/wp-admin/js/color-picker.js
+++ b/wp-admin/js/color-picker.js
@@ -17,7 +17,33 @@
 			hide: true,
 			palettes: true,
 			width: 255,
-			mode: 'hsv'
+			mode: 'hsv',
+			type: 'full',
+			slider: 'horizontal'
+		},
+		_createHueOnly: function() {
+			var self = this,
+				el = self.element,
+				color;
+
+			// hide input
+			el.hide();
+			// max saturated color for hue to be obvious
+			color = 'hsl(' + el.val() + ', 100, 50)';
+
+			el.iris( {
+				mode: 'hsl',
+				type: 'hue',
+				hide: false,
+				color: color,
+				change: function( event, ui ) {
+					if ( $.isFunction( self.options.change ) ) {
+						self.options.change.call( this, event, ui );
+					}
+				},
+				width: self.options.width,
+				slider: self.options.slider
+			} );
 		},
 		_create: function() {
 			// bail early for unsupported Iris.
@@ -30,6 +56,11 @@
 
 			$.extend( self.options, el.data() );
 
+			// hue-only gets created differently
+			if ( self.options.type === 'hue' ) {
+				return self._createHueOnly();
+			}
+
 			// keep close bound so it can be attached to a body listener
 			self.close = $.proxy( self.close, self );
 
@@ -141,7 +172,6 @@
 			if ( newColor === undef ) {
 				return this.element.iris( 'option', 'color' );
 			}
-
 			this.element.iris( 'option', 'color', newColor );
 		},
 		//$("#input").wpColorPicker('defaultColor') returns the current default color
diff --git a/wp-admin/js/color-picker.min.js b/wp-admin/js/color-picker.min.js
index 7c6e1d1cd..7b6591ded 100644
--- a/wp-admin/js/color-picker.min.js
+++ b/wp-admin/js/color-picker.min.js
@@ -1 +1 @@
-!function(a,b){var c,d='<a tabindex="0" class="wp-color-result" />',e='<div class="wp-picker-holder" />',f='<div class="wp-picker-container" />',g='<input type="button" class="button button-small hidden" />';c={options:{defaultColor:!1,change:!1,clear:!1,hide:!0,palettes:!0,width:255,mode:"hsv"},_create:function(){if(a.support.iris){var b=this,c=b.element;a.extend(b.options,c.data()),b.close=a.proxy(b.close,b),b.initialValue=c.val(),c.addClass("wp-color-picker").hide().wrap(f),b.wrap=c.parent(),b.toggler=a(d).insertBefore(c).css({backgroundColor:b.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current),b.pickerContainer=a(e).insertAfter(c),b.button=a(g),b.options.defaultColor?b.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString):b.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear),c.wrap('<span class="wp-picker-input-wrap" />').after(b.button),c.iris({target:b.pickerContainer,hide:b.options.hide,width:b.options.width,mode:b.options.mode,palettes:b.options.palettes,change:function(c,d){b.toggler.css({backgroundColor:d.color.toString()}),a.isFunction(b.options.change)&&b.options.change.call(this,c,d)}}),c.val(b.initialValue),b._addListeners(),b.options.hide||b.toggler.click()}},_addListeners:function(){var b=this;b.wrap.on("click.wpcolorpicker",function(a){a.stopPropagation()}),b.toggler.click(function(){b.toggler.hasClass("wp-picker-open")?b.close():b.open()}),b.element.change(function(c){var d=a(this),e=d.val();""!==e&&"#"!==e||(b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c))}),b.toggler.on("keyup",function(a){13!==a.keyCode&&32!==a.keyCode||(a.preventDefault(),b.toggler.trigger("click").next().focus())}),b.button.click(function(c){var d=a(this);d.hasClass("wp-picker-clear")?(b.element.val(""),b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c)):d.hasClass("wp-picker-default")&&b.element.val(b.options.defaultColor).change()})},open:function(){this.element.show().iris("toggle").focus(),this.button.removeClass("hidden"),this.wrap.addClass("wp-picker-active"),this.toggler.addClass("wp-picker-open"),a("body").trigger("click.wpcolorpicker").on("click.wpcolorpicker",this.close)},close:function(){this.element.hide().iris("toggle"),this.button.addClass("hidden"),this.wrap.removeClass("wp-picker-active"),this.toggler.removeClass("wp-picker-open"),a("body").off("click.wpcolorpicker",this.close)},color:function(a){return a===b?this.element.iris("option","color"):void this.element.iris("option","color",a)},defaultColor:function(a){return a===b?this.options.defaultColor:void(this.options.defaultColor=a)}},a.widget("wp.wpColorPicker",c)}(jQuery);
\ No newline at end of file
+!function(a,b){var c,d='<a tabindex="0" class="wp-color-result" />',e='<div class="wp-picker-holder" />',f='<div class="wp-picker-container" />',g='<input type="button" class="button button-small hidden" />';c={options:{defaultColor:!1,change:!1,clear:!1,hide:!0,palettes:!0,width:255,mode:"hsv",type:"full",slider:"horizontal"},_createHueOnly:function(){var b,c=this,d=c.element;d.hide(),b="hsl("+d.val()+", 100, 50)",d.iris({mode:"hsl",type:"hue",hide:!1,color:b,change:function(b,d){a.isFunction(c.options.change)&&c.options.change.call(this,b,d)},width:c.options.width,slider:c.options.slider})},_create:function(){if(a.support.iris){var b=this,c=b.element;if(a.extend(b.options,c.data()),"hue"===b.options.type)return b._createHueOnly();b.close=a.proxy(b.close,b),b.initialValue=c.val(),c.addClass("wp-color-picker").hide().wrap(f),b.wrap=c.parent(),b.toggler=a(d).insertBefore(c).css({backgroundColor:b.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current),b.pickerContainer=a(e).insertAfter(c),b.button=a(g),b.options.defaultColor?b.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString):b.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear),c.wrap('<span class="wp-picker-input-wrap" />').after(b.button),c.iris({target:b.pickerContainer,hide:b.options.hide,width:b.options.width,mode:b.options.mode,palettes:b.options.palettes,change:function(c,d){b.toggler.css({backgroundColor:d.color.toString()}),a.isFunction(b.options.change)&&b.options.change.call(this,c,d)}}),c.val(b.initialValue),b._addListeners(),b.options.hide||b.toggler.click()}},_addListeners:function(){var b=this;b.wrap.on("click.wpcolorpicker",function(a){a.stopPropagation()}),b.toggler.click(function(){b.toggler.hasClass("wp-picker-open")?b.close():b.open()}),b.element.change(function(c){var d=a(this),e=d.val();""!==e&&"#"!==e||(b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c))}),b.toggler.on("keyup",function(a){13!==a.keyCode&&32!==a.keyCode||(a.preventDefault(),b.toggler.trigger("click").next().focus())}),b.button.click(function(c){var d=a(this);d.hasClass("wp-picker-clear")?(b.element.val(""),b.toggler.css("backgroundColor",""),a.isFunction(b.options.clear)&&b.options.clear.call(this,c)):d.hasClass("wp-picker-default")&&b.element.val(b.options.defaultColor).change()})},open:function(){this.element.show().iris("toggle").focus(),this.button.removeClass("hidden"),this.wrap.addClass("wp-picker-active"),this.toggler.addClass("wp-picker-open"),a("body").trigger("click.wpcolorpicker").on("click.wpcolorpicker",this.close)},close:function(){this.element.hide().iris("toggle"),this.button.addClass("hidden"),this.wrap.removeClass("wp-picker-active"),this.toggler.removeClass("wp-picker-open"),a("body").off("click.wpcolorpicker",this.close)},color:function(a){return a===b?this.element.iris("option","color"):void this.element.iris("option","color",a)},defaultColor:function(a){return a===b?this.options.defaultColor:void(this.options.defaultColor=a)}},a.widget("wp.wpColorPicker",c)}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/common.js b/wp-admin/js/common.js
index 200d3e478..867f11199 100644
--- a/wp-admin/js/common.js
+++ b/wp-admin/js/common.js
@@ -196,13 +196,15 @@ $document.ready( function() {
 		pinnedMenuTop = false,
 		pinnedMenuBottom = false,
 		menuTop = 0,
+		menuState,
 		menuIsPinned = false,
 		height = {
 			window: $window.height(),
 			wpwrap: $wpwrap.height(),
 			adminbar: $adminbar.height(),
 			menu: $adminMenuWrap.height()
-		};
+		},
+		$headerEnd = $( '.wp-header-end' );
 
 
 	// when the menu is folded, make the fly-out submenu header clickable
@@ -210,59 +212,43 @@ $document.ready( function() {
 		$(e.target).parent().siblings('a').get(0).click();
 	});
 
-	$('#collapse-menu').on('click.collapse-menu', function() {
-		var respWidth, state;
+	$( '#collapse-button' ).on( 'click.collapse-menu', function() {
+		var viewportWidth = getViewportWidth() || 961;
 
 		// reset any compensation for submenus near the bottom of the screen
 		$('#adminmenu div.wp-submenu').css('margin-top', '');
 
-		if ( window.innerWidth ) {
-			// window.innerWidth is affected by zooming on phones
-			respWidth = Math.max( window.innerWidth, document.documentElement.clientWidth );
-		} else {
-			// IE < 9 doesn't support @media CSS rules
-			respWidth = 961;
-		}
-
-		if ( respWidth && respWidth < 960 ) {
+		if ( viewportWidth < 960 ) {
 			if ( $body.hasClass('auto-fold') ) {
 				$body.removeClass('auto-fold').removeClass('folded');
 				setUserSetting('unfold', 1);
 				setUserSetting('mfold', 'o');
-				state = 'open';
+				menuState = 'open';
 			} else {
 				$body.addClass('auto-fold');
 				setUserSetting('unfold', 0);
-				state = 'folded';
+				menuState = 'folded';
 			}
 		} else {
 			if ( $body.hasClass('folded') ) {
 				$body.removeClass('folded');
 				setUserSetting('mfold', 'o');
-				state = 'open';
+				menuState = 'open';
 			} else {
 				$body.addClass('folded');
 				setUserSetting('mfold', 'f');
-				state = 'folded';
+				menuState = 'folded';
 			}
 		}
 
-		currentMenuItemHasPopup();
-		$document.trigger( 'wp-collapse-menu', { state: state } );
+		$document.trigger( 'wp-collapse-menu', { state: menuState } );
 	});
 
 	// Handle the `aria-haspopup` attribute on the current menu item when it has a sub-menu.
 	function currentMenuItemHasPopup() {
-		var respWidth,
-			$current = $( 'a.wp-has-current-submenu' );
+		var $current = $( 'a.wp-has-current-submenu' );
 
-		if ( window.innerWidth ) {
-			respWidth = Math.max( window.innerWidth, document.documentElement.clientWidth );
-		} else {
-			respWidth = 961;
-		}
-
-		if ( $body.hasClass( 'folded' ) || ( $body.hasClass( 'auto-fold' ) && respWidth && respWidth <= 960 && respWidth > 782 ) ) {
+		if ( 'folded' === menuState ) {
 			// When folded or auto-folded and not responsive view, the current menu item does have a fly-out sub-menu.
 			$current.attr( 'aria-haspopup', 'true' );
 		} else {
@@ -271,7 +257,7 @@ $document.ready( function() {
 		}
 	}
 
-	$document.on( 'wp-window-resized wp-responsive-activate wp-responsive-deactivate', currentMenuItemHasPopup );
+	$document.on( 'wp-menu-state-set wp-collapse-menu wp-responsive-activate wp-responsive-deactivate', currentMenuItemHasPopup );
 
 	/**
 	 * Ensure an admin submenu is within the visual viewport.
@@ -396,8 +382,13 @@ $document.ready( function() {
 	/*
 	 * The `.below-h2` class is here just for backward compatibility with plugins
 	 * that are (incorrectly) using it. Do not use. Use `.inline` instead. See #34570.
+	 * If '.wp-header-end' is found, append the notices after it otherwise
+	 * after the first h1 or h2 heading found within the main content.
 	 */
-	$( 'div.updated, div.error, div.notice' ).not( '.inline, .below-h2' ).insertAfter( $( '.wrap h1, .wrap h2' ).first() );
+	if ( ! $headerEnd.length ) {
+		$headerEnd = $( '.wrap h1, .wrap h2' ).first();
+	}
+	$( 'div.updated, div.error, div.notice' ).not( '.inline, .below-h2' ).insertAfter( $headerEnd );
 
 	// Make notices dismissible
 	function makeNoticesDismissible() {
@@ -426,10 +417,11 @@ $document.ready( function() {
 	// Init screen meta
 	screenMeta.init();
 
-	// check all checkboxes
-	$('tbody').children().children('.check-column').find(':checkbox').click( function(e) {
-		if ( 'undefined' == e.shiftKey ) { return true; }
-		if ( e.shiftKey ) {
+	// This event needs to be delegated. Ticket #37973.
+	$body.on( 'click', 'tbody .check-column :checkbox', function( event ) {
+		// Shift click to select a range of checkboxes.
+		if ( 'undefined' == event.shiftKey ) { return true; }
+		if ( event.shiftKey ) {
 			if ( !lastClicked ) { return true; }
 			checks = $( lastClicked ).closest( 'form' ).find( ':checkbox' ).filter( ':visible:enabled' );
 			first = checks.index( lastClicked );
@@ -447,7 +439,7 @@ $document.ready( function() {
 		}
 		lastClicked = this;
 
-		// toggle "check all" checkboxes
+		// Toggle the "Select all" checkboxes depending if the other ones are all checked or not.
 		var unchecked = $(this).closest('tbody').find(':checkbox').filter(':visible:enabled').not(':checked');
 		$(this).closest('table').children('thead, tfoot').find(':checkbox').prop('checked', function() {
 			return ( 0 === unchecked.length );
@@ -456,7 +448,8 @@ $document.ready( function() {
 		return true;
 	});
 
-	$('thead, tfoot').find('.check-column :checkbox').on( 'click.wp-toggle-checkboxes', function( event ) {
+	// This event needs to be delegated. Ticket #37973.
+	$body.on( 'click.wp-toggle-checkboxes', 'thead .check-column :checkbox, tfoot .check-column :checkbox', function( event ) {
 		var $this = $(this),
 			$table = $this.closest( 'table' ),
 			controlChecked = $this.prop('checked'),
@@ -828,17 +821,14 @@ $document.ready( function() {
 		},
 
 		trigger: function() {
-			var width;
+			var viewportWidth = getViewportWidth();
 
-			if ( window.innerWidth ) {
-				// window.innerWidth is affected by zooming on phones
-				width = Math.max( window.innerWidth, document.documentElement.clientWidth );
-			} else {
-				// Exclude IE < 9, it doesn't support @media CSS rules
+			// Exclude IE < 9, it doesn't support @media CSS rules.
+			if ( ! viewportWidth ) {
 				return;
 			}
 
-			if ( width <= 782 ) {
+			if ( viewportWidth <= 782 ) {
 				if ( ! wpResponsiveActive ) {
 					$document.trigger( 'wp-responsive-activate' );
 					wpResponsiveActive = true;
@@ -850,7 +840,7 @@ $document.ready( function() {
 				}
 			}
 
-			if ( width <= 480 ) {
+			if ( viewportWidth <= 480 ) {
 				this.enableOverlay();
 			} else {
 				this.disableOverlay();
@@ -904,8 +894,82 @@ $document.ready( function() {
 		aria_button_if_js();
 	});
 
+	/**
+	 * @summary Get the viewport width.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @returns {number|boolean} The current viewport width or false if the
+	 *                           browser doesn't support innerWidth (IE < 9).
+	 */
+	function getViewportWidth() {
+		var viewportWidth = false;
+
+		if ( window.innerWidth ) {
+			// On phones, window.innerWidth is affected by zooming.
+			viewportWidth = Math.max( window.innerWidth, document.documentElement.clientWidth );
+		}
+
+		return viewportWidth;
+	}
+
+	/**
+	 * @summary Set the admin menu collapsed/expanded state.
+	 *
+	 * Sets the global variable `menuState` and triggers a custom event passing
+	 * the current menu state.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @returns {void}
+	 */
+	function setMenuState() {
+		var viewportWidth = getViewportWidth() || 961;
+
+		if ( viewportWidth <= 782  ) {
+			menuState = 'responsive';
+		} else if ( $body.hasClass( 'folded' ) || ( $body.hasClass( 'auto-fold' ) && viewportWidth <= 960 && viewportWidth > 782 ) ) {
+			menuState = 'folded';
+		} else {
+			menuState = 'open';
+		}
+
+		$document.trigger( 'wp-menu-state-set', { state: menuState } );
+	}
+
+	// Set the menu state when the window gets resized.
+	$document.on( 'wp-window-resized.set-menu-state', setMenuState );
+
+	/**
+	 * @summary Set ARIA attributes on the collapse/expand menu button.
+	 *
+	 * When the admin menu is open or folded, updates the `aria-expanded` and
+	 * `aria-label` attributes of the button to give feedback to assistive
+	 * technologies. In the responsive view, the button is always hidden.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @returns {void}
+	 */
+	$document.on( 'wp-menu-state-set wp-collapse-menu', function( event, eventData ) {
+		var $collapseButton = $( '#collapse-button' ),
+			ariaExpanded = 'true',
+			ariaLabelText = commonL10n.collapseMenu;
+
+		if ( 'folded' === eventData.state ) {
+			ariaExpanded = 'false';
+			ariaLabelText = commonL10n.expandMenu;
+		}
+
+		$collapseButton.attr({
+			'aria-expanded': ariaExpanded,
+			'aria-label': ariaLabelText
+		});
+	});
+
 	window.wpResponsive.init();
 	setPinMenu();
+	setMenuState();
 	currentMenuItemHasPopup();
 	makeNoticesDismissible();
 	aria_button_if_js();
diff --git a/wp-admin/js/common.min.js b/wp-admin/js/common.min.js
index c2070ae4d..1ff9e6f19 100644
--- a/wp-admin/js/common.min.js
+++ b/wp-admin/js/common.min.js
@@ -1 +1 @@
-var showNotice,adminMenu,columns,validateForm,screenMeta;!function(a,b,c){var d=a(document),e=a(b),f=a(document.body);adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}},columns={init:function(){var b=this;a(".hide-column-tog","#adv-settings").click(function(){var c=a(this),d=c.val();c.prop("checked")?b.checked(d):b.unchecked(d),columns.saveManageColumnsState()})},saveManageColumnsState:function(){var b=this.hidden();a.post(ajaxurl,{action:"hidden-columns",hidden:b,screenoptionnonce:a("#screenoptionnonce").val(),page:pagenow})},checked:function(b){a(".column-"+b).removeClass("hidden"),this.colSpanChange(1)},unchecked:function(b){a(".column-"+b).addClass("hidden"),this.colSpanChange(-1)},hidden:function(){return a(".manage-column[id]").filter(":hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return a(".hide-column-tog").not(":checked").map(function(){var a=this.id;return a.substring(a,a.length-5)}).get().join(",")}},colSpanChange:function(b){var c,d=a("table").find(".colspanchange");d.length&&(c=parseInt(d.attr("colspan"),10)+b,d.attr("colspan",c.toString()))}},d.ready(function(){columns.init()}),validateForm=function(b){return!a(b).find(".form-required").filter(function(){return""===a("input:visible",this).val()}).addClass("form-invalid").find("input:visible").change(function(){a(this).closest(".form-invalid").removeClass("form-invalid")}).length},showNotice={warn:function(){var a=commonL10n.warnDelete||"";return!!confirm(a)},note:function(a){alert(a)}},screenMeta={element:null,toggles:null,page:null,init:function(){this.element=a("#screen-meta"),this.toggles=a("#screen-meta-links").find(".show-settings"),this.page=a("#wpcontent"),this.toggles.click(this.toggleEvent)},toggleEvent:function(){var b=a("#"+a(this).attr("aria-controls"));b.length&&(b.is(":visible")?screenMeta.close(b,a(this)):screenMeta.open(b,a(this)))},open:function(b,c){a("#screen-meta-links").find(".screen-meta-toggle").not(c.parent()).css("visibility","hidden"),b.parent().show(),b.slideDown("fast",function(){b.focus(),c.addClass("screen-meta-active").attr("aria-expanded",!0)}),d.trigger("screen:options:open")},close:function(b,c){b.slideUp("fast",function(){c.removeClass("screen-meta-active").attr("aria-expanded",!1),a(".screen-meta-toggle").css("visibility",""),b.parent().hide()}),d.trigger("screen:options:close")}},a(".contextual-help-tabs").delegate("a","click",function(b){var c,d=a(this);return b.preventDefault(),!d.is(".active a")&&(a(".contextual-help-tabs .active").removeClass("active"),d.parent("li").addClass("active"),c=a(d.attr("href")),a(".help-tab-content").not(c).removeClass("active").hide(),void c.addClass("active").show())}),d.ready(function(){function c(){var c,d=a("a.wp-has-current-submenu");c=b.innerWidth?Math.max(b.innerWidth,document.documentElement.clientWidth):961,f.hasClass("folded")||f.hasClass("auto-fold")&&c&&c<=960&&c>782?d.attr("aria-haspopup","true"):d.attr("aria-haspopup","false")}function g(a){var b,c,d,f,g,h,i,j=a.find(".wp-submenu");g=a.offset().top,h=e.scrollTop(),i=g-h-30,b=g+j.height()+1,c=C.height(),d=60+b-c,f=e.height()+h-50,f<b-d&&(d=b-f),d>i&&(d=i),d>1?j.css("margin-top","-"+d+"px"):j.css("margin-top","")}function h(){a(".notice.is-dismissible").each(function(){var b=a(this),c=a('<button type="button" class="notice-dismiss"><span class="screen-reader-text"></span></button>'),d=commonL10n.dismiss||"";c.find(".screen-reader-text").text(d),c.on("click.wp-dismiss-notice",function(a){a.preventDefault(),b.fadeTo(100,0,function(){b.slideUp(100,function(){b.remove()})})}),b.append(c)})}function i(a){var b=e.scrollTop(),c=!a||"scroll"!==a.type;if(!(y||A||D.data("wp-responsive"))){if(P.menu+P.adminbar<P.window||P.menu+P.adminbar+20>P.wpwrap)return void k();if(O=!0,P.menu+P.adminbar>P.window){if(b<0)return void(L||(L=!0,M=!1,B.css({position:"fixed",top:"",bottom:""})));if(b+P.window>d.height()-1)return void(M||(M=!0,L=!1,B.css({position:"fixed",top:"",bottom:0})));b>K?L?(L=!1,N=B.offset().top-P.adminbar-(b-K),N+P.menu+P.adminbar<b+P.window&&(N=b+P.window-P.menu-P.adminbar),B.css({position:"absolute",top:N,bottom:""})):!M&&B.offset().top+P.menu<b+P.window&&(M=!0,B.css({position:"fixed",top:"",bottom:0})):b<K?M?(M=!1,N=B.offset().top-P.adminbar+(K-b),N+P.menu>b+P.window&&(N=b),B.css({position:"absolute",top:N,bottom:""})):!L&&B.offset().top>=b+P.adminbar&&(L=!0,B.css({position:"fixed",top:"",bottom:""})):c&&(L=M=!1,N=b+P.window-P.menu-P.adminbar-1,N>0?B.css({position:"absolute",top:N,bottom:""}):k())}K=b}}function j(){P={window:e.height(),wpwrap:C.height(),adminbar:J.height(),menu:B.height()}}function k(){!y&&O&&(L=M=O=!1,B.css({position:"",top:"",bottom:""}))}function l(){j(),D.data("wp-responsive")?(f.removeClass("sticky-menu"),k()):P.menu+P.adminbar>P.window?(i(),f.removeClass("sticky-menu")):(f.addClass("sticky-menu"),k())}function m(){a(".aria-button-if-js").attr("role","button")}var n,o,p,q,r,s,t,u,v=!1,w=a("input.current-page"),x=w.val(),y=/iPhone|iPad|iPod/.test(navigator.userAgent),z=navigator.userAgent.indexOf("Android")!==-1,A=a(document.documentElement).hasClass("ie8"),B=a("#adminmenuwrap"),C=a("#wpwrap"),D=a("#adminmenu"),E=a("#wp-responsive-overlay"),F=a("#wp-toolbar"),G=F.find('a[aria-haspopup="true"]'),H=a(".meta-box-sortables"),I=!1,J=a("#wpadminbar"),K=0,L=!1,M=!1,N=0,O=!1,P={window:e.height(),wpwrap:C.height(),adminbar:J.height(),menu:B.height()};D.on("click.wp-submenu-head",".wp-submenu-head",function(b){a(b.target).parent().siblings("a").get(0).click()}),a("#collapse-menu").on("click.collapse-menu",function(){var e,g;a("#adminmenu div.wp-submenu").css("margin-top",""),e=b.innerWidth?Math.max(b.innerWidth,document.documentElement.clientWidth):961,e&&e<960?f.hasClass("auto-fold")?(f.removeClass("auto-fold").removeClass("folded"),setUserSetting("unfold",1),setUserSetting("mfold","o"),g="open"):(f.addClass("auto-fold"),setUserSetting("unfold",0),g="folded"):f.hasClass("folded")?(f.removeClass("folded"),setUserSetting("mfold","o"),g="open"):(f.addClass("folded"),setUserSetting("mfold","f"),g="folded"),c(),d.trigger("wp-collapse-menu",{state:g})}),d.on("wp-window-resized wp-responsive-activate wp-responsive-deactivate",c),("ontouchstart"in b||/IEMobile\/[1-9]/.test(navigator.userAgent))&&(s=y?"touchstart":"click",f.on(s+".wp-mobile-hover",function(b){D.data("wp-responsive")||a(b.target).closest("#adminmenu").length||D.find("li.opensub").removeClass("opensub")}),D.find("a.wp-has-submenu").on(s+".wp-mobile-hover",function(b){var c=a(this).parent();D.data("wp-responsive")||c.hasClass("opensub")||c.hasClass("wp-menu-open")&&!(c.width()<40)||(b.preventDefault(),g(c),D.find("li.opensub").removeClass("opensub"),c.addClass("opensub"))})),y||z||(D.find("li.wp-has-submenu").hoverIntent({over:function(){var b=a(this),c=b.find(".wp-submenu"),d=parseInt(c.css("top"),10);isNaN(d)||d>-5||D.data("wp-responsive")||(g(b),D.find("li.opensub").removeClass("opensub"),b.addClass("opensub"))},out:function(){D.data("wp-responsive")||a(this).removeClass("opensub").find(".wp-submenu").css("margin-top","")},timeout:200,sensitivity:7,interval:90}),D.on("focus.adminmenu",".wp-submenu a",function(b){D.data("wp-responsive")||a(b.target).closest("li.menu-top").addClass("opensub")}).on("blur.adminmenu",".wp-submenu a",function(b){D.data("wp-responsive")||a(b.target).closest("li.menu-top").removeClass("opensub")}).find("li.wp-has-submenu.wp-not-current-submenu").on("focusin.adminmenu",function(){g(a(this))})),a("div.updated, div.error, div.notice").not(".inline, .below-h2").insertAfter(a(".wrap h1, .wrap h2").first()),d.on("wp-updates-notice-added wp-plugin-install-error wp-plugin-update-error wp-plugin-delete-error wp-theme-install-error wp-theme-delete-error",h),screenMeta.init(),a("tbody").children().children(".check-column").find(":checkbox").click(function(b){if("undefined"==b.shiftKey)return!0;if(b.shiftKey){if(!v)return!0;n=a(v).closest("form").find(":checkbox").filter(":visible:enabled"),o=n.index(v),p=n.index(this),q=a(this).prop("checked"),0<o&&0<p&&o!=p&&(r=p>o?n.slice(o,p):n.slice(p,o),r.prop("checked",function(){return!!a(this).closest("tr").is(":visible")&&q}))}v=this;var c=a(this).closest("tbody").find(":checkbox").filter(":visible:enabled").not(":checked");return a(this).closest("table").children("thead, tfoot").find(":checkbox").prop("checked",function(){return 0===c.length}),!0}),a("thead, tfoot").find(".check-column :checkbox").on("click.wp-toggle-checkboxes",function(b){var c=a(this),d=c.closest("table"),e=c.prop("checked"),f=b.shiftKey||c.data("wp-toggle");d.children("tbody").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return!a(this).is(":hidden,:disabled")&&(f?!a(this).prop("checked"):!!e)}),d.children("thead,  tfoot").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return!f&&!!e})}),a("#wpbody-content").on({focusin:function(){clearTimeout(t),u=a(this).find(".row-actions"),a(".row-actions").not(this).removeClass("visible"),u.addClass("visible")},focusout:function(){t=setTimeout(function(){u.removeClass("visible")},30)}},".has-row-actions"),a("tbody").on("click",".toggle-row",function(){a(this).closest("tr").toggleClass("is-expanded")}),a("#default-password-nag-no").click(function(){return setUserSetting("default_password_nag","hide"),a("div.default-password-nag").hide(),!1}),a("#newcontent").bind("keydown.wpevent_InsertTab",function(b){var c,d,e,f,g,h=b.target;if(27==b.keyCode)return b.preventDefault(),void a(h).data("tab-out",!0);if(!(9!=b.keyCode||b.ctrlKey||b.altKey||b.shiftKey)){if(a(h).data("tab-out"))return void a(h).data("tab-out",!1);c=h.selectionStart,d=h.selectionEnd,e=h.value,document.selection?(h.focus(),g=document.selection.createRange(),g.text="\t"):c>=0&&(f=this.scrollTop,h.value=e.substring(0,c).concat("\t",e.substring(d)),h.selectionStart=h.selectionEnd=c+1,this.scrollTop=f),b.stopPropagation&&b.stopPropagation(),b.preventDefault&&b.preventDefault()}}),w.length&&w.closest("form").submit(function(){a('select[name="action"]').val()==-1&&a('select[name="action2"]').val()==-1&&w.val()==x&&w.val("1")}),a('.search-box input[type="search"], .search-box input[type="submit"]').mousedown(function(){a('select[name^="action"]').val("-1")}),a("#contextual-help-link, #show-settings-link").on("focus.scroll-into-view",function(a){a.target.scrollIntoView&&a.target.scrollIntoView(!1)}),function(){function b(){c.prop("disabled",""===d.map(function(){return a(this).val()}).get().join(""))}var c,d,e=a("form.wp-upload-form");e.length&&(c=e.find('input[type="submit"]'),d=e.find('input[type="file"]'),b(),d.on("change",b))}(),y||(e.on("scroll.pin-menu",i),d.on("tinymce-editor-init.pin-menu",function(a,b){b.on("wp-autoresize",j)})),b.wpResponsive={init:function(){var c=this;d.on("wp-responsive-activate.wp-responsive",function(){c.activate()}).on("wp-responsive-deactivate.wp-responsive",function(){c.deactivate()}),a("#wp-admin-bar-menu-toggle a").attr("aria-expanded","false"),a("#wp-admin-bar-menu-toggle").on("click.wp-responsive",function(b){b.preventDefault(),J.find(".hover").removeClass("hover"),C.toggleClass("wp-responsive-open"),C.hasClass("wp-responsive-open")?(a(this).find("a").attr("aria-expanded","true"),a("#adminmenu a:first").focus()):a(this).find("a").attr("aria-expanded","false")}),D.on("click.wp-responsive","li.wp-has-submenu > a",function(b){D.data("wp-responsive")&&(a(this).parent("li").toggleClass("selected"),b.preventDefault())}),c.trigger(),d.on("wp-window-resized.wp-responsive",a.proxy(this.trigger,this)),e.on("load.wp-responsive",function(){var a=navigator.userAgent.indexOf("AppleWebKit/")>-1?e.width():b.innerWidth;a<=782&&c.disableSortables()})},activate:function(){l(),f.hasClass("auto-fold")||f.addClass("auto-fold"),D.data("wp-responsive",1),this.disableSortables()},deactivate:function(){l(),D.removeData("wp-responsive"),this.enableSortables()},trigger:function(){var a;b.innerWidth&&(a=Math.max(b.innerWidth,document.documentElement.clientWidth),a<=782?I||(d.trigger("wp-responsive-activate"),I=!0):I&&(d.trigger("wp-responsive-deactivate"),I=!1),a<=480?this.enableOverlay():this.disableOverlay())},enableOverlay:function(){0===E.length&&(E=a('<div id="wp-responsive-overlay"></div>').insertAfter("#wpcontent").hide().on("click.wp-responsive",function(){F.find(".menupop.hover").removeClass("hover"),a(this).hide()})),G.on("click.wp-responsive",function(){E.show()})},disableOverlay:function(){G.off("click.wp-responsive"),E.hide()},disableSortables:function(){if(H.length)try{H.sortable("disable")}catch(a){}},enableSortables:function(){if(H.length)try{H.sortable("enable")}catch(a){}}},a(document).ajaxComplete(function(){m()}),b.wpResponsive.init(),l(),c(),h(),m(),d.on("wp-pin-menu wp-window-resized.pin-menu postboxes-columnchange.pin-menu postbox-toggled.pin-menu wp-collapse-menu.pin-menu wp-scroll-start.pin-menu",l),a(".wp-initial-focus").focus()}),function(){function a(){d.trigger("wp-window-resized")}function c(){b.clearTimeout(f),f=b.setTimeout(a,200)}var f;e.on("resize.wp-fire-once",c)}(),function(){if("-ms-user-select"in document.documentElement.style&&navigator.userAgent.match(/IEMobile\/10\.0/)){var a=document.createElement("style");a.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.getElementsByTagName("head")[0].appendChild(a)}}()}(jQuery,window);
\ No newline at end of file
+var showNotice,adminMenu,columns,validateForm,screenMeta;!function(a,b,c){var d=a(document),e=a(b),f=a(document.body);adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}},columns={init:function(){var b=this;a(".hide-column-tog","#adv-settings").click(function(){var c=a(this),d=c.val();c.prop("checked")?b.checked(d):b.unchecked(d),columns.saveManageColumnsState()})},saveManageColumnsState:function(){var b=this.hidden();a.post(ajaxurl,{action:"hidden-columns",hidden:b,screenoptionnonce:a("#screenoptionnonce").val(),page:pagenow})},checked:function(b){a(".column-"+b).removeClass("hidden"),this.colSpanChange(1)},unchecked:function(b){a(".column-"+b).addClass("hidden"),this.colSpanChange(-1)},hidden:function(){return a(".manage-column[id]").filter(":hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return a(".hide-column-tog").not(":checked").map(function(){var a=this.id;return a.substring(a,a.length-5)}).get().join(",")}},colSpanChange:function(b){var c,d=a("table").find(".colspanchange");d.length&&(c=parseInt(d.attr("colspan"),10)+b,d.attr("colspan",c.toString()))}},d.ready(function(){columns.init()}),validateForm=function(b){return!a(b).find(".form-required").filter(function(){return""===a("input:visible",this).val()}).addClass("form-invalid").find("input:visible").change(function(){a(this).closest(".form-invalid").removeClass("form-invalid")}).length},showNotice={warn:function(){var a=commonL10n.warnDelete||"";return!!confirm(a)},note:function(a){alert(a)}},screenMeta={element:null,toggles:null,page:null,init:function(){this.element=a("#screen-meta"),this.toggles=a("#screen-meta-links").find(".show-settings"),this.page=a("#wpcontent"),this.toggles.click(this.toggleEvent)},toggleEvent:function(){var b=a("#"+a(this).attr("aria-controls"));b.length&&(b.is(":visible")?screenMeta.close(b,a(this)):screenMeta.open(b,a(this)))},open:function(b,c){a("#screen-meta-links").find(".screen-meta-toggle").not(c.parent()).css("visibility","hidden"),b.parent().show(),b.slideDown("fast",function(){b.focus(),c.addClass("screen-meta-active").attr("aria-expanded",!0)}),d.trigger("screen:options:open")},close:function(b,c){b.slideUp("fast",function(){c.removeClass("screen-meta-active").attr("aria-expanded",!1),a(".screen-meta-toggle").css("visibility",""),b.parent().hide()}),d.trigger("screen:options:close")}},a(".contextual-help-tabs").delegate("a","click",function(b){var c,d=a(this);return b.preventDefault(),!d.is(".active a")&&(a(".contextual-help-tabs .active").removeClass("active"),d.parent("li").addClass("active"),c=a(d.attr("href")),a(".help-tab-content").not(c).removeClass("active").hide(),void c.addClass("active").show())}),d.ready(function(){function c(){var b=a("a.wp-has-current-submenu");"folded"===x?b.attr("aria-haspopup","true"):b.attr("aria-haspopup","false")}function g(a){var b,c,d,f,g,h,i,j=a.find(".wp-submenu");g=a.offset().top,h=e.scrollTop(),i=g-h-30,b=g+j.height()+1,c=F.height(),d=60+b-c,f=e.height()+h-50,f<b-d&&(d=b-f),d>i&&(d=i),d>1?j.css("margin-top","-"+d+"px"):j.css("margin-top","")}function h(){a(".notice.is-dismissible").each(function(){var b=a(this),c=a('<button type="button" class="notice-dismiss"><span class="screen-reader-text"></span></button>'),d=commonL10n.dismiss||"";c.find(".screen-reader-text").text(d),c.on("click.wp-dismiss-notice",function(a){a.preventDefault(),b.fadeTo(100,0,function(){b.slideUp(100,function(){b.remove()})})}),b.append(c)})}function i(a){var b=e.scrollTop(),c=!a||"scroll"!==a.type;if(!(B||D||G.data("wp-responsive"))){if(S.menu+S.adminbar<S.window||S.menu+S.adminbar+20>S.wpwrap)return void k();if(R=!0,S.menu+S.adminbar>S.window){if(b<0)return void(O||(O=!0,P=!1,E.css({position:"fixed",top:"",bottom:""})));if(b+S.window>d.height()-1)return void(P||(P=!0,O=!1,E.css({position:"fixed",top:"",bottom:0})));b>N?O?(O=!1,Q=E.offset().top-S.adminbar-(b-N),Q+S.menu+S.adminbar<b+S.window&&(Q=b+S.window-S.menu-S.adminbar),E.css({position:"absolute",top:Q,bottom:""})):!P&&E.offset().top+S.menu<b+S.window&&(P=!0,E.css({position:"fixed",top:"",bottom:0})):b<N?P?(P=!1,Q=E.offset().top-S.adminbar+(N-b),Q+S.menu>b+S.window&&(Q=b),E.css({position:"absolute",top:Q,bottom:""})):!O&&E.offset().top>=b+S.adminbar&&(O=!0,E.css({position:"fixed",top:"",bottom:""})):c&&(O=P=!1,Q=b+S.window-S.menu-S.adminbar-1,Q>0?E.css({position:"absolute",top:Q,bottom:""}):k())}N=b}}function j(){S={window:e.height(),wpwrap:F.height(),adminbar:M.height(),menu:E.height()}}function k(){!B&&R&&(O=P=R=!1,E.css({position:"",top:"",bottom:""}))}function l(){j(),G.data("wp-responsive")?(f.removeClass("sticky-menu"),k()):S.menu+S.adminbar>S.window?(i(),f.removeClass("sticky-menu")):(f.addClass("sticky-menu"),k())}function m(){a(".aria-button-if-js").attr("role","button")}function n(){var a=!1;return b.innerWidth&&(a=Math.max(b.innerWidth,document.documentElement.clientWidth)),a}function o(){var a=n()||961;x=a<=782?"responsive":f.hasClass("folded")||f.hasClass("auto-fold")&&a<=960&&a>782?"folded":"open",d.trigger("wp-menu-state-set",{state:x})}var p,q,r,s,t,u,v,w,x,y=!1,z=a("input.current-page"),A=z.val(),B=/iPhone|iPad|iPod/.test(navigator.userAgent),C=navigator.userAgent.indexOf("Android")!==-1,D=a(document.documentElement).hasClass("ie8"),E=a("#adminmenuwrap"),F=a("#wpwrap"),G=a("#adminmenu"),H=a("#wp-responsive-overlay"),I=a("#wp-toolbar"),J=I.find('a[aria-haspopup="true"]'),K=a(".meta-box-sortables"),L=!1,M=a("#wpadminbar"),N=0,O=!1,P=!1,Q=0,R=!1,S={window:e.height(),wpwrap:F.height(),adminbar:M.height(),menu:E.height()},T=a(".wp-header-end");G.on("click.wp-submenu-head",".wp-submenu-head",function(b){a(b.target).parent().siblings("a").get(0).click()}),a("#collapse-button").on("click.collapse-menu",function(){var b=n()||961;a("#adminmenu div.wp-submenu").css("margin-top",""),b<960?f.hasClass("auto-fold")?(f.removeClass("auto-fold").removeClass("folded"),setUserSetting("unfold",1),setUserSetting("mfold","o"),x="open"):(f.addClass("auto-fold"),setUserSetting("unfold",0),x="folded"):f.hasClass("folded")?(f.removeClass("folded"),setUserSetting("mfold","o"),x="open"):(f.addClass("folded"),setUserSetting("mfold","f"),x="folded"),d.trigger("wp-collapse-menu",{state:x})}),d.on("wp-menu-state-set wp-collapse-menu wp-responsive-activate wp-responsive-deactivate",c),("ontouchstart"in b||/IEMobile\/[1-9]/.test(navigator.userAgent))&&(u=B?"touchstart":"click",f.on(u+".wp-mobile-hover",function(b){G.data("wp-responsive")||a(b.target).closest("#adminmenu").length||G.find("li.opensub").removeClass("opensub")}),G.find("a.wp-has-submenu").on(u+".wp-mobile-hover",function(b){var c=a(this).parent();G.data("wp-responsive")||c.hasClass("opensub")||c.hasClass("wp-menu-open")&&!(c.width()<40)||(b.preventDefault(),g(c),G.find("li.opensub").removeClass("opensub"),c.addClass("opensub"))})),B||C||(G.find("li.wp-has-submenu").hoverIntent({over:function(){var b=a(this),c=b.find(".wp-submenu"),d=parseInt(c.css("top"),10);isNaN(d)||d>-5||G.data("wp-responsive")||(g(b),G.find("li.opensub").removeClass("opensub"),b.addClass("opensub"))},out:function(){G.data("wp-responsive")||a(this).removeClass("opensub").find(".wp-submenu").css("margin-top","")},timeout:200,sensitivity:7,interval:90}),G.on("focus.adminmenu",".wp-submenu a",function(b){G.data("wp-responsive")||a(b.target).closest("li.menu-top").addClass("opensub")}).on("blur.adminmenu",".wp-submenu a",function(b){G.data("wp-responsive")||a(b.target).closest("li.menu-top").removeClass("opensub")}).find("li.wp-has-submenu.wp-not-current-submenu").on("focusin.adminmenu",function(){g(a(this))})),T.length||(T=a(".wrap h1, .wrap h2").first()),a("div.updated, div.error, div.notice").not(".inline, .below-h2").insertAfter(T),d.on("wp-updates-notice-added wp-plugin-install-error wp-plugin-update-error wp-plugin-delete-error wp-theme-install-error wp-theme-delete-error",h),screenMeta.init(),f.on("click","tbody .check-column :checkbox",function(b){if("undefined"==b.shiftKey)return!0;if(b.shiftKey){if(!y)return!0;p=a(y).closest("form").find(":checkbox").filter(":visible:enabled"),q=p.index(y),r=p.index(this),s=a(this).prop("checked"),0<q&&0<r&&q!=r&&(t=r>q?p.slice(q,r):p.slice(r,q),t.prop("checked",function(){return!!a(this).closest("tr").is(":visible")&&s}))}y=this;var c=a(this).closest("tbody").find(":checkbox").filter(":visible:enabled").not(":checked");return a(this).closest("table").children("thead, tfoot").find(":checkbox").prop("checked",function(){return 0===c.length}),!0}),f.on("click.wp-toggle-checkboxes","thead .check-column :checkbox, tfoot .check-column :checkbox",function(b){var c=a(this),d=c.closest("table"),e=c.prop("checked"),f=b.shiftKey||c.data("wp-toggle");d.children("tbody").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return!a(this).is(":hidden,:disabled")&&(f?!a(this).prop("checked"):!!e)}),d.children("thead,  tfoot").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){return!f&&!!e})}),a("#wpbody-content").on({focusin:function(){clearTimeout(v),w=a(this).find(".row-actions"),a(".row-actions").not(this).removeClass("visible"),w.addClass("visible")},focusout:function(){v=setTimeout(function(){w.removeClass("visible")},30)}},".has-row-actions"),a("tbody").on("click",".toggle-row",function(){a(this).closest("tr").toggleClass("is-expanded")}),a("#default-password-nag-no").click(function(){return setUserSetting("default_password_nag","hide"),a("div.default-password-nag").hide(),!1}),a("#newcontent").bind("keydown.wpevent_InsertTab",function(b){var c,d,e,f,g,h=b.target;if(27==b.keyCode)return b.preventDefault(),void a(h).data("tab-out",!0);if(!(9!=b.keyCode||b.ctrlKey||b.altKey||b.shiftKey)){if(a(h).data("tab-out"))return void a(h).data("tab-out",!1);c=h.selectionStart,d=h.selectionEnd,e=h.value,document.selection?(h.focus(),g=document.selection.createRange(),g.text="\t"):c>=0&&(f=this.scrollTop,h.value=e.substring(0,c).concat("\t",e.substring(d)),h.selectionStart=h.selectionEnd=c+1,this.scrollTop=f),b.stopPropagation&&b.stopPropagation(),b.preventDefault&&b.preventDefault()}}),z.length&&z.closest("form").submit(function(){a('select[name="action"]').val()==-1&&a('select[name="action2"]').val()==-1&&z.val()==A&&z.val("1")}),a('.search-box input[type="search"], .search-box input[type="submit"]').mousedown(function(){a('select[name^="action"]').val("-1")}),a("#contextual-help-link, #show-settings-link").on("focus.scroll-into-view",function(a){a.target.scrollIntoView&&a.target.scrollIntoView(!1)}),function(){function b(){c.prop("disabled",""===d.map(function(){return a(this).val()}).get().join(""))}var c,d,e=a("form.wp-upload-form");e.length&&(c=e.find('input[type="submit"]'),d=e.find('input[type="file"]'),b(),d.on("change",b))}(),B||(e.on("scroll.pin-menu",i),d.on("tinymce-editor-init.pin-menu",function(a,b){b.on("wp-autoresize",j)})),b.wpResponsive={init:function(){var c=this;d.on("wp-responsive-activate.wp-responsive",function(){c.activate()}).on("wp-responsive-deactivate.wp-responsive",function(){c.deactivate()}),a("#wp-admin-bar-menu-toggle a").attr("aria-expanded","false"),a("#wp-admin-bar-menu-toggle").on("click.wp-responsive",function(b){b.preventDefault(),M.find(".hover").removeClass("hover"),F.toggleClass("wp-responsive-open"),F.hasClass("wp-responsive-open")?(a(this).find("a").attr("aria-expanded","true"),a("#adminmenu a:first").focus()):a(this).find("a").attr("aria-expanded","false")}),G.on("click.wp-responsive","li.wp-has-submenu > a",function(b){G.data("wp-responsive")&&(a(this).parent("li").toggleClass("selected"),b.preventDefault())}),c.trigger(),d.on("wp-window-resized.wp-responsive",a.proxy(this.trigger,this)),e.on("load.wp-responsive",function(){var a=navigator.userAgent.indexOf("AppleWebKit/")>-1?e.width():b.innerWidth;a<=782&&c.disableSortables()})},activate:function(){l(),f.hasClass("auto-fold")||f.addClass("auto-fold"),G.data("wp-responsive",1),this.disableSortables()},deactivate:function(){l(),G.removeData("wp-responsive"),this.enableSortables()},trigger:function(){var a=n();a&&(a<=782?L||(d.trigger("wp-responsive-activate"),L=!0):L&&(d.trigger("wp-responsive-deactivate"),L=!1),a<=480?this.enableOverlay():this.disableOverlay())},enableOverlay:function(){0===H.length&&(H=a('<div id="wp-responsive-overlay"></div>').insertAfter("#wpcontent").hide().on("click.wp-responsive",function(){I.find(".menupop.hover").removeClass("hover"),a(this).hide()})),J.on("click.wp-responsive",function(){H.show()})},disableOverlay:function(){J.off("click.wp-responsive"),H.hide()},disableSortables:function(){if(K.length)try{K.sortable("disable")}catch(a){}},enableSortables:function(){if(K.length)try{K.sortable("enable")}catch(a){}}},a(document).ajaxComplete(function(){m()}),d.on("wp-window-resized.set-menu-state",o),d.on("wp-menu-state-set wp-collapse-menu",function(b,c){var d=a("#collapse-button"),e="true",f=commonL10n.collapseMenu;"folded"===c.state&&(e="false",f=commonL10n.expandMenu),d.attr({"aria-expanded":e,"aria-label":f})}),b.wpResponsive.init(),l(),o(),c(),h(),m(),d.on("wp-pin-menu wp-window-resized.pin-menu postboxes-columnchange.pin-menu postbox-toggled.pin-menu wp-collapse-menu.pin-menu wp-scroll-start.pin-menu",l),a(".wp-initial-focus").focus()}),function(){function a(){d.trigger("wp-window-resized")}function c(){b.clearTimeout(f),f=b.setTimeout(a,200)}var f;e.on("resize.wp-fire-once",c)}(),function(){if("-ms-user-select"in document.documentElement.style&&navigator.userAgent.match(/IEMobile\/10\.0/)){var a=document.createElement("style");a.appendChild(document.createTextNode("@-ms-viewport{width:auto!important}")),document.getElementsByTagName("head")[0].appendChild(a)}}()}(jQuery,window);
\ No newline at end of file
diff --git a/wp-admin/js/custom-background.js b/wp-admin/js/custom-background.js
index 81fd59170..c3f4e294f 100644
--- a/wp-admin/js/custom-background.js
+++ b/wp-admin/js/custom-background.js
@@ -13,12 +13,20 @@
 			}
 		});
 
-		$('input[name="background-position-x"]').change(function() {
-			bgImage.css('background-position', $(this).val() + ' top');
+		$( 'select[name="background-size"]' ).change( function() {
+			bgImage.css( 'background-size', $( this ).val() );
 		});
 
-		$('input[name="background-repeat"]').change(function() {
-			bgImage.css('background-repeat', $(this).val());
+		$( 'input[name="background-position"]' ).change( function() {
+			bgImage.css( 'background-position', $( this ).val() );
+		});
+
+		$( 'input[name="background-repeat"]' ).change( function() {
+			bgImage.css( 'background-repeat', $( this ).is( ':checked' ) ? 'repeat' : 'no-repeat' );
+		});
+
+		$( 'input[name="background-attachment"]' ).change( function() {
+			bgImage.css( 'background-attachment', $( this ).is( ':checked' ) ? 'scroll' : 'fixed' );
 		});
 
 		$('#choose-from-library-link').click( function( event ) {
diff --git a/wp-admin/js/custom-background.min.js b/wp-admin/js/custom-background.min.js
index f53e02cae..5e3038821 100644
--- a/wp-admin/js/custom-background.min.js
+++ b/wp-admin/js/custom-background.min.js
@@ -1 +1 @@
-!function(a){a(document).ready(function(){var b,c=a("#custom-background-image");a("#background-color").wpColorPicker({change:function(a,b){c.css("background-color",b.color.toString())},clear:function(){c.css("background-color","")}}),a('input[name="background-position-x"]').change(function(){c.css("background-position",a(this).val()+" top")}),a('input[name="background-repeat"]').change(function(){c.css("background-repeat",a(this).val())}),a("#choose-from-library-link").click(function(c){var d=a(this);return c.preventDefault(),b?void b.open():(b=wp.media.frames.customBackground=wp.media({title:d.data("choose"),library:{type:"image"},button:{text:d.data("update"),close:!1}}),b.on("select",function(){var c=b.state().get("selection").first();a.post(ajaxurl,{action:"set-background-image",attachment_id:c.id,size:"full"}).done(function(){window.location.reload()})}),void b.open())})})}(jQuery);
\ No newline at end of file
+!function(a){a(document).ready(function(){var b,c=a("#custom-background-image");a("#background-color").wpColorPicker({change:function(a,b){c.css("background-color",b.color.toString())},clear:function(){c.css("background-color","")}}),a('select[name="background-size"]').change(function(){c.css("background-size",a(this).val())}),a('input[name="background-position"]').change(function(){c.css("background-position",a(this).val())}),a('input[name="background-repeat"]').change(function(){c.css("background-repeat",a(this).is(":checked")?"repeat":"no-repeat")}),a('input[name="background-attachment"]').change(function(){c.css("background-attachment",a(this).is(":checked")?"scroll":"fixed")}),a("#choose-from-library-link").click(function(c){var d=a(this);return c.preventDefault(),b?void b.open():(b=wp.media.frames.customBackground=wp.media({title:d.data("choose"),library:{type:"image"},button:{text:d.data("update"),close:!1}}),b.on("select",function(){var c=b.state().get("selection").first();a.post(ajaxurl,{action:"set-background-image",attachment_id:c.id,size:"full"}).done(function(){window.location.reload()})}),void b.open())})})}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/customize-controls.js b/wp-admin/js/customize-controls.js
index 8fa7bb09e..65f5584e8 100644
--- a/wp-admin/js/customize-controls.js
+++ b/wp-admin/js/customize-controls.js
@@ -1,6 +1,6 @@
 /* global _wpCustomizeHeader, _wpCustomizeBackground, _wpMediaViewsL10n, MediaElementPlayer */
 (function( exports, $ ){
-	var Container, focus, api = wp.customize;
+	var Container, focus, normalizedTransitionendEventName, api = wp.customize;
 
 	/**
 	 * A Customizer Setting.
@@ -22,26 +22,45 @@
 	 */
 	api.Setting = api.Value.extend({
 		initialize: function( id, value, options ) {
-			api.Value.prototype.initialize.call( this, value, options );
+			var setting = this;
+			api.Value.prototype.initialize.call( setting, value, options );
 
-			this.id = id;
-			this.transport = this.transport || 'refresh';
-			this._dirty = options.dirty || false;
-			this.notifications = new api.Values({ defaultConstructor: api.Notification });
+			setting.id = id;
+			setting.transport = setting.transport || 'refresh';
+			setting._dirty = options.dirty || false;
+			setting.notifications = new api.Values({ defaultConstructor: api.Notification });
 
 			// Whenever the setting's value changes, refresh the preview.
-			this.bind( this.preview );
+			setting.bind( setting.preview );
 		},
 
 		/**
 		 * Refresh the preview, respective of the setting's refresh policy.
+		 *
+		 * If the preview hasn't sent a keep-alive message and is likely
+		 * disconnected by having navigated to a non-allowed URL, then the
+		 * refresh transport will be forced when postMessage is the transport.
+		 * Note that postMessage does not throw an error when the recipient window
+		 * fails to match the origin window, so using try/catch around the
+		 * previewer.send() call to then fallback to refresh will not work.
+		 *
+		 * @since 3.4.0
+		 * @access public
+		 *
+		 * @returns {void}
 		 */
 		preview: function() {
-			switch ( this.transport ) {
-				case 'refresh':
-					return this.previewer.refresh();
-				case 'postMessage':
-					return this.previewer.send( 'setting', [ this.id, this() ] );
+			var setting = this, transport;
+			transport = setting.transport;
+
+			if ( 'postMessage' === transport && ! api.state( 'previewerAlive' ).get() ) {
+				transport = 'refresh';
+			}
+
+			if ( 'postMessage' === transport ) {
+				setting.previewer.send( 'setting', [ setting.id, setting() ] );
+			} else if ( 'refresh' === transport ) {
+				setting.previewer.refresh();
 			}
 		},
 
@@ -65,9 +84,172 @@
 	});
 
 	/**
-	 * Utility function namespace
+	 * Current change count.
+	 *
+	 * @since 4.7.0
+	 * @type {number}
+	 * @protected
+	 */
+	api._latestRevision = 0;
+
+	/**
+	 * Last revision that was saved.
+	 *
+	 * @since 4.7.0
+	 * @type {number}
+	 * @protected
+	 */
+	api._lastSavedRevision = 0;
+
+	/**
+	 * Latest revisions associated with the updated setting.
+	 *
+	 * @since 4.7.0
+	 * @type {object}
+	 * @protected
+	 */
+	api._latestSettingRevisions = {};
+
+	/*
+	 * Keep track of the revision associated with each updated setting so that
+	 * requestChangesetUpdate knows which dirty settings to include. Also, once
+	 * ready is triggered and all initial settings have been added, increment
+	 * revision for each newly-created initially-dirty setting so that it will
+	 * also be included in changeset update requests.
+	 */
+	api.bind( 'change', function incrementChangedSettingRevision( setting ) {
+		api._latestRevision += 1;
+		api._latestSettingRevisions[ setting.id ] = api._latestRevision;
+	} );
+	api.bind( 'ready', function() {
+		api.bind( 'add', function incrementCreatedSettingRevision( setting ) {
+			if ( setting._dirty ) {
+				api._latestRevision += 1;
+				api._latestSettingRevisions[ setting.id ] = api._latestRevision;
+			}
+		} );
+	} );
+
+	/**
+	 * Get the dirty setting values.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param {object} [options] Options.
+	 * @param {boolean} [options.unsaved=false] Whether only values not saved yet into a changeset will be returned (differential changes).
+	 * @returns {object} Dirty setting values.
+	 */
+	api.dirtyValues = function dirtyValues( options ) {
+		var values = {};
+		api.each( function( setting ) {
+			var settingRevision;
+
+			if ( ! setting._dirty ) {
+				return;
+			}
+
+			settingRevision = api._latestSettingRevisions[ setting.id ];
+
+			// Skip including settings that have already been included in the changeset, if only requesting unsaved.
+			if ( api.state( 'changesetStatus' ).get() && ( options && options.unsaved ) && ( _.isUndefined( settingRevision ) || settingRevision <= api._lastSavedRevision ) ) {
+				return;
+			}
+
+			values[ setting.id ] = setting.get();
+		} );
+		return values;
+	};
+
+	/**
+	 * Request updates to the changeset.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param {object} [changes] Mapping of setting IDs to setting params each normally including a value property, or mapping to null.
+	 *                           If not provided, then the changes will still be obtained from unsaved dirty settings.
+	 * @returns {jQuery.Promise} Promise resolving with the response data.
 	 */
-	api.utils = {};
+	api.requestChangesetUpdate = function requestChangesetUpdate( changes ) {
+		var deferred, request, submittedChanges = {}, data;
+		deferred = new $.Deferred();
+
+		if ( changes ) {
+			_.extend( submittedChanges, changes );
+		}
+
+		// Ensure all revised settings (changes pending save) are also included, but not if marked for deletion in changes.
+		_.each( api.dirtyValues( { unsaved: true } ), function( dirtyValue, settingId ) {
+			if ( ! changes || null !== changes[ settingId ] ) {
+				submittedChanges[ settingId ] = _.extend(
+					{},
+					submittedChanges[ settingId ] || {},
+					{ value: dirtyValue }
+				);
+			}
+		} );
+
+		// Short-circuit when there are no pending changes.
+		if ( _.isEmpty( submittedChanges ) ) {
+			deferred.resolve( {} );
+			return deferred.promise();
+		}
+
+		// Make sure that publishing a changeset waits for all changeset update requests to complete.
+		api.state( 'processing' ).set( api.state( 'processing' ).get() + 1 );
+		deferred.always( function() {
+			api.state( 'processing' ).set( api.state( 'processing' ).get() - 1 );
+		} );
+
+		// Allow plugins to attach additional params to the settings.
+		api.trigger( 'changeset-save', submittedChanges );
+
+		// Ensure that if any plugins add data to save requests by extending query() that they get included here.
+		data = api.previewer.query( { excludeCustomizedSaved: true } );
+		delete data.customized; // Being sent in customize_changeset_data instead.
+		_.extend( data, {
+			nonce: api.settings.nonce.save,
+			customize_theme: api.settings.theme.stylesheet,
+			customize_changeset_data: JSON.stringify( submittedChanges )
+		} );
+
+		request = wp.ajax.post( 'customize_save', data );
+
+		request.done( function requestChangesetUpdateDone( data ) {
+			var savedChangesetValues = {};
+
+			// Ensure that all settings updated subsequently will be included in the next changeset update request.
+			api._lastSavedRevision = Math.max( api._latestRevision, api._lastSavedRevision );
+
+			api.state( 'changesetStatus' ).set( data.changeset_status );
+			deferred.resolve( data );
+			api.trigger( 'changeset-saved', data );
+
+			if ( data.setting_validities ) {
+				_.each( data.setting_validities, function( validity, settingId ) {
+					if ( true === validity && _.isObject( submittedChanges[ settingId ] ) && ! _.isUndefined( submittedChanges[ settingId ].value ) ) {
+						savedChangesetValues[ settingId ] = submittedChanges[ settingId ].value;
+					}
+				} );
+			}
+
+			api.previewer.send( 'changeset-saved', _.extend( {}, data, { saved_changeset_values: savedChangesetValues } ) );
+		} );
+		request.fail( function requestChangesetUpdateFail( data ) {
+			deferred.reject( data );
+			api.trigger( 'changeset-error', data );
+		} );
+		request.always( function( data ) {
+			if ( data.setting_validities ) {
+				api._handleSettingValidities( {
+					settingValidities: data.setting_validities
+				} );
+			}
+		} );
+
+		return deferred.promise();
+	};
 
 	/**
 	 * Watch all changes to Value properties, and bubble changes to parent Values instance
@@ -101,10 +283,8 @@
 		params = params || {};
 		focus = function () {
 			var focusContainer;
-			if ( construct.extended( api.Panel ) && construct.expanded && construct.expanded() ) {
-				focusContainer = construct.container.find( 'ul.control-panel-content' );
-			} else if ( construct.extended( api.Section ) && construct.expanded && construct.expanded() ) {
-				focusContainer = construct.container.find( 'ul.accordion-section-content' );
+			if ( ( construct.extended( api.Panel ) || construct.extended( api.Section ) ) && construct.expanded && construct.expanded() ) {
+				focusContainer = construct.contentContainer;
 			} else {
 				focusContainer = construct.container;
 			}
@@ -125,6 +305,8 @@
 		} else {
 			params.completeCallback = focus;
 		}
+
+		api.state( 'paneVisible' ).set( true );
 		if ( construct.expand ) {
 			construct.expand( params );
 		} else {
@@ -185,6 +367,32 @@
 		return equal;
 	};
 
+	/**
+	 * Return browser supported `transitionend` event name.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @returns {string|null} Normalized `transitionend` event name or null if CSS transitions are not supported.
+	 */
+	normalizedTransitionendEventName = (function () {
+		var el, transitions, prop;
+		el = document.createElement( 'div' );
+		transitions = {
+			'transition'      : 'transitionend',
+			'OTransition'     : 'oTransitionEnd',
+			'MozTransition'   : 'transitionend',
+			'WebkitTransition': 'webkitTransitionEnd'
+		};
+		prop = _.find( _.keys( transitions ), function( prop ) {
+			return ! _.isUndefined( el.style[ prop ] );
+		} );
+		if ( prop ) {
+			return transitions[ prop ];
+		} else {
+			return null;
+		}
+	})();
+
 	/**
 	 * Base class for Panel and Section.
 	 *
@@ -236,6 +444,9 @@
 			if ( 0 === container.container.length ) {
 				container.container = $( container.getContainer() );
 			}
+			container.headContainer = container.container;
+			container.contentContainer = container.getContent();
+			container.container = container.container.add( container.contentContainer );
 
 			container.deferred = {
 				embedded: new $.Deferred()
@@ -323,7 +534,10 @@
 		 * @param {Object}  args.completeCallback
 		 */
 		onChangeActive: function( active, args ) {
-			var duration, construct = this, expandedOtherPanel;
+			var construct = this,
+				headContainer = construct.headContainer,
+				duration, expandedOtherPanel;
+
 			if ( args.unchanged ) {
 				if ( args.completeCallback ) {
 					args.completeCallback();
@@ -350,31 +564,26 @@
 				}
 			}
 
-			if ( ! $.contains( document, construct.container[0] ) ) {
+			if ( ! $.contains( document, headContainer ) ) {
 				// jQuery.fn.slideUp is not hiding an element if it is not in the DOM
-				construct.container.toggle( active );
+				headContainer.toggle( active );
 				if ( args.completeCallback ) {
 					args.completeCallback();
 				}
 			} else if ( active ) {
-				construct.container.stop( true, true ).slideDown( duration, args.completeCallback );
+				headContainer.stop( true, true ).slideDown( duration, args.completeCallback );
 			} else {
 				if ( construct.expanded() ) {
 					construct.collapse({
 						duration: duration,
 						completeCallback: function() {
-							construct.container.stop( true, true ).slideUp( duration, args.completeCallback );
+							headContainer.stop( true, true ).slideUp( duration, args.completeCallback );
 						}
 					});
 				} else {
-					construct.container.stop( true, true ).slideUp( duration, args.completeCallback );
+					headContainer.stop( true, true ).slideUp( duration, args.completeCallback );
 				}
 			}
-
-			// Recalculate the margin-top immediately, not waiting for debounced reflow, to prevent momentary (100ms) vertical jiggle.
-			if ( expandedOtherPanel ) {
-				expandedOtherPanel._recalculateTopMargin();
-			}
 		},
 
 		/**
@@ -441,6 +650,7 @@
 				return false;
 			}
 
+			api.state( 'paneVisible' ).set( true );
 			params.completeCallback = function() {
 				if ( previousCompleteCallback ) {
 					previousCompleteCallback.apply( instance, arguments );
@@ -479,6 +689,66 @@
 			return this._toggleExpanded( false, params );
 		},
 
+		/**
+		 * Animate container state change if transitions are supported by the browser.
+		 *
+		 * @since 4.7.0
+		 * @private
+		 *
+		 * @param {function} completeCallback Function to be called after transition is completed.
+		 * @returns {void}
+		 */
+		_animateChangeExpanded: function( completeCallback ) {
+			// Return if CSS transitions are not supported.
+			if ( ! normalizedTransitionendEventName ) {
+				if ( completeCallback ) {
+					completeCallback();
+				}
+				return;
+			}
+
+			var construct = this,
+				content = construct.contentContainer,
+				overlay = content.closest( '.wp-full-overlay' ),
+				elements, transitionEndCallback;
+
+			// Determine set of elements that are affected by the animation.
+			elements = overlay.add( content );
+			if ( _.isUndefined( construct.panel ) || '' === construct.panel() ) {
+				elements = elements.add( '#customize-info, .customize-pane-parent' );
+			}
+
+			// Handle `transitionEnd` event.
+			transitionEndCallback = function( e ) {
+				if ( 2 !== e.eventPhase || ! $( e.target ).is( content ) ) {
+					return;
+				}
+				content.off( normalizedTransitionendEventName, transitionEndCallback );
+				elements.removeClass( 'busy' );
+				if ( completeCallback ) {
+					completeCallback();
+				}
+			};
+			content.on( normalizedTransitionendEventName, transitionEndCallback );
+			elements.addClass( 'busy' );
+
+			// Prevent screen flicker when pane has been scrolled before expanding.
+			_.defer( function() {
+				var container = content.closest( '.wp-full-overlay-sidebar-content' ),
+					currentScrollTop = container.scrollTop(),
+					previousScrollTop = content.data( 'previous-scrollTop' ) || 0,
+					expanded = construct.expanded();
+
+				if ( expanded && 0 < currentScrollTop ) {
+					content.css( 'top', currentScrollTop + 'px' );
+					content.data( 'previous-scrollTop', currentScrollTop );
+				} else if ( ! expanded && 0 < currentScrollTop + previousScrollTop ) {
+					content.css( 'top', previousScrollTop - currentScrollTop + 'px' );
+					container.scrollTop( previousScrollTop );
+				}
+			} );
+		},
+
 		/**
 		 * Bring the container into view and then expand this and bring it into view
 		 * @param {Object} [params]
@@ -504,6 +774,40 @@
 			}
 
 			return '<li></li>';
+		},
+
+		/**
+		 * Find content element which is displayed when the section is expanded.
+		 *
+		 * After a construct is initialized, the return value will be available via the `contentContainer` property.
+		 * By default the element will be related it to the parent container with `aria-owns` and detached.
+		 * Custom panels and sections (such as the `NewMenuSection`) that do not have a sliding pane should
+		 * just return the content element without needing to add the `aria-owns` element or detach it from
+		 * the container. Such non-sliding pane custom sections also need to override the `onChangeExpanded`
+		 * method to handle animating the panel/section into and out of view.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @returns {jQuery} Detached content element.
+		 */
+		getContent: function() {
+			var construct = this,
+				container = construct.container,
+				content = container.find( '.accordion-section-content, .control-panel-content' ).first(),
+				contentId = 'sub-' + container.attr( 'id' ),
+				ownedElements = contentId,
+				alreadyOwnedElements = container.attr( 'aria-owns' );
+
+			if ( alreadyOwnedElements ) {
+				ownedElements = ownedElements + ' ' + alreadyOwnedElements;
+			}
+			container.attr( 'aria-owns', ownedElements );
+
+			return content.detach().attr( {
+				'id': contentId,
+				'class': 'customize-pane-child ' + content.attr( 'class' ) + ' ' + container.attr( 'class' )
+			} );
 		}
 	});
 
@@ -549,7 +853,7 @@
 			section.id = id;
 			section.panel = new api.Value();
 			section.panel.bind( function ( id ) {
-				$( section.container ).toggleClass( 'control-subsection', !! id );
+				$( section.headContainer ).toggleClass( 'control-subsection', !! id );
 			});
 			section.panel.set( section.params.panel || '' );
 			api.utils.bubbleChildValueChanges( section, [ 'panel' ] );
@@ -566,7 +870,9 @@
 		 * @since 4.1.0
 		 */
 		embed: function () {
-			var section = this, inject;
+			var inject,
+				section = this,
+				container = $( '#customize-theme-controls' );
 
 			// Watch for changes to the panel state
 			inject = function ( panelId ) {
@@ -576,31 +882,30 @@
 					api.panel( panelId, function ( panel ) {
 						// The panel has been registered, wait for it to become ready/initialized
 						panel.deferred.embedded.done( function () {
-							parentContainer = panel.container.find( 'ul:first' );
-							if ( ! section.container.parent().is( parentContainer ) ) {
-								parentContainer.append( section.container );
+							parentContainer = panel.contentContainer;
+							if ( ! section.headContainer.parent().is( parentContainer ) ) {
+								parentContainer.append( section.headContainer );
+							}
+							if ( ! section.contentContainer.parent().is( section.headContainer ) ) {
+								container.append( section.contentContainer );
 							}
 							section.deferred.embedded.resolve();
 						});
 					} );
 				} else {
 					// There is no panel, so embed the section in the root of the customizer
-					parentContainer = $( '#customize-theme-controls' ).children( 'ul' ); // @todo This should be defined elsewhere, and to be configurable
-					if ( ! section.container.parent().is( parentContainer ) ) {
-						parentContainer.append( section.container );
+					parentContainer = $( '.customize-pane-parent' ); // @todo This should be defined elsewhere, and to be configurable
+					if ( ! section.headContainer.parent().is( parentContainer ) ) {
+						parentContainer.append( section.headContainer );
+					}
+					if ( ! section.contentContainer.parent().is( section.headContainer ) ) {
+						container.append( section.contentContainer );
 					}
 					section.deferred.embedded.resolve();
 				}
 			};
 			section.panel.bind( inject );
 			inject( section.panel.get() ); // Since a section may never get a panel, assume that it won't ever get one
-
-			section.deferred.embedded.done(function() {
-				// Fix the top margin after reflow.
-				api.bind( 'pane-contents-reflowed', _.debounce( function() {
-					section._recalculateTopMargin();
-				}, 100 ) );
-			});
 		},
 
 		/**
@@ -609,7 +914,11 @@
 		 * @since 4.1.0
 		 */
 		attachEvents: function () {
-			var section = this;
+			var meta, content, section = this;
+
+			if ( section.container.hasClass( 'cannot-expand' ) ) {
+				return;
+			}
 
 			// Expand/Collapse accordion sections on click.
 			section.container.find( '.accordion-section-title, .customize-section-back' ).on( 'click keydown', function( event ) {
@@ -624,6 +933,21 @@
 					section.expand();
 				}
 			});
+
+			// This is very similar to what is found for api.Panel.attachEvents().
+			section.container.find( '.customize-section-title .customize-help-toggle' ).on( 'click', function() {
+
+				meta = section.container.find( '.section-meta' );
+				if ( meta.hasClass( 'cannot-expand' ) ) {
+					return;
+				}
+				content = meta.find( '.customize-section-description:first' );
+				content.toggleClass( 'open' );
+				content.slideToggle();
+				content.attr( 'aria-expanded', function ( i, attr ) {
+					return 'true' === attr ? 'false' : 'true';
+				});
+			});
 		},
 
 		/**
@@ -666,50 +990,36 @@
 		 */
 		onChangeExpanded: function ( expanded, args ) {
 			var section = this,
-				container = section.container.closest( '.wp-full-overlay-sidebar-content' ),
-				content = section.container.find( '.accordion-section-content' ),
-				overlay = section.container.closest( '.wp-full-overlay' ),
-				backBtn = section.container.find( '.customize-section-back' ),
-				sectionTitle = section.container.find( '.accordion-section-title' ).first(),
-				headerActionsHeight = $( '#customize-header-actions' ).height(),
-				resizeContentHeight, expand, position, scroll;
+				container = section.headContainer.closest( '.wp-full-overlay-sidebar-content' ),
+				content = section.contentContainer,
+				overlay = section.headContainer.closest( '.wp-full-overlay' ),
+				backBtn = content.find( '.customize-section-back' ),
+				sectionTitle = section.headContainer.find( '.accordion-section-title' ).first(),
+				expand;
 
-			if ( expanded && ! section.container.hasClass( 'open' ) ) {
+			if ( expanded && ! content.hasClass( 'open' ) ) {
 
 				if ( args.unchanged ) {
 					expand = args.completeCallback;
 				} else {
-					container.scrollTop( 0 );
-					resizeContentHeight = function() {
-						var matchMedia, offset;
-						matchMedia = window.matchMedia || window.msMatchMedia;
-						offset = 90; // 45px for customize header actions + 45px for footer actions.
-
-						// No footer on small screens.
-						if ( matchMedia && matchMedia( '(max-width: 640px)' ).matches ) {
-							offset = 45;
-						}
-						content.css( 'height', ( window.innerHeight - offset ) );
-					};
-					expand = function() {
-						section.container.addClass( 'open' );
-						overlay.addClass( 'section-open' );
-						position = content.offset().top;
-						scroll = container.scrollTop();
-						content.css( 'margin-top', ( headerActionsHeight - position - scroll ) );
-						resizeContentHeight();
-						sectionTitle.attr( 'tabindex', '-1' );
-						backBtn.attr( 'tabindex', '0' );
-						backBtn.focus();
-						if ( args.completeCallback ) {
-							args.completeCallback();
-						}
+					expand = $.proxy( function() {
+						section._animateChangeExpanded( function() {
+							sectionTitle.attr( 'tabindex', '-1' );
+							backBtn.attr( 'tabindex', '0' );
 
-						// Fix the height after browser resize.
-						$( window ).on( 'resize.customizer-section', _.debounce( resizeContentHeight, 100 ) );
+							backBtn.focus();
+							content.css( 'top', '' );
+							container.scrollTop( 0 );
 
-						setTimeout( _.bind( section._recalculateTopMargin, section ), 0 );
-					};
+							if ( args.completeCallback ) {
+								args.completeCallback();
+							}
+						} );
+
+						content.addClass( 'open' );
+						overlay.addClass( 'section-open' );
+						api.state( 'expandedSection' ).set( section );
+					}, this );
 				}
 
 				if ( ! args.allowMultiple ) {
@@ -732,42 +1042,30 @@
 					expand();
 				}
 
-			} else if ( ! expanded && section.container.hasClass( 'open' ) ) {
-				section.container.removeClass( 'open' );
+			} else if ( ! expanded && content.hasClass( 'open' ) ) {
+				section._animateChangeExpanded( function() {
+					backBtn.attr( 'tabindex', '-1' );
+					sectionTitle.attr( 'tabindex', '0' );
+
+					sectionTitle.focus();
+					content.css( 'top', '' );
+
+					if ( args.completeCallback ) {
+						args.completeCallback();
+					}
+				} );
+
+				content.removeClass( 'open' );
 				overlay.removeClass( 'section-open' );
-				content.css( 'margin-top', '' );
-				container.scrollTop( 0 );
-				backBtn.attr( 'tabindex', '-1' );
-				sectionTitle.attr( 'tabindex', '0' );
-				sectionTitle.focus();
-				if ( args.completeCallback ) {
-					args.completeCallback();
+				if ( section === api.state( 'expandedSection' ).get() ) {
+					api.state( 'expandedSection' ).set( false );
 				}
-				$( window ).off( 'resize.customizer-section' );
+
 			} else {
 				if ( args.completeCallback ) {
 					args.completeCallback();
 				}
 			}
-		},
-
-		/**
-		 * Recalculate the top margin.
-		 *
-		 * @since 4.4.0
-		 * @private
-		 */
-		_recalculateTopMargin: function() {
-			var section = this, content, offset, headerActionsHeight;
-			content = section.container.find( '.accordion-section-content' );
-			if ( 0 === content.length ) {
-				return;
-			}
-			headerActionsHeight = $( '#customize-header-actions' ).height();
-			offset = ( content.offset().top - headerActionsHeight );
-			if ( 0 < offset ) {
-				content.css( 'margin-top', ( parseInt( content.css( 'margin-top' ), 10 ) - offset ) );
-			}
 		}
 	});
 
@@ -805,7 +1103,7 @@
 			section.template = wp.template( 'customize-themes-details-view' );
 
 			// Bind global keyboard events.
-			$( 'body' ).on( 'keyup', function( event ) {
+			section.container.on( 'keydown', function( event ) {
 				if ( ! section.overlay.find( '.theme-wrap' ).is( ':visible' ) ) {
 					return;
 				}
@@ -823,6 +1121,7 @@
 				// Pressing the escape key fires a theme:collapse event
 				if ( 27 === event.keyCode ) {
 					section.closeDetails();
+					event.stopPropagation(); // Prevent section from being collapsed.
 				}
 			});
 
@@ -945,18 +1244,14 @@
 			}
 
 			// Note: there is a second argument 'args' passed
-			var position, scroll,
-				panel = this,
-				section = panel.container.closest( '.accordion-section' ),
+			var panel = this,
+				section = panel.contentContainer,
 				overlay = section.closest( '.wp-full-overlay' ),
 				container = section.closest( '.wp-full-overlay-sidebar-content' ),
-				siblings = container.find( '.open' ),
 				customizeBtn = section.find( '.customize-theme' ),
-				changeBtn = section.find( '.change-theme' ),
-				content = section.find( '.control-panel-content' );
-
-			if ( expanded ) {
+				changeBtn = panel.headContainer.find( '.change-theme' );
 
+			if ( expanded && ! section.hasClass( 'current-panel' ) ) {
 				// Collapse any sibling sections/panels
 				api.section.each( function ( otherSection ) {
 					if ( otherSection !== panel ) {
@@ -967,45 +1262,41 @@
 					otherPanel.collapse( { duration: 0 } );
 				});
 
-				content.show( 0, function() {
-					position = content.offset().top;
-					scroll = container.scrollTop();
-					content.css( 'margin-top', ( $( '#customize-header-actions' ).height() - position - scroll ) );
-					section.addClass( 'current-panel' );
-					overlay.addClass( 'in-themes-panel' );
+				panel._animateChangeExpanded( function() {
+					changeBtn.attr( 'tabindex', '-1' );
+					customizeBtn.attr( 'tabindex', '0' );
+
+					customizeBtn.focus();
+					section.css( 'top', '' );
 					container.scrollTop( 0 );
-					_.delay( panel.renderScreenshots, 10 ); // Wait for the controls
-					panel.$customizeSidebar.on( 'scroll.customize-themes-section', _.throttle( panel.renderScreenshots, 300 ) );
+
 					if ( args.completeCallback ) {
 						args.completeCallback();
 					}
 				} );
-				customizeBtn.focus();
-			} else {
-				siblings.removeClass( 'open' );
-				section.removeClass( 'current-panel' );
-				overlay.removeClass( 'in-themes-panel' );
-				panel.$customizeSidebar.off( 'scroll.customize-themes-section' );
-				content.delay( 180 ).hide( 0, function() {
-					content.css( 'margin-top', 'inherit' ); // Reset
+
+				overlay.addClass( 'in-themes-panel' );
+				section.addClass( 'current-panel' );
+				_.delay( panel.renderScreenshots, 10 ); // Wait for the controls
+				panel.$customizeSidebar.on( 'scroll.customize-themes-section', _.throttle( panel.renderScreenshots, 300 ) );
+
+			} else if ( ! expanded && section.hasClass( 'current-panel' ) ) {
+				panel._animateChangeExpanded( function() {
+					changeBtn.attr( 'tabindex', '0' );
+					customizeBtn.attr( 'tabindex', '-1' );
+
+					changeBtn.focus();
+					section.css( 'top', '' );
+
 					if ( args.completeCallback ) {
 						args.completeCallback();
 					}
 				} );
-				customizeBtn.attr( 'tabindex', '0' );
-				changeBtn.focus();
-				container.scrollTop( 0 );
-			}
-		},
 
-		/**
-		 * Recalculate the top margin.
-		 *
-		 * @since 4.4.0
-		 * @private
-		 */
-		_recalculateTopMargin: function() {
-			api.Panel.prototype._recalculateTopMargin.call( this );
+				overlay.removeClass( 'in-themes-panel' );
+				section.removeClass( 'current-panel' );
+				panel.$customizeSidebar.off( 'scroll.customize-themes-section' );
+			}
 		},
 
 		/**
@@ -1134,6 +1425,60 @@
 			}
 		},
 
+		/**
+		 * Load theme preview.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @param {string} themeId Theme ID.
+		 * @returns {jQuery.promise} Promise.
+		 */
+		loadThemePreview: function( themeId ) {
+			var deferred = $.Deferred(), onceProcessingComplete, overlay, urlParser;
+
+			urlParser = document.createElement( 'a' );
+			urlParser.href = location.href;
+			urlParser.search = $.param( _.extend(
+				api.utils.parseQueryString( urlParser.search.substr( 1 ) ),
+				{
+					theme: themeId,
+					changeset_uuid: api.settings.changeset.uuid
+				}
+			) );
+
+			overlay = $( '.wp-full-overlay' );
+			overlay.addClass( 'customize-loading' );
+
+			onceProcessingComplete = function() {
+				var request;
+				if ( api.state( 'processing' ).get() > 0 ) {
+					return;
+				}
+
+				api.state( 'processing' ).unbind( onceProcessingComplete );
+
+				request = api.requestChangesetUpdate();
+				request.done( function() {
+					$( window ).off( 'beforeunload.customize-confirm' );
+					top.location.href = urlParser.href;
+					deferred.resolve();
+				} );
+				request.fail( function() {
+					overlay.removeClass( 'customize-loading' );
+					deferred.reject();
+				} );
+			};
+
+			if ( 0 === api.state( 'processing' ).get() ) {
+				onceProcessingComplete();
+			} else {
+				api.state( 'processing' ).bind( onceProcessingComplete );
+			}
+
+			return deferred.promise();
+		},
+
 		/**
 		 * Render & show the theme details for a given theme model.
 		 *
@@ -1142,7 +1487,7 @@
 		 * @param {Object}   theme
 		 */
 		showDetails: function ( theme, callback ) {
-			var section = this;
+			var section = this, link;
 			callback = callback || function(){};
 			section.currentTheme = theme.id;
 			section.overlay.html( section.template( theme ) )
@@ -1151,6 +1496,22 @@
 			$( 'body' ).addClass( 'modal-open' );
 			section.containFocus( section.overlay );
 			section.updateLimits();
+
+			link = section.overlay.find( '.inactive-theme > a' );
+
+			link.on( 'click', function( event ) {
+				event.preventDefault();
+
+				// Short-circuit if request is currently being made.
+				if ( link.hasClass( 'disabled' ) ) {
+					return;
+				}
+				link.addClass( 'disabled' );
+
+				section.loadThemePreview( theme.id ).fail( function() {
+					link.removeClass( 'disabled' );
+				} );
+			} );
 			callback();
 		},
 
@@ -1234,17 +1595,17 @@
 		 */
 		embed: function () {
 			var panel = this,
-				parentContainer = $( '#customize-theme-controls > ul' ); // @todo This should be defined elsewhere, and to be configurable
+				container = $( '#customize-theme-controls' ),
+				parentContainer = $( '.customize-pane-parent' ); // @todo This should be defined elsewhere, and to be configurable
 
-			if ( ! panel.container.parent().is( parentContainer ) ) {
-				parentContainer.append( panel.container );
+			if ( ! panel.headContainer.parent().is( parentContainer ) ) {
+				parentContainer.append( panel.headContainer );
+			}
+			if ( ! panel.contentContainer.parent().is( panel.headContainer ) ) {
+				container.append( panel.contentContainer );
 				panel.renderContent();
 			}
 
-			api.bind( 'pane-contents-reflowed', _.debounce( function() {
-				panel._recalculateTopMargin();
-			}, 100 ) );
-
 			panel.deferred.embedded.resolve();
 		},
 
@@ -1255,7 +1616,7 @@
 			var meta, panel = this;
 
 			// Expand/Collapse accordion sections on click.
-			panel.container.find( '.accordion-section-title' ).on( 'click keydown', function( event ) {
+			panel.headContainer.find( '.accordion-section-title' ).on( 'click keydown', function( event ) {
 				if ( api.utils.isKeydownButNotEnterEvent( event ) ) {
 					return;
 				}
@@ -1286,7 +1647,6 @@
 				}
 				event.preventDefault(); // Keep this AFTER the key filter above
 
-				meta = panel.container.find( '.panel-meta' );
 				if ( meta.hasClass( 'cannot-expand' ) ) {
 					return;
 				}
@@ -1356,20 +1716,14 @@
 			}
 
 			// Note: there is a second argument 'args' passed
-			var position, scroll,
-				panel = this,
-				accordionSection = panel.container.closest( '.accordion-section' ),
+			var panel = this,
+				accordionSection = panel.contentContainer,
 				overlay = accordionSection.closest( '.wp-full-overlay' ),
 				container = accordionSection.closest( '.wp-full-overlay-sidebar-content' ),
-				siblings = container.find( '.open' ),
-				topPanel = overlay.find( '#customize-theme-controls > ul > .accordion-section > .accordion-section-title' ),
-				backBtn = accordionSection.find( '.customize-panel-back' ),
-				panelTitle = accordionSection.find( '.accordion-section-title' ).first(),
-				content = accordionSection.find( '.control-panel-content' ),
-				headerActionsHeight = $( '#customize-header-actions' ).height();
-
-			if ( expanded ) {
+				topPanel = panel.headContainer.find( '.accordion-section-title' ),
+				backBtn = accordionSection.find( '.customize-panel-back' );
 
+			if ( expanded && ! accordionSection.hasClass( 'current-panel' ) ) {
 				// Collapse any sibling sections/panels
 				api.section.each( function ( section ) {
 					if ( panel.id !== section.panel() ) {
@@ -1382,51 +1736,42 @@
 					}
 				});
 
-				content.show( 0, function() {
-					content.parent().show();
-					position = content.offset().top;
-					scroll = container.scrollTop();
-					content.css( 'margin-top', ( headerActionsHeight - position - scroll ) );
-					accordionSection.addClass( 'current-panel' );
-					overlay.addClass( 'in-sub-panel' );
+				panel._animateChangeExpanded( function() {
+					topPanel.attr( 'tabindex', '-1' );
+					backBtn.attr( 'tabindex', '0' );
+
+					backBtn.focus();
+					accordionSection.css( 'top', '' );
 					container.scrollTop( 0 );
+
 					if ( args.completeCallback ) {
 						args.completeCallback();
 					}
 				} );
-				topPanel.attr( 'tabindex', '-1' );
-				backBtn.attr( 'tabindex', '0' );
-				backBtn.focus();
-				panel._recalculateTopMargin();
-			} else {
-				siblings.removeClass( 'open' );
-				accordionSection.removeClass( 'current-panel' );
-				overlay.removeClass( 'in-sub-panel' );
-				content.delay( 180 ).hide( 0, function() {
-					content.css( 'margin-top', 'inherit' ); // Reset
+
+				overlay.addClass( 'in-sub-panel' );
+				accordionSection.addClass( 'current-panel' );
+				api.state( 'expandedPanel' ).set( panel );
+
+			} else if ( ! expanded && accordionSection.hasClass( 'current-panel' ) ) {
+				panel._animateChangeExpanded( function() {
+					topPanel.attr( 'tabindex', '0' );
+					backBtn.attr( 'tabindex', '-1' );
+
+					topPanel.focus();
+					accordionSection.css( 'top', '' );
+
 					if ( args.completeCallback ) {
 						args.completeCallback();
 					}
 				} );
-				topPanel.attr( 'tabindex', '0' );
-				backBtn.attr( 'tabindex', '-1' );
-				panelTitle.focus();
-				container.scrollTop( 0 );
-			}
-		},
 
-		/**
-		 * Recalculate the top margin.
-		 *
-		 * @since 4.4.0
-		 * @private
-		 */
-		_recalculateTopMargin: function() {
-			var panel = this, headerActionsHeight, content, accordionSection;
-			headerActionsHeight = $( '#customize-header-actions' ).height();
-			accordionSection = panel.container.closest( '.accordion-section' );
-			content = accordionSection.find( '.control-panel-content' );
-			content.css( 'margin-top', ( parseInt( content.css( 'margin-top' ), 10 ) - ( content.offset().top - headerActionsHeight ) ) );
+				overlay.removeClass( 'in-sub-panel' );
+				accordionSection.removeClass( 'current-panel' );
+				if ( panel === api.state( 'expandedPanel' ).get() ) {
+					api.state( 'expandedPanel' ).set( false );
+				}
+			}
 		},
 
 		/**
@@ -1446,8 +1791,8 @@
 			} else {
 				template = wp.template( 'customize-panel-default-content' );
 			}
-			if ( template && panel.container ) {
-				panel.container.find( '.accordion-sub-container' ).html( template( panel.params ) );
+			if ( template && panel.headContainer ) {
+				panel.contentContainer.html( template( panel.params ) );
 			}
 		}
 	});
@@ -1623,7 +1968,7 @@
 				api.section( sectionId, function ( section ) {
 					// Wait for the section to be ready/initialized
 					section.deferred.embedded.done( function () {
-						parentContainer = section.container.find( 'ul:first' );
+						parentContainer = ( section.contentContainer.is( 'ul' ) ) ? section.contentContainer : section.contentContainer.find( 'ul:first' );
 						if ( ! control.container.parent().is( parentContainer ) ) {
 							parentContainer.append( control.container );
 							control.renderContent();
@@ -1639,9 +1984,28 @@
 		/**
 		 * Triggered when the control's markup has been injected into the DOM.
 		 *
-		 * @abstract
+		 * @returns {void}
 		 */
-		ready: function() {},
+		ready: function() {
+			var control = this, newItem;
+			if ( 'dropdown-pages' === control.params.type && control.params.allow_addition ) {
+				newItem = control.container.find( '.new-content-item' );
+				newItem.hide(); // Hide in JS to preserve flex display when showing.
+				control.container.on( 'click', '.add-new-toggle', function( e ) {
+					$( e.currentTarget ).slideUp( 180 );
+					newItem.slideDown( 180 );
+					newItem.find( '.create-item-input' ).focus();
+				});
+				control.container.on( 'click', '.add-content', function() {
+					control.addNewPage();
+				});
+				control.container.on( 'keyup', '.create-item-input', function( e ) {
+					if ( 13 === e.which ) { // Enter
+						control.addNewPage();
+					}
+				});
+			}
+		},
 
 		/**
 		 * Get the element inside of a control's container that contains the validation error message.
@@ -1859,34 +2223,137 @@
 					control.container.html( template( control.params ) );
 				}
 			}
-		}
-	});
-
-	/**
-	 * A colorpicker control.
-	 *
-	 * @class
-	 * @augments wp.customize.Control
-	 * @augments wp.customize.Class
-	 */
-	api.ColorControl = api.Control.extend({
-		ready: function() {
-			var control = this,
-				picker = this.container.find('.color-picker-hex');
+		},
 
-			picker.val( control.setting() ).wpColorPicker({
-				change: function() {
-					control.setting.set( picker.wpColorPicker('color') );
-				},
-				clear: function() {
-					control.setting.set( '' );
-				}
-			});
+		/**
+		 * Add a new page to a dropdown-pages control reusing menus code for this.
+		 *
+		 * @since 4.7.0
+		 * @access private
+		 * @returns {void}
+		 */
+		addNewPage: function () {
+			var control = this, promise, toggle, container, input, title, select;
+
+			if ( 'dropdown-pages' !== control.params.type || ! control.params.allow_addition || ! api.Menus ) {
+				return;
+			}
+
+			toggle = control.container.find( '.add-new-toggle' );
+			container = control.container.find( '.new-content-item' );
+			input = control.container.find( '.create-item-input' );
+			title = input.val();
+			select = control.container.find( 'select' );
+
+			if ( ! title ) {
+				input.addClass( 'invalid' );
+				return;
+			}
+
+			input.removeClass( 'invalid' );
+			input.attr( 'disabled', 'disabled' );
+
+			// The menus functions add the page, publish when appropriate, and also add the new page to the dropdown-pages controls.
+			promise = api.Menus.insertAutoDraftPost( {
+				post_title: title,
+				post_type: 'page'
+			} );
+			promise.done( function( data ) {
+				var availableItem, $content, itemTemplate;
+
+				// Prepare the new page as an available menu item.
+				// See api.Menus.submitNew().
+				availableItem = new api.Menus.AvailableItemModel( {
+					'id': 'post-' + data.post_id, // Used for available menu item Backbone models.
+					'title': title,
+					'type': 'page',
+					'type_label': api.Menus.data.l10n.page_label,
+					'object': 'post_type',
+					'object_id': data.post_id,
+					'url': data.url
+				} );
+
+				// Add the new item to the list of available menu items.
+				api.Menus.availableMenuItemsPanel.collection.add( availableItem );
+				$content = $( '#available-menu-items-post_type-page' ).find( '.available-menu-items-list' );
+				itemTemplate = wp.template( 'available-menu-item' );
+				$content.prepend( itemTemplate( availableItem.attributes ) );
+
+				// Focus the select control.
+				select.focus();
+				control.setting.set( String( data.post_id ) ); // Triggers a preview refresh and updates the setting.
+
+				// Reset the create page form.
+				container.slideUp( 180 );
+				toggle.slideDown( 180 );
+			} );
+			promise.always( function() {
+				input.val( '' ).removeAttr( 'disabled' );
+			} );
+		}
+	});
+
+	/**
+	 * A colorpicker control.
+	 *
+	 * @class
+	 * @augments wp.customize.Control
+	 * @augments wp.customize.Class
+	 */
+	api.ColorControl = api.Control.extend({
+		ready: function() {
+			var control = this,
+				isHueSlider = this.params.mode === 'hue',
+				updating = false,
+				picker;
+
+			if ( isHueSlider ) {
+				picker = this.container.find( '.color-picker-hue' );
+				picker.val( control.setting() ).wpColorPicker({
+					change: function( event, ui ) {
+						updating = true;
+						control.setting( ui.color.h() );
+						updating = false;
+					}
+				});
+			} else {
+				picker = this.container.find( '.color-picker-hex' );
+				picker.val( control.setting() ).wpColorPicker({
+					change: function() {
+						updating = true;
+						control.setting.set( picker.wpColorPicker( 'color' ) );
+						updating = false;
+					},
+					clear: function() {
+						updating = true;
+						control.setting.set( '' );
+						updating = false;
+					}
+				});
+			}
 
-			this.setting.bind( function ( value ) {
+			control.setting.bind( function ( value ) {
+				// Bail if the update came from the control itself.
+				if ( updating ) {
+					return;
+				}
 				picker.val( value );
 				picker.wpColorPicker( 'color', value );
-			});
+			} );
+
+			// Collapse color picker when hitting Esc instead of collapsing the current section.
+			control.container.on( 'keydown', function( event ) {
+				var pickerContainer;
+				if ( 27 !== event.which ) { // Esc.
+					return;
+				}
+				pickerContainer = control.container.find( '.wp-picker-container' );
+				if ( pickerContainer.hasClass( 'wp-picker-active' ) ) {
+					picker.wpColorPicker( 'close' );
+					control.container.find( '.wp-color-result' ).focus();
+					event.stopPropagation(); // Prevent section from being collapsed.
+				}
+			} );
 		}
 	});
 
@@ -2166,12 +2633,53 @@
 			wp.ajax.post( 'custom-background-add', {
 				nonce: _wpCustomizeBackground.nonces.add,
 				wp_customize: 'on',
-				theme: api.settings.theme.stylesheet,
+				customize_theme: api.settings.theme.stylesheet,
 				attachment_id: this.params.attachment.id
 			} );
 		}
 	});
 
+	/**
+	 * A control for positioning a background image.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @class
+	 * @augments wp.customize.Control
+	 * @augments wp.customize.Class
+	 */
+	api.BackgroundPositionControl = api.Control.extend( {
+
+		/**
+		 * Set up control UI once embedded in DOM and settings are created.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 */
+		ready: function() {
+			var control = this, updateRadios;
+
+			control.container.on( 'change', 'input[name="background-position"]', function() {
+				var position = $( this ).val().split( ' ' );
+				control.settings.x( position[0] );
+				control.settings.y( position[1] );
+			} );
+
+			updateRadios = _.debounce( function() {
+				var x, y, radioInput, inputValue;
+				x = control.settings.x.get();
+				y = control.settings.y.get();
+				inputValue = String( x ) + ' ' + String( y );
+				radioInput = control.container.find( 'input[name="background-position"][value="' + inputValue + '"]' );
+				radioInput.click();
+			} );
+			control.settings.x.bind( updateRadios );
+			control.settings.y.bind( updateRadios );
+
+			updateRadios(); // Set initial UI.
+		}
+	} );
+
 	/**
 	 * A control for selecting and cropping an image.
 	 *
@@ -2456,7 +2964,7 @@
 		 * @param {object} attachment
 		 */
 		setImageFromAttachment: function( attachment ) {
-			var sizes = [ 'site_icon-32', 'thumbnail', 'full' ],
+			var sizes = [ 'site_icon-32', 'thumbnail', 'full' ], link,
 				icon;
 
 			_.each( sizes, function( size ) {
@@ -2470,8 +2978,13 @@
 			// Set the Customizer setting; the callback takes care of rendering.
 			this.setting( attachment.id );
 
+			if ( ! icon ) {
+				return;
+			}
+
 			// Update the icon in-browser.
-			$( 'link[sizes="32x32"]' ).attr( 'href', icon.url );
+			link = $( 'link[rel="icon"][sizes="32x32"]' );
+			link.attr( 'href', icon.url );
 		},
 
 		/**
@@ -2488,7 +3001,7 @@
 			this.params.attachment = {};
 			this.setting( '' );
 			this.renderContent(); // Not bound to setting change when emptying.
-			$( 'link[rel="icon"]' ).attr( 'href', '' );
+			$( 'link[rel="icon"][sizes="32x32"]' ).attr( 'href', '/favicon.ico' ); // Set to default.
 		}
 	});
 
@@ -2531,7 +3044,7 @@
 
 			// Ensure custom-header-crop Ajax requests bootstrap the Customizer to activate the previewed theme.
 			wp.media.controller.Cropper.prototype.defaults.doCropArgs.wp_customize = 'on';
-			wp.media.controller.Cropper.prototype.defaults.doCropArgs.theme = api.settings.theme.stylesheet;
+			wp.media.controller.Cropper.prototype.defaults.doCropArgs.customize_theme = api.settings.theme.stylesheet;
 		},
 
 		/**
@@ -2822,11 +3335,7 @@
 					return;
 				}
 
-				var previewUrl = $( this ).data( 'previewUrl' );
-
-				$( '.wp-full-overlay' ).addClass( 'customize-loading' );
-
-				window.parent.location = previewUrl;
+				api.section( control.section() ).loadThemePreview( control.params.theme.id );
 			});
 
 			control.container.on( 'click keydown', '.theme-actions .theme-details', function( event ) {
@@ -2887,13 +3396,12 @@
 	 * @mixes wp.customize.Events
 	 */
 	api.PreviewFrame = api.Messenger.extend({
-		sensitivity: 2000,
+		sensitivity: null, // Will get set to api.settings.timeouts.previewFrameSensitivity.
 
 		/**
 		 * Initialize the PreviewFrame.
 		 *
 		 * @param {object} params.container
-		 * @param {object} params.signature
 		 * @param {object} params.previewUrl
 		 * @param {object} params.query
 		 * @param {object} options
@@ -2908,7 +3416,6 @@
 			deferred.promise( this );
 
 			this.container = params.container;
-			this.signature = params.signature;
 
 			$.extend( params, { channel: api.PreviewFrame.uuid() });
 
@@ -2928,129 +3435,118 @@
 		 *                          the request.
 		 */
 		run: function( deferred ) {
-			var self   = this,
+			var previewFrame = this,
 				loaded = false,
-				ready  = false;
-
-			if ( this._ready ) {
-				this.unbind( 'ready', this._ready );
+				ready = false,
+				readyData = null,
+				hasPendingChangesetUpdate = '{}' !== previewFrame.query.customized,
+				urlParser,
+				params,
+				form;
+
+			if ( previewFrame._ready ) {
+				previewFrame.unbind( 'ready', previewFrame._ready );
 			}
 
-			this._ready = function() {
+			previewFrame._ready = function( data ) {
 				ready = true;
+				readyData = data;
+				previewFrame.container.addClass( 'iframe-ready' );
+				if ( ! data ) {
+					return;
+				}
 
 				if ( loaded ) {
-					deferred.resolveWith( self );
+					deferred.resolveWith( previewFrame, [ data ] );
 				}
 			};
 
-			this.bind( 'ready', this._ready );
+			previewFrame.bind( 'ready', previewFrame._ready );
 
-			this.bind( 'ready', function ( data ) {
+			urlParser = document.createElement( 'a' );
+			urlParser.href = previewFrame.previewUrl();
 
-				this.container.addClass( 'iframe-ready' );
-
-				if ( ! data ) {
-					return;
+			params = _.extend(
+				api.utils.parseQueryString( urlParser.search.substr( 1 ) ),
+				{
+					customize_changeset_uuid: previewFrame.query.customize_changeset_uuid,
+					customize_theme: previewFrame.query.customize_theme,
+					customize_messenger_channel: previewFrame.query.customize_messenger_channel
 				}
+			);
 
-				/*
-				 * Walk over all panels, sections, and controls and set their
-				 * respective active states to true if the preview explicitly
-				 * indicates as such.
-				 */
-				var constructs = {
-					panel: data.activePanels,
-					section: data.activeSections,
-					control: data.activeControls
-				};
-				_( constructs ).each( function ( activeConstructs, type ) {
-					api[ type ].each( function ( construct, id ) {
-						var active = !! ( activeConstructs && activeConstructs[ id ] );
-						if ( active ) {
-							construct.activate();
-						} else {
-							construct.deactivate();
-						}
-					} );
-				} );
-
-				if ( data.settingValidities ) {
-					api._handleSettingValidities( {
-						settingValidities: data.settingValidities,
-						focusInvalidControl: false
-					} );
-				}
+			urlParser.search = $.param( params );
+			previewFrame.iframe = $( '<iframe />', {
+				title: api.l10n.previewIframeTitle,
+				name: 'customize-' + previewFrame.channel()
 			} );
+			previewFrame.iframe.attr( 'onmousewheel', '' ); // Workaround for Safari bug. See WP Trac #38149.
 
-			this.request = $.ajax( this.previewUrl(), {
-				type: 'POST',
-				data: this.query,
-				xhrFields: {
-					withCredentials: true
-				}
-			} );
+			if ( ! hasPendingChangesetUpdate ) {
+				previewFrame.iframe.attr( 'src', urlParser.href );
+			} else {
+				previewFrame.iframe.attr( 'data-src', urlParser.href ); // For debugging purposes.
+			}
 
-			this.request.fail( function() {
-				deferred.rejectWith( self, [ 'request failure' ] );
-			});
+			previewFrame.iframe.appendTo( previewFrame.container );
+			previewFrame.targetWindow( previewFrame.iframe[0].contentWindow );
 
-			this.request.done( function( response ) {
-				var location = self.request.getResponseHeader('Location'),
-					signature = self.signature,
-					index;
+			/*
+			 * Submit customized data in POST request to preview frame window since
+			 * there are setting value changes not yet written to changeset.
+			 */
+			if ( hasPendingChangesetUpdate ) {
+				form = $( '<form>', {
+					action: urlParser.href,
+					target: previewFrame.iframe.attr( 'name' ),
+					method: 'post',
+					hidden: 'hidden'
+				} );
+				form.append( $( '<input>', {
+					type: 'hidden',
+					name: '_method',
+					value: 'GET'
+				} ) );
+				_.each( previewFrame.query, function( value, key ) {
+					form.append( $( '<input>', {
+						type: 'hidden',
+						name: key,
+						value: value
+					} ) );
+				} );
+				previewFrame.container.append( form );
+				form.submit();
+				form.remove(); // No need to keep the form around after submitted.
+			}
 
-				// Check if the location response header differs from the current URL.
-				// If so, the request was redirected; try loading the requested page.
-				if ( location && location !== self.previewUrl() ) {
-					deferred.rejectWith( self, [ 'redirect', location ] );
-					return;
-				}
+			previewFrame.bind( 'iframe-loading-error', function( error ) {
+				previewFrame.iframe.remove();
 
 				// Check if the user is not logged in.
-				if ( '0' === response ) {
-					self.login( deferred );
+				if ( 0 === error ) {
+					previewFrame.login( deferred );
 					return;
 				}
 
 				// Check for cheaters.
-				if ( '-1' === response ) {
-					deferred.rejectWith( self, [ 'cheatin' ] );
+				if ( -1 === error ) {
+					deferred.rejectWith( previewFrame, [ 'cheatin' ] );
 					return;
 				}
 
-				// Check for a signature in the request.
-				index = response.lastIndexOf( signature );
-				if ( -1 === index || index < response.lastIndexOf('</html>') ) {
-					deferred.rejectWith( self, [ 'unsigned' ] );
-					return;
-				}
-
-				// Strip the signature from the request.
-				response = response.slice( 0, index ) + response.slice( index + signature.length );
-
-				// Create the iframe and inject the html content.
-				self.iframe = $( '<iframe />', { 'title': api.l10n.previewIframeTitle } ).appendTo( self.container );
-
-				// Bind load event after the iframe has been added to the page;
-				// otherwise it will fire when injected into the DOM.
-				self.iframe.one( 'load', function() {
-					loaded = true;
-
-					if ( ready ) {
-						deferred.resolveWith( self );
-					} else {
-						setTimeout( function() {
-							deferred.rejectWith( self, [ 'ready timeout' ] );
-						}, self.sensitivity );
-					}
-				});
+				deferred.rejectWith( previewFrame, [ 'request failure' ] );
+			} );
 
-				self.targetWindow( self.iframe[0].contentWindow );
+			previewFrame.iframe.one( 'load', function() {
+				loaded = true;
 
-				self.targetWindow().document.open();
-				self.targetWindow().document.write( response );
-				self.targetWindow().document.close();
+				if ( ready ) {
+					deferred.resolveWith( previewFrame, [ readyData ] );
+				} else {
+					setTimeout( function() {
+						deferred.rejectWith( previewFrame, [ 'ready timeout' ] );
+					}, previewFrame.sensitivity );
+				}
 			});
 		},
 
@@ -3089,26 +3585,29 @@
 
 		destroy: function() {
 			api.Messenger.prototype.destroy.call( this );
-			this.request.abort();
 
-			if ( this.iframe )
+			if ( this.iframe ) {
 				this.iframe.remove();
+			}
 
-			delete this.request;
 			delete this.iframe;
 			delete this.targetWindow;
 		}
 	});
 
 	(function(){
-		var uuid = 0;
+		var id = 0;
 		/**
-		 * Create a universally unique identifier.
+		 * Return an incremented ID for a preview messenger channel.
+		 *
+		 * This function is named "uuid" for historical reasons, but it is a
+		 * misnomer as it is not an actual UUID, and it is not universally unique.
+		 * This is not to be confused with `api.settings.changeset.uuid`.
 		 *
-		 * @return {int}
+		 * @return {string}
 		 */
 		api.PreviewFrame.uuid = function() {
-			return 'preview-' + uuid++;
+			return 'preview-' + String( id++ );
 		};
 	}());
 
@@ -3134,7 +3633,7 @@
 	 * @mixes wp.customize.Events
 	 */
 	api.Previewer = api.Messenger.extend({
-		refreshBuffer: 250,
+		refreshBuffer: null, // Will get set to api.settings.timeouts.windowRefresh.
 
 		/**
 		 * @param {array}  params.allowedUrls
@@ -3142,64 +3641,50 @@
 		 *                                    frame to be placed.
 		 * @param {string} params.form
 		 * @param {string} params.previewUrl  The URL to preview.
-		 * @param {string} params.signature
 		 * @param {object} options
 		 */
 		initialize: function( params, options ) {
-			var self = this,
-				rscheme = /^https?/;
+			var previewer = this,
+				urlParser = document.createElement( 'a' );
 
-			$.extend( this, options || {} );
-			this.deferred = {
+			$.extend( previewer, options || {} );
+			previewer.deferred = {
 				active: $.Deferred()
 			};
 
-			/*
-			 * Wrap this.refresh to prevent it from hammering the servers:
-			 *
-			 * If refresh is called once and no other refresh requests are
-			 * loading, trigger the request immediately.
-			 *
-			 * If refresh is called while another refresh request is loading,
-			 * debounce the refresh requests:
-			 * 1. Stop the loading request (as it is instantly outdated).
-			 * 2. Trigger the new request once refresh hasn't been called for
-			 *    self.refreshBuffer milliseconds.
-			 */
-			this.refresh = (function( self ) {
-				var refresh  = self.refresh,
-					callback = function() {
-						timeout = null;
-						refresh.call( self );
-					},
-					timeout;
-
-				return function() {
-					if ( typeof timeout !== 'number' ) {
-						if ( self.loading ) {
-							self.abort();
+			// Debounce to prevent hammering server and then wait for any pending update requests.
+			previewer.refresh = _.debounce(
+				( function( originalRefresh ) {
+					return function() {
+						var isProcessingComplete, refreshOnceProcessingComplete;
+						isProcessingComplete = function() {
+							return 0 === api.state( 'processing' ).get();
+						};
+						if ( isProcessingComplete() ) {
+							originalRefresh.call( previewer );
 						} else {
-							return callback();
+							refreshOnceProcessingComplete = function() {
+								if ( isProcessingComplete() ) {
+									originalRefresh.call( previewer );
+									api.state( 'processing' ).unbind( refreshOnceProcessingComplete );
+								}
+							};
+							api.state( 'processing' ).bind( refreshOnceProcessingComplete );
 						}
-					}
-
-					clearTimeout( timeout );
-					timeout = setTimeout( callback, self.refreshBuffer );
-				};
-			})( this );
+					};
+				}( previewer.refresh ) ),
+				previewer.refreshBuffer
+			);
 
-			this.container   = api.ensure( params.container );
-			this.allowedUrls = params.allowedUrls;
-			this.signature   = params.signature;
+			previewer.container   = api.ensure( params.container );
+			previewer.allowedUrls = params.allowedUrls;
 
 			params.url = window.location.href;
 
-			api.Messenger.prototype.initialize.call( this, params );
+			api.Messenger.prototype.initialize.call( previewer, params );
 
-			this.add( 'scheme', this.origin() ).link( this.origin ).setter( function( to ) {
-				var match = to.match( rscheme );
-				return match ? match[0] : '';
-			});
+			urlParser.href = previewer.origin();
+			previewer.add( 'scheme', urlParser.protocol.replace( /:$/, '' ) );
 
 			// Limit the URL to internal, front-end links.
 			//
@@ -3209,53 +3694,215 @@
 			// are on different domains to avoid the case where the front end doesn't have
 			// ssl certs.
 
-			this.add( 'previewUrl', params.previewUrl ).setter( function( to ) {
-				var result;
+			previewer.add( 'previewUrl', params.previewUrl ).setter( function( to ) {
+				var result = null, urlParser, queryParams, parsedAllowedUrl, parsedCandidateUrls = [];
+				urlParser = document.createElement( 'a' );
+				urlParser.href = to;
 
-				// Check for URLs that include "/wp-admin/" or end in "/wp-admin".
-				// Strip hashes and query strings before testing.
-				if ( /\/wp-admin(\/|$)/.test( to.replace( /[#?].*$/, '' ) ) )
+				// Abort if URL is for admin or (static) files in wp-includes or wp-content.
+				if ( /\/wp-(admin|includes|content)(\/|$)/.test( urlParser.pathname ) ) {
 					return null;
+				}
+
+				// Remove state query params.
+				if ( urlParser.search.length > 1 ) {
+					queryParams = api.utils.parseQueryString( urlParser.search.substr( 1 ) );
+					delete queryParams.customize_changeset_uuid;
+					delete queryParams.customize_theme;
+					delete queryParams.customize_messenger_channel;
+					if ( _.isEmpty( queryParams ) ) {
+						urlParser.search = '';
+					} else {
+						urlParser.search = $.param( queryParams );
+					}
+				}
 
-				// Attempt to match the URL to the control frame's scheme
-				// and check if it's allowed. If not, try the original URL.
-				$.each([ to.replace( rscheme, self.scheme() ), to ], function( i, url ) {
-					$.each( self.allowedUrls, function( i, allowed ) {
-						var path;
+				parsedCandidateUrls.push( urlParser );
 
-						allowed = allowed.replace( /\/+$/, '' );
-						path = url.replace( allowed, '' );
+				// Prepend list with URL that matches the scheme/protocol of the iframe.
+				if ( previewer.scheme.get() + ':' !== urlParser.protocol ) {
+					urlParser = document.createElement( 'a' );
+					urlParser.href = parsedCandidateUrls[0].href;
+					urlParser.protocol = previewer.scheme.get() + ':';
+					parsedCandidateUrls.unshift( urlParser );
+				}
 
-						if ( 0 === url.indexOf( allowed ) && /^([/#?]|$)/.test( path ) ) {
-							result = url;
-							return false;
+				// Attempt to match the URL to the control frame's scheme and check if it's allowed. If not, try the original URL.
+				parsedAllowedUrl = document.createElement( 'a' );
+				_.find( parsedCandidateUrls, function( parsedCandidateUrl ) {
+					return ! _.isUndefined( _.find( previewer.allowedUrls, function( allowedUrl ) {
+						parsedAllowedUrl.href = allowedUrl;
+						if ( urlParser.protocol === parsedAllowedUrl.protocol && urlParser.host === parsedAllowedUrl.host && 0 === urlParser.pathname.indexOf( parsedAllowedUrl.pathname.replace( /\/$/, '' ) ) ) {
+							result = parsedCandidateUrl.href;
+							return true;
 						}
-					});
-					if ( result )
-						return false;
-				});
+					} ) );
+				} );
 
-				// If we found a matching result, return it. If not, bail.
-				return result ? result : null;
+				return result;
 			});
 
+			previewer.bind( 'ready', previewer.ready );
+
+			// Start listening for keep-alive messages when iframe first loads.
+			previewer.deferred.active.done( _.bind( previewer.keepPreviewAlive, previewer ) );
+
+			previewer.bind( 'synced', function() {
+				previewer.send( 'active' );
+			} );
+
 			// Refresh the preview when the URL is changed (but not yet).
-			this.previewUrl.bind( this.refresh );
+			previewer.previewUrl.bind( previewer.refresh );
 
-			this.scroll = 0;
-			this.bind( 'scroll', function( distance ) {
-				this.scroll = distance;
+			previewer.scroll = 0;
+			previewer.bind( 'scroll', function( distance ) {
+				previewer.scroll = distance;
 			});
 
-			// Update the URL when the iframe sends a URL message.
-			this.bind( 'url', this.previewUrl );
+			// Update the URL when the iframe sends a URL message, resetting scroll position. If URL is unchanged, then refresh.
+			previewer.bind( 'url', function( url ) {
+				var onUrlChange, urlChanged = false;
+				previewer.scroll = 0;
+				onUrlChange = function() {
+					urlChanged = true;
+				};
+				previewer.previewUrl.bind( onUrlChange );
+				previewer.previewUrl.set( url );
+				previewer.previewUrl.unbind( onUrlChange );
+				if ( ! urlChanged ) {
+					previewer.refresh();
+				}
+			} );
 
 			// Update the document title when the preview changes.
-			this.bind( 'documentTitle', function ( title ) {
+			previewer.bind( 'documentTitle', function ( title ) {
 				api.setDocumentTitle( title );
 			} );
 		},
 
+		/**
+		 * Handle the preview receiving the ready message.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @param {object} data - Data from preview.
+		 * @param {string} data.currentUrl - Current URL.
+		 * @param {object} data.activePanels - Active panels.
+		 * @param {object} data.activeSections Active sections.
+		 * @param {object} data.activeControls Active controls.
+		 * @returns {void}
+		 */
+		ready: function( data ) {
+			var previewer = this, synced = {}, constructs;
+
+			synced.settings = api.get();
+			synced['settings-modified-while-loading'] = previewer.settingsModifiedWhileLoading;
+			if ( 'resolved' !== previewer.deferred.active.state() || previewer.loading ) {
+				synced.scroll = previewer.scroll;
+			}
+			synced['edit-shortcut-visibility'] = api.state( 'editShortcutVisibility' ).get();
+			previewer.send( 'sync', synced );
+
+			// Set the previewUrl without causing the url to set the iframe.
+			if ( data.currentUrl ) {
+				previewer.previewUrl.unbind( previewer.refresh );
+				previewer.previewUrl.set( data.currentUrl );
+				previewer.previewUrl.bind( previewer.refresh );
+			}
+
+			/*
+			 * Walk over all panels, sections, and controls and set their
+			 * respective active states to true if the preview explicitly
+			 * indicates as such.
+			 */
+			constructs = {
+				panel: data.activePanels,
+				section: data.activeSections,
+				control: data.activeControls
+			};
+			_( constructs ).each( function ( activeConstructs, type ) {
+				api[ type ].each( function ( construct, id ) {
+					var isDynamicallyCreated = _.isUndefined( api.settings[ type + 's' ][ id ] );
+
+					/*
+					 * If the construct was created statically in PHP (not dynamically in JS)
+					 * then consider a missing (undefined) value in the activeConstructs to
+					 * mean it should be deactivated (since it is gone). But if it is
+					 * dynamically created then only toggle activation if the value is defined,
+					 * as this means that the construct was also then correspondingly
+					 * created statically in PHP and the active callback is available.
+					 * Otherwise, dynamically-created constructs should normally have
+					 * their active states toggled in JS rather than from PHP.
+					 */
+					if ( ! isDynamicallyCreated || ! _.isUndefined( activeConstructs[ id ] ) ) {
+						if ( activeConstructs[ id ] ) {
+							construct.activate();
+						} else {
+							construct.deactivate();
+						}
+					}
+				} );
+			} );
+
+			if ( data.settingValidities ) {
+				api._handleSettingValidities( {
+					settingValidities: data.settingValidities,
+					focusInvalidControl: false
+				} );
+			}
+		},
+
+		/**
+		 * Keep the preview alive by listening for ready and keep-alive messages.
+		 *
+		 * If a message is not received in the allotted time then the iframe will be set back to the last known valid URL.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @returns {void}
+		 */
+		keepPreviewAlive: function keepPreviewAlive() {
+			var previewer = this, keepAliveTick, timeoutId, handleMissingKeepAlive, scheduleKeepAliveCheck;
+
+			/**
+			 * Schedule a preview keep-alive check.
+			 *
+			 * Note that if a page load takes longer than keepAliveCheck milliseconds,
+			 * the keep-alive messages will still be getting sent from the previous
+			 * URL.
+			 */
+			scheduleKeepAliveCheck = function() {
+				timeoutId = setTimeout( handleMissingKeepAlive, api.settings.timeouts.keepAliveCheck );
+			};
+
+			/**
+			 * Set the previewerAlive state to true when receiving a message from the preview.
+			 */
+			keepAliveTick = function() {
+				api.state( 'previewerAlive' ).set( true );
+				clearTimeout( timeoutId );
+				scheduleKeepAliveCheck();
+			};
+
+			/**
+			 * Set the previewerAlive state to false if keepAliveCheck milliseconds have transpired without a message.
+			 *
+			 * This is most likely to happen in the case of a connectivity error, or if the theme causes the browser
+			 * to navigate to a non-allowed URL. Setting this state to false will force settings with a postMessage
+			 * transport to use refresh instead, causing the preview frame also to be replaced with the current
+			 * allowed preview URL.
+			 */
+			handleMissingKeepAlive = function() {
+				api.state( 'previewerAlive' ).set( false );
+			};
+			scheduleKeepAliveCheck();
+
+			previewer.bind( 'ready', keepAliveTick );
+			previewer.bind( 'keep-alive', keepAliveTick );
+		},
+
 		/**
 		 * Query string data sent with each preview request.
 		 *
@@ -3271,62 +3918,72 @@
 		},
 
 		/**
-		 * Refresh the preview.
+		 * Refresh the preview seamlessly.
+		 *
+		 * @since 3.4.0
+		 * @access public
+		 * @returns {void}
 		 */
 		refresh: function() {
-			var self = this;
+			var previewer = this, onSettingChange;
 
 			// Display loading indicator
-			this.send( 'loading-initiated' );
+			previewer.send( 'loading-initiated' );
 
-			this.abort();
+			previewer.abort();
 
-			this.loading = new api.PreviewFrame({
-				url:        this.url(),
-				previewUrl: this.previewUrl(),
-				query:      this.query() || {},
-				container:  this.container,
-				signature:  this.signature
+			previewer.loading = new api.PreviewFrame({
+				url:        previewer.url(),
+				previewUrl: previewer.previewUrl(),
+				query:      previewer.query( { excludeCustomizedSaved: true } ) || {},
+				container:  previewer.container
 			});
 
-			this.loading.done( function() {
-				// 'this' is the loading frame
-				this.bind( 'synced', function() {
-					if ( self.preview )
-						self.preview.destroy();
-					self.preview = this;
-					delete self.loading;
+			previewer.settingsModifiedWhileLoading = {};
+			onSettingChange = function( setting ) {
+				previewer.settingsModifiedWhileLoading[ setting.id ] = true;
+			};
+			api.bind( 'change', onSettingChange );
+			previewer.loading.always( function() {
+				api.unbind( 'change', onSettingChange );
+			} );
 
-					self.targetWindow( this.targetWindow() );
-					self.channel( this.channel() );
+			previewer.loading.done( function( readyData ) {
+				var loadingFrame = this, onceSynced;
 
-					self.deferred.active.resolve();
-					self.send( 'active' );
-				});
+				previewer.preview = loadingFrame;
+				previewer.targetWindow( loadingFrame.targetWindow() );
+				previewer.channel( loadingFrame.channel() );
 
-				this.send( 'sync', {
-					scroll:   self.scroll,
-					settings: api.get()
-				});
+				onceSynced = function() {
+					loadingFrame.unbind( 'synced', onceSynced );
+					if ( previewer._previousPreview ) {
+						previewer._previousPreview.destroy();
+					}
+					previewer._previousPreview = previewer.preview;
+					previewer.deferred.active.resolve();
+					delete previewer.loading;
+				};
+				loadingFrame.bind( 'synced', onceSynced );
+
+				// This event will be received directly by the previewer in normal navigation; this is only needed for seamless refresh.
+				previewer.trigger( 'ready', readyData );
 			});
 
-			this.loading.fail( function( reason, location ) {
-				self.send( 'loading-failed' );
-				if ( 'redirect' === reason && location ) {
-					self.previewUrl( location );
-				}
+			previewer.loading.fail( function( reason ) {
+				previewer.send( 'loading-failed' );
 
 				if ( 'logged out' === reason ) {
-					if ( self.preview ) {
-						self.preview.destroy();
-						delete self.preview;
+					if ( previewer.preview ) {
+						previewer.preview.destroy();
+						delete previewer.preview;
 					}
 
-					self.login().done( self.refresh );
+					previewer.login().done( previewer.refresh );
 				}
 
 				if ( 'cheatin' === reason ) {
-					self.cheatin();
+					previewer.cheatin();
 				}
 			});
 		},
@@ -3386,7 +4043,7 @@
 
 			request = wp.ajax.post( 'customize_refresh_nonces', {
 				wp_customize: 'on',
-				theme: api.settings.theme.stylesheet
+				customize_theme: api.settings.theme.stylesheet
 			});
 
 			request.done( function( response ) {
@@ -3404,15 +4061,16 @@
 
 	api.settingConstructor = {};
 	api.controlConstructor = {
-		color:         api.ColorControl,
-		media:         api.MediaControl,
-		upload:        api.UploadControl,
-		image:         api.ImageControl,
-		cropped_image: api.CroppedImageControl,
-		site_icon:     api.SiteIconControl,
-		header:        api.HeaderControl,
-		background:    api.BackgroundControl,
-		theme:         api.ThemeControl
+		color:               api.ColorControl,
+		media:               api.MediaControl,
+		upload:              api.UploadControl,
+		image:               api.ImageControl,
+		cropped_image:       api.CroppedImageControl,
+		site_icon:           api.SiteIconControl,
+		header:              api.HeaderControl,
+		background:          api.BackgroundControl,
+		background_position: api.BackgroundPositionControl,
+		theme:               api.ThemeControl
 	};
 	api.panelConstructor = {};
 	api.sectionConstructor = {
@@ -3443,12 +4101,13 @@
 				// Add notifications for invalidities.
 				if ( _.isObject( validity ) ) {
 					_.each( validity, function( params, code ) {
-						var notification = new api.Notification( code, params ), existingNotification, needsReplacement = false;
+						var notification, existingNotification, needsReplacement = false;
+						notification = new api.Notification( code, _.extend( { fromServer: true }, params ) );
 
 						// Remove existing notification if already exists for code but differs in parameters.
 						existingNotification = setting.notifications( notification.code );
 						if ( existingNotification ) {
-							needsReplacement = ( notification.type !== existingNotification.type ) || ! _.isEqual( notification.data, existingNotification.data );
+							needsReplacement = notification.type !== existingNotification.type || notification.message !== existingNotification.message || ! _.isEqual( notification.data, existingNotification.data );
 						}
 						if ( needsReplacement ) {
 							setting.notifications.remove( code );
@@ -3523,7 +4182,7 @@
 	 */
 	api.reflowPaneContents = _.bind( function () {
 
-		var appendContainer, activeElement, rootContainers, rootNodes = [], wasReflowed = false;
+		var appendContainer, activeElement, rootHeadContainers, rootNodes = [], wasReflowed = false;
 
 		if ( document.activeElement ) {
 			activeElement = $( document.activeElement );
@@ -3532,12 +4191,12 @@
 		// Sort the sections within each panel
 		api.panel.each( function ( panel ) {
 			var sections = panel.sections(),
-				sectionContainers = _.pluck( sections, 'container' );
+				sectionHeadContainers = _.pluck( sections, 'headContainer' );
 			rootNodes.push( panel );
-			appendContainer = panel.container.find( 'ul:first' );
-			if ( ! api.utils.areElementListsEqual( sectionContainers, appendContainer.children( '[id]' ) ) ) {
+			appendContainer = ( panel.contentContainer.is( 'ul' ) ) ? panel.contentContainer : panel.contentContainer.find( 'ul:first' );
+			if ( ! api.utils.areElementListsEqual( sectionHeadContainers, appendContainer.children( '[id]' ) ) ) {
 				_( sections ).each( function ( section ) {
-					appendContainer.append( section.container );
+					appendContainer.append( section.headContainer );
 				} );
 				wasReflowed = true;
 			}
@@ -3550,7 +4209,7 @@
 			if ( ! section.panel() ) {
 				rootNodes.push( section );
 			}
-			appendContainer = section.container.find( 'ul:first' );
+			appendContainer = ( section.contentContainer.is( 'ul' ) ) ? section.contentContainer : section.contentContainer.find( 'ul:first' );
 			if ( ! api.utils.areElementListsEqual( controlContainers, appendContainer.children( '[id]' ) ) ) {
 				_( controls ).each( function ( control ) {
 					appendContainer.append( control.container );
@@ -3561,11 +4220,11 @@
 
 		// Sort the root panels and sections
 		rootNodes.sort( api.utils.prioritySort );
-		rootContainers = _.pluck( rootNodes, 'container' );
-		appendContainer = $( '#customize-theme-controls' ).children( 'ul' ); // @todo This should be defined elsewhere, and to be configurable
-		if ( ! api.utils.areElementListsEqual( rootContainers, appendContainer.children() ) ) {
+		rootHeadContainers = _.pluck( rootNodes, 'headContainer' );
+		appendContainer = $( '#customize-theme-controls .customize-pane-parent' ); // @todo This should be defined elsewhere, and to be configurable
+		if ( ! api.utils.areElementListsEqual( rootHeadContainers, appendContainer.children() ) ) {
 			_( rootNodes ).each( function ( rootNode ) {
-				appendContainer.append( rootNode.container );
+				appendContainer.append( rootNode.headContainer );
 			} );
 			wasReflowed = true;
 		}
@@ -3601,7 +4260,14 @@
 			return;
 		}
 
-		var parent, topFocus,
+		if ( null === api.PreviewFrame.prototype.sensitivity ) {
+			api.PreviewFrame.prototype.sensitivity = api.settings.timeouts.previewFrameSensitivity;
+		}
+		if ( null === api.Previewer.prototype.refreshBuffer ) {
+			api.Previewer.prototype.refreshBuffer = api.settings.timeouts.windowRefresh;
+		}
+
+		var parent,
 			body = $( document.body ),
 			overlay = body.children( '.wp-full-overlay' ),
 			title = $( '#customize-info .panel-title.site-title' ),
@@ -3644,8 +4310,7 @@
 			container:   '#customize-preview',
 			form:        '#customize-controls',
 			previewUrl:  api.settings.url.preview,
-			allowedUrls: api.settings.url.allowed,
-			signature:   'WP_CUSTOMIZER_SIGNATURE'
+			allowedUrls: api.settings.url.allowed
 		}, {
 
 			nonce: api.settings.nonce,
@@ -3653,26 +4318,55 @@
 			/**
 			 * Build the query to send along with the Preview request.
 			 *
-			 * @return {object}
+			 * @since 3.4.0
+			 * @since 4.7.0 Added options param.
+			 * @access public
+			 *
+			 * @param {object}  [options] Options.
+			 * @param {boolean} [options.excludeCustomizedSaved=false] Exclude saved settings in customized response (values pending writing to changeset).
+			 * @return {object} Query vars.
 			 */
-			query: function() {
-				var dirtyCustomized = {};
-				api.each( function ( value, key ) {
-					if ( value._dirty ) {
-						dirtyCustomized[ key ] = value();
-					}
-				} );
-
-				return {
+			query: function( options ) {
+				var queryVars = {
 					wp_customize: 'on',
-					theme:      api.settings.theme.stylesheet,
-					customized: JSON.stringify( dirtyCustomized ),
-					nonce:      this.nonce.preview
+					customize_theme: api.settings.theme.stylesheet,
+					nonce: this.nonce.preview,
+					customize_changeset_uuid: api.settings.changeset.uuid
 				};
+
+				/*
+				 * Exclude customized data if requested especially for calls to requestChangesetUpdate.
+				 * Changeset updates are differential and so it is a performance waste to send all of
+				 * the dirty settings with each update.
+				 */
+				queryVars.customized = JSON.stringify( api.dirtyValues( {
+					unsaved: options && options.excludeCustomizedSaved
+				} ) );
+
+				return queryVars;
 			},
 
-			save: function() {
-				var self = this,
+			/**
+			 * Save (and publish) the customizer changeset.
+			 *
+			 * Updates to the changeset are transactional. If any of the settings
+			 * are invalid then none of them will be written into the changeset.
+			 * A revision will be made for the changeset post if revisions support
+			 * has been added to the post type.
+			 *
+			 * @since 3.4.0
+			 * @since 4.7.0 Added args param and return value.
+			 *
+			 * @param {object} [args] Args.
+			 * @param {string} [args.status=publish] Status.
+			 * @param {string} [args.date] Date, in local time in MySQL format.
+			 * @param {string} [args.title] Title
+			 * @returns {jQuery.promise} Promise.
+			 */
+			save: function( args ) {
+				var previewer = this,
+					deferred = $.Deferred(),
+					changesetStatus = 'publish',
 					processing = api.state( 'processing' ),
 					submitWhenDoneProcessing,
 					submit,
@@ -3680,7 +4374,16 @@
 					invalidSettings = [],
 					invalidControls;
 
-				body.addClass( 'saving' );
+				if ( args && args.status ) {
+					changesetStatus = args.status;
+				}
+
+				if ( api.state( 'saving' ).get() ) {
+					deferred.reject( 'already_saving' );
+					deferred.promise();
+				}
+
+				api.state( 'saving' ).set( true );
 
 				function captureSettingModifiedDuringSave( setting ) {
 					modifiedWhileSaving[ setting.id ] = true;
@@ -3688,7 +4391,7 @@
 				api.bind( 'change', captureSettingModifiedDuringSave );
 
 				submit = function () {
-					var request, query;
+					var request, query, settingInvalidities = {}, latestRevision = api._latestRevision;
 
 					/*
 					 * Block saving if there are any settings that are marked as
@@ -3697,22 +4400,52 @@
 					 */
 					api.each( function( setting ) {
 						setting.notifications.each( function( notification ) {
-							if ( 'error' === notification.type && ( ! notification.data || ! notification.data.from_server ) ) {
+							if ( 'error' === notification.type && ! notification.fromServer ) {
 								invalidSettings.push( setting.id );
+								if ( ! settingInvalidities[ setting.id ] ) {
+									settingInvalidities[ setting.id ] = {};
+								}
+								settingInvalidities[ setting.id ][ notification.code ] = notification;
 							}
 						} );
 					} );
 					invalidControls = api.findControlsForSettings( invalidSettings );
 					if ( ! _.isEmpty( invalidControls ) ) {
 						_.values( invalidControls )[0][0].focus();
-						body.removeClass( 'saving' );
 						api.unbind( 'change', captureSettingModifiedDuringSave );
-						return;
+						deferred.rejectWith( previewer, [
+							{ setting_invalidities: settingInvalidities }
+						] );
+						api.state( 'saving' ).set( false );
+						return deferred.promise();
 					}
 
-					query = $.extend( self.query(), {
-						nonce:  self.nonce.save
+					/*
+					 * Note that excludeCustomizedSaved is intentionally false so that the entire
+					 * set of customized data will be included if bypassed changeset update.
+					 */
+					query = $.extend( previewer.query( { excludeCustomizedSaved: false } ), {
+						nonce: previewer.nonce.save,
+						customize_changeset_status: changesetStatus
 					} );
+					if ( args && args.date ) {
+						query.customize_changeset_date = args.date;
+					}
+					if ( args && args.title ) {
+						query.customize_changeset_title = args.title;
+					}
+
+					/*
+					 * Note that the dirty customized values will have already been set in the
+					 * changeset and so technically query.customized could be deleted. However,
+					 * it is remaining here to make sure that any settings that got updated
+					 * quietly which may have not triggered an update request will also get
+					 * included in the values that get saved to the changeset. This will ensure
+					 * that values that get injected via the saved event will be included in
+					 * the changeset. This also ensures that setting values that were invalid
+					 * will get re-validated, perhaps in the case of settings that are invalid
+					 * due to dependencies on other settings.
+					 */
 					request = wp.ajax.post( 'customize_save', query );
 
 					// Disable save button during the save request.
@@ -3721,12 +4454,13 @@
 					api.trigger( 'save', request );
 
 					request.always( function () {
-						body.removeClass( 'saving' );
+						api.state( 'saving' ).set( false );
 						saveBtn.prop( 'disabled', false );
 						api.unbind( 'change', captureSettingModifiedDuringSave );
 					} );
 
 					request.fail( function ( response ) {
+
 						if ( '0' === response ) {
 							response = 'not_logged_in';
 						} else if ( '-1' === response ) {
@@ -3735,12 +4469,12 @@
 						}
 
 						if ( 'invalid_nonce' === response ) {
-							self.cheatin();
+							previewer.cheatin();
 						} else if ( 'not_logged_in' === response ) {
-							self.preview.iframe.hide();
-							self.login().done( function() {
-								self.save();
-								self.preview.iframe.show();
+							previewer.preview.iframe.hide();
+							previewer.login().done( function() {
+								previewer.save();
+								previewer.preview.iframe.show();
 							} );
 						}
 
@@ -3751,19 +4485,34 @@
 							} );
 						}
 
+						deferred.rejectWith( previewer, [ response ] );
 						api.trigger( 'error', response );
 					} );
 
 					request.done( function( response ) {
 
-						// Clear setting dirty states, if setting wasn't modified while saving.
-						api.each( function( setting ) {
-							if ( ! modifiedWhileSaving[ setting.id ] ) {
-								setting._dirty = false;
-							}
-						} );
+						previewer.send( 'saved', response );
+
+						api.state( 'changesetStatus' ).set( response.changeset_status );
+						if ( 'publish' === response.changeset_status ) {
+
+							// Mark all published as clean if they haven't been modified during the request.
+							api.each( function( setting ) {
+								/*
+								 * Note that the setting revision will be undefined in the case of setting
+								 * values that are marked as dirty when the customizer is loaded, such as
+								 * when applying starter content. All other dirty settings will have an
+								 * associated revision due to their modification triggering a change event.
+								 */
+								if ( setting._dirty && ( _.isUndefined( api._latestSettingRevisions[ setting.id ] ) || api._latestSettingRevisions[ setting.id ] <= latestRevision ) ) {
+									setting._dirty = false;
+								}
+							} );
 
-						api.previewer.send( 'saved', response );
+							api.state( 'changesetStatus' ).set( '' );
+							api.settings.changeset.uuid = response.next_changeset_uuid;
+							parent.send( 'changeset-uuid', api.settings.changeset.uuid );
+						}
 
 						if ( response.setting_validities ) {
 							api._handleSettingValidities( {
@@ -3772,6 +4521,7 @@
 							} );
 						}
 
+						deferred.resolveWith( previewer, [ response ] );
 						api.trigger( 'saved', response );
 
 						// Restore the global dirty state if any settings were modified during save.
@@ -3793,6 +4543,7 @@
 					api.state.bind( 'change', submitWhenDoneProcessing );
 				}
 
+				return deferred.promise();
 			}
 		});
 
@@ -3879,53 +4630,84 @@
 
 		api.bind( 'ready', api.reflowPaneContents );
 		$( [ api.panel, api.section, api.control ] ).each( function ( i, values ) {
-			var debouncedReflowPaneContents = _.debounce( api.reflowPaneContents, 100 );
+			var debouncedReflowPaneContents = _.debounce( api.reflowPaneContents, api.settings.timeouts.reflowPaneContents );
 			values.bind( 'add', debouncedReflowPaneContents );
 			values.bind( 'change', debouncedReflowPaneContents );
 			values.bind( 'remove', debouncedReflowPaneContents );
 		} );
 
-		// Check if preview url is valid and load the preview frame.
-		if ( api.previewer.previewUrl() ) {
-			api.previewer.refresh();
-		} else {
-			api.previewer.previewUrl( api.settings.url.home );
-		}
-
 		// Save and activated states
 		(function() {
 			var state = new api.Values(),
 				saved = state.create( 'saved' ),
+				saving = state.create( 'saving' ),
 				activated = state.create( 'activated' ),
-				processing = state.create( 'processing' );
+				processing = state.create( 'processing' ),
+				paneVisible = state.create( 'paneVisible' ),
+				expandedPanel = state.create( 'expandedPanel' ),
+				expandedSection = state.create( 'expandedSection' ),
+				changesetStatus = state.create( 'changesetStatus' ),
+				previewerAlive = state.create( 'previewerAlive' ),
+				editShortcutVisibility  = state.create( 'editShortcutVisibility' ),
+				populateChangesetUuidParam;
 
 			state.bind( 'change', function() {
+				var canSave;
+
 				if ( ! activated() ) {
-					saveBtn.val( api.l10n.activate ).prop( 'disabled', false );
+					saveBtn.val( api.l10n.activate );
 					closeBtn.find( '.screen-reader-text' ).text( api.l10n.cancel );
 
-				} else if ( saved() ) {
-					saveBtn.val( api.l10n.saved ).prop( 'disabled', true );
+				} else if ( '' === changesetStatus.get() && saved() ) {
+					saveBtn.val( api.l10n.saved );
 					closeBtn.find( '.screen-reader-text' ).text( api.l10n.close );
 
 				} else {
-					saveBtn.val( api.l10n.save ).prop( 'disabled', false );
+					saveBtn.val( api.l10n.save );
 					closeBtn.find( '.screen-reader-text' ).text( api.l10n.cancel );
 				}
+
+				/*
+				 * Save (publish) button should be enabled if saving is not currently happening,
+				 * and if the theme is not active or the changeset exists but is not published.
+				 */
+				canSave = ! saving() && ( ! activated() || ! saved() || ( '' !== changesetStatus() && 'publish' !== changesetStatus() ) );
+
+				saveBtn.prop( 'disabled', ! canSave );
 			});
 
 			// Set default states.
+			changesetStatus( api.settings.changeset.status );
 			saved( true );
+			if ( '' === changesetStatus() ) { // Handle case for loading starter content.
+				api.each( function( setting ) {
+					if ( setting._dirty ) {
+						saved( false );
+					}
+				} );
+			}
+			saving( false );
 			activated( api.settings.theme.active );
 			processing( 0 );
+			paneVisible( true );
+			expandedPanel( false );
+			expandedSection( false );
+			previewerAlive( true );
+			editShortcutVisibility( 'visible' );
 
 			api.bind( 'change', function() {
 				state('saved').set( false );
 			});
 
-			api.bind( 'saved', function() {
+			saving.bind( function( isSaving ) {
+				body.toggleClass( 'saving', isSaving );
+			} );
+
+			api.bind( 'saved', function( response ) {
 				state('saved').set( true );
-				state('activated').set( true );
+				if ( 'publish' === response.changeset_status ) {
+					state( 'activated' ).set( true );
+				}
 			});
 
 			activated.bind( function( to ) {
@@ -3934,10 +4716,52 @@
 				}
 			});
 
+			/**
+			 * Populate URL with UUID via `history.replaceState()`.
+			 *
+			 * @since 4.7.0
+			 * @access private
+			 *
+			 * @param {boolean} isIncluded Is UUID included.
+			 * @returns {void}
+			 */
+			populateChangesetUuidParam = function( isIncluded ) {
+				var urlParser, queryParams;
+				urlParser = document.createElement( 'a' );
+				urlParser.href = location.href;
+				queryParams = api.utils.parseQueryString( urlParser.search.substr( 1 ) );
+				if ( isIncluded ) {
+					if ( queryParams.changeset_uuid === api.settings.changeset.uuid ) {
+						return;
+					}
+					queryParams.changeset_uuid = api.settings.changeset.uuid;
+				} else {
+					if ( ! queryParams.changeset_uuid ) {
+						return;
+					}
+					delete queryParams.changeset_uuid;
+				}
+				urlParser.search = $.param( queryParams );
+				history.replaceState( {}, document.title, urlParser.href );
+			};
+
+			if ( history.replaceState ) {
+				changesetStatus.bind( function( newStatus ) {
+					populateChangesetUuidParam( '' !== newStatus && 'publish' !== newStatus );
+				} );
+			}
+
 			// Expose states to the API.
 			api.state = state;
 		}());
 
+		// Check if preview url is valid and load the preview frame.
+		if ( api.previewer.previewUrl() ) {
+			api.previewer.refresh();
+		} else {
+			api.previewer.previewUrl( api.settings.url.home );
+		}
+
 		// Button bindings.
 		saveBtn.click( function( event ) {
 			api.previewer.save();
@@ -3959,13 +4783,19 @@
 		});
 
 		$( '.collapse-sidebar' ).on( 'click', function() {
-			if ( 'true' === $( this ).attr( 'aria-expanded' ) ) {
-				$( this ).attr({ 'aria-expanded': 'false', 'aria-label': api.l10n.expandSidebar });
+			api.state( 'paneVisible' ).set( ! api.state( 'paneVisible' ).get() );
+		});
+
+		api.state( 'paneVisible' ).bind( function( paneVisible ) {
+			overlay.toggleClass( 'preview-only', ! paneVisible );
+			overlay.toggleClass( 'expanded', paneVisible );
+			overlay.toggleClass( 'collapsed', ! paneVisible );
+
+			if ( ! paneVisible ) {
+				$( '.collapse-sidebar' ).attr({ 'aria-expanded': 'false', 'aria-label': api.l10n.expandSidebar });
 			} else {
-				$( this ).attr({ 'aria-expanded': 'true', 'aria-label': api.l10n.collapseSidebar });
+				$( '.collapse-sidebar' ).attr({ 'aria-expanded': 'true', 'aria-label': api.l10n.collapseSidebar });
 			}
-
-			overlay.toggleClass( 'collapsed' ).toggleClass( 'expanded' );
 		});
 
 		// Keyboard shortcuts - esc to exit section/panel.
@@ -3976,6 +4806,14 @@
 				return;
 			}
 
+			/*
+			 * Abort if the event target is not the body (the default) and not inside of #customize-controls.
+			 * This ensures that ESC meant to collapse a modal dialog or a TinyMCE toolbar won't collapse something else.
+			 */
+			if ( ! $( event.target ).is( 'body' ) && ! $.contains( $( '#customize-controls' )[0], event.target ) ) {
+				return;
+			}
+
 			// Check for expanded expandable controls (e.g. widgets and nav menus items), sections, and panels.
 			api.control.each( function( control ) {
 				if ( control.expanded && control.expanded() && _.isFunction( control.collapse ) ) {
@@ -4007,9 +4845,194 @@
 		});
 
 		$( '.customize-controls-preview-toggle' ).on( 'click', function() {
-			overlay.toggleClass( 'preview-only' );
+			api.state( 'paneVisible' ).set( ! api.state( 'paneVisible' ).get() );
 		});
 
+		/*
+		 * Sticky header feature.
+		 */
+		(function initStickyHeaders() {
+			var parentContainer = $( '.wp-full-overlay-sidebar-content' ),
+				changeContainer, getHeaderHeight, releaseStickyHeader, resetStickyHeader, positionStickyHeader,
+				activeHeader, lastScrollTop;
+
+			/**
+			 * Determine which panel or section is currently expanded.
+			 *
+			 * @since 4.7.0
+			 * @access private
+			 *
+			 * @param {wp.customize.Panel|wp.customize.Section} container Construct.
+			 * @returns {void}
+			 */
+			changeContainer = function( container ) {
+				var newInstance = container,
+					expandedSection = api.state( 'expandedSection' ).get(),
+					expandedPanel = api.state( 'expandedPanel' ).get(),
+					headerElement;
+
+				// Release previously active header element.
+				if ( activeHeader && activeHeader.element ) {
+					releaseStickyHeader( activeHeader.element );
+				}
+
+				if ( ! newInstance ) {
+					if ( ! expandedSection && expandedPanel && expandedPanel.contentContainer ) {
+						newInstance = expandedPanel;
+					} else if ( ! expandedPanel && expandedSection && expandedSection.contentContainer ) {
+						newInstance = expandedSection;
+					} else {
+						activeHeader = false;
+						return;
+					}
+				}
+
+				headerElement = newInstance.contentContainer.find( '.customize-section-title, .panel-meta' ).first();
+				if ( headerElement.length ) {
+					activeHeader = {
+						instance: newInstance,
+						element:  headerElement,
+						parent:   headerElement.closest( '.customize-pane-child' ),
+						height:   getHeaderHeight( headerElement )
+					};
+					if ( expandedSection ) {
+						resetStickyHeader( activeHeader.element, activeHeader.parent );
+					}
+				} else {
+					activeHeader = false;
+				}
+			};
+			api.state( 'expandedSection' ).bind( changeContainer );
+			api.state( 'expandedPanel' ).bind( changeContainer );
+
+			// Throttled scroll event handler.
+			parentContainer.on( 'scroll', _.throttle( function() {
+				if ( ! activeHeader ) {
+					return;
+				}
+
+				var scrollTop = parentContainer.scrollTop(),
+					isScrollingUp = ( lastScrollTop ) ? scrollTop <= lastScrollTop : true;
+
+				lastScrollTop = scrollTop;
+				positionStickyHeader( activeHeader, scrollTop, isScrollingUp );
+			}, 8 ) );
+
+			// Release header element if it is sticky.
+			releaseStickyHeader = function( headerElement ) {
+				if ( ! headerElement.hasClass( 'is-sticky' ) ) {
+					return;
+				}
+				headerElement
+					.removeClass( 'is-sticky' )
+					.addClass( 'maybe-sticky is-in-view' )
+					.css( 'top', parentContainer.scrollTop() + 'px' );
+			};
+
+			// Reset position of the sticky header.
+			resetStickyHeader = function( headerElement, headerParent ) {
+				headerElement
+					.removeClass( 'maybe-sticky is-in-view' )
+					.css( {
+						width: '',
+						top: ''
+					} );
+				headerParent.css( 'padding-top', '' );
+			};
+
+			/**
+			 * Get header height.
+			 *
+			 * @since 4.7.0
+			 * @access private
+			 *
+			 * @param {jQuery} headerElement Header element.
+			 * @returns {number} Height.
+			 */
+			getHeaderHeight = function( headerElement ) {
+				var height = headerElement.data( 'height' );
+				if ( ! height ) {
+					height = headerElement.outerHeight();
+					headerElement.data( 'height', height );
+				}
+				return height;
+			};
+
+			/**
+			 * Reposition header on throttled `scroll` event.
+			 *
+			 * @since 4.7.0
+			 * @access private
+			 *
+			 * @param {object}  header        Header.
+			 * @param {number}  scrollTop     Scroll top.
+			 * @param {boolean} isScrollingUp Is scrolling up?
+			 * @returns {void}
+			 */
+			positionStickyHeader = function( header, scrollTop, isScrollingUp ) {
+				var headerElement = header.element,
+					headerParent = header.parent,
+					headerHeight = header.height,
+					headerTop = parseInt( headerElement.css( 'top' ), 10 ),
+					maybeSticky = headerElement.hasClass( 'maybe-sticky' ),
+					isSticky = headerElement.hasClass( 'is-sticky' ),
+					isInView = headerElement.hasClass( 'is-in-view' );
+
+				// When scrolling down, gradually hide sticky header.
+				if ( ! isScrollingUp ) {
+					if ( isSticky ) {
+						headerTop = scrollTop;
+						headerElement
+							.removeClass( 'is-sticky' )
+							.css( {
+								top:   headerTop + 'px',
+								width: ''
+							} );
+					}
+					if ( isInView && scrollTop > headerTop + headerHeight ) {
+						headerElement.removeClass( 'is-in-view' );
+						headerParent.css( 'padding-top', '' );
+					}
+					return;
+				}
+
+				// Scrolling up.
+				if ( ! maybeSticky && scrollTop >= headerHeight ) {
+					maybeSticky = true;
+					headerElement.addClass( 'maybe-sticky' );
+				} else if ( 0 === scrollTop ) {
+					// Reset header in base position.
+					headerElement
+						.removeClass( 'maybe-sticky is-in-view is-sticky' )
+						.css( {
+							top:   '',
+							width: ''
+						} );
+					headerParent.css( 'padding-top', '' );
+					return;
+				}
+
+				if ( isInView && ! isSticky ) {
+					// Header is in the view but is not yet sticky.
+					if ( headerTop >= scrollTop ) {
+						// Header is fully visible.
+						headerElement
+							.addClass( 'is-sticky' )
+							.css( {
+								top:   '',
+								width: headerParent.outerWidth() + 'px'
+							} );
+					}
+				} else if ( maybeSticky && ! isInView ) {
+					// Header is out of the view.
+					headerElement
+						.addClass( 'is-in-view' )
+						.css( 'top', ( scrollTop - headerHeight ) + 'px' );
+					headerParent.css( 'padding-top', headerHeight + 'px' );
+				}
+			};
+		}());
+
 		// Previewed device bindings.
 		api.previewedDevice = new api.Value();
 
@@ -4084,7 +5107,7 @@
 		});
 
 		// Prompt user with AYS dialog if leaving the Customizer with unsaved changes
-		$( window ).on( 'beforeunload', function () {
+		$( window ).on( 'beforeunload.customize-confirm', function () {
 			if ( ! api.state( 'saved' )() ) {
 				setTimeout( function() {
 					overlay.removeClass( 'customize-loading' );
@@ -4105,13 +5128,15 @@
 			parent.send( 'title', newTitle );
 		});
 
+		parent.send( 'changeset-uuid', api.settings.changeset.uuid );
+
 		// Initialize the connection with the parent frame.
 		parent.send( 'ready' );
 
 		// Control visibility for default controls
 		$.each({
 			'background_image': {
-				controls: [ 'background_repeat', 'background_position_x', 'background_attachment' ],
+				controls: [ 'background_preset', 'background_position', 'background_size', 'background_repeat', 'background_attachment' ],
 				callback: function( to ) { return !! to; }
 			},
 			'show_on_front': {
@@ -4137,6 +5162,92 @@
 			});
 		});
 
+		api.control( 'background_preset', function( control ) {
+			var visibility, defaultValues, values, toggleVisibility, updateSettings, preset;
+
+			visibility = { // position, size, repeat, attachment
+				'default': [ false, false, false, false ],
+				'fill': [ true, false, false, false ],
+				'fit': [ true, false, true, false ],
+				'repeat': [ true, false, false, true ],
+				'custom': [ true, true, true, true ]
+			};
+
+			defaultValues = [
+				_wpCustomizeBackground.defaults['default-position-x'],
+				_wpCustomizeBackground.defaults['default-position-y'],
+				_wpCustomizeBackground.defaults['default-size'],
+				_wpCustomizeBackground.defaults['default-repeat'],
+				_wpCustomizeBackground.defaults['default-attachment']
+			];
+
+			values = { // position_x, position_y, size, repeat, attachment
+				'default': defaultValues,
+				'fill': [ 'left', 'top', 'cover', 'no-repeat', 'fixed' ],
+				'fit': [ 'left', 'top', 'contain', 'no-repeat', 'fixed' ],
+				'repeat': [ 'left', 'top', 'auto', 'repeat', 'scroll' ]
+			};
+
+			// @todo These should actually toggle the active state, but without the preview overriding the state in data.activeControls.
+			toggleVisibility = function( preset ) {
+				_.each( [ 'background_position', 'background_size', 'background_repeat', 'background_attachment' ], function( controlId, i ) {
+					var control = api.control( controlId );
+					if ( control ) {
+						control.container.toggle( visibility[ preset ][ i ] );
+					}
+				} );
+			};
+
+			updateSettings = function( preset ) {
+				_.each( [ 'background_position_x', 'background_position_y', 'background_size', 'background_repeat', 'background_attachment' ], function( settingId, i ) {
+					var setting = api( settingId );
+					if ( setting ) {
+						setting.set( values[ preset ][ i ] );
+					}
+				} );
+			};
+
+			preset = control.setting.get();
+			toggleVisibility( preset );
+
+			control.setting.bind( 'change', function( preset ) {
+				toggleVisibility( preset );
+				if ( 'custom' !== preset ) {
+					updateSettings( preset );
+				}
+			} );
+		} );
+
+		api.control( 'background_repeat', function( control ) {
+			control.elements[0].unsync( api( 'background_repeat' ) );
+
+			control.element = new api.Element( control.container.find( 'input' ) );
+			control.element.set( 'no-repeat' !== control.setting() );
+
+			control.element.bind( function( to ) {
+				control.setting.set( to ? 'repeat' : 'no-repeat' );
+			} );
+
+			control.setting.bind( function( to ) {
+				control.element.set( 'no-repeat' !== to );
+			} );
+		} );
+
+		api.control( 'background_attachment', function( control ) {
+			control.elements[0].unsync( api( 'background_attachment' ) );
+
+			control.element = new api.Element( control.container.find( 'input' ) );
+			control.element.set( 'fixed' !== control.setting() );
+
+			control.element.bind( function( to ) {
+				control.setting.set( to ? 'scroll' : 'fixed' );
+			} );
+
+			control.setting.bind( function( to ) {
+				control.element.set( 'fixed' !== to );
+			} );
+		} );
+
 		// Juggle the two controls that use header_textcolor
 		api.control( 'display_header_text', function( control ) {
 			var last = '';
@@ -4179,6 +5290,73 @@
 			});
 		});
 
+		// Allow tabs to be entered in Custom CSS textarea.
+		api.control( 'custom_css', function setupCustomCssControl( control ) {
+			control.deferred.embedded.done( function allowTabs() {
+				var $textarea = control.container.find( 'textarea' ), textarea = $textarea[0];
+
+				$textarea.on( 'blur', function onBlur() {
+					$textarea.data( 'next-tab-blurs', false );
+				} );
+
+				$textarea.on( 'keydown', function onKeydown( event ) {
+					var selectionStart, selectionEnd, value, scroll, tabKeyCode = 9, escKeyCode = 27;
+
+					if ( escKeyCode === event.keyCode ) {
+						if ( ! $textarea.data( 'next-tab-blurs' ) ) {
+							$textarea.data( 'next-tab-blurs', true );
+							event.stopPropagation(); // Prevent collapsing the section.
+						}
+						return;
+					}
+
+					// Short-circuit if tab key is not being pressed or if a modifier key *is* being pressed.
+					if ( tabKeyCode !== event.keyCode || event.ctrlKey || event.altKey || event.shiftKey ) {
+						return;
+					}
+
+					// Prevent capturing Tab characters if Esc was pressed.
+					if ( $textarea.data( 'next-tab-blurs' ) ) {
+						return;
+					}
+
+					selectionStart = textarea.selectionStart;
+					selectionEnd = textarea.selectionEnd;
+					value = textarea.value;
+
+					if ( selectionStart >= 0 ) {
+						scroll = $textarea.scrollTop;
+						textarea.value = value.substring( 0, selectionStart ).concat( '\t', value.substring( selectionEnd ) );
+						$textarea.selectionStart = textarea.selectionEnd = selectionStart + 1;
+						textarea.scrollTop = scroll;
+					}
+
+					event.stopPropagation();
+					event.preventDefault();
+				} );
+			} );
+		} );
+
+		// Toggle visibility of Header Video notice when active state change.
+		api.control( 'header_video', function( headerVideoControl ) {
+			headerVideoControl.deferred.embedded.done( function() {
+				var toggleNotice = function() {
+					var section = api.section( headerVideoControl.section() ), notice;
+					if ( ! section ) {
+						return;
+					}
+					notice = section.container.find( '.header-video-not-currently-previewable:first' );
+					if ( headerVideoControl.active.get() ) {
+						notice.stop().slideUp( 'fast' );
+					} else {
+						notice.stop().slideDown( 'fast' );
+					}
+				};
+				toggleNotice();
+				headerVideoControl.active.bind( toggleNotice );
+			} );
+		} );
+
 		// Update the setting validities.
 		api.previewer.bind( 'selective-refresh-setting-validities', function handleSelectiveRefreshedSettingValidities( settingValidities ) {
 			api._handleSettingValidities( {
@@ -4207,15 +5385,77 @@
 			api.previewer.refresh();
 		});
 
-		api.trigger( 'ready' );
+		// Update the edit shortcut visibility state.
+		api.state( 'paneVisible' ).bind( function( isPaneVisible ) {
+			var isMobileScreen;
+			if ( window.matchMedia ) {
+				isMobileScreen = window.matchMedia( 'screen and ( max-width: 640px )' ).matches;
+			} else {
+				isMobileScreen = $( window ).width() <= 640;
+			}
+			api.state( 'editShortcutVisibility' ).set( isPaneVisible || isMobileScreen ? 'visible' : 'hidden' );
+		} );
+		if ( window.matchMedia ) {
+			window.matchMedia( 'screen and ( max-width: 640px )' ).addListener( function() {
+				var state = api.state( 'paneVisible' );
+				state.callbacks.fireWith( state, [ state.get(), state.get() ] );
+			} );
+		}
+		api.previewer.bind( 'edit-shortcut-visibility', function( visibility ) {
+			api.state( 'editShortcutVisibility' ).set( visibility );
+		} );
+		api.state( 'editShortcutVisibility' ).bind( function( visibility ) {
+			api.previewer.send( 'edit-shortcut-visibility', visibility );
+		} );
 
-		// Make sure left column gets focus
-		topFocus = closeBtn;
-		topFocus.focus();
-		setTimeout(function () {
-			topFocus.focus();
-		}, 200);
+		// Autosave changeset.
+		( function() {
+			var timeoutId, updateChangesetWithReschedule, scheduleChangesetUpdate, updatePending = false;
 
+			/**
+			 * Request changeset update and then re-schedule the next changeset update time.
+			 *
+			 * @since 4.7.0
+			 * @private
+			 */
+			updateChangesetWithReschedule = function() {
+				if ( ! updatePending ) {
+					updatePending = true;
+					api.requestChangesetUpdate().always( function() {
+						updatePending = false;
+					} );
+				}
+				scheduleChangesetUpdate();
+			};
+
+			/**
+			 * Schedule changeset update.
+			 *
+			 * @since 4.7.0
+			 * @private
+			 */
+			scheduleChangesetUpdate = function() {
+				clearTimeout( timeoutId );
+				timeoutId = setTimeout( function() {
+					updateChangesetWithReschedule();
+				}, api.settings.timeouts.changesetAutoSave );
+			};
+
+			// Start auto-save interval for updating changeset.
+			scheduleChangesetUpdate();
+
+			// Save changeset when focus removed from window.
+			$( window ).on( 'blur.wp-customize-changeset-update', function() {
+				updateChangesetWithReschedule();
+			} );
+
+			// Save changeset before unloading window.
+			$( window ).on( 'beforeunload.wp-customize-changeset-update', function() {
+				updateChangesetWithReschedule();
+			} );
+		} ());
+
+		api.trigger( 'ready' );
 	});
 
 })( wp, jQuery );
diff --git a/wp-admin/js/customize-controls.min.js b/wp-admin/js/customize-controls.min.js
index a9a63de82..84b2edbcd 100644
--- a/wp-admin/js/customize-controls.min.js
+++ b/wp-admin/js/customize-controls.min.js
@@ -1,2 +1,2 @@
-!function(a,b){var c,d,e=wp.customize;e.Setting=e.Value.extend({initialize:function(a,b,c){e.Value.prototype.initialize.call(this,b,c),this.id=a,this.transport=this.transport||"refresh",this._dirty=c.dirty||!1,this.notifications=new e.Values({defaultConstructor:e.Notification}),this.bind(this.preview)},preview:function(){switch(this.transport){case"refresh":return this.previewer.refresh();case"postMessage":return this.previewer.send("setting",[this.id,this()])}},findControls:function(){var a=this,b=[];return e.control.each(function(c){_.each(c.settings,function(d){d.id===a.id&&b.push(c)})}),b}}),e.utils={},e.utils.bubbleChildValueChanges=function(a,c){b.each(c,function(b,c){a[c].bind(function(b,c){a.parent&&b!==c&&a.parent.trigger("change",a)})})},d=function(a){var b,c,d,f;b=this,a=a||{},d=function(){var a;a=b.extended(e.Panel)&&b.expanded&&b.expanded()?b.container.find("ul.control-panel-content"):b.extended(e.Section)&&b.expanded&&b.expanded()?b.container.find("ul.accordion-section-content"):b.container,f=a.find(".control-focus:first"),0===f.length&&(f=a.find("input, select, textarea, button, object, a[href], [tabindex]").filter(":visible").first()),f.focus()},a.completeCallback?(c=a.completeCallback,a.completeCallback=function(){d(),c()}):a.completeCallback=d,b.expand?b.expand(a):a.completeCallback()},e.utils.prioritySort=function(a,b){return a.priority()===b.priority()&&"number"==typeof a.params.instanceNumber&&"number"==typeof b.params.instanceNumber?a.params.instanceNumber-b.params.instanceNumber:a.priority()-b.priority()},e.utils.isKeydownButNotEnterEvent=function(a){return"keydown"===a.type&&13!==a.which},e.utils.areElementListsEqual=function(a,c){var d=a.length===c.length&&-1===_.indexOf(_.map(_.zip(a,c),function(a){return b(a[0]).is(a[1])}),!1);return d},c=e.Class.extend({defaultActiveArguments:{duration:"fast",completeCallback:b.noop},defaultExpandedArguments:{duration:"fast",completeCallback:b.noop},containerType:"container",defaults:{title:"",description:"",priority:100,type:"default",content:null,active:!0,instanceNumber:null},initialize:function(a,c){var d=this;d.id=a,c=c||{},c.params=_.defaults(c.params||{},d.defaults),b.extend(d,c),d.templateSelector="customize-"+d.containerType+"-"+d.params.type,d.container=b(d.params.content),0===d.container.length&&(d.container=b(d.getContainer())),d.deferred={embedded:new b.Deferred},d.priority=new e.Value,d.active=new e.Value,d.activeArgumentsQueue=[],d.expanded=new e.Value,d.expandedArgumentsQueue=[],d.active.bind(function(a){var c=d.activeArgumentsQueue.shift();c=b.extend({},d.defaultActiveArguments,c),a=a&&d.isContextuallyActive(),d.onChangeActive(a,c)}),d.expanded.bind(function(a){var c=d.expandedArgumentsQueue.shift();c=b.extend({},d.defaultExpandedArguments,c),d.onChangeExpanded(a,c)}),d.deferred.embedded.done(function(){d.attachEvents()}),e.utils.bubbleChildValueChanges(d,["priority","active"]),d.priority.set(d.params.priority),d.active.set(d.params.active),d.expanded.set(!1)},ready:function(){},_children:function(a,b){var c=this,d=[];return e[b].each(function(b){b[a].get()===c.id&&d.push(b)}),d.sort(e.utils.prioritySort),d},isContextuallyActive:function(){throw new Error("Container.isContextuallyActive() must be overridden in a subclass.")},onChangeActive:function(a,c){var d,f,g=this;return c.unchanged?void(c.completeCallback&&c.completeCallback()):(d="resolved"===e.previewer.deferred.active.state()?c.duration:0,g.extended(e.Panel)&&(e.panel.each(function(a){a!==g&&a.expanded()&&(f=a,d=0)}),a||_.each(g.sections(),function(a){a.collapse({duration:0})})),b.contains(document,g.container[0])?a?g.container.stop(!0,!0).slideDown(d,c.completeCallback):g.expanded()?g.collapse({duration:d,completeCallback:function(){g.container.stop(!0,!0).slideUp(d,c.completeCallback)}}):g.container.stop(!0,!0).slideUp(d,c.completeCallback):(g.container.toggle(a),c.completeCallback&&c.completeCallback()),void(f&&f._recalculateTopMargin()))},_toggleActive:function(a,b){var c=this;return b=b||{},a&&this.active.get()||!a&&!this.active.get()?(b.unchanged=!0,c.onChangeActive(c.active.get(),b),!1):(b.unchanged=!1,this.activeArgumentsQueue.push(b),this.active.set(a),!0)},activate:function(a){return this._toggleActive(!0,a)},deactivate:function(a){return this._toggleActive(!1,a)},onChangeExpanded:function(){throw new Error("Must override with subclass.")},_toggleExpanded:function(a,b){var c,d=this;return b=b||{},c=b.completeCallback,!(a&&!d.active())&&(b.completeCallback=function(){c&&c.apply(d,arguments),a?d.container.trigger("expanded"):d.container.trigger("collapsed")},a&&d.expanded.get()||!a&&!d.expanded.get()?(b.unchanged=!0,d.onChangeExpanded(d.expanded.get(),b),!1):(b.unchanged=!1,d.expandedArgumentsQueue.push(b),d.expanded.set(a),!0))},expand:function(a){return this._toggleExpanded(!0,a)},collapse:function(a){return this._toggleExpanded(!1,a)},focus:d,getContainer:function(){var a,c=this;return a=0!==b("#tmpl-"+c.templateSelector).length?wp.template(c.templateSelector):wp.template("customize-"+c.containerType+"-default"),a&&c.container?b.trim(a(c.params)):"<li></li>"}}),e.Section=c.extend({containerType:"section",defaults:{title:"",description:"",priority:100,type:"default",content:null,active:!0,instanceNumber:null,panel:null,customizeAction:""},initialize:function(a,d){var f=this;c.prototype.initialize.call(f,a,d),f.id=a,f.panel=new e.Value,f.panel.bind(function(a){b(f.container).toggleClass("control-subsection",!!a)}),f.panel.set(f.params.panel||""),e.utils.bubbleChildValueChanges(f,["panel"]),f.embed(),f.deferred.embedded.done(function(){f.ready()})},embed:function(){var a,c=this;a=function(a){var d;a?e.panel(a,function(a){a.deferred.embedded.done(function(){d=a.container.find("ul:first"),c.container.parent().is(d)||d.append(c.container),c.deferred.embedded.resolve()})}):(d=b("#customize-theme-controls").children("ul"),c.container.parent().is(d)||d.append(c.container),c.deferred.embedded.resolve())},c.panel.bind(a),a(c.panel.get()),c.deferred.embedded.done(function(){e.bind("pane-contents-reflowed",_.debounce(function(){c._recalculateTopMargin()},100))})},attachEvents:function(){var a=this;a.container.find(".accordion-section-title, .customize-section-back").on("click keydown",function(b){e.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.expanded()?a.collapse():a.expand())})},isContextuallyActive:function(){var a=this,b=a.controls(),c=0;return _(b).each(function(a){a.active()&&(c+=1)}),0!==c},controls:function(){return this._children("section","control")},onChangeExpanded:function(a,c){var d,f,g,h,i=this,j=i.container.closest(".wp-full-overlay-sidebar-content"),k=i.container.find(".accordion-section-content"),l=i.container.closest(".wp-full-overlay"),m=i.container.find(".customize-section-back"),n=i.container.find(".accordion-section-title").first(),o=b("#customize-header-actions").height();a&&!i.container.hasClass("open")?(c.unchanged?f=c.completeCallback:(j.scrollTop(0),d=function(){var a,b;a=window.matchMedia||window.msMatchMedia,b=90,a&&a("(max-width: 640px)").matches&&(b=45),k.css("height",window.innerHeight-b)},f=function(){i.container.addClass("open"),l.addClass("section-open"),g=k.offset().top,h=j.scrollTop(),k.css("margin-top",o-g-h),d(),n.attr("tabindex","-1"),m.attr("tabindex","0"),m.focus(),c.completeCallback&&c.completeCallback(),b(window).on("resize.customizer-section",_.debounce(d,100)),setTimeout(_.bind(i._recalculateTopMargin,i),0)}),c.allowMultiple||e.section.each(function(a){a!==i&&a.collapse({duration:c.duration})}),i.panel()?e.panel(i.panel()).expand({duration:c.duration,completeCallback:f}):(e.panel.each(function(a){a.collapse()}),f())):!a&&i.container.hasClass("open")?(i.container.removeClass("open"),l.removeClass("section-open"),k.css("margin-top",""),j.scrollTop(0),m.attr("tabindex","-1"),n.attr("tabindex","0"),n.focus(),c.completeCallback&&c.completeCallback(),b(window).off("resize.customizer-section")):c.completeCallback&&c.completeCallback()},_recalculateTopMargin:function(){var a,c,d,e=this;a=e.container.find(".accordion-section-content"),0!==a.length&&(d=b("#customize-header-actions").height(),c=a.offset().top-d,0<c&&a.css("margin-top",parseInt(a.css("margin-top"),10)-c))}}),e.ThemesSection=e.Section.extend({currentTheme:"",overlay:"",template:"",screenshotQueue:null,$window:b(window),initialize:function(){return this.$customizeSidebar=b(".wp-full-overlay-sidebar-content:first"),e.Section.prototype.initialize.apply(this,arguments)},ready:function(){var a=this;a.overlay=a.container.find(".theme-overlay"),a.template=wp.template("customize-themes-details-view"),b("body").on("keyup",function(b){a.overlay.find(".theme-wrap").is(":visible")&&(39===b.keyCode&&a.nextTheme(),37===b.keyCode&&a.previousTheme(),27===b.keyCode&&a.closeDetails())}),_.bindAll(this,"renderScreenshots")},isContextuallyActive:function(){return this.active()},attachEvents:function(){var a=this;a.container.find(".change-theme, .customize-theme").on("click keydown",function(b){e.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.expanded()?a.collapse():a.expand())}),a.container.on("click keydown",".left",function(b){e.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.previousTheme())}),a.container.on("click keydown",".right",function(b){e.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.nextTheme())}),a.container.on("click keydown",".theme-backdrop, .close",function(b){e.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.closeDetails())});var b=_.throttle(_.bind(a.renderScreenshots,this),100);a.container.on("input","#themes-filter",function(c){var d,e=c.currentTarget.value.toLowerCase().trim().replace("-"," "),f=a.controls();_.each(f,function(a){a.filter(e)}),b(),d=a.container.find("li.customize-control:visible").length,a.container.find(".theme-count").text(d)}),e.bind("ready",function(){_.each(a.controls().slice(0,3),function(a){var b,c=a.params.theme.screenshot[0];c&&(b=new Image,b.src=c)})})},onChangeExpanded:function(a,c){if(c.unchanged)return void(c.completeCallback&&c.completeCallback());var d,f,g=this,h=g.container.closest(".accordion-section"),i=h.closest(".wp-full-overlay"),j=h.closest(".wp-full-overlay-sidebar-content"),k=j.find(".open"),l=h.find(".customize-theme"),m=h.find(".change-theme"),n=h.find(".control-panel-content");a?(e.section.each(function(a){a!==g&&a.collapse({duration:c.duration})}),e.panel.each(function(a){a.collapse({duration:0})}),n.show(0,function(){d=n.offset().top,f=j.scrollTop(),n.css("margin-top",b("#customize-header-actions").height()-d-f),h.addClass("current-panel"),i.addClass("in-themes-panel"),j.scrollTop(0),_.delay(g.renderScreenshots,10),g.$customizeSidebar.on("scroll.customize-themes-section",_.throttle(g.renderScreenshots,300)),c.completeCallback&&c.completeCallback()}),l.focus()):(k.removeClass("open"),h.removeClass("current-panel"),i.removeClass("in-themes-panel"),g.$customizeSidebar.off("scroll.customize-themes-section"),n.delay(180).hide(0,function(){n.css("margin-top","inherit"),c.completeCallback&&c.completeCallback()}),l.attr("tabindex","0"),m.focus(),j.scrollTop(0))},_recalculateTopMargin:function(){e.Panel.prototype._recalculateTopMargin.call(this)},renderScreenshots:function(){var a=this;null===a.screenshotQueue&&(a.screenshotQueue=a.controls()),a.screenshotQueue.length&&(a.screenshotQueue=_.filter(a.screenshotQueue,function(b){var c=b.container.find(".theme-screenshot"),d=c.find("img");if(!d.length)return!1;if(d.is(":hidden"))return!0;var e=a.$window.scrollTop(),f=e+a.$window.height(),g=d.offset().top,h=c.height(),i=g+h,j=3*h,k=i>=e-j&&g<=f+j;return k&&b.container.trigger("render-screenshot"),!k}))},nextTheme:function(){var a=this;a.getNextTheme()&&a.showDetails(a.getNextTheme(),function(){a.overlay.find(".right").focus()})},getNextTheme:function(){var a,b;return a=e.control("theme_"+this.currentTheme),b=a.container.next("li.customize-control-theme"),!!b.length&&(b=b[0].id.replace("customize-control-",""),a=e.control(b),a.params.theme)},previousTheme:function(){var a=this;a.getPreviousTheme()&&a.showDetails(a.getPreviousTheme(),function(){a.overlay.find(".left").focus()})},getPreviousTheme:function(){var a,b;return a=e.control("theme_"+this.currentTheme),b=a.container.prev("li.customize-control-theme"),!!b.length&&(b=b[0].id.replace("customize-control-",""),a=e.control(b),a.params.theme)},updateLimits:function(){this.getNextTheme()||this.overlay.find(".right").addClass("disabled"),this.getPreviousTheme()||this.overlay.find(".left").addClass("disabled")},showDetails:function(a,c){var d=this;c=c||function(){},d.currentTheme=a.id,d.overlay.html(d.template(a)).fadeIn("fast").focus(),b("body").addClass("modal-open"),d.containFocus(d.overlay),d.updateLimits(),c()},closeDetails:function(){b("body").removeClass("modal-open"),this.overlay.fadeOut("fast"),e.control("theme_"+this.currentTheme).focus()},containFocus:function(a){var c;a.on("keydown",function(d){if(9===d.keyCode)return c=b(":tabbable",a),c.last()[0]!==d.target||d.shiftKey?c.first()[0]===d.target&&d.shiftKey?(c.last().focus(),!1):void 0:(c.first().focus(),!1)})}}),e.Panel=c.extend({containerType:"panel",initialize:function(a,b){var d=this;c.prototype.initialize.call(d,a,b),d.embed(),d.deferred.embedded.done(function(){d.ready()})},embed:function(){var a=this,c=b("#customize-theme-controls > ul");a.container.parent().is(c)||(c.append(a.container),a.renderContent()),e.bind("pane-contents-reflowed",_.debounce(function(){a._recalculateTopMargin()},100)),a.deferred.embedded.resolve()},attachEvents:function(){var a,c=this;c.container.find(".accordion-section-title").on("click keydown",function(a){e.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),c.expanded()||c.expand())}),c.container.find(".customize-panel-back").on("click keydown",function(a){e.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),c.expanded()&&c.collapse())}),a=c.container.find(".panel-meta:first"),a.find("> .accordion-section-title .customize-help-toggle").on("click keydown",function(d){if(!e.utils.isKeydownButNotEnterEvent(d)&&(d.preventDefault(),a=c.container.find(".panel-meta"),!a.hasClass("cannot-expand"))){var f=a.find(".customize-panel-description:first");a.hasClass("open")?(a.toggleClass("open"),f.slideUp(c.defaultExpandedArguments.duration),b(this).attr("aria-expanded",!1)):(f.slideDown(c.defaultExpandedArguments.duration),a.toggleClass("open"),b(this).attr("aria-expanded",!0))}})},sections:function(){return this._children("panel","section")},isContextuallyActive:function(){var a=this,b=a.sections(),c=0;return _(b).each(function(a){a.active()&&a.isContextuallyActive()&&(c+=1)}),0!==c},onChangeExpanded:function(a,c){if(c.unchanged)return void(c.completeCallback&&c.completeCallback());var d,f,g=this,h=g.container.closest(".accordion-section"),i=h.closest(".wp-full-overlay"),j=h.closest(".wp-full-overlay-sidebar-content"),k=j.find(".open"),l=i.find("#customize-theme-controls > ul > .accordion-section > .accordion-section-title"),m=h.find(".customize-panel-back"),n=h.find(".accordion-section-title").first(),o=h.find(".control-panel-content"),p=b("#customize-header-actions").height();a?(e.section.each(function(a){g.id!==a.panel()&&a.collapse({duration:0})}),e.panel.each(function(a){g!==a&&a.collapse({duration:0})}),o.show(0,function(){o.parent().show(),d=o.offset().top,f=j.scrollTop(),o.css("margin-top",p-d-f),h.addClass("current-panel"),i.addClass("in-sub-panel"),j.scrollTop(0),c.completeCallback&&c.completeCallback()}),l.attr("tabindex","-1"),m.attr("tabindex","0"),m.focus(),g._recalculateTopMargin()):(k.removeClass("open"),h.removeClass("current-panel"),i.removeClass("in-sub-panel"),o.delay(180).hide(0,function(){o.css("margin-top","inherit"),c.completeCallback&&c.completeCallback()}),l.attr("tabindex","0"),m.attr("tabindex","-1"),n.focus(),j.scrollTop(0))},_recalculateTopMargin:function(){var a,c,d,e=this;a=b("#customize-header-actions").height(),d=e.container.closest(".accordion-section"),c=d.find(".control-panel-content"),c.css("margin-top",parseInt(c.css("margin-top"),10)-(c.offset().top-a))},renderContent:function(){var a,c=this;a=0!==b("#tmpl-"+c.templateSelector+"-content").length?wp.template(c.templateSelector+"-content"):wp.template("customize-panel-default-content"),a&&c.container&&c.container.find(".accordion-sub-container").html(a(c.params))}}),e.Control=e.Class.extend({defaultActiveArguments:{duration:"fast",completeCallback:b.noop},initialize:function(a,c){var d,f,g,h=this;h.params={},b.extend(h,c||{}),h.id=a,h.selector="#customize-control-"+a.replace(/\]/g,"").replace(/\[/g,"-"),h.templateSelector="customize-control-"+h.params.type+"-content",h.container=b(h.params.content?h.params.content:h.selector),h.deferred={embedded:new b.Deferred},h.section=new e.Value,h.priority=new e.Value,h.active=new e.Value,h.activeArgumentsQueue=[],h.notifications=new e.Values({defaultConstructor:e.Notification}),h.elements=[],d=h.container.find("[data-customize-setting-link]"),f={},d.each(function(){var a,c=b(this);if(c.is(":radio")){if(a=c.prop("name"),f[a])return;f[a]=!0,c=d.filter('[name="'+a+'"]')}e(c.data("customizeSettingLink"),function(a){var b=new e.Element(c);h.elements.push(b),b.sync(a),b.set(a())})}),h.active.bind(function(a){var c=h.activeArgumentsQueue.shift();c=b.extend({},h.defaultActiveArguments,c),h.onChangeActive(a,c)}),h.section.set(h.params.section),h.priority.set(isNaN(h.params.priority)?10:h.params.priority),h.active.set(h.params.active),e.utils.bubbleChildValueChanges(h,["section","priority","active"]),g=b.map(h.params.settings,function(a){return a}),0===g.length?(h.setting=null,h.settings={},h.embed()):e.apply(e,g.concat(function(){var a;h.settings={};for(a in h.params.settings)h.settings[a]=e(h.params.settings[a]);h.setting=h.settings["default"]||null,_.each(h.settings,function(a){a.notifications.bind("add",function(b){var c,d,f;d=a.id+":"+b.code,f=_.extend({},b,{setting:a.id}),c=new e.Notification(d,f),h.notifications.add(c.code,c)}),a.notifications.bind("remove",function(b){h.notifications.remove(a.id+":"+b.code)})}),h.embed()})),h.deferred.embedded.done(function(){var a=_.debounce(function(){h.renderNotifications()});h.notifications.bind("add",function(b){wp.a11y.speak(b.message,"assertive"),a()}),h.notifications.bind("remove",a),h.renderNotifications(),h.ready()})},embed:function(){var a,b=this;a=function(a){var c;a&&e.section(a,function(a){a.deferred.embedded.done(function(){c=a.container.find("ul:first"),b.container.parent().is(c)||(c.append(b.container),b.renderContent()),b.deferred.embedded.resolve()})})},b.section.bind(a),a(b.section.get())},ready:function(){},getNotificationsContainerElement:function(){var a,c,d=this;return c=d.container.find(".customize-control-notifications-container:first"),c.length?c:(c=b('<div class="customize-control-notifications-container"></div>'),d.container.hasClass("customize-control-nav_menu_item")?d.container.find(".menu-item-settings:first").prepend(c):d.container.hasClass("customize-control-widget_form")?d.container.find(".widget-inside:first").prepend(c):(a=d.container.find(".customize-control-title"),a.length?a.after(c):d.container.prepend(c)),c)},renderNotifications:function(){var a,c,d=this,e=!1;a=d.getNotificationsContainerElement(),a&&a.length&&(c=[],d.notifications.each(function(a){c.push(a),"error"===a.type&&(e=!0)}),0===c.length?a.stop().slideUp("fast"):a.stop().slideDown("fast",null,function(){b(this).css("height","auto")}),d.notificationsTemplate||(d.notificationsTemplate=wp.template("customize-control-notifications")),d.container.toggleClass("has-notifications",0!==c.length),d.container.toggleClass("has-error",e),a.empty().append(b.trim(d.notificationsTemplate({notifications:c,altNotice:Boolean(d.altNotice)}))))},expand:function(a){e.section(this.section()).expand(a)},focus:d,onChangeActive:function(a,c){return c.unchanged?void(c.completeCallback&&c.completeCallback()):void(b.contains(document,this.container[0])?a?this.container.slideDown(c.duration,c.completeCallback):this.container.slideUp(c.duration,c.completeCallback):(this.container.toggle(a),c.completeCallback&&c.completeCallback()))},toggle:function(a){return this.onChangeActive(a,this.defaultActiveArguments)},activate:c.prototype.activate,deactivate:c.prototype.deactivate,_toggleActive:c.prototype._toggleActive,dropdownInit:function(){var a=this,b=this.container.find(".dropdown-status"),c=this.params,d=!1,f=function(a){"string"==typeof a&&c.statuses&&c.statuses[a]?b.html(c.statuses[a]).show():b.hide()};this.container.on("click keydown",".dropdown",function(b){e.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),d||a.container.toggleClass("open"),a.container.hasClass("open")&&a.container.parent().parent().find("li.library-selected").focus(),d=!0,setTimeout(function(){d=!1},400))}),this.setting.bind(f),f(this.setting())},renderContent:function(){var a,c=this;0!==b("#tmpl-"+c.templateSelector).length&&(a=wp.template(c.templateSelector),a&&c.container&&c.container.html(a(c.params)))}}),e.ColorControl=e.Control.extend({ready:function(){var a=this,b=this.container.find(".color-picker-hex");b.val(a.setting()).wpColorPicker({change:function(){a.setting.set(b.wpColorPicker("color"))},clear:function(){a.setting.set("")}}),this.setting.bind(function(a){b.val(a),b.wpColorPicker("color",a)})}}),e.MediaControl=e.Control.extend({ready:function(){function a(a){var d=b.Deferred();c.extended(e.UploadControl)?d.resolve():(a=parseInt(a,10),_.isNaN(a)||a<=0?(delete c.params.attachment,d.resolve()):c.params.attachment&&c.params.attachment.id===a&&d.resolve()),"pending"===d.state()&&wp.media.attachment(a).fetch().done(function(){c.params.attachment=this.attributes,d.resolve(),wp.customize.previewer.send(c.setting.id+"-attachment-data",this.attributes)}),d.done(function(){c.renderContent()})}var c=this;_.bindAll(c,"restoreDefault","removeFile","openFrame","select","pausePlayer"),c.container.on("click keydown",".upload-button",c.openFrame),c.container.on("click keydown",".upload-button",c.pausePlayer),c.container.on("click keydown",".thumbnail-image img",c.openFrame),c.container.on("click keydown",".default-button",c.restoreDefault),c.container.on("click keydown",".remove-button",c.pausePlayer),c.container.on("click keydown",".remove-button",c.removeFile),c.container.on("click keydown",".remove-button",c.cleanupPlayer),e.section(c.section()).container.on("expanded",function(){c.player&&c.player.setControlsSize()}).on("collapsed",function(){c.pausePlayer()}),a(c.setting()),c.setting.bind(a)},pausePlayer:function(){this.player&&this.player.pause()},cleanupPlayer:function(){this.player&&wp.media.mixin.removePlayer(this.player)},openFrame:function(a){e.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.frame||this.initFrame(),this.frame.open())},initFrame:function(){this.frame=wp.media({button:{text:this.params.button_labels.frame_button},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:this.params.mime_type}),multiple:!1,date:!1})]}),this.frame.on("select",this.select)},select:function(){var a,b=this.frame.state().get("selection").first().toJSON(),c=window._wpmejsSettings||{};this.params.attachment=b,this.setting(b.id),a=this.container.find("audio, video").get(0),a?this.player=new MediaElementPlayer(a,c):this.cleanupPlayer()},restoreDefault:function(a){e.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment=this.params.defaultAttachment,this.setting(this.params.defaultAttachment.url))},removeFile:function(a){e.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment={},this.setting(""),this.renderContent())}}),e.UploadControl=e.MediaControl.extend({select:function(){var a,b=this.frame.state().get("selection").first().toJSON(),c=window._wpmejsSettings||{};this.params.attachment=b,this.setting(b.url),a=this.container.find("audio, video").get(0),a?this.player=new MediaElementPlayer(a,c):this.cleanupPlayer()},success:function(){},removerVisibility:function(){}}),e.ImageControl=e.UploadControl.extend({thumbnailSrc:function(){}}),e.BackgroundControl=e.UploadControl.extend({ready:function(){e.UploadControl.prototype.ready.apply(this,arguments)},select:function(){e.UploadControl.prototype.select.apply(this,arguments),wp.ajax.post("custom-background-add",{nonce:_wpCustomizeBackground.nonces.add,wp_customize:"on",theme:e.settings.theme.stylesheet,attachment_id:this.params.attachment.id})}}),e.CroppedImageControl=e.MediaControl.extend({openFrame:function(a){e.utils.isKeydownButNotEnterEvent(a)||(this.initFrame(),this.frame.setState("library").open())},initFrame:function(){var a=_wpMediaViewsL10n;this.frame=wp.media({button:{text:a.select,close:!1},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:this.params.width,suggestedHeight:this.params.height}),new wp.media.controller.CustomizeImageCropper({imgSelectOptions:this.calculateImageSelectOptions,control:this})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this)},onSelect:function(){var a=this.frame.state().get("selection").first().toJSON();this.params.width!==a.width||this.params.height!==a.height||this.params.flex_width||this.params.flex_height?this.frame.setState("cropper"):(this.setImageFromAttachment(a),this.frame.close())},onCropped:function(a){this.setImageFromAttachment(a)},calculateImageSelectOptions:function(a,b){var c,d,e,f=b.get("control"),g=!!parseInt(f.params.flex_width,10),h=!!parseInt(f.params.flex_height,10),i=a.get("width"),j=a.get("height"),k=parseInt(f.params.width,10),l=parseInt(f.params.height,10),m=k/l,n=k,o=l;return b.set("canSkipCrop",!f.mustBeCropped(g,h,k,l,i,j)),i/j>m?(l=j,k=l*m):(k=i,l=k/m),c=(i-k)/2,d=(j-l)/2,e={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:i,imageHeight:j,minWidth:n>k?k:n,minHeight:o>l?l:o,x1:c,y1:d,x2:k+c,y2:l+d},h===!1&&g===!1&&(e.aspectRatio=k+":"+l),!0===h&&(delete e.minHeight,e.maxWidth=i),!0===g&&(delete e.minWidth,e.maxHeight=j),e},mustBeCropped:function(a,b,c,d,e,f){return(!0!==a||!0!==b)&&((!0!==a||d!==f)&&((!0!==b||c!==e)&&((c!==e||d!==f)&&!(e<=c))))},onSkippedCrop:function(){var a=this.frame.state().get("selection").first().toJSON();this.setImageFromAttachment(a)},setImageFromAttachment:function(a){this.params.attachment=a,this.setting(a.id)}}),e.SiteIconControl=e.CroppedImageControl.extend({initFrame:function(){var a=_wpMediaViewsL10n;this.frame=wp.media({button:{text:a.select,close:!1},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:this.params.width,suggestedHeight:this.params.height}),new wp.media.controller.SiteIconCropper({imgSelectOptions:this.calculateImageSelectOptions,control:this})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this)},onSelect:function(){var a=this.frame.state().get("selection").first().toJSON(),b=this;this.params.width!==a.width||this.params.height!==a.height||this.params.flex_width||this.params.flex_height?this.frame.setState("cropper"):wp.ajax.post("crop-image",{nonce:a.nonces.edit,id:a.id,context:"site-icon",cropDetails:{x1:0,y1:0,width:this.params.width,height:this.params.height,dst_width:this.params.width,dst_height:this.params.height}}).done(function(a){b.setImageFromAttachment(a),b.frame.close()}).fail(function(){b.frame.trigger("content:error:crop")})},setImageFromAttachment:function(a){var c,d=["site_icon-32","thumbnail","full"];_.each(d,function(b){c||_.isUndefined(a.sizes[b])||(c=a.sizes[b])}),this.params.attachment=a,this.setting(a.id),b('link[sizes="32x32"]').attr("href",c.url)},removeFile:function(a){e.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment={},this.setting(""),this.renderContent(),b('link[rel="icon"]').attr("href",""))}}),e.HeaderControl=e.Control.extend({ready:function(){this.btnRemove=b("#customize-control-header_image .actions .remove"),this.btnNew=b("#customize-control-header_image .actions .new"),_.bindAll(this,"openMedia","removeImage"),this.btnNew.on("click",this.openMedia),this.btnRemove.on("click",this.removeImage),e.HeaderTool.currentHeader=this.getInitialHeaderImage(),new e.HeaderTool.CurrentView({model:e.HeaderTool.currentHeader,el:"#customize-control-header_image .current .container"}),new e.HeaderTool.ChoiceListView({collection:e.HeaderTool.UploadsList=new e.HeaderTool.ChoiceList,el:"#customize-control-header_image .choices .uploaded .list"}),new e.HeaderTool.ChoiceListView({collection:e.HeaderTool.DefaultsList=new e.HeaderTool.DefaultsList,el:"#customize-control-header_image .choices .default .list"}),e.HeaderTool.combinedList=e.HeaderTool.CombinedList=new e.HeaderTool.CombinedList([e.HeaderTool.UploadsList,e.HeaderTool.DefaultsList]),wp.media.controller.Cropper.prototype.defaults.doCropArgs.wp_customize="on",wp.media.controller.Cropper.prototype.defaults.doCropArgs.theme=e.settings.theme.stylesheet},getInitialHeaderImage:function(){if(!e.get().header_image||!e.get().header_image_data||_.contains(["remove-header","random-default-image","random-uploaded-image"],e.get().header_image))return new e.HeaderTool.ImageModel;var a=_.find(_wpCustomizeHeader.uploads,function(a){return a.attachment_id===e.get().header_image_data.attachment_id});return a||(a={url:e.get().header_image,thumbnail_url:e.get().header_image,attachment_id:e.get().header_image_data.attachment_id}),new e.HeaderTool.ImageModel({header:a,choice:a.url.split("/").pop()})},calculateImageSelectOptions:function(a,b){var c,d,f,g,h,i,j=parseInt(_wpCustomizeHeader.data.width,10),k=parseInt(_wpCustomizeHeader.data.height,10),l=!!parseInt(_wpCustomizeHeader.data["flex-width"],10),m=!!parseInt(_wpCustomizeHeader.data["flex-height"],10);return h=a.get("width"),g=a.get("height"),this.headerImage=new e.HeaderTool.ImageModel,this.headerImage.set({themeWidth:j,themeHeight:k,themeFlexWidth:l,themeFlexHeight:m,imageWidth:h,imageHeight:g}),b.set("canSkipCrop",!this.headerImage.shouldBeCropped()),c=j/k,d=h,f=g,d/f>c?(k=f,j=k*c):(j=d,k=j/c),i={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:h,imageHeight:g,x1:0,y1:0,x2:j,y2:k},m===!1&&l===!1&&(i.aspectRatio=j+":"+k),m===!1&&(i.maxHeight=k),l===!1&&(i.maxWidth=j),i},openMedia:function(a){var b=_wpMediaViewsL10n;a.preventDefault(),this.frame=wp.media({button:{text:b.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:b.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:_wpCustomizeHeader.data.width,suggestedHeight:_wpCustomizeHeader.data.height}),new wp.media.controller.Cropper({imgSelectOptions:this.calculateImageSelectOptions})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this),this.frame.open()},onSelect:function(){this.frame.setState("cropper")},onCropped:function(a){var b=a.url,c=a.attachment_id,d=a.width,e=a.height;this.setImageFromURL(b,c,d,e)},onSkippedCrop:function(a){var b=a.get("url"),c=a.get("width"),d=a.get("height");this.setImageFromURL(b,a.id,c,d)},setImageFromURL:function(a,b,c,d){var f,g={};g.url=a,g.thumbnail_url=a,g.timestamp=_.now(),b&&(g.attachment_id=b),c&&(g.width=c),d&&(g.height=d),f=new e.HeaderTool.ImageModel({header:g,choice:a.split("/").pop()}),e.HeaderTool.UploadsList.add(f),e.HeaderTool.currentHeader.set(f.toJSON()),f.save(),f.importImage()},removeImage:function(){e.HeaderTool.currentHeader.trigger("hide"),e.HeaderTool.CombinedList.trigger("control:removeImage")}}),e.ThemeControl=e.Control.extend({touchDrag:!1,isRendered:!1,renderContent:function(){var a=this,b=arguments;e.section(a.section(),function(c){c.expanded()?(e.Control.prototype.renderContent.apply(a,b),a.isRendered=!0):c.expanded.bind(function(c){
-c&&!a.isRendered&&(e.Control.prototype.renderContent.apply(a,b),a.isRendered=!0)})})},ready:function(){var a=this;a.container.on("touchmove",".theme",function(){a.touchDrag=!0}),a.container.on("click keydown touchend",".theme",function(c){if(!e.utils.isKeydownButNotEnterEvent(c)){if(a.touchDrag===!0)return a.touchDrag=!1;if(!b(c.target).is(".theme-actions .button")){var d=b(this).data("previewUrl");b(".wp-full-overlay").addClass("customize-loading"),window.parent.location=d}}}),a.container.on("click keydown",".theme-actions .theme-details",function(b){e.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),e.section(a.section()).showDetails(a.params.theme))}),a.container.on("render-screenshot",function(){var a=b(this).find("img"),c=a.data("src");c&&a.attr("src",c)})},filter:function(a){var b=this,c=b.params.theme.name+" "+b.params.theme.description+" "+b.params.theme.tags+" "+b.params.theme.author;c=c.toLowerCase().replace("-"," "),-1!==c.search(a)?b.activate():b.deactivate()}}),e.defaultConstructor=e.Setting,e.control=new e.Values({defaultConstructor:e.Control}),e.section=new e.Values({defaultConstructor:e.Section}),e.panel=new e.Values({defaultConstructor:e.Panel}),e.PreviewFrame=e.Messenger.extend({sensitivity:2e3,initialize:function(a,c){var d=b.Deferred();d.promise(this),this.container=a.container,this.signature=a.signature,b.extend(a,{channel:e.PreviewFrame.uuid()}),e.Messenger.prototype.initialize.call(this,a,c),this.add("previewUrl",a.previewUrl),this.query=b.extend(a.query||{},{customize_messenger_channel:this.channel()}),this.run(d)},run:function(a){var c=this,d=!1,f=!1;this._ready&&this.unbind("ready",this._ready),this._ready=function(){f=!0,d&&a.resolveWith(c)},this.bind("ready",this._ready),this.bind("ready",function(a){if(this.container.addClass("iframe-ready"),a){var b={panel:a.activePanels,section:a.activeSections,control:a.activeControls};_(b).each(function(a,b){e[b].each(function(b,c){var d=!(!a||!a[c]);d?b.activate():b.deactivate()})}),a.settingValidities&&e._handleSettingValidities({settingValidities:a.settingValidities,focusInvalidControl:!1})}}),this.request=b.ajax(this.previewUrl(),{type:"POST",data:this.query,xhrFields:{withCredentials:!0}}),this.request.fail(function(){a.rejectWith(c,["request failure"])}),this.request.done(function(g){var h,i=c.request.getResponseHeader("Location"),j=c.signature;return i&&i!==c.previewUrl()?void a.rejectWith(c,["redirect",i]):"0"===g?void c.login(a):"-1"===g?void a.rejectWith(c,["cheatin"]):(h=g.lastIndexOf(j),-1===h||h<g.lastIndexOf("</html>")?void a.rejectWith(c,["unsigned"]):(g=g.slice(0,h)+g.slice(h+j.length),c.iframe=b("<iframe />",{title:e.l10n.previewIframeTitle}).appendTo(c.container),c.iframe.one("load",function(){d=!0,f?a.resolveWith(c):setTimeout(function(){a.rejectWith(c,["ready timeout"])},c.sensitivity)}),c.targetWindow(c.iframe[0].contentWindow),c.targetWindow().document.open(),c.targetWindow().document.write(g),void c.targetWindow().document.close()))})},login:function(a){var c,d=this;return c=function(){a.rejectWith(d,["logged out"])},this.triedLogin?c():void b.get(e.settings.url.ajax,{action:"logged-in"}).fail(c).done(function(f){var g;"1"!==f&&c(),g=b("<iframe />",{src:d.previewUrl(),title:e.l10n.previewIframeTitle}).hide(),g.appendTo(d.container),g.on("load",function(){d.triedLogin=!0,g.remove(),d.run(a)})})},destroy:function(){e.Messenger.prototype.destroy.call(this),this.request.abort(),this.iframe&&this.iframe.remove(),delete this.request,delete this.iframe,delete this.targetWindow}}),function(){var a=0;e.PreviewFrame.uuid=function(){return"preview-"+a++}}(),e.setDocumentTitle=function(a){var b,c;b=e.settings.documentTitleTmpl,c=b.replace("%s",a),document.title=c,e.trigger("title",c)},e.Previewer=e.Messenger.extend({refreshBuffer:250,initialize:function(a,c){var d=this,f=/^https?/;b.extend(this,c||{}),this.deferred={active:b.Deferred()},this.refresh=function(a){var b,c=a.refresh,d=function(){b=null,c.call(a)};return function(){if("number"!=typeof b){if(!a.loading)return d();a.abort()}clearTimeout(b),b=setTimeout(d,a.refreshBuffer)}}(this),this.container=e.ensure(a.container),this.allowedUrls=a.allowedUrls,this.signature=a.signature,a.url=window.location.href,e.Messenger.prototype.initialize.call(this,a),this.add("scheme",this.origin()).link(this.origin).setter(function(a){var b=a.match(f);return b?b[0]:""}),this.add("previewUrl",a.previewUrl).setter(function(a){var c;return/\/wp-admin(\/|$)/.test(a.replace(/[#?].*$/,""))?null:(b.each([a.replace(f,d.scheme()),a],function(a,e){if(b.each(d.allowedUrls,function(a,b){var d;if(b=b.replace(/\/+$/,""),d=e.replace(b,""),0===e.indexOf(b)&&/^([/#?]|$)/.test(d))return c=e,!1}),c)return!1}),c?c:null)}),this.previewUrl.bind(this.refresh),this.scroll=0,this.bind("scroll",function(a){this.scroll=a}),this.bind("url",this.previewUrl),this.bind("documentTitle",function(a){e.setDocumentTitle(a)})},query:function(){},abort:function(){this.loading&&(this.loading.destroy(),delete this.loading)},refresh:function(){var a=this;this.send("loading-initiated"),this.abort(),this.loading=new e.PreviewFrame({url:this.url(),previewUrl:this.previewUrl(),query:this.query()||{},container:this.container,signature:this.signature}),this.loading.done(function(){this.bind("synced",function(){a.preview&&a.preview.destroy(),a.preview=this,delete a.loading,a.targetWindow(this.targetWindow()),a.channel(this.channel()),a.deferred.active.resolve(),a.send("active")}),this.send("sync",{scroll:a.scroll,settings:e.get()})}),this.loading.fail(function(b,c){a.send("loading-failed"),"redirect"===b&&c&&a.previewUrl(c),"logged out"===b&&(a.preview&&(a.preview.destroy(),delete a.preview),a.login().done(a.refresh)),"cheatin"===b&&a.cheatin()})},login:function(){var a,c,d,f=this;return this._login?this._login:(a=b.Deferred(),this._login=a.promise(),c=new e.Messenger({channel:"login",url:e.settings.url.login}),d=b("<iframe />",{src:e.settings.url.login,title:e.l10n.loginIframeTitle}).appendTo(this.container),c.targetWindow(d[0].contentWindow),c.bind("login",function(){var b=f.refreshNonces();b.always(function(){d.remove(),c.destroy(),delete f._login}),b.done(function(){a.resolve()}),b.fail(function(){f.cheatin(),a.reject()})}),this._login)},cheatin:function(){b(document.body).empty().addClass("cheatin").append("<h1>"+e.l10n.cheatin+"</h1><p>"+e.l10n.notAllowed+"</p>")},refreshNonces:function(){var a,c=b.Deferred();return c.promise(),a=wp.ajax.post("customize_refresh_nonces",{wp_customize:"on",theme:e.settings.theme.stylesheet}),a.done(function(a){e.trigger("nonce-refresh",a),c.resolve()}),a.fail(function(){c.reject()}),c}}),e.settingConstructor={},e.controlConstructor={color:e.ColorControl,media:e.MediaControl,upload:e.UploadControl,image:e.ImageControl,cropped_image:e.CroppedImageControl,site_icon:e.SiteIconControl,header:e.HeaderControl,background:e.BackgroundControl,theme:e.ThemeControl},e.panelConstructor={},e.sectionConstructor={themes:e.ThemesSection},e._handleSettingValidities=function(a){var b,c=[],d=!1;_.each(a.settingValidities,function(a,b){var d=e(b);d&&(_.isObject(a)&&_.each(a,function(a,b){var f,g=new e.Notification(b,a),h=!1;f=d.notifications(g.code),f&&(h=g.type!==f.type||!_.isEqual(g.data,f.data)),h&&d.notifications.remove(b),d.notifications.has(g.code)||d.notifications.add(b,g),c.push(d.id)}),d.notifications.each(function(b){"error"!==b.type||!0!==a&&a[b.code]||d.notifications.remove(b.code)}))}),a.focusInvalidControl&&(b=e.findControlsForSettings(c),_(_.values(b)).find(function(a){return _(a).find(function(a){var b=a.section()&&e.section.has(a.section())&&e.section(a.section()).expanded();return b&&a.expanded&&(b=a.expanded()),b&&(a.focus(),d=!0),d})}),d||_.isEmpty(b)||_.values(b)[0][0].focus())},e.findControlsForSettings=function(a){var b,c={};return _.each(_.unique(a),function(a){var d=e(a);d&&(b=d.findControls(),b&&b.length>0&&(c[a]=b))}),c},e.reflowPaneContents=_.bind(function(){var a,c,d,f=[],g=!1;document.activeElement&&(c=b(document.activeElement)),e.panel.each(function(b){var c=b.sections(),d=_.pluck(c,"container");f.push(b),a=b.container.find("ul:first"),e.utils.areElementListsEqual(d,a.children("[id]"))||(_(c).each(function(b){a.append(b.container)}),g=!0)}),e.section.each(function(b){var c=b.controls(),d=_.pluck(c,"container");b.panel()||f.push(b),a=b.container.find("ul:first"),e.utils.areElementListsEqual(d,a.children("[id]"))||(_(c).each(function(b){a.append(b.container)}),g=!0)}),f.sort(e.utils.prioritySort),d=_.pluck(f,"container"),a=b("#customize-theme-controls").children("ul"),e.utils.areElementListsEqual(d,a.children())||(_(f).each(function(b){a.append(b.container)}),g=!0),e.panel.each(function(a){var b=a.active();a.active.callbacks.fireWith(a.active,[b,b])}),e.section.each(function(a){var b=a.active();a.active.callbacks.fireWith(a.active,[b,b])}),g&&c&&c.focus(),e.trigger("pane-contents-reflowed")},e),b(function(){if(e.settings=window._wpCustomizeSettings,e.l10n=window._wpCustomizeControlsL10n,e.settings&&b.support.postMessage&&(b.support.cors||!e.settings.isCrossDomain)){var a,c,d=b(document.body),f=d.children(".wp-full-overlay"),g=b("#customize-info .panel-title.site-title"),h=b(".customize-controls-close"),i=b("#save"),j=b("#customize-footer-actions");b("#customize-controls").on("keydown",function(a){var c=13===a.which,d=b(a.target);c&&(d.is("input:not([type=button])")||d.is("select"))&&a.preventDefault()}),b(".customize-info").find("> .accordion-section-title .customize-help-toggle").on("click",function(){var a=b(this).closest(".accordion-section"),c=a.find(".customize-panel-description:first");a.hasClass("cannot-expand")||(a.hasClass("open")?(a.toggleClass("open"),c.slideUp(e.Panel.prototype.defaultExpandedArguments.duration),b(this).attr("aria-expanded",!1)):(c.slideDown(e.Panel.prototype.defaultExpandedArguments.duration),a.toggleClass("open"),b(this).attr("aria-expanded",!0)))}),e.previewer=new e.Previewer({container:"#customize-preview",form:"#customize-controls",previewUrl:e.settings.url.preview,allowedUrls:e.settings.url.allowed,signature:"WP_CUSTOMIZER_SIGNATURE"},{nonce:e.settings.nonce,query:function(){var a={};return e.each(function(b,c){b._dirty&&(a[c]=b())}),{wp_customize:"on",theme:e.settings.theme.stylesheet,customized:JSON.stringify(a),nonce:this.nonce.preview}},save:function(){function a(a){k[a.id]=!0}var c,f,g,h=this,j=e.state("processing"),k={},l=[];d.addClass("saving"),e.bind("change",a),f=function(){var c,f;return e.each(function(a){a.notifications.each(function(b){"error"!==b.type||b.data&&b.data.from_server||l.push(a.id)})}),g=e.findControlsForSettings(l),_.isEmpty(g)?(f=b.extend(h.query(),{nonce:h.nonce.save}),c=wp.ajax.post("customize_save",f),i.prop("disabled",!0),e.trigger("save",c),c.always(function(){d.removeClass("saving"),i.prop("disabled",!1),e.unbind("change",a)}),c.fail(function(a){"0"===a?a="not_logged_in":"-1"===a&&(a="invalid_nonce"),"invalid_nonce"===a?h.cheatin():"not_logged_in"===a&&(h.preview.iframe.hide(),h.login().done(function(){h.save(),h.preview.iframe.show()})),a.setting_validities&&e._handleSettingValidities({settingValidities:a.setting_validities,focusInvalidControl:!0}),e.trigger("error",a)}),void c.done(function(a){e.each(function(a){k[a.id]||(a._dirty=!1)}),e.previewer.send("saved",a),a.setting_validities&&e._handleSettingValidities({settingValidities:a.setting_validities,focusInvalidControl:!0}),e.trigger("saved",a),_.isEmpty(k)||e.state("saved").set(!1)})):(_.values(g)[0][0].focus(),d.removeClass("saving"),void e.unbind("change",a))},0===j()?f():(c=function(){0===j()&&(e.state.unbind("change",c),f())},e.state.bind("change",c))}}),e.previewer.bind("nonce",function(a){b.extend(this.nonce,a)}),e.bind("nonce-refresh",function(a){b.extend(e.settings.nonce,a),b.extend(e.previewer.nonce,a),e.previewer.send("nonce-refresh",a)}),b.each(e.settings.settings,function(a,b){var c,d=e.settingConstructor[b.type]||e.Setting;c=new d(a,b.value,{transport:b.transport,previewer:e.previewer,dirty:!!b.dirty}),e.add(a,c)}),b.each(e.settings.panels,function(a,b){var c,d=e.panelConstructor[b.type]||e.Panel;c=new d(a,{params:b}),e.panel.add(a,c)}),b.each(e.settings.sections,function(a,b){var c,d=e.sectionConstructor[b.type]||e.Section;c=new d(a,{params:b}),e.section.add(a,c)}),b.each(e.settings.controls,function(a,b){var c,d=e.controlConstructor[b.type]||e.Control;c=new d(a,{params:b,previewer:e.previewer}),e.control.add(a,c)}),_.each(["panel","section","control"],function(a){var b=e.settings.autofocus[a];b&&e[a](b,function(a){a.deferred.embedded.done(function(){e.previewer.deferred.active.done(function(){a.focus()})})})}),e.bind("ready",e.reflowPaneContents),b([e.panel,e.section,e.control]).each(function(a,b){var c=_.debounce(e.reflowPaneContents,100);b.bind("add",c),b.bind("change",c),b.bind("remove",c)}),e.previewer.previewUrl()?e.previewer.refresh():e.previewer.previewUrl(e.settings.url.home),function(){var a=new e.Values,b=a.create("saved"),c=a.create("activated"),d=a.create("processing");a.bind("change",function(){c()?b()?(i.val(e.l10n.saved).prop("disabled",!0),h.find(".screen-reader-text").text(e.l10n.close)):(i.val(e.l10n.save).prop("disabled",!1),h.find(".screen-reader-text").text(e.l10n.cancel)):(i.val(e.l10n.activate).prop("disabled",!1),h.find(".screen-reader-text").text(e.l10n.cancel))}),b(!0),c(e.settings.theme.active),d(0),e.bind("change",function(){a("saved").set(!1)}),e.bind("saved",function(){a("saved").set(!0),a("activated").set(!0)}),c.bind(function(a){a&&e.trigger("activated")}),e.state=a}(),i.click(function(a){e.previewer.save(),a.preventDefault()}).keydown(function(a){9!==a.which&&(13===a.which&&e.previewer.save(),a.preventDefault())}),h.keydown(function(a){9!==a.which&&(13===a.which&&this.click(),a.preventDefault())}),b(".collapse-sidebar").on("click",function(){"true"===b(this).attr("aria-expanded")?b(this).attr({"aria-expanded":"false","aria-label":e.l10n.expandSidebar}):b(this).attr({"aria-expanded":"true","aria-label":e.l10n.collapseSidebar}),f.toggleClass("collapsed").toggleClass("expanded")}),b("body").on("keydown",function(a){var b,c=[],d=[],f=[];27===a.which&&(e.control.each(function(a){a.expanded&&a.expanded()&&_.isFunction(a.collapse)&&c.push(a)}),e.section.each(function(a){a.expanded()&&d.push(a)}),e.panel.each(function(a){a.expanded()&&f.push(a)}),c.length>0&&0===d.length&&(c.length=0),b=c[0]||d[0]||f[0],b&&(b.collapse(),a.preventDefault()))}),b(".customize-controls-preview-toggle").on("click",function(){f.toggleClass("preview-only")}),e.previewedDevice=new e.Value,e.bind("ready",function(){_.find(e.settings.previewableDevices,function(a,b){if(!0===a["default"])return e.previewedDevice.set(b),!0})}),j.find(".devices button").on("click",function(a){e.previewedDevice.set(b(a.currentTarget).data("device"))}),e.previewedDevice.bind(function(a){var c=b(".wp-full-overlay"),d="";j.find(".devices button").removeClass("active").attr("aria-pressed",!1),j.find(".devices .preview-"+a).addClass("active").attr("aria-pressed",!0),b.each(e.settings.previewableDevices,function(a){d+=" preview-"+a}),c.removeClass(d).addClass("preview-"+a)}),g.length&&e("blogname",function(a){var c=function(){g.text(b.trim(a())||e.l10n.untitledBlogName)};a.bind(c),c()}),a=new e.Messenger({url:e.settings.url.parent,channel:"loader"}),a.bind("back",function(){h.on("click.customize-controls-close",function(b){b.preventDefault(),a.send("close")})}),b(window).on("beforeunload",function(){if(!e.state("saved")())return setTimeout(function(){f.removeClass("customize-loading")},1),e.l10n.saveAlert}),b.each(["saved","change"],function(b,c){e.bind(c,function(){a.send(c)})}),e.bind("title",function(b){a.send("title",b)}),a.send("ready"),b.each({background_image:{controls:["background_repeat","background_position_x","background_attachment"],callback:function(a){return!!a}},show_on_front:{controls:["page_on_front","page_for_posts"],callback:function(a){return"page"===a}},header_textcolor:{controls:["header_textcolor"],callback:function(a){return"blank"!==a}}},function(a,c){e(a,function(a){b.each(c.controls,function(b,d){e.control(d,function(b){var d=function(a){b.container.toggle(c.callback(a))};d(a.get()),a.bind(d)})})})}),e.control("display_header_text",function(a){var b="";a.elements[0].unsync(e("header_textcolor")),a.element=new e.Element(a.container.find("input")),a.element.set("blank"!==a.setting()),a.element.bind(function(c){c||(b=e("header_textcolor").get()),a.setting.set(c?b:"blank")}),a.setting.bind(function(b){a.element.set("blank"!==b)})}),e("show_on_front","page_on_front",function(a,b){var c=function(){"page"===a()&&parseInt(b(),10)>0&&e.previewer.previewUrl.set(e.settings.url.home)};a.bind(c),b.bind(c)}),e("page_for_posts",function(a){a.bind(function(a){a=parseInt(a,10),a>0&&e.previewer.previewUrl.set(e.settings.url.home+"?page_id="+a)})}),e.previewer.bind("selective-refresh-setting-validities",function(a){e._handleSettingValidities({settingValidities:a,focusInvalidControl:!1})}),e.previewer.bind("focus-control-for-setting",function(a){var b;e.control.each(function(c){var d=_.pluck(c.settings,"id");-1!==_.indexOf(d,a)&&(b=c)}),b&&b.focus()}),e.previewer.bind("refresh",function(){e.previewer.refresh()}),e.trigger("ready"),c=h,c.focus(),setTimeout(function(){c.focus()},200)}})}(wp,jQuery);
\ No newline at end of file
+!function(a,b){var c,d,e,f=wp.customize;f.Setting=f.Value.extend({initialize:function(a,b,c){var d=this;f.Value.prototype.initialize.call(d,b,c),d.id=a,d.transport=d.transport||"refresh",d._dirty=c.dirty||!1,d.notifications=new f.Values({defaultConstructor:f.Notification}),d.bind(d.preview)},preview:function(){var a,b=this;a=b.transport,"postMessage"!==a||f.state("previewerAlive").get()||(a="refresh"),"postMessage"===a?b.previewer.send("setting",[b.id,b()]):"refresh"===a&&b.previewer.refresh()},findControls:function(){var a=this,b=[];return f.control.each(function(c){_.each(c.settings,function(d){d.id===a.id&&b.push(c)})}),b}}),f._latestRevision=0,f._lastSavedRevision=0,f._latestSettingRevisions={},f.bind("change",function(a){f._latestRevision+=1,f._latestSettingRevisions[a.id]=f._latestRevision}),f.bind("ready",function(){f.bind("add",function(a){a._dirty&&(f._latestRevision+=1,f._latestSettingRevisions[a.id]=f._latestRevision)})}),f.dirtyValues=function(a){var b={};return f.each(function(c){var d;c._dirty&&(d=f._latestSettingRevisions[c.id],f.state("changesetStatus").get()&&a&&a.unsaved&&(_.isUndefined(d)||d<=f._lastSavedRevision)||(b[c.id]=c.get()))}),b},f.requestChangesetUpdate=function(a){var c,d,e,g={};return c=new b.Deferred,a&&_.extend(g,a),_.each(f.dirtyValues({unsaved:!0}),function(b,c){a&&null===a[c]||(g[c]=_.extend({},g[c]||{},{value:b}))}),_.isEmpty(g)?(c.resolve({}),c.promise()):(f.state("processing").set(f.state("processing").get()+1),c.always(function(){f.state("processing").set(f.state("processing").get()-1)}),f.trigger("changeset-save",g),e=f.previewer.query({excludeCustomizedSaved:!0}),delete e.customized,_.extend(e,{nonce:f.settings.nonce.save,customize_theme:f.settings.theme.stylesheet,customize_changeset_data:JSON.stringify(g)}),d=wp.ajax.post("customize_save",e),d.done(function(a){var b={};f._lastSavedRevision=Math.max(f._latestRevision,f._lastSavedRevision),f.state("changesetStatus").set(a.changeset_status),c.resolve(a),f.trigger("changeset-saved",a),a.setting_validities&&_.each(a.setting_validities,function(a,c){!0===a&&_.isObject(g[c])&&!_.isUndefined(g[c].value)&&(b[c]=g[c].value)}),f.previewer.send("changeset-saved",_.extend({},a,{saved_changeset_values:b}))}),d.fail(function(a){c.reject(a),f.trigger("changeset-error",a)}),d.always(function(a){a.setting_validities&&f._handleSettingValidities({settingValidities:a.setting_validities})}),c.promise())},f.utils.bubbleChildValueChanges=function(a,c){b.each(c,function(b,c){a[c].bind(function(b,c){a.parent&&b!==c&&a.parent.trigger("change",a)})})},d=function(a){var b,c,d,e;b=this,a=a||{},d=function(){var a;a=(b.extended(f.Panel)||b.extended(f.Section))&&b.expanded&&b.expanded()?b.contentContainer:b.container,e=a.find(".control-focus:first"),0===e.length&&(e=a.find("input, select, textarea, button, object, a[href], [tabindex]").filter(":visible").first()),e.focus()},a.completeCallback?(c=a.completeCallback,a.completeCallback=function(){d(),c()}):a.completeCallback=d,f.state("paneVisible").set(!0),b.expand?b.expand(a):a.completeCallback()},f.utils.prioritySort=function(a,b){return a.priority()===b.priority()&&"number"==typeof a.params.instanceNumber&&"number"==typeof b.params.instanceNumber?a.params.instanceNumber-b.params.instanceNumber:a.priority()-b.priority()},f.utils.isKeydownButNotEnterEvent=function(a){return"keydown"===a.type&&13!==a.which},f.utils.areElementListsEqual=function(a,c){var d=a.length===c.length&&-1===_.indexOf(_.map(_.zip(a,c),function(a){return b(a[0]).is(a[1])}),!1);return d},e=function(){var a,b,c;return a=document.createElement("div"),b={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"},c=_.find(_.keys(b),function(b){return!_.isUndefined(a.style[b])}),c?b[c]:null}(),c=f.Class.extend({defaultActiveArguments:{duration:"fast",completeCallback:b.noop},defaultExpandedArguments:{duration:"fast",completeCallback:b.noop},containerType:"container",defaults:{title:"",description:"",priority:100,type:"default",content:null,active:!0,instanceNumber:null},initialize:function(a,c){var d=this;d.id=a,c=c||{},c.params=_.defaults(c.params||{},d.defaults),b.extend(d,c),d.templateSelector="customize-"+d.containerType+"-"+d.params.type,d.container=b(d.params.content),0===d.container.length&&(d.container=b(d.getContainer())),d.headContainer=d.container,d.contentContainer=d.getContent(),d.container=d.container.add(d.contentContainer),d.deferred={embedded:new b.Deferred},d.priority=new f.Value,d.active=new f.Value,d.activeArgumentsQueue=[],d.expanded=new f.Value,d.expandedArgumentsQueue=[],d.active.bind(function(a){var c=d.activeArgumentsQueue.shift();c=b.extend({},d.defaultActiveArguments,c),a=a&&d.isContextuallyActive(),d.onChangeActive(a,c)}),d.expanded.bind(function(a){var c=d.expandedArgumentsQueue.shift();c=b.extend({},d.defaultExpandedArguments,c),d.onChangeExpanded(a,c)}),d.deferred.embedded.done(function(){d.attachEvents()}),f.utils.bubbleChildValueChanges(d,["priority","active"]),d.priority.set(d.params.priority),d.active.set(d.params.active),d.expanded.set(!1)},ready:function(){},_children:function(a,b){var c=this,d=[];return f[b].each(function(b){b[a].get()===c.id&&d.push(b)}),d.sort(f.utils.prioritySort),d},isContextuallyActive:function(){throw new Error("Container.isContextuallyActive() must be overridden in a subclass.")},onChangeActive:function(a,c){var d,e,g=this,h=g.headContainer;return c.unchanged?void(c.completeCallback&&c.completeCallback()):(d="resolved"===f.previewer.deferred.active.state()?c.duration:0,g.extended(f.Panel)&&(f.panel.each(function(a){a!==g&&a.expanded()&&(e=a,d=0)}),a||_.each(g.sections(),function(a){a.collapse({duration:0})})),void(b.contains(document,h)?a?h.stop(!0,!0).slideDown(d,c.completeCallback):g.expanded()?g.collapse({duration:d,completeCallback:function(){h.stop(!0,!0).slideUp(d,c.completeCallback)}}):h.stop(!0,!0).slideUp(d,c.completeCallback):(h.toggle(a),c.completeCallback&&c.completeCallback())))},_toggleActive:function(a,b){var c=this;return b=b||{},a&&this.active.get()||!a&&!this.active.get()?(b.unchanged=!0,c.onChangeActive(c.active.get(),b),!1):(b.unchanged=!1,this.activeArgumentsQueue.push(b),this.active.set(a),!0)},activate:function(a){return this._toggleActive(!0,a)},deactivate:function(a){return this._toggleActive(!1,a)},onChangeExpanded:function(){throw new Error("Must override with subclass.")},_toggleExpanded:function(a,b){var c,d=this;return b=b||{},c=b.completeCallback,!(a&&!d.active())&&(f.state("paneVisible").set(!0),b.completeCallback=function(){c&&c.apply(d,arguments),a?d.container.trigger("expanded"):d.container.trigger("collapsed")},a&&d.expanded.get()||!a&&!d.expanded.get()?(b.unchanged=!0,d.onChangeExpanded(d.expanded.get(),b),!1):(b.unchanged=!1,d.expandedArgumentsQueue.push(b),d.expanded.set(a),!0))},expand:function(a){return this._toggleExpanded(!0,a)},collapse:function(a){return this._toggleExpanded(!1,a)},_animateChangeExpanded:function(a){if(!e)return void(a&&a());var c,d,f=this,g=f.contentContainer,h=g.closest(".wp-full-overlay");c=h.add(g),(_.isUndefined(f.panel)||""===f.panel())&&(c=c.add("#customize-info, .customize-pane-parent")),d=function(f){2===f.eventPhase&&b(f.target).is(g)&&(g.off(e,d),c.removeClass("busy"),a&&a())},g.on(e,d),c.addClass("busy"),_.defer(function(){var a=g.closest(".wp-full-overlay-sidebar-content"),b=a.scrollTop(),c=g.data("previous-scrollTop")||0,d=f.expanded();d&&0<b?(g.css("top",b+"px"),g.data("previous-scrollTop",b)):!d&&0<b+c&&(g.css("top",c-b+"px"),a.scrollTop(c))})},focus:d,getContainer:function(){var a,c=this;return a=0!==b("#tmpl-"+c.templateSelector).length?wp.template(c.templateSelector):wp.template("customize-"+c.containerType+"-default"),a&&c.container?b.trim(a(c.params)):"<li></li>"},getContent:function(){var a=this,b=a.container,c=b.find(".accordion-section-content, .control-panel-content").first(),d="sub-"+b.attr("id"),e=d,f=b.attr("aria-owns");return f&&(e=e+" "+f),b.attr("aria-owns",e),c.detach().attr({id:d,"class":"customize-pane-child "+c.attr("class")+" "+b.attr("class")})}}),f.Section=c.extend({containerType:"section",defaults:{title:"",description:"",priority:100,type:"default",content:null,active:!0,instanceNumber:null,panel:null,customizeAction:""},initialize:function(a,d){var e=this;c.prototype.initialize.call(e,a,d),e.id=a,e.panel=new f.Value,e.panel.bind(function(a){b(e.headContainer).toggleClass("control-subsection",!!a)}),e.panel.set(e.params.panel||""),f.utils.bubbleChildValueChanges(e,["panel"]),e.embed(),e.deferred.embedded.done(function(){e.ready()})},embed:function(){var a,c=this,d=b("#customize-theme-controls");a=function(a){var e;a?f.panel(a,function(a){a.deferred.embedded.done(function(){e=a.contentContainer,c.headContainer.parent().is(e)||e.append(c.headContainer),c.contentContainer.parent().is(c.headContainer)||d.append(c.contentContainer),c.deferred.embedded.resolve()})}):(e=b(".customize-pane-parent"),c.headContainer.parent().is(e)||e.append(c.headContainer),c.contentContainer.parent().is(c.headContainer)||d.append(c.contentContainer),c.deferred.embedded.resolve())},c.panel.bind(a),a(c.panel.get())},attachEvents:function(){var a,b,c=this;c.container.hasClass("cannot-expand")||(c.container.find(".accordion-section-title, .customize-section-back").on("click keydown",function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),c.expanded()?c.collapse():c.expand())}),c.container.find(".customize-section-title .customize-help-toggle").on("click",function(){a=c.container.find(".section-meta"),a.hasClass("cannot-expand")||(b=a.find(".customize-section-description:first"),b.toggleClass("open"),b.slideToggle(),b.attr("aria-expanded",function(a,b){return"true"===b?"false":"true"}))}))},isContextuallyActive:function(){var a=this,b=a.controls(),c=0;return _(b).each(function(a){a.active()&&(c+=1)}),0!==c},controls:function(){return this._children("section","control")},onChangeExpanded:function(a,c){var d,e=this,g=e.headContainer.closest(".wp-full-overlay-sidebar-content"),h=e.contentContainer,i=e.headContainer.closest(".wp-full-overlay"),j=h.find(".customize-section-back"),k=e.headContainer.find(".accordion-section-title").first();a&&!h.hasClass("open")?(d=c.unchanged?c.completeCallback:b.proxy(function(){e._animateChangeExpanded(function(){k.attr("tabindex","-1"),j.attr("tabindex","0"),j.focus(),h.css("top",""),g.scrollTop(0),c.completeCallback&&c.completeCallback()}),h.addClass("open"),i.addClass("section-open"),f.state("expandedSection").set(e)},this),c.allowMultiple||f.section.each(function(a){a!==e&&a.collapse({duration:c.duration})}),e.panel()?f.panel(e.panel()).expand({duration:c.duration,completeCallback:d}):(f.panel.each(function(a){a.collapse()}),d())):!a&&h.hasClass("open")?(e._animateChangeExpanded(function(){j.attr("tabindex","-1"),k.attr("tabindex","0"),k.focus(),h.css("top",""),c.completeCallback&&c.completeCallback()}),h.removeClass("open"),i.removeClass("section-open"),e===f.state("expandedSection").get()&&f.state("expandedSection").set(!1)):c.completeCallback&&c.completeCallback()}}),f.ThemesSection=f.Section.extend({currentTheme:"",overlay:"",template:"",screenshotQueue:null,$window:b(window),initialize:function(){return this.$customizeSidebar=b(".wp-full-overlay-sidebar-content:first"),f.Section.prototype.initialize.apply(this,arguments)},ready:function(){var a=this;a.overlay=a.container.find(".theme-overlay"),a.template=wp.template("customize-themes-details-view"),a.container.on("keydown",function(b){a.overlay.find(".theme-wrap").is(":visible")&&(39===b.keyCode&&a.nextTheme(),37===b.keyCode&&a.previousTheme(),27===b.keyCode&&(a.closeDetails(),b.stopPropagation()))}),_.bindAll(this,"renderScreenshots")},isContextuallyActive:function(){return this.active()},attachEvents:function(){var a=this;a.container.find(".change-theme, .customize-theme").on("click keydown",function(b){f.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.expanded()?a.collapse():a.expand())}),a.container.on("click keydown",".left",function(b){f.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.previousTheme())}),a.container.on("click keydown",".right",function(b){f.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.nextTheme())}),a.container.on("click keydown",".theme-backdrop, .close",function(b){f.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),a.closeDetails())});var b=_.throttle(_.bind(a.renderScreenshots,this),100);a.container.on("input","#themes-filter",function(c){var d,e=c.currentTarget.value.toLowerCase().trim().replace("-"," "),f=a.controls();_.each(f,function(a){a.filter(e)}),b(),d=a.container.find("li.customize-control:visible").length,a.container.find(".theme-count").text(d)}),f.bind("ready",function(){_.each(a.controls().slice(0,3),function(a){var b,c=a.params.theme.screenshot[0];c&&(b=new Image,b.src=c)})})},onChangeExpanded:function(a,b){if(b.unchanged)return void(b.completeCallback&&b.completeCallback());var c=this,d=c.contentContainer,e=d.closest(".wp-full-overlay"),g=d.closest(".wp-full-overlay-sidebar-content"),h=d.find(".customize-theme"),i=c.headContainer.find(".change-theme");a&&!d.hasClass("current-panel")?(f.section.each(function(a){a!==c&&a.collapse({duration:b.duration})}),f.panel.each(function(a){a.collapse({duration:0})}),c._animateChangeExpanded(function(){i.attr("tabindex","-1"),h.attr("tabindex","0"),h.focus(),d.css("top",""),g.scrollTop(0),b.completeCallback&&b.completeCallback()}),e.addClass("in-themes-panel"),d.addClass("current-panel"),_.delay(c.renderScreenshots,10),c.$customizeSidebar.on("scroll.customize-themes-section",_.throttle(c.renderScreenshots,300))):!a&&d.hasClass("current-panel")&&(c._animateChangeExpanded(function(){i.attr("tabindex","0"),h.attr("tabindex","-1"),i.focus(),d.css("top",""),b.completeCallback&&b.completeCallback()}),e.removeClass("in-themes-panel"),d.removeClass("current-panel"),c.$customizeSidebar.off("scroll.customize-themes-section"))},renderScreenshots:function(){var a=this;null===a.screenshotQueue&&(a.screenshotQueue=a.controls()),a.screenshotQueue.length&&(a.screenshotQueue=_.filter(a.screenshotQueue,function(b){var c=b.container.find(".theme-screenshot"),d=c.find("img");if(!d.length)return!1;if(d.is(":hidden"))return!0;var e=a.$window.scrollTop(),f=e+a.$window.height(),g=d.offset().top,h=c.height(),i=g+h,j=3*h,k=i>=e-j&&g<=f+j;return k&&b.container.trigger("render-screenshot"),!k}))},nextTheme:function(){var a=this;a.getNextTheme()&&a.showDetails(a.getNextTheme(),function(){a.overlay.find(".right").focus()})},getNextTheme:function(){var a,b;return a=f.control("theme_"+this.currentTheme),b=a.container.next("li.customize-control-theme"),!!b.length&&(b=b[0].id.replace("customize-control-",""),a=f.control(b),a.params.theme)},previousTheme:function(){var a=this;a.getPreviousTheme()&&a.showDetails(a.getPreviousTheme(),function(){a.overlay.find(".left").focus()})},getPreviousTheme:function(){var a,b;return a=f.control("theme_"+this.currentTheme),b=a.container.prev("li.customize-control-theme"),!!b.length&&(b=b[0].id.replace("customize-control-",""),a=f.control(b),a.params.theme)},updateLimits:function(){this.getNextTheme()||this.overlay.find(".right").addClass("disabled"),this.getPreviousTheme()||this.overlay.find(".left").addClass("disabled")},loadThemePreview:function(a){var c,d,e,g=b.Deferred();return e=document.createElement("a"),e.href=location.href,e.search=b.param(_.extend(f.utils.parseQueryString(e.search.substr(1)),{theme:a,changeset_uuid:f.settings.changeset.uuid})),d=b(".wp-full-overlay"),d.addClass("customize-loading"),c=function(){var a;f.state("processing").get()>0||(f.state("processing").unbind(c),a=f.requestChangesetUpdate(),a.done(function(){b(window).off("beforeunload.customize-confirm"),top.location.href=e.href,g.resolve()}),a.fail(function(){d.removeClass("customize-loading"),g.reject()}))},0===f.state("processing").get()?c():f.state("processing").bind(c),g.promise()},showDetails:function(a,c){var d,e=this;c=c||function(){},e.currentTheme=a.id,e.overlay.html(e.template(a)).fadeIn("fast").focus(),b("body").addClass("modal-open"),e.containFocus(e.overlay),e.updateLimits(),d=e.overlay.find(".inactive-theme > a"),d.on("click",function(b){b.preventDefault(),d.hasClass("disabled")||(d.addClass("disabled"),e.loadThemePreview(a.id).fail(function(){d.removeClass("disabled")}))}),c()},closeDetails:function(){b("body").removeClass("modal-open"),this.overlay.fadeOut("fast"),f.control("theme_"+this.currentTheme).focus()},containFocus:function(a){var c;a.on("keydown",function(d){if(9===d.keyCode)return c=b(":tabbable",a),c.last()[0]!==d.target||d.shiftKey?c.first()[0]===d.target&&d.shiftKey?(c.last().focus(),!1):void 0:(c.first().focus(),!1)})}}),f.Panel=c.extend({containerType:"panel",initialize:function(a,b){var d=this;c.prototype.initialize.call(d,a,b),d.embed(),d.deferred.embedded.done(function(){d.ready()})},embed:function(){var a=this,c=b("#customize-theme-controls"),d=b(".customize-pane-parent");a.headContainer.parent().is(d)||d.append(a.headContainer),a.contentContainer.parent().is(a.headContainer)||(c.append(a.contentContainer),a.renderContent()),a.deferred.embedded.resolve()},attachEvents:function(){var a,c=this;c.headContainer.find(".accordion-section-title").on("click keydown",function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),c.expanded()||c.expand())}),c.container.find(".customize-panel-back").on("click keydown",function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),c.expanded()&&c.collapse())}),a=c.container.find(".panel-meta:first"),a.find("> .accordion-section-title .customize-help-toggle").on("click keydown",function(d){if(!f.utils.isKeydownButNotEnterEvent(d)&&(d.preventDefault(),!a.hasClass("cannot-expand"))){var e=a.find(".customize-panel-description:first");a.hasClass("open")?(a.toggleClass("open"),e.slideUp(c.defaultExpandedArguments.duration),b(this).attr("aria-expanded",!1)):(e.slideDown(c.defaultExpandedArguments.duration),a.toggleClass("open"),b(this).attr("aria-expanded",!0))}})},sections:function(){return this._children("panel","section")},isContextuallyActive:function(){var a=this,b=a.sections(),c=0;return _(b).each(function(a){a.active()&&a.isContextuallyActive()&&(c+=1)}),0!==c},onChangeExpanded:function(a,b){if(b.unchanged)return void(b.completeCallback&&b.completeCallback());var c=this,d=c.contentContainer,e=d.closest(".wp-full-overlay"),g=d.closest(".wp-full-overlay-sidebar-content"),h=c.headContainer.find(".accordion-section-title"),i=d.find(".customize-panel-back");a&&!d.hasClass("current-panel")?(f.section.each(function(a){c.id!==a.panel()&&a.collapse({duration:0})}),f.panel.each(function(a){c!==a&&a.collapse({duration:0})}),c._animateChangeExpanded(function(){h.attr("tabindex","-1"),i.attr("tabindex","0"),i.focus(),d.css("top",""),g.scrollTop(0),b.completeCallback&&b.completeCallback()}),e.addClass("in-sub-panel"),d.addClass("current-panel"),f.state("expandedPanel").set(c)):!a&&d.hasClass("current-panel")&&(c._animateChangeExpanded(function(){h.attr("tabindex","0"),i.attr("tabindex","-1"),h.focus(),d.css("top",""),b.completeCallback&&b.completeCallback()}),e.removeClass("in-sub-panel"),d.removeClass("current-panel"),c===f.state("expandedPanel").get()&&f.state("expandedPanel").set(!1))},renderContent:function(){var a,c=this;a=0!==b("#tmpl-"+c.templateSelector+"-content").length?wp.template(c.templateSelector+"-content"):wp.template("customize-panel-default-content"),a&&c.headContainer&&c.contentContainer.html(a(c.params))}}),f.Control=f.Class.extend({defaultActiveArguments:{duration:"fast",completeCallback:b.noop},initialize:function(a,c){var d,e,g,h=this;h.params={},b.extend(h,c||{}),h.id=a,h.selector="#customize-control-"+a.replace(/\]/g,"").replace(/\[/g,"-"),h.templateSelector="customize-control-"+h.params.type+"-content",h.container=b(h.params.content?h.params.content:h.selector),h.deferred={embedded:new b.Deferred},h.section=new f.Value,h.priority=new f.Value,h.active=new f.Value,h.activeArgumentsQueue=[],h.notifications=new f.Values({defaultConstructor:f.Notification}),h.elements=[],d=h.container.find("[data-customize-setting-link]"),e={},d.each(function(){var a,c=b(this);if(c.is(":radio")){if(a=c.prop("name"),e[a])return;e[a]=!0,c=d.filter('[name="'+a+'"]')}f(c.data("customizeSettingLink"),function(a){var b=new f.Element(c);h.elements.push(b),b.sync(a),b.set(a())})}),h.active.bind(function(a){var c=h.activeArgumentsQueue.shift();c=b.extend({},h.defaultActiveArguments,c),h.onChangeActive(a,c)}),h.section.set(h.params.section),h.priority.set(isNaN(h.params.priority)?10:h.params.priority),h.active.set(h.params.active),f.utils.bubbleChildValueChanges(h,["section","priority","active"]),g=b.map(h.params.settings,function(a){return a}),0===g.length?(h.setting=null,h.settings={},h.embed()):f.apply(f,g.concat(function(){var a;h.settings={};for(a in h.params.settings)h.settings[a]=f(h.params.settings[a]);h.setting=h.settings["default"]||null,_.each(h.settings,function(a){a.notifications.bind("add",function(b){var c,d,e;d=a.id+":"+b.code,e=_.extend({},b,{setting:a.id}),c=new f.Notification(d,e),h.notifications.add(c.code,c)}),a.notifications.bind("remove",function(b){h.notifications.remove(a.id+":"+b.code)})}),h.embed()})),h.deferred.embedded.done(function(){var a=_.debounce(function(){h.renderNotifications()});h.notifications.bind("add",function(b){wp.a11y.speak(b.message,"assertive"),a()}),h.notifications.bind("remove",a),h.renderNotifications(),h.ready()})},embed:function(){var a,b=this;a=function(a){var c;a&&f.section(a,function(a){a.deferred.embedded.done(function(){c=a.contentContainer.is("ul")?a.contentContainer:a.contentContainer.find("ul:first"),b.container.parent().is(c)||(c.append(b.container),b.renderContent()),b.deferred.embedded.resolve()})})},b.section.bind(a),a(b.section.get())},ready:function(){var a,c=this;"dropdown-pages"===c.params.type&&c.params.allow_addition&&(a=c.container.find(".new-content-item"),a.hide(),c.container.on("click",".add-new-toggle",function(c){b(c.currentTarget).slideUp(180),a.slideDown(180),a.find(".create-item-input").focus()}),c.container.on("click",".add-content",function(){c.addNewPage()}),c.container.on("keyup",".create-item-input",function(a){13===a.which&&c.addNewPage()}))},getNotificationsContainerElement:function(){var a,c,d=this;return c=d.container.find(".customize-control-notifications-container:first"),c.length?c:(c=b('<div class="customize-control-notifications-container"></div>'),d.container.hasClass("customize-control-nav_menu_item")?d.container.find(".menu-item-settings:first").prepend(c):d.container.hasClass("customize-control-widget_form")?d.container.find(".widget-inside:first").prepend(c):(a=d.container.find(".customize-control-title"),a.length?a.after(c):d.container.prepend(c)),c)},renderNotifications:function(){var a,c,d=this,e=!1;a=d.getNotificationsContainerElement(),a&&a.length&&(c=[],d.notifications.each(function(a){c.push(a),"error"===a.type&&(e=!0)}),0===c.length?a.stop().slideUp("fast"):a.stop().slideDown("fast",null,function(){b(this).css("height","auto")}),d.notificationsTemplate||(d.notificationsTemplate=wp.template("customize-control-notifications")),d.container.toggleClass("has-notifications",0!==c.length),d.container.toggleClass("has-error",e),a.empty().append(b.trim(d.notificationsTemplate({notifications:c,altNotice:Boolean(d.altNotice)}))))},expand:function(a){f.section(this.section()).expand(a)},focus:d,onChangeActive:function(a,c){return c.unchanged?void(c.completeCallback&&c.completeCallback()):void(b.contains(document,this.container[0])?a?this.container.slideDown(c.duration,c.completeCallback):this.container.slideUp(c.duration,c.completeCallback):(this.container.toggle(a),c.completeCallback&&c.completeCallback()))},toggle:function(a){return this.onChangeActive(a,this.defaultActiveArguments)},activate:c.prototype.activate,deactivate:c.prototype.deactivate,_toggleActive:c.prototype._toggleActive,dropdownInit:function(){var a=this,b=this.container.find(".dropdown-status"),c=this.params,d=!1,e=function(a){"string"==typeof a&&c.statuses&&c.statuses[a]?b.html(c.statuses[a]).show():b.hide()};this.container.on("click keydown",".dropdown",function(b){f.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),d||a.container.toggleClass("open"),a.container.hasClass("open")&&a.container.parent().parent().find("li.library-selected").focus(),d=!0,setTimeout(function(){d=!1},400))}),this.setting.bind(e),e(this.setting())},renderContent:function(){var a,c=this;0!==b("#tmpl-"+c.templateSelector).length&&(a=wp.template(c.templateSelector),a&&c.container&&c.container.html(a(c.params)))},addNewPage:function(){var a,c,d,e,g,h,i=this;if("dropdown-pages"===i.params.type&&i.params.allow_addition&&f.Menus){if(c=i.container.find(".add-new-toggle"),d=i.container.find(".new-content-item"),e=i.container.find(".create-item-input"),g=e.val(),h=i.container.find("select"),!g)return void e.addClass("invalid");e.removeClass("invalid"),e.attr("disabled","disabled"),a=f.Menus.insertAutoDraftPost({post_title:g,post_type:"page"}),a.done(function(a){var e,j,k;e=new f.Menus.AvailableItemModel({id:"post-"+a.post_id,title:g,type:"page",type_label:f.Menus.data.l10n.page_label,object:"post_type",object_id:a.post_id,url:a.url}),f.Menus.availableMenuItemsPanel.collection.add(e),j=b("#available-menu-items-post_type-page").find(".available-menu-items-list"),k=wp.template("available-menu-item"),j.prepend(k(e.attributes)),h.focus(),i.setting.set(String(a.post_id)),d.slideUp(180),c.slideDown(180)}),a.always(function(){e.val("").removeAttr("disabled")})}}}),f.ColorControl=f.Control.extend({ready:function(){var a,b=this,c="hue"===this.params.mode,d=!1;c?(a=this.container.find(".color-picker-hue"),a.val(b.setting()).wpColorPicker({change:function(a,c){d=!0,b.setting(c.color.h()),d=!1}})):(a=this.container.find(".color-picker-hex"),a.val(b.setting()).wpColorPicker({change:function(){d=!0,b.setting.set(a.wpColorPicker("color")),d=!1},clear:function(){d=!0,b.setting.set(""),d=!1}})),b.setting.bind(function(b){d||(a.val(b),a.wpColorPicker("color",b))}),b.container.on("keydown",function(c){var d;27===c.which&&(d=b.container.find(".wp-picker-container"),d.hasClass("wp-picker-active")&&(a.wpColorPicker("close"),b.container.find(".wp-color-result").focus(),c.stopPropagation()))})}}),f.MediaControl=f.Control.extend({ready:function(){function a(a){var d=b.Deferred();c.extended(f.UploadControl)?d.resolve():(a=parseInt(a,10),_.isNaN(a)||a<=0?(delete c.params.attachment,d.resolve()):c.params.attachment&&c.params.attachment.id===a&&d.resolve()),"pending"===d.state()&&wp.media.attachment(a).fetch().done(function(){c.params.attachment=this.attributes,d.resolve(),wp.customize.previewer.send(c.setting.id+"-attachment-data",this.attributes)}),d.done(function(){c.renderContent()})}var c=this;_.bindAll(c,"restoreDefault","removeFile","openFrame","select","pausePlayer"),c.container.on("click keydown",".upload-button",c.openFrame),c.container.on("click keydown",".upload-button",c.pausePlayer),c.container.on("click keydown",".thumbnail-image img",c.openFrame),c.container.on("click keydown",".default-button",c.restoreDefault),c.container.on("click keydown",".remove-button",c.pausePlayer),c.container.on("click keydown",".remove-button",c.removeFile),c.container.on("click keydown",".remove-button",c.cleanupPlayer),f.section(c.section()).container.on("expanded",function(){c.player&&c.player.setControlsSize()}).on("collapsed",function(){c.pausePlayer()}),a(c.setting()),c.setting.bind(a)},pausePlayer:function(){this.player&&this.player.pause()},cleanupPlayer:function(){this.player&&wp.media.mixin.removePlayer(this.player)},openFrame:function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.frame||this.initFrame(),this.frame.open())},initFrame:function(){this.frame=wp.media({button:{text:this.params.button_labels.frame_button},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:this.params.mime_type}),multiple:!1,date:!1})]}),this.frame.on("select",this.select)},select:function(){var a,b=this.frame.state().get("selection").first().toJSON(),c=window._wpmejsSettings||{};this.params.attachment=b,this.setting(b.id),a=this.container.find("audio, video").get(0),a?this.player=new MediaElementPlayer(a,c):this.cleanupPlayer()},restoreDefault:function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment=this.params.defaultAttachment,this.setting(this.params.defaultAttachment.url))},removeFile:function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment={},this.setting(""),this.renderContent())}}),f.UploadControl=f.MediaControl.extend({select:function(){var a,b=this.frame.state().get("selection").first().toJSON(),c=window._wpmejsSettings||{};this.params.attachment=b,this.setting(b.url),a=this.container.find("audio, video").get(0),a?this.player=new MediaElementPlayer(a,c):this.cleanupPlayer()},success:function(){},removerVisibility:function(){}}),f.ImageControl=f.UploadControl.extend({thumbnailSrc:function(){}}),f.BackgroundControl=f.UploadControl.extend({ready:function(){f.UploadControl.prototype.ready.apply(this,arguments)},select:function(){f.UploadControl.prototype.select.apply(this,arguments),wp.ajax.post("custom-background-add",{nonce:_wpCustomizeBackground.nonces.add,wp_customize:"on",customize_theme:f.settings.theme.stylesheet,attachment_id:this.params.attachment.id})}}),f.BackgroundPositionControl=f.Control.extend({ready:function(){var a,c=this;c.container.on("change",'input[name="background-position"]',function(){var a=b(this).val().split(" ");c.settings.x(a[0]),c.settings.y(a[1])}),a=_.debounce(function(){var a,b,d,e;a=c.settings.x.get(),b=c.settings.y.get(),e=String(a)+" "+String(b),d=c.container.find('input[name="background-position"][value="'+e+'"]'),d.click()}),c.settings.x.bind(a),c.settings.y.bind(a),a()}}),f.CroppedImageControl=f.MediaControl.extend({openFrame:function(a){f.utils.isKeydownButNotEnterEvent(a)||(this.initFrame(),this.frame.setState("library").open())},initFrame:function(){var a=_wpMediaViewsL10n;this.frame=wp.media({button:{text:a.select,close:!1},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:this.params.width,suggestedHeight:this.params.height}),new wp.media.controller.CustomizeImageCropper({imgSelectOptions:this.calculateImageSelectOptions,control:this})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this)},onSelect:function(){var a=this.frame.state().get("selection").first().toJSON();this.params.width!==a.width||this.params.height!==a.height||this.params.flex_width||this.params.flex_height?this.frame.setState("cropper"):(this.setImageFromAttachment(a),this.frame.close())},onCropped:function(a){this.setImageFromAttachment(a)},calculateImageSelectOptions:function(a,b){var c,d,e,f=b.get("control"),g=!!parseInt(f.params.flex_width,10),h=!!parseInt(f.params.flex_height,10),i=a.get("width"),j=a.get("height"),k=parseInt(f.params.width,10),l=parseInt(f.params.height,10),m=k/l,n=k,o=l;return b.set("canSkipCrop",!f.mustBeCropped(g,h,k,l,i,j)),i/j>m?(l=j,k=l*m):(k=i,l=k/m),c=(i-k)/2,d=(j-l)/2,e={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:i,imageHeight:j,minWidth:n>k?k:n,minHeight:o>l?l:o,x1:c,y1:d,x2:k+c,y2:l+d},h===!1&&g===!1&&(e.aspectRatio=k+":"+l),!0===h&&(delete e.minHeight,e.maxWidth=i),!0===g&&(delete e.minWidth,e.maxHeight=j),e},mustBeCropped:function(a,b,c,d,e,f){return(!0!==a||!0!==b)&&((!0!==a||d!==f)&&((!0!==b||c!==e)&&((c!==e||d!==f)&&!(e<=c))))},onSkippedCrop:function(){var a=this.frame.state().get("selection").first().toJSON();this.setImageFromAttachment(a)},setImageFromAttachment:function(a){this.params.attachment=a,this.setting(a.id)}}),f.SiteIconControl=f.CroppedImageControl.extend({
+initFrame:function(){var a=_wpMediaViewsL10n;this.frame=wp.media({button:{text:a.select,close:!1},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:this.params.width,suggestedHeight:this.params.height}),new wp.media.controller.SiteIconCropper({imgSelectOptions:this.calculateImageSelectOptions,control:this})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this)},onSelect:function(){var a=this.frame.state().get("selection").first().toJSON(),b=this;this.params.width!==a.width||this.params.height!==a.height||this.params.flex_width||this.params.flex_height?this.frame.setState("cropper"):wp.ajax.post("crop-image",{nonce:a.nonces.edit,id:a.id,context:"site-icon",cropDetails:{x1:0,y1:0,width:this.params.width,height:this.params.height,dst_width:this.params.width,dst_height:this.params.height}}).done(function(a){b.setImageFromAttachment(a),b.frame.close()}).fail(function(){b.frame.trigger("content:error:crop")})},setImageFromAttachment:function(a){var c,d,e=["site_icon-32","thumbnail","full"];_.each(e,function(b){d||_.isUndefined(a.sizes[b])||(d=a.sizes[b])}),this.params.attachment=a,this.setting(a.id),d&&(c=b('link[rel="icon"][sizes="32x32"]'),c.attr("href",d.url))},removeFile:function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment={},this.setting(""),this.renderContent(),b('link[rel="icon"][sizes="32x32"]').attr("href","/favicon.ico"))}}),f.HeaderControl=f.Control.extend({ready:function(){this.btnRemove=b("#customize-control-header_image .actions .remove"),this.btnNew=b("#customize-control-header_image .actions .new"),_.bindAll(this,"openMedia","removeImage"),this.btnNew.on("click",this.openMedia),this.btnRemove.on("click",this.removeImage),f.HeaderTool.currentHeader=this.getInitialHeaderImage(),new f.HeaderTool.CurrentView({model:f.HeaderTool.currentHeader,el:"#customize-control-header_image .current .container"}),new f.HeaderTool.ChoiceListView({collection:f.HeaderTool.UploadsList=new f.HeaderTool.ChoiceList,el:"#customize-control-header_image .choices .uploaded .list"}),new f.HeaderTool.ChoiceListView({collection:f.HeaderTool.DefaultsList=new f.HeaderTool.DefaultsList,el:"#customize-control-header_image .choices .default .list"}),f.HeaderTool.combinedList=f.HeaderTool.CombinedList=new f.HeaderTool.CombinedList([f.HeaderTool.UploadsList,f.HeaderTool.DefaultsList]),wp.media.controller.Cropper.prototype.defaults.doCropArgs.wp_customize="on",wp.media.controller.Cropper.prototype.defaults.doCropArgs.customize_theme=f.settings.theme.stylesheet},getInitialHeaderImage:function(){if(!f.get().header_image||!f.get().header_image_data||_.contains(["remove-header","random-default-image","random-uploaded-image"],f.get().header_image))return new f.HeaderTool.ImageModel;var a=_.find(_wpCustomizeHeader.uploads,function(a){return a.attachment_id===f.get().header_image_data.attachment_id});return a||(a={url:f.get().header_image,thumbnail_url:f.get().header_image,attachment_id:f.get().header_image_data.attachment_id}),new f.HeaderTool.ImageModel({header:a,choice:a.url.split("/").pop()})},calculateImageSelectOptions:function(a,b){var c,d,e,g,h,i,j=parseInt(_wpCustomizeHeader.data.width,10),k=parseInt(_wpCustomizeHeader.data.height,10),l=!!parseInt(_wpCustomizeHeader.data["flex-width"],10),m=!!parseInt(_wpCustomizeHeader.data["flex-height"],10);return h=a.get("width"),g=a.get("height"),this.headerImage=new f.HeaderTool.ImageModel,this.headerImage.set({themeWidth:j,themeHeight:k,themeFlexWidth:l,themeFlexHeight:m,imageWidth:h,imageHeight:g}),b.set("canSkipCrop",!this.headerImage.shouldBeCropped()),c=j/k,d=h,e=g,d/e>c?(k=e,j=k*c):(j=d,k=j/c),i={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:h,imageHeight:g,x1:0,y1:0,x2:j,y2:k},m===!1&&l===!1&&(i.aspectRatio=j+":"+k),m===!1&&(i.maxHeight=k),l===!1&&(i.maxWidth=j),i},openMedia:function(a){var b=_wpMediaViewsL10n;a.preventDefault(),this.frame=wp.media({button:{text:b.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:b.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:_wpCustomizeHeader.data.width,suggestedHeight:_wpCustomizeHeader.data.height}),new wp.media.controller.Cropper({imgSelectOptions:this.calculateImageSelectOptions})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this),this.frame.open()},onSelect:function(){this.frame.setState("cropper")},onCropped:function(a){var b=a.url,c=a.attachment_id,d=a.width,e=a.height;this.setImageFromURL(b,c,d,e)},onSkippedCrop:function(a){var b=a.get("url"),c=a.get("width"),d=a.get("height");this.setImageFromURL(b,a.id,c,d)},setImageFromURL:function(a,b,c,d){var e,g={};g.url=a,g.thumbnail_url=a,g.timestamp=_.now(),b&&(g.attachment_id=b),c&&(g.width=c),d&&(g.height=d),e=new f.HeaderTool.ImageModel({header:g,choice:a.split("/").pop()}),f.HeaderTool.UploadsList.add(e),f.HeaderTool.currentHeader.set(e.toJSON()),e.save(),e.importImage()},removeImage:function(){f.HeaderTool.currentHeader.trigger("hide"),f.HeaderTool.CombinedList.trigger("control:removeImage")}}),f.ThemeControl=f.Control.extend({touchDrag:!1,isRendered:!1,renderContent:function(){var a=this,b=arguments;f.section(a.section(),function(c){c.expanded()?(f.Control.prototype.renderContent.apply(a,b),a.isRendered=!0):c.expanded.bind(function(c){c&&!a.isRendered&&(f.Control.prototype.renderContent.apply(a,b),a.isRendered=!0)})})},ready:function(){var a=this;a.container.on("touchmove",".theme",function(){a.touchDrag=!0}),a.container.on("click keydown touchend",".theme",function(c){if(!f.utils.isKeydownButNotEnterEvent(c))return a.touchDrag===!0?a.touchDrag=!1:void(b(c.target).is(".theme-actions .button")||f.section(a.section()).loadThemePreview(a.params.theme.id))}),a.container.on("click keydown",".theme-actions .theme-details",function(b){f.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),f.section(a.section()).showDetails(a.params.theme))}),a.container.on("render-screenshot",function(){var a=b(this).find("img"),c=a.data("src");c&&a.attr("src",c)})},filter:function(a){var b=this,c=b.params.theme.name+" "+b.params.theme.description+" "+b.params.theme.tags+" "+b.params.theme.author;c=c.toLowerCase().replace("-"," "),-1!==c.search(a)?b.activate():b.deactivate()}}),f.defaultConstructor=f.Setting,f.control=new f.Values({defaultConstructor:f.Control}),f.section=new f.Values({defaultConstructor:f.Section}),f.panel=new f.Values({defaultConstructor:f.Panel}),f.PreviewFrame=f.Messenger.extend({sensitivity:null,initialize:function(a,c){var d=b.Deferred();d.promise(this),this.container=a.container,b.extend(a,{channel:f.PreviewFrame.uuid()}),f.Messenger.prototype.initialize.call(this,a,c),this.add("previewUrl",a.previewUrl),this.query=b.extend(a.query||{},{customize_messenger_channel:this.channel()}),this.run(d)},run:function(a){var c,d,e,g=this,h=!1,i=!1,j=null,k="{}"!==g.query.customized;g._ready&&g.unbind("ready",g._ready),g._ready=function(b){i=!0,j=b,g.container.addClass("iframe-ready"),b&&h&&a.resolveWith(g,[b])},g.bind("ready",g._ready),c=document.createElement("a"),c.href=g.previewUrl(),d=_.extend(f.utils.parseQueryString(c.search.substr(1)),{customize_changeset_uuid:g.query.customize_changeset_uuid,customize_theme:g.query.customize_theme,customize_messenger_channel:g.query.customize_messenger_channel}),c.search=b.param(d),g.iframe=b("<iframe />",{title:f.l10n.previewIframeTitle,name:"customize-"+g.channel()}),g.iframe.attr("onmousewheel",""),k?g.iframe.attr("data-src",c.href):g.iframe.attr("src",c.href),g.iframe.appendTo(g.container),g.targetWindow(g.iframe[0].contentWindow),k&&(e=b("<form>",{action:c.href,target:g.iframe.attr("name"),method:"post",hidden:"hidden"}),e.append(b("<input>",{type:"hidden",name:"_method",value:"GET"})),_.each(g.query,function(a,c){e.append(b("<input>",{type:"hidden",name:c,value:a}))}),g.container.append(e),e.submit(),e.remove()),g.bind("iframe-loading-error",function(b){return g.iframe.remove(),0===b?void g.login(a):-1===b?void a.rejectWith(g,["cheatin"]):void a.rejectWith(g,["request failure"])}),g.iframe.one("load",function(){h=!0,i?a.resolveWith(g,[j]):setTimeout(function(){a.rejectWith(g,["ready timeout"])},g.sensitivity)})},login:function(a){var c,d=this;return c=function(){a.rejectWith(d,["logged out"])},this.triedLogin?c():void b.get(f.settings.url.ajax,{action:"logged-in"}).fail(c).done(function(e){var g;"1"!==e&&c(),g=b("<iframe />",{src:d.previewUrl(),title:f.l10n.previewIframeTitle}).hide(),g.appendTo(d.container),g.on("load",function(){d.triedLogin=!0,g.remove(),d.run(a)})})},destroy:function(){f.Messenger.prototype.destroy.call(this),this.iframe&&this.iframe.remove(),delete this.iframe,delete this.targetWindow}}),function(){var a=0;f.PreviewFrame.uuid=function(){return"preview-"+String(a++)}}(),f.setDocumentTitle=function(a){var b,c;b=f.settings.documentTitleTmpl,c=b.replace("%s",a),document.title=c,f.trigger("title",c)},f.Previewer=f.Messenger.extend({refreshBuffer:null,initialize:function(a,c){var d=this,e=document.createElement("a");b.extend(d,c||{}),d.deferred={active:b.Deferred()},d.refresh=_.debounce(function(a){return function(){var b,c;b=function(){return 0===f.state("processing").get()},b()?a.call(d):(c=function(){b()&&(a.call(d),f.state("processing").unbind(c))},f.state("processing").bind(c))}}(d.refresh),d.refreshBuffer),d.container=f.ensure(a.container),d.allowedUrls=a.allowedUrls,a.url=window.location.href,f.Messenger.prototype.initialize.call(d,a),e.href=d.origin(),d.add("scheme",e.protocol.replace(/:$/,"")),d.add("previewUrl",a.previewUrl).setter(function(a){var c,e,g,h=null,i=[];return c=document.createElement("a"),c.href=a,/\/wp-(admin|includes|content)(\/|$)/.test(c.pathname)?null:(c.search.length>1&&(e=f.utils.parseQueryString(c.search.substr(1)),delete e.customize_changeset_uuid,delete e.customize_theme,delete e.customize_messenger_channel,_.isEmpty(e)?c.search="":c.search=b.param(e)),i.push(c),d.scheme.get()+":"!==c.protocol&&(c=document.createElement("a"),c.href=i[0].href,c.protocol=d.scheme.get()+":",i.unshift(c)),g=document.createElement("a"),_.find(i,function(a){return!_.isUndefined(_.find(d.allowedUrls,function(b){if(g.href=b,c.protocol===g.protocol&&c.host===g.host&&0===c.pathname.indexOf(g.pathname.replace(/\/$/,"")))return h=a.href,!0}))}),h)}),d.bind("ready",d.ready),d.deferred.active.done(_.bind(d.keepPreviewAlive,d)),d.bind("synced",function(){d.send("active")}),d.previewUrl.bind(d.refresh),d.scroll=0,d.bind("scroll",function(a){d.scroll=a}),d.bind("url",function(a){var b,c=!1;d.scroll=0,b=function(){c=!0},d.previewUrl.bind(b),d.previewUrl.set(a),d.previewUrl.unbind(b),c||d.refresh()}),d.bind("documentTitle",function(a){f.setDocumentTitle(a)})},ready:function(a){var b,c=this,d={};d.settings=f.get(),d["settings-modified-while-loading"]=c.settingsModifiedWhileLoading,("resolved"!==c.deferred.active.state()||c.loading)&&(d.scroll=c.scroll),d["edit-shortcut-visibility"]=f.state("editShortcutVisibility").get(),c.send("sync",d),a.currentUrl&&(c.previewUrl.unbind(c.refresh),c.previewUrl.set(a.currentUrl),c.previewUrl.bind(c.refresh)),b={panel:a.activePanels,section:a.activeSections,control:a.activeControls},_(b).each(function(a,b){f[b].each(function(c,d){var e=_.isUndefined(f.settings[b+"s"][d]);e&&_.isUndefined(a[d])||(a[d]?c.activate():c.deactivate())})}),a.settingValidities&&f._handleSettingValidities({settingValidities:a.settingValidities,focusInvalidControl:!1})},keepPreviewAlive:function(){var a,b,c,d,e=this;d=function(){b=setTimeout(c,f.settings.timeouts.keepAliveCheck)},a=function(){f.state("previewerAlive").set(!0),clearTimeout(b),d()},c=function(){f.state("previewerAlive").set(!1)},d(),e.bind("ready",a),e.bind("keep-alive",a)},query:function(){},abort:function(){this.loading&&(this.loading.destroy(),delete this.loading)},refresh:function(){var a,b=this;b.send("loading-initiated"),b.abort(),b.loading=new f.PreviewFrame({url:b.url(),previewUrl:b.previewUrl(),query:b.query({excludeCustomizedSaved:!0})||{},container:b.container}),b.settingsModifiedWhileLoading={},a=function(a){b.settingsModifiedWhileLoading[a.id]=!0},f.bind("change",a),b.loading.always(function(){f.unbind("change",a)}),b.loading.done(function(a){var c,d=this;b.preview=d,b.targetWindow(d.targetWindow()),b.channel(d.channel()),c=function(){d.unbind("synced",c),b._previousPreview&&b._previousPreview.destroy(),b._previousPreview=b.preview,b.deferred.active.resolve(),delete b.loading},d.bind("synced",c),b.trigger("ready",a)}),b.loading.fail(function(a){b.send("loading-failed"),"logged out"===a&&(b.preview&&(b.preview.destroy(),delete b.preview),b.login().done(b.refresh)),"cheatin"===a&&b.cheatin()})},login:function(){var a,c,d,e=this;return this._login?this._login:(a=b.Deferred(),this._login=a.promise(),c=new f.Messenger({channel:"login",url:f.settings.url.login}),d=b("<iframe />",{src:f.settings.url.login,title:f.l10n.loginIframeTitle}).appendTo(this.container),c.targetWindow(d[0].contentWindow),c.bind("login",function(){var b=e.refreshNonces();b.always(function(){d.remove(),c.destroy(),delete e._login}),b.done(function(){a.resolve()}),b.fail(function(){e.cheatin(),a.reject()})}),this._login)},cheatin:function(){b(document.body).empty().addClass("cheatin").append("<h1>"+f.l10n.cheatin+"</h1><p>"+f.l10n.notAllowed+"</p>")},refreshNonces:function(){var a,c=b.Deferred();return c.promise(),a=wp.ajax.post("customize_refresh_nonces",{wp_customize:"on",customize_theme:f.settings.theme.stylesheet}),a.done(function(a){f.trigger("nonce-refresh",a),c.resolve()}),a.fail(function(){c.reject()}),c}}),f.settingConstructor={},f.controlConstructor={color:f.ColorControl,media:f.MediaControl,upload:f.UploadControl,image:f.ImageControl,cropped_image:f.CroppedImageControl,site_icon:f.SiteIconControl,header:f.HeaderControl,background:f.BackgroundControl,background_position:f.BackgroundPositionControl,theme:f.ThemeControl},f.panelConstructor={},f.sectionConstructor={themes:f.ThemesSection},f._handleSettingValidities=function(a){var b,c=[],d=!1;_.each(a.settingValidities,function(a,b){var d=f(b);d&&(_.isObject(a)&&_.each(a,function(a,b){var e,g,h=!1;e=new f.Notification(b,_.extend({fromServer:!0},a)),g=d.notifications(e.code),g&&(h=e.type!==g.type||e.message!==g.message||!_.isEqual(e.data,g.data)),h&&d.notifications.remove(b),d.notifications.has(e.code)||d.notifications.add(b,e),c.push(d.id)}),d.notifications.each(function(b){"error"!==b.type||!0!==a&&a[b.code]||d.notifications.remove(b.code)}))}),a.focusInvalidControl&&(b=f.findControlsForSettings(c),_(_.values(b)).find(function(a){return _(a).find(function(a){var b=a.section()&&f.section.has(a.section())&&f.section(a.section()).expanded();return b&&a.expanded&&(b=a.expanded()),b&&(a.focus(),d=!0),d})}),d||_.isEmpty(b)||_.values(b)[0][0].focus())},f.findControlsForSettings=function(a){var b,c={};return _.each(_.unique(a),function(a){var d=f(a);d&&(b=d.findControls(),b&&b.length>0&&(c[a]=b))}),c},f.reflowPaneContents=_.bind(function(){var a,c,d,e=[],g=!1;document.activeElement&&(c=b(document.activeElement)),f.panel.each(function(b){var c=b.sections(),d=_.pluck(c,"headContainer");e.push(b),a=b.contentContainer.is("ul")?b.contentContainer:b.contentContainer.find("ul:first"),f.utils.areElementListsEqual(d,a.children("[id]"))||(_(c).each(function(b){a.append(b.headContainer)}),g=!0)}),f.section.each(function(b){var c=b.controls(),d=_.pluck(c,"container");b.panel()||e.push(b),a=b.contentContainer.is("ul")?b.contentContainer:b.contentContainer.find("ul:first"),f.utils.areElementListsEqual(d,a.children("[id]"))||(_(c).each(function(b){a.append(b.container)}),g=!0)}),e.sort(f.utils.prioritySort),d=_.pluck(e,"headContainer"),a=b("#customize-theme-controls .customize-pane-parent"),f.utils.areElementListsEqual(d,a.children())||(_(e).each(function(b){a.append(b.headContainer)}),g=!0),f.panel.each(function(a){var b=a.active();a.active.callbacks.fireWith(a.active,[b,b])}),f.section.each(function(a){var b=a.active();a.active.callbacks.fireWith(a.active,[b,b])}),g&&c&&c.focus(),f.trigger("pane-contents-reflowed")},f),b(function(){if(f.settings=window._wpCustomizeSettings,f.l10n=window._wpCustomizeControlsL10n,f.settings&&b.support.postMessage&&(b.support.cors||!f.settings.isCrossDomain)){null===f.PreviewFrame.prototype.sensitivity&&(f.PreviewFrame.prototype.sensitivity=f.settings.timeouts.previewFrameSensitivity),null===f.Previewer.prototype.refreshBuffer&&(f.Previewer.prototype.refreshBuffer=f.settings.timeouts.windowRefresh);var a,c=b(document.body),d=c.children(".wp-full-overlay"),e=b("#customize-info .panel-title.site-title"),g=b(".customize-controls-close"),h=b("#save"),i=b("#customize-footer-actions");b("#customize-controls").on("keydown",function(a){var c=13===a.which,d=b(a.target);c&&(d.is("input:not([type=button])")||d.is("select"))&&a.preventDefault()}),b(".customize-info").find("> .accordion-section-title .customize-help-toggle").on("click",function(){var a=b(this).closest(".accordion-section"),c=a.find(".customize-panel-description:first");a.hasClass("cannot-expand")||(a.hasClass("open")?(a.toggleClass("open"),c.slideUp(f.Panel.prototype.defaultExpandedArguments.duration),b(this).attr("aria-expanded",!1)):(c.slideDown(f.Panel.prototype.defaultExpandedArguments.duration),a.toggleClass("open"),b(this).attr("aria-expanded",!0)))}),f.previewer=new f.Previewer({container:"#customize-preview",form:"#customize-controls",previewUrl:f.settings.url.preview,allowedUrls:f.settings.url.allowed},{nonce:f.settings.nonce,query:function(a){var b={wp_customize:"on",customize_theme:f.settings.theme.stylesheet,nonce:this.nonce.preview,customize_changeset_uuid:f.settings.changeset.uuid};return b.customized=JSON.stringify(f.dirtyValues({unsaved:a&&a.excludeCustomizedSaved})),b},save:function(c){function d(a){n[a.id]=!0}var e,g,i,j=this,k=b.Deferred(),l="publish",m=f.state("processing"),n={},o=[];return c&&c.status&&(l=c.status),f.state("saving").get()&&(k.reject("already_saving"),k.promise()),f.state("saving").set(!0),f.bind("change",d),g=function(){var e,g,m={},p=f._latestRevision;return f.each(function(a){a.notifications.each(function(b){"error"!==b.type||b.fromServer||(o.push(a.id),m[a.id]||(m[a.id]={}),m[a.id][b.code]=b)})}),i=f.findControlsForSettings(o),_.isEmpty(i)?(g=b.extend(j.query({excludeCustomizedSaved:!1}),{nonce:j.nonce.save,customize_changeset_status:l}),c&&c.date&&(g.customize_changeset_date=c.date),c&&c.title&&(g.customize_changeset_title=c.title),e=wp.ajax.post("customize_save",g),h.prop("disabled",!0),f.trigger("save",e),e.always(function(){f.state("saving").set(!1),h.prop("disabled",!1),f.unbind("change",d)}),e.fail(function(a){"0"===a?a="not_logged_in":"-1"===a&&(a="invalid_nonce"),"invalid_nonce"===a?j.cheatin():"not_logged_in"===a&&(j.preview.iframe.hide(),j.login().done(function(){j.save(),j.preview.iframe.show()})),a.setting_validities&&f._handleSettingValidities({settingValidities:a.setting_validities,focusInvalidControl:!0}),k.rejectWith(j,[a]),f.trigger("error",a)}),void e.done(function(b){j.send("saved",b),f.state("changesetStatus").set(b.changeset_status),"publish"===b.changeset_status&&(f.each(function(a){a._dirty&&(_.isUndefined(f._latestSettingRevisions[a.id])||f._latestSettingRevisions[a.id]<=p)&&(a._dirty=!1)}),f.state("changesetStatus").set(""),f.settings.changeset.uuid=b.next_changeset_uuid,a.send("changeset-uuid",f.settings.changeset.uuid)),b.setting_validities&&f._handleSettingValidities({settingValidities:b.setting_validities,focusInvalidControl:!0}),k.resolveWith(j,[b]),f.trigger("saved",b),_.isEmpty(n)||f.state("saved").set(!1)})):(_.values(i)[0][0].focus(),f.unbind("change",d),k.rejectWith(j,[{setting_invalidities:m}]),f.state("saving").set(!1),k.promise())},0===m()?g():(e=function(){0===m()&&(f.state.unbind("change",e),g())},f.state.bind("change",e)),k.promise()}}),f.previewer.bind("nonce",function(a){b.extend(this.nonce,a)}),f.bind("nonce-refresh",function(a){b.extend(f.settings.nonce,a),b.extend(f.previewer.nonce,a),f.previewer.send("nonce-refresh",a)}),b.each(f.settings.settings,function(a,b){var c,d=f.settingConstructor[b.type]||f.Setting;c=new d(a,b.value,{transport:b.transport,previewer:f.previewer,dirty:!!b.dirty}),f.add(a,c)}),b.each(f.settings.panels,function(a,b){var c,d=f.panelConstructor[b.type]||f.Panel;c=new d(a,{params:b}),f.panel.add(a,c)}),b.each(f.settings.sections,function(a,b){var c,d=f.sectionConstructor[b.type]||f.Section;c=new d(a,{params:b}),f.section.add(a,c)}),b.each(f.settings.controls,function(a,b){var c,d=f.controlConstructor[b.type]||f.Control;c=new d(a,{params:b,previewer:f.previewer}),f.control.add(a,c)}),_.each(["panel","section","control"],function(a){var b=f.settings.autofocus[a];b&&f[a](b,function(a){a.deferred.embedded.done(function(){f.previewer.deferred.active.done(function(){a.focus()})})})}),f.bind("ready",f.reflowPaneContents),b([f.panel,f.section,f.control]).each(function(a,b){var c=_.debounce(f.reflowPaneContents,f.settings.timeouts.reflowPaneContents);b.bind("add",c),b.bind("change",c),b.bind("remove",c)}),function(){var a,d=new f.Values,e=d.create("saved"),i=d.create("saving"),j=d.create("activated"),k=d.create("processing"),l=d.create("paneVisible"),m=d.create("expandedPanel"),n=d.create("expandedSection"),o=d.create("changesetStatus"),p=d.create("previewerAlive"),q=d.create("editShortcutVisibility");d.bind("change",function(){var a;j()?""===o.get()&&e()?(h.val(f.l10n.saved),g.find(".screen-reader-text").text(f.l10n.close)):(h.val(f.l10n.save),g.find(".screen-reader-text").text(f.l10n.cancel)):(h.val(f.l10n.activate),g.find(".screen-reader-text").text(f.l10n.cancel)),a=!i()&&(!j()||!e()||""!==o()&&"publish"!==o()),h.prop("disabled",!a)}),o(f.settings.changeset.status),e(!0),""===o()&&f.each(function(a){a._dirty&&e(!1)}),i(!1),j(f.settings.theme.active),k(0),l(!0),m(!1),n(!1),p(!0),q("visible"),f.bind("change",function(){d("saved").set(!1)}),i.bind(function(a){c.toggleClass("saving",a)}),f.bind("saved",function(a){d("saved").set(!0),"publish"===a.changeset_status&&d("activated").set(!0)}),j.bind(function(a){a&&f.trigger("activated")}),a=function(a){var c,d;if(c=document.createElement("a"),c.href=location.href,d=f.utils.parseQueryString(c.search.substr(1)),a){if(d.changeset_uuid===f.settings.changeset.uuid)return;d.changeset_uuid=f.settings.changeset.uuid}else{if(!d.changeset_uuid)return;delete d.changeset_uuid}c.search=b.param(d),history.replaceState({},document.title,c.href)},history.replaceState&&o.bind(function(b){a(""!==b&&"publish"!==b)}),f.state=d}(),f.previewer.previewUrl()?f.previewer.refresh():f.previewer.previewUrl(f.settings.url.home),h.click(function(a){f.previewer.save(),a.preventDefault()}).keydown(function(a){9!==a.which&&(13===a.which&&f.previewer.save(),a.preventDefault())}),g.keydown(function(a){9!==a.which&&(13===a.which&&this.click(),a.preventDefault())}),b(".collapse-sidebar").on("click",function(){f.state("paneVisible").set(!f.state("paneVisible").get())}),f.state("paneVisible").bind(function(a){d.toggleClass("preview-only",!a),d.toggleClass("expanded",a),d.toggleClass("collapsed",!a),a?b(".collapse-sidebar").attr({"aria-expanded":"true","aria-label":f.l10n.collapseSidebar}):b(".collapse-sidebar").attr({"aria-expanded":"false","aria-label":f.l10n.expandSidebar})}),b("body").on("keydown",function(a){var c,d=[],e=[],g=[];27===a.which&&(b(a.target).is("body")||b.contains(b("#customize-controls")[0],a.target))&&(f.control.each(function(a){a.expanded&&a.expanded()&&_.isFunction(a.collapse)&&d.push(a)}),f.section.each(function(a){a.expanded()&&e.push(a)}),f.panel.each(function(a){a.expanded()&&g.push(a)}),d.length>0&&0===e.length&&(d.length=0),c=d[0]||e[0]||g[0],c&&(c.collapse(),a.preventDefault()))}),b(".customize-controls-preview-toggle").on("click",function(){f.state("paneVisible").set(!f.state("paneVisible").get())}),function(){var a,c,d,e,g,h,i,j=b(".wp-full-overlay-sidebar-content");a=function(a){var b,g=a,i=f.state("expandedSection").get(),j=f.state("expandedPanel").get();if(h&&h.element&&d(h.element),!g)if(!i&&j&&j.contentContainer)g=j;else{if(j||!i||!i.contentContainer)return void(h=!1);g=i}b=g.contentContainer.find(".customize-section-title, .panel-meta").first(),b.length?(h={instance:g,element:b,parent:b.closest(".customize-pane-child"),height:c(b)},i&&e(h.element,h.parent)):h=!1},f.state("expandedSection").bind(a),f.state("expandedPanel").bind(a),j.on("scroll",_.throttle(function(){if(h){var a=j.scrollTop(),b=!i||a<=i;i=a,g(h,a,b)}},8)),d=function(a){a.hasClass("is-sticky")&&a.removeClass("is-sticky").addClass("maybe-sticky is-in-view").css("top",j.scrollTop()+"px")},e=function(a,b){a.removeClass("maybe-sticky is-in-view").css({width:"",top:""}),b.css("padding-top","")},c=function(a){var b=a.data("height");return b||(b=a.outerHeight(),a.data("height",b)),b},g=function(a,b,c){var d=a.element,e=a.parent,f=a.height,g=parseInt(d.css("top"),10),h=d.hasClass("maybe-sticky"),i=d.hasClass("is-sticky"),j=d.hasClass("is-in-view");if(!c)return i&&(g=b,d.removeClass("is-sticky").css({top:g+"px",width:""})),void(j&&b>g+f&&(d.removeClass("is-in-view"),e.css("padding-top","")));if(!h&&b>=f)h=!0,d.addClass("maybe-sticky");else if(0===b)return d.removeClass("maybe-sticky is-in-view is-sticky").css({top:"",width:""}),void e.css("padding-top","");j&&!i?g>=b&&d.addClass("is-sticky").css({top:"",width:e.outerWidth()+"px"}):h&&!j&&(d.addClass("is-in-view").css("top",b-f+"px"),e.css("padding-top",f+"px"))}}(),f.previewedDevice=new f.Value,f.bind("ready",function(){_.find(f.settings.previewableDevices,function(a,b){if(!0===a["default"])return f.previewedDevice.set(b),!0})}),i.find(".devices button").on("click",function(a){f.previewedDevice.set(b(a.currentTarget).data("device"))}),f.previewedDevice.bind(function(a){var c=b(".wp-full-overlay"),d="";i.find(".devices button").removeClass("active").attr("aria-pressed",!1),i.find(".devices .preview-"+a).addClass("active").attr("aria-pressed",!0),b.each(f.settings.previewableDevices,function(a){d+=" preview-"+a}),c.removeClass(d).addClass("preview-"+a)}),e.length&&f("blogname",function(a){var c=function(){e.text(b.trim(a())||f.l10n.untitledBlogName)};a.bind(c),c()}),a=new f.Messenger({url:f.settings.url.parent,channel:"loader"}),a.bind("back",function(){g.on("click.customize-controls-close",function(b){b.preventDefault(),a.send("close")})}),b(window).on("beforeunload.customize-confirm",function(){if(!f.state("saved")())return setTimeout(function(){d.removeClass("customize-loading")},1),f.l10n.saveAlert}),b.each(["saved","change"],function(b,c){f.bind(c,function(){a.send(c)})}),f.bind("title",function(b){a.send("title",b)}),a.send("changeset-uuid",f.settings.changeset.uuid),a.send("ready"),b.each({background_image:{controls:["background_preset","background_position","background_size","background_repeat","background_attachment"],callback:function(a){return!!a}},show_on_front:{controls:["page_on_front","page_for_posts"],callback:function(a){return"page"===a}},header_textcolor:{controls:["header_textcolor"],callback:function(a){return"blank"!==a}}},function(a,c){f(a,function(a){b.each(c.controls,function(b,d){f.control(d,function(b){var d=function(a){b.container.toggle(c.callback(a))};d(a.get()),a.bind(d)})})})}),f.control("background_preset",function(a){var b,c,d,e,g,h;b={"default":[!1,!1,!1,!1],fill:[!0,!1,!1,!1],fit:[!0,!1,!0,!1],repeat:[!0,!1,!1,!0],custom:[!0,!0,!0,!0]},c=[_wpCustomizeBackground.defaults["default-position-x"],_wpCustomizeBackground.defaults["default-position-y"],_wpCustomizeBackground.defaults["default-size"],_wpCustomizeBackground.defaults["default-repeat"],_wpCustomizeBackground.defaults["default-attachment"]],d={"default":c,fill:["left","top","cover","no-repeat","fixed"],fit:["left","top","contain","no-repeat","fixed"],repeat:["left","top","auto","repeat","scroll"]},e=function(a){_.each(["background_position","background_size","background_repeat","background_attachment"],function(c,d){var e=f.control(c);e&&e.container.toggle(b[a][d])})},g=function(a){_.each(["background_position_x","background_position_y","background_size","background_repeat","background_attachment"],function(b,c){var e=f(b);e&&e.set(d[a][c])})},h=a.setting.get(),e(h),a.setting.bind("change",function(a){e(a),"custom"!==a&&g(a)})}),f.control("background_repeat",function(a){a.elements[0].unsync(f("background_repeat")),a.element=new f.Element(a.container.find("input")),a.element.set("no-repeat"!==a.setting()),a.element.bind(function(b){a.setting.set(b?"repeat":"no-repeat")}),a.setting.bind(function(b){a.element.set("no-repeat"!==b)})}),f.control("background_attachment",function(a){a.elements[0].unsync(f("background_attachment")),a.element=new f.Element(a.container.find("input")),a.element.set("fixed"!==a.setting()),a.element.bind(function(b){a.setting.set(b?"scroll":"fixed")}),a.setting.bind(function(b){a.element.set("fixed"!==b)})}),f.control("display_header_text",function(a){var b="";a.elements[0].unsync(f("header_textcolor")),a.element=new f.Element(a.container.find("input")),a.element.set("blank"!==a.setting()),a.element.bind(function(c){c||(b=f("header_textcolor").get()),a.setting.set(c?b:"blank")}),a.setting.bind(function(b){a.element.set("blank"!==b)})}),f("show_on_front","page_on_front",function(a,b){var c=function(){"page"===a()&&parseInt(b(),10)>0&&f.previewer.previewUrl.set(f.settings.url.home)};a.bind(c),b.bind(c)}),f("page_for_posts",function(a){a.bind(function(a){a=parseInt(a,10),a>0&&f.previewer.previewUrl.set(f.settings.url.home+"?page_id="+a)})}),f.control("custom_css",function(a){a.deferred.embedded.done(function(){var b=a.container.find("textarea"),c=b[0];b.on("blur",function(){b.data("next-tab-blurs",!1)}),b.on("keydown",function(a){var d,e,f,g,h=9,i=27;return i===a.keyCode?void(b.data("next-tab-blurs")||(b.data("next-tab-blurs",!0),a.stopPropagation())):void(h!==a.keyCode||a.ctrlKey||a.altKey||a.shiftKey||b.data("next-tab-blurs")||(d=c.selectionStart,e=c.selectionEnd,f=c.value,d>=0&&(g=b.scrollTop,c.value=f.substring(0,d).concat("\t",f.substring(e)),b.selectionStart=c.selectionEnd=d+1,c.scrollTop=g),a.stopPropagation(),a.preventDefault()))})})}),f.control("header_video",function(a){a.deferred.embedded.done(function(){var b=function(){var b,c=f.section(a.section());c&&(b=c.container.find(".header-video-not-currently-previewable:first"),a.active.get()?b.stop().slideUp("fast"):b.stop().slideDown("fast"))};b(),a.active.bind(b)})}),f.previewer.bind("selective-refresh-setting-validities",function(a){f._handleSettingValidities({settingValidities:a,focusInvalidControl:!1})}),f.previewer.bind("focus-control-for-setting",function(a){var b;f.control.each(function(c){var d=_.pluck(c.settings,"id");-1!==_.indexOf(d,a)&&(b=c)}),b&&b.focus()}),f.previewer.bind("refresh",function(){f.previewer.refresh()}),f.state("paneVisible").bind(function(a){var c;c=window.matchMedia?window.matchMedia("screen and ( max-width: 640px )").matches:b(window).width()<=640,f.state("editShortcutVisibility").set(a||c?"visible":"hidden")}),window.matchMedia&&window.matchMedia("screen and ( max-width: 640px )").addListener(function(){var a=f.state("paneVisible");a.callbacks.fireWith(a,[a.get(),a.get()])}),f.previewer.bind("edit-shortcut-visibility",function(a){f.state("editShortcutVisibility").set(a)}),f.state("editShortcutVisibility").bind(function(a){f.previewer.send("edit-shortcut-visibility",a)}),function(){var a,c,d,e=!1;c=function(){e||(e=!0,f.requestChangesetUpdate().always(function(){e=!1})),d()},d=function(){clearTimeout(a),a=setTimeout(function(){c()},f.settings.timeouts.changesetAutoSave)},d(),b(window).on("blur.wp-customize-changeset-update",function(){c()}),b(window).on("beforeunload.wp-customize-changeset-update",function(){c()})}(),f.trigger("ready")}})}(wp,jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/customize-nav-menus.js b/wp-admin/js/customize-nav-menus.js
index 250903595..b7556f670 100644
--- a/wp-admin/js/customize-nav-menus.js
+++ b/wp-admin/js/customize-nav-menus.js
@@ -80,6 +80,66 @@
 	});
 	api.Menus.availableMenuItems = new api.Menus.AvailableItemCollection( api.Menus.data.availableMenuItems );
 
+	/**
+	 * Insert a new `auto-draft` post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param {object} params - Parameters for the draft post to create.
+	 * @param {string} params.post_type - Post type to add.
+	 * @param {string} params.post_title - Post title to use.
+	 * @return {jQuery.promise} Promise resolved with the added post.
+	 */
+	api.Menus.insertAutoDraftPost = function insertAutoDraftPost( params ) {
+		var request, deferred = $.Deferred();
+
+		request = wp.ajax.post( 'customize-nav-menus-insert-auto-draft', {
+			'customize-menus-nonce': api.settings.nonce['customize-menus'],
+			'wp_customize': 'on',
+			'params': params
+		} );
+
+		request.done( function( response ) {
+			if ( response.post_id ) {
+				api( 'nav_menus_created_posts' ).set(
+					api( 'nav_menus_created_posts' ).get().concat( [ response.post_id ] )
+				);
+
+				if ( 'page' === params.post_type ) {
+
+					// Activate static front page controls as this could be the first page created.
+					if ( api.section.has( 'static_front_page' ) ) {
+						api.section( 'static_front_page' ).activate();
+					}
+
+					// Add new page to dropdown-pages controls.
+					api.control.each( function( control ) {
+						var select;
+						if ( 'dropdown-pages' === control.params.type ) {
+							select = control.container.find( 'select[name^="_customize-dropdown-pages-"]' );
+							select.append( new Option( params.post_title, response.post_id ) );
+						}
+					} );
+				}
+				deferred.resolve( response );
+			}
+		} );
+
+		request.fail( function( response ) {
+			var error = response || '';
+
+			if ( 'undefined' !== typeof response.message ) {
+				error = response.message;
+			}
+
+			console.error( error );
+			deferred.rejectWith( error );
+		} );
+
+		return deferred.promise();
+	};
+
 	/**
 	 * wp.customize.Menus.AvailableMenuItemsPanelView
 	 *
@@ -100,6 +160,8 @@
 			'click .menu-item-tpl': '_submit',
 			'click #custom-menu-item-submit': '_submitLink',
 			'keypress #custom-menu-item-name': '_submitLink',
+			'click .new-content-item .add-content': '_submitNew',
+			'keypress .create-item-input': '_submitNew',
 			'keydown': 'keyboardAccessible'
 		},
 
@@ -110,11 +172,13 @@
 		currentMenuControl: null,
 		debounceSearch: null,
 		$search: null,
+		$clearResults: null,
 		searchTerm: '',
 		rendered: false,
 		pages: {},
 		sectionContent: '',
 		loading: false,
+		addingNew: false,
 
 		initialize: function() {
 			var self = this;
@@ -124,7 +188,8 @@
 			}
 
 			this.$search = $( '#menu-items-search' );
-			this.sectionContent = this.$el.find( '.accordion-section-content' );
+			this.$clearResults = this.$el.find( '.clear-results' );
+			this.sectionContent = this.$el.find( '.available-menu-items-list' );
 
 			this.debounceSearch = _.debounce( self.search, 500 );
 
@@ -141,8 +206,8 @@
 				}
 			} );
 
-			// Clear the search results.
-			$( '.clear-results' ).on( 'click', function() {
+			// Clear the search results and trigger a `keyup` event to fire a new search.
+			this.$clearResults.on( 'click', function() {
 				self.$search.val( '' ).focus().trigger( 'keyup' );
 			} );
 
@@ -160,7 +225,7 @@
 
 			// Load more items.
 			this.sectionContent.scroll( function() {
-				var totalHeight = self.$el.find( '.accordion-section.open .accordion-section-content' ).prop( 'scrollHeight' ),
+				var totalHeight = self.$el.find( '.accordion-section.open .available-menu-items-list' ).prop( 'scrollHeight' ),
 					visibleHeight = self.$el.find( '.accordion-section.open' ).height();
 
 				if ( ! self.loading && $( this ).scrollTop() > 3 / 4 * totalHeight - visibleHeight ) {
@@ -172,7 +237,9 @@
 							self.doSearch( self.pages.search );
 						}
 					} else {
-						self.loadItems( type, object );
+						self.loadItems( [
+							{ type: type, object: object }
+						] );
 					}
 				}
 			});
@@ -200,11 +267,11 @@
 				$otherSections.fadeOut( 100 );
 				$searchSection.find( '.accordion-section-content' ).slideDown( 'fast' );
 				$searchSection.addClass( 'open' );
-				$searchSection.find( '.clear-results' ).addClass( 'is-visible' );
+				this.$clearResults.addClass( 'is-visible' );
 			} else if ( '' === event.target.value ) {
 				$searchSection.removeClass( 'open' );
 				$otherSections.show();
-				$searchSection.find( '.clear-results' ).removeClass( 'is-visible' );
+				this.$clearResults.removeClass( 'is-visible' );
 			}
 
 			this.searchTerm = event.target.value;
@@ -237,12 +304,14 @@
 
 			$section.addClass( 'loading' );
 			self.loading = true;
-			params = {
+
+			params = api.previewer.query( { excludeCustomizedSaved: true } );
+			_.extend( params, {
 				'customize-menus-nonce': api.settings.nonce['customize-menus'],
 				'wp_customize': 'on',
 				'search': self.searchTerm,
 				'page': page
-			};
+			} );
 
 			self.currentRequest = wp.ajax.post( 'search-available-menu-items-customizer', params );
 
@@ -276,7 +345,7 @@
 			self.currentRequest.fail(function( data ) {
 				// data.message may be undefined, for example when typing slow and the request is aborted.
 				if ( data.message ) {
-					$content.empty().append( $( '<p class="nothing-found"></p>' ).text( data.message ) );
+					$content.empty().append( $( '<li class="nothing-found"></li>' ).text( data.message ) );
 					wp.a11y.speak( data.message );
 				}
 				self.pages.search = -1;
@@ -297,51 +366,86 @@
 			// Render the template for each item by type.
 			_.each( api.Menus.data.itemTypes, function( itemType ) {
 				self.pages[ itemType.type + ':' + itemType.object ] = 0;
-				self.loadItems( itemType.type, itemType.object ); // @todo we need to combine these Ajax requests.
 			} );
+			self.loadItems( api.Menus.data.itemTypes );
 		},
 
-		// Load available menu items.
-		loadItems: function( type, object ) {
-			var self = this, params, request, itemTemplate, availableMenuItemContainer;
+		/**
+		 * Load available nav menu items.
+		 *
+		 * @since 4.3.0
+		 * @since 4.7.0 Changed function signature to take list of item types instead of single type/object.
+		 * @access private
+		 *
+		 * @param {Array.<object>} itemTypes List of objects containing type and key.
+		 * @param {string} deprecated Formerly the object parameter.
+		 * @returns {void}
+		 */
+		loadItems: function( itemTypes, deprecated ) {
+			var self = this, _itemTypes, requestItemTypes = [], params, request, itemTemplate, availableMenuItemContainers = {};
 			itemTemplate = wp.template( 'available-menu-item' );
 
-			if ( -1 === self.pages[ type + ':' + object ] ) {
+			if ( _.isString( itemTypes ) && _.isString( deprecated ) ) {
+				_itemTypes = [ { type: itemTypes, object: deprecated } ];
+			} else {
+				_itemTypes = itemTypes;
+			}
+
+			_.each( _itemTypes, function( itemType ) {
+				var container, name = itemType.type + ':' + itemType.object;
+				if ( -1 === self.pages[ name ] ) {
+					return; // Skip types for which there are no more results.
+				}
+				container = $( '#available-menu-items-' + itemType.type + '-' + itemType.object );
+				container.find( '.accordion-section-title' ).addClass( 'loading' );
+				availableMenuItemContainers[ name ] = container;
+
+				requestItemTypes.push( {
+					object: itemType.object,
+					type: itemType.type,
+					page: self.pages[ name ]
+				} );
+			} );
+
+			if ( 0 === requestItemTypes.length ) {
 				return;
 			}
-			availableMenuItemContainer = $( '#available-menu-items-' + type + '-' + object );
-			availableMenuItemContainer.find( '.accordion-section-title' ).addClass( 'loading' );
+
 			self.loading = true;
-			params = {
+
+			params = api.previewer.query( { excludeCustomizedSaved: true } );
+			_.extend( params, {
 				'customize-menus-nonce': api.settings.nonce['customize-menus'],
 				'wp_customize': 'on',
-				'type': type,
-				'object': object,
-				'page': self.pages[ type + ':' + object ]
-			};
+				'item_types': requestItemTypes
+			} );
+
 			request = wp.ajax.post( 'load-available-menu-items-customizer', params );
 
 			request.done(function( data ) {
-				var items, typeInner;
-				items = data.items;
-				if ( 0 === items.length ) {
-					if ( 0 === self.pages[ type + ':' + object ] ) {
-						availableMenuItemContainer
-							.addClass( 'cannot-expand' )
-							.removeClass( 'loading' )
-							.find( '.accordion-section-title > button' )
-							.prop( 'tabIndex', -1 );
+				var typeInner;
+				_.each( data.items, function( typeItems, name ) {
+					if ( 0 === typeItems.length ) {
+						if ( 0 === self.pages[ name ] ) {
+							availableMenuItemContainers[ name ].find( '.accordion-section-title' )
+								.addClass( 'cannot-expand' )
+								.removeClass( 'loading' )
+								.find( '.accordion-section-title > button' )
+								.prop( 'tabIndex', -1 );
+						}
+						self.pages[ name ] = -1;
+						return;
+					} else if ( ( 'post_type:page' === name ) && ( ! availableMenuItemContainers[ name ].hasClass( 'open' ) ) ) {
+						availableMenuItemContainers[ name ].find( '.accordion-section-title > button' ).click();
 					}
-					self.pages[ type + ':' + object ] = -1;
-					return;
-				}
-				items = new api.Menus.AvailableItemCollection( items ); // @todo Why is this collection created and then thrown away?
-				self.collection.add( items.models );
-				typeInner = availableMenuItemContainer.find( '.accordion-section-content' );
-				items.each(function( menuItem ) {
-					typeInner.append( itemTemplate( menuItem.attributes ) );
+					typeItems = new api.Menus.AvailableItemCollection( typeItems ); // @todo Why is this collection created and then thrown away?
+					self.collection.add( typeItems.models );
+					typeInner = availableMenuItemContainers[ name ].find( '.available-menu-items-list' );
+					typeItems.each( function( menuItem ) {
+						typeInner.append( itemTemplate( menuItem.attributes ) );
+					} );
+					self.pages[ name ] += 1;
 				});
-				self.pages[ type + ':' + object ] += 1;
 			});
 			request.fail(function( data ) {
 				if ( typeof console !== 'undefined' && console.error ) {
@@ -349,20 +453,24 @@
 				}
 			});
 			request.always(function() {
-				availableMenuItemContainer.find( '.accordion-section-title' ).removeClass( 'loading' );
+				_.each( availableMenuItemContainers, function( container ) {
+					container.find( '.accordion-section-title' ).removeClass( 'loading' );
+				} );
 				self.loading = false;
 			});
 		},
 
 		// Adjust the height of each section of items to fit the screen.
 		itemSectionHeight: function() {
-			var sections, totalHeight, accordionHeight, diff;
+			var sections, lists, totalHeight, accordionHeight, diff;
 			totalHeight = window.innerHeight;
 			sections = this.$el.find( '.accordion-section:not( #available-menu-items-search ) .accordion-section-content' );
-			accordionHeight =  46 * ( 2 + sections.length ) - 13; // Magic numbers.
+			lists = this.$el.find( '.accordion-section:not( #available-menu-items-search ) .available-menu-items-list:not(":only-child")' );
+			accordionHeight =  46 * ( 1 + sections.length ) + 14; // Magic numbers.
 			diff = totalHeight - accordionHeight;
 			if ( 120 < diff && 290 > diff ) {
 				sections.css( 'max-height', diff );
+				lists.css( 'max-height', ( diff - 60 ) );
 			}
 		},
 
@@ -446,7 +554,7 @@
 				'url': itemUrl.val(),
 				'type': 'custom',
 				'type_label': api.Menus.data.l10n.custom_label,
-				'object': ''
+				'object': 'custom'
 			};
 
 			this.currentMenuControl.addItemToMenu( menuItem );
@@ -456,6 +564,105 @@
 			itemName.val( '' );
 		},
 
+		/**
+		 * Submit handler for keypress (enter) on field and click on button.
+		 *
+		 * @since 4.7.0
+		 * @private
+		 *
+		 * @param {jQuery.Event} event Event.
+		 * @returns {void}
+		 */
+		_submitNew: function( event ) {
+			var container;
+
+			// Only proceed with keypress if it is Enter.
+			if ( 'keypress' === event.type && 13 !== event.which ) {
+				return;
+			}
+
+			if ( this.addingNew ) {
+				return;
+			}
+
+			container = $( event.target ).closest( '.accordion-section' );
+
+			this.submitNew( container );
+		},
+
+		/**
+		 * Creates a new object and adds an associated menu item to the menu.
+		 *
+		 * @since 4.7.0
+		 * @private
+		 *
+		 * @param {jQuery} container
+		 * @returns {void}
+		 */
+		submitNew: function( container ) {
+			var panel = this,
+				itemName = container.find( '.create-item-input' ),
+				title = itemName.val(),
+				dataContainer = container.find( '.available-menu-items-list' ),
+				itemType = dataContainer.data( 'type' ),
+				itemObject = dataContainer.data( 'object' ),
+				itemTypeLabel = dataContainer.data( 'type_label' ),
+				promise;
+
+			if ( ! this.currentMenuControl ) {
+				return;
+			}
+
+			// Only posts are supported currently.
+			if ( 'post_type' !== itemType ) {
+				return;
+			}
+
+			if ( '' === $.trim( itemName.val() ) ) {
+				itemName.addClass( 'invalid' );
+				itemName.focus();
+				return;
+			} else {
+				itemName.removeClass( 'invalid' );
+				container.find( '.accordion-section-title' ).addClass( 'loading' );
+			}
+
+			panel.addingNew = true;
+			itemName.attr( 'disabled', 'disabled' );
+			promise = api.Menus.insertAutoDraftPost( {
+				post_title: title,
+				post_type: itemObject
+			} );
+			promise.done( function( data ) {
+				var availableItem, $content, itemElement;
+				availableItem = new api.Menus.AvailableItemModel( {
+					'id': 'post-' + data.post_id, // Used for available menu item Backbone models.
+					'title': itemName.val(),
+					'type': itemType,
+					'type_label': itemTypeLabel,
+					'object': itemObject,
+					'object_id': data.post_id,
+					'url': data.url
+				} );
+
+				// Add new item to menu.
+				panel.currentMenuControl.addItemToMenu( availableItem.attributes );
+
+				// Add the new item to the list of available items.
+				api.Menus.availableMenuItemsPanel.collection.add( availableItem );
+				$content = container.find( '.available-menu-items-list' );
+				itemElement = $( wp.template( 'available-menu-item' )( availableItem.attributes ) );
+				itemElement.find( '.menu-item-handle:first' ).addClass( 'item-added' );
+				$content.prepend( itemElement );
+				$content.scrollTop();
+
+				// Reset the create content form.
+				itemName.val( '' ).removeAttr( 'disabled' );
+				panel.addingNew = false;
+				container.find( '.accordion-section-title' ).removeClass( 'loading' );
+			} );
+		},
+
 		// Opens the panel.
 		open: function( menuControl ) {
 			this.currentMenuControl = menuControl;
@@ -578,30 +785,23 @@
 		},
 
 		/**
-		 * Show/hide/save screen options (columns). From common.js.
+		 * Update field visibility when clicking on the field toggles.
 		 */
 		ready: function() {
 			var panel = this;
-			this.container.find( '.hide-column-tog' ).click( function() {
-				var $t = $( this ), column = $t.val();
-				if ( $t.prop( 'checked' ) ) {
-					panel.checked( column );
-				} else {
-					panel.unchecked( column );
-				}
-
+			panel.container.find( '.hide-column-tog' ).click( function() {
 				panel.saveManageColumnsState();
 			});
-			this.container.find( '.hide-column-tog' ).each( function() {
-			var $t = $( this ), column = $t.val();
-				if ( $t.prop( 'checked' ) ) {
-					panel.checked( column );
-				} else {
-					panel.unchecked( column );
-				}
-			});
 		},
 
+		/**
+		 * Save hidden column states.
+		 *
+		 * @since 4.3.0
+		 * @private
+		 *
+		 * @returns {void}
+		 */
 		saveManageColumnsState: _.debounce( function() {
 			var panel = this;
 			if ( panel._updateHiddenColumnsRequest ) {
@@ -618,14 +818,24 @@
 			} );
 		}, 2000 ),
 
-		checked: function( column ) {
-			this.container.addClass( 'field-' + column + '-active' );
-		},
+		/**
+		 * @deprecated Since 4.7.0 now that the nav_menu sections are responsible for toggling the classes on their own containers.
+		 */
+		checked: function() {},
 
-		unchecked: function( column ) {
-			this.container.removeClass( 'field-' + column + '-active' );
-		},
+		/**
+		 * @deprecated Since 4.7.0 now that the nav_menu sections are responsible for toggling the classes on their own containers.
+		 */
+		unchecked: function() {},
 
+		/**
+		 * Get hidden fields.
+		 *
+		 * @since 4.3.0
+		 * @private
+		 *
+		 * @returns {Array} Fields (columns) that are hidden.
+		 */
 		hidden: function() {
 			return $( '.hide-column-tog' ).not( ':checked' ).map( function() {
 				var id = this.id;
@@ -646,7 +856,9 @@
 	api.Menus.MenuSection = api.Section.extend({
 
 		/**
-		 * @since Menu Customizer 0.3
+		 * Initialize.
+		 *
+		 * @since 4.3.0
 		 *
 		 * @param {String} id
 		 * @param {Object} options
@@ -658,10 +870,10 @@
 		},
 
 		/**
-		 *
+		 * Ready.
 		 */
 		ready: function() {
-			var section = this;
+			var section = this, fieldActiveToggles, handleFieldActiveToggle;
 
 			if ( 'undefined' === typeof section.params.menu_id ) {
 				throw new Error( 'params.menu_id was not defined' );
@@ -704,7 +916,7 @@
 
 			api.bind( 'pane-contents-reflowed', function() {
 				// Skip menus that have been removed.
-				if ( ! section.container.parent().length ) {
+				if ( ! section.contentContainer.parent().length ) {
 					return;
 				}
 				section.container.find( '.menu-item .menu-item-reorder-nav button' ).attr({ 'tabindex': '0', 'aria-hidden': 'false' });
@@ -713,6 +925,20 @@
 				section.container.find( '.menu-item.move-left-disabled .menus-move-left' ).attr({ 'tabindex': '-1', 'aria-hidden': 'true' });
 				section.container.find( '.menu-item.move-right-disabled .menus-move-right' ).attr({ 'tabindex': '-1', 'aria-hidden': 'true' });
 			} );
+
+			/**
+			 * Update the active field class for the content container for a given checkbox toggle.
+			 *
+			 * @this {jQuery}
+			 * @returns {void}
+			 */
+			handleFieldActiveToggle = function() {
+				var className = 'field-' + $( this ).val() + '-active';
+				section.contentContainer.toggleClass( className, $( this ).prop( 'checked' ) );
+			};
+			fieldActiveToggles = api.panel( 'nav_menus' ).contentContainer.find( '.metabox-prefs:first' ).find( '.hide-column-tog' );
+			fieldActiveToggles.each( handleFieldActiveToggle );
+			fieldActiveToggles.on( 'click', handleFieldActiveToggle );
 		},
 
 		populateControls: function() {
@@ -798,7 +1024,7 @@
 		},
 
 		/**
-		 * @param {array} themeLocations
+		 * @param {Array} themeLocationSlugs Theme location slugs.
 		 */
 		updateAssignedLocationsInSectionTitle: function( themeLocationSlugs ) {
 			var section = this,
@@ -819,10 +1045,10 @@
 		},
 
 		onChangeExpanded: function( expanded, args ) {
-			var section = this;
+			var section = this, completeCallback;
 
 			if ( expanded ) {
-				wpNavMenu.menuList = section.container.find( '.accordion-section-content:first' );
+				wpNavMenu.menuList = section.contentContainer;
 				wpNavMenu.targetList = wpNavMenu.menuList;
 
 				// Add attributes needed by wpNavMenu
@@ -835,13 +1061,22 @@
 					}
 				} );
 
-				if ( 'resolved' !== section.deferred.initSortables.state() ) {
-					wpNavMenu.initSortables(); // Depends on menu-to-edit ID being set above.
-					section.deferred.initSortables.resolve( wpNavMenu.menuList ); // Now MenuControl can extend the sortable.
-
-					// @todo Note that wp.customize.reflowPaneContents() is debounced, so this immediate change will show a slight flicker while priorities get updated.
-					api.control( 'nav_menu[' + String( section.params.menu_id ) + ']' ).reflowMenuItems();
+				// Make sure Sortables is initialized after the section has been expanded to prevent `offset` issues.
+				if ( args.completeCallback ) {
+					completeCallback = args.completeCallback;
 				}
+				args.completeCallback = function() {
+					if ( 'resolved' !== section.deferred.initSortables.state() ) {
+						wpNavMenu.initSortables(); // Depends on menu-to-edit ID being set above.
+						section.deferred.initSortables.resolve( wpNavMenu.menuList ); // Now MenuControl can extend the sortable.
+
+						// @todo Note that wp.customize.reflowPaneContents() is debounced, so this immediate change will show a slight flicker while priorities get updated.
+						api.control( 'nav_menu[' + String( section.params.menu_id ) + ']' ).reflowMenuItems();
+					}
+					if ( _.isFunction( completeCallback ) ) {
+						completeCallback();
+					}
+				};
 			}
 			api.Section.prototype.onChangeExpanded.call( section, expanded, args );
 		}
@@ -861,7 +1096,7 @@
 		/**
 		 * Add behaviors for the accordion section.
 		 *
-		 * @since Menu Customizer 0.3
+		 * @since 4.3.0
 		 */
 		attachEvents: function() {
 			var section = this;
@@ -884,8 +1119,8 @@
 		onChangeExpanded: function( expanded ) {
 			var section = this,
 				button = section.container.find( '.add-menu-toggle' ),
-				content = section.container.find( '.new-menu-section-content' ),
-				customizer = section.container.closest( '.wp-full-overlay-sidebar-content' );
+				content = section.contentContainer,
+				customizer = section.headContainer.closest( '.wp-full-overlay-sidebar-content' );
 			if ( expanded ) {
 				button.addClass( 'open' );
 				button.attr( 'aria-expanded', 'true' );
@@ -898,6 +1133,17 @@
 				content.slideUp( 'fast' );
 				content.find( '.menu-name-field' ).removeClass( 'invalid' );
 			}
+		},
+
+		/**
+		 * Find the content element.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @returns {jQuery} Content UL element.
+		 */
+		getContent: function() {
+			return this.container.find( 'ul:first' );
 		}
 	});
 
@@ -1014,11 +1260,11 @@
 		},
 
 		/**
-		 * @since Menu Customizer 0.3
-		 *
 		 * Override the embed() method to do nothing,
 		 * so that the control isn't embedded on load,
 		 * unless the containing section is already expanded.
+		 *
+		 * @since 4.3.0
 		 */
 		embed: function() {
 			var control = this,
@@ -1037,7 +1283,7 @@
 		 * This function is called in Section.onChangeExpanded() so the control
 		 * will only get embedded when the Section is first expanded.
 		 *
-		 * @since Menu Customizer 0.3
+		 * @since 4.3.0
 		 */
 		actuallyEmbed: function() {
 			var control = this;
@@ -1267,14 +1513,14 @@
 				}
 
 				var titleEl = control.container.find( '.menu-item-title' ),
-				    titleText = item.title || api.Menus.data.l10n.untitled;
+				    titleText = item.title || item.original_title || api.Menus.data.l10n.untitled;
 
 				if ( item._invalid ) {
 					titleText = api.Menus.data.l10n.invalidTitleTpl.replace( '%s', titleText );
 				}
 
 				// Don't update to an empty title.
-				if ( item.title ) {
+				if ( item.title || item.original_title ) {
 					titleEl
 						.text( titleText )
 						.removeClass( 'no-title' );
@@ -1371,7 +1617,6 @@
 		 */
 		expandControlSection: function() {
 			var $section = this.container.closest( '.accordion-section' );
-
 			if ( ! $section.hasClass( 'open' ) ) {
 				$section.find( '.accordion-section-title:first' ).trigger( 'click' );
 			}
@@ -1525,23 +1770,33 @@
 		 */
 		focus: function( params ) {
 			params = params || {};
-			var control = this, originalCompleteCallback = params.completeCallback;
+			var control = this, originalCompleteCallback = params.completeCallback, focusControl;
 
-			control.expandControlSection();
+			focusControl = function() {
+				control.expandControlSection();
 
-			params.completeCallback = function() {
-				var focusable;
+				params.completeCallback = function() {
+					var focusable;
 
-				// Note that we can't use :focusable due to a jQuery UI issue. See: https://github.com/jquery/jquery-ui/pull/1583
-				focusable = control.container.find( '.menu-item-settings' ).find( 'input, select, textarea, button, object, a[href], [tabindex]' ).filter( ':visible' );
-				focusable.first().focus();
+					// Note that we can't use :focusable due to a jQuery UI issue. See: https://github.com/jquery/jquery-ui/pull/1583
+					focusable = control.container.find( '.menu-item-settings' ).find( 'input, select, textarea, button, object, a[href], [tabindex]' ).filter( ':visible' );
+					focusable.first().focus();
 
-				if ( originalCompleteCallback ) {
-					originalCompleteCallback();
-				}
+					if ( originalCompleteCallback ) {
+						originalCompleteCallback();
+					}
+				};
+
+				control.expandForm( params );
 			};
 
-			control.expandForm( params );
+			if ( api.section.has( control.section() ) ) {
+				api.section( control.section() ).expand( {
+					completeCallback: focusControl
+				} );
+			} else {
+				focusControl();
+			}
 		},
 
 		/**
@@ -1854,6 +2109,7 @@
 		 */
 		ready: function() {
 			var control = this,
+				section = api.section( control.section() ),
 				menuId = control.params.menu_id,
 				menu = control.setting(),
 				name,
@@ -1870,7 +2126,7 @@
 			 * being deactivated.
 			 */
 			control.active.validate = function() {
-				var value, section = api.section( control.section() );
+				var value;
 				if ( section ) {
 					value = section.active();
 				} else {
@@ -1879,7 +2135,7 @@
 				return value;
 			};
 
-			control.$controlSection = control.container.closest( '.control-section' );
+			control.$controlSection = section.headContainer;
 			control.$sectionContent = control.container.closest( '.accordion-section-content' );
 
 			this._setupModel();
@@ -2153,11 +2409,11 @@
 					return;
 				}
 
-				var section = control.container.closest( '.accordion-section' ),
+				var section = api.section( control.section() ),
 					menuId = control.params.menu_id,
-					controlTitle = section.find( '.accordion-section-title' ),
-					sectionTitle = section.find( '.customize-section-title h3' ),
-					location = section.find( '.menu-in-location' ),
+					controlTitle = section.headContainer.find( '.accordion-section-title' ),
+					sectionTitle = section.contentContainer.find( '.customize-section-title h3' ),
+					location = section.headContainer.find( '.menu-in-location' ),
 					action = sectionTitle.find( '.customize-action' ),
 					name = displayNavMenuName( menu.name );
 
@@ -2181,7 +2437,7 @@
 				} );
 
 				// Update the nav menu name in all location checkboxes.
-				section.find( '.customize-control-checkbox input' ).each( function() {
+				section.contentContainer.find( '.customize-control-checkbox input' ).each( function() {
 					if ( $( this ).prop( 'checked' ) ) {
 						$( '.current-menu-location-name-' + $( this ).data( 'location-id' ) ).text( name );
 					}
@@ -2495,9 +2751,6 @@
 
 			// Focus on the new menu section.
 			api.section( customizeId ).focus(); // @todo should we focus on the new menu's control and open the add-items panel? Thinking user flow...
-
-			// Fix an issue with extra space at top immediately after creating new menu.
-			$( '#menu-to-edit' ).css( 'margin-top', 0 );
 		}
 	});
 
@@ -2545,6 +2798,17 @@
 			}
 		} );
 
+		/*
+		 * Reset the list of posts created in the customizer once published.
+		 * The setting is updated quietly (bypassing events being triggered)
+		 * so that the customized state doesn't become immediately dirty.
+		 */
+		api.state( 'changesetStatus' ).bind( function( status ) {
+			if ( 'publish' === status ) {
+				api( 'nav_menus_created_posts' )._value = [];
+			}
+		} );
+
 		// Open and focus menu control.
 		api.previewer.bind( 'focus-nav-menu-item-control', api.Menus.focusMenuItemControl );
 	} );
@@ -2796,7 +3060,6 @@
 	 */
 	api.Menus.focusMenuItemControl = function( menuItemId ) {
 		var control = api.Menus.getMenuItemControl( menuItemId );
-
 		if ( control ) {
 			control.focus();
 		}
diff --git a/wp-admin/js/customize-nav-menus.min.js b/wp-admin/js/customize-nav-menus.min.js
index 37cd600af..db9d31abf 100644
--- a/wp-admin/js/customize-nav-menus.min.js
+++ b/wp-admin/js/customize-nav-menus.min.js
@@ -1,2 +1,2 @@
-!function(a,b,c){"use strict";function d(a){return"nav_menu_item["+a+"]"}function e(b){return b=b||"",b=c("<div>").text(b).html(),b=c.trim(b),b||a.Menus.data.l10n.unnamed}wpNavMenu.originalInit=wpNavMenu.init,wpNavMenu.options.menuItemDepthPerLevel=20,wpNavMenu.options.sortableItems="> .customize-control-nav_menu_item",wpNavMenu.options.targetTolerance=10,wpNavMenu.init=function(){this.jQueryExtensions()},a.Menus=a.Menus||{},a.Menus.data={itemTypes:[],l10n:{},settingTransport:"refresh",phpIntMax:0,defaultSettingValues:{nav_menu:{},nav_menu_item:{}},locationSlugMappedToName:{}},"undefined"!=typeof _wpCustomizeNavMenusSettings&&c.extend(a.Menus.data,_wpCustomizeNavMenusSettings),a.Menus.generatePlaceholderAutoIncrementId=function(){return-Math.ceil(a.Menus.data.phpIntMax*Math.random())},a.Menus.AvailableItemModel=Backbone.Model.extend(c.extend({id:null},a.Menus.data.defaultSettingValues.nav_menu_item)),a.Menus.AvailableItemCollection=Backbone.Collection.extend({model:a.Menus.AvailableItemModel,sort_key:"order",comparator:function(a){return-a.get(this.sort_key)},sortByField:function(a){this.sort_key=a,this.sort()}}),a.Menus.availableMenuItems=new a.Menus.AvailableItemCollection(a.Menus.data.availableMenuItems),a.Menus.AvailableMenuItemsPanelView=b.Backbone.View.extend({el:"#available-menu-items",events:{"input #menu-items-search":"debounceSearch","keyup #menu-items-search":"debounceSearch","focus .menu-item-tpl":"focus","click .menu-item-tpl":"_submit","click #custom-menu-item-submit":"_submitLink","keypress #custom-menu-item-name":"_submitLink",keydown:"keyboardAccessible"},selected:null,currentMenuControl:null,debounceSearch:null,$search:null,searchTerm:"",rendered:!1,pages:{},sectionContent:"",loading:!1,initialize:function(){var b=this;a.panel.has("nav_menus")&&(this.$search=c("#menu-items-search"),this.sectionContent=this.$el.find(".accordion-section-content"),this.debounceSearch=_.debounce(b.search,500),_.bindAll(this,"close"),c("#customize-controls, .customize-section-back").on("click keydown",function(a){var d=c(a.target).is(".item-delete, .item-delete *"),e=c(a.target).is(".add-new-menu-item, .add-new-menu-item *");!c("body").hasClass("adding-menu-items")||d||e||b.close()}),c(".clear-results").on("click",function(){b.$search.val("").focus().trigger("keyup")}),this.$el.on("input","#custom-menu-item-name.invalid, #custom-menu-item-url.invalid",function(){c(this).removeClass("invalid")}),a.panel("nav_menus").container.bind("expanded",function(){b.rendered||(b.initList(),b.rendered=!0)}),this.sectionContent.scroll(function(){var a=b.$el.find(".accordion-section.open .accordion-section-content").prop("scrollHeight"),d=b.$el.find(".accordion-section.open").height();if(!b.loading&&c(this).scrollTop()>.75*a-d){var e=c(this).data("type"),f=c(this).data("object");"search"===e?b.searchTerm&&b.doSearch(b.pages.search):b.loadItems(e,f)}}),a.previewer.bind("url",this.close),b.delegateEvents())},search:function(a){var b=c("#available-menu-items-search"),d=c("#available-menu-items .accordion-section").not(b);a&&this.searchTerm!==a.target.value&&(""===a.target.value||b.hasClass("open")?""===a.target.value&&(b.removeClass("open"),d.show(),b.find(".clear-results").removeClass("is-visible")):(d.fadeOut(100),b.find(".accordion-section-content").slideDown("fast"),b.addClass("open"),b.find(".clear-results").addClass("is-visible")),this.searchTerm=a.target.value,this.pages.search=1,this.doSearch(1))},doSearch:function(d){var e,f=this,g=c("#available-menu-items-search"),h=g.find(".accordion-section-content"),i=b.template("available-menu-item");if(f.currentRequest&&f.currentRequest.abort(),!(d<0)){if(d>1)g.addClass("loading-more"),h.attr("aria-busy","true"),b.a11y.speak(a.Menus.data.l10n.itemsLoadingMore);else if(""===f.searchTerm)return h.html(""),void b.a11y.speak("");g.addClass("loading"),f.loading=!0,e={"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",search:f.searchTerm,page:d},f.currentRequest=b.ajax.post("search-available-menu-items-customizer",e),f.currentRequest.done(function(c){var e;1===d&&h.empty(),g.removeClass("loading loading-more"),h.attr("aria-busy","false"),g.addClass("open"),f.loading=!1,e=new a.Menus.AvailableItemCollection(c.items),f.collection.add(e.models),e.each(function(a){h.append(i(a.attributes))}),20>e.length?f.pages.search=-1:f.pages.search=f.pages.search+1,e&&d>1?b.a11y.speak(a.Menus.data.l10n.itemsFoundMore.replace("%d",e.length)):e&&1===d&&b.a11y.speak(a.Menus.data.l10n.itemsFound.replace("%d",e.length))}),f.currentRequest.fail(function(a){a.message&&(h.empty().append(c('<p class="nothing-found"></p>').text(a.message)),b.a11y.speak(a.message)),f.pages.search=-1}),f.currentRequest.always(function(){g.removeClass("loading loading-more"),h.attr("aria-busy","false"),f.loading=!1,f.currentRequest=null})}},initList:function(){var b=this;_.each(a.Menus.data.itemTypes,function(a){b.pages[a.type+":"+a.object]=0,b.loadItems(a.type,a.object)})},loadItems:function(d,e){var f,g,h,i,j=this;h=b.template("available-menu-item"),-1!==j.pages[d+":"+e]&&(i=c("#available-menu-items-"+d+"-"+e),i.find(".accordion-section-title").addClass("loading"),j.loading=!0,f={"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",type:d,object:e,page:j.pages[d+":"+e]},g=b.ajax.post("load-available-menu-items-customizer",f),g.done(function(b){var c,f;return c=b.items,0===c.length?(0===j.pages[d+":"+e]&&i.addClass("cannot-expand").removeClass("loading").find(".accordion-section-title > button").prop("tabIndex",-1),void(j.pages[d+":"+e]=-1)):(c=new a.Menus.AvailableItemCollection(c),j.collection.add(c.models),f=i.find(".accordion-section-content"),c.each(function(a){f.append(h(a.attributes))}),void(j.pages[d+":"+e]+=1))}),g.fail(function(a){"undefined"!=typeof console&&console.error&&console.error(a)}),g.always(function(){i.find(".accordion-section-title").removeClass("loading"),j.loading=!1}))},itemSectionHeight:function(){var a,b,c,d;b=window.innerHeight,a=this.$el.find(".accordion-section:not( #available-menu-items-search ) .accordion-section-content"),c=46*(2+a.length)-13,d=b-c,120<d&&290>d&&a.css("max-height",d)},select:function(a){this.selected=c(a),this.selected.siblings(".menu-item-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(c(a.currentTarget))},_submit:function(a){"keypress"===a.type&&13!==a.which&&32!==a.which||this.submit(c(a.currentTarget))},submit:function(a){var b,d;a||(a=this.selected),a&&this.currentMenuControl&&(this.select(a),b=c(this.selected).data("menu-item-id"),d=this.collection.findWhere({id:b}),d&&(this.currentMenuControl.addItemToMenu(d.attributes),c(a).find(".menu-item-handle").addClass("item-added")))},_submitLink:function(a){"keypress"===a.type&&13!==a.which||this.submitLink()},submitLink:function(){var b,d=c("#custom-menu-item-name"),e=c("#custom-menu-item-url");if(this.currentMenuControl){if(""===d.val())return void d.addClass("invalid");if(""===e.val()||"http://"===e.val())return void e.addClass("invalid");b={title:d.val(),url:e.val(),type:"custom",type_label:a.Menus.data.l10n.custom_label,object:""},this.currentMenuControl.addItemToMenu(b),e.val("http://"),d.val("")}},open:function(a){this.currentMenuControl=a,this.itemSectionHeight(),c("body").addClass("adding-menu-items"),_(this.currentMenuControl.getMenuItemControls()).each(function(a){a.collapseForm()}),this.$el.find(".selected").removeClass("selected"),this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentMenuControl&&this.currentMenuControl.container.find(".add-new-menu-item").focus(),this.currentMenuControl=null,this.selected=null,c("body").removeClass("adding-menu-items"),c("#available-menu-items .menu-item-handle.item-added").removeClass("item-added"),this.$search.val("")},keyboardAccessible:function(a){var b=13===a.which,d=27===a.which,e=9===a.which&&a.shiftKey,f=c(a.target).is(this.$search);b&&!this.$search.val()||(f&&e?(this.currentMenuControl.container.find(".add-new-menu-item").focus(),a.preventDefault()):d&&this.close({returnFocus:!0}))}}),a.Menus.MenusPanel=a.Panel.extend({attachEvents:function(){a.Panel.prototype.attachEvents.call(this);var b=this,d=b.container.find(".panel-meta"),e=d.find(".customize-help-toggle"),f=d.find(".customize-panel-description"),g=c("#screen-options-wrap"),h=d.find(".customize-screen-options-toggle");h.on("click keydown",function(b){if(!a.utils.isKeydownButNotEnterEvent(b))return b.preventDefault(),f.not(":hidden")&&(f.slideUp("fast"),e.attr("aria-expanded","false")),"true"===h.attr("aria-expanded")?(h.attr("aria-expanded","false"),d.removeClass("open"),d.removeClass("active-menu-screen-options"),g.slideUp("fast")):(h.attr("aria-expanded","true"),d.addClass("open"),d.addClass("active-menu-screen-options"),g.slideDown("fast")),!1}),e.on("click keydown",function(b){a.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),"true"===h.attr("aria-expanded")&&(h.attr("aria-expanded","false"),e.attr("aria-expanded","true"),d.addClass("open"),d.removeClass("active-menu-screen-options"),g.slideUp("fast"),f.slideDown("fast")))})},ready:function(){var a=this;this.container.find(".hide-column-tog").click(function(){var b=c(this),d=b.val();b.prop("checked")?a.checked(d):a.unchecked(d),a.saveManageColumnsState()}),this.container.find(".hide-column-tog").each(function(){var b=c(this),d=b.val();b.prop("checked")?a.checked(d):a.unchecked(d)})},saveManageColumnsState:_.debounce(function(){var a=this;a._updateHiddenColumnsRequest&&a._updateHiddenColumnsRequest.abort(),a._updateHiddenColumnsRequest=b.ajax.post("hidden-columns",{hidden:a.hidden(),screenoptionnonce:c("#screenoptionnonce").val(),page:"nav-menus"}),a._updateHiddenColumnsRequest.always(function(){a._updateHiddenColumnsRequest=null})},2e3),checked:function(a){this.container.addClass("field-"+a+"-active")},unchecked:function(a){this.container.removeClass("field-"+a+"-active")},hidden:function(){return c(".hide-column-tog").not(":checked").map(function(){var a=this.id;return a.substring(0,a.length-5)}).get().join(",")}}),a.Menus.MenuSection=a.Section.extend({initialize:function(b,d){var e=this;a.Section.prototype.initialize.call(e,b,d),e.deferred.initSortables=c.Deferred()},ready:function(){var b=this;if("undefined"==typeof b.params.menu_id)throw new Error("params.menu_id was not defined");b.active.validate=function(){return!!a.has(b.id)&&!!a(b.id).get()},b.populateControls(),b.navMenuLocationSettings={},b.assignedLocations=new a.Value([]),a.each(function(a,c){var d=c.match(/^nav_menu_locations\[(.+?)]/);d&&(b.navMenuLocationSettings[d[1]]=a,a.bind(function(){b.refreshAssignedLocations()}))}),b.assignedLocations.bind(function(a){b.updateAssignedLocationsInSectionTitle(a)}),b.refreshAssignedLocations(),a.bind("pane-contents-reflowed",function(){b.container.parent().length&&(b.container.find(".menu-item .menu-item-reorder-nav button").attr({tabindex:"0","aria-hidden":"false"}),b.container.find(".menu-item.move-up-disabled .menus-move-up").attr({tabindex:"-1","aria-hidden":"true"}),b.container.find(".menu-item.move-down-disabled .menus-move-down").attr({tabindex:"-1","aria-hidden":"true"}),b.container.find(".menu-item.move-left-disabled .menus-move-left").attr({tabindex:"-1","aria-hidden":"true"}),b.container.find(".menu-item.move-right-disabled .menus-move-right").attr({tabindex:"-1","aria-hidden":"true"}))})},populateControls:function(){var b,c,d,e,f,g=this;b=g.id+"[name]",e=a.control(b),e||(e=new a.controlConstructor.nav_menu_name(b,{params:{type:"nav_menu_name",content:'<li id="customize-control-'+g.id.replace("[","-").replace("]","")+'-name" class="customize-control customize-control-nav_menu_name"></li>',label:a.Menus.data.l10n.menuNameLabel,active:!0,section:g.id,priority:0,settings:{"default":g.id}}}),a.control.add(e.id,e),e.active.set(!0)),d=a.control(g.id),d||(d=new a.controlConstructor.nav_menu(g.id,{params:{type:"nav_menu",content:'<li id="customize-control-'+g.id.replace("[","-").replace("]","")+'" class="customize-control customize-control-nav_menu"></li>',section:g.id,priority:998,active:!0,settings:{"default":g.id},menu_id:g.params.menu_id}}),a.control.add(d.id,d),d.active.set(!0)),c=g.id+"[auto_add]",f=a.control(c),f||(f=new a.controlConstructor.nav_menu_auto_add(c,{params:{type:"nav_menu_auto_add",content:'<li id="customize-control-'+g.id.replace("[","-").replace("]","")+'-auto-add" class="customize-control customize-control-nav_menu_auto_add"></li>',label:"",active:!0,section:g.id,priority:999,settings:{"default":g.id}}}),a.control.add(f.id,f),f.active.set(!0))},refreshAssignedLocations:function(){var a=this,b=a.params.menu_id,c=[];_.each(a.navMenuLocationSettings,function(a,d){a()===b&&c.push(d)}),a.assignedLocations.set(c)},updateAssignedLocationsInSectionTitle:function(b){var d,e=this;d=e.container.find(".accordion-section-title:first"),d.find(".menu-in-location").remove(),_.each(b,function(b){var e,f;e=c('<span class="menu-in-location"></span>'),f=a.Menus.data.locationSlugMappedToName[b],e.text(a.Menus.data.l10n.menuLocation.replace("%s",f)),d.append(e)}),e.container.toggleClass("assigned-to-menu-location",0!==b.length)},onChangeExpanded:function(b,d){var e=this;b&&(wpNavMenu.menuList=e.container.find(".accordion-section-content:first"),wpNavMenu.targetList=wpNavMenu.menuList,c("#menu-to-edit").removeAttr("id"),wpNavMenu.menuList.attr("id","menu-to-edit").addClass("menu"),_.each(a.section(e.id).controls(),function(a){"nav_menu_item"===a.params.type&&a.actuallyEmbed()}),"resolved"!==e.deferred.initSortables.state()&&(wpNavMenu.initSortables(),e.deferred.initSortables.resolve(wpNavMenu.menuList),a.control("nav_menu["+String(e.params.menu_id)+"]").reflowMenuItems())),a.Section.prototype.onChangeExpanded.call(e,b,d)}}),a.Menus.NewMenuSection=a.Section.extend({attachEvents:function(){var a=this;this.container.on("click",".add-menu-toggle",function(){a.expanded()?a.collapse():a.expand()})},onChangeExpanded:function(a){var b=this,c=b.container.find(".add-menu-toggle"),d=b.container.find(".new-menu-section-content"),e=b.container.closest(".wp-full-overlay-sidebar-content");a?(c.addClass("open"),c.attr("aria-expanded","true"),d.slideDown("fast",function(){e.scrollTop(e.height())})):(c.removeClass("open"),c.attr("aria-expanded","false"),d.slideUp("fast"),d.find(".menu-name-field").removeClass("invalid"))}}),a.Menus.MenuLocationControl=a.Control.extend({initialize:function(b,c){var d=this,e=b.match(/^nav_menu_locations\[(.+?)]/);d.themeLocation=e[1],a.Control.prototype.initialize.call(d,b,c)},ready:function(){var b=this,c=/^nav_menu\[(-?\d+)]/;b.setting.validate=function(a){return parseInt(a,10)},b.container.find(".edit-menu").on("click",function(){var c=b.setting();a.section("nav_menu["+c+"]").focus()}),b.setting.bind("change",function(){0===b.setting()?b.container.find(".edit-menu").addClass("hidden"):b.container.find(".edit-menu").removeClass("hidden")}),a.bind("add",function(a){var d,f,g=a.id.match(c);g&&!1!==a()&&(f=g[1],d=new Option(e(a().name),f),b.container.find("select").append(d))}),a.bind("remove",function(a){var d,e=a.id.match(c);e&&(d=parseInt(e[1],10),b.setting()===d&&b.setting.set(""),b.container.find("option[value="+d+"]").remove())}),a.bind("change",function(a){var d,f=a.id.match(c);f&&(d=parseInt(f[1],10),!1===a()?(b.setting()===d&&b.setting.set(""),b.container.find("option[value="+d+"]").remove()):b.container.find("option[value="+d+"]").text(e(a().name)))})}}),a.Menus.MenuItemControl=a.Control.extend({initialize:function(b,d){var e=this;e.expanded=new a.Value((!1)),e.expandedArgumentsQueue=[],e.expanded.bind(function(a){var b=e.expandedArgumentsQueue.shift();b=c.extend({},e.defaultExpandedArguments,b),e.onChangeExpanded(a,b)}),a.Control.prototype.initialize.call(e,b,d),e.active.validate=function(){var b,c=a.section(e.section());return b=!!c&&c.active()}},embed:function(){var b,c=this,d=c.section();d&&(b=a.section(d),(b&&b.expanded()||a.settings.autofocus.control===c.id)&&c.actuallyEmbed())},actuallyEmbed:function(){var a=this;"resolved"!==a.deferred.embedded.state()&&(a.renderContent(),a.deferred.embedded.resolve())},ready:function(){if("undefined"==typeof this.params.menu_item_id)throw new Error("params.menu_item_id was not defined");this._setupControlToggle(),this._setupReorderUI(),this._setupUpdateUI(),this._setupRemoveUI(),this._setupLinksUI(),this._setupTitleUI()},_setupControlToggle:function(){var a=this;this.container.find(".menu-item-handle").on("click",function(b){b.preventDefault(),b.stopPropagation();var c=a.getMenuControl();c.isReordering||c.isSorting||a.toggleForm()})},_setupReorderUI:function(){var a,d,e=this;a=b.template("menu-item-reorder-nav"),e.container.find(".item-controls").after(a),d=e.container.find(".menu-item-reorder-nav"),d.find(".menus-move-up, .menus-move-down, .menus-move-left, .menus-move-right").on("click",function(){var a=c(this);a.focus();var b=a.is(".menus-move-up"),d=a.is(".menus-move-down"),f=a.is(".menus-move-left"),g=a.is(".menus-move-right");b?e.moveUp():d?e.moveDown():f?e.moveLeft():g&&e.moveRight(),a.focus()})},_setupUpdateUI:function(){var b=this,c=b.setting();b.elements={},b.elements.url=new a.Element(b.container.find(".edit-menu-item-url")),b.elements.title=new a.Element(b.container.find(".edit-menu-item-title")),b.elements.attr_title=new a.Element(b.container.find(".edit-menu-item-attr-title")),b.elements.target=new a.Element(b.container.find(".edit-menu-item-target")),b.elements.classes=new a.Element(b.container.find(".edit-menu-item-classes")),b.elements.xfn=new a.Element(b.container.find(".edit-menu-item-xfn")),b.elements.description=new a.Element(b.container.find(".edit-menu-item-description")),_.each(b.elements,function(a,d){a.bind(function(c){a.element.is("input[type=checkbox]")&&(c=c?a.element.val():"");var e=b.setting();e&&e[d]!==c&&(e=_.clone(e),e[d]=c,b.setting.set(e))}),c&&("classes"!==d&&"xfn"!==d||!_.isArray(c[d])?a.set(c[d]):a.set(c[d].join(" ")))}),b.setting.bind(function(c,d){var e,f=b.params.menu_item_id,g=[],h=[];!1===c?(e=a.control("nav_menu["+String(d.nav_menu_term_id)+"]"),b.container.remove(),_.each(e.getMenuItemControls(),function(a){d.menu_item_parent===a.setting().menu_item_parent&&a.setting().position>d.position?g.push(a):a.setting().menu_item_parent===f&&h.push(a)}),_.each(g,function(a){var b=_.clone(a.setting());b.position+=h.length,a.setting.set(b)}),_.each(h,function(a,b){var c=_.clone(a.setting());c.position=d.position+b,c.menu_item_parent=d.menu_item_parent,a.setting.set(c)}),e.debouncedReflowMenuItems()):(_.each(c,function(a,d){b.elements[d]&&b.elements[d].set(c[d])}),b.container.find(".menu-item-data-parent-id").val(c.menu_item_parent),c.position===d.position&&c.menu_item_parent===d.menu_item_parent||b.getMenuControl().debouncedReflowMenuItems())})},_setupRemoveUI:function(){var d,e=this;d=e.container.find(".item-delete"),d.on("click",function(){var d,f,g,h=!0;c("body").hasClass("adding-menu-items")||(h=!1),f=e.container.nextAll(".customize-control-nav_menu_item:visible").first(),g=e.container.prevAll(".customize-control-nav_menu_item:visible").first(),d=f.length?f.find(!1===h?".item-edit":".item-delete").first():g.length?g.find(!1===h?".item-edit":".item-delete").first():e.container.nextAll(".customize-control-nav_menu").find(".add-new-menu-item").first(),e.container.slideUp(function(){e.setting.set(!1),b.a11y.speak(a.Menus.data.l10n.itemDeleted),d.focus()})})},_setupLinksUI:function(){var b;b=this.container.find("a.original-link"),b.on("click",function(b){b.preventDefault(),a.previewer.previewUrl(b.target.toString())})},_setupTitleUI:function(){var b=this;b.setting.bind(function(c){if(c){var d=b.container.find(".menu-item-title"),e=c.title||a.Menus.data.l10n.untitled;c._invalid&&(e=a.Menus.data.l10n.invalidTitleTpl.replace("%s",e)),c.title?d.text(e).removeClass("no-title"):d.text(e).addClass("no-title")}})},getDepth:function(){var b=this,c=b.setting(),d=0;if(!c)return 0;for(;c&&c.menu_item_parent&&(d+=1,b=a.control("nav_menu_item["+c.menu_item_parent+"]"));)c=b.setting();return d},renderContent:function(){var b,c=this,d=c.setting();c.params.title=d.title||"",c.params.depth=c.getDepth(),c.container.data("item-depth",c.params.depth),b=["menu-item","menu-item-depth-"+String(c.params.depth),"menu-item-"+d.object,"menu-item-edit-inactive"],d._invalid?(b.push("menu-item-invalid"),c.params.title=a.Menus.data.l10n.invalidTitleTpl.replace("%s",c.params.title)):"draft"===d.status&&(b.push("pending"),c.params.title=a.Menus.data.pendingTitleTpl.replace("%s",c.params.title)),c.params.el_classes=b.join(" "),c.params.item_type_label=d.type_label,c.params.item_type=d.type,c.params.url=d.url,c.params.target=d.target,c.params.attr_title=d.attr_title,c.params.classes=_.isArray(d.classes)?d.classes.join(" "):d.classes,c.params.attr_title=d.attr_title,c.params.xfn=d.xfn,c.params.description=d.description,c.params.parent=d.menu_item_parent,c.params.original_title=d.original_title||"",c.container.addClass(c.params.el_classes),a.Control.prototype.renderContent.call(c)},getMenuControl:function(){var b=this,c=b.setting();return c&&c.nav_menu_term_id?a.control("nav_menu["+c.nav_menu_term_id+"]"):null},expandControlSection:function(){var a=this.container.closest(".accordion-section");a.hasClass("open")||a.find(".accordion-section-title:first").trigger("click")},_toggleExpanded:a.Section.prototype._toggleExpanded,expand:a.Section.prototype.expand,expandForm:function(a){this.expand(a)},collapse:a.Section.prototype.collapse,collapseForm:function(a){this.collapse(a)},toggleForm:function(a,b){"undefined"==typeof a&&(a=!this.expanded()),a?this.expand(b):this.collapse(b)},onChangeExpanded:function(b,c){var d,e,f,g=this;return d=this.container,e=d.find(".menu-item-settings:first"),"undefined"==typeof b&&(b=!e.is(":visible")),e.is(":visible")===b?void(c&&c.completeCallback&&c.completeCallback()):void(b?(a.control.each(function(a){g.params.type===a.params.type&&g!==a&&a.collapseForm()}),f=function(){d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active"),g.container.trigger("expanded"),c&&c.completeCallback&&c.completeCallback()},d.find(".item-edit").attr("aria-expanded","true"),e.slideDown("fast",f),g.container.trigger("expand")):(f=function(){d.addClass("menu-item-edit-inactive").removeClass("menu-item-edit-active"),g.container.trigger("collapsed"),c&&c.completeCallback&&c.completeCallback()},g.container.trigger("collapse"),d.find(".item-edit").attr("aria-expanded","false"),e.slideUp("fast",f)))},focus:function(a){a=a||{};var b=this,c=a.completeCallback;b.expandControlSection(),a.completeCallback=function(){var a;a=b.container.find(".menu-item-settings").find("input, select, textarea, button, object, a[href], [tabindex]").filter(":visible"),a.first().focus(),c&&c()},b.expandForm(a)},moveUp:function(){this._changePosition(-1),b.a11y.speak(a.Menus.data.l10n.movedUp)},moveDown:function(){this._changePosition(1),b.a11y.speak(a.Menus.data.l10n.movedDown)},moveLeft:function(){this._changeDepth(-1),b.a11y.speak(a.Menus.data.l10n.movedLeft)},moveRight:function(){this._changeDepth(1),b.a11y.speak(a.Menus.data.l10n.movedRight)},_changePosition:function(a){var b,d,e=this,f=_.clone(e.setting()),g=[];if(1!==a&&-1!==a)throw new Error("Offset changes by 1 are only supported.");if(e.setting()){if(_(e.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===f.menu_item_parent&&g.push(a.setting)}),g.sort(function(a,b){return a().position-b().position}),d=_.indexOf(g,e.setting),-1===d)throw new Error("Expected setting to be among siblings.");0===d&&a<0||d===g.length-1&&a>0||(b=g[d+a],b&&b.set(c.extend(_.clone(b()),{position:f.position})),f.position+=a,e.setting.set(f))}},_changeDepth:function(b){if(1!==b&&-1!==b)throw new Error("Offset changes by 1 are only supported.");var d,e,f,g=this,h=_.clone(g.setting()),i=[];if(_(g.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===h.menu_item_parent&&i.push(a)}),i.sort(function(a,b){return a.setting().position-b.setting().position}),d=_.indexOf(i,g),-1===d)throw new Error("Expected control to be among siblings.");if(-1===b){if(!h.menu_item_parent)return;f=a.control("nav_menu_item["+h.menu_item_parent+"]"),_(i).chain().slice(d).each(function(a,b){a.setting.set(c.extend({},a.setting(),{menu_item_parent:g.params.menu_item_id,position:b}))}),_(g.getMenuControl().getMenuItemControls()).each(function(a){var b,d;d=a.setting().menu_item_parent===f.setting().menu_item_parent&&a.setting().position>f.setting().position,d&&(b=_.clone(a.setting()),a.setting.set(c.extend(b,{position:b.position+1})))}),h.position=f.setting().position+1,h.menu_item_parent=f.setting().menu_item_parent,g.setting.set(h)}else if(1===b){if(0===d)return;e=i[d-1],h.menu_item_parent=e.params.menu_item_id,h.position=0,_(g.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===h.menu_item_parent&&(h.position=Math.max(h.position,a.setting().position))}),h.position+=1,g.setting.set(h)}}}),a.Menus.MenuNameControl=a.Control.extend({ready:function(){var b=this,c=b.setting();b.active.validate=function(){var c,d=a.section(b.section());return c=!!d&&d.active()},b.nameElement=new a.Element(b.container.find(".menu-name-field")),b.nameElement.bind(function(a){var c=b.setting();c&&c.name!==a&&(c=_.clone(c),c.name=a,b.setting.set(c))}),c&&b.nameElement.set(c.name),b.setting.bind(function(a){a&&b.nameElement.set(a.name)})}}),a.Menus.MenuAutoAddControl=a.Control.extend({ready:function(){var b=this,c=b.setting();b.active.validate=function(){var c,d=a.section(b.section());return c=!!d&&d.active()},b.autoAddElement=new a.Element(b.container.find("input[type=checkbox].auto_add")),b.autoAddElement.bind(function(a){var c=b.setting();c&&c.name!==a&&(c=_.clone(c),c.auto_add=a,b.setting.set(c))}),c&&b.autoAddElement.set(c.auto_add),b.setting.bind(function(a){a&&b.autoAddElement.set(a.auto_add)})}}),a.Menus.MenuControl=a.Control.extend({ready:function(){var b,d,f,g=this,h=g.params.menu_id,i=g.setting();if("undefined"==typeof this.params.menu_id)throw new Error("params.menu_id was not defined");g.active.validate=function(){var b,c=a.section(g.section());return b=!!c&&c.active()},g.$controlSection=g.container.closest(".control-section"),g.$sectionContent=g.container.closest(".accordion-section-content"),this._setupModel(),a.section(g.section(),function(a){a.deferred.initSortables.done(function(a){g._setupSortable(a)})}),this._setupAddition(),this._setupLocations(),this._setupTitle(),i&&(b=e(i.name),a.control.each(function(c){c.extended(a.controlConstructor.widget_form)&&"nav_menu"===c.params.widget_id_base&&(c.container.find(".nav-menu-widget-form-controls:first").show(),c.container.find(".nav-menu-widget-no-menus-message:first").hide(),f=c.container.find("select"),0===f.find("option[value="+String(h)+"]").length&&f.append(new Option(b,h)))}),d=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),d.find(".nav-menu-widget-form-controls:first").show(),d.find(".nav-menu-widget-no-menus-message:first").hide(),f=d.find(".widget-inside select:first"),0===f.find("option[value="+String(h)+"]").length&&f.append(new Option(b,h)))},_setupModel:function(){var b=this,c=b.params.menu_id;b.setting.bind(function(d){var f;!1===d?b._handleDeletion():(f=e(d.name),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var d=b.container.find("select");d.find("option[value="+String(c)+"]").text(f)}}))}),b.container.find(".menu-delete").on("click",function(a){a.stopPropagation(),a.preventDefault(),b.setting.set(!1)})},_setupSortable:function(b){var c=this;if(!b.is(c.$sectionContent))throw new Error("Unexpected menuList.");b.on("sortstart",function(){c.isSorting=!0}),b.on("sortstop",function(){setTimeout(function(){var b=c.$sectionContent.sortable("toArray"),d=[],e=0,f=10;c.isSorting=!1,c.$sectionContent.scrollLeft(0),_.each(b,function(b){var c,e,f;f=b.match(/^customize-control-nav_menu_item-(-?\d+)$/,""),f&&(c=parseInt(f[1],10),e=a.control("nav_menu_item["+String(c)+"]"),e&&d.push(e))}),_.each(d,function(a){if(!1!==a.setting()){var b=_.clone(a.setting());e+=1,f+=1,b.position=e,a.priority(f),b.menu_item_parent=parseInt(a.container.find(".menu-item-data-parent-id").val(),10),b.menu_item_parent||(b.menu_item_parent=0),a.setting.set(b)}})})}),c.isReordering=!1,this.container.find(".reorder-toggle").on("click",function(){c.toggleReordering(!c.isReordering)})},_setupAddition:function(){var b=this;this.container.find(".add-new-menu-item").on("click",function(d){b.$sectionContent.hasClass("reordering")||(c("body").hasClass("adding-menu-items")?(c(this).attr("aria-expanded","false"),a.Menus.availableMenuItemsPanel.close(),d.stopPropagation()):(c(this).attr("aria-expanded","true"),a.Menus.availableMenuItemsPanel.open(b)))})},_handleDeletion:function(){var d,e,f,g=this,h=g.params.menu_id,i=0;d=a.section(g.section()),e=function(){d.container.remove(),a.section.remove(d.id)},d&&d.expanded()?d.collapse({completeCallback:function(){e(),b.a11y.speak(a.Menus.data.l10n.menuDeleted),a.panel("nav_menus").focus()}}):e(),a.each(function(a){/^nav_menu\[/.test(a.id)&&!1!==a()&&(i+=1)}),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var c=b.container.find("select");c.val()===String(h)&&c.prop("selectedIndex",0).trigger("change"),b.container.find(".nav-menu-widget-form-controls:first").toggle(0!==i),b.container.find(".nav-menu-widget-no-menus-message:first").toggle(0===i),b.container.find("option[value="+String(h)+"]").remove()}}),f=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),f.find(".nav-menu-widget-form-controls:first").toggle(0!==i),f.find(".nav-menu-widget-no-menus-message:first").toggle(0===i),f.find("option[value="+String(h)+"]").remove()},_setupLocations:function(){var b=this;b.container.find(".assigned-menu-location").each(function(){var d,f,g=c(this),h=g.find("input[type=checkbox]"),i=a("nav_menu_locations["+h.data("location-id")+"]");f=function(b){var c=a("nav_menu["+String(b)+"]");b&&c&&c()?g.find(".theme-location-set").show().find("span").text(e(c().name)):g.find(".theme-location-set").hide()},d=new a.Element(h),d.set(i.get()===b.params.menu_id),h.on("change",function(){i.set(this.checked?b.params.menu_id:0)}),i.bind(function(a){d.set(a===b.params.menu_id),f(a)}),f(i.get())})},_setupTitle:function(){var b=this;b.setting.bind(function(d){if(d){var f=b.container.closest(".accordion-section"),g=b.params.menu_id,h=f.find(".accordion-section-title"),i=f.find(".customize-section-title h3"),j=f.find(".menu-in-location"),k=i.find(".customize-action"),l=e(d.name);h.text(l),j.length&&j.appendTo(h),i.text(l),k.length&&k.prependTo(i),a.control.each(function(a){/^nav_menu_locations\[/.test(a.id)&&a.container.find("option[value="+g+"]").text(l)}),f.find(".customize-control-checkbox input").each(function(){c(this).prop("checked")&&c(".current-menu-location-name-"+c(this).data("location-id")).text(l)})}})},toggleReordering:function(c){var d=this.container.find(".add-new-menu-item"),e=this.container.find(".reorder-toggle"),f=this.$sectionContent.find(".item-title");c=Boolean(c),c!==this.$sectionContent.hasClass("reordering")&&(this.isReordering=c,this.$sectionContent.toggleClass("reordering",c),this.$sectionContent.sortable(this.isReordering?"disable":"enable"),this.isReordering?(d.attr({tabindex:"-1","aria-hidden":"true"}),e.attr("aria-label",a.Menus.data.l10n.reorderLabelOff),b.a11y.speak(a.Menus.data.l10n.reorderModeOn),f.attr("aria-hidden","false")):(d.removeAttr("tabindex aria-hidden"),e.attr("aria-label",a.Menus.data.l10n.reorderLabelOn),b.a11y.speak(a.Menus.data.l10n.reorderModeOff),f.attr("aria-hidden","true")),c&&_(this.getMenuItemControls()).each(function(a){a.collapseForm()}))},getMenuItemControls:function(){var b=this,c=[],d=b.params.menu_id;return a.control.each(function(a){"nav_menu_item"===a.params.type&&a.setting()&&d===a.setting().nav_menu_term_id&&c.push(a);
-}),c},reflowMenuItems:function(){var a,b=this,c=b.getMenuItemControls();a=function(b){var c=[],d=b.currentParent;_.each(b.menuItemControls,function(a){d===a.setting().menu_item_parent&&c.push(a)}),c.sort(function(a,b){return a.setting().position-b.setting().position}),_.each(c,function(c){b.currentAbsolutePosition+=1,c.priority.set(b.currentAbsolutePosition),c.container.hasClass("menu-item-depth-"+String(b.currentDepth))||(_.each(c.container.prop("className").match(/menu-item-depth-\d+/g),function(a){c.container.removeClass(a)}),c.container.addClass("menu-item-depth-"+String(b.currentDepth))),c.container.data("item-depth",b.currentDepth),b.currentDepth+=1,b.currentParent=c.params.menu_item_id,a(b),b.currentDepth-=1,b.currentParent=d}),c.length&&(_(c).each(function(a){a.container.removeClass("move-up-disabled move-down-disabled move-left-disabled move-right-disabled"),0===b.currentDepth?a.container.addClass("move-left-disabled"):10===b.currentDepth&&a.container.addClass("move-right-disabled")}),c[0].container.addClass("move-up-disabled").addClass("move-right-disabled").toggleClass("move-down-disabled",1===c.length),c[c.length-1].container.addClass("move-down-disabled").toggleClass("move-up-disabled",1===c.length))},a({menuItemControls:c,currentParent:0,currentDepth:0,currentAbsolutePosition:0}),b.container.find(".reorder-toggle").toggle(c.length>1)},debouncedReflowMenuItems:_.debounce(function(){this.reflowMenuItems.apply(this,arguments)},0),addItemToMenu:function(d){var e,f,g,h,i,j=this,k=0,l=10;return _.each(j.getMenuItemControls(),function(a){!1!==a.setting()&&(l=Math.max(l,a.priority()),0===a.setting().menu_item_parent&&(k=Math.max(k,a.setting().position)))}),k+=1,l+=1,d=c.extend({},a.Menus.data.defaultSettingValues.nav_menu_item,d,{nav_menu_term_id:j.params.menu_id,original_title:d.title,position:k}),delete d.id,i=a.Menus.generatePlaceholderAutoIncrementId(),e="nav_menu_item["+String(i)+"]",f={type:"nav_menu_item",transport:a.Menus.data.settingTransport,previewer:a.previewer},g=a.create(e,e,{},f),g.set(d),h=new a.controlConstructor.nav_menu_item(e,{params:{type:"nav_menu_item",content:'<li id="customize-control-nav_menu_item-'+String(i)+'" class="customize-control customize-control-nav_menu_item"></li>',section:j.id,priority:l,active:!0,settings:{"default":e},menu_item_id:i},previewer:a.previewer}),a.control.add(e,h),g.preview(),j.debouncedReflowMenuItems(),b.a11y.speak(a.Menus.data.l10n.itemAdded),h}}),a.Menus.NewMenuControl=a.Control.extend({ready:function(){this._bindHandlers()},_bindHandlers:function(){var a=this,b=c("#customize-control-new_menu_name input"),d=c("#create-new-menu-submit");b.on("keydown",function(b){13===b.which&&a.submit()}),d.on("click",function(b){a.submit(),b.stopPropagation(),b.preventDefault()})},submit:function(){var d,f,g=this,h=g.container.closest(".accordion-section-new-menu"),i=h.find(".menu-name-field").first(),j=i.val(),k=a.Menus.generatePlaceholderAutoIncrementId();return j?(f="nav_menu["+String(k)+"]",a.create(f,f,{},{type:"nav_menu",transport:a.Menus.data.settingTransport,previewer:a.previewer}),a(f).set(c.extend({},a.Menus.data.defaultSettingValues.nav_menu,{name:j})),d=new a.Menus.MenuSection(f,{params:{id:f,panel:"nav_menus",title:e(j),customizeAction:a.Menus.data.l10n.customizingMenus,type:"nav_menu",priority:10,menu_id:k}}),a.section.add(f,d),i.val(""),i.removeClass("invalid"),b.a11y.speak(a.Menus.data.l10n.menuAdded),a.section(f).focus(),void c("#menu-to-edit").css("margin-top",0)):(i.addClass("invalid"),void i.focus())}}),c.extend(a.controlConstructor,{nav_menu_location:a.Menus.MenuLocationControl,nav_menu_item:a.Menus.MenuItemControl,nav_menu:a.Menus.MenuControl,nav_menu_name:a.Menus.MenuNameControl,nav_menu_auto_add:a.Menus.MenuAutoAddControl,new_menu:a.Menus.NewMenuControl}),c.extend(a.panelConstructor,{nav_menus:a.Menus.MenusPanel}),c.extend(a.sectionConstructor,{nav_menu:a.Menus.MenuSection,new_menu:a.Menus.NewMenuSection}),a.bind("ready",function(){a.Menus.availableMenuItemsPanel=new a.Menus.AvailableMenuItemsPanelView({collection:a.Menus.availableMenuItems}),a.bind("saved",function(b){(b.nav_menu_updates||b.nav_menu_item_updates)&&a.Menus.applySavedData(b)}),a.previewer.bind("focus-nav-menu-item-control",a.Menus.focusMenuItemControl)}),a.Menus.applySavedData=function(d){var e={},f={};_(d.nav_menu_updates).each(function(d){var f,g,h,i,j,k,l,m,n,o,p,q;if("inserted"===d.status){if(!d.previous_term_id)throw new Error("Expected previous_term_id");if(!d.term_id)throw new Error("Expected term_id");if(f="nav_menu["+String(d.previous_term_id)+"]",!a.has(f))throw new Error("Expected setting to exist: "+f);if(i=a(f),!a.section.has(f))throw new Error("Expected control to exist: "+f);if(m=a.section(f),l=i.get(),!l)throw new Error("Did not expect setting to be empty (deleted).");l=c.extend(_.clone(l),d.saved_value),e[d.previous_term_id]=d.term_id,g="nav_menu["+String(d.term_id)+"]",j=a.create(g,g,l,{type:"nav_menu",transport:a.Menus.data.settingTransport,previewer:a.previewer}),m.expanded()&&m.collapse(),n=new a.Menus.MenuSection(g,{params:{id:g,panel:"nav_menus",title:l.name,customizeAction:a.Menus.data.l10n.customizingMenus,type:"nav_menu",priority:m.priority.get(),active:!0,menu_id:d.term_id}}),a.section.add(g,n),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var c,e,f;c=b.container.find("select"),e=c.find("option[value="+String(d.previous_term_id)+"]"),f=c.find("option[value="+String(d.term_id)+"]"),f.prop("selected",e.prop("selected")),e.remove()}}),i.callbacks.disable(),i.set(!1),i.preview(),j.preview(),i._dirty=!1,m.container.remove(),a.section.remove(f),q=0,a.each(function(a){/^nav_menu\[/.test(a.id)&&!1!==a()&&(q+=1)}),p=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),p.find(".nav-menu-widget-form-controls:first").toggle(0!==q),p.find(".nav-menu-widget-no-menus-message:first").toggle(0===q),p.find("option[value="+String(d.previous_term_id)+"]").remove(),b.customize.control.each(function(a){/^nav_menu_locations\[/.test(a.id)&&a.container.find("option[value="+String(d.previous_term_id)+"]").remove()}),a.each(function(b){var c=a.state("saved").get();/^nav_menu_locations\[/.test(b.id)&&b.get()===d.previous_term_id&&(b.set(d.term_id),b._dirty=!1,a.state("saved").set(c),b.preview())}),m.expanded.get()&&n.expand()}else if("updated"===d.status){if(h="nav_menu["+String(d.term_id)+"]",!a.has(h))throw new Error("Expected setting to exist: "+h);k=a(h),_.isEqual(d.saved_value,k.get())||(o=a.state("saved").get(),k.set(d.saved_value),k._dirty=!1,a.state("saved").set(o))}}),_(d.nav_menu_item_updates).each(function(a){a.previous_post_id&&(f[a.previous_post_id]=a.post_id)}),_(d.nav_menu_item_updates).each(function(b){var c,d,g,h,i,j,k;if("inserted"===b.status){if(!b.previous_post_id)throw new Error("Expected previous_post_id");if(!b.post_id)throw new Error("Expected post_id");if(c="nav_menu_item["+String(b.previous_post_id)+"]",!a.has(c))throw new Error("Expected setting to exist: "+c);if(g=a(c),!a.control.has(c))throw new Error("Expected control to exist: "+c);if(j=a.control(c),i=g.get(),!i)throw new Error("Did not expect setting to be empty (deleted).");if(i=_.clone(i),i.menu_item_parent<0){if(!f[i.menu_item_parent])throw new Error("inserted ID for menu_item_parent not available");i.menu_item_parent=f[i.menu_item_parent]}e[i.nav_menu_term_id]&&(i.nav_menu_term_id=e[i.nav_menu_term_id]),d="nav_menu_item["+String(b.post_id)+"]",h=a.create(d,d,i,{type:"nav_menu_item",transport:a.Menus.data.settingTransport,previewer:a.previewer}),k=new a.controlConstructor.nav_menu_item(d,{params:{type:"nav_menu_item",content:'<li id="customize-control-nav_menu_item-'+String(b.post_id)+'" class="customize-control customize-control-nav_menu_item"></li>',menu_id:b.post_id,section:"nav_menu["+String(i.nav_menu_term_id)+"]",priority:j.priority.get(),active:!0,settings:{"default":d},menu_item_id:b.post_id},previewer:a.previewer}),j.container.remove(),a.control.remove(c),a.control.add(d,k),g.callbacks.disable(),g.set(!1),g.preview(),h.preview(),g._dirty=!1,k.container.toggleClass("menu-item-edit-inactive",j.container.hasClass("menu-item-edit-inactive"))}}),_.each(d.widget_nav_menu_updates,function(b,c){var d=a(c);d&&(d._value=b,d.preview())})},a.Menus.focusMenuItemControl=function(b){var c=a.Menus.getMenuItemControl(b);c&&c.focus()},a.Menus.getMenuControl=function(b){return a.control("nav_menu["+b+"]")},a.Menus.getMenuItemControl=function(b){return a.control(d(b))}}(wp.customize,wp,jQuery);
\ No newline at end of file
+!function(a,b,c){"use strict";function d(a){return"nav_menu_item["+a+"]"}function e(b){return b=b||"",b=c("<div>").text(b).html(),b=c.trim(b),b||a.Menus.data.l10n.unnamed}wpNavMenu.originalInit=wpNavMenu.init,wpNavMenu.options.menuItemDepthPerLevel=20,wpNavMenu.options.sortableItems="> .customize-control-nav_menu_item",wpNavMenu.options.targetTolerance=10,wpNavMenu.init=function(){this.jQueryExtensions()},a.Menus=a.Menus||{},a.Menus.data={itemTypes:[],l10n:{},settingTransport:"refresh",phpIntMax:0,defaultSettingValues:{nav_menu:{},nav_menu_item:{}},locationSlugMappedToName:{}},"undefined"!=typeof _wpCustomizeNavMenusSettings&&c.extend(a.Menus.data,_wpCustomizeNavMenusSettings),a.Menus.generatePlaceholderAutoIncrementId=function(){return-Math.ceil(a.Menus.data.phpIntMax*Math.random())},a.Menus.AvailableItemModel=Backbone.Model.extend(c.extend({id:null},a.Menus.data.defaultSettingValues.nav_menu_item)),a.Menus.AvailableItemCollection=Backbone.Collection.extend({model:a.Menus.AvailableItemModel,sort_key:"order",comparator:function(a){return-a.get(this.sort_key)},sortByField:function(a){this.sort_key=a,this.sort()}}),a.Menus.availableMenuItems=new a.Menus.AvailableItemCollection(a.Menus.data.availableMenuItems),a.Menus.insertAutoDraftPost=function(d){var e,f=c.Deferred();return e=b.ajax.post("customize-nav-menus-insert-auto-draft",{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",params:d}),e.done(function(b){b.post_id&&(a("nav_menus_created_posts").set(a("nav_menus_created_posts").get().concat([b.post_id])),"page"===d.post_type&&(a.section.has("static_front_page")&&a.section("static_front_page").activate(),a.control.each(function(a){var c;"dropdown-pages"===a.params.type&&(c=a.container.find('select[name^="_customize-dropdown-pages-"]'),c.append(new Option(d.post_title,b.post_id)))})),f.resolve(b))}),e.fail(function(a){var b=a||"";"undefined"!=typeof a.message&&(b=a.message),console.error(b),f.rejectWith(b)}),f.promise()},a.Menus.AvailableMenuItemsPanelView=b.Backbone.View.extend({el:"#available-menu-items",events:{"input #menu-items-search":"debounceSearch","keyup #menu-items-search":"debounceSearch","focus .menu-item-tpl":"focus","click .menu-item-tpl":"_submit","click #custom-menu-item-submit":"_submitLink","keypress #custom-menu-item-name":"_submitLink","click .new-content-item .add-content":"_submitNew","keypress .create-item-input":"_submitNew",keydown:"keyboardAccessible"},selected:null,currentMenuControl:null,debounceSearch:null,$search:null,$clearResults:null,searchTerm:"",rendered:!1,pages:{},sectionContent:"",loading:!1,addingNew:!1,initialize:function(){var b=this;a.panel.has("nav_menus")&&(this.$search=c("#menu-items-search"),this.$clearResults=this.$el.find(".clear-results"),this.sectionContent=this.$el.find(".available-menu-items-list"),this.debounceSearch=_.debounce(b.search,500),_.bindAll(this,"close"),c("#customize-controls, .customize-section-back").on("click keydown",function(a){var d=c(a.target).is(".item-delete, .item-delete *"),e=c(a.target).is(".add-new-menu-item, .add-new-menu-item *");!c("body").hasClass("adding-menu-items")||d||e||b.close()}),this.$clearResults.on("click",function(){b.$search.val("").focus().trigger("keyup")}),this.$el.on("input","#custom-menu-item-name.invalid, #custom-menu-item-url.invalid",function(){c(this).removeClass("invalid")}),a.panel("nav_menus").container.bind("expanded",function(){b.rendered||(b.initList(),b.rendered=!0)}),this.sectionContent.scroll(function(){var a=b.$el.find(".accordion-section.open .available-menu-items-list").prop("scrollHeight"),d=b.$el.find(".accordion-section.open").height();if(!b.loading&&c(this).scrollTop()>.75*a-d){var e=c(this).data("type"),f=c(this).data("object");"search"===e?b.searchTerm&&b.doSearch(b.pages.search):b.loadItems([{type:e,object:f}])}}),a.previewer.bind("url",this.close),b.delegateEvents())},search:function(a){var b=c("#available-menu-items-search"),d=c("#available-menu-items .accordion-section").not(b);a&&this.searchTerm!==a.target.value&&(""===a.target.value||b.hasClass("open")?""===a.target.value&&(b.removeClass("open"),d.show(),this.$clearResults.removeClass("is-visible")):(d.fadeOut(100),b.find(".accordion-section-content").slideDown("fast"),b.addClass("open"),this.$clearResults.addClass("is-visible")),this.searchTerm=a.target.value,this.pages.search=1,this.doSearch(1))},doSearch:function(d){var e,f=this,g=c("#available-menu-items-search"),h=g.find(".accordion-section-content"),i=b.template("available-menu-item");if(f.currentRequest&&f.currentRequest.abort(),!(d<0)){if(d>1)g.addClass("loading-more"),h.attr("aria-busy","true"),b.a11y.speak(a.Menus.data.l10n.itemsLoadingMore);else if(""===f.searchTerm)return h.html(""),void b.a11y.speak("");g.addClass("loading"),f.loading=!0,e=a.previewer.query({excludeCustomizedSaved:!0}),_.extend(e,{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",search:f.searchTerm,page:d}),f.currentRequest=b.ajax.post("search-available-menu-items-customizer",e),f.currentRequest.done(function(c){var e;1===d&&h.empty(),g.removeClass("loading loading-more"),h.attr("aria-busy","false"),g.addClass("open"),f.loading=!1,e=new a.Menus.AvailableItemCollection(c.items),f.collection.add(e.models),e.each(function(a){h.append(i(a.attributes))}),20>e.length?f.pages.search=-1:f.pages.search=f.pages.search+1,e&&d>1?b.a11y.speak(a.Menus.data.l10n.itemsFoundMore.replace("%d",e.length)):e&&1===d&&b.a11y.speak(a.Menus.data.l10n.itemsFound.replace("%d",e.length))}),f.currentRequest.fail(function(a){a.message&&(h.empty().append(c('<li class="nothing-found"></li>').text(a.message)),b.a11y.speak(a.message)),f.pages.search=-1}),f.currentRequest.always(function(){g.removeClass("loading loading-more"),h.attr("aria-busy","false"),f.loading=!1,f.currentRequest=null})}},initList:function(){var b=this;_.each(a.Menus.data.itemTypes,function(a){b.pages[a.type+":"+a.object]=0}),b.loadItems(a.Menus.data.itemTypes)},loadItems:function(d,e){var f,g,h,i,j=this,k=[],l={};i=b.template("available-menu-item"),f=_.isString(d)&&_.isString(e)?[{type:d,object:e}]:d,_.each(f,function(a){var b,d=a.type+":"+a.object;-1!==j.pages[d]&&(b=c("#available-menu-items-"+a.type+"-"+a.object),b.find(".accordion-section-title").addClass("loading"),l[d]=b,k.push({object:a.object,type:a.type,page:j.pages[d]}))}),0!==k.length&&(j.loading=!0,g=a.previewer.query({excludeCustomizedSaved:!0}),_.extend(g,{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",item_types:k}),h=b.ajax.post("load-available-menu-items-customizer",g),h.done(function(b){var c;_.each(b.items,function(b,d){return 0===b.length?(0===j.pages[d]&&l[d].find(".accordion-section-title").addClass("cannot-expand").removeClass("loading").find(".accordion-section-title > button").prop("tabIndex",-1),void(j.pages[d]=-1)):("post_type:page"!==d||l[d].hasClass("open")||l[d].find(".accordion-section-title > button").click(),b=new a.Menus.AvailableItemCollection(b),j.collection.add(b.models),c=l[d].find(".available-menu-items-list"),b.each(function(a){c.append(i(a.attributes))}),void(j.pages[d]+=1))})}),h.fail(function(a){"undefined"!=typeof console&&console.error&&console.error(a)}),h.always(function(){_.each(l,function(a){a.find(".accordion-section-title").removeClass("loading")}),j.loading=!1}))},itemSectionHeight:function(){var a,b,c,d,e;c=window.innerHeight,a=this.$el.find(".accordion-section:not( #available-menu-items-search ) .accordion-section-content"),b=this.$el.find('.accordion-section:not( #available-menu-items-search ) .available-menu-items-list:not(":only-child")'),d=46*(1+a.length)+14,e=c-d,120<e&&290>e&&(a.css("max-height",e),b.css("max-height",e-60))},select:function(a){this.selected=c(a),this.selected.siblings(".menu-item-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(c(a.currentTarget))},_submit:function(a){"keypress"===a.type&&13!==a.which&&32!==a.which||this.submit(c(a.currentTarget))},submit:function(a){var b,d;a||(a=this.selected),a&&this.currentMenuControl&&(this.select(a),b=c(this.selected).data("menu-item-id"),d=this.collection.findWhere({id:b}),d&&(this.currentMenuControl.addItemToMenu(d.attributes),c(a).find(".menu-item-handle").addClass("item-added")))},_submitLink:function(a){"keypress"===a.type&&13!==a.which||this.submitLink()},submitLink:function(){var b,d=c("#custom-menu-item-name"),e=c("#custom-menu-item-url");if(this.currentMenuControl){if(""===d.val())return void d.addClass("invalid");if(""===e.val()||"http://"===e.val())return void e.addClass("invalid");b={title:d.val(),url:e.val(),type:"custom",type_label:a.Menus.data.l10n.custom_label,object:"custom"},this.currentMenuControl.addItemToMenu(b),e.val("http://"),d.val("")}},_submitNew:function(a){var b;"keypress"===a.type&&13!==a.which||this.addingNew||(b=c(a.target).closest(".accordion-section"),this.submitNew(b))},submitNew:function(d){var e,f=this,g=d.find(".create-item-input"),h=g.val(),i=d.find(".available-menu-items-list"),j=i.data("type"),k=i.data("object"),l=i.data("type_label");if(this.currentMenuControl&&"post_type"===j){if(""===c.trim(g.val()))return g.addClass("invalid"),void g.focus();g.removeClass("invalid"),d.find(".accordion-section-title").addClass("loading"),f.addingNew=!0,g.attr("disabled","disabled"),e=a.Menus.insertAutoDraftPost({post_title:h,post_type:k}),e.done(function(e){var h,i,m;h=new a.Menus.AvailableItemModel({id:"post-"+e.post_id,title:g.val(),type:j,type_label:l,object:k,object_id:e.post_id,url:e.url}),f.currentMenuControl.addItemToMenu(h.attributes),a.Menus.availableMenuItemsPanel.collection.add(h),i=d.find(".available-menu-items-list"),m=c(b.template("available-menu-item")(h.attributes)),m.find(".menu-item-handle:first").addClass("item-added"),i.prepend(m),i.scrollTop(),g.val("").removeAttr("disabled"),f.addingNew=!1,d.find(".accordion-section-title").removeClass("loading")})}},open:function(a){this.currentMenuControl=a,this.itemSectionHeight(),c("body").addClass("adding-menu-items"),_(this.currentMenuControl.getMenuItemControls()).each(function(a){a.collapseForm()}),this.$el.find(".selected").removeClass("selected"),this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentMenuControl&&this.currentMenuControl.container.find(".add-new-menu-item").focus(),this.currentMenuControl=null,this.selected=null,c("body").removeClass("adding-menu-items"),c("#available-menu-items .menu-item-handle.item-added").removeClass("item-added"),this.$search.val("")},keyboardAccessible:function(a){var b=13===a.which,d=27===a.which,e=9===a.which&&a.shiftKey,f=c(a.target).is(this.$search);b&&!this.$search.val()||(f&&e?(this.currentMenuControl.container.find(".add-new-menu-item").focus(),a.preventDefault()):d&&this.close({returnFocus:!0}))}}),a.Menus.MenusPanel=a.Panel.extend({attachEvents:function(){a.Panel.prototype.attachEvents.call(this);var b=this,d=b.container.find(".panel-meta"),e=d.find(".customize-help-toggle"),f=d.find(".customize-panel-description"),g=c("#screen-options-wrap"),h=d.find(".customize-screen-options-toggle");h.on("click keydown",function(b){if(!a.utils.isKeydownButNotEnterEvent(b))return b.preventDefault(),f.not(":hidden")&&(f.slideUp("fast"),e.attr("aria-expanded","false")),"true"===h.attr("aria-expanded")?(h.attr("aria-expanded","false"),d.removeClass("open"),d.removeClass("active-menu-screen-options"),g.slideUp("fast")):(h.attr("aria-expanded","true"),d.addClass("open"),d.addClass("active-menu-screen-options"),g.slideDown("fast")),!1}),e.on("click keydown",function(b){a.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),"true"===h.attr("aria-expanded")&&(h.attr("aria-expanded","false"),e.attr("aria-expanded","true"),d.addClass("open"),d.removeClass("active-menu-screen-options"),g.slideUp("fast"),f.slideDown("fast")))})},ready:function(){var a=this;a.container.find(".hide-column-tog").click(function(){a.saveManageColumnsState()})},saveManageColumnsState:_.debounce(function(){var a=this;a._updateHiddenColumnsRequest&&a._updateHiddenColumnsRequest.abort(),a._updateHiddenColumnsRequest=b.ajax.post("hidden-columns",{hidden:a.hidden(),screenoptionnonce:c("#screenoptionnonce").val(),page:"nav-menus"}),a._updateHiddenColumnsRequest.always(function(){a._updateHiddenColumnsRequest=null})},2e3),checked:function(){},unchecked:function(){},hidden:function(){return c(".hide-column-tog").not(":checked").map(function(){var a=this.id;return a.substring(0,a.length-5)}).get().join(",")}}),a.Menus.MenuSection=a.Section.extend({initialize:function(b,d){var e=this;a.Section.prototype.initialize.call(e,b,d),e.deferred.initSortables=c.Deferred()},ready:function(){var b,d,e=this;if("undefined"==typeof e.params.menu_id)throw new Error("params.menu_id was not defined");e.active.validate=function(){return!!a.has(e.id)&&!!a(e.id).get()},e.populateControls(),e.navMenuLocationSettings={},e.assignedLocations=new a.Value([]),a.each(function(a,b){var c=b.match(/^nav_menu_locations\[(.+?)]/);c&&(e.navMenuLocationSettings[c[1]]=a,a.bind(function(){e.refreshAssignedLocations()}))}),e.assignedLocations.bind(function(a){e.updateAssignedLocationsInSectionTitle(a)}),e.refreshAssignedLocations(),a.bind("pane-contents-reflowed",function(){e.contentContainer.parent().length&&(e.container.find(".menu-item .menu-item-reorder-nav button").attr({tabindex:"0","aria-hidden":"false"}),e.container.find(".menu-item.move-up-disabled .menus-move-up").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-down-disabled .menus-move-down").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-left-disabled .menus-move-left").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-right-disabled .menus-move-right").attr({tabindex:"-1","aria-hidden":"true"}))}),d=function(){var a="field-"+c(this).val()+"-active";e.contentContainer.toggleClass(a,c(this).prop("checked"))},b=a.panel("nav_menus").contentContainer.find(".metabox-prefs:first").find(".hide-column-tog"),b.each(d),b.on("click",d)},populateControls:function(){var b,c,d,e,f,g=this;b=g.id+"[name]",e=a.control(b),e||(e=new a.controlConstructor.nav_menu_name(b,{params:{type:"nav_menu_name",content:'<li id="customize-control-'+g.id.replace("[","-").replace("]","")+'-name" class="customize-control customize-control-nav_menu_name"></li>',label:a.Menus.data.l10n.menuNameLabel,active:!0,section:g.id,priority:0,settings:{"default":g.id}}}),a.control.add(e.id,e),e.active.set(!0)),d=a.control(g.id),d||(d=new a.controlConstructor.nav_menu(g.id,{params:{type:"nav_menu",content:'<li id="customize-control-'+g.id.replace("[","-").replace("]","")+'" class="customize-control customize-control-nav_menu"></li>',section:g.id,priority:998,active:!0,settings:{"default":g.id},menu_id:g.params.menu_id}}),a.control.add(d.id,d),d.active.set(!0)),c=g.id+"[auto_add]",f=a.control(c),f||(f=new a.controlConstructor.nav_menu_auto_add(c,{params:{type:"nav_menu_auto_add",content:'<li id="customize-control-'+g.id.replace("[","-").replace("]","")+'-auto-add" class="customize-control customize-control-nav_menu_auto_add"></li>',label:"",active:!0,section:g.id,priority:999,settings:{"default":g.id}}}),a.control.add(f.id,f),f.active.set(!0))},refreshAssignedLocations:function(){var a=this,b=a.params.menu_id,c=[];_.each(a.navMenuLocationSettings,function(a,d){a()===b&&c.push(d)}),a.assignedLocations.set(c)},updateAssignedLocationsInSectionTitle:function(b){var d,e=this;d=e.container.find(".accordion-section-title:first"),d.find(".menu-in-location").remove(),_.each(b,function(b){var e,f;e=c('<span class="menu-in-location"></span>'),f=a.Menus.data.locationSlugMappedToName[b],e.text(a.Menus.data.l10n.menuLocation.replace("%s",f)),d.append(e)}),e.container.toggleClass("assigned-to-menu-location",0!==b.length)},onChangeExpanded:function(b,d){var e,f=this;b&&(wpNavMenu.menuList=f.contentContainer,wpNavMenu.targetList=wpNavMenu.menuList,c("#menu-to-edit").removeAttr("id"),wpNavMenu.menuList.attr("id","menu-to-edit").addClass("menu"),_.each(a.section(f.id).controls(),function(a){"nav_menu_item"===a.params.type&&a.actuallyEmbed()}),d.completeCallback&&(e=d.completeCallback),d.completeCallback=function(){"resolved"!==f.deferred.initSortables.state()&&(wpNavMenu.initSortables(),f.deferred.initSortables.resolve(wpNavMenu.menuList),a.control("nav_menu["+String(f.params.menu_id)+"]").reflowMenuItems()),_.isFunction(e)&&e()}),a.Section.prototype.onChangeExpanded.call(f,b,d)}}),a.Menus.NewMenuSection=a.Section.extend({attachEvents:function(){var a=this;this.container.on("click",".add-menu-toggle",function(){a.expanded()?a.collapse():a.expand()})},onChangeExpanded:function(a){var b=this,c=b.container.find(".add-menu-toggle"),d=b.contentContainer,e=b.headContainer.closest(".wp-full-overlay-sidebar-content");a?(c.addClass("open"),c.attr("aria-expanded","true"),d.slideDown("fast",function(){e.scrollTop(e.height())})):(c.removeClass("open"),c.attr("aria-expanded","false"),d.slideUp("fast"),d.find(".menu-name-field").removeClass("invalid"))},getContent:function(){return this.container.find("ul:first")}}),a.Menus.MenuLocationControl=a.Control.extend({initialize:function(b,c){var d=this,e=b.match(/^nav_menu_locations\[(.+?)]/);d.themeLocation=e[1],a.Control.prototype.initialize.call(d,b,c)},ready:function(){var b=this,c=/^nav_menu\[(-?\d+)]/;b.setting.validate=function(a){return parseInt(a,10)},b.container.find(".edit-menu").on("click",function(){var c=b.setting();a.section("nav_menu["+c+"]").focus()}),b.setting.bind("change",function(){0===b.setting()?b.container.find(".edit-menu").addClass("hidden"):b.container.find(".edit-menu").removeClass("hidden")}),a.bind("add",function(a){var d,f,g=a.id.match(c);g&&!1!==a()&&(f=g[1],d=new Option(e(a().name),f),b.container.find("select").append(d))}),a.bind("remove",function(a){var d,e=a.id.match(c);e&&(d=parseInt(e[1],10),b.setting()===d&&b.setting.set(""),b.container.find("option[value="+d+"]").remove())}),a.bind("change",function(a){var d,f=a.id.match(c);f&&(d=parseInt(f[1],10),!1===a()?(b.setting()===d&&b.setting.set(""),b.container.find("option[value="+d+"]").remove()):b.container.find("option[value="+d+"]").text(e(a().name)))})}}),a.Menus.MenuItemControl=a.Control.extend({initialize:function(b,d){var e=this;e.expanded=new a.Value(!1),e.expandedArgumentsQueue=[],e.expanded.bind(function(a){var b=e.expandedArgumentsQueue.shift();b=c.extend({},e.defaultExpandedArguments,b),e.onChangeExpanded(a,b)}),a.Control.prototype.initialize.call(e,b,d),e.active.validate=function(){var b,c=a.section(e.section());return b=!!c&&c.active()}},embed:function(){var b,c=this,d=c.section();d&&(b=a.section(d),(b&&b.expanded()||a.settings.autofocus.control===c.id)&&c.actuallyEmbed())},actuallyEmbed:function(){var a=this;"resolved"!==a.deferred.embedded.state()&&(a.renderContent(),a.deferred.embedded.resolve())},ready:function(){if("undefined"==typeof this.params.menu_item_id)throw new Error("params.menu_item_id was not defined");this._setupControlToggle(),this._setupReorderUI(),this._setupUpdateUI(),this._setupRemoveUI(),this._setupLinksUI(),this._setupTitleUI()},_setupControlToggle:function(){var a=this;this.container.find(".menu-item-handle").on("click",function(b){b.preventDefault(),b.stopPropagation();var c=a.getMenuControl();c.isReordering||c.isSorting||a.toggleForm()})},_setupReorderUI:function(){var a,d,e=this;a=b.template("menu-item-reorder-nav"),e.container.find(".item-controls").after(a),d=e.container.find(".menu-item-reorder-nav"),d.find(".menus-move-up, .menus-move-down, .menus-move-left, .menus-move-right").on("click",function(){var a=c(this);a.focus();var b=a.is(".menus-move-up"),d=a.is(".menus-move-down"),f=a.is(".menus-move-left"),g=a.is(".menus-move-right");b?e.moveUp():d?e.moveDown():f?e.moveLeft():g&&e.moveRight(),a.focus()})},_setupUpdateUI:function(){var b=this,c=b.setting();b.elements={},b.elements.url=new a.Element(b.container.find(".edit-menu-item-url")),b.elements.title=new a.Element(b.container.find(".edit-menu-item-title")),b.elements.attr_title=new a.Element(b.container.find(".edit-menu-item-attr-title")),b.elements.target=new a.Element(b.container.find(".edit-menu-item-target")),b.elements.classes=new a.Element(b.container.find(".edit-menu-item-classes")),b.elements.xfn=new a.Element(b.container.find(".edit-menu-item-xfn")),b.elements.description=new a.Element(b.container.find(".edit-menu-item-description")),_.each(b.elements,function(a,d){a.bind(function(c){a.element.is("input[type=checkbox]")&&(c=c?a.element.val():"");var e=b.setting();e&&e[d]!==c&&(e=_.clone(e),e[d]=c,b.setting.set(e))}),c&&("classes"!==d&&"xfn"!==d||!_.isArray(c[d])?a.set(c[d]):a.set(c[d].join(" ")))}),b.setting.bind(function(c,d){var e,f=b.params.menu_item_id,g=[],h=[];!1===c?(e=a.control("nav_menu["+String(d.nav_menu_term_id)+"]"),b.container.remove(),_.each(e.getMenuItemControls(),function(a){d.menu_item_parent===a.setting().menu_item_parent&&a.setting().position>d.position?g.push(a):a.setting().menu_item_parent===f&&h.push(a)}),_.each(g,function(a){var b=_.clone(a.setting());b.position+=h.length,a.setting.set(b)}),_.each(h,function(a,b){var c=_.clone(a.setting());c.position=d.position+b,c.menu_item_parent=d.menu_item_parent,a.setting.set(c)}),e.debouncedReflowMenuItems()):(_.each(c,function(a,d){b.elements[d]&&b.elements[d].set(c[d])}),b.container.find(".menu-item-data-parent-id").val(c.menu_item_parent),c.position===d.position&&c.menu_item_parent===d.menu_item_parent||b.getMenuControl().debouncedReflowMenuItems())})},_setupRemoveUI:function(){var d,e=this;d=e.container.find(".item-delete"),d.on("click",function(){var d,f,g,h=!0;c("body").hasClass("adding-menu-items")||(h=!1),f=e.container.nextAll(".customize-control-nav_menu_item:visible").first(),g=e.container.prevAll(".customize-control-nav_menu_item:visible").first(),d=f.length?f.find(!1===h?".item-edit":".item-delete").first():g.length?g.find(!1===h?".item-edit":".item-delete").first():e.container.nextAll(".customize-control-nav_menu").find(".add-new-menu-item").first(),e.container.slideUp(function(){e.setting.set(!1),b.a11y.speak(a.Menus.data.l10n.itemDeleted),d.focus()})})},_setupLinksUI:function(){var b;b=this.container.find("a.original-link"),b.on("click",function(b){b.preventDefault(),a.previewer.previewUrl(b.target.toString())})},_setupTitleUI:function(){var b=this;b.setting.bind(function(c){if(c){var d=b.container.find(".menu-item-title"),e=c.title||c.original_title||a.Menus.data.l10n.untitled;c._invalid&&(e=a.Menus.data.l10n.invalidTitleTpl.replace("%s",e)),c.title||c.original_title?d.text(e).removeClass("no-title"):d.text(e).addClass("no-title")}})},getDepth:function(){var b=this,c=b.setting(),d=0;if(!c)return 0;for(;c&&c.menu_item_parent&&(d+=1,b=a.control("nav_menu_item["+c.menu_item_parent+"]"));)c=b.setting();return d},renderContent:function(){var b,c=this,d=c.setting();c.params.title=d.title||"",c.params.depth=c.getDepth(),c.container.data("item-depth",c.params.depth),b=["menu-item","menu-item-depth-"+String(c.params.depth),"menu-item-"+d.object,"menu-item-edit-inactive"],d._invalid?(b.push("menu-item-invalid"),c.params.title=a.Menus.data.l10n.invalidTitleTpl.replace("%s",c.params.title)):"draft"===d.status&&(b.push("pending"),c.params.title=a.Menus.data.pendingTitleTpl.replace("%s",c.params.title)),c.params.el_classes=b.join(" "),c.params.item_type_label=d.type_label,c.params.item_type=d.type,c.params.url=d.url,c.params.target=d.target,c.params.attr_title=d.attr_title,c.params.classes=_.isArray(d.classes)?d.classes.join(" "):d.classes,c.params.attr_title=d.attr_title,c.params.xfn=d.xfn,c.params.description=d.description,c.params.parent=d.menu_item_parent,c.params.original_title=d.original_title||"",c.container.addClass(c.params.el_classes),a.Control.prototype.renderContent.call(c)},getMenuControl:function(){var b=this,c=b.setting();return c&&c.nav_menu_term_id?a.control("nav_menu["+c.nav_menu_term_id+"]"):null},expandControlSection:function(){var a=this.container.closest(".accordion-section");a.hasClass("open")||a.find(".accordion-section-title:first").trigger("click")},_toggleExpanded:a.Section.prototype._toggleExpanded,expand:a.Section.prototype.expand,expandForm:function(a){this.expand(a)},collapse:a.Section.prototype.collapse,collapseForm:function(a){this.collapse(a)},toggleForm:function(a,b){"undefined"==typeof a&&(a=!this.expanded()),a?this.expand(b):this.collapse(b)},onChangeExpanded:function(b,c){var d,e,f,g=this;return d=this.container,e=d.find(".menu-item-settings:first"),"undefined"==typeof b&&(b=!e.is(":visible")),e.is(":visible")===b?void(c&&c.completeCallback&&c.completeCallback()):void(b?(a.control.each(function(a){g.params.type===a.params.type&&g!==a&&a.collapseForm()}),f=function(){d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active"),g.container.trigger("expanded"),c&&c.completeCallback&&c.completeCallback()},d.find(".item-edit").attr("aria-expanded","true"),e.slideDown("fast",f),g.container.trigger("expand")):(f=function(){d.addClass("menu-item-edit-inactive").removeClass("menu-item-edit-active"),g.container.trigger("collapsed"),c&&c.completeCallback&&c.completeCallback()},g.container.trigger("collapse"),d.find(".item-edit").attr("aria-expanded","false"),e.slideUp("fast",f)))},focus:function(b){b=b||{};var c,d=this,e=b.completeCallback;c=function(){d.expandControlSection(),b.completeCallback=function(){var a;a=d.container.find(".menu-item-settings").find("input, select, textarea, button, object, a[href], [tabindex]").filter(":visible"),a.first().focus(),e&&e()},d.expandForm(b)},a.section.has(d.section())?a.section(d.section()).expand({completeCallback:c}):c()},moveUp:function(){this._changePosition(-1),b.a11y.speak(a.Menus.data.l10n.movedUp)},moveDown:function(){this._changePosition(1),b.a11y.speak(a.Menus.data.l10n.movedDown)},moveLeft:function(){this._changeDepth(-1),b.a11y.speak(a.Menus.data.l10n.movedLeft)},moveRight:function(){this._changeDepth(1),b.a11y.speak(a.Menus.data.l10n.movedRight)},_changePosition:function(a){var b,d,e=this,f=_.clone(e.setting()),g=[];if(1!==a&&-1!==a)throw new Error("Offset changes by 1 are only supported.");if(e.setting()){if(_(e.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===f.menu_item_parent&&g.push(a.setting)}),g.sort(function(a,b){return a().position-b().position}),d=_.indexOf(g,e.setting),-1===d)throw new Error("Expected setting to be among siblings.");0===d&&a<0||d===g.length-1&&a>0||(b=g[d+a],b&&b.set(c.extend(_.clone(b()),{position:f.position})),f.position+=a,e.setting.set(f))}},_changeDepth:function(b){if(1!==b&&-1!==b)throw new Error("Offset changes by 1 are only supported.");var d,e,f,g=this,h=_.clone(g.setting()),i=[];if(_(g.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===h.menu_item_parent&&i.push(a)}),i.sort(function(a,b){return a.setting().position-b.setting().position}),d=_.indexOf(i,g),-1===d)throw new Error("Expected control to be among siblings.");if(-1===b){if(!h.menu_item_parent)return;f=a.control("nav_menu_item["+h.menu_item_parent+"]"),_(i).chain().slice(d).each(function(a,b){a.setting.set(c.extend({},a.setting(),{menu_item_parent:g.params.menu_item_id,position:b}))}),_(g.getMenuControl().getMenuItemControls()).each(function(a){var b,d;d=a.setting().menu_item_parent===f.setting().menu_item_parent&&a.setting().position>f.setting().position,d&&(b=_.clone(a.setting()),a.setting.set(c.extend(b,{position:b.position+1})))}),h.position=f.setting().position+1,h.menu_item_parent=f.setting().menu_item_parent,g.setting.set(h)}else if(1===b){if(0===d)return;e=i[d-1],h.menu_item_parent=e.params.menu_item_id,h.position=0,_(g.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===h.menu_item_parent&&(h.position=Math.max(h.position,a.setting().position))}),h.position+=1,g.setting.set(h)}}}),a.Menus.MenuNameControl=a.Control.extend({ready:function(){var b=this,c=b.setting();b.active.validate=function(){var c,d=a.section(b.section());return c=!!d&&d.active()},b.nameElement=new a.Element(b.container.find(".menu-name-field")),b.nameElement.bind(function(a){var c=b.setting();c&&c.name!==a&&(c=_.clone(c),c.name=a,b.setting.set(c))}),c&&b.nameElement.set(c.name),b.setting.bind(function(a){a&&b.nameElement.set(a.name)})}}),a.Menus.MenuAutoAddControl=a.Control.extend({ready:function(){var b=this,c=b.setting();b.active.validate=function(){var c,d=a.section(b.section());return c=!!d&&d.active()},b.autoAddElement=new a.Element(b.container.find("input[type=checkbox].auto_add")),b.autoAddElement.bind(function(a){var c=b.setting();c&&c.name!==a&&(c=_.clone(c),c.auto_add=a,b.setting.set(c))}),c&&b.autoAddElement.set(c.auto_add),b.setting.bind(function(a){a&&b.autoAddElement.set(a.auto_add)})}}),a.Menus.MenuControl=a.Control.extend({ready:function(){var b,d,f,g=this,h=a.section(g.section()),i=g.params.menu_id,j=g.setting();if("undefined"==typeof this.params.menu_id)throw new Error("params.menu_id was not defined");g.active.validate=function(){var a;return a=!!h&&h.active()},g.$controlSection=h.headContainer,g.$sectionContent=g.container.closest(".accordion-section-content"),this._setupModel(),a.section(g.section(),function(a){a.deferred.initSortables.done(function(a){g._setupSortable(a)})}),this._setupAddition(),this._setupLocations(),this._setupTitle(),j&&(b=e(j.name),a.control.each(function(c){c.extended(a.controlConstructor.widget_form)&&"nav_menu"===c.params.widget_id_base&&(c.container.find(".nav-menu-widget-form-controls:first").show(),c.container.find(".nav-menu-widget-no-menus-message:first").hide(),f=c.container.find("select"),0===f.find("option[value="+String(i)+"]").length&&f.append(new Option(b,i)))}),d=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),d.find(".nav-menu-widget-form-controls:first").show(),d.find(".nav-menu-widget-no-menus-message:first").hide(),f=d.find(".widget-inside select:first"),0===f.find("option[value="+String(i)+"]").length&&f.append(new Option(b,i)))},_setupModel:function(){var b=this,c=b.params.menu_id;b.setting.bind(function(d){var f;!1===d?b._handleDeletion():(f=e(d.name),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var d=b.container.find("select");d.find("option[value="+String(c)+"]").text(f)}}))}),b.container.find(".menu-delete").on("click",function(a){a.stopPropagation(),a.preventDefault(),b.setting.set(!1)})},_setupSortable:function(b){var c=this;if(!b.is(c.$sectionContent))throw new Error("Unexpected menuList.");b.on("sortstart",function(){c.isSorting=!0}),b.on("sortstop",function(){setTimeout(function(){var b=c.$sectionContent.sortable("toArray"),d=[],e=0,f=10;c.isSorting=!1,c.$sectionContent.scrollLeft(0),_.each(b,function(b){var c,e,f;f=b.match(/^customize-control-nav_menu_item-(-?\d+)$/,""),f&&(c=parseInt(f[1],10),e=a.control("nav_menu_item["+String(c)+"]"),e&&d.push(e))}),_.each(d,function(a){if(!1!==a.setting()){var b=_.clone(a.setting());e+=1,f+=1,b.position=e,a.priority(f),b.menu_item_parent=parseInt(a.container.find(".menu-item-data-parent-id").val(),10),b.menu_item_parent||(b.menu_item_parent=0),a.setting.set(b)}})})}),c.isReordering=!1,this.container.find(".reorder-toggle").on("click",function(){c.toggleReordering(!c.isReordering)})},_setupAddition:function(){var b=this;this.container.find(".add-new-menu-item").on("click",function(d){b.$sectionContent.hasClass("reordering")||(c("body").hasClass("adding-menu-items")?(c(this).attr("aria-expanded","false"),a.Menus.availableMenuItemsPanel.close(),d.stopPropagation()):(c(this).attr("aria-expanded","true"),a.Menus.availableMenuItemsPanel.open(b)))})},_handleDeletion:function(){var d,e,f,g=this,h=g.params.menu_id,i=0;d=a.section(g.section()),e=function(){d.container.remove(),a.section.remove(d.id)},d&&d.expanded()?d.collapse({completeCallback:function(){e(),b.a11y.speak(a.Menus.data.l10n.menuDeleted),a.panel("nav_menus").focus()}}):e(),a.each(function(a){
+/^nav_menu\[/.test(a.id)&&!1!==a()&&(i+=1)}),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var c=b.container.find("select");c.val()===String(h)&&c.prop("selectedIndex",0).trigger("change"),b.container.find(".nav-menu-widget-form-controls:first").toggle(0!==i),b.container.find(".nav-menu-widget-no-menus-message:first").toggle(0===i),b.container.find("option[value="+String(h)+"]").remove()}}),f=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),f.find(".nav-menu-widget-form-controls:first").toggle(0!==i),f.find(".nav-menu-widget-no-menus-message:first").toggle(0===i),f.find("option[value="+String(h)+"]").remove()},_setupLocations:function(){var b=this;b.container.find(".assigned-menu-location").each(function(){var d,f,g=c(this),h=g.find("input[type=checkbox]"),i=a("nav_menu_locations["+h.data("location-id")+"]");f=function(b){var c=a("nav_menu["+String(b)+"]");b&&c&&c()?g.find(".theme-location-set").show().find("span").text(e(c().name)):g.find(".theme-location-set").hide()},d=new a.Element(h),d.set(i.get()===b.params.menu_id),h.on("change",function(){i.set(this.checked?b.params.menu_id:0)}),i.bind(function(a){d.set(a===b.params.menu_id),f(a)}),f(i.get())})},_setupTitle:function(){var b=this;b.setting.bind(function(d){if(d){var f=a.section(b.section()),g=b.params.menu_id,h=f.headContainer.find(".accordion-section-title"),i=f.contentContainer.find(".customize-section-title h3"),j=f.headContainer.find(".menu-in-location"),k=i.find(".customize-action"),l=e(d.name);h.text(l),j.length&&j.appendTo(h),i.text(l),k.length&&k.prependTo(i),a.control.each(function(a){/^nav_menu_locations\[/.test(a.id)&&a.container.find("option[value="+g+"]").text(l)}),f.contentContainer.find(".customize-control-checkbox input").each(function(){c(this).prop("checked")&&c(".current-menu-location-name-"+c(this).data("location-id")).text(l)})}})},toggleReordering:function(c){var d=this.container.find(".add-new-menu-item"),e=this.container.find(".reorder-toggle"),f=this.$sectionContent.find(".item-title");c=Boolean(c),c!==this.$sectionContent.hasClass("reordering")&&(this.isReordering=c,this.$sectionContent.toggleClass("reordering",c),this.$sectionContent.sortable(this.isReordering?"disable":"enable"),this.isReordering?(d.attr({tabindex:"-1","aria-hidden":"true"}),e.attr("aria-label",a.Menus.data.l10n.reorderLabelOff),b.a11y.speak(a.Menus.data.l10n.reorderModeOn),f.attr("aria-hidden","false")):(d.removeAttr("tabindex aria-hidden"),e.attr("aria-label",a.Menus.data.l10n.reorderLabelOn),b.a11y.speak(a.Menus.data.l10n.reorderModeOff),f.attr("aria-hidden","true")),c&&_(this.getMenuItemControls()).each(function(a){a.collapseForm()}))},getMenuItemControls:function(){var b=this,c=[],d=b.params.menu_id;return a.control.each(function(a){"nav_menu_item"===a.params.type&&a.setting()&&d===a.setting().nav_menu_term_id&&c.push(a)}),c},reflowMenuItems:function(){var a,b=this,c=b.getMenuItemControls();a=function(b){var c=[],d=b.currentParent;_.each(b.menuItemControls,function(a){d===a.setting().menu_item_parent&&c.push(a)}),c.sort(function(a,b){return a.setting().position-b.setting().position}),_.each(c,function(c){b.currentAbsolutePosition+=1,c.priority.set(b.currentAbsolutePosition),c.container.hasClass("menu-item-depth-"+String(b.currentDepth))||(_.each(c.container.prop("className").match(/menu-item-depth-\d+/g),function(a){c.container.removeClass(a)}),c.container.addClass("menu-item-depth-"+String(b.currentDepth))),c.container.data("item-depth",b.currentDepth),b.currentDepth+=1,b.currentParent=c.params.menu_item_id,a(b),b.currentDepth-=1,b.currentParent=d}),c.length&&(_(c).each(function(a){a.container.removeClass("move-up-disabled move-down-disabled move-left-disabled move-right-disabled"),0===b.currentDepth?a.container.addClass("move-left-disabled"):10===b.currentDepth&&a.container.addClass("move-right-disabled")}),c[0].container.addClass("move-up-disabled").addClass("move-right-disabled").toggleClass("move-down-disabled",1===c.length),c[c.length-1].container.addClass("move-down-disabled").toggleClass("move-up-disabled",1===c.length))},a({menuItemControls:c,currentParent:0,currentDepth:0,currentAbsolutePosition:0}),b.container.find(".reorder-toggle").toggle(c.length>1)},debouncedReflowMenuItems:_.debounce(function(){this.reflowMenuItems.apply(this,arguments)},0),addItemToMenu:function(d){var e,f,g,h,i,j=this,k=0,l=10;return _.each(j.getMenuItemControls(),function(a){!1!==a.setting()&&(l=Math.max(l,a.priority()),0===a.setting().menu_item_parent&&(k=Math.max(k,a.setting().position)))}),k+=1,l+=1,d=c.extend({},a.Menus.data.defaultSettingValues.nav_menu_item,d,{nav_menu_term_id:j.params.menu_id,original_title:d.title,position:k}),delete d.id,i=a.Menus.generatePlaceholderAutoIncrementId(),e="nav_menu_item["+String(i)+"]",f={type:"nav_menu_item",transport:a.Menus.data.settingTransport,previewer:a.previewer},g=a.create(e,e,{},f),g.set(d),h=new a.controlConstructor.nav_menu_item(e,{params:{type:"nav_menu_item",content:'<li id="customize-control-nav_menu_item-'+String(i)+'" class="customize-control customize-control-nav_menu_item"></li>',section:j.id,priority:l,active:!0,settings:{"default":e},menu_item_id:i},previewer:a.previewer}),a.control.add(e,h),g.preview(),j.debouncedReflowMenuItems(),b.a11y.speak(a.Menus.data.l10n.itemAdded),h}}),a.Menus.NewMenuControl=a.Control.extend({ready:function(){this._bindHandlers()},_bindHandlers:function(){var a=this,b=c("#customize-control-new_menu_name input"),d=c("#create-new-menu-submit");b.on("keydown",function(b){13===b.which&&a.submit()}),d.on("click",function(b){a.submit(),b.stopPropagation(),b.preventDefault()})},submit:function(){var d,f,g=this,h=g.container.closest(".accordion-section-new-menu"),i=h.find(".menu-name-field").first(),j=i.val(),k=a.Menus.generatePlaceholderAutoIncrementId();return j?(f="nav_menu["+String(k)+"]",a.create(f,f,{},{type:"nav_menu",transport:a.Menus.data.settingTransport,previewer:a.previewer}),a(f).set(c.extend({},a.Menus.data.defaultSettingValues.nav_menu,{name:j})),d=new a.Menus.MenuSection(f,{params:{id:f,panel:"nav_menus",title:e(j),customizeAction:a.Menus.data.l10n.customizingMenus,type:"nav_menu",priority:10,menu_id:k}}),a.section.add(f,d),i.val(""),i.removeClass("invalid"),b.a11y.speak(a.Menus.data.l10n.menuAdded),void a.section(f).focus()):(i.addClass("invalid"),void i.focus())}}),c.extend(a.controlConstructor,{nav_menu_location:a.Menus.MenuLocationControl,nav_menu_item:a.Menus.MenuItemControl,nav_menu:a.Menus.MenuControl,nav_menu_name:a.Menus.MenuNameControl,nav_menu_auto_add:a.Menus.MenuAutoAddControl,new_menu:a.Menus.NewMenuControl}),c.extend(a.panelConstructor,{nav_menus:a.Menus.MenusPanel}),c.extend(a.sectionConstructor,{nav_menu:a.Menus.MenuSection,new_menu:a.Menus.NewMenuSection}),a.bind("ready",function(){a.Menus.availableMenuItemsPanel=new a.Menus.AvailableMenuItemsPanelView({collection:a.Menus.availableMenuItems}),a.bind("saved",function(b){(b.nav_menu_updates||b.nav_menu_item_updates)&&a.Menus.applySavedData(b)}),a.state("changesetStatus").bind(function(b){"publish"===b&&(a("nav_menus_created_posts")._value=[])}),a.previewer.bind("focus-nav-menu-item-control",a.Menus.focusMenuItemControl)}),a.Menus.applySavedData=function(d){var e={},f={};_(d.nav_menu_updates).each(function(d){var f,g,h,i,j,k,l,m,n,o,p,q;if("inserted"===d.status){if(!d.previous_term_id)throw new Error("Expected previous_term_id");if(!d.term_id)throw new Error("Expected term_id");if(f="nav_menu["+String(d.previous_term_id)+"]",!a.has(f))throw new Error("Expected setting to exist: "+f);if(i=a(f),!a.section.has(f))throw new Error("Expected control to exist: "+f);if(m=a.section(f),l=i.get(),!l)throw new Error("Did not expect setting to be empty (deleted).");l=c.extend(_.clone(l),d.saved_value),e[d.previous_term_id]=d.term_id,g="nav_menu["+String(d.term_id)+"]",j=a.create(g,g,l,{type:"nav_menu",transport:a.Menus.data.settingTransport,previewer:a.previewer}),m.expanded()&&m.collapse(),n=new a.Menus.MenuSection(g,{params:{id:g,panel:"nav_menus",title:l.name,customizeAction:a.Menus.data.l10n.customizingMenus,type:"nav_menu",priority:m.priority.get(),active:!0,menu_id:d.term_id}}),a.section.add(g,n),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var c,e,f;c=b.container.find("select"),e=c.find("option[value="+String(d.previous_term_id)+"]"),f=c.find("option[value="+String(d.term_id)+"]"),f.prop("selected",e.prop("selected")),e.remove()}}),i.callbacks.disable(),i.set(!1),i.preview(),j.preview(),i._dirty=!1,m.container.remove(),a.section.remove(f),q=0,a.each(function(a){/^nav_menu\[/.test(a.id)&&!1!==a()&&(q+=1)}),p=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),p.find(".nav-menu-widget-form-controls:first").toggle(0!==q),p.find(".nav-menu-widget-no-menus-message:first").toggle(0===q),p.find("option[value="+String(d.previous_term_id)+"]").remove(),b.customize.control.each(function(a){/^nav_menu_locations\[/.test(a.id)&&a.container.find("option[value="+String(d.previous_term_id)+"]").remove()}),a.each(function(b){var c=a.state("saved").get();/^nav_menu_locations\[/.test(b.id)&&b.get()===d.previous_term_id&&(b.set(d.term_id),b._dirty=!1,a.state("saved").set(c),b.preview())}),m.expanded.get()&&n.expand()}else if("updated"===d.status){if(h="nav_menu["+String(d.term_id)+"]",!a.has(h))throw new Error("Expected setting to exist: "+h);k=a(h),_.isEqual(d.saved_value,k.get())||(o=a.state("saved").get(),k.set(d.saved_value),k._dirty=!1,a.state("saved").set(o))}}),_(d.nav_menu_item_updates).each(function(a){a.previous_post_id&&(f[a.previous_post_id]=a.post_id)}),_(d.nav_menu_item_updates).each(function(b){var c,d,g,h,i,j,k;if("inserted"===b.status){if(!b.previous_post_id)throw new Error("Expected previous_post_id");if(!b.post_id)throw new Error("Expected post_id");if(c="nav_menu_item["+String(b.previous_post_id)+"]",!a.has(c))throw new Error("Expected setting to exist: "+c);if(g=a(c),!a.control.has(c))throw new Error("Expected control to exist: "+c);if(j=a.control(c),i=g.get(),!i)throw new Error("Did not expect setting to be empty (deleted).");if(i=_.clone(i),i.menu_item_parent<0){if(!f[i.menu_item_parent])throw new Error("inserted ID for menu_item_parent not available");i.menu_item_parent=f[i.menu_item_parent]}e[i.nav_menu_term_id]&&(i.nav_menu_term_id=e[i.nav_menu_term_id]),d="nav_menu_item["+String(b.post_id)+"]",h=a.create(d,d,i,{type:"nav_menu_item",transport:a.Menus.data.settingTransport,previewer:a.previewer}),k=new a.controlConstructor.nav_menu_item(d,{params:{type:"nav_menu_item",content:'<li id="customize-control-nav_menu_item-'+String(b.post_id)+'" class="customize-control customize-control-nav_menu_item"></li>',menu_id:b.post_id,section:"nav_menu["+String(i.nav_menu_term_id)+"]",priority:j.priority.get(),active:!0,settings:{"default":d},menu_item_id:b.post_id},previewer:a.previewer}),j.container.remove(),a.control.remove(c),a.control.add(d,k),g.callbacks.disable(),g.set(!1),g.preview(),h.preview(),g._dirty=!1,k.container.toggleClass("menu-item-edit-inactive",j.container.hasClass("menu-item-edit-inactive"))}}),_.each(d.widget_nav_menu_updates,function(b,c){var d=a(c);d&&(d._value=b,d.preview())})},a.Menus.focusMenuItemControl=function(b){var c=a.Menus.getMenuItemControl(b);c&&c.focus()},a.Menus.getMenuControl=function(b){return a.control("nav_menu["+b+"]")},a.Menus.getMenuItemControl=function(b){return a.control(d(b))}}(wp.customize,wp,jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/customize-widgets.js b/wp-admin/js/customize-widgets.js
index 759802324..25c1eb5b7 100644
--- a/wp-admin/js/customize-widgets.js
+++ b/wp-admin/js/customize-widgets.js
@@ -70,8 +70,7 @@
 				this.search( this.terms );
 			}
 
-			// If search is blank, show all themes
-			// Useful for resetting the views when you clean the input
+			// If search is blank, set all the widgets as they matched the search to reset the views.
 			if ( this.terms === '' ) {
 				this.each( function ( widget ) {
 					widget.set( 'search_matched', true );
@@ -149,8 +148,6 @@
 		events: {
 			'input #widgets-search': 'search',
 			'keyup #widgets-search': 'search',
-			'change #widgets-search': 'search',
-			'search #widgets-search': 'search',
 			'focus .widget-tpl' : 'focus',
 			'click .widget-tpl' : '_submit',
 			'keypress .widget-tpl' : '_submit',
@@ -163,18 +160,25 @@
 		// Cache sidebar control which has opened panel
 		currentSidebarControl: null,
 		$search: null,
+		$clearResults: null,
+		searchMatchesCount: null,
 
 		initialize: function() {
 			var self = this;
 
 			this.$search = $( '#widgets-search' );
 
+			this.$clearResults = this.$el.find( '.clear-results' );
+
 			_.bindAll( this, 'close' );
 
 			this.listenTo( this.collection, 'change', this.updateList );
 
 			this.updateList();
 
+			// Set the initial search count to the number of available widgets.
+			this.searchMatchesCount = this.collection.length;
+
 			// If the available widgets panel is open and the customize controls are
 			// interacted with (i.e. available widgets panel is blurred) then close the
 			// available widgets panel. Also close on back button click.
@@ -185,6 +189,11 @@
 				}
 			} );
 
+			// Clear the search results and trigger a `keyup` event to fire a new search.
+			this.$clearResults.on( 'click', function() {
+				self.$search.val( '' ).focus().trigger( 'keyup' );
+			} );
+
 			// Close the panel if the URL in the preview changes
 			api.previewer.bind( 'url', this.close );
 		},
@@ -194,6 +203,10 @@
 			var firstVisible;
 
 			this.collection.doSearch( event.target.value );
+			// Update the search matches count.
+			this.updateSearchMatchesCount();
+			// Announce how many search results.
+			this.announceSearchMatches();
 
 			// Remove a widget from being selected if it is no longer visible
 			if ( this.selected && ! this.selected.is( ':visible' ) ) {
@@ -214,8 +227,38 @@
 					this.select( firstVisible );
 				}
 			}
+
+			// Toggle the clear search results button.
+			if ( '' !== event.target.value ) {
+				this.$clearResults.addClass( 'is-visible' );
+			} else if ( '' === event.target.value ) {
+				this.$clearResults.removeClass( 'is-visible' );
+			}
+
+			// Set a CSS class on the search container when there are no search results.
+			if ( ! this.searchMatchesCount ) {
+				this.$el.addClass( 'no-widgets-found' );
+			} else {
+				this.$el.removeClass( 'no-widgets-found' );
+			}
 		},
 
+		// Update the count of the available widgets that have the `search_matched` attribute.
+		updateSearchMatchesCount: function() {
+			this.searchMatchesCount = this.collection.where({ search_matched: true }).length;
+		},
+
+		// Send a message to the aria-live region to announce how many search results.
+		announceSearchMatches: _.debounce( function() {
+			var message = l10n.widgetsFound.replace( '%d', this.searchMatchesCount ) ;
+
+			if ( ! this.searchMatchesCount ) {
+				message = l10n.noWidgetsFound;
+			}
+
+			wp.a11y.speak( message );
+		}, 500 ),
+
 		// Changes visibility of available widgets
 		updateList: function() {
 			this.collection.each( function( widget ) {
@@ -835,7 +878,7 @@
 			$saveBtn = this.container.find( '.widget-control-save' );
 			$saveBtn.val( l10n.saveBtnLabel );
 			$saveBtn.attr( 'title', l10n.saveBtnTooltip );
-			$saveBtn.removeClass( 'button-primary' ).addClass( 'button-secondary' );
+			$saveBtn.removeClass( 'button-primary' );
 			$saveBtn.on( 'click', function( e ) {
 				e.preventDefault();
 				self.updateWidget( { disable_form: true } ); // @todo disable_form is unused?
@@ -1111,7 +1154,7 @@
 			params.action = 'update-widget';
 			params.wp_customize = 'on';
 			params.nonce = api.settings.nonce['update-widget'];
-			params.theme = api.settings.theme.stylesheet;
+			params.customize_theme = api.settings.theme.stylesheet;
 			params.customized = wp.customize.previewer.query().customized;
 
 			data = $.param( params );
@@ -1325,7 +1368,7 @@
 		 * @param {Object} args  merged on top of this.defaultActiveArguments
 		 */
 		onChangeExpanded: function ( expanded, args ) {
-			var self = this, $widget, $inside, complete, prevComplete;
+			var self = this, $widget, $inside, complete, prevComplete, expandControl;
 
 			self.embedWidgetControl(); // Make sure the outer form is embedded so that the expanded state can be set in the UI.
 			if ( expanded ) {
@@ -1345,11 +1388,7 @@
 			$widget = this.container.find( 'div.widget:first' );
 			$inside = $widget.find( '.widget-inside:first' );
 
-			if ( expanded ) {
-
-				if ( self.section() && api.section( self.section() ) ) {
-					self.expandControlSection();
-				}
+			expandControl = function() {
 
 				// Close all other widget controls before expanding this one
 				api.control.each( function( otherControl ) {
@@ -1379,6 +1418,16 @@
 
 				self.container.trigger( 'expand' );
 				self.container.addClass( 'expanding' );
+			};
+
+			if ( expanded ) {
+				if ( api.section.has( self.section() ) ) {
+					api.section( self.section() ).expand( {
+						completeCallback: expandControl
+					} );
+				} else {
+					expandControl();
+				}
 			} else {
 
 				complete = function() {
diff --git a/wp-admin/js/customize-widgets.min.js b/wp-admin/js/customize-widgets.min.js
index 0cbcb3583..a10ae207f 100644
--- a/wp-admin/js/customize-widgets.min.js
+++ b/wp-admin/js/customize-widgets.min.js
@@ -1 +1 @@
-!function(a,b){function c(a,b){function c(d){d||(a.expanded.unbind(c),b.focus())}a.focus(),a.expanded.bind(c)}function d(a){var b,c={number:null,id_base:null};return b=a.match(/^(.+)-(\d+)$/),b?(c.id_base=b[1],c.number=parseInt(b[2],10)):c.id_base=a,c}function e(a){var b,c=d(a);return b="widget_"+c.id_base,c.number&&(b+="["+c.number+"]"),b}if(a&&a.customize){var f,g=a.customize;g.Widgets=g.Widgets||{},g.Widgets.savedWidgetIds={},g.Widgets.data=_wpCustomizeWidgetsSettings||{},f=g.Widgets.data.l10n,delete g.Widgets.data.l10n,g.Widgets.WidgetModel=Backbone.Model.extend({id:null,temp_id:null,classname:null,control_tpl:null,description:null,is_disabled:null,is_multi:null,multi_number:null,name:null,id_base:null,transport:null,params:[],width:null,height:null,search_matched:!0}),g.Widgets.WidgetCollection=Backbone.Collection.extend({model:g.Widgets.WidgetModel,doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.each(function(a){a.set("search_matched",!0)}))},search:function(a){var b,c;a=a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),a=a.replace(/ /g,")(?=.*"),b=new RegExp("^(?=.*"+a+").+","i"),this.each(function(a){c=[a.get("name"),a.get("id"),a.get("description")].join(" "),a.set("search_matched",b.test(c))})}}),g.Widgets.availableWidgets=new g.Widgets.WidgetCollection(g.Widgets.data.availableWidgets),g.Widgets.SidebarModel=Backbone.Model.extend({after_title:null,after_widget:null,before_title:null,before_widget:null,"class":null,description:null,id:null,name:null,is_rendered:!1}),g.Widgets.SidebarCollection=Backbone.Collection.extend({model:g.Widgets.SidebarModel}),g.Widgets.registeredSidebars=new g.Widgets.SidebarCollection(g.Widgets.data.registeredSidebars),g.Widgets.AvailableWidgetsPanelView=a.Backbone.View.extend({el:"#available-widgets",events:{"input #widgets-search":"search","keyup #widgets-search":"search","change #widgets-search":"search","search #widgets-search":"search","focus .widget-tpl":"focus","click .widget-tpl":"_submit","keypress .widget-tpl":"_submit",keydown:"keyboardAccessible"},selected:null,currentSidebarControl:null,$search:null,initialize:function(){var a=this;this.$search=b("#widgets-search"),_.bindAll(this,"close"),this.listenTo(this.collection,"change",this.updateList),this.updateList(),b("#customize-controls, #available-widgets .customize-section-title").on("click keydown",function(c){var d=b(c.target).is(".add-new-widget, .add-new-widget *");b("body").hasClass("adding-widget")&&!d&&a.close()}),g.previewer.bind("url",this.close)},search:function(a){var b;this.collection.doSearch(a.target.value),this.selected&&!this.selected.is(":visible")&&(this.selected.removeClass("selected"),this.selected=null),this.selected&&!a.target.value&&(this.selected.removeClass("selected"),this.selected=null),!this.selected&&a.target.value&&(b=this.$el.find("> .widget-tpl:visible:first"),b.length&&this.select(b))},updateList:function(){this.collection.each(function(a){var c=b("#widget-tpl-"+a.id);c.toggle(a.get("search_matched")&&!a.get("is_disabled")),a.get("is_disabled")&&c.is(this.selected)&&(this.selected=null)})},select:function(a){this.selected=b(a),this.selected.siblings(".widget-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(b(a.currentTarget))},_submit:function(a){"keypress"===a.type&&13!==a.which&&32!==a.which||this.submit(b(a.currentTarget))},submit:function(a){var c,d,e;a||(a=this.selected),a&&this.currentSidebarControl&&(this.select(a),c=b(this.selected).data("widget-id"),d=this.collection.findWhere({id:c}),d&&(e=this.currentSidebarControl.addWidget(d.get("id_base")),e&&e.focus(),this.close()))},open:function(a){this.currentSidebarControl=a,_(this.currentSidebarControl.getWidgetFormControls()).each(function(a){a.params.is_wide&&a.collapseForm()}),b("body").addClass("adding-widget"),this.$el.find(".selected").removeClass("selected"),this.collection.doSearch(""),g.settings.browser.mobile||this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentSidebarControl&&this.currentSidebarControl.container.find(".add-new-widget").focus(),this.currentSidebarControl=null,this.selected=null,b("body").removeClass("adding-widget"),this.$search.val("")},keyboardAccessible:function(a){var c=13===a.which,d=27===a.which,e=40===a.which,f=38===a.which,g=9===a.which,h=a.shiftKey,i=null,j=this.$el.find("> .widget-tpl:visible:first"),k=this.$el.find("> .widget-tpl:visible:last"),l=b(a.target).is(this.$search),m=b(a.target).is(".widget-tpl:visible:last");return e||f?(e?l?i=j:this.selected&&0!==this.selected.nextAll(".widget-tpl:visible").length&&(i=this.selected.nextAll(".widget-tpl:visible:first")):f&&(l?i=k:this.selected&&0!==this.selected.prevAll(".widget-tpl:visible").length&&(i=this.selected.prevAll(".widget-tpl:visible:first"))),this.select(i),void(i?i.focus():this.$search.focus())):void(c&&!this.$search.val()||(c?this.submit():d&&this.close({returnFocus:!0}),this.currentSidebarControl&&g&&(h&&l||!h&&m)&&(this.currentSidebarControl.container.find(".add-new-widget").focus(),a.preventDefault())))}}),g.Widgets.formSyncHandlers={rss:function(a,c,d){var e=c.find(".widget-error:first"),f=b("<div>"+d+"</div>").find(".widget-error:first");e.length&&f.length?e.replaceWith(f):e.length?e.remove():f.length&&c.find(".widget-content:first").prepend(f)}},g.Widgets.WidgetControl=g.Control.extend({defaultExpandedArguments:{duration:"fast",completeCallback:b.noop},initialize:function(a,c){var d=this;d.widgetControlEmbedded=!1,d.widgetContentEmbedded=!1,d.expanded=new g.Value((!1)),d.expandedArgumentsQueue=[],d.expanded.bind(function(a){var c=d.expandedArgumentsQueue.shift();c=b.extend({},d.defaultExpandedArguments,c),d.onChangeExpanded(a,c)}),d.altNotice=!0,g.Control.prototype.initialize.call(d,a,c)},ready:function(){var a=this;a.section()?g.section(a.section(),function(b){var c=function(d){d&&(a.embedWidgetControl(),b.expanded.unbind(c))};b.expanded()?c(!0):b.expanded.bind(c)}):a.embedWidgetControl()},embedWidgetControl:function(){var a,c=this;c.widgetControlEmbedded||(c.widgetControlEmbedded=!0,a=b(c.params.widget_control),c.container.append(a),c._setupModel(),c._setupWideWidget(),c._setupControlToggle(),c._setupWidgetTitle(),c._setupReorderUI(),c._setupHighlightEffects(),c._setupUpdateUI(),c._setupRemoveUI())},embedWidgetContent:function(){var a,c=this;c.embedWidgetControl(),c.widgetContentEmbedded||(c.widgetContentEmbedded=!0,a=b(c.params.widget_content),c.container.find(".widget-content:first").append(a),b(document).trigger("widget-added",[c.container.find(".widget:first")]))},_setupModel:function(){var a,b=this;a=function(){g.Widgets.savedWidgetIds[b.params.widget_id]=!0},g.bind("ready",a),g.bind("saved",a),this._updateCount=0,this.isWidgetUpdating=!1,this.liveUpdateMode=!0,this.setting.bind(function(a,c){_(c).isEqual(a)||b.isWidgetUpdating||b.updateWidget({instance:a})})},_setupWideWidget:function(){var a,c,d,e,f,h=this;this.params.is_wide&&(a=this.container.find(".widget-inside"),c=a.find("> .form"),d=b(".wp-full-overlay-sidebar-content:first"),this.container.addClass("wide-widget-control"),this.container.find(".widget-content:first").css({"max-width":this.params.width,"min-height":this.params.height}),f=function(){var d,e=h.container.offset().top,f=b(window).height(),g=c.outerHeight();a.css("max-height",f),d=Math.max(0,Math.min(Math.max(e,0),f-g)),a.css("top",d)},e=b("#customize-theme-controls"),this.container.on("expand",function(){f(),d.on("scroll",f),b(window).on("resize",f),e.on("expanded collapsed",f)}),this.container.on("collapsed",function(){d.off("scroll",f),b(window).off("resize",f),e.off("expanded collapsed",f)}),g.each(function(a){0===a.id.indexOf("sidebars_widgets[")&&a.bind(function(){h.container.hasClass("expanded")&&f()})}))},_setupControlToggle:function(){var a,b=this;this.container.find(".widget-top").on("click",function(a){a.preventDefault();var c=b.getSidebarWidgetsControl();c.isReordering||b.expanded(!b.expanded())}),a=this.container.find(".widget-control-close"),a.on("click",function(a){a.preventDefault(),b.collapse(),b.container.find(".widget-top .widget-action:first").focus()})},_setupWidgetTitle:function(){var a,b=this;a=function(){var a=b.setting().title,c=b.container.find(".in-widget-title");a?c.text(": "+a):c.text("")},this.setting.bind(a),a()},_setupReorderUI:function(){var c,d,e,h,i,j=this;c=function(a){a.siblings(".selected").removeClass("selected"),a.addClass("selected");var b=a.data("id")===j.params.sidebar_id;j.container.find(".move-widget-btn").prop("disabled",b)},this.container.find(".widget-title-action").after(b(g.Widgets.data.tpl.widgetReorderNav)),i=_.template(g.Widgets.data.tpl.moveWidgetArea),d=b(i({sidebars:_(g.Widgets.registeredSidebars.toArray()).pluck("attributes")})),this.container.find(".widget-top").after(d),h=function(){var a,e=d.find("li"),f=0;a=e.filter(function(){return b(this).data("id")===j.params.sidebar_id}),e.each(function(){var d,e,h,i=b(this);d=i.data("id"),e=g.Widgets.registeredSidebars.get(d),h=e.get("is_rendered"),i.toggle(h),h&&(f+=1),i.hasClass("selected")&&!h&&c(a)}),f>1?j.container.find(".move-widget").show():j.container.find(".move-widget").hide()},h(),g.Widgets.registeredSidebars.on("change:is_rendered",h),e=this.container.find(".widget-reorder-nav"),e.find(".move-widget, .move-widget-down, .move-widget-up").each(function(){b(this).prepend(j.container.find(".widget-title").text()+": ")}).on("click keypress",function(c){if("keypress"!==c.type||13===c.which||32===c.which)if(b(this).focus(),b(this).is(".move-widget"))j.toggleWidgetMoveArea();else{var d=b(this).is(".move-widget-down"),e=b(this).is(".move-widget-up"),g=j.getWidgetSidebarPosition();if(e&&0===g||d&&g===j.getSidebarWidgetsControl().setting().length-1)return;e?(j.moveUp(),a.a11y.speak(f.widgetMovedUp)):(j.moveDown(),a.a11y.speak(f.widgetMovedDown)),b(this).focus()}}),this.container.find(".widget-area-select").on("click keypress","li",function(a){"keypress"===a.type&&13!==a.which&&32!==a.which||(a.preventDefault(),c(b(this)))}),this.container.find(".move-widget-btn").click(function(){j.getSidebarWidgetsControl().toggleReordering(!1);var a,b,c,d,e,f=j.params.sidebar_id,h=j.container.find(".widget-area-select li.selected").data("id");a=g("sidebars_widgets["+f+"]"),b=g("sidebars_widgets["+h+"]"),c=Array.prototype.slice.call(a()),d=Array.prototype.slice.call(b()),e=j.getWidgetSidebarPosition(),c.splice(e,1),d.push(j.params.widget_id),a(c),b(d),j.focus()})},_setupHighlightEffects:function(){var a=this;this.container.on("mouseenter click",function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)}),this.setting.bind(function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)})},_setupUpdateUI:function(){var a,c,d,e,h,i=this;a=this.container.find(".widget:first"),c=a.find(".widget-content:first"),d=this.container.find(".widget-control-save"),d.val(f.saveBtnLabel),d.attr("title",f.saveBtnTooltip),d.removeClass("button-primary").addClass("button-secondary"),d.on("click",function(a){a.preventDefault(),i.updateWidget({disable_form:!0})}),e=_.debounce(function(){i.updateWidget()},250),c.on("keydown","input",function(a){13===a.which&&(a.preventDefault(),i.updateWidget({ignoreActiveElement:!0}))}),c.on("change input propertychange",":input",function(a){i.liveUpdateMode&&("change"===a.type||this.checkValidity&&this.checkValidity())&&e()}),this.setting.previewer.channel.bind("synced",function(){i.container.removeClass("previewer-loading")}),g.previewer.bind("widget-updated",function(a){a===i.params.widget_id&&i.container.removeClass("previewer-loading")}),h=g.Widgets.formSyncHandlers[this.params.widget_id_base],h&&b(document).on("widget-synced",function(b,c){a.is(c)&&h.apply(document,arguments)})},onChangeActive:function(a,b){this.container.toggleClass("widget-rendered",a),b.completeCallback&&b.completeCallback()},_setupRemoveUI:function(){var a,b,c=this;a=this.container.find("a.widget-control-remove"),a.on("click",function(a){a.preventDefault();var b;b=c.container.next().is(".customize-control-widget_form")?c.container.next().find(".widget-action:first"):c.container.prev().is(".customize-control-widget_form")?c.container.prev().find(".widget-action:first"):c.container.next(".customize-control-sidebar_widgets").find(".add-new-widget:first"),c.container.slideUp(function(){var a,d,e=g.Widgets.getSidebarWidgetControlContainingWidget(c.params.widget_id);e&&(a=e.setting().slice(),d=_.indexOf(a,c.params.widget_id),-1!==d&&(a.splice(d,1),e.setting(a),b.focus()))})}),b=function(){a.text(f.removeBtnLabel),a.attr("title",f.removeBtnTooltip)},this.params.is_new?g.bind("saved",b):b()},_getInputs:function(a){return b(a).find(":input[name]")},_getInputsSignature:function(a){var c=_(a).map(function(a){var c,d=b(a);return c=d.is(":checkbox, :radio")?[d.attr("id"),d.attr("name"),d.prop("value")]:[d.attr("id"),d.attr("name")],c.join(",")});return c.join(";")},_getInputState:function(a){return a=b(a),a.is(":radio, :checkbox")?a.prop("checked"):a.is("select[multiple]")?a.find("option:selected").map(function(){return b(this).val()}).get():a.val()},_setInputState:function(a,c){a=b(a),a.is(":radio, :checkbox")?a.prop("checked",c):a.is("select[multiple]")?(c=b.isArray(c)?_.map(c,function(a){return String(a)}):[],a.find("option").each(function(){b(this).prop("selected",-1!==_.indexOf(c,String(this.value)))})):a.val(c)},getSidebarWidgetsControl:function(){var a,b;if(a="sidebars_widgets["+this.params.sidebar_id+"]",b=g.control(a))return b},updateWidget:function(c){var d,e,h,i,j,k,l,m,n,o,p,q=this;q.embedWidgetContent(),c=b.extend({instance:null,complete:null,ignoreActiveElement:!1},c),d=c.instance,e=c.complete,this._updateCount+=1,j=this._updateCount,h=this.container.find(".widget:first"),i=h.find(".widget-content:first"),i.find(".widget-error").remove(),this.container.addClass("widget-form-loading"),this.container.addClass("previewer-loading"),n=g.state("processing"),n(n()+1),this.liveUpdateMode||this.container.addClass("widget-form-disabled"),k={},k.action="update-widget",k.wp_customize="on",k.nonce=g.settings.nonce["update-widget"],k.theme=g.settings.theme.stylesheet,k.customized=a.customize.previewer.query().customized,l=b.param(k),m=this._getInputs(i),m.each(function(){b(this).data("state"+j,q._getInputState(this))}),l+=d?"&"+b.param({sanitized_widget_setting:JSON.stringify(d)}):"&"+m.serialize(),l+="&"+i.find("~ :input").serialize(),this._previousUpdateRequest&&this._previousUpdateRequest.abort(),o=b.post(a.ajax.settings.url,l),this._previousUpdateRequest=o,o.done(function(a){var d,k,l,n,o=!1;return"0"===a?(g.previewer.preview.iframe.hide(),void g.previewer.login().done(function(){q.updateWidget(c),g.previewer.preview.iframe.show()})):"-1"===a?void g.previewer.cheatin():void(a.success?(k=b("<div>"+a.data.form+"</div>"),l=q._getInputs(k),n=q._getInputsSignature(m)===q._getInputsSignature(l),n&&!q.liveUpdateMode&&(q.liveUpdateMode=!0,q.container.removeClass("widget-form-disabled"),q.container.find('input[name="savewidget"]').hide()),n&&q.liveUpdateMode?(m.each(function(a){var d,e,f,g=b(this),h=b(l[a]);d=g.data("state"+j),e=q._getInputState(h),g.data("sanitized",e),f=!_.isEqual(d,e)&&(c.ignoreActiveElement||!g.is(document.activeElement)),f&&q._setInputState(g,e)}),b(document).trigger("widget-synced",[h,a.data.form])):q.liveUpdateMode?(q.liveUpdateMode=!1,q.container.find('input[name="savewidget"]').show(),o=!0):(i.html(a.data.form),q.container.removeClass("widget-form-disabled"),b(document).trigger("widget-updated",[h])),p=!o&&!_(q.setting()).isEqual(a.data.instance),p?(q.isWidgetUpdating=!0,q.setting(a.data.instance),q.isWidgetUpdating=!1):q.container.removeClass("previewer-loading"),e&&e.call(q,null,{noChange:!p,ajaxFinished:!0})):(d=f.error,a.data&&a.data.message&&(d=a.data.message),e?e.call(q,d):i.prepend('<p class="widget-error"><strong>'+d+"</strong></p>")))}),o.fail(function(a,b){e&&e.call(q,b)}),o.always(function(){q.container.removeClass("widget-form-loading"),m.each(function(){b(this).removeData("state"+j)}),n(n()-1)})},expandControlSection:function(){g.Control.prototype.expand.call(this)},_toggleExpanded:g.Section.prototype._toggleExpanded,expand:g.Section.prototype.expand,expandForm:function(){this.expand()},collapse:g.Section.prototype.collapse,collapseForm:function(){this.collapse()},toggleForm:function(a){"undefined"==typeof a&&(a=!this.expanded()),this.expanded(a)},onChangeExpanded:function(a,b){var c,d,e,f,h=this;return h.embedWidgetControl(),a&&h.embedWidgetContent(),b.unchanged?void(a&&g.Control.prototype.expand.call(h,{completeCallback:b.completeCallback})):(c=this.container.find("div.widget:first"),d=c.find(".widget-inside:first"),void(a?(h.section()&&g.section(h.section())&&h.expandControlSection(),g.control.each(function(a){h.params.type===a.params.type&&h!==a&&a.collapse()}),e=function(){h.container.removeClass("expanding"),h.container.addClass("expanded"),h.container.trigger("expanded")},b.completeCallback&&(f=e,e=function(){f(),b.completeCallback()}),h.params.is_wide?d.fadeIn(b.duration,e):d.slideDown(b.duration,e),h.container.trigger("expand"),h.container.addClass("expanding")):(e=function(){h.container.removeClass("collapsing"),h.container.removeClass("expanded"),h.container.trigger("collapsed")},b.completeCallback&&(f=e,e=function(){f(),b.completeCallback()}),h.container.trigger("collapse"),h.container.addClass("collapsing"),h.params.is_wide?d.fadeOut(b.duration,e):d.slideUp(b.duration,function(){c.css({width:"",margin:""}),e()}))))},getWidgetSidebarPosition:function(){var a,b;if(a=this.getSidebarWidgetsControl().setting(),b=_.indexOf(a,this.params.widget_id),b!==-1)return b},moveUp:function(){this._moveWidgetByOne(-1)},moveDown:function(){this._moveWidgetByOne(1)},_moveWidgetByOne:function(a){var b,c,d,e;b=this.getWidgetSidebarPosition(),c=this.getSidebarWidgetsControl().setting,d=Array.prototype.slice.call(c()),e=d[b+a],d[b+a]=this.params.widget_id,d[b]=e,c(d)},toggleWidgetMoveArea:function(a){var c,d=this;c=this.container.find(".move-widget-area"),"undefined"==typeof a&&(a=!c.hasClass("active")),a&&(c.find(".selected").removeClass("selected"),c.find("li").filter(function(){return b(this).data("id")===d.params.sidebar_id}).addClass("selected"),this.container.find(".move-widget-btn").prop("disabled",!0)),c.toggleClass("active",a)},highlightSectionAndControl:function(){var a;a=this.container.is(":hidden")?this.container.closest(".control-section"):this.container,b(".highlighted").removeClass("highlighted"),a.addClass("highlighted"),setTimeout(function(){a.removeClass("highlighted")},500)}}),g.Widgets.WidgetsPanel=g.Panel.extend({ready:function(){var a=this;g.Panel.prototype.ready.call(a),a.deferred.embedded.done(function(){var c,d,e;c=a.container.find(".panel-meta"),d=b("<div></div>",{"class":"no-widget-areas-rendered-notice"}),d.append(b("<em></em>",{text:f.noAreasRendered})),c.append(d),e=function(){return 0===_.filter(a.sections(),function(a){return a.active()}).length},d.toggle(e()),g.previewer.deferred.active.done(function(){d.toggle(e())}),g.bind("pane-contents-reflowed",function(){var a="resolved"===g.previewer.deferred.active.state()?"fast":0;e()?d.slideDown(a):d.slideUp(a)})})},isContextuallyActive:function(){var a=this;return a.active()}}),g.Widgets.SidebarSection=g.Section.extend({ready:function(){var a,b=this;g.Section.prototype.ready.call(this),a=g.Widgets.registeredSidebars.get(b.params.sidebarId),b.active.bind(function(b){a.set("is_rendered",b)}),a.set("is_rendered",b.active())}}),g.Widgets.SidebarControl=g.Control.extend({ready:function(){this.$controlSection=this.container.closest(".control-section"),this.$sectionContent=this.container.closest(".accordion-section-content"),this._setupModel(),this._setupSortable(),this._setupAddition(),this._applyCardinalOrderClassNames()},_setupModel:function(){var a=this;this.setting.bind(function(c,e){var f,h,i;h=_(e).difference(c),c=_(c).filter(function(a){var b=d(a);return!!g.Widgets.availableWidgets.findWhere({id_base:b.id_base})}),f=_(c).map(function(b){var c=g.Widgets.getWidgetFormControlForWidget(b);return c||(c=a.addWidget(b)),c}),f.sort(function(a,b){var d=_.indexOf(c,a.params.widget_id),e=_.indexOf(c,b.params.widget_id);return d-e}),i=0,_(f).each(function(b){b.priority(i),b.section(a.section()),i+=1}),a.priority(i),a._applyCardinalOrderClassNames(),_(f).each(function(b){b.params.sidebar_id=a.params.sidebar_id}),_(h).each(function(c){setTimeout(function(){var e,f,h,i,j,k=!1;g.each(function(b){if(b.id!==a.setting.id&&0===b.id.indexOf("sidebars_widgets[")&&"sidebars_widgets[wp_inactive_widgets]"!==b.id){var d,e=b();d=_.indexOf(e,c),-1!==d&&(k=!0)}}),k||(e=g.Widgets.getWidgetFormControlForWidget(c),f=e&&b.contains(document,e.container[0])&&!b.contains(a.$sectionContent[0],e.container[0]),e&&!f&&(g.control.remove(e.id),e.container.remove()),g.Widgets.savedWidgetIds[c]&&(h=g.value("sidebars_widgets[wp_inactive_widgets]")().slice(),h.push(c),g.value("sidebars_widgets[wp_inactive_widgets]")(_(h).unique())),i=d(c).id_base,j=g.Widgets.availableWidgets.findWhere({id_base:i}),j&&!j.get("is_multi")&&j.set("is_disabled",!1))})})})},_setupSortable:function(){var a=this;this.isReordering=!1,this.$sectionContent.sortable({items:"> .customize-control-widget_form",handle:".widget-top",axis:"y",tolerance:"pointer",connectWith:".accordion-section-content:has(.customize-control-sidebar_widgets)",update:function(){var c,d=a.$sectionContent.sortable("toArray");c=b.map(d,function(a){return b("#"+a).find(":input[name=widget-id]").val()}),a.setting(c)}}),this.$controlSection.find(".accordion-section-title").droppable({accept:".customize-control-widget_form",over:function(){var b=g.section(a.section.get());b.expand({allowMultiple:!0,completeCallback:function(){g.section.each(function(a){a.container.find(".customize-control-sidebar_widgets").length&&a.container.find(".accordion-section-content:first").sortable("refreshPositions")})}})}}),this.container.find(".reorder-toggle").on("click",function(){a.toggleReordering(!a.isReordering)})},_setupAddition:function(){var a=this;this.container.find(".add-new-widget").on("click",function(){var c=b(this);a.$sectionContent.hasClass("reordering")||(b("body").hasClass("adding-widget")?(c.attr("aria-expanded","false"),g.Widgets.availableWidgetsPanel.close()):(c.attr("aria-expanded","true"),g.Widgets.availableWidgetsPanel.open(a)))})},_applyCardinalOrderClassNames:function(){var a=[];return _.each(this.setting(),function(b){var c=g.Widgets.getWidgetFormControlForWidget(b);c&&a.push(c)}),0===a.length||1===g.Widgets.registeredSidebars.length&&a.length<=1?void this.container.find(".reorder-toggle").hide():(this.container.find(".reorder-toggle").show(),b(a).each(function(){b(this.container).removeClass("first-widget").removeClass("last-widget").find(".move-widget-down, .move-widget-up").prop("tabIndex",0)}),_.first(a).container.addClass("first-widget").find(".move-widget-up").prop("tabIndex",-1),void _.last(a).container.addClass("last-widget").find(".move-widget-down").prop("tabIndex",-1))},toggleReordering:function(b){var c=this.$sectionContent.find(".add-new-widget"),d=this.container.find(".reorder-toggle"),e=this.$sectionContent.find(".widget-title");b=Boolean(b),b!==this.$sectionContent.hasClass("reordering")&&(this.isReordering=b,this.$sectionContent.toggleClass("reordering",b),b?(_(this.getWidgetFormControls()).each(function(a){a.collapse()}),c.attr({tabindex:"-1","aria-hidden":"true"}),d.attr("aria-label",f.reorderLabelOff),a.a11y.speak(f.reorderModeOn),e.attr("aria-hidden","true")):(c.removeAttr("tabindex aria-hidden"),d.attr("aria-label",f.reorderLabelOn),a.a11y.speak(f.reorderModeOff),e.attr("aria-hidden","false")))},getWidgetFormControls:function(){var a=[];return _(this.setting()).each(function(b){var c=e(b),d=g.control(c);d&&a.push(d)}),a},addWidget:function(a){var c,e,f,h,i,j,k,l,m,n,o=this,p="widget_form",q=d(a),r=q.number,s=q.id_base,t=g.Widgets.availableWidgets.findWhere({id_base:s});return!!t&&(!(r&&!t.get("is_multi"))&&(t.get("is_multi")&&!r&&(t.set("multi_number",t.get("multi_number")+1),r=t.get("multi_number")),c=b.trim(b("#widget-tpl-"+t.get("id")).html()),t.get("is_multi")?c=c.replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,r)}):t.set("is_disabled",!0),e=b(c),f=b("<li/>").addClass("customize-control").addClass("customize-control-"+p).append(e),f.find("> .widget-icon").remove(),t.get("is_multi")&&(f.find('input[name="widget_number"]').val(r),f.find('input[name="multi_number"]').val(r)),a=f.find('[name="widget-id"]').val(),f.hide(),i="widget_"+t.get("id_base"),t.get("is_multi")&&(i+="["+r+"]"),f.attr("id","customize-control-"+i.replace(/\]/g,"").replace(/\[/g,"-")),j=g.has(i),j||(m={transport:g.Widgets.data.selectiveRefreshableWidgets[t.get("id_base")]?"postMessage":"refresh",previewer:this.setting.previewer},n=g.create(i,i,"",m),n.set({})),h=g.controlConstructor[p],k=new h(i,{params:{settings:{"default":i},content:f,sidebar_id:o.params.sidebar_id,widget_id:a,widget_id_base:t.get("id_base"),type:p,is_new:!j,width:t.get("width"),height:t.get("height"),is_wide:t.get("is_wide"),active:!0},previewer:o.setting.previewer}),g.control.add(i,k),g.each(function(b){if(b.id!==o.setting.id&&0===b.id.indexOf("sidebars_widgets[")){var c=b().slice(),d=_.indexOf(c,a);-1!==d&&(c.splice(d),b(c))}}),l=this.setting().slice(),-1===_.indexOf(l,a)&&(l.push(a),this.setting(l)),f.slideDown(function(){j&&k.updateWidget({instance:k.setting()})}),k))}}),b.extend(g.panelConstructor,{widgets:g.Widgets.WidgetsPanel}),b.extend(g.sectionConstructor,{sidebar:g.Widgets.SidebarSection}),b.extend(g.controlConstructor,{widget_form:g.Widgets.WidgetControl,sidebar_widgets:g.Widgets.SidebarControl}),g.bind("ready",function(){g.Widgets.availableWidgetsPanel=new g.Widgets.AvailableWidgetsPanelView({collection:g.Widgets.availableWidgets}),g.previewer.bind("highlight-widget-control",g.Widgets.highlightWidgetFormControl),g.previewer.bind("focus-widget-control",g.Widgets.focusWidgetFormControl)}),g.Widgets.highlightWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.highlightSectionAndControl()},g.Widgets.focusWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.focus()},g.Widgets.getSidebarWidgetControlContainingWidget=function(a){var b=null;return g.control.each(function(c){"sidebar_widgets"===c.params.type&&-1!==_.indexOf(c.setting(),a)&&(b=c)}),b},g.Widgets.getWidgetFormControlForWidget=function(a){var b=null;return g.control.each(function(c){"widget_form"===c.params.type&&c.params.widget_id===a&&(b=c)}),b},b(document).on("widget-added",function(a,b){var e,f,h,i;e=d(b.find("> .widget-inside > .form > .widget-id").val()),"nav_menu"===e.id_base&&(f=g.control("widget_nav_menu["+String(e.number)+"]"),f&&(h=b.find('select[name*="nav_menu"]'),i=b.find(".edit-selected-nav-menu > button"),0!==h.length&&0!==i.length&&(h.on("change",function(){g.section.has("nav_menu["+h.val()+"]")?i.parent().show():i.parent().hide()}),i.on("click",function(){var a=g.section("nav_menu["+h.val()+"]");a&&c(a,f)}))))})}}(window.wp,jQuery);
\ No newline at end of file
+!function(a,b){function c(a,b){function c(d){d||(a.expanded.unbind(c),b.focus())}a.focus(),a.expanded.bind(c)}function d(a){var b,c={number:null,id_base:null};return b=a.match(/^(.+)-(\d+)$/),b?(c.id_base=b[1],c.number=parseInt(b[2],10)):c.id_base=a,c}function e(a){var b,c=d(a);return b="widget_"+c.id_base,c.number&&(b+="["+c.number+"]"),b}if(a&&a.customize){var f,g=a.customize;g.Widgets=g.Widgets||{},g.Widgets.savedWidgetIds={},g.Widgets.data=_wpCustomizeWidgetsSettings||{},f=g.Widgets.data.l10n,delete g.Widgets.data.l10n,g.Widgets.WidgetModel=Backbone.Model.extend({id:null,temp_id:null,classname:null,control_tpl:null,description:null,is_disabled:null,is_multi:null,multi_number:null,name:null,id_base:null,transport:null,params:[],width:null,height:null,search_matched:!0}),g.Widgets.WidgetCollection=Backbone.Collection.extend({model:g.Widgets.WidgetModel,doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.each(function(a){a.set("search_matched",!0)}))},search:function(a){var b,c;a=a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),a=a.replace(/ /g,")(?=.*"),b=new RegExp("^(?=.*"+a+").+","i"),this.each(function(a){c=[a.get("name"),a.get("id"),a.get("description")].join(" "),a.set("search_matched",b.test(c))})}}),g.Widgets.availableWidgets=new g.Widgets.WidgetCollection(g.Widgets.data.availableWidgets),g.Widgets.SidebarModel=Backbone.Model.extend({after_title:null,after_widget:null,before_title:null,before_widget:null,"class":null,description:null,id:null,name:null,is_rendered:!1}),g.Widgets.SidebarCollection=Backbone.Collection.extend({model:g.Widgets.SidebarModel}),g.Widgets.registeredSidebars=new g.Widgets.SidebarCollection(g.Widgets.data.registeredSidebars),g.Widgets.AvailableWidgetsPanelView=a.Backbone.View.extend({el:"#available-widgets",events:{"input #widgets-search":"search","keyup #widgets-search":"search","focus .widget-tpl":"focus","click .widget-tpl":"_submit","keypress .widget-tpl":"_submit",keydown:"keyboardAccessible"},selected:null,currentSidebarControl:null,$search:null,$clearResults:null,searchMatchesCount:null,initialize:function(){var a=this;this.$search=b("#widgets-search"),this.$clearResults=this.$el.find(".clear-results"),_.bindAll(this,"close"),this.listenTo(this.collection,"change",this.updateList),this.updateList(),this.searchMatchesCount=this.collection.length,b("#customize-controls, #available-widgets .customize-section-title").on("click keydown",function(c){var d=b(c.target).is(".add-new-widget, .add-new-widget *");b("body").hasClass("adding-widget")&&!d&&a.close()}),this.$clearResults.on("click",function(){a.$search.val("").focus().trigger("keyup")}),g.previewer.bind("url",this.close)},search:function(a){var b;this.collection.doSearch(a.target.value),this.updateSearchMatchesCount(),this.announceSearchMatches(),this.selected&&!this.selected.is(":visible")&&(this.selected.removeClass("selected"),this.selected=null),this.selected&&!a.target.value&&(this.selected.removeClass("selected"),this.selected=null),!this.selected&&a.target.value&&(b=this.$el.find("> .widget-tpl:visible:first"),b.length&&this.select(b)),""!==a.target.value?this.$clearResults.addClass("is-visible"):""===a.target.value&&this.$clearResults.removeClass("is-visible"),this.searchMatchesCount?this.$el.removeClass("no-widgets-found"):this.$el.addClass("no-widgets-found")},updateSearchMatchesCount:function(){this.searchMatchesCount=this.collection.where({search_matched:!0}).length},announceSearchMatches:_.debounce(function(){var b=f.widgetsFound.replace("%d",this.searchMatchesCount);this.searchMatchesCount||(b=f.noWidgetsFound),a.a11y.speak(b)},500),updateList:function(){this.collection.each(function(a){var c=b("#widget-tpl-"+a.id);c.toggle(a.get("search_matched")&&!a.get("is_disabled")),a.get("is_disabled")&&c.is(this.selected)&&(this.selected=null)})},select:function(a){this.selected=b(a),this.selected.siblings(".widget-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(b(a.currentTarget))},_submit:function(a){"keypress"===a.type&&13!==a.which&&32!==a.which||this.submit(b(a.currentTarget))},submit:function(a){var c,d,e;a||(a=this.selected),a&&this.currentSidebarControl&&(this.select(a),c=b(this.selected).data("widget-id"),d=this.collection.findWhere({id:c}),d&&(e=this.currentSidebarControl.addWidget(d.get("id_base")),e&&e.focus(),this.close()))},open:function(a){this.currentSidebarControl=a,_(this.currentSidebarControl.getWidgetFormControls()).each(function(a){a.params.is_wide&&a.collapseForm()}),b("body").addClass("adding-widget"),this.$el.find(".selected").removeClass("selected"),this.collection.doSearch(""),g.settings.browser.mobile||this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentSidebarControl&&this.currentSidebarControl.container.find(".add-new-widget").focus(),this.currentSidebarControl=null,this.selected=null,b("body").removeClass("adding-widget"),this.$search.val("")},keyboardAccessible:function(a){var c=13===a.which,d=27===a.which,e=40===a.which,f=38===a.which,g=9===a.which,h=a.shiftKey,i=null,j=this.$el.find("> .widget-tpl:visible:first"),k=this.$el.find("> .widget-tpl:visible:last"),l=b(a.target).is(this.$search),m=b(a.target).is(".widget-tpl:visible:last");return e||f?(e?l?i=j:this.selected&&0!==this.selected.nextAll(".widget-tpl:visible").length&&(i=this.selected.nextAll(".widget-tpl:visible:first")):f&&(l?i=k:this.selected&&0!==this.selected.prevAll(".widget-tpl:visible").length&&(i=this.selected.prevAll(".widget-tpl:visible:first"))),this.select(i),void(i?i.focus():this.$search.focus())):void(c&&!this.$search.val()||(c?this.submit():d&&this.close({returnFocus:!0}),this.currentSidebarControl&&g&&(h&&l||!h&&m)&&(this.currentSidebarControl.container.find(".add-new-widget").focus(),a.preventDefault())))}}),g.Widgets.formSyncHandlers={rss:function(a,c,d){var e=c.find(".widget-error:first"),f=b("<div>"+d+"</div>").find(".widget-error:first");e.length&&f.length?e.replaceWith(f):e.length?e.remove():f.length&&c.find(".widget-content:first").prepend(f)}},g.Widgets.WidgetControl=g.Control.extend({defaultExpandedArguments:{duration:"fast",completeCallback:b.noop},initialize:function(a,c){var d=this;d.widgetControlEmbedded=!1,d.widgetContentEmbedded=!1,d.expanded=new g.Value(!1),d.expandedArgumentsQueue=[],d.expanded.bind(function(a){var c=d.expandedArgumentsQueue.shift();c=b.extend({},d.defaultExpandedArguments,c),d.onChangeExpanded(a,c)}),d.altNotice=!0,g.Control.prototype.initialize.call(d,a,c)},ready:function(){var a=this;a.section()?g.section(a.section(),function(b){var c=function(d){d&&(a.embedWidgetControl(),b.expanded.unbind(c))};b.expanded()?c(!0):b.expanded.bind(c)}):a.embedWidgetControl()},embedWidgetControl:function(){var a,c=this;c.widgetControlEmbedded||(c.widgetControlEmbedded=!0,a=b(c.params.widget_control),c.container.append(a),c._setupModel(),c._setupWideWidget(),c._setupControlToggle(),c._setupWidgetTitle(),c._setupReorderUI(),c._setupHighlightEffects(),c._setupUpdateUI(),c._setupRemoveUI())},embedWidgetContent:function(){var a,c=this;c.embedWidgetControl(),c.widgetContentEmbedded||(c.widgetContentEmbedded=!0,a=b(c.params.widget_content),c.container.find(".widget-content:first").append(a),b(document).trigger("widget-added",[c.container.find(".widget:first")]))},_setupModel:function(){var a,b=this;a=function(){g.Widgets.savedWidgetIds[b.params.widget_id]=!0},g.bind("ready",a),g.bind("saved",a),this._updateCount=0,this.isWidgetUpdating=!1,this.liveUpdateMode=!0,this.setting.bind(function(a,c){_(c).isEqual(a)||b.isWidgetUpdating||b.updateWidget({instance:a})})},_setupWideWidget:function(){var a,c,d,e,f,h=this;this.params.is_wide&&(a=this.container.find(".widget-inside"),c=a.find("> .form"),d=b(".wp-full-overlay-sidebar-content:first"),this.container.addClass("wide-widget-control"),this.container.find(".widget-content:first").css({"max-width":this.params.width,"min-height":this.params.height}),f=function(){var d,e=h.container.offset().top,f=b(window).height(),g=c.outerHeight();a.css("max-height",f),d=Math.max(0,Math.min(Math.max(e,0),f-g)),a.css("top",d)},e=b("#customize-theme-controls"),this.container.on("expand",function(){f(),d.on("scroll",f),b(window).on("resize",f),e.on("expanded collapsed",f)}),this.container.on("collapsed",function(){d.off("scroll",f),b(window).off("resize",f),e.off("expanded collapsed",f)}),g.each(function(a){0===a.id.indexOf("sidebars_widgets[")&&a.bind(function(){h.container.hasClass("expanded")&&f()})}))},_setupControlToggle:function(){var a,b=this;this.container.find(".widget-top").on("click",function(a){a.preventDefault();var c=b.getSidebarWidgetsControl();c.isReordering||b.expanded(!b.expanded())}),a=this.container.find(".widget-control-close"),a.on("click",function(a){a.preventDefault(),b.collapse(),b.container.find(".widget-top .widget-action:first").focus()})},_setupWidgetTitle:function(){var a,b=this;a=function(){var a=b.setting().title,c=b.container.find(".in-widget-title");a?c.text(": "+a):c.text("")},this.setting.bind(a),a()},_setupReorderUI:function(){var c,d,e,h,i,j=this;c=function(a){a.siblings(".selected").removeClass("selected"),a.addClass("selected");var b=a.data("id")===j.params.sidebar_id;j.container.find(".move-widget-btn").prop("disabled",b)},this.container.find(".widget-title-action").after(b(g.Widgets.data.tpl.widgetReorderNav)),i=_.template(g.Widgets.data.tpl.moveWidgetArea),d=b(i({sidebars:_(g.Widgets.registeredSidebars.toArray()).pluck("attributes")})),this.container.find(".widget-top").after(d),h=function(){var a,e=d.find("li"),f=0;a=e.filter(function(){return b(this).data("id")===j.params.sidebar_id}),e.each(function(){var d,e,h,i=b(this);d=i.data("id"),e=g.Widgets.registeredSidebars.get(d),h=e.get("is_rendered"),i.toggle(h),h&&(f+=1),i.hasClass("selected")&&!h&&c(a)}),f>1?j.container.find(".move-widget").show():j.container.find(".move-widget").hide()},h(),g.Widgets.registeredSidebars.on("change:is_rendered",h),e=this.container.find(".widget-reorder-nav"),e.find(".move-widget, .move-widget-down, .move-widget-up").each(function(){b(this).prepend(j.container.find(".widget-title").text()+": ")}).on("click keypress",function(c){if("keypress"!==c.type||13===c.which||32===c.which)if(b(this).focus(),b(this).is(".move-widget"))j.toggleWidgetMoveArea();else{var d=b(this).is(".move-widget-down"),e=b(this).is(".move-widget-up"),g=j.getWidgetSidebarPosition();if(e&&0===g||d&&g===j.getSidebarWidgetsControl().setting().length-1)return;e?(j.moveUp(),a.a11y.speak(f.widgetMovedUp)):(j.moveDown(),a.a11y.speak(f.widgetMovedDown)),b(this).focus()}}),this.container.find(".widget-area-select").on("click keypress","li",function(a){"keypress"===a.type&&13!==a.which&&32!==a.which||(a.preventDefault(),c(b(this)))}),this.container.find(".move-widget-btn").click(function(){j.getSidebarWidgetsControl().toggleReordering(!1);var a,b,c,d,e,f=j.params.sidebar_id,h=j.container.find(".widget-area-select li.selected").data("id");a=g("sidebars_widgets["+f+"]"),b=g("sidebars_widgets["+h+"]"),c=Array.prototype.slice.call(a()),d=Array.prototype.slice.call(b()),e=j.getWidgetSidebarPosition(),c.splice(e,1),d.push(j.params.widget_id),a(c),b(d),j.focus()})},_setupHighlightEffects:function(){var a=this;this.container.on("mouseenter click",function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)}),this.setting.bind(function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)})},_setupUpdateUI:function(){var a,c,d,e,h,i=this;a=this.container.find(".widget:first"),c=a.find(".widget-content:first"),d=this.container.find(".widget-control-save"),d.val(f.saveBtnLabel),d.attr("title",f.saveBtnTooltip),d.removeClass("button-primary"),d.on("click",function(a){a.preventDefault(),i.updateWidget({disable_form:!0})}),e=_.debounce(function(){i.updateWidget()},250),c.on("keydown","input",function(a){13===a.which&&(a.preventDefault(),i.updateWidget({ignoreActiveElement:!0}))}),c.on("change input propertychange",":input",function(a){i.liveUpdateMode&&("change"===a.type||this.checkValidity&&this.checkValidity())&&e()}),this.setting.previewer.channel.bind("synced",function(){i.container.removeClass("previewer-loading")}),g.previewer.bind("widget-updated",function(a){a===i.params.widget_id&&i.container.removeClass("previewer-loading")}),h=g.Widgets.formSyncHandlers[this.params.widget_id_base],h&&b(document).on("widget-synced",function(b,c){a.is(c)&&h.apply(document,arguments)})},onChangeActive:function(a,b){this.container.toggleClass("widget-rendered",a),b.completeCallback&&b.completeCallback()},_setupRemoveUI:function(){var a,b,c=this;a=this.container.find("a.widget-control-remove"),a.on("click",function(a){a.preventDefault();var b;b=c.container.next().is(".customize-control-widget_form")?c.container.next().find(".widget-action:first"):c.container.prev().is(".customize-control-widget_form")?c.container.prev().find(".widget-action:first"):c.container.next(".customize-control-sidebar_widgets").find(".add-new-widget:first"),c.container.slideUp(function(){var a,d,e=g.Widgets.getSidebarWidgetControlContainingWidget(c.params.widget_id);e&&(a=e.setting().slice(),d=_.indexOf(a,c.params.widget_id),-1!==d&&(a.splice(d,1),e.setting(a),b.focus()))})}),b=function(){a.text(f.removeBtnLabel),a.attr("title",f.removeBtnTooltip)},this.params.is_new?g.bind("saved",b):b()},_getInputs:function(a){return b(a).find(":input[name]")},_getInputsSignature:function(a){var c=_(a).map(function(a){var c,d=b(a);return c=d.is(":checkbox, :radio")?[d.attr("id"),d.attr("name"),d.prop("value")]:[d.attr("id"),d.attr("name")],c.join(",")});return c.join(";")},_getInputState:function(a){return a=b(a),a.is(":radio, :checkbox")?a.prop("checked"):a.is("select[multiple]")?a.find("option:selected").map(function(){return b(this).val()}).get():a.val()},_setInputState:function(a,c){a=b(a),a.is(":radio, :checkbox")?a.prop("checked",c):a.is("select[multiple]")?(c=b.isArray(c)?_.map(c,function(a){return String(a)}):[],a.find("option").each(function(){b(this).prop("selected",-1!==_.indexOf(c,String(this.value)))})):a.val(c)},getSidebarWidgetsControl:function(){var a,b;if(a="sidebars_widgets["+this.params.sidebar_id+"]",b=g.control(a))return b},updateWidget:function(c){var d,e,h,i,j,k,l,m,n,o,p,q=this;q.embedWidgetContent(),c=b.extend({instance:null,complete:null,ignoreActiveElement:!1},c),d=c.instance,e=c.complete,this._updateCount+=1,j=this._updateCount,h=this.container.find(".widget:first"),i=h.find(".widget-content:first"),i.find(".widget-error").remove(),this.container.addClass("widget-form-loading"),this.container.addClass("previewer-loading"),n=g.state("processing"),n(n()+1),this.liveUpdateMode||this.container.addClass("widget-form-disabled"),k={},k.action="update-widget",k.wp_customize="on",k.nonce=g.settings.nonce["update-widget"],k.customize_theme=g.settings.theme.stylesheet,k.customized=a.customize.previewer.query().customized,l=b.param(k),m=this._getInputs(i),m.each(function(){b(this).data("state"+j,q._getInputState(this))}),l+=d?"&"+b.param({sanitized_widget_setting:JSON.stringify(d)}):"&"+m.serialize(),l+="&"+i.find("~ :input").serialize(),this._previousUpdateRequest&&this._previousUpdateRequest.abort(),o=b.post(a.ajax.settings.url,l),this._previousUpdateRequest=o,o.done(function(a){var d,k,l,n,o=!1;return"0"===a?(g.previewer.preview.iframe.hide(),void g.previewer.login().done(function(){q.updateWidget(c),g.previewer.preview.iframe.show()})):"-1"===a?void g.previewer.cheatin():void(a.success?(k=b("<div>"+a.data.form+"</div>"),l=q._getInputs(k),n=q._getInputsSignature(m)===q._getInputsSignature(l),n&&!q.liveUpdateMode&&(q.liveUpdateMode=!0,q.container.removeClass("widget-form-disabled"),q.container.find('input[name="savewidget"]').hide()),n&&q.liveUpdateMode?(m.each(function(a){var d,e,f,g=b(this),h=b(l[a]);d=g.data("state"+j),e=q._getInputState(h),g.data("sanitized",e),f=!_.isEqual(d,e)&&(c.ignoreActiveElement||!g.is(document.activeElement)),f&&q._setInputState(g,e)}),b(document).trigger("widget-synced",[h,a.data.form])):q.liveUpdateMode?(q.liveUpdateMode=!1,q.container.find('input[name="savewidget"]').show(),o=!0):(i.html(a.data.form),q.container.removeClass("widget-form-disabled"),b(document).trigger("widget-updated",[h])),p=!o&&!_(q.setting()).isEqual(a.data.instance),p?(q.isWidgetUpdating=!0,q.setting(a.data.instance),q.isWidgetUpdating=!1):q.container.removeClass("previewer-loading"),e&&e.call(q,null,{noChange:!p,ajaxFinished:!0})):(d=f.error,a.data&&a.data.message&&(d=a.data.message),e?e.call(q,d):i.prepend('<p class="widget-error"><strong>'+d+"</strong></p>")))}),o.fail(function(a,b){e&&e.call(q,b)}),o.always(function(){q.container.removeClass("widget-form-loading"),m.each(function(){b(this).removeData("state"+j)}),n(n()-1)})},expandControlSection:function(){g.Control.prototype.expand.call(this)},_toggleExpanded:g.Section.prototype._toggleExpanded,expand:g.Section.prototype.expand,expandForm:function(){this.expand()},collapse:g.Section.prototype.collapse,collapseForm:function(){this.collapse()},toggleForm:function(a){"undefined"==typeof a&&(a=!this.expanded()),this.expanded(a)},onChangeExpanded:function(a,b){var c,d,e,f,h,i=this;return i.embedWidgetControl(),a&&i.embedWidgetContent(),b.unchanged?void(a&&g.Control.prototype.expand.call(i,{completeCallback:b.completeCallback})):(c=this.container.find("div.widget:first"),d=c.find(".widget-inside:first"),h=function(){g.control.each(function(a){i.params.type===a.params.type&&i!==a&&a.collapse()}),e=function(){i.container.removeClass("expanding"),i.container.addClass("expanded"),i.container.trigger("expanded")},b.completeCallback&&(f=e,e=function(){f(),b.completeCallback()}),i.params.is_wide?d.fadeIn(b.duration,e):d.slideDown(b.duration,e),i.container.trigger("expand"),i.container.addClass("expanding")},void(a?g.section.has(i.section())?g.section(i.section()).expand({completeCallback:h}):h():(e=function(){i.container.removeClass("collapsing"),i.container.removeClass("expanded"),i.container.trigger("collapsed")},b.completeCallback&&(f=e,e=function(){f(),b.completeCallback()}),i.container.trigger("collapse"),i.container.addClass("collapsing"),i.params.is_wide?d.fadeOut(b.duration,e):d.slideUp(b.duration,function(){c.css({width:"",margin:""}),e()}))))},getWidgetSidebarPosition:function(){var a,b;if(a=this.getSidebarWidgetsControl().setting(),b=_.indexOf(a,this.params.widget_id),b!==-1)return b},moveUp:function(){this._moveWidgetByOne(-1)},moveDown:function(){this._moveWidgetByOne(1)},_moveWidgetByOne:function(a){var b,c,d,e;b=this.getWidgetSidebarPosition(),c=this.getSidebarWidgetsControl().setting,d=Array.prototype.slice.call(c()),e=d[b+a],d[b+a]=this.params.widget_id,d[b]=e,c(d)},toggleWidgetMoveArea:function(a){var c,d=this;c=this.container.find(".move-widget-area"),"undefined"==typeof a&&(a=!c.hasClass("active")),a&&(c.find(".selected").removeClass("selected"),c.find("li").filter(function(){return b(this).data("id")===d.params.sidebar_id}).addClass("selected"),this.container.find(".move-widget-btn").prop("disabled",!0)),c.toggleClass("active",a)},highlightSectionAndControl:function(){var a;a=this.container.is(":hidden")?this.container.closest(".control-section"):this.container,b(".highlighted").removeClass("highlighted"),a.addClass("highlighted"),setTimeout(function(){a.removeClass("highlighted")},500)}}),g.Widgets.WidgetsPanel=g.Panel.extend({ready:function(){var a=this;g.Panel.prototype.ready.call(a),a.deferred.embedded.done(function(){var c,d,e;c=a.container.find(".panel-meta"),d=b("<div></div>",{"class":"no-widget-areas-rendered-notice"}),d.append(b("<em></em>",{text:f.noAreasRendered})),c.append(d),e=function(){return 0===_.filter(a.sections(),function(a){return a.active()}).length},d.toggle(e()),g.previewer.deferred.active.done(function(){d.toggle(e())}),g.bind("pane-contents-reflowed",function(){var a="resolved"===g.previewer.deferred.active.state()?"fast":0;e()?d.slideDown(a):d.slideUp(a)})})},isContextuallyActive:function(){var a=this;return a.active()}}),g.Widgets.SidebarSection=g.Section.extend({ready:function(){var a,b=this;g.Section.prototype.ready.call(this),a=g.Widgets.registeredSidebars.get(b.params.sidebarId),b.active.bind(function(b){a.set("is_rendered",b)}),a.set("is_rendered",b.active())}}),g.Widgets.SidebarControl=g.Control.extend({ready:function(){this.$controlSection=this.container.closest(".control-section"),this.$sectionContent=this.container.closest(".accordion-section-content"),this._setupModel(),this._setupSortable(),this._setupAddition(),this._applyCardinalOrderClassNames()},_setupModel:function(){var a=this;this.setting.bind(function(c,e){var f,h,i;h=_(e).difference(c),c=_(c).filter(function(a){var b=d(a);return!!g.Widgets.availableWidgets.findWhere({id_base:b.id_base})}),f=_(c).map(function(b){var c=g.Widgets.getWidgetFormControlForWidget(b);return c||(c=a.addWidget(b)),c}),f.sort(function(a,b){var d=_.indexOf(c,a.params.widget_id),e=_.indexOf(c,b.params.widget_id);return d-e}),i=0,_(f).each(function(b){b.priority(i),b.section(a.section()),i+=1}),a.priority(i),a._applyCardinalOrderClassNames(),_(f).each(function(b){b.params.sidebar_id=a.params.sidebar_id}),_(h).each(function(c){setTimeout(function(){var e,f,h,i,j,k=!1;g.each(function(b){if(b.id!==a.setting.id&&0===b.id.indexOf("sidebars_widgets[")&&"sidebars_widgets[wp_inactive_widgets]"!==b.id){var d,e=b();d=_.indexOf(e,c),-1!==d&&(k=!0)}}),k||(e=g.Widgets.getWidgetFormControlForWidget(c),f=e&&b.contains(document,e.container[0])&&!b.contains(a.$sectionContent[0],e.container[0]),e&&!f&&(g.control.remove(e.id),e.container.remove()),g.Widgets.savedWidgetIds[c]&&(h=g.value("sidebars_widgets[wp_inactive_widgets]")().slice(),h.push(c),g.value("sidebars_widgets[wp_inactive_widgets]")(_(h).unique())),i=d(c).id_base,j=g.Widgets.availableWidgets.findWhere({id_base:i}),j&&!j.get("is_multi")&&j.set("is_disabled",!1))})})})},_setupSortable:function(){var a=this;this.isReordering=!1,this.$sectionContent.sortable({items:"> .customize-control-widget_form",handle:".widget-top",axis:"y",tolerance:"pointer",connectWith:".accordion-section-content:has(.customize-control-sidebar_widgets)",update:function(){var c,d=a.$sectionContent.sortable("toArray");c=b.map(d,function(a){return b("#"+a).find(":input[name=widget-id]").val()}),a.setting(c)}}),this.$controlSection.find(".accordion-section-title").droppable({accept:".customize-control-widget_form",over:function(){var b=g.section(a.section.get());b.expand({allowMultiple:!0,completeCallback:function(){g.section.each(function(a){a.container.find(".customize-control-sidebar_widgets").length&&a.container.find(".accordion-section-content:first").sortable("refreshPositions")})}})}}),this.container.find(".reorder-toggle").on("click",function(){a.toggleReordering(!a.isReordering)})},_setupAddition:function(){var a=this;this.container.find(".add-new-widget").on("click",function(){var c=b(this);a.$sectionContent.hasClass("reordering")||(b("body").hasClass("adding-widget")?(c.attr("aria-expanded","false"),g.Widgets.availableWidgetsPanel.close()):(c.attr("aria-expanded","true"),g.Widgets.availableWidgetsPanel.open(a)))})},_applyCardinalOrderClassNames:function(){var a=[];return _.each(this.setting(),function(b){var c=g.Widgets.getWidgetFormControlForWidget(b);c&&a.push(c)}),0===a.length||1===g.Widgets.registeredSidebars.length&&a.length<=1?void this.container.find(".reorder-toggle").hide():(this.container.find(".reorder-toggle").show(),b(a).each(function(){b(this.container).removeClass("first-widget").removeClass("last-widget").find(".move-widget-down, .move-widget-up").prop("tabIndex",0)}),_.first(a).container.addClass("first-widget").find(".move-widget-up").prop("tabIndex",-1),void _.last(a).container.addClass("last-widget").find(".move-widget-down").prop("tabIndex",-1))},toggleReordering:function(b){var c=this.$sectionContent.find(".add-new-widget"),d=this.container.find(".reorder-toggle"),e=this.$sectionContent.find(".widget-title");b=Boolean(b),b!==this.$sectionContent.hasClass("reordering")&&(this.isReordering=b,this.$sectionContent.toggleClass("reordering",b),b?(_(this.getWidgetFormControls()).each(function(a){a.collapse()}),c.attr({tabindex:"-1","aria-hidden":"true"}),d.attr("aria-label",f.reorderLabelOff),a.a11y.speak(f.reorderModeOn),e.attr("aria-hidden","true")):(c.removeAttr("tabindex aria-hidden"),d.attr("aria-label",f.reorderLabelOn),a.a11y.speak(f.reorderModeOff),e.attr("aria-hidden","false")))},getWidgetFormControls:function(){var a=[];return _(this.setting()).each(function(b){var c=e(b),d=g.control(c);d&&a.push(d)}),a},addWidget:function(a){var c,e,f,h,i,j,k,l,m,n,o=this,p="widget_form",q=d(a),r=q.number,s=q.id_base,t=g.Widgets.availableWidgets.findWhere({id_base:s});return!!t&&(!(r&&!t.get("is_multi"))&&(t.get("is_multi")&&!r&&(t.set("multi_number",t.get("multi_number")+1),r=t.get("multi_number")),c=b.trim(b("#widget-tpl-"+t.get("id")).html()),t.get("is_multi")?c=c.replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,r)}):t.set("is_disabled",!0),e=b(c),f=b("<li/>").addClass("customize-control").addClass("customize-control-"+p).append(e),f.find("> .widget-icon").remove(),t.get("is_multi")&&(f.find('input[name="widget_number"]').val(r),f.find('input[name="multi_number"]').val(r)),a=f.find('[name="widget-id"]').val(),f.hide(),i="widget_"+t.get("id_base"),t.get("is_multi")&&(i+="["+r+"]"),f.attr("id","customize-control-"+i.replace(/\]/g,"").replace(/\[/g,"-")),j=g.has(i),j||(m={transport:g.Widgets.data.selectiveRefreshableWidgets[t.get("id_base")]?"postMessage":"refresh",previewer:this.setting.previewer},n=g.create(i,i,"",m),n.set({})),h=g.controlConstructor[p],k=new h(i,{params:{settings:{"default":i},content:f,sidebar_id:o.params.sidebar_id,widget_id:a,widget_id_base:t.get("id_base"),type:p,is_new:!j,width:t.get("width"),height:t.get("height"),is_wide:t.get("is_wide"),active:!0},previewer:o.setting.previewer}),g.control.add(i,k),g.each(function(b){if(b.id!==o.setting.id&&0===b.id.indexOf("sidebars_widgets[")){var c=b().slice(),d=_.indexOf(c,a);-1!==d&&(c.splice(d),b(c))}}),l=this.setting().slice(),-1===_.indexOf(l,a)&&(l.push(a),this.setting(l)),f.slideDown(function(){j&&k.updateWidget({instance:k.setting()})}),k))}}),b.extend(g.panelConstructor,{widgets:g.Widgets.WidgetsPanel}),b.extend(g.sectionConstructor,{sidebar:g.Widgets.SidebarSection}),b.extend(g.controlConstructor,{widget_form:g.Widgets.WidgetControl,sidebar_widgets:g.Widgets.SidebarControl}),g.bind("ready",function(){g.Widgets.availableWidgetsPanel=new g.Widgets.AvailableWidgetsPanelView({collection:g.Widgets.availableWidgets}),g.previewer.bind("highlight-widget-control",g.Widgets.highlightWidgetFormControl),g.previewer.bind("focus-widget-control",g.Widgets.focusWidgetFormControl)}),g.Widgets.highlightWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.highlightSectionAndControl()},g.Widgets.focusWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.focus()},g.Widgets.getSidebarWidgetControlContainingWidget=function(a){var b=null;return g.control.each(function(c){"sidebar_widgets"===c.params.type&&-1!==_.indexOf(c.setting(),a)&&(b=c)}),b},g.Widgets.getWidgetFormControlForWidget=function(a){var b=null;return g.control.each(function(c){"widget_form"===c.params.type&&c.params.widget_id===a&&(b=c)}),b},b(document).on("widget-added",function(a,b){var e,f,h,i;e=d(b.find("> .widget-inside > .form > .widget-id").val()),"nav_menu"===e.id_base&&(f=g.control("widget_nav_menu["+String(e.number)+"]"),f&&(h=b.find('select[name*="nav_menu"]'),i=b.find(".edit-selected-nav-menu > button"),0!==h.length&&0!==i.length&&(h.on("change",function(){g.section.has("nav_menu["+h.val()+"]")?i.parent().show():i.parent().hide()}),i.on("click",function(){var a=g.section("nav_menu["+h.val()+"]");a&&c(a,f)}))))})}}(window.wp,jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/editor-expand.js b/wp-admin/js/editor-expand.js
index aaf34b0bb..cc3aac4fc 100644
--- a/wp-admin/js/editor-expand.js
+++ b/wp-admin/js/editor-expand.js
@@ -318,7 +318,7 @@
 				topHeight = heights.textTopHeight;
 			}
 
-			// TinyMCE still intializing.
+			// TinyMCE still initializing.
 			if ( ! visual && ! $top.length ) {
 				return;
 			}
diff --git a/wp-admin/js/editor.js b/wp-admin/js/editor.js
index c42611bb2..e3fbaab94 100644
--- a/wp-admin/js/editor.js
+++ b/wp-admin/js/editor.js
@@ -274,7 +274,7 @@
 
 			text = text + '\n\n';
 			text = text.replace( /<br \/>\s*<br \/>/gi, '\n\n' );
-			text = text.replace( new RegExp( '(<(?:' + blocklist + ')(?: [^>]*)?>)', 'gi' ), '\n$1' );
+			text = text.replace( new RegExp( '(<(?:' + blocklist + ')(?: [^>]*)?>)', 'gi' ), '\n\n$1' );
 			text = text.replace( new RegExp( '(</(?:' + blocklist + ')>)', 'gi' ), '$1\n\n' );
 			text = text.replace( /<hr( [^>]*)?>/gi, '<hr$1>\n\n' ); // hr is self closing block element
 			text = text.replace( /\s*<option/gi, '<option' ); // No <p> or <br> around <option>
diff --git a/wp-admin/js/editor.min.js b/wp-admin/js/editor.min.js
index 80a8a829e..2fe055e63 100644
--- a/wp-admin/js/editor.min.js
+++ b/wp-admin/js/editor.min.js
@@ -1 +1 @@
-!function(a){function b(){function b(){!i&&window.tinymce&&(i=window.tinymce,j=i.$,j(document).on("click",function(a){var b,c,e=j(a.target);e.hasClass("wp-switch-editor")&&(b=e.attr("data-wp-editor-id"),c=e.hasClass("switch-tmce")?"tmce":"html",d(b,c))}))}function c(a){var b=j(".mce-toolbar-grp",a.getContainer())[0],c=b&&b.clientHeight;return c&&c>10&&c<200?parseInt(c,10):30}function d(a,b){a=a||"content",b=b||"toggle";var d,e,f,g=i.get(a),h=j("#wp-"+a+"-wrap"),k=j("#"+a),l=k[0];if("toggle"===b&&(b=g&&!g.isHidden()?"html":"tmce"),"tmce"===b||"tinymce"===b){if(g&&!g.isHidden())return!1;"undefined"!=typeof window.QTags&&window.QTags.closeAllTags(a),d=parseInt(l.style.height,10)||0,g?(g.show(),!i.Env.iOS&&d&&(e=c(g),d=d-e+14,d>50&&d<5e3&&g.theme.resizeTo(null,d))):i.init(window.tinyMCEPreInit.mceInit[a]),h.removeClass("html-active").addClass("tmce-active"),k.attr("aria-hidden",!0),window.setUserSetting("editor","tinymce")}else if("html"===b){if(g&&g.isHidden())return!1;g?(i.Env.iOS||(f=g.iframeElement,d=f?parseInt(f.style.height,10):0,d&&(e=c(g),d=d+e-14,d>50&&d<5e3&&(l.style.height=d+"px"))),g.hide()):k.css({display:"",visibility:""}),h.removeClass("tmce-active").addClass("html-active"),k.attr("aria-hidden",!1),window.setUserSetting("editor","html")}}function e(a){var b="blockquote|ul|ol|li|dl|dt|dd|table|thead|tbody|tfoot|tr|th|td|h[1-6]|fieldset",c=b+"|div|p",d=b+"|pre",e=!1,f=!1,g=[];return a?(a.indexOf("<script")===-1&&a.indexOf("<style")===-1||(a=a.replace(/<(script|style)[^>]*>[\s\S]*?<\/\1>/g,function(a){return g.push(a),"<wp-preserve>"})),a.indexOf("<pre")!==-1&&(e=!0,a=a.replace(/<pre[^>]*>[\s\S]+?<\/pre>/g,function(a){return a=a.replace(/<br ?\/?>(\r\n|\n)?/g,"<wp-line-break>"),a=a.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g,"<wp-line-break>"),a.replace(/\r?\n/g,"<wp-line-break>")})),a.indexOf("[caption")!==-1&&(f=!0,a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(a){return a.replace(/<br([^>]*)>/g,"<wp-temp-br$1>").replace(/[\r\n\t]+/,"")})),a=a.replace(new RegExp("\\s*</("+c+")>\\s*","g"),"</$1>\n"),a=a.replace(new RegExp("\\s*<((?:"+c+")(?: [^>]*)?)>","g"),"\n<$1>"),a=a.replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>"),a=a.replace(/<div( [^>]*)?>\s*<p>/gi,"<div$1>\n\n"),a=a.replace(/\s*<p>/gi,""),a=a.replace(/\s*<\/p>\s*/gi,"\n\n"),a=a.replace(/\n[\s\u00a0]+\n/g,"\n\n"),a=a.replace(/\s*<br ?\/?>\s*/gi,"\n"),a=a.replace(/\s*<div/g,"\n<div"),a=a.replace(/<\/div>\s*/g,"</div>\n"),a=a.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n"),a=a.replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption"),a=a.replace(new RegExp("\\s*<((?:"+d+")(?: [^>]*)?)\\s*>","g"),"\n<$1>"),a=a.replace(new RegExp("\\s*</("+d+")>\\s*","g"),"</$1>\n"),a=a.replace(/<((li|dt|dd)[^>]*)>/g," \t<$1>"),a.indexOf("<option")!==-1&&(a=a.replace(/\s*<option/g,"\n<option"),a=a.replace(/\s*<\/select>/g,"\n</select>")),a.indexOf("<hr")!==-1&&(a=a.replace(/\s*<hr( [^>]*)?>\s*/g,"\n\n<hr$1>\n\n")),a.indexOf("<object")!==-1&&(a=a.replace(/<object[\s\S]+?<\/object>/g,function(a){return a.replace(/[\r\n]+/g,"")})),a=a.replace(/<\/p#>/g,"</p>\n"),a=a.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1"),a=a.replace(/^\s+/,""),a=a.replace(/[\s\u00a0]+$/,""),e&&(a=a.replace(/<wp-line-break>/g,"\n")),f&&(a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),g.length&&(a=a.replace(/<wp-preserve>/g,function(){return g.shift()})),a):""}function f(a){var b=!1,c=!1,d="table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary";return a=a.replace(/\r\n|\r/g,"\n"),a.indexOf("\n")===-1?a:(a.indexOf("<object")!==-1&&(a=a.replace(/<object[\s\S]+?<\/object>/g,function(a){return a.replace(/\n+/g,"")})),a=a.replace(/<[^<>]+>/g,function(a){return a.replace(/[\n\t ]+/g," ")}),a.indexOf("<pre")===-1&&a.indexOf("<script")===-1||(b=!0,a=a.replace(/<(pre|script)[^>]*>[\s\S]*?<\/\1>/g,function(a){return a.replace(/\n/g,"<wp-line-break>")})),a.indexOf("[caption")!==-1&&(c=!0,a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(a){return a=a.replace(/<br([^>]*)>/g,"<wp-temp-br$1>"),a=a.replace(/<[^<>]+>/g,function(a){return a.replace(/[\n\t ]+/," ")}),a.replace(/\s*\n\s*/g,"<wp-temp-br />")})),a+="\n\n",a=a.replace(/<br \/>\s*<br \/>/gi,"\n\n"),a=a.replace(new RegExp("(<(?:"+d+")(?: [^>]*)?>)","gi"),"\n$1"),a=a.replace(new RegExp("(</(?:"+d+")>)","gi"),"$1\n\n"),a=a.replace(/<hr( [^>]*)?>/gi,"<hr$1>\n\n"),a=a.replace(/\s*<option/gi,"<option"),a=a.replace(/<\/option>\s*/gi,"</option>"),a=a.replace(/\n\s*\n+/g,"\n\n"),a=a.replace(/([\s\S]+?)\n\n/g,"<p>$1</p>\n"),a=a.replace(/<p>\s*?<\/p>/gi,""),a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1"),a=a.replace(/<p>(<li.+?)<\/p>/gi,"$1"),a=a.replace(/<p>\s*<blockquote([^>]*)>/gi,"<blockquote$1><p>"),a=a.replace(/<\/blockquote>\s*<\/p>/gi,"</p></blockquote>"),a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)","gi"),"$1"),a=a.replace(new RegExp("(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1"),a=a.replace(/(<br[^>]*>)\s*\n/gi,"$1"),a=a.replace(/\s*\n/g,"<br />\n"),a=a.replace(new RegExp("(</?(?:"+d+")[^>]*>)\\s*<br />","gi"),"$1"),a=a.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi,"$1"),a=a.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi,"[caption$1[/caption]"),a=a.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g,function(a,b,c){return c.match(/<p( [^>]*)?>/)?a:b+"<p>"+c+"</p>"}),b&&(a=a.replace(/<wp-line-break>/g,"\n")),c&&(a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),a)}function g(b){var c={o:k,data:b,unfiltered:b};return a&&a("body").trigger("beforePreWpautop",[c]),c.data=e(c.data),a&&a("body").trigger("afterPreWpautop",[c]),c.data}function h(b){var c={o:k,data:b,unfiltered:b};return a&&a("body").trigger("beforeWpautop",[c]),c.data=f(c.data),a&&a("body").trigger("afterWpautop",[c]),c.data}var i,j,k={};return a?a(document).ready(b):document.addEventListener?(document.addEventListener("DOMContentLoaded",b,!1),window.addEventListener("load",b,!1)):window.attachEvent&&(window.attachEvent("onload",b),document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&b()})),window.wp=window.wp||{},window.wp.editor=window.wp.editor||{},window.wp.editor.autop=h,window.wp.editor.removep=g,k={go:d,wpautop:h,pre_wpautop:g,_wp_Autop:f,_wp_Nop:e}}window.switchEditors=new b}(window.jQuery);
\ No newline at end of file
+!function(a){function b(){function b(){!i&&window.tinymce&&(i=window.tinymce,j=i.$,j(document).on("click",function(a){var b,c,e=j(a.target);e.hasClass("wp-switch-editor")&&(b=e.attr("data-wp-editor-id"),c=e.hasClass("switch-tmce")?"tmce":"html",d(b,c))}))}function c(a){var b=j(".mce-toolbar-grp",a.getContainer())[0],c=b&&b.clientHeight;return c&&c>10&&c<200?parseInt(c,10):30}function d(a,b){a=a||"content",b=b||"toggle";var d,e,f,g=i.get(a),h=j("#wp-"+a+"-wrap"),k=j("#"+a),l=k[0];if("toggle"===b&&(b=g&&!g.isHidden()?"html":"tmce"),"tmce"===b||"tinymce"===b){if(g&&!g.isHidden())return!1;"undefined"!=typeof window.QTags&&window.QTags.closeAllTags(a),d=parseInt(l.style.height,10)||0,g?(g.show(),!i.Env.iOS&&d&&(e=c(g),d=d-e+14,d>50&&d<5e3&&g.theme.resizeTo(null,d))):i.init(window.tinyMCEPreInit.mceInit[a]),h.removeClass("html-active").addClass("tmce-active"),k.attr("aria-hidden",!0),window.setUserSetting("editor","tinymce")}else if("html"===b){if(g&&g.isHidden())return!1;g?(i.Env.iOS||(f=g.iframeElement,d=f?parseInt(f.style.height,10):0,d&&(e=c(g),d=d+e-14,d>50&&d<5e3&&(l.style.height=d+"px"))),g.hide()):k.css({display:"",visibility:""}),h.removeClass("tmce-active").addClass("html-active"),k.attr("aria-hidden",!1),window.setUserSetting("editor","html")}}function e(a){var b="blockquote|ul|ol|li|dl|dt|dd|table|thead|tbody|tfoot|tr|th|td|h[1-6]|fieldset",c=b+"|div|p",d=b+"|pre",e=!1,f=!1,g=[];return a?(a.indexOf("<script")===-1&&a.indexOf("<style")===-1||(a=a.replace(/<(script|style)[^>]*>[\s\S]*?<\/\1>/g,function(a){return g.push(a),"<wp-preserve>"})),a.indexOf("<pre")!==-1&&(e=!0,a=a.replace(/<pre[^>]*>[\s\S]+?<\/pre>/g,function(a){return a=a.replace(/<br ?\/?>(\r\n|\n)?/g,"<wp-line-break>"),a=a.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g,"<wp-line-break>"),a.replace(/\r?\n/g,"<wp-line-break>")})),a.indexOf("[caption")!==-1&&(f=!0,a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(a){return a.replace(/<br([^>]*)>/g,"<wp-temp-br$1>").replace(/[\r\n\t]+/,"")})),a=a.replace(new RegExp("\\s*</("+c+")>\\s*","g"),"</$1>\n"),a=a.replace(new RegExp("\\s*<((?:"+c+")(?: [^>]*)?)>","g"),"\n<$1>"),a=a.replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>"),a=a.replace(/<div( [^>]*)?>\s*<p>/gi,"<div$1>\n\n"),a=a.replace(/\s*<p>/gi,""),a=a.replace(/\s*<\/p>\s*/gi,"\n\n"),a=a.replace(/\n[\s\u00a0]+\n/g,"\n\n"),a=a.replace(/\s*<br ?\/?>\s*/gi,"\n"),a=a.replace(/\s*<div/g,"\n<div"),a=a.replace(/<\/div>\s*/g,"</div>\n"),a=a.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n"),a=a.replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption"),a=a.replace(new RegExp("\\s*<((?:"+d+")(?: [^>]*)?)\\s*>","g"),"\n<$1>"),a=a.replace(new RegExp("\\s*</("+d+")>\\s*","g"),"</$1>\n"),a=a.replace(/<((li|dt|dd)[^>]*)>/g," \t<$1>"),a.indexOf("<option")!==-1&&(a=a.replace(/\s*<option/g,"\n<option"),a=a.replace(/\s*<\/select>/g,"\n</select>")),a.indexOf("<hr")!==-1&&(a=a.replace(/\s*<hr( [^>]*)?>\s*/g,"\n\n<hr$1>\n\n")),a.indexOf("<object")!==-1&&(a=a.replace(/<object[\s\S]+?<\/object>/g,function(a){return a.replace(/[\r\n]+/g,"")})),a=a.replace(/<\/p#>/g,"</p>\n"),a=a.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1"),a=a.replace(/^\s+/,""),a=a.replace(/[\s\u00a0]+$/,""),e&&(a=a.replace(/<wp-line-break>/g,"\n")),f&&(a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),g.length&&(a=a.replace(/<wp-preserve>/g,function(){return g.shift()})),a):""}function f(a){var b=!1,c=!1,d="table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary";return a=a.replace(/\r\n|\r/g,"\n"),a.indexOf("\n")===-1?a:(a.indexOf("<object")!==-1&&(a=a.replace(/<object[\s\S]+?<\/object>/g,function(a){return a.replace(/\n+/g,"")})),a=a.replace(/<[^<>]+>/g,function(a){return a.replace(/[\n\t ]+/g," ")}),a.indexOf("<pre")===-1&&a.indexOf("<script")===-1||(b=!0,a=a.replace(/<(pre|script)[^>]*>[\s\S]*?<\/\1>/g,function(a){return a.replace(/\n/g,"<wp-line-break>")})),a.indexOf("[caption")!==-1&&(c=!0,a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(a){return a=a.replace(/<br([^>]*)>/g,"<wp-temp-br$1>"),a=a.replace(/<[^<>]+>/g,function(a){return a.replace(/[\n\t ]+/," ")}),a.replace(/\s*\n\s*/g,"<wp-temp-br />")})),a+="\n\n",a=a.replace(/<br \/>\s*<br \/>/gi,"\n\n"),a=a.replace(new RegExp("(<(?:"+d+")(?: [^>]*)?>)","gi"),"\n\n$1"),a=a.replace(new RegExp("(</(?:"+d+")>)","gi"),"$1\n\n"),a=a.replace(/<hr( [^>]*)?>/gi,"<hr$1>\n\n"),a=a.replace(/\s*<option/gi,"<option"),a=a.replace(/<\/option>\s*/gi,"</option>"),a=a.replace(/\n\s*\n+/g,"\n\n"),a=a.replace(/([\s\S]+?)\n\n/g,"<p>$1</p>\n"),a=a.replace(/<p>\s*?<\/p>/gi,""),a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1"),a=a.replace(/<p>(<li.+?)<\/p>/gi,"$1"),a=a.replace(/<p>\s*<blockquote([^>]*)>/gi,"<blockquote$1><p>"),a=a.replace(/<\/blockquote>\s*<\/p>/gi,"</p></blockquote>"),a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)","gi"),"$1"),a=a.replace(new RegExp("(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1"),a=a.replace(/(<br[^>]*>)\s*\n/gi,"$1"),a=a.replace(/\s*\n/g,"<br />\n"),a=a.replace(new RegExp("(</?(?:"+d+")[^>]*>)\\s*<br />","gi"),"$1"),a=a.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi,"$1"),a=a.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi,"[caption$1[/caption]"),a=a.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g,function(a,b,c){return c.match(/<p( [^>]*)?>/)?a:b+"<p>"+c+"</p>"}),b&&(a=a.replace(/<wp-line-break>/g,"\n")),c&&(a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")),a)}function g(b){var c={o:k,data:b,unfiltered:b};return a&&a("body").trigger("beforePreWpautop",[c]),c.data=e(c.data),a&&a("body").trigger("afterPreWpautop",[c]),c.data}function h(b){var c={o:k,data:b,unfiltered:b};return a&&a("body").trigger("beforeWpautop",[c]),c.data=f(c.data),a&&a("body").trigger("afterWpautop",[c]),c.data}var i,j,k={};return a?a(document).ready(b):document.addEventListener?(document.addEventListener("DOMContentLoaded",b,!1),window.addEventListener("load",b,!1)):window.attachEvent&&(window.attachEvent("onload",b),document.attachEvent("onreadystatechange",function(){"complete"===document.readyState&&b()})),window.wp=window.wp||{},window.wp.editor=window.wp.editor||{},window.wp.editor.autop=h,window.wp.editor.removep=g,k={go:d,wpautop:h,pre_wpautop:g,_wp_Autop:f,_wp_Nop:e}}window.switchEditors=new b}(window.jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/inline-edit-post.js b/wp-admin/js/inline-edit-post.js
index 3a65805e3..84ffd788a 100644
--- a/wp-admin/js/inline-edit-post.js
+++ b/wp-admin/js/inline-edit-post.js
@@ -83,7 +83,7 @@ inlineEditPost = {
 	},
 
 	setBulk : function(){
-		var te = '', type = this.type, tax, c = true;
+		var te = '', type = this.type, c = true;
 		this.revert();
 
 		$( '#bulk-edit td' ).attr( 'colspan', $( 'th:visible, td:visible', '.widefat:first thead' ).length );
@@ -114,9 +114,9 @@ inlineEditPost = {
 
 		// enable autocomplete for tags
 		if ( 'post' === type ) {
-			// support multi taxonomies?
-			tax = 'post_tag';
-			$('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma } );
+			$( 'tr.inline-editor textarea[data-wp-taxonomy]' ).each( function ( i, element ) {
+				$( element ).wpTagsSuggest();
+			} );
 		}
 		$('html, body').animate( { scrollTop: 0 }, 'fast' );
 	},
@@ -129,9 +129,9 @@ inlineEditPost = {
 			id = t.getId(id);
 		}
 
-		fields = ['post_title', 'post_name', 'post_author', '_status', 'jj', 'mm', 'aa', 'hh', 'mn', 'ss', 'post_password', 'post_format', 'menu_order'];
+		fields = ['post_title', 'post_name', 'post_author', '_status', 'jj', 'mm', 'aa', 'hh', 'mn', 'ss', 'post_password', 'post_format', 'menu_order', 'page_template'];
 		if ( t.type === 'page' ) {
-			fields.push('post_parent', 'page_template');
+			fields.push('post_parent');
 		}
 
 		// add the new edit row with an extra blank row underneath to maintain zebra striping.
@@ -196,7 +196,7 @@ inlineEditPost = {
 				textarea.val(terms);
 			}
 
-			textarea.suggest( ajaxurl + '?action=ajax-tag-search&tax=' + taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma } );
+			textarea.wpTagsSuggest();
 		});
 
 		// handle the post status
diff --git a/wp-admin/js/inline-edit-post.min.js b/wp-admin/js/inline-edit-post.min.js
index ec42b17bf..aab6c3d4f 100644
--- a/wp-admin/js/inline-edit-post.min.js
+++ b/wp-admin/js/inline-edit-post.min.js
@@ -1 +1 @@
-window.wp=window.wp||{};var inlineEditPost;!function(a,b){inlineEditPost={init:function(){var b=this,c=a("#inline-edit"),d=a("#bulk-edit");b.type=a("table.widefat").hasClass("pages")?"page":"post",b.what="#post-",c.keyup(function(a){if(27===a.which)return inlineEditPost.revert()}),d.keyup(function(a){if(27===a.which)return inlineEditPost.revert()}),a(".cancel",c).click(function(){return inlineEditPost.revert()}),a(".save",c).click(function(){return inlineEditPost.save(this)}),a("td",c).keydown(function(b){if(13===b.which&&!a(b.target).hasClass("cancel"))return inlineEditPost.save(this)}),a(".cancel",d).click(function(){return inlineEditPost.revert()}),a('#inline-edit .inline-edit-private input[value="private"]').click(function(){var b=a("input.inline-edit-password-input");a(this).prop("checked")?b.val("").prop("disabled",!0):b.prop("disabled",!1)}),a("#the-list").on("click","a.editinline",function(a){a.preventDefault(),inlineEditPost.edit(this)}),a("#bulk-edit").find("fieldset:first").after(a("#inline-edit fieldset.inline-edit-categories").clone()).siblings("fieldset:last").prepend(a("#inline-edit label.inline-edit-tags").clone()),a('select[name="_status"] option[value="future"]',d).remove(),a("#doaction, #doaction2").click(function(c){var d;b.whichBulkButtonId=a(this).attr("id"),d=b.whichBulkButtonId.substr(2),"edit"===a('select[name="'+d+'"]').val()?(c.preventDefault(),b.setBulk()):a("form#posts-filter tr.inline-editor").length>0&&b.revert()})},toggle:function(b){var c=this;"none"===a(c.what+c.getId(b)).css("display")?c.revert():c.edit(b)},setBulk:function(){var b,c="",d=this.type,e=!0;return this.revert(),a("#bulk-edit td").attr("colspan",a("th:visible, td:visible",".widefat:first thead").length),a("table.widefat tbody").prepend(a("#bulk-edit")).prepend('<tr class="hidden"></tr>'),a("#bulk-edit").addClass("inline-editor").show(),a('tbody th.check-column input[type="checkbox"]').each(function(){if(a(this).prop("checked")){e=!1;var b,d=a(this).val();b=a("#inline_"+d+" .post_title").html()||inlineEditL10n.notitle,c+='<div id="ttle'+d+'"><a id="_'+d+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+b+"</div>"}}),e?this.revert():(a("#bulk-titles").html(c),a("#bulk-titles a").click(function(){var b=a(this).attr("id").substr(1);a('table.widefat input[value="'+b+'"]').prop("checked",!1),a("#ttle"+b).remove()}),"post"===d&&(b="post_tag",a('tr.inline-editor textarea[name="tax_input['+b+']"]').suggest(ajaxurl+"?action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:!0,multipleSep:inlineEditL10n.comma})),void a("html, body").animate({scrollTop:0},"fast"))},edit:function(b){var c,d,e,f,g,h,i,j,k,l,m,n=this,o=!0;for(n.revert(),"object"==typeof b&&(b=n.getId(b)),c=["post_title","post_name","post_author","_status","jj","mm","aa","hh","mn","ss","post_password","post_format","menu_order"],"page"===n.type&&c.push("post_parent","page_template"),d=a("#inline-edit").clone(!0),a("td",d).attr("colspan",a("th:visible, td:visible",".widefat:first thead").length),a(n.what+b).removeClass("is-expanded").hide().after(d).after('<tr class="hidden"></tr>'),e=a("#inline_"+b),a(':input[name="post_author"] option[value="'+a(".post_author",e).text()+'"]',d).val()||a(':input[name="post_author"]',d).prepend('<option value="'+a(".post_author",e).text()+'">'+a("#"+n.type+"-"+b+" .author").text()+"</option>"),1===a(':input[name="post_author"] option',d).length&&a("label.inline-edit-author",d).hide(),k=0;k<c.length;k++)l=a("."+c[k],e),l.find("img").replaceWith(function(){return this.alt}),l=l.text(),a(':input[name="'+c[k]+'"]',d).val(l);if("open"===a(".comment_status",e).text()&&a('input[name="comment_status"]',d).prop("checked",!0),"open"===a(".ping_status",e).text()&&a('input[name="ping_status"]',d).prop("checked",!0),"sticky"===a(".sticky",e).text()&&a('input[name="sticky"]',d).prop("checked",!0),a(".post_category",e).each(function(){var c,e=a(this).text();e&&(c=a(this).attr("id").replace("_"+b,""),a("ul."+c+"-checklist :checkbox",d).val(e.split(",")))}),a(".tags_input",e).each(function(){var c=a(this),e=a(this).attr("id").replace("_"+b,""),f=a("textarea.tax_input_"+e,d),g=inlineEditL10n.comma;c.find("img").replaceWith(function(){return this.alt}),c=c.text(),c&&(","!==g&&(c=c.replace(/,/g,g)),f.val(c)),f.suggest(ajaxurl+"?action=ajax-tag-search&tax="+e,{delay:500,minchars:2,multiple:!0,multipleSep:inlineEditL10n.comma})}),f=a("._status",e).text(),"future"!==f&&a('select[name="_status"] option[value="future"]',d).remove(),m=a(".inline-edit-password-input").prop("disabled",!1),"private"===f&&(a('input[name="keep_private"]',d).prop("checked",!0),m.val("").prop("disabled",!0)),g=a('select[name="post_parent"] option[value="'+b+'"]',d),g.length>0){for(h=g[0].className.split("-")[1],i=g;o&&(i=i.next("option"),0!==i.length);)j=i[0].className.split("-")[1],j<=h?o=!1:(i.remove(),i=g);g.remove()}return a(d).attr("id","edit-"+b).addClass("inline-editor").show(),a(".ptitle",d).focus(),!1},save:function(c){var d,e,f=a(".post_status_page").val()||"";return"object"==typeof c&&(c=this.getId(c)),a("table.widefat .spinner").addClass("is-active"),d={action:"inline-save",post_type:typenow,post_ID:c,edit_date:"true",post_status:f},e=a("#edit-"+c).find(":input").serialize(),d=e+"&"+a.param(d),a.post(ajaxurl,d,function(d){var e=a("#edit-"+c+" .inline-edit-save .error");a("table.widefat .spinner").removeClass("is-active"),a(".ac_results").hide(),d?-1!==d.indexOf("<tr")?(a(inlineEditPost.what+c).siblings("tr.hidden").addBack().remove(),a("#edit-"+c).before(d).remove(),a(inlineEditPost.what+c).hide().fadeIn(400,function(){a(this).find(".editinline").focus(),b.a11y.speak(inlineEditL10n.saved)})):(d=d.replace(/<.[^<>]*?>/g,""),e.html(d).show(),b.a11y.speak(e.text())):(e.html(inlineEditL10n.error).show(),b.a11y.speak(inlineEditL10n.error))},"html"),!1},revert:function(){var b=a(".widefat"),c=a(".inline-editor",b).attr("id");return c&&(a(".spinner",b).removeClass("is-active"),a(".ac_results").hide(),"bulk-edit"===c?(a("#bulk-edit",b).removeClass("inline-editor").hide().siblings(".hidden").remove(),a("#bulk-titles").empty(),a("#inlineedit").append(a("#bulk-edit")),a("#"+inlineEditPost.whichBulkButtonId).focus()):(a("#"+c).siblings("tr.hidden").addBack().remove(),c=c.substr(c.lastIndexOf("-")+1),a(this.what+c).show().find(".editinline").focus())),!1},getId:function(b){var c=a(b).closest("tr").attr("id"),d=c.split("-");return d[d.length-1]}},a(document).ready(function(){inlineEditPost.init()}),a(document).on("heartbeat-tick.wp-check-locked-posts",function(b,c){var d=c["wp-check-locked-posts"]||{};a("#the-list tr").each(function(b,c){var e,f,g=c.id,h=a(c);d.hasOwnProperty(g)?h.hasClass("wp-locked")||(e=d[g],h.find(".column-title .locked-text").text(e.text),h.find(".check-column checkbox").prop("checked",!1),e.avatar_src&&(f=a('<img class="avatar avatar-18 photo" width="18" height="18" alt="" />').attr("src",e.avatar_src.replace(/&amp;/g,"&")),h.find(".column-title .locked-avatar").empty().append(f)),h.addClass("wp-locked")):h.hasClass("wp-locked")&&h.removeClass("wp-locked").delay(1e3).find(".locked-info span").empty()})}).on("heartbeat-send.wp-check-locked-posts",function(b,c){var d=[];a("#the-list tr").each(function(a,b){b.id&&d.push(b.id)}),d.length&&(c["wp-check-locked-posts"]=d)}).ready(function(){"undefined"!=typeof b&&b.heartbeat&&b.heartbeat.interval(15)})}(jQuery,window.wp);
\ No newline at end of file
+window.wp=window.wp||{};var inlineEditPost;!function(a,b){inlineEditPost={init:function(){var b=this,c=a("#inline-edit"),d=a("#bulk-edit");b.type=a("table.widefat").hasClass("pages")?"page":"post",b.what="#post-",c.keyup(function(a){if(27===a.which)return inlineEditPost.revert()}),d.keyup(function(a){if(27===a.which)return inlineEditPost.revert()}),a(".cancel",c).click(function(){return inlineEditPost.revert()}),a(".save",c).click(function(){return inlineEditPost.save(this)}),a("td",c).keydown(function(b){if(13===b.which&&!a(b.target).hasClass("cancel"))return inlineEditPost.save(this)}),a(".cancel",d).click(function(){return inlineEditPost.revert()}),a('#inline-edit .inline-edit-private input[value="private"]').click(function(){var b=a("input.inline-edit-password-input");a(this).prop("checked")?b.val("").prop("disabled",!0):b.prop("disabled",!1)}),a("#the-list").on("click","a.editinline",function(a){a.preventDefault(),inlineEditPost.edit(this)}),a("#bulk-edit").find("fieldset:first").after(a("#inline-edit fieldset.inline-edit-categories").clone()).siblings("fieldset:last").prepend(a("#inline-edit label.inline-edit-tags").clone()),a('select[name="_status"] option[value="future"]',d).remove(),a("#doaction, #doaction2").click(function(c){var d;b.whichBulkButtonId=a(this).attr("id"),d=b.whichBulkButtonId.substr(2),"edit"===a('select[name="'+d+'"]').val()?(c.preventDefault(),b.setBulk()):a("form#posts-filter tr.inline-editor").length>0&&b.revert()})},toggle:function(b){var c=this;"none"===a(c.what+c.getId(b)).css("display")?c.revert():c.edit(b)},setBulk:function(){var b="",c=this.type,d=!0;return this.revert(),a("#bulk-edit td").attr("colspan",a("th:visible, td:visible",".widefat:first thead").length),a("table.widefat tbody").prepend(a("#bulk-edit")).prepend('<tr class="hidden"></tr>'),a("#bulk-edit").addClass("inline-editor").show(),a('tbody th.check-column input[type="checkbox"]').each(function(){if(a(this).prop("checked")){d=!1;var c,e=a(this).val();c=a("#inline_"+e+" .post_title").html()||inlineEditL10n.notitle,b+='<div id="ttle'+e+'"><a id="_'+e+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+c+"</div>"}}),d?this.revert():(a("#bulk-titles").html(b),a("#bulk-titles a").click(function(){var b=a(this).attr("id").substr(1);a('table.widefat input[value="'+b+'"]').prop("checked",!1),a("#ttle"+b).remove()}),"post"===c&&a("tr.inline-editor textarea[data-wp-taxonomy]").each(function(b,c){a(c).wpTagsSuggest()}),void a("html, body").animate({scrollTop:0},"fast"))},edit:function(b){var c,d,e,f,g,h,i,j,k,l,m,n=this,o=!0;for(n.revert(),"object"==typeof b&&(b=n.getId(b)),c=["post_title","post_name","post_author","_status","jj","mm","aa","hh","mn","ss","post_password","post_format","menu_order","page_template"],"page"===n.type&&c.push("post_parent"),d=a("#inline-edit").clone(!0),a("td",d).attr("colspan",a("th:visible, td:visible",".widefat:first thead").length),a(n.what+b).removeClass("is-expanded").hide().after(d).after('<tr class="hidden"></tr>'),e=a("#inline_"+b),a(':input[name="post_author"] option[value="'+a(".post_author",e).text()+'"]',d).val()||a(':input[name="post_author"]',d).prepend('<option value="'+a(".post_author",e).text()+'">'+a("#"+n.type+"-"+b+" .author").text()+"</option>"),1===a(':input[name="post_author"] option',d).length&&a("label.inline-edit-author",d).hide(),k=0;k<c.length;k++)l=a("."+c[k],e),l.find("img").replaceWith(function(){return this.alt}),l=l.text(),a(':input[name="'+c[k]+'"]',d).val(l);if("open"===a(".comment_status",e).text()&&a('input[name="comment_status"]',d).prop("checked",!0),"open"===a(".ping_status",e).text()&&a('input[name="ping_status"]',d).prop("checked",!0),"sticky"===a(".sticky",e).text()&&a('input[name="sticky"]',d).prop("checked",!0),a(".post_category",e).each(function(){var c,e=a(this).text();e&&(c=a(this).attr("id").replace("_"+b,""),a("ul."+c+"-checklist :checkbox",d).val(e.split(",")))}),a(".tags_input",e).each(function(){var c=a(this),e=a(this).attr("id").replace("_"+b,""),f=a("textarea.tax_input_"+e,d),g=inlineEditL10n.comma;c.find("img").replaceWith(function(){return this.alt}),c=c.text(),c&&(","!==g&&(c=c.replace(/,/g,g)),f.val(c)),f.wpTagsSuggest()}),f=a("._status",e).text(),"future"!==f&&a('select[name="_status"] option[value="future"]',d).remove(),m=a(".inline-edit-password-input").prop("disabled",!1),"private"===f&&(a('input[name="keep_private"]',d).prop("checked",!0),m.val("").prop("disabled",!0)),g=a('select[name="post_parent"] option[value="'+b+'"]',d),g.length>0){for(h=g[0].className.split("-")[1],i=g;o&&(i=i.next("option"),0!==i.length);)j=i[0].className.split("-")[1],j<=h?o=!1:(i.remove(),i=g);g.remove()}return a(d).attr("id","edit-"+b).addClass("inline-editor").show(),a(".ptitle",d).focus(),!1},save:function(c){var d,e,f=a(".post_status_page").val()||"";return"object"==typeof c&&(c=this.getId(c)),a("table.widefat .spinner").addClass("is-active"),d={action:"inline-save",post_type:typenow,post_ID:c,edit_date:"true",post_status:f},e=a("#edit-"+c).find(":input").serialize(),d=e+"&"+a.param(d),a.post(ajaxurl,d,function(d){var e=a("#edit-"+c+" .inline-edit-save .error");a("table.widefat .spinner").removeClass("is-active"),a(".ac_results").hide(),d?-1!==d.indexOf("<tr")?(a(inlineEditPost.what+c).siblings("tr.hidden").addBack().remove(),a("#edit-"+c).before(d).remove(),a(inlineEditPost.what+c).hide().fadeIn(400,function(){a(this).find(".editinline").focus(),b.a11y.speak(inlineEditL10n.saved)})):(d=d.replace(/<.[^<>]*?>/g,""),e.html(d).show(),b.a11y.speak(e.text())):(e.html(inlineEditL10n.error).show(),b.a11y.speak(inlineEditL10n.error))},"html"),!1},revert:function(){var b=a(".widefat"),c=a(".inline-editor",b).attr("id");return c&&(a(".spinner",b).removeClass("is-active"),a(".ac_results").hide(),"bulk-edit"===c?(a("#bulk-edit",b).removeClass("inline-editor").hide().siblings(".hidden").remove(),a("#bulk-titles").empty(),a("#inlineedit").append(a("#bulk-edit")),a("#"+inlineEditPost.whichBulkButtonId).focus()):(a("#"+c).siblings("tr.hidden").addBack().remove(),c=c.substr(c.lastIndexOf("-")+1),a(this.what+c).show().find(".editinline").focus())),!1},getId:function(b){var c=a(b).closest("tr").attr("id"),d=c.split("-");return d[d.length-1]}},a(document).ready(function(){inlineEditPost.init()}),a(document).on("heartbeat-tick.wp-check-locked-posts",function(b,c){var d=c["wp-check-locked-posts"]||{};a("#the-list tr").each(function(b,c){var e,f,g=c.id,h=a(c);d.hasOwnProperty(g)?h.hasClass("wp-locked")||(e=d[g],h.find(".column-title .locked-text").text(e.text),h.find(".check-column checkbox").prop("checked",!1),e.avatar_src&&(f=a('<img class="avatar avatar-18 photo" width="18" height="18" alt="" />').attr("src",e.avatar_src.replace(/&amp;/g,"&")),h.find(".column-title .locked-avatar").empty().append(f)),h.addClass("wp-locked")):h.hasClass("wp-locked")&&h.removeClass("wp-locked").delay(1e3).find(".locked-info span").empty()})}).on("heartbeat-send.wp-check-locked-posts",function(b,c){var d=[];a("#the-list tr").each(function(a,b){b.id&&d.push(b.id)}),d.length&&(c["wp-check-locked-posts"]=d)}).ready(function(){"undefined"!=typeof b&&b.heartbeat&&b.heartbeat.interval(15)})}(jQuery,window.wp);
\ No newline at end of file
diff --git a/wp-admin/js/inline-edit-tax.js b/wp-admin/js/inline-edit-tax.js
index 3bbf4fb72..daad73fd1 100644
--- a/wp-admin/js/inline-edit-tax.js
+++ b/wp-admin/js/inline-edit-tax.js
@@ -1,10 +1,36 @@
 /* global inlineEditL10n, ajaxurl */
+/**
+ * This file is used on the term overview page to power quick-editing terms.
+ */
+
 window.wp = window.wp || {};
 
+/**
+ * Consists of functions relevant to the inline taxonomy editor.
+ *
+ * @namespace inlineEditTax
+ *
+ * @property {string} type The type of inline edit we are currently on.
+ * @property {string} what The type property with a hash prefixed and a dash
+ *                         suffixed.
+ */
 var inlineEditTax;
+
 ( function( $, wp ) {
+
 inlineEditTax = {
 
+	/**
+	 * @summary Initializes the inline taxonomy editor.
+	 *
+	 * Adds event handlers to be able to quick edit.
+	 *
+	 * @since 2.7.0
+	 *
+	 * @this inlineEditTax
+	 * @memberof inlineEditTax
+	 * @returns {void}
+	 */
 	init : function() {
 		var t = this, row = $('#inline-edit');
 
@@ -16,40 +42,87 @@ inlineEditTax = {
 			return false;
 		});
 
-		// prepare the edit row
+		/*
+		 * @summary Cancels inline editing when pressing escape inside the inline editor.
+		 *
+		 * @param {Object} e The keyup event that has been triggered.
+		 */
 		row.keyup( function( e ) {
+			// 27 = [escape]
 			if ( e.which === 27 ) {
 				return inlineEditTax.revert();
 			}
 		});
 
+		/**
+		 * @summary Cancels inline editing when clicking the cancel button.
+		 */
 		$( '.cancel', row ).click( function() {
 			return inlineEditTax.revert();
 		});
+
+		/**
+		 * @summary Saves the inline edits when clicking the save button.
+		 */
 		$( '.save', row ).click( function() {
 			return inlineEditTax.save(this);
 		});
+
+		/**
+		 * @summary Saves the inline edits when pressing enter inside the inline editor.
+		 */
 		$( 'input, select', row ).keydown( function( e ) {
+			// 13 = [enter]
 			if ( e.which === 13 ) {
 				return inlineEditTax.save( this );
 			}
 		});
 
+		/**
+		 * @summary Saves the inline edits on submitting the inline edit form.
+		 */
 		$( '#posts-filter input[type="submit"]' ).mousedown( function() {
 			t.revert();
 		});
 	},
 
+	/**
+	 * Toggles the quick edit based on if it is currently shown or hidden.
+	 *
+	 * @since 2.7.0
+	 *
+	 * @this inlineEditTax
+	 * @memberof inlineEditTax
+	 *
+	 * @param {HTMLElement} el An element within the table row or the table row
+	 *                         itself that we want to quick edit.
+	 * @returns {void}
+	 */
 	toggle : function(el) {
 		var t = this;
+
 		$(t.what+t.getId(el)).css('display') === 'none' ? t.revert() : t.edit(el);
 	},
 
+	/**
+	 * Shows the quick editor
+	 *
+	 * @since 2.7.0
+	 *
+	 * @this inlineEditTax
+	 * @memberof inlineEditTax
+	 *
+	 * @param {string|HTMLElement} id The ID of the term we want to quick edit or an
+	 *                                element within the table row or the
+	 * table row itself.
+	 * @returns {boolean} Always returns false.
+	 */
 	edit : function(id) {
 		var editRow, rowData, val,
 			t = this;
 		t.revert();
 
+		// Makes sure we can pass an HTMLElement as the ID.
 		if ( typeof(id) === 'object' ) {
 			id = t.getId(id);
 		}
@@ -75,9 +148,26 @@ inlineEditTax = {
 		return false;
 	},
 
+	/**
+	 * @summary Saves the quick edit data.
+	 *
+	 * Saves the quick edit data to the server and replaces the table row with the
+	 * HTML retrieved from the server.
+	 *
+	 * @since 2.7.0
+	 *
+	 * @this inlineEditTax
+	 * @memberof inlineEditTax
+	 *
+	 * @param {string|HTMLElement} id The ID of the term we want to quick edit or an
+	 *                                element within the table row or the
+	 * table row itself.
+	 * @returns {boolean} Always returns false.
+	 */
 	save : function(id) {
 		var params, fields, tax = $('input[name="taxonomy"]').val() || '';
 
+		// Makes sure we can pass an HTMLElement as the ID.
 		if( typeof(id) === 'object' ) {
 			id = this.getId(id);
 		}
@@ -94,8 +184,16 @@ inlineEditTax = {
 		fields = $('#edit-'+id).find(':input').serialize();
 		params = fields + '&' + $.param(params);
 
-		// make ajax request
+		// Do the ajax request to save the data to the server.
 		$.post( ajaxurl, params,
+			/**
+			 * @summary Handles the response from the server.
+			 *
+			 * Handles the response from the server, replaces the table row with the response
+			 * from the server.
+			 *
+			 * @param {string} r The string with which to replace the table row.
+			 */
 			function(r) {
 				var row, new_id, option_value,
 					$errorSpan = $( '#edit-' + id + ' .inline-edit-save .error' );
@@ -128,7 +226,10 @@ inlineEditTax = {
 
 					} else {
 						$errorSpan.html( r ).show();
-						// Some error strings may contain HTML entities (e.g. `&#8220`), let's use the HTML element's text.
+						/*
+						 * Some error strings may contain HTML entities (e.g. `&#8220`), let's use
+						 * the HTML element's text.
+						 */
 						wp.a11y.speak( $errorSpan.text() );
 					}
 				} else {
@@ -137,10 +238,20 @@ inlineEditTax = {
 				}
 			}
 		);
+
 		// Prevent submitting the form when pressing Enter on a focused field.
 		return false;
 	},
 
+	/**
+	 * Closes the quick edit form.
+	 *
+	 * @since 2.7.0
+	 *
+	 * @this inlineEditTax
+	 * @memberof inlineEditTax
+	 * @returns {void}
+	 */
 	revert : function() {
 		var id = $('table.widefat tr.inline-editor').attr('id');
 
@@ -148,16 +259,29 @@ inlineEditTax = {
 			$( 'table.widefat .spinner' ).removeClass( 'is-active' );
 			$('#'+id).siblings('tr.hidden').addBack().remove();
 			id = id.substr( id.lastIndexOf('-') + 1 );
+
 			// Show the taxonomy row and move focus back to the Quick Edit link.
 			$( this.what + id ).show().find( '.editinline' ).focus();
 		}
 	},
 
+	/**
+	 * Retrieves the ID of the term of the element inside the table row.
+	 *
+	 * @since 2.7.0
+	 *
+	 * @memberof inlineEditTax
+	 *
+	 * @param {HTMLElement} o An element within the table row or the table row itself.
+	 * @returns {string} The ID of the term based on the element.
+	 */
 	getId : function(o) {
 		var id = o.tagName === 'TR' ? o.id : $(o).parents('tr').attr('id'), parts = id.split('-');
+
 		return parts[parts.length - 1];
 	}
 };
 
 $(document).ready(function(){inlineEditTax.init();});
+
 })( jQuery, window.wp );
diff --git a/wp-admin/js/iris.min.js b/wp-admin/js/iris.min.js
index efe593a64..e9ae4b6ce 100644
--- a/wp-admin/js/iris.min.js
+++ b/wp-admin/js/iris.min.js
@@ -1,4 +1,4 @@
-/*! Iris Color Picker - v1.0.7 - 2014-11-28
+/*! Iris Color Picker - v1.1.0-beta - 2016-10-25
 * https://github.com/Automattic/Iris
-* Copyright (c) 2014 Matt Wiebe; Licensed GPLv2 */
-!function(a,b){function c(){var b,c,d="backgroundImage";j?k="filter":(b=a('<div id="iris-gradtest" />'),c="linear-gradient(top,#fff,#000)",a.each(l,function(a,e){return b.css(d,e+c),b.css(d).match("gradient")?(k=a,!1):void 0}),k===!1&&(b.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),b.css(d).match("gradient")&&(k="webkit")),b.remove())}function d(b,c){return b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),"webkit"===k?f(b,c):l[k]+"linear-gradient("+b+", "+c.join(", ")+")"}function e(b,c){var d,e,f,h,i,j,k,l,m;b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),d="top"===b?0:1,e=a(this),f=c.length-1,h="filter",i=1===d?"left":"top",j=1===d?"right":"bottom",k=1===d?"height":"width",l='<div class="iris-ie-gradient-shim" style="position:absolute;'+k+":100%;"+i+":%start%;"+j+":%end%;"+h+':%filter%;" data-color:"%color%"></div>',m="","static"===e.css("position")&&e.css({position:"relative"}),c=g(c),a.each(c,function(a,b){var e,g,h;return a===f?!1:(e=c[a+1],b.stop!==e.stop&&(g=100-parseFloat(e.stop)+"%",b.octoHex=new Color(b.color).toIEOctoHex(),e.octoHex=new Color(e.color).toIEOctoHex(),h="progid:DXImageTransform.Microsoft.Gradient(GradientType="+d+", StartColorStr='"+b.octoHex+"', EndColorStr='"+e.octoHex+"')",m+=l.replace("%start%",b.stop).replace("%end%",g).replace("%filter%",h)),void 0)}),e.find(".iris-ie-gradient-shim").remove(),a(m).prependTo(e)}function f(b,c){var d=[];return b="top"===b?"0% 0%,0% 100%,":"0% 100%,100% 100%,",c=g(c),a.each(c,function(a,b){d.push("color-stop("+parseFloat(b.stop)/100+", "+b.color+")")}),"-webkit-gradient(linear,"+b+d.join(",")+")"}function g(b){var c=[],d=[],e=[],f=b.length-1;return a.each(b,function(a,b){var e=b,f=!1,g=b.match(/1?[0-9]{1,2}%$/);g&&(e=b.replace(/\s?1?[0-9]{1,2}%$/,""),f=g.shift()),c.push(e),d.push(f)}),d[0]===!1&&(d[0]="0%"),d[f]===!1&&(d[f]="100%"),d=h(d),a.each(d,function(a){e[a]={color:c[a],stop:d[a]}}),e}function h(b){var c,d,e,f,g=0,i=b.length-1,j=0,k=!1;if(b.length<=2||a.inArray(!1,b)<0)return b;for(;j<b.length-1;)k||b[j]!==!1?k&&b[j]!==!1&&(i=j,j=b.length):(g=j-1,k=!0),j++;for(d=i-g,f=parseInt(b[g].replace("%"),10),c=(parseFloat(b[i].replace("%"))-f)/d,j=g+1,e=1;i>j;)b[j]=f+e*c+"%",e++,j++;return h(b)}var i,j,k,l,m,n,o,p,q;return i='<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>',m='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}',o=navigator.userAgent.toLowerCase(),p="Microsoft Internet Explorer"===navigator.appName,q=p?parseFloat(o.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,j=p&&10>q,k=!1,l=["-moz-","-webkit-","-o-","-ms-"],j&&7>=q?(a.fn.iris=a.noop,a.support.iris=!1,void 0):(a.support.iris=!0,a.fn.gradient=function(){var b=arguments;return this.each(function(){j?e.apply(this,b):a(this).css("backgroundImage",d.apply(this,b))})},a.fn.raninbowGradient=function(b,c){var d,e,f,g;for(b=b||"top",d=a.extend({},{s:100,l:50},c),e="hsl(%h%,"+d.s+"%,"+d.l+"%)",f=0,g=[];360>=f;)g.push(e.replace("%h%",f)),f+=30;return this.each(function(){a(this).gradient(b,g)})},n={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1},_color:"",_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_create:function(){var b=this,d=b.element,e=b.options.color||d.val();k===!1&&c(),d.is("input")?(b.picker=b.options.target?a(i).appendTo(b.options.target):a(i).insertAfter(d),b._addInputListeners(d)):(d.append(i),b.picker=d.find(".iris-picker")),p?9===q?b.picker.addClass("iris-ie-9"):8>=q&&b.picker.addClass("iris-ie-lt9"):o.indexOf("compatible")<0&&o.indexOf("khtml")<0&&o.match(/mozilla/)&&b.picker.addClass("iris-mozilla"),b.options.palettes&&b._addPalettes(),b._color=new Color(e).setHSpace(b.options.mode),b.options.color=b._color.toString(),b.controls={square:b.picker.find(".iris-square"),squareDrag:b.picker.find(".iris-square-value"),horiz:b.picker.find(".iris-square-horiz"),vert:b.picker.find(".iris-square-vert"),strip:b.picker.find(".iris-strip"),stripSlider:b.picker.find(".iris-strip .iris-slider-offset")},"hsv"===b.options.mode&&b._has("l",b.options.controls)?b.options.controls=b._defaultHSVControls:"hsl"===b.options.mode&&b._has("v",b.options.controls)&&(b.options.controls=b._defaultHSLControls),b.hue=b._color.h(),b.options.hide&&b.picker.hide(),b.options.border&&b.picker.addClass("iris-border"),b._initControls(),b.active="external",b._dimensions(),b._change()},_has:function(b,c){var d=!1;return a.each(c,function(a,c){return b===c?(d=!0,!1):void 0}),d},_addPalettes:function(){var b=a('<div class="iris-palette-container" />'),c=a('<a class="iris-palette" tabindex="0" />'),d=a.isArray(this.options.palettes)?this.options.palettes:this._palettes;this.picker.find(".iris-palette-container").length&&(b=this.picker.find(".iris-palette-container").detach().html("")),a.each(d,function(a,d){c.clone().data("color",d).css("backgroundColor",d).appendTo(b).height(10).width(10)}),this.picker.append(b)},_paint:function(){var a=this;a._paintDimension("top","strip"),a._paintDimension("top","vert"),a._paintDimension("left","horiz")},_paintDimension:function(a,b){var c,d=this,e=d._color,f=d.options.mode,g=d._getHSpaceColor(),h=d.controls[b],i=d.options.controls;if(b!==d.active&&("square"!==d.active||"strip"===b))switch(i[b]){case"h":if("hsv"===f){switch(g=e.clone(),b){case"horiz":g[i.vert](100);break;case"vert":g[i.horiz](100);break;case"strip":g.setHSpace("hsl")}c=g.toHsl()}else c="strip"===b?{s:g.s,l:g.l}:{s:100,l:g.l};h.raninbowGradient(a,c);break;case"s":"hsv"===f?"vert"===b?c=[e.clone().a(0).s(0).toCSS("rgba"),e.clone().a(1).s(0).toCSS("rgba")]:"strip"===b?c=[e.clone().s(100).toCSS("hsl"),e.clone().s(0).toCSS("hsl")]:"horiz"===b&&(c=["#fff","hsl("+g.h+",100%,50%)"]):c="vert"===b&&"h"===d.options.controls.horiz?["hsla(0, 0%, "+g.l+"%, 0)","hsla(0, 0%, "+g.l+"%, 1)"]:["hsl("+g.h+",0%,50%)","hsl("+g.h+",100%,50%)"],h.gradient(a,c);break;case"l":c="strip"===b?["hsl("+g.h+",100%,100%)","hsl("+g.h+", "+g.s+"%,50%)","hsl("+g.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],h.gradient(a,c);break;case"v":c="strip"===b?[e.clone().v(100).toCSS(),e.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],h.gradient(a,c)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_dimensions:function(b){var c,d,e,f,g=this,h=g.options,i=g.controls,j=i.square,k=g.picker.find(".iris-strip"),l="77.5%",m="12%",n=20,o=h.border?h.width-n:h.width,p=a.isArray(h.palettes)?h.palettes.length:g._palettes.length;return b&&(j.css("width",""),k.css("width",""),g.picker.css({width:"",height:""})),l=o*(parseFloat(l)/100),m=o*(parseFloat(m)/100),c=h.border?l+n:l,j.width(l).height(l),k.height(l).width(m),g.picker.css({width:h.width,height:c}),h.palettes?(d=2*l/100,f=l-(p-1)*d,e=f/p,g.picker.find(".iris-palette").each(function(b){var c=0===b?0:d;a(this).css({width:e,height:e,marginLeft:c})}),g.picker.css("paddingBottom",e+d),k.height(e+d+l),void 0):g.picker.css("paddingBottom","")},_addInputListeners:function(a){var b=this,c=100,d=function(c){var d=new Color(a.val()),e=a.val().replace(/^#/,"");a.removeClass("iris-error"),d.error?""!==e&&a.addClass("iris-error"):d.toString()!==b._color.toString()&&("keyup"===c.type&&e.match(/^[0-9a-fA-F]{3}$/)||b._setOption("color",d.toString()))};a.on("change",d).on("keyup",b._debounce(d,c)),b.options.hide&&a.one("focus",function(){b.show()})},_initControls:function(){var b=this,c=b.controls,d=c.square,e=b.options.controls,f=b._scale[e.strip];c.stripSlider.slider({orientation:"vertical",max:f,slide:function(a,c){b.active="strip","h"===e.strip&&(c.value=f-c.value),b._color[e.strip](c.value),b._change.apply(b,arguments)}}),c.squareDrag.draggable({containment:c.square.find(".iris-square-inner"),zIndex:1e3,cursor:"move",drag:function(a,c){b._squareDrag(a,c)},start:function(){d.addClass("iris-dragging"),a(this).addClass("ui-state-focus")},stop:function(){d.removeClass("iris-dragging"),a(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(c){var d="ui-state-focus";c.preventDefault(),"mousedown"===c.type?(b.picker.find("."+d).removeClass(d).blur(),a(this).addClass(d).focus()):a(this).removeClass(d)}).on("keydown",function(a){var d=c.square,e=c.squareDrag,f=e.position(),g=b.options.width/100;switch(a.altKey&&(g*=10),a.keyCode){case 37:f.left-=g;break;case 38:f.top-=g;break;case 39:f.left+=g;break;case 40:f.top+=g;break;default:return!0}f.left=Math.max(0,Math.min(f.left,d.width())),f.top=Math.max(0,Math.min(f.top,d.height())),e.css(f),b._squareDrag(a,{position:f}),a.preventDefault()}),d.mousedown(function(c){var d,e;1===c.which&&a(c.target).is("div")&&(d=b.controls.square.offset(),e={top:c.pageY-d.top,left:c.pageX-d.left},c.preventDefault(),b._squareDrag(c,{position:e}),c.target=b.controls.squareDrag.get(0),b.controls.squareDrag.css(e).trigger(c))}),b.options.palettes&&b._paletteListeners()},_paletteListeners:function(){var b=this;b.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){b._color.fromCSS(a(this).data("color")),b.active="external",b._change()}).on("keydown.palette",".iris-palette",function(b){return 13!==b.keyCode&&32!==b.keyCode?!0:(b.stopPropagation(),a(this).click(),void 0)})},_squareDrag:function(a,b){var c=this,d=c.options.controls,e=c._squareDimensions(),f=Math.round((e.h-b.position.top)/e.h*c._scale[d.vert]),g=c._scale[d.horiz]-Math.round((e.w-b.position.left)/e.w*c._scale[d.horiz]);c._color[d.horiz](g)[d.vert](f),c.active="square",c._change.apply(c,arguments)},_setOption:function(b,c){var d,e,f,g=this,h=g.options[b],i=!1;switch(g.options[b]=c,b){case"color":c=""+c,d=c.replace(/^#/,""),e=new Color(c).setHSpace(g.options.mode),e.error?g.options[b]=h:(g._color=e,g.options.color=g.options[b]=g._color.toString(),g.active="external",g._change());break;case"palettes":i=!0,c?g._addPalettes():g.picker.find(".iris-palette-container").remove(),h||g._paletteListeners();break;case"width":i=!0;break;case"border":i=!0,f=c?"addClass":"removeClass",g.picker[f]("iris-border");break;case"mode":case"controls":if(h===c)return;return f=g.element,h=g.options,h.hide=!g.picker.is(":visible"),g.destroy(),g.picker.remove(),a(g.element).iris(h)}i&&g._dimensions(!0)},_squareDimensions:function(a){var c,d,e=this.controls.square;return a!==b&&e.data("dimensions")?e.data("dimensions"):(d=this.controls.squareDrag,c={w:e.width(),h:e.height()},e.data("dimensions",c),c)},_isNonHueControl:function(a,b){return"square"===a&&"h"===this.options.controls.strip?!0:"external"===b||"h"===b&&"strip"===a?!1:!0},_change:function(){var b=this,c=b.controls,d=b._getHSpaceColor(),e=["square","strip"],f=b.options.controls,g=f[b.active]||"external",h=b.hue;"strip"===b.active?e=[]:"external"!==b.active&&e.pop(),a.each(e,function(a,e){var g,h,i;if(e!==b.active)switch(e){case"strip":g="h"===f.strip?b._scale[f.strip]-d[f.strip]:d[f.strip],c.stripSlider.slider("value",g);break;case"square":h=b._squareDimensions(),i={left:d[f.horiz]/b._scale[f.horiz]*h.w,top:h.h-d[f.vert]/b._scale[f.vert]*h.h},b.controls.squareDrag.css(i)}}),d.h!==h&&b._isNonHueControl(b.active,g)&&b._color.h(h),b.hue=b._color.h(),b.options.color=b._color.toString(),b._inited&&b._trigger("change",{type:b.active},{color:b._color}),b.element.is(":input")&&!b._color.error&&(b.element.removeClass("iris-error"),b.element.val()!==b._color.toString()&&b.element.val(b._color.toString())),b._paint(),b._inited=!0,b.active=!1},_debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()},color:function(a){return a===!0?this._color.clone():a===b?this._color.toString():(this.option("color",a),void 0)}},a.widget("a8c.iris",n),a('<style id="iris-css">'+m+"</style>").appendTo("head"),void 0)}(jQuery),function(a,b){var c=function(a,b){return this instanceof c?this._init(a,b):new c(a,b)};c.fn=c.prototype={_color:0,_alpha:1,error:!1,_hsl:{h:0,s:0,l:0},_hsv:{h:0,s:0,v:0},_hSpace:"hsl",_init:function(a){var c="noop";switch(typeof a){case"object":return a.a!==b&&this.a(a.a),c=a.r!==b?"fromRgb":a.l!==b?"fromHsl":a.v!==b?"fromHsv":c,this[c](a);case"string":return this.fromCSS(a);case"number":return this.fromInt(parseInt(a,10))}return this},_error:function(){return this.error=!0,this},clone:function(){for(var a=new c(this.toInt()),b=["_alpha","_hSpace","_hsl","_hsv","error"],d=b.length-1;d>=0;d--)a[b[d]]=this[b[d]];return a},setHSpace:function(a){return this._hSpace="hsv"===a?a:"hsl",this},noop:function(){return this},fromCSS:function(a){var b,c=/^(rgb|hs(l|v))a?\(/;if(this.error=!1,a=a.replace(/^\s+/,"").replace(/\s+$/,"").replace(/;$/,""),a.match(c)&&a.match(/\)$/)){if(b=a.replace(/(\s|%)/g,"").replace(c,"").replace(/,?\);?$/,"").split(","),b.length<3)return this._error();if(4===b.length&&(this.a(parseFloat(b.pop())),this.error))return this;for(var d=b.length-1;d>=0;d--)if(b[d]=parseInt(b[d],10),isNaN(b[d]))return this._error();return a.match(/^rgb/)?this.fromRgb({r:b[0],g:b[1],b:b[2]}):a.match(/^hsv/)?this.fromHsv({h:b[0],s:b[1],v:b[2]}):this.fromHsl({h:b[0],s:b[1],l:b[2]})}return this.fromHex(a)},fromRgb:function(a,c){return"object"!=typeof a||a.r===b||a.g===b||a.b===b?this._error():(this.error=!1,this.fromInt(parseInt((a.r<<16)+(a.g<<8)+a.b,10),c))},fromHex:function(a){return a=a.replace(/^#/,"").replace(/^0x/,""),3===a.length&&(a=a[0]+a[0]+a[1]+a[1]+a[2]+a[2]),this.error=!/^[0-9A-F]{6}$/i.test(a),this.fromInt(parseInt(a,16))},fromHsl:function(a){var c,d,e,f,g,h,i,j;return"object"!=typeof a||a.h===b||a.s===b||a.l===b?this._error():(this._hsl=a,this._hSpace="hsl",h=a.h/360,i=a.s/100,j=a.l/100,0===i?c=d=e=j:(f=.5>j?j*(1+i):j+i-j*i,g=2*j-f,c=this.hue2rgb(g,f,h+1/3),d=this.hue2rgb(g,f,h),e=this.hue2rgb(g,f,h-1/3)),this.fromRgb({r:255*c,g:255*d,b:255*e},!0))},fromHsv:function(a){var c,d,e,f,g,h,i,j,k,l,m;if("object"!=typeof a||a.h===b||a.s===b||a.v===b)return this._error();switch(this._hsv=a,this._hSpace="hsv",c=a.h/360,d=a.s/100,e=a.v/100,i=Math.floor(6*c),j=6*c-i,k=e*(1-d),l=e*(1-j*d),m=e*(1-(1-j)*d),i%6){case 0:f=e,g=m,h=k;break;case 1:f=l,g=e,h=k;break;case 2:f=k,g=e,h=m;break;case 3:f=k,g=l,h=e;break;case 4:f=m,g=k,h=e;break;case 5:f=e,g=k,h=l}return this.fromRgb({r:255*f,g:255*g,b:255*h},!0)},fromInt:function(a,c){return this._color=parseInt(a,10),isNaN(this._color)&&(this._color=0),this._color>16777215?this._color=16777215:this._color<0&&(this._color=0),c===b&&(this._hsv.h=this._hsv.s=this._hsl.h=this._hsl.s=0),this},hue2rgb:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+6*(b-a)*(2/3-c):a},toString:function(){var a=parseInt(this._color,10).toString(16);if(this.error)return"";if(a.length<6)for(var b=6-a.length-1;b>=0;b--)a="0"+a;return"#"+a},toCSS:function(a,b){switch(a=a||"hex",b=parseFloat(b||this._alpha),a){case"rgb":case"rgba":var c=this.toRgb();return 1>b?"rgba( "+c.r+", "+c.g+", "+c.b+", "+b+" )":"rgb( "+c.r+", "+c.g+", "+c.b+" )";case"hsl":case"hsla":var d=this.toHsl();return 1>b?"hsla( "+d.h+", "+d.s+"%, "+d.l+"%, "+b+" )":"hsl( "+d.h+", "+d.s+"%, "+d.l+"% )";default:return this.toString()}},toRgb:function(){return{r:255&this._color>>16,g:255&this._color>>8,b:255&this._color}},toHsl:function(){var a,b,c=this.toRgb(),d=c.r/255,e=c.g/255,f=c.b/255,g=Math.max(d,e,f),h=Math.min(d,e,f),i=(g+h)/2;if(g===h)a=b=0;else{var j=g-h;switch(b=i>.5?j/(2-g-h):j/(g+h),g){case d:a=(e-f)/j+(f>e?6:0);break;case e:a=(f-d)/j+2;break;case f:a=(d-e)/j+4}a/=6}return a=Math.round(360*a),0===a&&this._hsl.h!==a&&(a=this._hsl.h),b=Math.round(100*b),0===b&&this._hsl.s&&(b=this._hsl.s),{h:a,s:b,l:Math.round(100*i)}},toHsv:function(){var a,b,c=this.toRgb(),d=c.r/255,e=c.g/255,f=c.b/255,g=Math.max(d,e,f),h=Math.min(d,e,f),i=g,j=g-h;if(b=0===g?0:j/g,g===h)a=b=0;else{switch(g){case d:a=(e-f)/j+(f>e?6:0);break;case e:a=(f-d)/j+2;break;case f:a=(d-e)/j+4}a/=6}return a=Math.round(360*a),0===a&&this._hsv.h!==a&&(a=this._hsv.h),b=Math.round(100*b),0===b&&this._hsv.s&&(b=this._hsv.s),{h:a,s:b,v:Math.round(100*i)}},toInt:function(){return this._color},toIEOctoHex:function(){var a=this.toString(),b=parseInt(255*this._alpha,10).toString(16);return 1===b.length&&(b="0"+b),"#"+b+a.replace(/^#/,"")},toLuminosity:function(){var a=this.toRgb();return.2126*Math.pow(a.r/255,2.2)+.7152*Math.pow(a.g/255,2.2)+.0722*Math.pow(a.b/255,2.2)},getDistanceLuminosityFrom:function(a){if(!(a instanceof c))throw"getDistanceLuminosityFrom requires a Color object";var b=this.toLuminosity(),d=a.toLuminosity();return b>d?(b+.05)/(d+.05):(d+.05)/(b+.05)},getMaxContrastColor:function(){var a=this.toLuminosity(),b=a>=.5?"000000":"ffffff";return new c(b)},getReadableContrastingColor:function(a,d){if(!a instanceof c)return this;var e=d===b?5:d,f=a.getDistanceLuminosityFrom(this),g=a.getMaxContrastColor(),h=g.getDistanceLuminosityFrom(a);if(e>=h)return g;if(f>=e)return this;for(var i=0===g.toInt()?-1:1;e>f&&(this.l(i,!0),f=this.getDistanceLuminosityFrom(a),0!==this._color&&16777215!==this._color););return this},a:function(a){if(a===b)return this._alpha;var c=parseFloat(a);return isNaN(c)?this._error():(this._alpha=c,this)},darken:function(a){return a=a||5,this.l(-a,!0)},lighten:function(a){return a=a||5,this.l(a,!0)},saturate:function(a){return a=a||15,this.s(a,!0)},desaturate:function(a){return a=a||15,this.s(-a,!0)},toGrayscale:function(){return this.setHSpace("hsl").s(0)},getComplement:function(){return this.h(180,!0)},getSplitComplement:function(a){a=a||1;var b=180+30*a;return this.h(b,!0)},getAnalog:function(a){a=a||1;var b=30*a;return this.h(b,!0)},getTetrad:function(a){a=a||1;var b=60*a;return this.h(b,!0)},getTriad:function(a){a=a||1;var b=120*a;return this.h(b,!0)},_partial:function(a){var c=d[a];return function(d,e){var f=this._spaceFunc("to",c.space);return d===b?f[a]:(e===!0&&(d=f[a]+d),c.mod&&(d%=c.mod),c.range&&(d=d<c.range[0]?c.range[0]:d>c.range[1]?c.range[1]:d),f[a]=d,this._spaceFunc("from",c.space,f))}},_spaceFunc:function(a,b,c){var d=b||this._hSpace,e=a+d.charAt(0).toUpperCase()+d.substr(1);return this[e](c)}};var d={h:{mod:360},s:{range:[0,100]},l:{space:"hsl",range:[0,100]},v:{space:"hsv",range:[0,100]},r:{space:"rgb",range:[0,255]},g:{space:"rgb",range:[0,255]},b:{space:"rgb",range:[0,255]}};for(var e in d)d.hasOwnProperty(e)&&(c.fn[e]=c.fn._partial(e));"object"==typeof exports?module.exports=c:a.Color=c}(this);
\ No newline at end of file
+* Copyright (c) 2016 Matt Wiebe; Licensed GPLv2 */
+!function(a,b){function c(){var b,c,d="backgroundImage";j?k="filter":(b=a('<div id="iris-gradtest" />'),c="linear-gradient(top,#fff,#000)",a.each(l,function(a,e){if(b.css(d,e+c),b.css(d).match("gradient"))return k=a,!1}),k===!1&&(b.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),b.css(d).match("gradient")&&(k="webkit")),b.remove())}function d(b,c){return b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),"webkit"===k?f(b,c):l[k]+"linear-gradient("+b+", "+c.join(", ")+")"}function e(b,c){var d,e,f,h,i,j,k,l,m;b="top"===b?"top":"left",c=a.isArray(c)?c:Array.prototype.slice.call(arguments,1),d="top"===b?0:1,e=a(this),f=c.length-1,h="filter",i=1===d?"left":"top",j=1===d?"right":"bottom",k=1===d?"height":"width",l='<div class="iris-ie-gradient-shim" style="position:absolute;'+k+":100%;"+i+":%start%;"+j+":%end%;"+h+':%filter%;" data-color:"%color%"></div>',m="","static"===e.css("position")&&e.css({position:"relative"}),c=g(c),a.each(c,function(a,b){var e,g,h;return a!==f&&(e=c[a+1],void(b.stop!==e.stop&&(g=100-parseFloat(e.stop)+"%",b.octoHex=new Color(b.color).toIEOctoHex(),e.octoHex=new Color(e.color).toIEOctoHex(),h="progid:DXImageTransform.Microsoft.Gradient(GradientType="+d+", StartColorStr='"+b.octoHex+"', EndColorStr='"+e.octoHex+"')",m+=l.replace("%start%",b.stop).replace("%end%",g).replace("%filter%",h))))}),e.find(".iris-ie-gradient-shim").remove(),a(m).prependTo(e)}function f(b,c){var d=[];return b="top"===b?"0% 0%,0% 100%,":"0% 100%,100% 100%,",c=g(c),a.each(c,function(a,b){d.push("color-stop("+parseFloat(b.stop)/100+", "+b.color+")")}),"-webkit-gradient(linear,"+b+d.join(",")+")"}function g(b){var c=[],d=[],e=[],f=b.length-1;return a.each(b,function(a,b){var e=b,f=!1,g=b.match(/1?[0-9]{1,2}%$/);g&&(e=b.replace(/\s?1?[0-9]{1,2}%$/,""),f=g.shift()),c.push(e),d.push(f)}),d[0]===!1&&(d[0]="0%"),d[f]===!1&&(d[f]="100%"),d=h(d),a.each(d,function(a){e[a]={color:c[a],stop:d[a]}}),e}function h(b){var c,d,e,f,g=0,i=b.length-1,j=0,k=!1;if(b.length<=2||a.inArray(!1,b)<0)return b;for(;j<b.length-1;)k||b[j]!==!1?k&&b[j]!==!1&&(i=j,j=b.length):(g=j-1,k=!0),j++;for(d=i-g,f=parseInt(b[g].replace("%"),10),c=(parseFloat(b[i].replace("%"))-f)/d,j=g+1,e=1;j<i;)b[j]=f+e*c+"%",e++,j++;return h(b)}var i,j,k,l,m,n,o,p,q;return i='<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>',m='.iris-picker{display:block;position:relative}.iris-picker,.iris-picker *{-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input+.iris-picker{margin-top:4px}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-only-strip .iris-slider{width:100%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-only-strip .iris-square{display:none}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:0 0;border:3px solid #fff;-ms-filter:"alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:0 0;margin:0;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip-horiz .iris-strip .ui-slider-handle{right:auto;left:auto;bottom:-3px;top:-3px;height:auto;width:6px;cursor:ew-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px;width:auto;height:auto;background:transparent;border:0;border-radius:0}.iris-strip-horiz .iris-slider-offset{top:0;bottom:0;right:11px;left:-3px}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}.iris-square-handle,.ui-slider-handle{border:0;outline:0}',o=navigator.userAgent.toLowerCase(),p="Microsoft Internet Explorer"===navigator.appName,q=p?parseFloat(o.match(/msie ([0-9]{1,}[\.0-9]{0,})/)[1]):0,j=p&&q<10,k=!1,l=["-moz-","-webkit-","-o-","-ms-"],j&&q<=7?(a.fn.iris=a.noop,void(a.support.iris=!1)):(a.support.iris=!0,a.fn.gradient=function(){var b=arguments;return this.each(function(){j?e.apply(this,b):a(this).css("backgroundImage",d.apply(this,b))})},a.fn.rainbowGradient=function(b,c){var d,e,f,g;for(b=b||"top",d=a.extend({},{s:100,l:50},c),e="hsl(%h%,"+d.s+"%,"+d.l+"%)",f=0,g=[];f<=360;)g.push(e.replace("%h%",f)),f+=30;return this.each(function(){a(this).gradient(b,g)})},n={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1,type:"full",slider:"horizontal"},_color:"",_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_defaultHSLControls:{horiz:"s",vert:"l",strip:"h"},_defaultHSVControls:{horiz:"h",vert:"v",strip:"s"},_scale:{h:360,s:100,l:100,v:100},_create:function(){var b=this,d=b.element,e=b.options.color||d.val();k===!1&&c(),d.is("input")?(b.options.target?b.picker=a(i).appendTo(b.options.target):b.picker=a(i).insertAfter(d),b._addInputListeners(d)):(d.append(i),b.picker=d.find(".iris-picker")),p?9===q?b.picker.addClass("iris-ie-9"):q<=8&&b.picker.addClass("iris-ie-lt9"):o.indexOf("compatible")<0&&o.indexOf("khtml")<0&&o.match(/mozilla/)&&b.picker.addClass("iris-mozilla"),b.options.palettes&&b._addPalettes(),b.onlySlider="hue"===b.options.type,b.horizontalSlider=b.onlySlider&&"horizontal"===b.options.slider,b.onlySlider&&(b.options.controls.strip="h",e||(e="hsl(10,100,50)")),b._color=new Color(e).setHSpace(b.options.mode),b.options.color=b._color.toString(),b.controls={square:b.picker.find(".iris-square"),squareDrag:b.picker.find(".iris-square-value"),horiz:b.picker.find(".iris-square-horiz"),vert:b.picker.find(".iris-square-vert"),strip:b.picker.find(".iris-strip"),stripSlider:b.picker.find(".iris-strip .iris-slider-offset")},"hsv"===b.options.mode&&b._has("l",b.options.controls)?b.options.controls=b._defaultHSVControls:"hsl"===b.options.mode&&b._has("v",b.options.controls)&&(b.options.controls=b._defaultHSLControls),b.hue=b._color.h(),b.options.hide&&b.picker.hide(),b.options.border&&!b.onlySlider&&b.picker.addClass("iris-border"),b._initControls(),b.active="external",b._dimensions(),b._change()},_has:function(b,c){var d=!1;return a.each(c,function(a,c){if(b===c)return d=!0,!1}),d},_addPalettes:function(){var b=a('<div class="iris-palette-container" />'),c=a('<a class="iris-palette" tabindex="0" />'),d=a.isArray(this.options.palettes)?this.options.palettes:this._palettes;this.picker.find(".iris-palette-container").length&&(b=this.picker.find(".iris-palette-container").detach().html("")),a.each(d,function(a,d){c.clone().data("color",d).css("backgroundColor",d).appendTo(b).height(10).width(10)}),this.picker.append(b)},_paint:function(){var a=this;a.horizontalSlider?a._paintDimension("left","strip"):a._paintDimension("top","strip"),a._paintDimension("top","vert"),a._paintDimension("left","horiz")},_paintDimension:function(a,b){var c,d=this,e=d._color,f=d.options.mode,g=d._getHSpaceColor(),h=d.controls[b],i=d.options.controls;if(b!==d.active&&("square"!==d.active||"strip"===b))switch(i[b]){case"h":if("hsv"===f){switch(g=e.clone(),b){case"horiz":g[i.vert](100);break;case"vert":g[i.horiz](100);break;case"strip":g.setHSpace("hsl")}c=g.toHsl()}else c="strip"===b?{s:g.s,l:g.l}:{s:100,l:g.l};h.rainbowGradient(a,c);break;case"s":"hsv"===f?"vert"===b?c=[e.clone().a(0).s(0).toCSS("rgba"),e.clone().a(1).s(0).toCSS("rgba")]:"strip"===b?c=[e.clone().s(100).toCSS("hsl"),e.clone().s(0).toCSS("hsl")]:"horiz"===b&&(c=["#fff","hsl("+g.h+",100%,50%)"]):c="vert"===b&&"h"===d.options.controls.horiz?["hsla(0, 0%, "+g.l+"%, 0)","hsla(0, 0%, "+g.l+"%, 1)"]:["hsl("+g.h+",0%,50%)","hsl("+g.h+",100%,50%)"],h.gradient(a,c);break;case"l":c="strip"===b?["hsl("+g.h+",100%,100%)","hsl("+g.h+", "+g.s+"%,50%)","hsl("+g.h+",100%,0%)"]:["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],h.gradient(a,c);break;case"v":c="strip"===b?[e.clone().v(100).toCSS(),e.clone().v(0).toCSS()]:["rgba(0,0,0,0)","#000"],h.gradient(a,c)}},_getHSpaceColor:function(){return"hsv"===this.options.mode?this._color.toHsv():this._color.toHsl()},_stripOnlyDimensions:function(){var a=this,b=this.options.width,c=.12*b;a.horizontalSlider?a.picker.css({width:b,height:c}).addClass("iris-only-strip iris-strip-horiz"):a.picker.css({width:c,height:b}).addClass("iris-only-strip iris-strip-vert")},_dimensions:function(b){if("hue"===this.options.type)return this._stripOnlyDimensions();var c,d,e,f,g=this,h=g.options,i=g.controls,j=i.square,k=g.picker.find(".iris-strip"),l="77.5%",m="12%",n=20,o=h.border?h.width-n:h.width,p=a.isArray(h.palettes)?h.palettes.length:g._palettes.length;return b&&(j.css("width",""),k.css("width",""),g.picker.css({width:"",height:""})),l=o*(parseFloat(l)/100),m=o*(parseFloat(m)/100),c=h.border?l+n:l,j.width(l).height(l),k.height(l).width(m),g.picker.css({width:h.width,height:c}),h.palettes?(d=2*l/100,f=l-(p-1)*d,e=f/p,g.picker.find(".iris-palette").each(function(b){var c=0===b?0:d;a(this).css({width:e,height:e,marginLeft:c})}),g.picker.css("paddingBottom",e+d),void k.height(e+d+l)):g.picker.css("paddingBottom","")},_addInputListeners:function(a){var b=this,c=100,d=function(c){var d=new Color(a.val()),e=a.val().replace(/^#/,"");a.removeClass("iris-error"),d.error?""!==e&&a.addClass("iris-error"):d.toString()!==b._color.toString()&&("keyup"===c.type&&e.match(/^[0-9a-fA-F]{3}$/)||b._setOption("color",d.toString()))};a.on("change",d).on("keyup",b._debounce(d,c)),b.options.hide&&a.one("focus",function(){b.show()})},_initControls:function(){var b=this,c=b.controls,d=c.square,e=b.options.controls,f=b._scale[e.strip],g=b.horizontalSlider?"horizontal":"vertical";c.stripSlider.slider({orientation:g,max:f,slide:function(a,c){b.active="strip","h"===e.strip&&"vertical"===g&&(c.value=f-c.value),b._color[e.strip](c.value),b._change.apply(b,arguments)}}),c.squareDrag.draggable({containment:c.square.find(".iris-square-inner"),zIndex:1e3,cursor:"move",drag:function(a,c){b._squareDrag(a,c)},start:function(){d.addClass("iris-dragging"),a(this).addClass("ui-state-focus")},stop:function(){d.removeClass("iris-dragging"),a(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(c){var d="ui-state-focus";c.preventDefault(),"mousedown"===c.type?(b.picker.find("."+d).removeClass(d).blur(),a(this).addClass(d).focus()):a(this).removeClass(d)}).on("keydown",function(a){var d=c.square,e=c.squareDrag,f=e.position(),g=b.options.width/100;switch(a.altKey&&(g*=10),a.keyCode){case 37:f.left-=g;break;case 38:f.top-=g;break;case 39:f.left+=g;break;case 40:f.top+=g;break;default:return!0}f.left=Math.max(0,Math.min(f.left,d.width())),f.top=Math.max(0,Math.min(f.top,d.height())),e.css(f),b._squareDrag(a,{position:f}),a.preventDefault()}),d.mousedown(function(c){var d,e;1===c.which&&a(c.target).is("div")&&(d=b.controls.square.offset(),e={top:c.pageY-d.top,left:c.pageX-d.left},c.preventDefault(),b._squareDrag(c,{position:e}),c.target=b.controls.squareDrag.get(0),b.controls.squareDrag.css(e).trigger(c))}),b.options.palettes&&b._paletteListeners()},_paletteListeners:function(){var b=this;b.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){b._color.fromCSS(a(this).data("color")),b.active="external",b._change()}).on("keydown.palette",".iris-palette",function(b){return 13!==b.keyCode&&32!==b.keyCode||(b.stopPropagation(),void a(this).click())})},_squareDrag:function(a,b){var c=this,d=c.options.controls,e=c._squareDimensions(),f=Math.round((e.h-b.position.top)/e.h*c._scale[d.vert]),g=c._scale[d.horiz]-Math.round((e.w-b.position.left)/e.w*c._scale[d.horiz]);c._color[d.horiz](g)[d.vert](f),c.active="square",c._change.apply(c,arguments)},_setOption:function(b,c){var d,e,f,g=this,h=g.options[b],i=!1;switch(g.options[b]=c,b){case"color":g.onlySlider?(c=parseInt(c,10),c=isNaN(c)||c<0||c>359?h:"hsl("+c+",100,50)",g.options.color=g.options[b]=c,g._color=new Color(c).setHSpace(g.options.mode),g.active="external",g._change()):(c=""+c,d=c.replace(/^#/,""),e=new Color(c).setHSpace(g.options.mode),e.error?g.options[b]=h:(g._color=e,g.options.color=g.options[b]=g._color.toString(),g.active="external",g._change()));break;case"palettes":i=!0,c?g._addPalettes():g.picker.find(".iris-palette-container").remove(),h||g._paletteListeners();break;case"width":i=!0;break;case"border":i=!0,f=c?"addClass":"removeClass",g.picker[f]("iris-border");break;case"mode":case"controls":if(h===c)return;return f=g.element,h=g.options,h.hide=!g.picker.is(":visible"),g.destroy(),g.picker.remove(),a(g.element).iris(h)}i&&g._dimensions(!0)},_squareDimensions:function(a){var c,d,e=this.controls.square;return a!==b&&e.data("dimensions")?e.data("dimensions"):(d=this.controls.squareDrag,c={w:e.width(),h:e.height()},e.data("dimensions",c),c)},_isNonHueControl:function(a,b){return"square"===a&&"h"===this.options.controls.strip||"external"!==b&&("h"!==b||"strip"!==a)},_change:function(){var b=this,c=b.controls,d=b._getHSpaceColor(),e=["square","strip"],f=b.options.controls,g=f[b.active]||"external",h=b.hue;"strip"===b.active?e=[]:"external"!==b.active&&e.pop(),a.each(e,function(a,e){var g,h,i;if(e!==b.active)switch(e){case"strip":g="h"!==f.strip||b.horizontalSlider?d[f.strip]:b._scale[f.strip]-d[f.strip],c.stripSlider.slider("value",g);break;case"square":h=b._squareDimensions(),i={left:d[f.horiz]/b._scale[f.horiz]*h.w,top:h.h-d[f.vert]/b._scale[f.vert]*h.h},b.controls.squareDrag.css(i)}}),d.h!==h&&b._isNonHueControl(b.active,g)&&b._color.h(h),b.hue=b._color.h(),b.options.color=b._color.toString(),b._inited&&b._trigger("change",{type:b.active},{color:b._color}),b.element.is(":input")&&!b._color.error&&(b.element.removeClass("iris-error"),b.onlySlider?b.element.val()!==b.hue&&b.element.val(b.hue):b.element.val()!==b._color.toString()&&b.element.val(b._color.toString())),b._paint(),b._inited=!0,b.active=!1},_debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()},color:function(a){return a===!0?this._color.clone():a===b?this._color.toString():void this.option("color",a)}},a.widget("a8c.iris",n),void a('<style id="iris-css">'+m+"</style>").appendTo("head"))}(jQuery),function(a,b){var c=function(a,b){return this instanceof c?this._init(a,b):new c(a,b)};c.fn=c.prototype={_color:0,_alpha:1,error:!1,_hsl:{h:0,s:0,l:0},_hsv:{h:0,s:0,v:0},_hSpace:"hsl",_init:function(a){var c="noop";switch(typeof a){case"object":return a.a!==b&&this.a(a.a),c=a.r!==b?"fromRgb":a.l!==b?"fromHsl":a.v!==b?"fromHsv":c,this[c](a);case"string":return this.fromCSS(a);case"number":return this.fromInt(parseInt(a,10))}return this},_error:function(){return this.error=!0,this},clone:function(){for(var a=new c(this.toInt()),b=["_alpha","_hSpace","_hsl","_hsv","error"],d=b.length-1;d>=0;d--)a[b[d]]=this[b[d]];return a},setHSpace:function(a){return this._hSpace="hsv"===a?a:"hsl",this},noop:function(){return this},fromCSS:function(a){var b,c=/^(rgb|hs(l|v))a?\(/;if(this.error=!1,a=a.replace(/^\s+/,"").replace(/\s+$/,"").replace(/;$/,""),a.match(c)&&a.match(/\)$/)){if(b=a.replace(/(\s|%)/g,"").replace(c,"").replace(/,?\);?$/,"").split(","),b.length<3)return this._error();if(4===b.length&&(this.a(parseFloat(b.pop())),this.error))return this;for(var d=b.length-1;d>=0;d--)if(b[d]=parseInt(b[d],10),isNaN(b[d]))return this._error();return a.match(/^rgb/)?this.fromRgb({r:b[0],g:b[1],b:b[2]}):a.match(/^hsv/)?this.fromHsv({h:b[0],s:b[1],v:b[2]}):this.fromHsl({h:b[0],s:b[1],l:b[2]})}return this.fromHex(a)},fromRgb:function(a,c){return"object"!=typeof a||a.r===b||a.g===b||a.b===b?this._error():(this.error=!1,this.fromInt(parseInt((a.r<<16)+(a.g<<8)+a.b,10),c))},fromHex:function(a){return a=a.replace(/^#/,"").replace(/^0x/,""),3===a.length&&(a=a[0]+a[0]+a[1]+a[1]+a[2]+a[2]),this.error=!/^[0-9A-F]{6}$/i.test(a),this.fromInt(parseInt(a,16))},fromHsl:function(a){var c,d,e,f,g,h,i,j;return"object"!=typeof a||a.h===b||a.s===b||a.l===b?this._error():(this._hsl=a,this._hSpace="hsl",h=a.h/360,i=a.s/100,j=a.l/100,0===i?c=d=e=j:(f=j<.5?j*(1+i):j+i-j*i,g=2*j-f,c=this.hue2rgb(g,f,h+1/3),d=this.hue2rgb(g,f,h),e=this.hue2rgb(g,f,h-1/3)),this.fromRgb({r:255*c,g:255*d,b:255*e},!0))},fromHsv:function(a){var c,d,e,f,g,h,i,j,k,l,m;if("object"!=typeof a||a.h===b||a.s===b||a.v===b)return this._error();switch(this._hsv=a,this._hSpace="hsv",c=a.h/360,d=a.s/100,e=a.v/100,i=Math.floor(6*c),j=6*c-i,k=e*(1-d),l=e*(1-j*d),m=e*(1-(1-j)*d),i%6){case 0:f=e,g=m,h=k;break;case 1:f=l,g=e,h=k;break;case 2:f=k,g=e,h=m;break;case 3:f=k,g=l,h=e;break;case 4:f=m,g=k,h=e;break;case 5:f=e,g=k,h=l}return this.fromRgb({r:255*f,g:255*g,b:255*h},!0)},fromInt:function(a,c){return this._color=parseInt(a,10),isNaN(this._color)&&(this._color=0),this._color>16777215?this._color=16777215:this._color<0&&(this._color=0),c===b&&(this._hsv.h=this._hsv.s=this._hsl.h=this._hsl.s=0),this},hue2rgb:function(a,b,c){return c<0&&(c+=1),c>1&&(c-=1),c<1/6?a+6*(b-a)*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a},toString:function(){var a=parseInt(this._color,10).toString(16);if(this.error)return"";if(a.length<6)for(var b=6-a.length-1;b>=0;b--)a="0"+a;return"#"+a},toCSS:function(a,b){switch(a=a||"hex",b=parseFloat(b||this._alpha),a){case"rgb":case"rgba":var c=this.toRgb();return b<1?"rgba( "+c.r+", "+c.g+", "+c.b+", "+b+" )":"rgb( "+c.r+", "+c.g+", "+c.b+" )";case"hsl":case"hsla":var d=this.toHsl();return b<1?"hsla( "+d.h+", "+d.s+"%, "+d.l+"%, "+b+" )":"hsl( "+d.h+", "+d.s+"%, "+d.l+"% )";default:return this.toString()}},toRgb:function(){return{r:255&this._color>>16,g:255&this._color>>8,b:255&this._color}},toHsl:function(){var a,b,c=this.toRgb(),d=c.r/255,e=c.g/255,f=c.b/255,g=Math.max(d,e,f),h=Math.min(d,e,f),i=(g+h)/2;if(g===h)a=b=0;else{var j=g-h;switch(b=i>.5?j/(2-g-h):j/(g+h),g){case d:a=(e-f)/j+(e<f?6:0);break;case e:a=(f-d)/j+2;break;case f:a=(d-e)/j+4}a/=6}return a=Math.round(360*a),0===a&&this._hsl.h!==a&&(a=this._hsl.h),b=Math.round(100*b),0===b&&this._hsl.s&&(b=this._hsl.s),{h:a,s:b,l:Math.round(100*i)}},toHsv:function(){var a,b,c=this.toRgb(),d=c.r/255,e=c.g/255,f=c.b/255,g=Math.max(d,e,f),h=Math.min(d,e,f),i=g,j=g-h;if(b=0===g?0:j/g,g===h)a=b=0;else{switch(g){case d:a=(e-f)/j+(e<f?6:0);break;case e:a=(f-d)/j+2;break;case f:a=(d-e)/j+4}a/=6}return a=Math.round(360*a),0===a&&this._hsv.h!==a&&(a=this._hsv.h),b=Math.round(100*b),0===b&&this._hsv.s&&(b=this._hsv.s),{h:a,s:b,v:Math.round(100*i)}},toInt:function(){return this._color},toIEOctoHex:function(){var a=this.toString(),b=parseInt(255*this._alpha,10).toString(16);return 1===b.length&&(b="0"+b),"#"+b+a.replace(/^#/,"")},toLuminosity:function(){var a=this.toRgb(),b={};for(var c in a)if(a.hasOwnProperty(c)){var d=a[c]/255;b[c]=d<=.03928?d/12.92:Math.pow((d+.055)/1.055,2.4)}return.2126*b.r+.7152*b.g+.0722*b.b},getDistanceLuminosityFrom:function(a){if(!(a instanceof c))throw"getDistanceLuminosityFrom requires a Color object";var b=this.toLuminosity(),d=a.toLuminosity();return b>d?(b+.05)/(d+.05):(d+.05)/(b+.05)},getMaxContrastColor:function(){var a=this.getDistanceLuminosityFrom(new c("#000")),b=this.getDistanceLuminosityFrom(new c("#fff")),d=a>=b?"#000":"#fff";return new c(d)},getReadableContrastingColor:function(a,d){if(!(a instanceof c))return this;var e,f,g,h=d===b?5:d,i=a.getDistanceLuminosityFrom(this);if(i>=h)return this;if(e=a.getMaxContrastColor(),f=e.getDistanceLuminosityFrom(a),f<=h)return e;for(g=0===e.toInt()?-1:1;i<h&&(this.l(g,!0),i=this.getDistanceLuminosityFrom(a),0!==this._color&&16777215!==this._color););return this},a:function(a){if(a===b)return this._alpha;var c=parseFloat(a);return isNaN(c)?this._error():(this._alpha=c,this)},darken:function(a){return a=a||5,this.l(-a,!0)},lighten:function(a){return a=a||5,this.l(a,!0)},saturate:function(a){return a=a||15,this.s(a,!0)},desaturate:function(a){return a=a||15,this.s(-a,!0)},toGrayscale:function(){return this.setHSpace("hsl").s(0)},getComplement:function(){return this.h(180,!0)},getSplitComplement:function(a){a=a||1;var b=180+30*a;return this.h(b,!0)},getAnalog:function(a){a=a||1;var b=30*a;return this.h(b,!0)},getTetrad:function(a){a=a||1;var b=60*a;return this.h(b,!0)},getTriad:function(a){a=a||1;var b=120*a;return this.h(b,!0)},_partial:function(a){var c=d[a];return function(d,e){var f=this._spaceFunc("to",c.space);return d===b?f[a]:(e===!0&&(d=f[a]+d),c.mod&&(d%=c.mod),c.range&&(d=d<c.range[0]?c.range[0]:d>c.range[1]?c.range[1]:d),f[a]=d,this._spaceFunc("from",c.space,f))}},_spaceFunc:function(a,b,c){var d=b||this._hSpace,e=a+d.charAt(0).toUpperCase()+d.substr(1);return this[e](c)}};var d={h:{mod:360},s:{range:[0,100]},l:{space:"hsl",range:[0,100]},v:{space:"hsv",range:[0,100]},r:{space:"rgb",range:[0,255]},g:{space:"rgb",range:[0,255]},b:{space:"rgb",range:[0,255]}};for(var e in d)d.hasOwnProperty(e)&&(c.fn[e]=c.fn._partial(e));"object"==typeof exports?module.exports=c:a.Color=c}(this);
\ No newline at end of file
diff --git a/wp-admin/js/media-gallery.js b/wp-admin/js/media-gallery.js
index 52da393dc..a71d8fe17 100644
--- a/wp-admin/js/media-gallery.js
+++ b/wp-admin/js/media-gallery.js
@@ -1,20 +1,33 @@
 /* global ajaxurl */
-jQuery(function($){
-	$( 'body' ).bind( 'click.wp-gallery', function(e){
+
+/**
+ * This file is used on media-upload.php which has been replaced by media-new.php and upload.php
+ * Deprecated since 3.5.0
+ */
+jQuery(function($) {
+	/**
+	 * Adds a click event handler to the element with a 'wp-gallery' class.
+	 */
+	$( 'body' ).bind( 'click.wp-gallery', function(e) {
 		var target = $( e.target ), id, img_size;
 
 		if ( target.hasClass( 'wp-set-header' ) ) {
+			// Opens the image to preview it full size.
 			( window.dialogArguments || opener || parent || top ).location.href = target.data( 'location' );
 			e.preventDefault();
 		} else if ( target.hasClass( 'wp-set-background' ) ) {
+			// Sets the image as background of the theme.
 			id = target.data( 'attachment-id' );
 			img_size = $( 'input[name="attachments[' + id + '][image-size]"]:checked').val();
 
+			/**
+			 * This AJAX action has been deprecated since 3.5.0, see custom-background.php
+			 */
 			jQuery.post(ajaxurl, {
 				action: 'set-background-image',
 				attachment_id: id,
 				size: img_size
-			}, function(){
+			}, function() {
 				var win = window.dialogArguments || opener || parent || top;
 				win.tb_remove();
 				win.location.reload();
diff --git a/wp-admin/js/nav-menu.js b/wp-admin/js/nav-menu.js
index 5a685a315..535aaf12a 100644
--- a/wp-admin/js/nav-menu.js
+++ b/wp-admin/js/nav-menu.js
@@ -82,9 +82,15 @@ var wpNavMenu;
 				shiftDepthClass : function(change) {
 					return this.each(function(){
 						var t = $(this),
-							depth = t.menuItemDepth();
-						$(this).removeClass('menu-item-depth-'+ depth )
-							.addClass('menu-item-depth-'+ (depth + change) );
+							depth = t.menuItemDepth(),
+							newDepth = depth + change;
+
+						t.removeClass( 'menu-item-depth-'+ depth )
+							.addClass( 'menu-item-depth-'+ ( newDepth ) );
+
+						if ( 0 === newDepth ) {
+							t.find( '.is-submenu' ).hide();
+						}
 					});
 				},
 				childMenuItems : function() {
@@ -400,14 +406,13 @@ var wpNavMenu;
 			} );
 
 			// Links for moving items
-			menu.on( 'click', '.menus-move', function ( e ) {
+			menu.on( 'click', '.menus-move', function () {
 				var $this = $( this ),
 					dir = $this.data( 'dir' );
 
 				if ( 'undefined' !== typeof dir ) {
 					api.moveMenuItem( $( this ).parents( 'li.menu-item' ).find( 'a.item-edit' ), dir );
 				}
-				e.preventDefault();
 			});
 		},
 
@@ -509,8 +514,8 @@ var wpNavMenu;
 		 */
 		refreshAdvancedAccessibility : function() {
 
-			// Hide all links by default
-			$( '.menu-item-settings .field-move a' ).hide();
+			// Hide all the move buttons by default.
+			$( '.menu-item-settings .field-move .menus-move' ).hide();
 
 			// Mark all menu items as unprocessed
 			$( 'a.item-edit' ).data( 'needs_accessibility_refresh', true );
@@ -882,17 +887,21 @@ var wpNavMenu;
 				inputEvent = 'keyup';
 			}
 
-			$( '.quick-search' ).on( inputEvent, function() {
-				var t = $(this);
+			$( '#nav-menu-meta' ).on( inputEvent, '.quick-search', function() {
+				var $this = $( this );
+
+				$this.attr( 'autocomplete', 'off' );
 
-				if( searchTimer ) clearTimeout(searchTimer);
+				if ( searchTimer ) {
+					clearTimeout( searchTimer );
+				}
 
-				searchTimer = setTimeout(function(){
-					api.updateQuickSearchResults( t );
-				}, 500 );
-			}).on( 'blur', function() {
+				searchTimer = setTimeout( function() {
+					api.updateQuickSearchResults( $this );
+ 				}, 500 );
+			}).on( 'blur', '.quick-search', function() {
 				api.lastSearch = '';
-			}).attr('autocomplete','off');
+			});
 		},
 
 		updateQuickSearchResults : function(input) {
@@ -1054,6 +1063,13 @@ var wpNavMenu;
 					// select the search bar
 					$('.quick-search', wrapper).focus();
 
+					// Hide controls in the search tab if no items found.
+					if ( ! wrapper.find( '.tabs-panel-active .menu-item-title' ).length ) {
+						wrapper.addClass( 'has-no-menu-item' );
+					} else {
+						wrapper.removeClass( 'has-no-menu-item' );
+					}
+
 					e.preventDefault();
 				} else if ( target.hasClass('select-all') ) {
 					selectAreaMatch = /#(.*)$/.exec(e.target.href);
@@ -1073,34 +1089,38 @@ var wpNavMenu;
 					else if ( e.target.id && -1 != e.target.id.indexOf('submit-') )
 						$('#' + e.target.id.replace(/submit-/, '')).addSelectedToMenu( api.addMenuItemToBottom );
 					return false;
-				} else if ( target.hasClass('page-numbers') ) {
-					$.post( ajaxurl, e.target.href.replace(/.*\?/, '').replace(/action=([^&]*)/, '') + '&action=menu-get-metabox',
-						function( resp ) {
-							if ( -1 == resp.indexOf('replace-id') )
-								return;
-
-							var metaBoxData = $.parseJSON(resp),
-							toReplace = document.getElementById(metaBoxData['replace-id']),
-							placeholder = document.createElement('div'),
-							wrap = document.createElement('div');
-
-							if ( ! metaBoxData.markup || ! toReplace )
-								return;
+				}
+			});
 
-							wrap.innerHTML = metaBoxData.markup ? metaBoxData.markup : '';
+			/*
+			 * Delegate the `click` event and attach it just to the pagination
+			 * links thus excluding the current page `<span>`. See ticket #35577.
+			 */
+			$( '#nav-menu-meta' ).on( 'click', 'a.page-numbers', function() {
+				var $container = $( this ).closest( '.inside' );
 
-							toReplace.parentNode.insertBefore( placeholder, toReplace );
-							placeholder.parentNode.removeChild( toReplace );
+				$.post( ajaxurl, this.href.replace( /.*\?/, '' ).replace( /action=([^&]*)/, '' ) + '&action=menu-get-metabox',
+					function( resp ) {
+						var metaBoxData = $.parseJSON( resp ),
+							toReplace;
 
-							placeholder.parentNode.insertBefore( wrap, placeholder );
+						if ( -1 === resp.indexOf( 'replace-id' ) ) {
+							return;
+						}
 
-							placeholder.parentNode.removeChild( placeholder );
+						// Get the post type menu meta box to update.
+						toReplace = document.getElementById( metaBoxData['replace-id'] );
 
+						if ( ! metaBoxData.markup || ! toReplace ) {
+							return;
 						}
-					);
 
-					return false;
-				}
+						// Update the post type menu meta box with new content from the response.
+						$container.html( metaBoxData.markup );
+					}
+				);
+
+				return false;
 			});
 		},
 
@@ -1186,11 +1206,13 @@ var wpNavMenu;
 			form = document.getElementById('nav-menu-meta'),
 			pattern = /menu-item[(\[^]\]*/,
 			$items = $('<div>').html(resp).find('li'),
+			wrapper = panel.closest( '.accordion-section-content' ),
 			$item;
 
 			if( ! $items.length ) {
 				$('.categorychecklist', panel).html( '<li><p>' + navMenuL10n.noResultsFound + '</p></li>' );
 				$( '.spinner', panel ).removeClass( 'is-active' );
+				wrapper.addClass( 'has-no-menu-item' );
 				return;
 			}
 
@@ -1218,6 +1240,7 @@ var wpNavMenu;
 
 			$('.categorychecklist', panel).html( $items );
 			$( '.spinner', panel ).removeClass( 'is-active' );
+			wrapper.removeClass( 'has-no-menu-item' );
 		},
 
 		removeMenuItem : function(el) {
diff --git a/wp-admin/js/nav-menu.min.js b/wp-admin/js/nav-menu.min.js
index 8fda6814e..62c0dbc49 100644
--- a/wp-admin/js/nav-menu.min.js
+++ b/wp-admin/js/nav-menu.min.js
@@ -1 +1 @@
-var wpNavMenu;!function(a){var b;b=wpNavMenu={options:{menuItemDepthPerLevel:30,globalMaxDepth:11,sortableItems:"> *",targetTolerance:0},menuList:void 0,targetList:void 0,menusChanged:!1,isRTL:!("undefined"==typeof isRtl||!isRtl),negateIfRTL:"undefined"!=typeof isRtl&&isRtl?-1:1,lastSearch:"",init:function(){b.menuList=a("#menu-to-edit"),b.targetList=b.menuList,this.jQueryExtensions(),this.attachMenuEditListeners(),this.attachQuickSearchListeners(),this.attachThemeLocationsListeners(),this.attachMenuSaveSubmitListeners(),this.attachTabsPanelListeners(),this.attachUnsavedChangesListener(),b.menuList.length&&this.initSortables(),menus.oneThemeLocationNoMenus&&a("#posttype-page").addSelectedToMenu(b.addMenuItemToBottom),this.initManageLocations(),this.initAccessibility(),this.initToggles(),this.initPreviewing()},jQueryExtensions:function(){a.fn.extend({menuItemDepth:function(){var a=b.isRTL?this.eq(0).css("margin-right"):this.eq(0).css("margin-left");return b.pxToDepth(a&&-1!=a.indexOf("px")?a.slice(0,-2):0)},updateDepthClass:function(b,c){return this.each(function(){var d=a(this);c=c||d.menuItemDepth(),a(this).removeClass("menu-item-depth-"+c).addClass("menu-item-depth-"+b)})},shiftDepthClass:function(b){return this.each(function(){var c=a(this),d=c.menuItemDepth();a(this).removeClass("menu-item-depth-"+d).addClass("menu-item-depth-"+(d+b))})},childMenuItems:function(){var b=a();return this.each(function(){for(var c=a(this),d=c.menuItemDepth(),e=c.next(".menu-item");e.length&&e.menuItemDepth()>d;)b=b.add(e),e=e.next(".menu-item")}),b},shiftHorizontally:function(b){return this.each(function(){var c=a(this),d=c.menuItemDepth(),e=d+b;c.moveHorizontally(e,d)})},moveHorizontally:function(b,c){return this.each(function(){var d=a(this),e=d.childMenuItems(),f=b-c,g=d.find(".is-submenu");d.updateDepthClass(b,c).updateParentMenuItemDBId(),e&&e.each(function(){var b=a(this),c=b.menuItemDepth(),d=c+f;b.updateDepthClass(d,c).updateParentMenuItemDBId()}),0===b?g.hide():g.show()})},updateParentMenuItemDBId:function(){return this.each(function(){var b=a(this),c=b.find(".menu-item-data-parent-id"),d=parseInt(b.menuItemDepth(),10),e=d-1,f=b.prevAll(".menu-item-depth-"+e).first();0===d?c.val(0):c.val(f.find(".menu-item-data-db-id").val())})},hideAdvancedMenuItemFields:function(){return this.each(function(){var b=a(this);a(".hide-column-tog").not(":checked").each(function(){b.find(".field-"+a(this).val()).addClass("hidden-field")})})},addSelectedToMenu:function(c){return 0!==a("#menu-to-edit").length&&this.each(function(){var d=a(this),e={},f=menus.oneThemeLocationNoMenus&&0===d.find(".tabs-panel-active .categorychecklist li input:checked").length?d.find('#page-all li input[type="checkbox"]'):d.find(".tabs-panel-active .categorychecklist li input:checked"),g=/menu-item\[([^\]]*)/;return c=c||b.addMenuItemToBottom,!!f.length&&(d.find(".button-controls .spinner").addClass("is-active"),a(f).each(function(){var d=a(this),f=g.exec(d.attr("name")),h="undefined"==typeof f[1]?0:parseInt(f[1],10);this.className&&-1!=this.className.indexOf("add-to-top")&&(c=b.addMenuItemToTop),e[h]=d.closest("li").getItemData("add-menu-item",h)}),void b.addItemToMenu(e,c,function(){f.removeAttr("checked"),d.find(".button-controls .spinner").removeClass("is-active")}))})},getItemData:function(a,b){a=a||"menu-item";var c,d={},e=["menu-item-db-id","menu-item-object-id","menu-item-object","menu-item-parent-id","menu-item-position","menu-item-type","menu-item-title","menu-item-url","menu-item-description","menu-item-attr-title","menu-item-target","menu-item-classes","menu-item-xfn"];return b||"menu-item"!=a||(b=this.find(".menu-item-data-db-id").val()),b?(this.find("input").each(function(){var f;for(c=e.length;c--;)"menu-item"==a?f=e[c]+"["+b+"]":"add-menu-item"==a&&(f="menu-item["+b+"]["+e[c]+"]"),this.name&&f==this.name&&(d[e[c]]=this.value)}),d):d},setItemData:function(b,c,d){return c=c||"menu-item",d||"menu-item"!=c||(d=a(".menu-item-data-db-id",this).val()),d?(this.find("input").each(function(){var e,f=a(this);a.each(b,function(a,b){"menu-item"==c?e=a+"["+d+"]":"add-menu-item"==c&&(e="menu-item["+d+"]["+a+"]"),e==f.attr("name")&&f.val(b)})}),this):this}})},countMenuItems:function(b){return a(".menu-item-depth-"+b).length},moveMenuItem:function(c,d){var e,f,g,h=a("#menu-to-edit li"),i=h.length,j=c.parents("li.menu-item"),k=j.childMenuItems(),l=j.getItemData(),m=parseInt(j.menuItemDepth(),10),n=parseInt(j.index(),10),o=j.next(),p=o.childMenuItems(),q=parseInt(o.menuItemDepth(),10)+1,r=j.prev(),s=parseInt(r.menuItemDepth(),10),t=r.getItemData()["menu-item-db-id"];switch(d){case"up":if(f=n-1,0===n)break;0===f&&0!==m&&j.moveHorizontally(0,m),0!==s&&j.moveHorizontally(s,m),k?(e=j.add(k),e.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId()):j.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId();break;case"down":if(k){if(e=j.add(k),o=h.eq(e.length+n),p=0!==o.childMenuItems().length,p&&(g=parseInt(o.menuItemDepth(),10)+1,j.moveHorizontally(g,m)),i===n+e.length)break;e.detach().insertAfter(h.eq(n+e.length)).updateParentMenuItemDBId()}else{if(0!==p.length&&j.moveHorizontally(q,m),i===n+1)break;j.detach().insertAfter(h.eq(n+1)).updateParentMenuItemDBId()}break;case"top":if(0===n)break;k?(e=j.add(k),e.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId()):j.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId();break;case"left":if(0===m)break;j.shiftHorizontally(-1);break;case"right":if(0===n)break;if(l["menu-item-parent-id"]===t)break;j.shiftHorizontally(1)}c.focus(),b.registerChange(),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},initAccessibility:function(){var c=a("#menu-to-edit");b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility(),c.on("mouseenter.refreshAccessibility focus.refreshAccessibility touchstart.refreshAccessibility",".menu-item",function(){b.refreshAdvancedAccessibilityOfItem(a(this).find("a.item-edit"))}),c.on("click","a.item-edit",function(){b.refreshAdvancedAccessibilityOfItem(a(this))}),c.on("click",".menus-move",function(c){var d=a(this),e=d.data("dir");"undefined"!=typeof e&&b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),e),c.preventDefault()})},refreshAdvancedAccessibilityOfItem:function(b){if(!0===a(b).data("needs_accessibility_refresh")){var c,d,e,f,g,h,i,j,k,l=a(b),m=l.closest("li.menu-item").first(),n=m.menuItemDepth(),o=0===n,p=l.closest(".menu-item-handle").find(".menu-item-title").text(),q=parseInt(m.index(),10),r=o?n:parseInt(n-1,10),s=m.prevAll(".menu-item-depth-"+r).first().find(".menu-item-title").text(),t=m.prevAll(".menu-item-depth-"+n).first().find(".menu-item-title").text(),u=a("#menu-to-edit li").length,v=m.nextAll(".menu-item-depth-"+n).length;m.find(".field-move").toggle(u>1),0!==q&&(c=m.find(".menus-move-up"),c.attr("aria-label",menus.moveUp).css("display","inline")),0!==q&&o&&(c=m.find(".menus-move-top"),c.attr("aria-label",menus.moveToTop).css("display","inline")),q+1!==u&&0!==q&&(c=m.find(".menus-move-down"),c.attr("aria-label",menus.moveDown).css("display","inline")),0===q&&0!==v&&(c=m.find(".menus-move-down"),c.attr("aria-label",menus.moveDown).css("display","inline")),o||(c=m.find(".menus-move-left"),d=menus.outFrom.replace("%s",s),c.attr("aria-label",menus.moveOutFrom.replace("%s",s)).text(d).css("display","inline")),0!==q&&m.find(".menu-item-data-parent-id").val()!==m.prev().find(".menu-item-data-db-id").val()&&(c=m.find(".menus-move-right"),d=menus.under.replace("%s",t),c.attr("aria-label",menus.moveUnder.replace("%s",t)).text(d).css("display","inline")),o?(e=a(".menu-item-depth-0"),f=e.index(m)+1,u=e.length,g=menus.menuFocus.replace("%1$s",p).replace("%2$d",f).replace("%3$d",u)):(h=m.prevAll(".menu-item-depth-"+parseInt(n-1,10)).first(),i=h.find(".menu-item-data-db-id").val(),j=h.find(".menu-item-title").text(),k=a('.menu-item .menu-item-data-parent-id[value="'+i+'"]'),f=a(k.parents(".menu-item").get().reverse()).index(m)+1,g=menus.subMenuFocus.replace("%1$s",p).replace("%2$d",f).replace("%3$s",j)),l.attr("aria-label",g).text(g),l.data("needs_accessibility_refresh",!1)}},refreshAdvancedAccessibility:function(){a(".menu-item-settings .field-move a").hide(),a("a.item-edit").data("needs_accessibility_refresh",!0),a(".menu-item-edit-active a.item-edit").each(function(){b.refreshAdvancedAccessibilityOfItem(this)})},refreshKeyboardAccessibility:function(){a("a.item-edit").off("focus").on("focus",function(){a(this).off("keydown").on("keydown",function(c){var d,e=a(this),f=e.parents("li.menu-item"),g=f.getItemData();if((37==c.which||38==c.which||39==c.which||40==c.which)&&(e.off("keydown"),1!==a("#menu-to-edit li").length)){switch(d={38:"up",40:"down",37:"left",39:"right"},a("body").hasClass("rtl")&&(d={38:"up",40:"down",39:"left",37:"right"}),d[c.which]){case"up":b.moveMenuItem(e,"up");break;case"down":b.moveMenuItem(e,"down");break;case"left":b.moveMenuItem(e,"left");break;case"right":b.moveMenuItem(e,"right")}return a("#edit-"+g["menu-item-db-id"]).focus(),!1}})})},initPreviewing:function(){a("#menu-to-edit").on("change input",".edit-menu-item-title",function(b){var c,d,e=a(b.currentTarget);c=e.val(),d=e.closest(".menu-item").find(".menu-item-title"),c?d.text(c).removeClass("no-title"):d.text(navMenuL10n.untitled).addClass("no-title")})},initToggles:function(){postboxes.add_postbox_toggles("nav-menus"),columns.useCheckboxesForHidden(),columns.checked=function(b){a(".field-"+b).removeClass("hidden-field")},columns.unchecked=function(b){a(".field-"+b).addClass("hidden-field")},b.menuList.hideAdvancedMenuItemFields(),a(".hide-postbox-tog").click(function(){var b=a(".accordion-container li.accordion-section").filter(":hidden").map(function(){return this.id}).get().join(",");a.post(ajaxurl,{action:"closed-postboxes",hidden:b,closedpostboxesnonce:jQuery("#closedpostboxesnonce").val(),page:"nav-menus"})})},initSortables:function(){function c(a){var c;j=a.placeholder.prev(".menu-item"),k=a.placeholder.next(".menu-item"),j[0]==a.item[0]&&(j=j.prev(".menu-item")),k[0]==a.item[0]&&(k=k.next(".menu-item")),l=j.length?j.offset().top+j.height():0,m=k.length?k.offset().top+k.height()/3:0,h=k.length?k.menuItemDepth():0,i=j.length?(c=j.menuItemDepth()+1)>b.options.globalMaxDepth?b.options.globalMaxDepth:c:0}function d(a,b){a.placeholder.updateDepthClass(b,q),q=b}function e(){if(!s[0].className)return 0;var a=s[0].className.match(/menu-max-depth-(\d+)/);return a&&a[1]?parseInt(a[1],10):0}function f(c){var d,e=t;if(0!==c){if(c>0)d=p+c,d>t&&(e=d);else if(c<0&&p==t)for(;!a(".menu-item-depth-"+e,b.menuList).length&&e>0;)e--;s.removeClass("menu-max-depth-"+t).addClass("menu-max-depth-"+e),t=e}}var g,h,i,j,k,l,m,n,o,p,q=0,r=b.menuList.offset().left,s=a("body"),t=e();0!==a("#menu-to-edit li").length&&a(".drag-instructions").show(),r+=b.isRTL?b.menuList.width():0,b.menuList.sortable({handle:".menu-item-handle",placeholder:"sortable-placeholder",items:b.options.sortableItems,start:function(e,f){var h,i,j,k,l;b.isRTL&&(f.item[0].style.right="auto"),o=f.item.children(".menu-item-transport"),g=f.item.menuItemDepth(),d(f,g),j=f.item.next()[0]==f.placeholder[0]?f.item.next():f.item,k=j.childMenuItems(),o.append(k),h=o.outerHeight(),h+=h>0?1*f.placeholder.css("margin-top").slice(0,-2):0,h+=f.helper.outerHeight(),n=h,h-=2,f.placeholder.height(h),p=g,k.each(function(){var b=a(this).menuItemDepth();p=b>p?b:p}),i=f.helper.find(".menu-item-handle").outerWidth(),i+=b.depthToPx(p-g),i-=2,f.placeholder.width(i),l=f.placeholder.next(".menu-item"),l.css("margin-top",n+"px"),f.placeholder.detach(),a(this).sortable("refresh"),f.item.after(f.placeholder),l.css("margin-top",0),c(f)},stop:function(a,c){var d,e,h=q-g;d=o.children().insertAfter(c.item),e=c.item.find(".item-title .is-submenu"),0<q?e.show():e.hide(),0!==h&&(c.item.updateDepthClass(q),d.shiftDepthClass(h),f(h)),b.registerChange(),c.item.updateParentMenuItemDBId(),c.item[0].style.top=0,b.isRTL&&(c.item[0].style.left="auto",c.item[0].style.right=0),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},change:function(a,d){d.placeholder.parent().hasClass("menu")||(j.length?j.after(d.placeholder):b.menuList.prepend(d.placeholder)),c(d)},sort:function(e,f){var g=f.helper.offset(),j=b.isRTL?g.left+f.helper.width():g.left,o=b.negateIfRTL*b.pxToDepth(j-r);o>i||g.top<l-b.options.targetTolerance?o=i:o<h&&(o=h),o!=q&&d(f,o),m&&g.top+n>m&&(k.after(f.placeholder),c(f),a(this).sortable("refreshPositions"))}})},initManageLocations:function(){a("#menu-locations-wrap form").submit(function(){window.onbeforeunload=null}),a(".menu-location-menus select").on("change",function(){var b=a(this).closest("tr").find(".locations-edit-menu-link");a(this).find("option:selected").data("orig")?b.show():b.hide()})},attachMenuEditListeners:function(){var b=this;a("#update-nav-menu").bind("click",function(a){if(a.target&&a.target.className){if(-1!=a.target.className.indexOf("item-edit"))return b.eventOnClickEditLink(a.target);if(-1!=a.target.className.indexOf("menu-save"))return b.eventOnClickMenuSave(a.target);if(-1!=a.target.className.indexOf("menu-delete"))return b.eventOnClickMenuDelete(a.target);if(-1!=a.target.className.indexOf("item-delete"))return b.eventOnClickMenuItemDelete(a.target);if(-1!=a.target.className.indexOf("item-cancel"))return b.eventOnClickCancelLink(a.target)}}),a('#add-custom-links input[type="text"]').keypress(function(b){a("#customlinkdiv").removeClass("form-invalid"),13===b.keyCode&&(b.preventDefault(),a("#submit-customlinkdiv").click())})},attachMenuSaveSubmitListeners:function(){a("#update-nav-menu").submit(function(){var b=a("#update-nav-menu").serializeArray();a('[name="nav-menu-data"]').val(JSON.stringify(b))})},attachThemeLocationsListeners:function(){var b=a("#nav-menu-theme-locations"),c={};c.action="menu-locations-save",c["menu-settings-column-nonce"]=a("#menu-settings-column-nonce").val(),b.find('input[type="submit"]').click(function(){return b.find("select").each(function(){c[this.name]=a(this).val()}),b.find(".spinner").addClass("is-active"),a.post(ajaxurl,c,function(){b.find(".spinner").removeClass("is-active")}),!1})},attachQuickSearchListeners:function(){var c,d;a("#nav-menu-meta").on("submit",function(a){a.preventDefault()}),d="oninput"in document.createElement("input")?"input":"keyup",a(".quick-search").on(d,function(){var d=a(this);c&&clearTimeout(c),c=setTimeout(function(){b.updateQuickSearchResults(d)},500)}).on("blur",function(){b.lastSearch=""}).attr("autocomplete","off")},updateQuickSearchResults:function(c){var d,e,f=2,g=c.val();g.length<f||b.lastSearch==g||(b.lastSearch=g,d=c.parents(".tabs-panel"),e={action:"menu-quick-search","response-format":"markup",menu:a("#menu").val(),"menu-settings-column-nonce":a("#menu-settings-column-nonce").val(),q:g,type:c.attr("name")},a(".spinner",d).addClass("is-active"),a.post(ajaxurl,e,function(a){b.processQuickSearchQueryResponse(a,e,d)}))},addCustomLink:function(c){var d=a("#custom-menu-item-url").val(),e=a("#custom-menu-item-name").val();return c=c||b.addMenuItemToBottom,""===d||"http://"==d?(a("#customlinkdiv").addClass("form-invalid"),!1):(a(".customlinkdiv .spinner").addClass("is-active"),void this.addLinkToMenu(d,e,c,function(){a(".customlinkdiv .spinner").removeClass("is-active"),a("#custom-menu-item-name").val("").blur(),a("#custom-menu-item-url").val("http://")}))},addLinkToMenu:function(a,c,d,e){d=d||b.addMenuItemToBottom,e=e||function(){},b.addItemToMenu({"-1":{"menu-item-type":"custom","menu-item-url":a,"menu-item-title":c}},d,e)},addItemToMenu:function(b,c,d){var e,f=a("#menu").val(),g=a("#menu-settings-column-nonce").val();c=c||function(){},d=d||function(){},e={action:"add-menu-item",menu:f,"menu-settings-column-nonce":g,"menu-item":b},a.post(ajaxurl,e,function(b){var f=a("#menu-instructions");b=a.trim(b),c(b,e),a("li.pending").hide().fadeIn("slow"),a(".drag-instructions").show(),!f.hasClass("menu-instructions-inactive")&&f.siblings().length&&f.addClass("menu-instructions-inactive"),d()})},addMenuItemToBottom:function(c){a(c).hideAdvancedMenuItemFields().appendTo(b.targetList),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},addMenuItemToTop:function(c){a(c).hideAdvancedMenuItemFields().prependTo(b.targetList),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},attachUnsavedChangesListener:function(){a("#menu-management input, #menu-management select, #menu-management, #menu-management textarea, .menu-location-menus select").change(function(){b.registerChange()}),0!==a("#menu-to-edit").length||0!==a(".menu-location-menus select").length?window.onbeforeunload=function(){if(b.menusChanged)return navMenuL10n.saveAlert}:a("#menu-settings-column").find("input,select").end().find("a").attr("href","#").unbind("click")},registerChange:function(){b.menusChanged=!0},attachTabsPanelListeners:function(){a("#menu-settings-column").bind("click",function(c){var d,e,f,g,h=a(c.target);if(h.hasClass("nav-tab-link"))e=h.data("type"),f=h.parents(".accordion-section-content").first(),a("input",f).removeAttr("checked"),a(".tabs-panel-active",f).removeClass("tabs-panel-active").addClass("tabs-panel-inactive"),a("#"+e,f).removeClass("tabs-panel-inactive").addClass("tabs-panel-active"),a(".tabs",f).removeClass("tabs"),h.parent().addClass("tabs"),a(".quick-search",f).focus(),c.preventDefault();else if(h.hasClass("select-all")){if(d=/#(.*)$/.exec(c.target.href),d&&d[1])return g=a("#"+d[1]+" .tabs-panel-active .menu-item-title input"),g.length===g.filter(":checked").length?g.removeAttr("checked"):g.prop("checked",!0),!1}else{if(h.hasClass("submit-add-to-menu"))return b.registerChange(),c.target.id&&"submit-customlinkdiv"==c.target.id?b.addCustomLink(b.addMenuItemToBottom):c.target.id&&-1!=c.target.id.indexOf("submit-")&&a("#"+c.target.id.replace(/submit-/,"")).addSelectedToMenu(b.addMenuItemToBottom),!1;if(h.hasClass("page-numbers"))return a.post(ajaxurl,c.target.href.replace(/.*\?/,"").replace(/action=([^&]*)/,"")+"&action=menu-get-metabox",function(b){if(-1!=b.indexOf("replace-id")){var c=a.parseJSON(b),d=document.getElementById(c["replace-id"]),e=document.createElement("div"),f=document.createElement("div");c.markup&&d&&(f.innerHTML=c.markup?c.markup:"",d.parentNode.insertBefore(e,d),e.parentNode.removeChild(d),e.parentNode.insertBefore(f,e),e.parentNode.removeChild(e))}}),!1}})},eventOnClickEditLink:function(b){var c,d,e=/#(.*)$/.exec(b.href);if(e&&e[1]&&(c=a("#"+e[1]),d=c.parent(),0!==d.length))return d.hasClass("menu-item-edit-inactive")?(c.data("menu-item-data")||c.data("menu-item-data",c.getItemData()),c.slideDown("fast"),d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active")):(c.slideUp("fast"),d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive")),!1},eventOnClickCancelLink:function(b){var c=a(b).closest(".menu-item-settings"),d=a(b).closest(".menu-item");return d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive"),c.setItemData(c.data("menu-item-data")).hide(),!1},eventOnClickMenuSave:function(){var c="",d=a("#menu-name"),e=d.val();return e&&e!=d.attr("title")&&e.replace(/\s+/,"")?(a("#nav-menu-theme-locations select").each(function(){c+='<input type="hidden" name="'+this.name+'" value="'+a(this).val()+'" />'}),a("#update-nav-menu").append(c),b.menuList.find(".menu-item-data-position").val(function(a){return a+1}),window.onbeforeunload=null,!0):(d.parent().addClass("form-invalid"),!1)},eventOnClickMenuDelete:function(){return!!window.confirm(navMenuL10n.warnDeleteMenu)&&(window.onbeforeunload=null,!0)},eventOnClickMenuItemDelete:function(c){var d=parseInt(c.id.replace("delete-",""),10);return b.removeMenuItem(a("#menu-item-"+d)),b.registerChange(),!1},processQuickSearchQueryResponse:function(b,c,d){var e,f,g,h={},i=document.getElementById("nav-menu-meta"),j=/menu-item[(\[^]\]*/,k=a("<div>").html(b).find("li");return k.length?(k.each(function(){if(g=a(this),e=j.exec(g.html()),e&&e[1]){for(f=e[1];i.elements["menu-item["+f+"][menu-item-type]"]||h[f];)f--;h[f]=!0,f!=e[1]&&g.html(g.html().replace(new RegExp("menu-item\\["+e[1]+"\\]","g"),"menu-item["+f+"]"))}}),a(".categorychecklist",d).html(k),void a(".spinner",d).removeClass("is-active")):(a(".categorychecklist",d).html("<li><p>"+navMenuL10n.noResultsFound+"</p></li>"),void a(".spinner",d).removeClass("is-active"))},removeMenuItem:function(c){var d=c.childMenuItems();c.addClass("deleting").animate({opacity:0,height:0},350,function(){var e=a("#menu-instructions");c.remove(),d.shiftDepthClass(-1).updateParentMenuItemDBId(),0===a("#menu-to-edit li").length&&(a(".drag-instructions").hide(),e.removeClass("menu-instructions-inactive")),b.refreshAdvancedAccessibility()})},depthToPx:function(a){return a*b.options.menuItemDepthPerLevel},pxToDepth:function(a){return Math.floor(a/b.options.menuItemDepthPerLevel)}},a(document).ready(function(){wpNavMenu.init()})}(jQuery);
\ No newline at end of file
+var wpNavMenu;!function(a){var b;b=wpNavMenu={options:{menuItemDepthPerLevel:30,globalMaxDepth:11,sortableItems:"> *",targetTolerance:0},menuList:void 0,targetList:void 0,menusChanged:!1,isRTL:!("undefined"==typeof isRtl||!isRtl),negateIfRTL:"undefined"!=typeof isRtl&&isRtl?-1:1,lastSearch:"",init:function(){b.menuList=a("#menu-to-edit"),b.targetList=b.menuList,this.jQueryExtensions(),this.attachMenuEditListeners(),this.attachQuickSearchListeners(),this.attachThemeLocationsListeners(),this.attachMenuSaveSubmitListeners(),this.attachTabsPanelListeners(),this.attachUnsavedChangesListener(),b.menuList.length&&this.initSortables(),menus.oneThemeLocationNoMenus&&a("#posttype-page").addSelectedToMenu(b.addMenuItemToBottom),this.initManageLocations(),this.initAccessibility(),this.initToggles(),this.initPreviewing()},jQueryExtensions:function(){a.fn.extend({menuItemDepth:function(){var a=b.isRTL?this.eq(0).css("margin-right"):this.eq(0).css("margin-left");return b.pxToDepth(a&&-1!=a.indexOf("px")?a.slice(0,-2):0)},updateDepthClass:function(b,c){return this.each(function(){var d=a(this);c=c||d.menuItemDepth(),a(this).removeClass("menu-item-depth-"+c).addClass("menu-item-depth-"+b)})},shiftDepthClass:function(b){return this.each(function(){var c=a(this),d=c.menuItemDepth(),e=d+b;c.removeClass("menu-item-depth-"+d).addClass("menu-item-depth-"+e),0===e&&c.find(".is-submenu").hide()})},childMenuItems:function(){var b=a();return this.each(function(){for(var c=a(this),d=c.menuItemDepth(),e=c.next(".menu-item");e.length&&e.menuItemDepth()>d;)b=b.add(e),e=e.next(".menu-item")}),b},shiftHorizontally:function(b){return this.each(function(){var c=a(this),d=c.menuItemDepth(),e=d+b;c.moveHorizontally(e,d)})},moveHorizontally:function(b,c){return this.each(function(){var d=a(this),e=d.childMenuItems(),f=b-c,g=d.find(".is-submenu");d.updateDepthClass(b,c).updateParentMenuItemDBId(),e&&e.each(function(){var b=a(this),c=b.menuItemDepth(),d=c+f;b.updateDepthClass(d,c).updateParentMenuItemDBId()}),0===b?g.hide():g.show()})},updateParentMenuItemDBId:function(){return this.each(function(){var b=a(this),c=b.find(".menu-item-data-parent-id"),d=parseInt(b.menuItemDepth(),10),e=d-1,f=b.prevAll(".menu-item-depth-"+e).first();0===d?c.val(0):c.val(f.find(".menu-item-data-db-id").val())})},hideAdvancedMenuItemFields:function(){return this.each(function(){var b=a(this);a(".hide-column-tog").not(":checked").each(function(){b.find(".field-"+a(this).val()).addClass("hidden-field")})})},addSelectedToMenu:function(c){return 0!==a("#menu-to-edit").length&&this.each(function(){var d=a(this),e={},f=menus.oneThemeLocationNoMenus&&0===d.find(".tabs-panel-active .categorychecklist li input:checked").length?d.find('#page-all li input[type="checkbox"]'):d.find(".tabs-panel-active .categorychecklist li input:checked"),g=/menu-item\[([^\]]*)/;return c=c||b.addMenuItemToBottom,!!f.length&&(d.find(".button-controls .spinner").addClass("is-active"),a(f).each(function(){var d=a(this),f=g.exec(d.attr("name")),h="undefined"==typeof f[1]?0:parseInt(f[1],10);this.className&&-1!=this.className.indexOf("add-to-top")&&(c=b.addMenuItemToTop),e[h]=d.closest("li").getItemData("add-menu-item",h)}),void b.addItemToMenu(e,c,function(){f.removeAttr("checked"),d.find(".button-controls .spinner").removeClass("is-active")}))})},getItemData:function(a,b){a=a||"menu-item";var c,d={},e=["menu-item-db-id","menu-item-object-id","menu-item-object","menu-item-parent-id","menu-item-position","menu-item-type","menu-item-title","menu-item-url","menu-item-description","menu-item-attr-title","menu-item-target","menu-item-classes","menu-item-xfn"];return b||"menu-item"!=a||(b=this.find(".menu-item-data-db-id").val()),b?(this.find("input").each(function(){var f;for(c=e.length;c--;)"menu-item"==a?f=e[c]+"["+b+"]":"add-menu-item"==a&&(f="menu-item["+b+"]["+e[c]+"]"),this.name&&f==this.name&&(d[e[c]]=this.value)}),d):d},setItemData:function(b,c,d){return c=c||"menu-item",d||"menu-item"!=c||(d=a(".menu-item-data-db-id",this).val()),d?(this.find("input").each(function(){var e,f=a(this);a.each(b,function(a,b){"menu-item"==c?e=a+"["+d+"]":"add-menu-item"==c&&(e="menu-item["+d+"]["+a+"]"),e==f.attr("name")&&f.val(b)})}),this):this}})},countMenuItems:function(b){return a(".menu-item-depth-"+b).length},moveMenuItem:function(c,d){var e,f,g,h=a("#menu-to-edit li"),i=h.length,j=c.parents("li.menu-item"),k=j.childMenuItems(),l=j.getItemData(),m=parseInt(j.menuItemDepth(),10),n=parseInt(j.index(),10),o=j.next(),p=o.childMenuItems(),q=parseInt(o.menuItemDepth(),10)+1,r=j.prev(),s=parseInt(r.menuItemDepth(),10),t=r.getItemData()["menu-item-db-id"];switch(d){case"up":if(f=n-1,0===n)break;0===f&&0!==m&&j.moveHorizontally(0,m),0!==s&&j.moveHorizontally(s,m),k?(e=j.add(k),e.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId()):j.detach().insertBefore(h.eq(f)).updateParentMenuItemDBId();break;case"down":if(k){if(e=j.add(k),o=h.eq(e.length+n),p=0!==o.childMenuItems().length,p&&(g=parseInt(o.menuItemDepth(),10)+1,j.moveHorizontally(g,m)),i===n+e.length)break;e.detach().insertAfter(h.eq(n+e.length)).updateParentMenuItemDBId()}else{if(0!==p.length&&j.moveHorizontally(q,m),i===n+1)break;j.detach().insertAfter(h.eq(n+1)).updateParentMenuItemDBId()}break;case"top":if(0===n)break;k?(e=j.add(k),e.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId()):j.detach().insertBefore(h.eq(0)).updateParentMenuItemDBId();break;case"left":if(0===m)break;j.shiftHorizontally(-1);break;case"right":if(0===n)break;if(l["menu-item-parent-id"]===t)break;j.shiftHorizontally(1)}c.focus(),b.registerChange(),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},initAccessibility:function(){var c=a("#menu-to-edit");b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility(),c.on("mouseenter.refreshAccessibility focus.refreshAccessibility touchstart.refreshAccessibility",".menu-item",function(){b.refreshAdvancedAccessibilityOfItem(a(this).find("a.item-edit"))}),c.on("click","a.item-edit",function(){b.refreshAdvancedAccessibilityOfItem(a(this))}),c.on("click",".menus-move",function(){var c=a(this),d=c.data("dir");"undefined"!=typeof d&&b.moveMenuItem(a(this).parents("li.menu-item").find("a.item-edit"),d)})},refreshAdvancedAccessibilityOfItem:function(b){if(!0===a(b).data("needs_accessibility_refresh")){var c,d,e,f,g,h,i,j,k,l=a(b),m=l.closest("li.menu-item").first(),n=m.menuItemDepth(),o=0===n,p=l.closest(".menu-item-handle").find(".menu-item-title").text(),q=parseInt(m.index(),10),r=o?n:parseInt(n-1,10),s=m.prevAll(".menu-item-depth-"+r).first().find(".menu-item-title").text(),t=m.prevAll(".menu-item-depth-"+n).first().find(".menu-item-title").text(),u=a("#menu-to-edit li").length,v=m.nextAll(".menu-item-depth-"+n).length;m.find(".field-move").toggle(u>1),0!==q&&(c=m.find(".menus-move-up"),c.attr("aria-label",menus.moveUp).css("display","inline")),0!==q&&o&&(c=m.find(".menus-move-top"),c.attr("aria-label",menus.moveToTop).css("display","inline")),q+1!==u&&0!==q&&(c=m.find(".menus-move-down"),c.attr("aria-label",menus.moveDown).css("display","inline")),0===q&&0!==v&&(c=m.find(".menus-move-down"),c.attr("aria-label",menus.moveDown).css("display","inline")),o||(c=m.find(".menus-move-left"),d=menus.outFrom.replace("%s",s),c.attr("aria-label",menus.moveOutFrom.replace("%s",s)).text(d).css("display","inline")),0!==q&&m.find(".menu-item-data-parent-id").val()!==m.prev().find(".menu-item-data-db-id").val()&&(c=m.find(".menus-move-right"),d=menus.under.replace("%s",t),c.attr("aria-label",menus.moveUnder.replace("%s",t)).text(d).css("display","inline")),o?(e=a(".menu-item-depth-0"),f=e.index(m)+1,u=e.length,g=menus.menuFocus.replace("%1$s",p).replace("%2$d",f).replace("%3$d",u)):(h=m.prevAll(".menu-item-depth-"+parseInt(n-1,10)).first(),i=h.find(".menu-item-data-db-id").val(),j=h.find(".menu-item-title").text(),k=a('.menu-item .menu-item-data-parent-id[value="'+i+'"]'),f=a(k.parents(".menu-item").get().reverse()).index(m)+1,g=menus.subMenuFocus.replace("%1$s",p).replace("%2$d",f).replace("%3$s",j)),l.attr("aria-label",g).text(g),l.data("needs_accessibility_refresh",!1)}},refreshAdvancedAccessibility:function(){a(".menu-item-settings .field-move .menus-move").hide(),a("a.item-edit").data("needs_accessibility_refresh",!0),a(".menu-item-edit-active a.item-edit").each(function(){b.refreshAdvancedAccessibilityOfItem(this)})},refreshKeyboardAccessibility:function(){a("a.item-edit").off("focus").on("focus",function(){a(this).off("keydown").on("keydown",function(c){var d,e=a(this),f=e.parents("li.menu-item"),g=f.getItemData();if((37==c.which||38==c.which||39==c.which||40==c.which)&&(e.off("keydown"),1!==a("#menu-to-edit li").length)){switch(d={38:"up",40:"down",37:"left",39:"right"},a("body").hasClass("rtl")&&(d={38:"up",40:"down",39:"left",37:"right"}),d[c.which]){case"up":b.moveMenuItem(e,"up");break;case"down":b.moveMenuItem(e,"down");break;case"left":b.moveMenuItem(e,"left");break;case"right":b.moveMenuItem(e,"right")}return a("#edit-"+g["menu-item-db-id"]).focus(),!1}})})},initPreviewing:function(){a("#menu-to-edit").on("change input",".edit-menu-item-title",function(b){var c,d,e=a(b.currentTarget);c=e.val(),d=e.closest(".menu-item").find(".menu-item-title"),c?d.text(c).removeClass("no-title"):d.text(navMenuL10n.untitled).addClass("no-title")})},initToggles:function(){postboxes.add_postbox_toggles("nav-menus"),columns.useCheckboxesForHidden(),columns.checked=function(b){a(".field-"+b).removeClass("hidden-field")},columns.unchecked=function(b){a(".field-"+b).addClass("hidden-field")},b.menuList.hideAdvancedMenuItemFields(),a(".hide-postbox-tog").click(function(){var b=a(".accordion-container li.accordion-section").filter(":hidden").map(function(){return this.id}).get().join(",");a.post(ajaxurl,{action:"closed-postboxes",hidden:b,closedpostboxesnonce:jQuery("#closedpostboxesnonce").val(),page:"nav-menus"})})},initSortables:function(){function c(a){var c;j=a.placeholder.prev(".menu-item"),k=a.placeholder.next(".menu-item"),j[0]==a.item[0]&&(j=j.prev(".menu-item")),k[0]==a.item[0]&&(k=k.next(".menu-item")),l=j.length?j.offset().top+j.height():0,m=k.length?k.offset().top+k.height()/3:0,h=k.length?k.menuItemDepth():0,i=j.length?(c=j.menuItemDepth()+1)>b.options.globalMaxDepth?b.options.globalMaxDepth:c:0}function d(a,b){a.placeholder.updateDepthClass(b,q),q=b}function e(){if(!s[0].className)return 0;var a=s[0].className.match(/menu-max-depth-(\d+)/);return a&&a[1]?parseInt(a[1],10):0}function f(c){var d,e=t;if(0!==c){if(c>0)d=p+c,d>t&&(e=d);else if(c<0&&p==t)for(;!a(".menu-item-depth-"+e,b.menuList).length&&e>0;)e--;s.removeClass("menu-max-depth-"+t).addClass("menu-max-depth-"+e),t=e}}var g,h,i,j,k,l,m,n,o,p,q=0,r=b.menuList.offset().left,s=a("body"),t=e();0!==a("#menu-to-edit li").length&&a(".drag-instructions").show(),r+=b.isRTL?b.menuList.width():0,b.menuList.sortable({handle:".menu-item-handle",placeholder:"sortable-placeholder",items:b.options.sortableItems,start:function(e,f){var h,i,j,k,l;b.isRTL&&(f.item[0].style.right="auto"),o=f.item.children(".menu-item-transport"),g=f.item.menuItemDepth(),d(f,g),j=f.item.next()[0]==f.placeholder[0]?f.item.next():f.item,k=j.childMenuItems(),o.append(k),h=o.outerHeight(),h+=h>0?1*f.placeholder.css("margin-top").slice(0,-2):0,h+=f.helper.outerHeight(),n=h,h-=2,f.placeholder.height(h),p=g,k.each(function(){var b=a(this).menuItemDepth();p=b>p?b:p}),i=f.helper.find(".menu-item-handle").outerWidth(),i+=b.depthToPx(p-g),i-=2,f.placeholder.width(i),l=f.placeholder.next(".menu-item"),l.css("margin-top",n+"px"),f.placeholder.detach(),a(this).sortable("refresh"),f.item.after(f.placeholder),l.css("margin-top",0),c(f)},stop:function(a,c){var d,e,h=q-g;d=o.children().insertAfter(c.item),e=c.item.find(".item-title .is-submenu"),0<q?e.show():e.hide(),0!==h&&(c.item.updateDepthClass(q),d.shiftDepthClass(h),f(h)),b.registerChange(),c.item.updateParentMenuItemDBId(),c.item[0].style.top=0,b.isRTL&&(c.item[0].style.left="auto",c.item[0].style.right=0),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},change:function(a,d){d.placeholder.parent().hasClass("menu")||(j.length?j.after(d.placeholder):b.menuList.prepend(d.placeholder)),c(d)},sort:function(e,f){var g=f.helper.offset(),j=b.isRTL?g.left+f.helper.width():g.left,o=b.negateIfRTL*b.pxToDepth(j-r);o>i||g.top<l-b.options.targetTolerance?o=i:o<h&&(o=h),o!=q&&d(f,o),m&&g.top+n>m&&(k.after(f.placeholder),c(f),a(this).sortable("refreshPositions"))}})},initManageLocations:function(){a("#menu-locations-wrap form").submit(function(){window.onbeforeunload=null}),a(".menu-location-menus select").on("change",function(){var b=a(this).closest("tr").find(".locations-edit-menu-link");a(this).find("option:selected").data("orig")?b.show():b.hide()})},attachMenuEditListeners:function(){var b=this;a("#update-nav-menu").bind("click",function(a){if(a.target&&a.target.className){if(-1!=a.target.className.indexOf("item-edit"))return b.eventOnClickEditLink(a.target);if(-1!=a.target.className.indexOf("menu-save"))return b.eventOnClickMenuSave(a.target);if(-1!=a.target.className.indexOf("menu-delete"))return b.eventOnClickMenuDelete(a.target);if(-1!=a.target.className.indexOf("item-delete"))return b.eventOnClickMenuItemDelete(a.target);if(-1!=a.target.className.indexOf("item-cancel"))return b.eventOnClickCancelLink(a.target)}}),a('#add-custom-links input[type="text"]').keypress(function(b){a("#customlinkdiv").removeClass("form-invalid"),13===b.keyCode&&(b.preventDefault(),a("#submit-customlinkdiv").click())})},attachMenuSaveSubmitListeners:function(){a("#update-nav-menu").submit(function(){var b=a("#update-nav-menu").serializeArray();a('[name="nav-menu-data"]').val(JSON.stringify(b))})},attachThemeLocationsListeners:function(){var b=a("#nav-menu-theme-locations"),c={};c.action="menu-locations-save",c["menu-settings-column-nonce"]=a("#menu-settings-column-nonce").val(),b.find('input[type="submit"]').click(function(){return b.find("select").each(function(){c[this.name]=a(this).val()}),b.find(".spinner").addClass("is-active"),a.post(ajaxurl,c,function(){b.find(".spinner").removeClass("is-active")}),!1})},attachQuickSearchListeners:function(){var c,d;a("#nav-menu-meta").on("submit",function(a){a.preventDefault()}),d="oninput"in document.createElement("input")?"input":"keyup",a("#nav-menu-meta").on(d,".quick-search",function(){var d=a(this);d.attr("autocomplete","off"),c&&clearTimeout(c),c=setTimeout(function(){b.updateQuickSearchResults(d)},500)}).on("blur",".quick-search",function(){b.lastSearch=""})},updateQuickSearchResults:function(c){var d,e,f=2,g=c.val();g.length<f||b.lastSearch==g||(b.lastSearch=g,d=c.parents(".tabs-panel"),e={action:"menu-quick-search","response-format":"markup",menu:a("#menu").val(),"menu-settings-column-nonce":a("#menu-settings-column-nonce").val(),q:g,type:c.attr("name")},a(".spinner",d).addClass("is-active"),a.post(ajaxurl,e,function(a){b.processQuickSearchQueryResponse(a,e,d)}))},addCustomLink:function(c){var d=a("#custom-menu-item-url").val(),e=a("#custom-menu-item-name").val();return c=c||b.addMenuItemToBottom,""===d||"http://"==d?(a("#customlinkdiv").addClass("form-invalid"),!1):(a(".customlinkdiv .spinner").addClass("is-active"),void this.addLinkToMenu(d,e,c,function(){a(".customlinkdiv .spinner").removeClass("is-active"),a("#custom-menu-item-name").val("").blur(),a("#custom-menu-item-url").val("http://")}))},addLinkToMenu:function(a,c,d,e){d=d||b.addMenuItemToBottom,e=e||function(){},b.addItemToMenu({"-1":{"menu-item-type":"custom","menu-item-url":a,"menu-item-title":c}},d,e)},addItemToMenu:function(b,c,d){var e,f=a("#menu").val(),g=a("#menu-settings-column-nonce").val();c=c||function(){},d=d||function(){},e={action:"add-menu-item",menu:f,"menu-settings-column-nonce":g,"menu-item":b},a.post(ajaxurl,e,function(b){var f=a("#menu-instructions");b=a.trim(b),c(b,e),a("li.pending").hide().fadeIn("slow"),a(".drag-instructions").show(),!f.hasClass("menu-instructions-inactive")&&f.siblings().length&&f.addClass("menu-instructions-inactive"),d()})},addMenuItemToBottom:function(c){a(c).hideAdvancedMenuItemFields().appendTo(b.targetList),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},addMenuItemToTop:function(c){a(c).hideAdvancedMenuItemFields().prependTo(b.targetList),b.refreshKeyboardAccessibility(),b.refreshAdvancedAccessibility()},attachUnsavedChangesListener:function(){a("#menu-management input, #menu-management select, #menu-management, #menu-management textarea, .menu-location-menus select").change(function(){b.registerChange()}),0!==a("#menu-to-edit").length||0!==a(".menu-location-menus select").length?window.onbeforeunload=function(){if(b.menusChanged)return navMenuL10n.saveAlert}:a("#menu-settings-column").find("input,select").end().find("a").attr("href","#").unbind("click")},registerChange:function(){b.menusChanged=!0},attachTabsPanelListeners:function(){a("#menu-settings-column").bind("click",function(c){var d,e,f,g,h=a(c.target);if(h.hasClass("nav-tab-link"))e=h.data("type"),f=h.parents(".accordion-section-content").first(),a("input",f).removeAttr("checked"),a(".tabs-panel-active",f).removeClass("tabs-panel-active").addClass("tabs-panel-inactive"),a("#"+e,f).removeClass("tabs-panel-inactive").addClass("tabs-panel-active"),a(".tabs",f).removeClass("tabs"),h.parent().addClass("tabs"),a(".quick-search",f).focus(),f.find(".tabs-panel-active .menu-item-title").length?f.removeClass("has-no-menu-item"):f.addClass("has-no-menu-item"),c.preventDefault();else if(h.hasClass("select-all")){if(d=/#(.*)$/.exec(c.target.href),d&&d[1])return g=a("#"+d[1]+" .tabs-panel-active .menu-item-title input"),g.length===g.filter(":checked").length?g.removeAttr("checked"):g.prop("checked",!0),!1}else if(h.hasClass("submit-add-to-menu"))return b.registerChange(),c.target.id&&"submit-customlinkdiv"==c.target.id?b.addCustomLink(b.addMenuItemToBottom):c.target.id&&-1!=c.target.id.indexOf("submit-")&&a("#"+c.target.id.replace(/submit-/,"")).addSelectedToMenu(b.addMenuItemToBottom),!1}),a("#nav-menu-meta").on("click","a.page-numbers",function(){var b=a(this).closest(".inside");return a.post(ajaxurl,this.href.replace(/.*\?/,"").replace(/action=([^&]*)/,"")+"&action=menu-get-metabox",function(c){var d,e=a.parseJSON(c);-1!==c.indexOf("replace-id")&&(d=document.getElementById(e["replace-id"]),e.markup&&d&&b.html(e.markup))}),!1})},eventOnClickEditLink:function(b){var c,d,e=/#(.*)$/.exec(b.href);if(e&&e[1]&&(c=a("#"+e[1]),d=c.parent(),0!==d.length))return d.hasClass("menu-item-edit-inactive")?(c.data("menu-item-data")||c.data("menu-item-data",c.getItemData()),c.slideDown("fast"),d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active")):(c.slideUp("fast"),d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive")),!1},eventOnClickCancelLink:function(b){var c=a(b).closest(".menu-item-settings"),d=a(b).closest(".menu-item");return d.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive"),c.setItemData(c.data("menu-item-data")).hide(),!1},eventOnClickMenuSave:function(){var c="",d=a("#menu-name"),e=d.val();return e&&e!=d.attr("title")&&e.replace(/\s+/,"")?(a("#nav-menu-theme-locations select").each(function(){c+='<input type="hidden" name="'+this.name+'" value="'+a(this).val()+'" />'}),a("#update-nav-menu").append(c),b.menuList.find(".menu-item-data-position").val(function(a){return a+1}),window.onbeforeunload=null,!0):(d.parent().addClass("form-invalid"),!1)},eventOnClickMenuDelete:function(){return!!window.confirm(navMenuL10n.warnDeleteMenu)&&(window.onbeforeunload=null,!0)},eventOnClickMenuItemDelete:function(c){var d=parseInt(c.id.replace("delete-",""),10);return b.removeMenuItem(a("#menu-item-"+d)),b.registerChange(),!1},processQuickSearchQueryResponse:function(b,c,d){var e,f,g,h={},i=document.getElementById("nav-menu-meta"),j=/menu-item[(\[^]\]*/,k=a("<div>").html(b).find("li"),l=d.closest(".accordion-section-content");return k.length?(k.each(function(){if(g=a(this),e=j.exec(g.html()),e&&e[1]){for(f=e[1];i.elements["menu-item["+f+"][menu-item-type]"]||h[f];)f--;h[f]=!0,f!=e[1]&&g.html(g.html().replace(new RegExp("menu-item\\["+e[1]+"\\]","g"),"menu-item["+f+"]"))}}),a(".categorychecklist",d).html(k),a(".spinner",d).removeClass("is-active"),void l.removeClass("has-no-menu-item")):(a(".categorychecklist",d).html("<li><p>"+navMenuL10n.noResultsFound+"</p></li>"),a(".spinner",d).removeClass("is-active"),void l.addClass("has-no-menu-item"))},removeMenuItem:function(c){var d=c.childMenuItems();c.addClass("deleting").animate({opacity:0,height:0},350,function(){var e=a("#menu-instructions");c.remove(),d.shiftDepthClass(-1).updateParentMenuItemDBId(),0===a("#menu-to-edit li").length&&(a(".drag-instructions").hide(),e.removeClass("menu-instructions-inactive")),b.refreshAdvancedAccessibility()})},depthToPx:function(a){return a*b.options.menuItemDepthPerLevel},pxToDepth:function(a){return Math.floor(a/b.options.menuItemDepthPerLevel)}},a(document).ready(function(){wpNavMenu.init()})}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/post.js b/wp-admin/js/post.js
index 1ead4bed1..662c62bff 100644
--- a/wp-admin/js/post.js
+++ b/wp-admin/js/post.js
@@ -1,173 +1,251 @@
 /* global postL10n, ajaxurl, wpAjax, setPostThumbnailL10n, postboxes, pagenow, tinymce, alert, deleteUserSetting */
 /* global theList:true, theExtraList:true, getUserSetting, setUserSetting, commentReply */
 
+/**
+ * Contains all dynamic functionality needed on post and term pages.
+ *
+ * @summary Control page and term functionality.
+ */
+
 var commentsBox, WPSetThumbnailHTML, WPSetThumbnailID, WPRemoveThumbnail, wptitlehint, makeSlugeditClickable, editPermalink;
-// Back-compat: prevent fatal errors
+// Backwards compatibility: prevent fatal errors.
 makeSlugeditClickable = editPermalink = function(){};
 
+// Make sure the wp object exists.
 window.wp = window.wp || {};
 
 ( function( $ ) {
 	var titleHasFocus = false;
 
-commentsBox = {
-	st : 0,
-
-	get : function(total, num) {
-		var st = this.st, data;
-		if ( ! num )
-			num = 20;
-
-		this.st += num;
-		this.total = total;
-		$( '#commentsdiv .spinner' ).addClass( 'is-active' );
-
-		data = {
-			'action' : 'get-comments',
-			'mode' : 'single',
-			'_ajax_nonce' : $('#add_comment_nonce').val(),
-			'p' : $('#post_ID').val(),
-			'start' : st,
-			'number' : num
-		};
-
-		$.post(ajaxurl, data,
-			function(r) {
-				r = wpAjax.parseAjaxResponse(r);
-				$('#commentsdiv .widefat').show();
-				$( '#commentsdiv .spinner' ).removeClass( 'is-active' );
-
-				if ( 'object' == typeof r && r.responses[0] ) {
-					$('#the-comment-list').append( r.responses[0].data );
+	/**
+	 * Control loading of comments on the post and term edit pages.
+	 *
+	 * @type {{st: number, get: commentsBox.get, load: commentsBox.load}}
+	 *
+	 * @namespace commentsBox
+	 */
+	commentsBox = {
+		// Comment offset to use when fetching new comments.
+		st : 0,
+
+		/**
+		 * Fetch comments using AJAX and display them in the box.
+		 *
+		 * @param {int} total Total number of comments for this post.
+		 * @param {int} num   Optional. Number of comments to fetch, defaults to 20.
+		 * @returns {boolean} Always returns false.
+		 *
+		 * @memberof commentsBox
+		 */
+		get : function(total, num) {
+			var st = this.st, data;
+			if ( ! num )
+				num = 20;
+
+			this.st += num;
+			this.total = total;
+			$( '#commentsdiv .spinner' ).addClass( 'is-active' );
+
+			data = {
+				'action' : 'get-comments',
+				'mode' : 'single',
+				'_ajax_nonce' : $('#add_comment_nonce').val(),
+				'p' : $('#post_ID').val(),
+				'start' : st,
+				'number' : num
+			};
+
+			$.post(
+				ajaxurl,
+				data,
+				function(r) {
+					r = wpAjax.parseAjaxResponse(r);
+					$('#commentsdiv .widefat').show();
+					$( '#commentsdiv .spinner' ).removeClass( 'is-active' );
+
+					if ( 'object' == typeof r && r.responses[0] ) {
+						$('#the-comment-list').append( r.responses[0].data );
+
+						theList = theExtraList = null;
+						$( 'a[className*=\':\']' ).unbind();
+
+						// If the offset is over the total number of comments we cannot fetch any more, so hide the button.
+						if ( commentsBox.st > commentsBox.total )
+							$('#show-comments').hide();
+						else
+							$('#show-comments').show().children('a').html(postL10n.showcomm);
+
+						return;
+					} else if ( 1 == r ) {
+						$('#show-comments').html(postL10n.endcomm);
+						return;
+					}
 
-					theList = theExtraList = null;
-					$( 'a[className*=\':\']' ).unbind();
+					$('#the-comment-list').append('<tr><td colspan="2">'+wpAjax.broken+'</td></tr>');
+				}
+			);
+
+			return false;
+		},
+
+		/**
+		 * Load the next batch of comments.
+		 *
+		 * @param {int} total Total number of comments to load.
+		 *
+		 * @memberof commentsBox
+		 */
+		load: function(total){
+			this.st = jQuery('#the-comment-list tr.comment:visible').length;
+			this.get(total);
+		}
+	};
 
-					if ( commentsBox.st > commentsBox.total )
-						$('#show-comments').hide();
-					else
-						$('#show-comments').show().children('a').html(postL10n.showcomm);
+	/**
+	 * Overwrite the content of the Featured Image postbox
+	 *
+	 * @param {string} html New HTML to be displayed in the content area of the postbox.
+	 *
+	 * @global
+	 */
+	WPSetThumbnailHTML = function(html){
+		$('.inside', '#postimagediv').html(html);
+	};
 
-					return;
-				} else if ( 1 == r ) {
-					$('#show-comments').html(postL10n.endcomm);
-					return;
-				}
+	/**
+	 * Set the Image ID of the Featured Image
+	 *
+	 * @param {int} id The post_id of the image to use as Featured Image.
+	 *
+	 * @global
+	 */
+	WPSetThumbnailID = function(id){
+		var field = $('input[value="_thumbnail_id"]', '#list-table');
+		if ( field.length > 0 ) {
+			$('#meta\\[' + field.attr('id').match(/[0-9]+/) + '\\]\\[value\\]').text(id);
+		}
+	};
 
-				$('#the-comment-list').append('<tr><td colspan="2">'+wpAjax.broken+'</td></tr>');
+	/**
+	 * Remove the Featured Image
+	 *
+	 * @param {string} nonce Nonce to use in the request.
+	 *
+	 * @global
+	 */
+	WPRemoveThumbnail = function(nonce){
+		$.post(ajaxurl, {
+			action: 'set-post-thumbnail', post_id: $( '#post_ID' ).val(), thumbnail_id: -1, _ajax_nonce: nonce, cookie: encodeURIComponent( document.cookie )
+		},
+			/**
+			 * Handle server response
+			 *
+			 * @param {string} str Response, will be '0' when an error occurred otherwise contains link to add Featured Image.
+			 */
+			function(str){
+			if ( str == '0' ) {
+				alert( setPostThumbnailL10n.error );
+			} else {
+				WPSetThumbnailHTML(str);
 			}
+		}
 		);
+	};
 
-		return false;
-	},
-
-	load: function(total){
-		this.st = jQuery('#the-comment-list tr.comment:visible').length;
-		this.get(total);
-	}
-};
-
-WPSetThumbnailHTML = function(html){
-	$('.inside', '#postimagediv').html(html);
-};
-
-WPSetThumbnailID = function(id){
-	var field = $('input[value="_thumbnail_id"]', '#list-table');
-	if ( field.length > 0 ) {
-		$('#meta\\[' + field.attr('id').match(/[0-9]+/) + '\\]\\[value\\]').text(id);
-	}
-};
-
-WPRemoveThumbnail = function(nonce){
-	$.post(ajaxurl, {
-		action: 'set-post-thumbnail', post_id: $( '#post_ID' ).val(), thumbnail_id: -1, _ajax_nonce: nonce, cookie: encodeURIComponent( document.cookie )
-	}, function(str){
-		if ( str == '0' ) {
-			alert( setPostThumbnailL10n.error );
-		} else {
-			WPSetThumbnailHTML(str);
-		}
-	}
-	);
-};
+	/**
+	 * Heartbeat locks.
+	 *
+	 * Used to lock editing of an object by only one user at a time.
+	 *
+	 * When the user does not send a heartbeat in a heartbeat-time
+	 * the user is no longer editing and another user can start editing.
+	 */
+	$(document).on( 'heartbeat-send.refresh-lock', function( e, data ) {
+		var lock = $('#active_post_lock').val(),
+			post_id = $('#post_ID').val(),
+			send = {};
+
+		if ( ! post_id || ! $('#post-lock-dialog').length )
+			return;
 
-$(document).on( 'heartbeat-send.refresh-lock', function( e, data ) {
-	var lock = $('#active_post_lock').val(),
-		post_id = $('#post_ID').val(),
-		send = {};
+		send.post_id = post_id;
 
-	if ( ! post_id || ! $('#post-lock-dialog').length )
-		return;
+		if ( lock )
+			send.lock = lock;
 
-	send.post_id = post_id;
+		data['wp-refresh-post-lock'] = send;
 
-	if ( lock )
-		send.lock = lock;
+	}).on( 'heartbeat-tick.refresh-lock', function( e, data ) {
+		// Post locks: update the lock string or show the dialog if somebody has taken over editing.
+		var received, wrap, avatar;
 
-	data['wp-refresh-post-lock'] = send;
+		if ( data['wp-refresh-post-lock'] ) {
+			received = data['wp-refresh-post-lock'];
 
-}).on( 'heartbeat-tick.refresh-lock', function( e, data ) {
-	// Post locks: update the lock string or show the dialog if somebody has taken over editing
-	var received, wrap, avatar;
+			if ( received.lock_error ) {
+				// Show "editing taken over" message.
+				wrap = $('#post-lock-dialog');
 
-	if ( data['wp-refresh-post-lock'] ) {
-		received = data['wp-refresh-post-lock'];
+				if ( wrap.length && ! wrap.is(':visible') ) {
+					if ( wp.autosave ) {
+						// Save the latest changes and disable.
+						$(document).one( 'heartbeat-tick', function() {
+							wp.autosave.server.suspend();
+							wrap.removeClass('saving').addClass('saved');
+							$(window).off( 'beforeunload.edit-post' );
+						});
 
-		if ( received.lock_error ) {
-			// show "editing taken over" message
-			wrap = $('#post-lock-dialog');
+						wrap.addClass('saving');
+						wp.autosave.server.triggerSave();
+					}
 
-			if ( wrap.length && ! wrap.is(':visible') ) {
-				if ( wp.autosave ) {
-					// Save the latest changes and disable
-					$(document).one( 'heartbeat-tick', function() {
-						wp.autosave.server.suspend();
-						wrap.removeClass('saving').addClass('saved');
-						$(window).off( 'beforeunload.edit-post' );
-					});
-
-					wrap.addClass('saving');
-					wp.autosave.server.triggerSave();
-				}
+					if ( received.lock_error.avatar_src ) {
+						avatar = $( '<img class="avatar avatar-64 photo" width="64" height="64" alt="" />' ).attr( 'src', received.lock_error.avatar_src.replace( /&amp;/g, '&' ) );
+						wrap.find('div.post-locked-avatar').empty().append( avatar );
+					}
 
-				if ( received.lock_error.avatar_src ) {
-					avatar = $( '<img class="avatar avatar-64 photo" width="64" height="64" alt="" />' ).attr( 'src', received.lock_error.avatar_src.replace( /&amp;/g, '&' ) );
-					wrap.find('div.post-locked-avatar').empty().append( avatar );
+					wrap.show().find('.currently-editing').text( received.lock_error.text );
+					wrap.find('.wp-tab-first').focus();
 				}
-
-				wrap.show().find('.currently-editing').text( received.lock_error.text );
-				wrap.find('.wp-tab-first').focus();
+			} else if ( received.new_lock ) {
+				$('#active_post_lock').val( received.new_lock );
 			}
-		} else if ( received.new_lock ) {
-			$('#active_post_lock').val( received.new_lock );
 		}
-	}
-}).on( 'before-autosave.update-post-slug', function() {
-	titleHasFocus = document.activeElement && document.activeElement.id === 'title';
-}).on( 'after-autosave.update-post-slug', function() {
-	// Create slug area only if not already there
-	// and the title field was not focused (user was not typing a title) when autosave ran
-	if ( ! $('#edit-slug-box > *').length && ! titleHasFocus ) {
-		$.post( ajaxurl, {
-				action: 'sample-permalink',
-				post_id: $('#post_ID').val(),
-				new_title: $('#title').val(),
-				samplepermalinknonce: $('#samplepermalinknonce').val()
-			},
-			function( data ) {
-				if ( data != '-1' ) {
-					$('#edit-slug-box').html(data);
+	}).on( 'before-autosave.update-post-slug', function() {
+		titleHasFocus = document.activeElement && document.activeElement.id === 'title';
+	}).on( 'after-autosave.update-post-slug', function() {
+
+		/*
+		 * Create slug area only if not already there
+		 * and the title field was not focused (user was not typing a title) when autosave ran.
+		 */
+		if ( ! $('#edit-slug-box > *').length && ! titleHasFocus ) {
+			$.post( ajaxurl, {
+					action: 'sample-permalink',
+					post_id: $('#post_ID').val(),
+					new_title: $('#title').val(),
+					samplepermalinknonce: $('#samplepermalinknonce').val()
+				},
+				function( data ) {
+					if ( data != '-1' ) {
+						$('#edit-slug-box').html(data);
+					}
 				}
-			}
-		);
-	}
-});
+			);
+		}
+	});
 
 }(jQuery));
 
+/**
+ * Heartbeat refresh nonces.
+ */
 (function($) {
 	var check, timeout;
 
+	/**
+	 * Only allow to check for nonce refresh every 30 seconds.
+	 */
 	function schedule() {
 		check = false;
 		window.clearTimeout( timeout );
@@ -205,6 +283,9 @@ $(document).on( 'heartbeat-send.refresh-lock', function( e, data ) {
 	});
 }(jQuery));
 
+/**
+ * All post and postbox controls and functionality.
+ */
 jQuery(document).ready( function($) {
 	var stamp, visibility, $submitButtons, updateVisibility, updateText,
 		sticky = '',
@@ -220,32 +301,37 @@ jQuery(document).ready( function($) {
 
 	postboxes.add_postbox_toggles(pagenow);
 
-	// Clear the window name. Otherwise if this is a former preview window where the user navigated to edit another post,
-	// and the first post is still being edited, clicking Preview there will use this window to show the preview.
+	/*
+	 * Clear the window name. Otherwise if this is a former preview window where the user navigated to edit another post,
+	 * and the first post is still being edited, clicking Preview there will use this window to show the preview.
+	 */
 	window.name = '';
 
 	// Post locks: contain focus inside the dialog. If the dialog is shown, focus the first item.
 	$('#post-lock-dialog .notification-dialog').on( 'keydown', function(e) {
+		// Don't do anything when [tab] is pressed.
 		if ( e.which != 9 )
 			return;
 
 		var target = $(e.target);
 
+		// [shift] + [tab] on first tab cycles back to last tab.
 		if ( target.hasClass('wp-tab-first') && e.shiftKey ) {
 			$(this).find('.wp-tab-last').focus();
 			e.preventDefault();
+		// [tab] on last tab cycles back to first tab.
 		} else if ( target.hasClass('wp-tab-last') && ! e.shiftKey ) {
 			$(this).find('.wp-tab-first').focus();
 			e.preventDefault();
 		}
 	}).filter(':visible').find('.wp-tab-first').focus();
 
-	// Set the heartbeat interval to 15 sec. if post lock dialogs are enabled
+	// Set the heartbeat interval to 15 sec. if post lock dialogs are enabled.
 	if ( wp.heartbeat && $('#post-lock-dialog').length ) {
 		wp.heartbeat.interval( 15 );
 	}
 
-	// The form is being submitted by the user
+	// The form is being submitted by the user.
 	$submitButtons = $submitpost.find( ':submit, a.submitdelete, #post-preview' ).on( 'click.edit-post', function( event ) {
 		var $button = $(this);
 
@@ -265,7 +351,7 @@ jQuery(document).ready( function($) {
 				return;
 			}
 
-			// Stop autosave
+			// Stop auto save.
 			if ( wp.autosave ) {
 				wp.autosave.server.suspend();
 			}
@@ -350,7 +436,7 @@ jQuery(document).ready( function($) {
 		}
 	});
 
-	// Autosave new posts after a title is typed
+	// Auto save new posts after a title is typed.
 	if ( $( '#auto_draft' ).val() ) {
 		$( '#title' ).blur( function() {
 			var cancel;
@@ -359,7 +445,7 @@ jQuery(document).ready( function($) {
 				return;
 			}
 
-			// Cancel the autosave when the blur was triggered by the user submitting the form
+			// Cancel the auto save when the blur was triggered by the user submitting the form.
 			$('form#post').one( 'submit', function() {
 				cancel = true;
 			});
@@ -388,6 +474,10 @@ jQuery(document).ready( function($) {
 		}
 	});
 
+	/*
+	 * When the user is trying to load another page, or reloads current page
+	 * show a confirmation dialog when there are unsaved changes.
+	 */
 	$(window).on( 'beforeunload.edit-post', function() {
 		var editor = typeof tinymce !== 'undefined' && tinymce.get('content');
 
@@ -401,26 +491,50 @@ jQuery(document).ready( function($) {
 			return;
 		}
 
-		// Unload is triggered (by hand) on removing the Thickbox iframe.
-		// Make sure we process only the main document unload.
+		/*
+		 * Unload is triggered (by hand) on removing the Thickbox iframe.
+		 * Make sure we process only the main document unload.
+		 */
 		if ( event.target && event.target.nodeName != '#document' ) {
 			return;
 		}
 
-		$.ajax({
-			type: 'POST',
-			url: ajaxurl,
-			async: false,
-			data: {
-				action: 'wp-remove-post-lock',
-				_wpnonce: $('#_wpnonce').val(),
-				post_ID: $('#post_ID').val(),
-				active_post_lock: $('#active_post_lock').val()
+		var postID = $('#post_ID').val();
+		var postLock = $('#active_post_lock').val();
+
+		if ( ! postID || ! postLock ) {
+			return;
+		}
+
+		var data = {
+			action: 'wp-remove-post-lock',
+			_wpnonce: $('#_wpnonce').val(),
+			post_ID: postID,
+			active_post_lock: postLock
+		};
+
+		if ( window.FormData && window.navigator.sendBeacon ) {
+			var formData = new window.FormData();
+
+			$.each( data, function( key, value ) {
+				formData.append( key, value );
+			});
+
+			if ( window.navigator.sendBeacon( ajaxurl, formData ) ) {
+				return;
 			}
+		}
+
+		// Fall back to a synchronous POST request.
+		// See https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon
+		$.post({
+			async: false,
+			data: data,
+			url: ajaxurl
 		});
 	});
 
-	// multi-taxonomies
+	// Multiple Taxonomies.
 	if ( $('#tagsdiv-post_tag').length ) {
 		window.tagBox && window.tagBox.init();
 	} else {
@@ -432,7 +546,7 @@ jQuery(document).ready( function($) {
 		});
 	}
 
-	// categories
+	// Handle categories.
 	$('.categorydiv').each( function(){
 		var this_id = $(this).attr('id'), catAddBefore, catAddAfter, taxonomyParts, taxonomy, settingName;
 
@@ -440,8 +554,10 @@ jQuery(document).ready( function($) {
 		taxonomyParts.shift();
 		taxonomy = taxonomyParts.join('-');
 		settingName = taxonomy + '_tab';
-		if ( taxonomy == 'category' )
+
+		if ( taxonomy == 'category' ) {
 			settingName = 'cats';
+		}
 
 		// TODO: move to jQuery 1.3+, support for multiple hierarchical taxonomies, see wp-lists.js
 		$('a', '#' + taxonomy + '-tabs').click( function( e ) {
@@ -450,34 +566,62 @@ jQuery(document).ready( function($) {
 			$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
 			$('#' + taxonomy + '-tabs').siblings('.tabs-panel').hide();
 			$(t).show();
-			if ( '#' + taxonomy + '-all' == t )
+			if ( '#' + taxonomy + '-all' == t ) {
 				deleteUserSetting( settingName );
-			else
+			} else {
 				setUserSetting( settingName, 'pop' );
+			}
 		});
 
 		if ( getUserSetting( settingName ) )
 			$('a[href="#' + taxonomy + '-pop"]', '#' + taxonomy + '-tabs').click();
 
-		// Ajax Cat
-		$( '#new' + taxonomy ).one( 'focus', function() { $( this ).val( '' ).removeClass( 'form-input-tip' ); } );
+		// Add category button controls.
+		$('#new' + taxonomy).one( 'focus', function() {
+			$( this ).val( '' ).removeClass( 'form-input-tip' );
+		});
 
+		// On [enter] submit the taxonomy.
 		$('#new' + taxonomy).keypress( function(event){
 			if( 13 === event.keyCode ) {
 				event.preventDefault();
 				$('#' + taxonomy + '-add-submit').click();
 			}
 		});
-		$('#' + taxonomy + '-add-submit').click( function(){ $('#new' + taxonomy).focus(); });
 
+		// After submitting a new taxonomy, re-focus the input field.
+		$('#' + taxonomy + '-add-submit').click( function() {
+			$('#new' + taxonomy).focus();
+		});
+
+		/**
+		 * Before adding a new taxonomy, disable submit button.
+		 *
+		 * @param {Object} s Taxonomy object which will be added.
+		 *
+		 * @returns {Object}
+		 */
 		catAddBefore = function( s ) {
-			if ( !$('#new'+taxonomy).val() )
+			if ( !$('#new'+taxonomy).val() ) {
 				return false;
+			}
+
 			s.data += '&' + $( ':checked', '#'+taxonomy+'checklist' ).serialize();
 			$( '#' + taxonomy + '-add-submit' ).prop( 'disabled', true );
 			return s;
 		};
 
+		/**
+		 * Re-enable submit button after a taxonomy has been added.
+		 *
+		 * Re-enable submit button.
+		 * If the taxonomy has a parent place the taxonomy underneath the parent.
+		 *
+		 * @param {Object} r Response.
+		 * @param {Object} s Taxonomy data.
+		 *
+		 * @returns void
+		 */
 		catAddAfter = function( r, s ) {
 			var sup, drop = $('#new'+taxonomy+'_parent');
 
@@ -495,6 +639,7 @@ jQuery(document).ready( function($) {
 			addAfter: catAddAfter
 		});
 
+		// Add new taxonomy button toggles input form visibility.
 		$('#' + taxonomy + '-add-toggle').click( function( e ) {
 			e.preventDefault();
 			$('#' + taxonomy + '-adder').toggleClass( 'wp-hidden-children' );
@@ -502,6 +647,7 @@ jQuery(document).ready( function($) {
 			$('#new'+taxonomy).focus();
 		});
 
+		// Sync checked items between "All {taxonomy}" and "Most used" lists.
 		$('#' + taxonomy + 'checklist, #' + taxonomy + 'checklist-pop').on( 'click', 'li.popular-category > label input[type="checkbox"]', function() {
 			var t = $(this), c = t.is(':checked'), id = t.val();
 			if ( id && t.parents('#taxonomy-'+taxonomy).length )
@@ -510,29 +656,51 @@ jQuery(document).ready( function($) {
 
 	}); // end cats
 
-	// Custom Fields
+	// Custom Fields postbox.
 	if ( $('#postcustom').length ) {
-		$( '#the-list' ).wpList( { addAfter: function() {
-			$('table#list-table').show();
-		}, addBefore: function( s ) {
-			s.data += '&post_id=' + $('#post_ID').val();
-			return s;
-		}
+		$( '#the-list' ).wpList( {
+			/**
+			 * Add current post_ID to request to fetch custom fields
+			 *
+			 * @param {Object} s Request object.
+			 *
+			 * @returns {Object} Data modified with post_ID attached.
+			 */
+			addBefore: function( s ) {
+				s.data += '&post_id=' + $('#post_ID').val();
+				return s;
+			},
+			/**
+			 * Show the listing of custom fields after fetching.
+			 */
+			addAfter: function() {
+				$('table#list-table').show();
+			}
 		});
 	}
 
-	// submitdiv
+	/*
+	 * Publish Post box (#submitdiv)
+	 */
 	if ( $('#submitdiv').length ) {
 		stamp = $('#timestamp').html();
 		visibility = $('#post-visibility-display').html();
 
+		/**
+		 * When the visibility of a post changes sub-options should be shown or hidden.
+		 *
+		 * @returns void
+		 */
 		updateVisibility = function() {
+			// Show sticky for public posts.
 			if ( $postVisibilitySelect.find('input:radio:checked').val() != 'public' ) {
 				$('#sticky').prop('checked', false);
 				$('#sticky-span').hide();
 			} else {
 				$('#sticky-span').show();
 			}
+
+			// Show password input field for password protected post.
 			if ( $postVisibilitySelect.find('input:radio:checked').val() != 'password' ) {
 				$('#password-span').hide();
 			} else {
@@ -540,6 +708,11 @@ jQuery(document).ready( function($) {
 			}
 		};
 
+		/**
+		 * Make sure all labels represent the current settings.
+		 *
+		 * @returns {boolean} False when an invalid timestamp has been selected, otherwise True.
+		 */
 		updateText = function() {
 
 			if ( ! $timestampdiv.length )
@@ -553,6 +726,7 @@ jQuery(document).ready( function($) {
 			originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val() );
 			currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val() );
 
+			// Catch unexpected date problems.
 			if ( attemptedDate.getFullYear() != aa || (1 + attemptedDate.getMonth()) != mm || attemptedDate.getDate() != jj || attemptedDate.getMinutes() != mn ) {
 				$timestampdiv.find('.timestamp-wrap').addClass('form-invalid');
 				return false;
@@ -560,6 +734,7 @@ jQuery(document).ready( function($) {
 				$timestampdiv.find('.timestamp-wrap').removeClass('form-invalid');
 			}
 
+			// Determine what the publish should be depending on the date and post status.
 			if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
 				publishOn = postL10n.publishOnFuture;
 				$('#publish').val( postL10n.schedule );
@@ -570,7 +745,10 @@ jQuery(document).ready( function($) {
 				publishOn = postL10n.publishOnPast;
 				$('#publish').val( postL10n.update );
 			}
-			if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
+
+			// If the date is the same, set it to trigger update events.
+			if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) {
+				// Re-set to the current value.
 				$('#timestamp').html(stamp);
 			} else {
 				$('#timestamp').html(
@@ -585,6 +763,7 @@ jQuery(document).ready( function($) {
 				);
 			}
 
+			// Add "privately published" to post status when applies.
 			if ( $postVisibilitySelect.find('input:radio:checked').val() == 'private' ) {
 				$('#publish').val( postL10n.update );
 				if ( 0 === optPublish.length ) {
@@ -606,7 +785,11 @@ jQuery(document).ready( function($) {
 				if ( postStatus.is(':hidden') )
 					$('#misc-publishing-actions .edit-post-status').show();
 			}
+
+			// Update "Status:" to currently selected status.
 			$('#post-status-display').html($('option:selected', postStatus).text());
+
+			// Show or hide the "Save Draft" button.
 			if ( $('option:selected', postStatus).val() == 'private' || $('option:selected', postStatus).val() == 'publish' ) {
 				$('#save-post').hide();
 			} else {
@@ -620,6 +803,7 @@ jQuery(document).ready( function($) {
 			return true;
 		};
 
+		// Show the visibility options and hide the toggle button when opened.
 		$( '#visibility .edit-visibility').click( function( e ) {
 			e.preventDefault();
 			if ( $postVisibilitySelect.is(':hidden') ) {
@@ -631,6 +815,7 @@ jQuery(document).ready( function($) {
 			}
 		});
 
+		// Cancel visibility selection area and hide it from view.
 		$postVisibilitySelect.find('.cancel-post-visibility').click( function( event ) {
 			$postVisibilitySelect.slideUp('fast');
 			$('#visibility-radio-' + $('#hidden-post-visibility').val()).prop('checked', true);
@@ -642,6 +827,7 @@ jQuery(document).ready( function($) {
 			event.preventDefault();
 		});
 
+		// Set the selected visibility as current.
 		$postVisibilitySelect.find('.save-post-visibility').click( function( event ) { // crazyhorse - multiple ok cancels
 			$postVisibilitySelect.slideUp('fast');
 			$('#visibility .edit-visibility').show().focus();
@@ -649,7 +835,7 @@ jQuery(document).ready( function($) {
 
 			if ( $postVisibilitySelect.find('input:radio:checked').val() != 'public' ) {
 				$('#sticky').prop('checked', false);
-			} // WEAPON LOCKED
+			}
 
 			if ( $('#sticky').prop('checked') ) {
 				sticky = 'Sticky';
@@ -661,10 +847,12 @@ jQuery(document).ready( function($) {
 			event.preventDefault();
 		});
 
+		// When the selection changes, update labels.
 		$postVisibilitySelect.find('input:radio').change( function() {
 			updateVisibility();
 		});
 
+		// Edit publish time click.
 		$timestampdiv.siblings('a.edit-timestamp').click( function( event ) {
 			if ( $timestampdiv.is( ':hidden' ) ) {
 				$timestampdiv.slideDown( 'fast', function() {
@@ -675,6 +863,7 @@ jQuery(document).ready( function($) {
 			event.preventDefault();
 		});
 
+		// Cancel editing the publish time and hide the settings.
 		$timestampdiv.find('.cancel-timestamp').click( function( event ) {
 			$timestampdiv.slideUp('fast').siblings('a.edit-timestamp').show().focus();
 			$('#mm').val($('#hidden_mm').val());
@@ -686,6 +875,7 @@ jQuery(document).ready( function($) {
 			event.preventDefault();
 		});
 
+		// Save the changed timestamp.
 		$timestampdiv.find('.save-timestamp').click( function( event ) { // crazyhorse - multiple ok cancels
 			if ( updateText() ) {
 				$timestampdiv.slideUp('fast');
@@ -694,6 +884,7 @@ jQuery(document).ready( function($) {
 			event.preventDefault();
 		});
 
+		// Cancel submit when an invalid timestamp has been selected.
 		$('#post').on( 'submit', function( event ) {
 			if ( ! updateText() ) {
 				event.preventDefault();
@@ -707,6 +898,7 @@ jQuery(document).ready( function($) {
 			}
 		});
 
+		// Post Status edit click.
 		$postStatusSelect.siblings('a.edit-post-status').click( function( event ) {
 			if ( $postStatusSelect.is( ':hidden' ) ) {
 				$postStatusSelect.slideDown( 'fast', function() {
@@ -717,21 +909,31 @@ jQuery(document).ready( function($) {
 			event.preventDefault();
 		});
 
+		// Save the Post Status changes and hide the options.
 		$postStatusSelect.find('.save-post-status').click( function( event ) {
 			$postStatusSelect.slideUp( 'fast' ).siblings( 'a.edit-post-status' ).show().focus();
 			updateText();
 			event.preventDefault();
 		});
 
+		// Cancel Post Status editing and hide the options.
 		$postStatusSelect.find('.cancel-post-status').click( function( event ) {
 			$postStatusSelect.slideUp( 'fast' ).siblings( 'a.edit-post-status' ).show().focus();
 			$('#post_status').val( $('#hidden_post_status').val() );
 			updateText();
 			event.preventDefault();
 		});
-	} // end submitdiv
+	}
 
-	// permalink
+	/**
+	 * Handle the editing of the post_name. Create the required HTML elements and update the changes via AJAX.
+	 *
+	 * @summary Permalink aka slug aka post_name editing
+	 *
+	 * @global
+	 *
+	 * @returns void
+	 */
 	function editPermalink() {
 		var i, slug_value,
 			$el, revert_e,
@@ -745,15 +947,19 @@ jQuery(document).ready( function($) {
 			buttonsOrig = buttons.html(),
 			full = $('#editable-post-name-full');
 
-		// Deal with Twemoji in the post-name
+		// Deal with Twemoji in the post-name.
 		full.find( 'img' ).replaceWith( function() { return this.alt; } );
 		full = full.html();
 
 		permalink.html( permalinkInner );
+
+		// Save current content to revert to when cancelling.
 		$el = $( '#editable-post-name' );
 		revert_e = $el.html();
 
 		buttons.html( '<button type="button" class="save button button-small">' + postL10n.ok + '</button> <button type="button" class="cancel button-link">' + postL10n.cancel + '</button>' );
+
+		// Save permalink changes.
 		buttons.children( '.save' ).click( function() {
 			var new_slug = $el.children( 'input' ).val();
 
@@ -761,29 +967,35 @@ jQuery(document).ready( function($) {
 				buttons.children('.cancel').click();
 				return;
 			}
-			$.post(ajaxurl, {
-				action: 'sample-permalink',
-				post_id: postId,
-				new_slug: new_slug,
-				new_title: $('#title').val(),
-				samplepermalinknonce: $('#samplepermalinknonce').val()
-			}, function(data) {
-				var box = $('#edit-slug-box');
-				box.html(data);
-				if (box.hasClass('hidden')) {
-					box.fadeIn('fast', function () {
-						box.removeClass('hidden');
-					});
-				}
 
-				buttons.html(buttonsOrig);
-				permalink.html(permalinkOrig);
-				real_slug.val(new_slug);
-				$( '.edit-slug' ).focus();
-				wp.a11y.speak( postL10n.permalinkSaved );
-			});
+			$.post(
+				ajaxurl,
+				{
+					action: 'sample-permalink',
+					post_id: postId,
+					new_slug: new_slug,
+					new_title: $('#title').val(),
+					samplepermalinknonce: $('#samplepermalinknonce').val()
+				},
+				function(data) {
+					var box = $('#edit-slug-box');
+					box.html(data);
+					if (box.hasClass('hidden')) {
+						box.fadeIn('fast', function () {
+							box.removeClass('hidden');
+						});
+					}
+
+					buttons.html(buttonsOrig);
+					permalink.html(permalinkOrig);
+					real_slug.val(new_slug);
+					$( '.edit-slug' ).focus();
+					wp.a11y.speak( postL10n.permalinkSaved );
+				}
+			);
 		});
 
+		// Cancel editing of permalink.
 		buttons.children( '.cancel' ).click( function() {
 			$('#view-post-btn').show();
 			$el.html(revert_e);
@@ -793,19 +1005,21 @@ jQuery(document).ready( function($) {
 			$( '.edit-slug' ).focus();
 		});
 
+		// If more than 1/4th of 'full' is '%', make it empty.
 		for ( i = 0; i < full.length; ++i ) {
 			if ( '%' == full.charAt(i) )
 				c++;
 		}
-
 		slug_value = ( c > full.length / 4 ) ? '' : full;
+
 		$el.html( '<input type="text" id="new-post-slug" value="' + slug_value + '" autocomplete="off" />' ).children( 'input' ).keydown( function( e ) {
 			var key = e.which;
-			// On enter, just save the new slug, don't save the post.
+			// On [enter], just save the new slug, don't save the post.
 			if ( 13 === key ) {
 				e.preventDefault();
 				buttons.children( '.save' ).click();
 			}
+			// On [esc] cancel the editing.
 			if ( 27 === key ) {
 				buttons.children( '.cancel' ).click();
 			}
@@ -818,6 +1032,17 @@ jQuery(document).ready( function($) {
 		editPermalink();
 	});
 
+	/**
+	 * Add screen reader text to the title prompt when needed.
+	 *
+	 * @summary Title screen reader text handler.
+	 *
+	 * @param {string} id Optional. HTML ID to add the screen reader helper text to.
+	 *
+	 * @global
+	 *
+	 * @returns void
+	 */
 	wptitlehint = function(id) {
 		id = id || 'title';
 
@@ -844,19 +1069,24 @@ jQuery(document).ready( function($) {
 
 	wptitlehint();
 
-	// Resize the visual and text editors
+	// Resize the WYSIWYG and plain text editors.
 	( function() {
 		var editor, offset, mce,
 			$handle = $('#post-status-info'),
 			$postdivrich = $('#postdivrich');
 
-		// No point for touch devices
+		// If there are no textareas or we are on a touch device, we can't do anything.
 		if ( ! $textarea.length || 'ontouchstart' in window ) {
-			// Hide the resize handle
+			// Hide the resize handle.
 			$('#content-resize-handle').hide();
 			return;
 		}
 
+		/**
+		 * Handle drag event.
+		 *
+		 * @param {Object} event Event containing details about the drag.
+		 */
 		function dragging( event ) {
 			if ( $postdivrich.hasClass( 'wp-editor-expand' ) ) {
 				return;
@@ -871,6 +1101,9 @@ jQuery(document).ready( function($) {
 			event.preventDefault();
 		}
 
+		/**
+		 * When the dragging stopped make sure we return focus and do a sanity check on the height.
+		 */
 		function endDrag() {
 			var height, toolbarHeight;
 
@@ -894,7 +1127,7 @@ jQuery(document).ready( function($) {
 
 			$document.off( '.wp-editor-resize' );
 
-			// sanity check
+			// Sanity check: normalize height to stay within acceptable ranges.
 			if ( height && height > 50 && height < 5000 ) {
 				setUserSetting( 'ed_size', height );
 			}
@@ -921,8 +1154,9 @@ jQuery(document).ready( function($) {
 		}).on( 'mouseup.wp-editor-resize', endDrag );
 	})();
 
+	// TinyMCE specific handling of Post Format changes to reflect in the editor.
 	if ( typeof tinymce !== 'undefined' ) {
-		// When changing post formats, change the editor body class
+		// When changing post formats, change the editor body class.
 		$( '#post-formats-select input.post-format' ).on( 'change.set-editor-class', function() {
 			var editor, body, format = this.id;
 
@@ -933,10 +1167,28 @@ jQuery(document).ready( function($) {
 				$( document ).trigger( 'editor-classchange' );
 			}
 		});
+
+		// When changing page template, change the editor body class
+		$( '#page_template' ).on( 'change.set-editor-class', function() {
+			var editor, body, pageTemplate = $( this ).val() || '';
+
+			pageTemplate = pageTemplate.substr( pageTemplate.lastIndexOf( '/' ) + 1, pageTemplate.length )
+				.replace( /\.php$/, '' )
+				.replace( /\./g, '-' );
+
+			if ( pageTemplate && ( editor = tinymce.get( 'content' ) ) ) {
+				body = editor.getBody();
+				body.className = body.className.replace( /\bpage-template-[^ ]+/, '' );
+				editor.dom.addClass( body, 'page-template-' + pageTemplate );
+				$( document ).trigger( 'editor-classchange' );
+			}
+		});
+
 	}
 
-	// Save on pressing Ctrl/Command + S in the Text editor
+	// Save on pressing [ctrl]/[command] + [s] in the Text editor.
 	$textarea.on( 'keydown.wp-autosave', function( event ) {
+		// Key [s] has code 83.
 		if ( event.which === 83 ) {
 			if ( event.shiftKey || event.altKey || ( isMac && ( ! event.metaKey || event.ctrlKey ) ) || ( ! isMac && ! event.ctrlKey ) ) {
 				return;
@@ -947,6 +1199,7 @@ jQuery(document).ready( function($) {
 		}
 	});
 
+	// If the last status was auto-draft and the save is triggered, edit the current URL.
 	if ( $( '#original_post_status' ).val() === 'auto-draft' && window.history.replaceState ) {
 		var location;
 
@@ -960,6 +1213,9 @@ jQuery(document).ready( function($) {
 	}
 });
 
+/**
+ * TinyMCE word count display
+ */
 ( function( $, counter ) {
 	$( function() {
 		var $content = $( '#content' ),
@@ -967,6 +1223,9 @@ jQuery(document).ready( function($) {
 			prevCount = 0,
 			contentEditor;
 
+		/**
+		 * Get the word count from TinyMCE and display it
+		 */
 		function update() {
 			var text, count;
 
@@ -985,6 +1244,12 @@ jQuery(document).ready( function($) {
 			prevCount = count;
 		}
 
+		/**
+		 * Bind the word count update triggers.
+		 *
+		 * When a node change in the main TinyMCE editor has been triggered.
+		 * When a key has been released in the plain text content editor.
+		 */
 		$( document ).on( 'tinymce-editor-init', function( event, editor ) {
 			if ( editor.id !== 'content' ) {
 				return;
diff --git a/wp-admin/js/post.min.js b/wp-admin/js/post.min.js
index 769ff9215..db128fb19 100644
--- a/wp-admin/js/post.min.js
+++ b/wp-admin/js/post.min.js
@@ -1 +1 @@
-var commentsBox,WPSetThumbnailHTML,WPSetThumbnailID,WPRemoveThumbnail,wptitlehint,makeSlugeditClickable,editPermalink;makeSlugeditClickable=editPermalink=function(){},window.wp=window.wp||{},function(a){var b=!1;commentsBox={st:0,get:function(b,c){var d,e=this.st;return c||(c=20),this.st+=c,this.total=b,a("#commentsdiv .spinner").addClass("is-active"),d={action:"get-comments",mode:"single",_ajax_nonce:a("#add_comment_nonce").val(),p:a("#post_ID").val(),start:e,number:c},a.post(ajaxurl,d,function(b){return b=wpAjax.parseAjaxResponse(b),a("#commentsdiv .widefat").show(),a("#commentsdiv .spinner").removeClass("is-active"),"object"==typeof b&&b.responses[0]?(a("#the-comment-list").append(b.responses[0].data),theList=theExtraList=null,a("a[className*=':']").unbind(),void(commentsBox.st>commentsBox.total?a("#show-comments").hide():a("#show-comments").show().children("a").html(postL10n.showcomm))):1==b?void a("#show-comments").html(postL10n.endcomm):void a("#the-comment-list").append('<tr><td colspan="2">'+wpAjax.broken+"</td></tr>")}),!1},load:function(a){this.st=jQuery("#the-comment-list tr.comment:visible").length,this.get(a)}},WPSetThumbnailHTML=function(b){a(".inside","#postimagediv").html(b)},WPSetThumbnailID=function(b){var c=a('input[value="_thumbnail_id"]',"#list-table");c.length>0&&a("#meta\\["+c.attr("id").match(/[0-9]+/)+"\\]\\[value\\]").text(b)},WPRemoveThumbnail=function(b){a.post(ajaxurl,{action:"set-post-thumbnail",post_id:a("#post_ID").val(),thumbnail_id:-1,_ajax_nonce:b,cookie:encodeURIComponent(document.cookie)},function(a){"0"==a?alert(setPostThumbnailL10n.error):WPSetThumbnailHTML(a)})},a(document).on("heartbeat-send.refresh-lock",function(b,c){var d=a("#active_post_lock").val(),e=a("#post_ID").val(),f={};e&&a("#post-lock-dialog").length&&(f.post_id=e,d&&(f.lock=d),c["wp-refresh-post-lock"]=f)}).on("heartbeat-tick.refresh-lock",function(b,c){var d,e,f;c["wp-refresh-post-lock"]&&(d=c["wp-refresh-post-lock"],d.lock_error?(e=a("#post-lock-dialog"),e.length&&!e.is(":visible")&&(wp.autosave&&(a(document).one("heartbeat-tick",function(){wp.autosave.server.suspend(),e.removeClass("saving").addClass("saved"),a(window).off("beforeunload.edit-post")}),e.addClass("saving"),wp.autosave.server.triggerSave()),d.lock_error.avatar_src&&(f=a('<img class="avatar avatar-64 photo" width="64" height="64" alt="" />').attr("src",d.lock_error.avatar_src.replace(/&amp;/g,"&")),e.find("div.post-locked-avatar").empty().append(f)),e.show().find(".currently-editing").text(d.lock_error.text),e.find(".wp-tab-first").focus())):d.new_lock&&a("#active_post_lock").val(d.new_lock))}).on("before-autosave.update-post-slug",function(){b=document.activeElement&&"title"===document.activeElement.id}).on("after-autosave.update-post-slug",function(){a("#edit-slug-box > *").length||b||a.post(ajaxurl,{action:"sample-permalink",post_id:a("#post_ID").val(),new_title:a("#title").val(),samplepermalinknonce:a("#samplepermalinknonce").val()},function(b){"-1"!=b&&a("#edit-slug-box").html(b)})})}(jQuery),function(a){function b(){c=!1,window.clearTimeout(d),d=window.setTimeout(function(){c=!0},3e5)}var c,d;a(document).on("heartbeat-send.wp-refresh-nonces",function(b,d){var e,f=a("#wp-auth-check-wrap");(c||f.length&&!f.hasClass("hidden"))&&(e=a("#post_ID").val())&&a("#_wpnonce").val()&&(d["wp-refresh-post-nonces"]={post_id:e})}).on("heartbeat-tick.wp-refresh-nonces",function(c,d){var e=d["wp-refresh-post-nonces"];e&&(b(),e.replace&&a.each(e.replace,function(b,c){a("#"+b).val(c)}),e.heartbeatNonce&&(window.heartbeatSettings.nonce=e.heartbeatNonce))}).ready(function(){b()})}(jQuery),jQuery(document).ready(function(a){function b(){var b,c,d,e,f=0,g=a("#post_name"),h=g.val(),i=a("#sample-permalink"),j=i.html(),l=a("#sample-permalink a").html(),m=a("#edit-slug-buttons"),n=m.html(),o=a("#editable-post-name-full");for(o.find("img").replaceWith(function(){return this.alt}),o=o.html(),i.html(l),d=a("#editable-post-name"),e=d.html(),m.html('<button type="button" class="save button button-small">'+postL10n.ok+'</button> <button type="button" class="cancel button-link">'+postL10n.cancel+"</button>"),m.children(".save").click(function(){var b=d.children("input").val();return b==a("#editable-post-name-full").text()?void m.children(".cancel").click():void a.post(ajaxurl,{action:"sample-permalink",post_id:k,new_slug:b,new_title:a("#title").val(),samplepermalinknonce:a("#samplepermalinknonce").val()},function(c){var d=a("#edit-slug-box");d.html(c),d.hasClass("hidden")&&d.fadeIn("fast",function(){d.removeClass("hidden")}),m.html(n),i.html(j),g.val(b),a(".edit-slug").focus(),wp.a11y.speak(postL10n.permalinkSaved)})}),m.children(".cancel").click(function(){a("#view-post-btn").show(),d.html(e),m.html(n),i.html(j),g.val(h),a(".edit-slug").focus()}),b=0;b<o.length;++b)"%"==o.charAt(b)&&f++;c=f>o.length/4?"":o,d.html('<input type="text" id="new-post-slug" value="'+c+'" autocomplete="off" />').children("input").keydown(function(a){var b=a.which;13===b&&(a.preventDefault(),m.children(".save").click()),27===b&&m.children(".cancel").click()}).keyup(function(){g.val(this.value)}).focus()}var c,d,e,f,g,h="",i=a("#content"),j=a(document),k=a("#post_ID").val()||0,l=a("#submitpost"),m=!0,n=a("#post-visibility-select"),o=a("#timestampdiv"),p=a("#post-status-select"),q=!!window.navigator.platform&&window.navigator.platform.indexOf("Mac")!==-1;if(postboxes.add_postbox_toggles(pagenow),window.name="",a("#post-lock-dialog .notification-dialog").on("keydown",function(b){if(9==b.which){var c=a(b.target);c.hasClass("wp-tab-first")&&b.shiftKey?(a(this).find(".wp-tab-last").focus(),b.preventDefault()):c.hasClass("wp-tab-last")&&!b.shiftKey&&(a(this).find(".wp-tab-first").focus(),b.preventDefault())}}).filter(":visible").find(".wp-tab-first").focus(),wp.heartbeat&&a("#post-lock-dialog").length&&wp.heartbeat.interval(15),e=l.find(":submit, a.submitdelete, #post-preview").on("click.edit-post",function(b){var c=a(this);return c.hasClass("disabled")?void b.preventDefault():void(c.hasClass("submitdelete")||c.is("#post-preview")||a("form#post").off("submit.edit-post").on("submit.edit-post",function(b){if(!b.isDefaultPrevented()){if(wp.autosave&&wp.autosave.server.suspend(),"undefined"!=typeof commentReply){if(!commentReply.discardCommentChanges())return!1;commentReply.close()}m=!1,a(window).off("beforeunload.edit-post"),e.addClass("disabled"),"publish"===c.attr("id")?l.find("#major-publishing-actions .spinner").addClass("is-active"):l.find("#minor-publishing .spinner").addClass("is-active")}}))}),a("#post-preview").on("click.post-preview",function(b){var c=a(this),d=a("form#post"),e=a("input#wp-preview"),f=c.attr("target")||"wp-preview",g=navigator.userAgent.toLowerCase();b.preventDefault(),c.hasClass("disabled")||(wp.autosave&&wp.autosave.server.tempBlockSave(),e.val("dopreview"),d.attr("target",f).submit().attr("target",""),g.indexOf("safari")!==-1&&g.indexOf("chrome")===-1&&d.attr("action",function(a,b){return b+"?t="+(new Date).getTime()}),e.val(""))}),a("#title").on("keydown.editor-focus",function(a){var b;if(9===a.keyCode&&!a.ctrlKey&&!a.altKey&&!a.shiftKey){if(b="undefined"!=typeof tinymce&&tinymce.get("content"),b&&!b.isHidden())b.focus();else{if(!i.length)return;i.focus()}a.preventDefault()}}),a("#auto_draft").val()&&a("#title").blur(function(){var b;this.value&&!a("#edit-slug-box > *").length&&(a("form#post").one("submit",function(){b=!0}),window.setTimeout(function(){!b&&wp.autosave&&wp.autosave.server.triggerSave()},200))}),j.on("autosave-disable-buttons.edit-post",function(){e.addClass("disabled")}).on("autosave-enable-buttons.edit-post",function(){wp.heartbeat&&wp.heartbeat.hasConnectionError()||e.removeClass("disabled")}).on("before-autosave.edit-post",function(){a(".autosave-message").text(postL10n.savingText)}).on("after-autosave.edit-post",function(b,c){a(".autosave-message").text(c.message),a(document.body).hasClass("post-new-php")&&a(".submitbox .submitdelete").show()}),a(window).on("beforeunload.edit-post",function(){var a="undefined"!=typeof tinymce&&tinymce.get("content");if(a&&!a.isHidden()&&a.isDirty()||wp.autosave&&wp.autosave.server.postChanged())return postL10n.saveAlert}).on("unload.edit-post",function(b){m&&(b.target&&"#document"!=b.target.nodeName||a.ajax({type:"POST",url:ajaxurl,async:!1,data:{action:"wp-remove-post-lock",_wpnonce:a("#_wpnonce").val(),post_ID:a("#post_ID").val(),active_post_lock:a("#active_post_lock").val()}}))}),a("#tagsdiv-post_tag").length?window.tagBox&&window.tagBox.init():a(".meta-box-sortables").children("div.postbox").each(function(){if(0===this.id.indexOf("tagsdiv-"))return window.tagBox&&window.tagBox.init(),!1}),a(".categorydiv").each(function(){var b,c,d,e,f,g=a(this).attr("id");d=g.split("-"),d.shift(),e=d.join("-"),f=e+"_tab","category"==e&&(f="cats"),a("a","#"+e+"-tabs").click(function(b){b.preventDefault();var c=a(this).attr("href");a(this).parent().addClass("tabs").siblings("li").removeClass("tabs"),a("#"+e+"-tabs").siblings(".tabs-panel").hide(),a(c).show(),"#"+e+"-all"==c?deleteUserSetting(f):setUserSetting(f,"pop")}),getUserSetting(f)&&a('a[href="#'+e+'-pop"]',"#"+e+"-tabs").click(),a("#new"+e).one("focus",function(){a(this).val("").removeClass("form-input-tip")}),a("#new"+e).keypress(function(b){13===b.keyCode&&(b.preventDefault(),a("#"+e+"-add-submit").click())}),a("#"+e+"-add-submit").click(function(){a("#new"+e).focus()}),b=function(b){return!!a("#new"+e).val()&&(b.data+="&"+a(":checked","#"+e+"checklist").serialize(),a("#"+e+"-add-submit").prop("disabled",!0),b)},c=function(b,c){var d,f=a("#new"+e+"_parent");a("#"+e+"-add-submit").prop("disabled",!1),"undefined"!=c.parsed.responses[0]&&(d=c.parsed.responses[0].supplemental.newcat_parent)&&(f.before(d),f.remove())},a("#"+e+"checklist").wpList({alt:"",response:e+"-ajax-response",addBefore:b,addAfter:c}),a("#"+e+"-add-toggle").click(function(b){b.preventDefault(),a("#"+e+"-adder").toggleClass("wp-hidden-children"),a('a[href="#'+e+'-all"]',"#"+e+"-tabs").click(),a("#new"+e).focus()}),a("#"+e+"checklist, #"+e+"checklist-pop").on("click",'li.popular-category > label input[type="checkbox"]',function(){var b=a(this),c=b.is(":checked"),d=b.val();d&&b.parents("#taxonomy-"+e).length&&a("#in-"+e+"-"+d+", #in-popular-"+e+"-"+d).prop("checked",c)})}),a("#postcustom").length&&a("#the-list").wpList({addAfter:function(){a("table#list-table").show()},addBefore:function(b){return b.data+="&post_id="+a("#post_ID").val(),b}}),a("#submitdiv").length&&(c=a("#timestamp").html(),d=a("#post-visibility-display").html(),f=function(){"public"!=n.find("input:radio:checked").val()?(a("#sticky").prop("checked",!1),a("#sticky-span").hide()):a("#sticky-span").show(),"password"!=n.find("input:radio:checked").val()?a("#password-span").hide():a("#password-span").show()},g=function(){if(!o.length)return!0;var b,d,e,f,g=a("#post_status"),h=a('option[value="publish"]',g),i=a("#aa").val(),j=a("#mm").val(),k=a("#jj").val(),l=a("#hh").val(),m=a("#mn").val();return b=new Date(i,j-1,k,l,m),d=new Date(a("#hidden_aa").val(),a("#hidden_mm").val()-1,a("#hidden_jj").val(),a("#hidden_hh").val(),a("#hidden_mn").val()),e=new Date(a("#cur_aa").val(),a("#cur_mm").val()-1,a("#cur_jj").val(),a("#cur_hh").val(),a("#cur_mn").val()),b.getFullYear()!=i||1+b.getMonth()!=j||b.getDate()!=k||b.getMinutes()!=m?(o.find(".timestamp-wrap").addClass("form-invalid"),!1):(o.find(".timestamp-wrap").removeClass("form-invalid"),b>e&&"future"!=a("#original_post_status").val()?(f=postL10n.publishOnFuture,a("#publish").val(postL10n.schedule)):b<=e&&"publish"!=a("#original_post_status").val()?(f=postL10n.publishOn,a("#publish").val(postL10n.publish)):(f=postL10n.publishOnPast,a("#publish").val(postL10n.update)),d.toUTCString()==b.toUTCString()?a("#timestamp").html(c):a("#timestamp").html("\n"+f+" <b>"+postL10n.dateFormat.replace("%1$s",a('option[value="'+j+'"]',"#mm").attr("data-text")).replace("%2$s",parseInt(k,10)).replace("%3$s",i).replace("%4$s",("00"+l).slice(-2)).replace("%5$s",("00"+m).slice(-2))+"</b> "),"private"==n.find("input:radio:checked").val()?(a("#publish").val(postL10n.update),0===h.length?g.append('<option value="publish">'+postL10n.privatelyPublished+"</option>"):h.html(postL10n.privatelyPublished),a('option[value="publish"]',g).prop("selected",!0),a("#misc-publishing-actions .edit-post-status").hide()):("future"==a("#original_post_status").val()||"draft"==a("#original_post_status").val()?h.length&&(h.remove(),g.val(a("#hidden_post_status").val())):h.html(postL10n.published),g.is(":hidden")&&a("#misc-publishing-actions .edit-post-status").show()),a("#post-status-display").html(a("option:selected",g).text()),"private"==a("option:selected",g).val()||"publish"==a("option:selected",g).val()?a("#save-post").hide():(a("#save-post").show(),"pending"==a("option:selected",g).val()?a("#save-post").show().val(postL10n.savePending):a("#save-post").show().val(postL10n.saveDraft)),!0)},a("#visibility .edit-visibility").click(function(b){b.preventDefault(),n.is(":hidden")&&(f(),n.slideDown("fast",function(){n.find('input[type="radio"]').first().focus()}),a(this).hide())}),n.find(".cancel-post-visibility").click(function(b){n.slideUp("fast"),a("#visibility-radio-"+a("#hidden-post-visibility").val()).prop("checked",!0),a("#post_password").val(a("#hidden-post-password").val()),a("#sticky").prop("checked",a("#hidden-post-sticky").prop("checked")),a("#post-visibility-display").html(d),a("#visibility .edit-visibility").show().focus(),g(),b.preventDefault()}),n.find(".save-post-visibility").click(function(b){n.slideUp("fast"),a("#visibility .edit-visibility").show().focus(),g(),"public"!=n.find("input:radio:checked").val()&&a("#sticky").prop("checked",!1),h=a("#sticky").prop("checked")?"Sticky":"",a("#post-visibility-display").html(postL10n[n.find("input:radio:checked").val()+h]),b.preventDefault()}),n.find("input:radio").change(function(){f()}),o.siblings("a.edit-timestamp").click(function(b){o.is(":hidden")&&(o.slideDown("fast",function(){a("input, select",o.find(".timestamp-wrap")).first().focus()}),a(this).hide()),b.preventDefault()}),o.find(".cancel-timestamp").click(function(b){o.slideUp("fast").siblings("a.edit-timestamp").show().focus(),a("#mm").val(a("#hidden_mm").val()),a("#jj").val(a("#hidden_jj").val()),a("#aa").val(a("#hidden_aa").val()),a("#hh").val(a("#hidden_hh").val()),a("#mn").val(a("#hidden_mn").val()),g(),b.preventDefault()}),o.find(".save-timestamp").click(function(a){g()&&(o.slideUp("fast"),o.siblings("a.edit-timestamp").show().focus()),a.preventDefault()}),a("#post").on("submit",function(b){g()||(b.preventDefault(),o.show(),wp.autosave&&wp.autosave.enableButtons(),a("#publishing-action .spinner").removeClass("is-active"))}),p.siblings("a.edit-post-status").click(function(b){p.is(":hidden")&&(p.slideDown("fast",function(){p.find("select").focus()}),a(this).hide()),b.preventDefault()}),p.find(".save-post-status").click(function(a){p.slideUp("fast").siblings("a.edit-post-status").show().focus(),g(),a.preventDefault()}),p.find(".cancel-post-status").click(function(b){p.slideUp("fast").siblings("a.edit-post-status").show().focus(),a("#post_status").val(a("#hidden_post_status").val()),g(),b.preventDefault()})),a("#titlediv").on("click",".edit-slug",function(){b()}),wptitlehint=function(b){b=b||"title";var c=a("#"+b),d=a("#"+b+"-prompt-text");""===c.val()&&d.removeClass("screen-reader-text"),d.click(function(){a(this).addClass("screen-reader-text"),c.focus()}),c.blur(function(){""===this.value&&d.removeClass("screen-reader-text")}).focus(function(){d.addClass("screen-reader-text")}).keydown(function(b){d.addClass("screen-reader-text"),a(this).unbind(b)})},wptitlehint(),function(){function b(a){h.hasClass("wp-editor-expand")||(f?d.theme.resizeTo(null,e+a.pageY):i.height(Math.max(50,e+a.pageY)),a.preventDefault())}function c(){var b,c;h.hasClass("wp-editor-expand")||(f?(d.focus(),c=parseInt(a("#wp-content-editor-container .mce-toolbar-grp").height(),10),(c<10||c>200)&&(c=30),b=parseInt(a("#content_ifr").css("height"),10)+c-28):(i.focus(),b=parseInt(i.css("height"),10)),j.off(".wp-editor-resize"),b&&b>50&&b<5e3&&setUserSetting("ed_size",b))}var d,e,f,g=a("#post-status-info"),h=a("#postdivrich");return!i.length||"ontouchstart"in window?void a("#content-resize-handle").hide():void g.on("mousedown.wp-editor-resize",function(g){"undefined"!=typeof tinymce&&(d=tinymce.get("content")),d&&!d.isHidden()?(f=!0,e=a("#content_ifr").height()-g.pageY):(f=!1,e=i.height()-g.pageY,i.blur()),j.on("mousemove.wp-editor-resize",b).on("mouseup.wp-editor-resize mouseleave.wp-editor-resize",c),g.preventDefault()}).on("mouseup.wp-editor-resize",c)}(),"undefined"!=typeof tinymce&&a("#post-formats-select input.post-format").on("change.set-editor-class",function(){var b,c,d=this.id;d&&a(this).prop("checked")&&(b=tinymce.get("content"))&&(c=b.getBody(),c.className=c.className.replace(/\bpost-format-[^ ]+/,""),b.dom.addClass(c,"post-format-0"==d?"post-format-standard":d),a(document).trigger("editor-classchange"))}),i.on("keydown.wp-autosave",function(a){if(83===a.which){if(a.shiftKey||a.altKey||q&&(!a.metaKey||a.ctrlKey)||!q&&!a.ctrlKey)return;wp.autosave&&wp.autosave.server.triggerSave(),a.preventDefault()}}),"auto-draft"===a("#original_post_status").val()&&window.history.replaceState){var r;a("#publish").on("click",function(){r=window.location.href,r+=r.indexOf("?")!==-1?"&":"?",r+="wp-post-new-reload=true",window.history.replaceState(null,null,r)})}}),function(a,b){a(function(){function c(){var a,c;a=!d||d.isHidden()?e.val():d.getContent({format:"raw"}),c=b.count(a),c!==g&&f.text(c),g=c}var d,e=a("#content"),f=a("#wp-word-count").find(".word-count"),g=0;a(document).on("tinymce-editor-init",function(a,b){"content"===b.id&&(d=b,b.on("nodechange keyup",_.debounce(c,1e3)))}),e.on("input keyup",_.debounce(c,1e3)),c()})}(jQuery,new wp.utils.WordCounter);
\ No newline at end of file
+var commentsBox,WPSetThumbnailHTML,WPSetThumbnailID,WPRemoveThumbnail,wptitlehint,makeSlugeditClickable,editPermalink;makeSlugeditClickable=editPermalink=function(){},window.wp=window.wp||{},function(a){var b=!1;commentsBox={st:0,get:function(b,c){var d,e=this.st;return c||(c=20),this.st+=c,this.total=b,a("#commentsdiv .spinner").addClass("is-active"),d={action:"get-comments",mode:"single",_ajax_nonce:a("#add_comment_nonce").val(),p:a("#post_ID").val(),start:e,number:c},a.post(ajaxurl,d,function(b){return b=wpAjax.parseAjaxResponse(b),a("#commentsdiv .widefat").show(),a("#commentsdiv .spinner").removeClass("is-active"),"object"==typeof b&&b.responses[0]?(a("#the-comment-list").append(b.responses[0].data),theList=theExtraList=null,a("a[className*=':']").unbind(),void(commentsBox.st>commentsBox.total?a("#show-comments").hide():a("#show-comments").show().children("a").html(postL10n.showcomm))):1==b?void a("#show-comments").html(postL10n.endcomm):void a("#the-comment-list").append('<tr><td colspan="2">'+wpAjax.broken+"</td></tr>")}),!1},load:function(a){this.st=jQuery("#the-comment-list tr.comment:visible").length,this.get(a)}},WPSetThumbnailHTML=function(b){a(".inside","#postimagediv").html(b)},WPSetThumbnailID=function(b){var c=a('input[value="_thumbnail_id"]',"#list-table");c.length>0&&a("#meta\\["+c.attr("id").match(/[0-9]+/)+"\\]\\[value\\]").text(b)},WPRemoveThumbnail=function(b){a.post(ajaxurl,{action:"set-post-thumbnail",post_id:a("#post_ID").val(),thumbnail_id:-1,_ajax_nonce:b,cookie:encodeURIComponent(document.cookie)},function(a){"0"==a?alert(setPostThumbnailL10n.error):WPSetThumbnailHTML(a)})},a(document).on("heartbeat-send.refresh-lock",function(b,c){var d=a("#active_post_lock").val(),e=a("#post_ID").val(),f={};e&&a("#post-lock-dialog").length&&(f.post_id=e,d&&(f.lock=d),c["wp-refresh-post-lock"]=f)}).on("heartbeat-tick.refresh-lock",function(b,c){var d,e,f;c["wp-refresh-post-lock"]&&(d=c["wp-refresh-post-lock"],d.lock_error?(e=a("#post-lock-dialog"),e.length&&!e.is(":visible")&&(wp.autosave&&(a(document).one("heartbeat-tick",function(){wp.autosave.server.suspend(),e.removeClass("saving").addClass("saved"),a(window).off("beforeunload.edit-post")}),e.addClass("saving"),wp.autosave.server.triggerSave()),d.lock_error.avatar_src&&(f=a('<img class="avatar avatar-64 photo" width="64" height="64" alt="" />').attr("src",d.lock_error.avatar_src.replace(/&amp;/g,"&")),e.find("div.post-locked-avatar").empty().append(f)),e.show().find(".currently-editing").text(d.lock_error.text),e.find(".wp-tab-first").focus())):d.new_lock&&a("#active_post_lock").val(d.new_lock))}).on("before-autosave.update-post-slug",function(){b=document.activeElement&&"title"===document.activeElement.id}).on("after-autosave.update-post-slug",function(){a("#edit-slug-box > *").length||b||a.post(ajaxurl,{action:"sample-permalink",post_id:a("#post_ID").val(),new_title:a("#title").val(),samplepermalinknonce:a("#samplepermalinknonce").val()},function(b){"-1"!=b&&a("#edit-slug-box").html(b)})})}(jQuery),function(a){function b(){c=!1,window.clearTimeout(d),d=window.setTimeout(function(){c=!0},3e5)}var c,d;a(document).on("heartbeat-send.wp-refresh-nonces",function(b,d){var e,f=a("#wp-auth-check-wrap");(c||f.length&&!f.hasClass("hidden"))&&(e=a("#post_ID").val())&&a("#_wpnonce").val()&&(d["wp-refresh-post-nonces"]={post_id:e})}).on("heartbeat-tick.wp-refresh-nonces",function(c,d){var e=d["wp-refresh-post-nonces"];e&&(b(),e.replace&&a.each(e.replace,function(b,c){a("#"+b).val(c)}),e.heartbeatNonce&&(window.heartbeatSettings.nonce=e.heartbeatNonce))}).ready(function(){b()})}(jQuery),jQuery(document).ready(function(a){function b(){var b,c,d,e,f=0,g=a("#post_name"),h=g.val(),i=a("#sample-permalink"),j=i.html(),l=a("#sample-permalink a").html(),m=a("#edit-slug-buttons"),n=m.html(),o=a("#editable-post-name-full");for(o.find("img").replaceWith(function(){return this.alt}),o=o.html(),i.html(l),d=a("#editable-post-name"),e=d.html(),m.html('<button type="button" class="save button button-small">'+postL10n.ok+'</button> <button type="button" class="cancel button-link">'+postL10n.cancel+"</button>"),m.children(".save").click(function(){var b=d.children("input").val();return b==a("#editable-post-name-full").text()?void m.children(".cancel").click():void a.post(ajaxurl,{action:"sample-permalink",post_id:k,new_slug:b,new_title:a("#title").val(),samplepermalinknonce:a("#samplepermalinknonce").val()},function(c){var d=a("#edit-slug-box");d.html(c),d.hasClass("hidden")&&d.fadeIn("fast",function(){d.removeClass("hidden")}),m.html(n),i.html(j),g.val(b),a(".edit-slug").focus(),wp.a11y.speak(postL10n.permalinkSaved)})}),m.children(".cancel").click(function(){a("#view-post-btn").show(),d.html(e),m.html(n),i.html(j),g.val(h),a(".edit-slug").focus()}),b=0;b<o.length;++b)"%"==o.charAt(b)&&f++;c=f>o.length/4?"":o,d.html('<input type="text" id="new-post-slug" value="'+c+'" autocomplete="off" />').children("input").keydown(function(a){var b=a.which;13===b&&(a.preventDefault(),m.children(".save").click()),27===b&&m.children(".cancel").click()}).keyup(function(){g.val(this.value)}).focus()}var c,d,e,f,g,h="",i=a("#content"),j=a(document),k=a("#post_ID").val()||0,l=a("#submitpost"),m=!0,n=a("#post-visibility-select"),o=a("#timestampdiv"),p=a("#post-status-select"),q=!!window.navigator.platform&&window.navigator.platform.indexOf("Mac")!==-1;if(postboxes.add_postbox_toggles(pagenow),window.name="",a("#post-lock-dialog .notification-dialog").on("keydown",function(b){if(9==b.which){var c=a(b.target);c.hasClass("wp-tab-first")&&b.shiftKey?(a(this).find(".wp-tab-last").focus(),b.preventDefault()):c.hasClass("wp-tab-last")&&!b.shiftKey&&(a(this).find(".wp-tab-first").focus(),b.preventDefault())}}).filter(":visible").find(".wp-tab-first").focus(),wp.heartbeat&&a("#post-lock-dialog").length&&wp.heartbeat.interval(15),e=l.find(":submit, a.submitdelete, #post-preview").on("click.edit-post",function(b){var c=a(this);return c.hasClass("disabled")?void b.preventDefault():void(c.hasClass("submitdelete")||c.is("#post-preview")||a("form#post").off("submit.edit-post").on("submit.edit-post",function(b){if(!b.isDefaultPrevented()){if(wp.autosave&&wp.autosave.server.suspend(),"undefined"!=typeof commentReply){if(!commentReply.discardCommentChanges())return!1;commentReply.close()}m=!1,a(window).off("beforeunload.edit-post"),e.addClass("disabled"),"publish"===c.attr("id")?l.find("#major-publishing-actions .spinner").addClass("is-active"):l.find("#minor-publishing .spinner").addClass("is-active")}}))}),a("#post-preview").on("click.post-preview",function(b){var c=a(this),d=a("form#post"),e=a("input#wp-preview"),f=c.attr("target")||"wp-preview",g=navigator.userAgent.toLowerCase();b.preventDefault(),c.hasClass("disabled")||(wp.autosave&&wp.autosave.server.tempBlockSave(),e.val("dopreview"),d.attr("target",f).submit().attr("target",""),g.indexOf("safari")!==-1&&g.indexOf("chrome")===-1&&d.attr("action",function(a,b){return b+"?t="+(new Date).getTime()}),e.val(""))}),a("#title").on("keydown.editor-focus",function(a){var b;if(9===a.keyCode&&!a.ctrlKey&&!a.altKey&&!a.shiftKey){if(b="undefined"!=typeof tinymce&&tinymce.get("content"),b&&!b.isHidden())b.focus();else{if(!i.length)return;i.focus()}a.preventDefault()}}),a("#auto_draft").val()&&a("#title").blur(function(){var b;this.value&&!a("#edit-slug-box > *").length&&(a("form#post").one("submit",function(){b=!0}),window.setTimeout(function(){!b&&wp.autosave&&wp.autosave.server.triggerSave()},200))}),j.on("autosave-disable-buttons.edit-post",function(){e.addClass("disabled")}).on("autosave-enable-buttons.edit-post",function(){wp.heartbeat&&wp.heartbeat.hasConnectionError()||e.removeClass("disabled")}).on("before-autosave.edit-post",function(){a(".autosave-message").text(postL10n.savingText)}).on("after-autosave.edit-post",function(b,c){a(".autosave-message").text(c.message),a(document.body).hasClass("post-new-php")&&a(".submitbox .submitdelete").show()}),a(window).on("beforeunload.edit-post",function(){var a="undefined"!=typeof tinymce&&tinymce.get("content");if(a&&!a.isHidden()&&a.isDirty()||wp.autosave&&wp.autosave.server.postChanged())return postL10n.saveAlert}).on("unload.edit-post",function(b){if(m&&(!b.target||"#document"==b.target.nodeName)){var c=a("#post_ID").val(),d=a("#active_post_lock").val();if(c&&d){var e={action:"wp-remove-post-lock",_wpnonce:a("#_wpnonce").val(),post_ID:c,active_post_lock:d};if(window.FormData&&window.navigator.sendBeacon){var f=new window.FormData;if(a.each(e,function(a,b){f.append(a,b)}),window.navigator.sendBeacon(ajaxurl,f))return}a.post({async:!1,data:e,url:ajaxurl})}}}),a("#tagsdiv-post_tag").length?window.tagBox&&window.tagBox.init():a(".meta-box-sortables").children("div.postbox").each(function(){if(0===this.id.indexOf("tagsdiv-"))return window.tagBox&&window.tagBox.init(),!1}),a(".categorydiv").each(function(){var b,c,d,e,f,g=a(this).attr("id");d=g.split("-"),d.shift(),e=d.join("-"),f=e+"_tab","category"==e&&(f="cats"),a("a","#"+e+"-tabs").click(function(b){b.preventDefault();var c=a(this).attr("href");a(this).parent().addClass("tabs").siblings("li").removeClass("tabs"),a("#"+e+"-tabs").siblings(".tabs-panel").hide(),a(c).show(),"#"+e+"-all"==c?deleteUserSetting(f):setUserSetting(f,"pop")}),getUserSetting(f)&&a('a[href="#'+e+'-pop"]',"#"+e+"-tabs").click(),a("#new"+e).one("focus",function(){a(this).val("").removeClass("form-input-tip")}),a("#new"+e).keypress(function(b){13===b.keyCode&&(b.preventDefault(),a("#"+e+"-add-submit").click())}),a("#"+e+"-add-submit").click(function(){a("#new"+e).focus()}),b=function(b){return!!a("#new"+e).val()&&(b.data+="&"+a(":checked","#"+e+"checklist").serialize(),a("#"+e+"-add-submit").prop("disabled",!0),b)},c=function(b,c){var d,f=a("#new"+e+"_parent");a("#"+e+"-add-submit").prop("disabled",!1),"undefined"!=c.parsed.responses[0]&&(d=c.parsed.responses[0].supplemental.newcat_parent)&&(f.before(d),f.remove())},a("#"+e+"checklist").wpList({alt:"",response:e+"-ajax-response",addBefore:b,addAfter:c}),a("#"+e+"-add-toggle").click(function(b){b.preventDefault(),a("#"+e+"-adder").toggleClass("wp-hidden-children"),a('a[href="#'+e+'-all"]',"#"+e+"-tabs").click(),a("#new"+e).focus()}),a("#"+e+"checklist, #"+e+"checklist-pop").on("click",'li.popular-category > label input[type="checkbox"]',function(){var b=a(this),c=b.is(":checked"),d=b.val();d&&b.parents("#taxonomy-"+e).length&&a("#in-"+e+"-"+d+", #in-popular-"+e+"-"+d).prop("checked",c)})}),a("#postcustom").length&&a("#the-list").wpList({addBefore:function(b){return b.data+="&post_id="+a("#post_ID").val(),b},addAfter:function(){a("table#list-table").show()}}),a("#submitdiv").length&&(c=a("#timestamp").html(),d=a("#post-visibility-display").html(),f=function(){"public"!=n.find("input:radio:checked").val()?(a("#sticky").prop("checked",!1),a("#sticky-span").hide()):a("#sticky-span").show(),"password"!=n.find("input:radio:checked").val()?a("#password-span").hide():a("#password-span").show()},g=function(){if(!o.length)return!0;var b,d,e,f,g=a("#post_status"),h=a('option[value="publish"]',g),i=a("#aa").val(),j=a("#mm").val(),k=a("#jj").val(),l=a("#hh").val(),m=a("#mn").val();return b=new Date(i,j-1,k,l,m),d=new Date(a("#hidden_aa").val(),a("#hidden_mm").val()-1,a("#hidden_jj").val(),a("#hidden_hh").val(),a("#hidden_mn").val()),e=new Date(a("#cur_aa").val(),a("#cur_mm").val()-1,a("#cur_jj").val(),a("#cur_hh").val(),a("#cur_mn").val()),b.getFullYear()!=i||1+b.getMonth()!=j||b.getDate()!=k||b.getMinutes()!=m?(o.find(".timestamp-wrap").addClass("form-invalid"),!1):(o.find(".timestamp-wrap").removeClass("form-invalid"),b>e&&"future"!=a("#original_post_status").val()?(f=postL10n.publishOnFuture,a("#publish").val(postL10n.schedule)):b<=e&&"publish"!=a("#original_post_status").val()?(f=postL10n.publishOn,a("#publish").val(postL10n.publish)):(f=postL10n.publishOnPast,a("#publish").val(postL10n.update)),d.toUTCString()==b.toUTCString()?a("#timestamp").html(c):a("#timestamp").html("\n"+f+" <b>"+postL10n.dateFormat.replace("%1$s",a('option[value="'+j+'"]',"#mm").attr("data-text")).replace("%2$s",parseInt(k,10)).replace("%3$s",i).replace("%4$s",("00"+l).slice(-2)).replace("%5$s",("00"+m).slice(-2))+"</b> "),"private"==n.find("input:radio:checked").val()?(a("#publish").val(postL10n.update),0===h.length?g.append('<option value="publish">'+postL10n.privatelyPublished+"</option>"):h.html(postL10n.privatelyPublished),a('option[value="publish"]',g).prop("selected",!0),a("#misc-publishing-actions .edit-post-status").hide()):("future"==a("#original_post_status").val()||"draft"==a("#original_post_status").val()?h.length&&(h.remove(),g.val(a("#hidden_post_status").val())):h.html(postL10n.published),g.is(":hidden")&&a("#misc-publishing-actions .edit-post-status").show()),a("#post-status-display").html(a("option:selected",g).text()),"private"==a("option:selected",g).val()||"publish"==a("option:selected",g).val()?a("#save-post").hide():(a("#save-post").show(),"pending"==a("option:selected",g).val()?a("#save-post").show().val(postL10n.savePending):a("#save-post").show().val(postL10n.saveDraft)),!0)},a("#visibility .edit-visibility").click(function(b){b.preventDefault(),n.is(":hidden")&&(f(),n.slideDown("fast",function(){n.find('input[type="radio"]').first().focus()}),a(this).hide())}),n.find(".cancel-post-visibility").click(function(b){n.slideUp("fast"),a("#visibility-radio-"+a("#hidden-post-visibility").val()).prop("checked",!0),a("#post_password").val(a("#hidden-post-password").val()),a("#sticky").prop("checked",a("#hidden-post-sticky").prop("checked")),a("#post-visibility-display").html(d),a("#visibility .edit-visibility").show().focus(),g(),b.preventDefault()}),n.find(".save-post-visibility").click(function(b){n.slideUp("fast"),a("#visibility .edit-visibility").show().focus(),g(),"public"!=n.find("input:radio:checked").val()&&a("#sticky").prop("checked",!1),h=a("#sticky").prop("checked")?"Sticky":"",a("#post-visibility-display").html(postL10n[n.find("input:radio:checked").val()+h]),b.preventDefault()}),n.find("input:radio").change(function(){f()}),o.siblings("a.edit-timestamp").click(function(b){o.is(":hidden")&&(o.slideDown("fast",function(){a("input, select",o.find(".timestamp-wrap")).first().focus()}),a(this).hide()),b.preventDefault()}),o.find(".cancel-timestamp").click(function(b){o.slideUp("fast").siblings("a.edit-timestamp").show().focus(),a("#mm").val(a("#hidden_mm").val()),a("#jj").val(a("#hidden_jj").val()),a("#aa").val(a("#hidden_aa").val()),a("#hh").val(a("#hidden_hh").val()),a("#mn").val(a("#hidden_mn").val()),g(),b.preventDefault()}),o.find(".save-timestamp").click(function(a){g()&&(o.slideUp("fast"),o.siblings("a.edit-timestamp").show().focus()),a.preventDefault()}),a("#post").on("submit",function(b){g()||(b.preventDefault(),o.show(),wp.autosave&&wp.autosave.enableButtons(),a("#publishing-action .spinner").removeClass("is-active"))}),p.siblings("a.edit-post-status").click(function(b){p.is(":hidden")&&(p.slideDown("fast",function(){p.find("select").focus()}),a(this).hide()),b.preventDefault()}),p.find(".save-post-status").click(function(a){p.slideUp("fast").siblings("a.edit-post-status").show().focus(),g(),a.preventDefault()}),p.find(".cancel-post-status").click(function(b){p.slideUp("fast").siblings("a.edit-post-status").show().focus(),a("#post_status").val(a("#hidden_post_status").val()),g(),b.preventDefault()})),a("#titlediv").on("click",".edit-slug",function(){b()}),wptitlehint=function(b){b=b||"title";var c=a("#"+b),d=a("#"+b+"-prompt-text");""===c.val()&&d.removeClass("screen-reader-text"),d.click(function(){a(this).addClass("screen-reader-text"),c.focus()}),c.blur(function(){""===this.value&&d.removeClass("screen-reader-text")}).focus(function(){d.addClass("screen-reader-text")}).keydown(function(b){d.addClass("screen-reader-text"),a(this).unbind(b)})},wptitlehint(),function(){function b(a){h.hasClass("wp-editor-expand")||(f?d.theme.resizeTo(null,e+a.pageY):i.height(Math.max(50,e+a.pageY)),a.preventDefault())}function c(){var b,c;h.hasClass("wp-editor-expand")||(f?(d.focus(),c=parseInt(a("#wp-content-editor-container .mce-toolbar-grp").height(),10),(c<10||c>200)&&(c=30),b=parseInt(a("#content_ifr").css("height"),10)+c-28):(i.focus(),b=parseInt(i.css("height"),10)),j.off(".wp-editor-resize"),b&&b>50&&b<5e3&&setUserSetting("ed_size",b))}var d,e,f,g=a("#post-status-info"),h=a("#postdivrich");return!i.length||"ontouchstart"in window?void a("#content-resize-handle").hide():void g.on("mousedown.wp-editor-resize",function(g){"undefined"!=typeof tinymce&&(d=tinymce.get("content")),d&&!d.isHidden()?(f=!0,e=a("#content_ifr").height()-g.pageY):(f=!1,e=i.height()-g.pageY,i.blur()),j.on("mousemove.wp-editor-resize",b).on("mouseup.wp-editor-resize mouseleave.wp-editor-resize",c),g.preventDefault()}).on("mouseup.wp-editor-resize",c)}(),"undefined"!=typeof tinymce&&(a("#post-formats-select input.post-format").on("change.set-editor-class",function(){var b,c,d=this.id;d&&a(this).prop("checked")&&(b=tinymce.get("content"))&&(c=b.getBody(),c.className=c.className.replace(/\bpost-format-[^ ]+/,""),b.dom.addClass(c,"post-format-0"==d?"post-format-standard":d),a(document).trigger("editor-classchange"))}),a("#page_template").on("change.set-editor-class",function(){var b,c,d=a(this).val()||"";d=d.substr(d.lastIndexOf("/")+1,d.length).replace(/\.php$/,"").replace(/\./g,"-"),d&&(b=tinymce.get("content"))&&(c=b.getBody(),c.className=c.className.replace(/\bpage-template-[^ ]+/,""),b.dom.addClass(c,"page-template-"+d),a(document).trigger("editor-classchange"))})),i.on("keydown.wp-autosave",function(a){if(83===a.which){if(a.shiftKey||a.altKey||q&&(!a.metaKey||a.ctrlKey)||!q&&!a.ctrlKey)return;wp.autosave&&wp.autosave.server.triggerSave(),a.preventDefault()}}),"auto-draft"===a("#original_post_status").val()&&window.history.replaceState){var r;a("#publish").on("click",function(){r=window.location.href,r+=r.indexOf("?")!==-1?"&":"?",r+="wp-post-new-reload=true",window.history.replaceState(null,null,r)})}}),function(a,b){a(function(){function c(){var a,c;a=!d||d.isHidden()?e.val():d.getContent({format:"raw"}),c=b.count(a),c!==g&&f.text(c),g=c}var d,e=a("#content"),f=a("#wp-word-count").find(".word-count"),g=0;a(document).on("tinymce-editor-init",function(a,b){"content"===b.id&&(d=b,b.on("nodechange keyup",_.debounce(c,1e3)))}),e.on("input keyup",_.debounce(c,1e3)),c()})}(jQuery,new wp.utils.WordCounter);
\ No newline at end of file
diff --git a/wp-admin/js/postbox.js b/wp-admin/js/postbox.js
index a8222ee29..bbc73b2a6 100644
--- a/wp-admin/js/postbox.js
+++ b/wp-admin/js/postbox.js
@@ -1,11 +1,45 @@
+/**
+ * Contains the postboxes logic, opening and closing postboxes, reordering and saving
+ * the state and ordering to the database.
+ *
+ * @summary Contains postboxes logic
+ *
+ * @since 2.5.0
+ * @requires jQuery
+ */
+
 /* global ajaxurl, postBoxL10n */
 
+/**
+ * This object contains all function to handle the behaviour of the post boxes. The post boxes are the boxes you see
+ * around the content on the edit page.
+ *
+ * @since 2.7.0
+ *
+ * @namespace postboxes
+ *
+ * @type {Object}
+ */
 var postboxes;
 
 (function($) {
 	var $document = $( document );
 
 	postboxes = {
+
+		/**
+		 * @summary Handles a click on either the postbox heading or the postbox open/close icon.
+		 *
+		 * Opens or closes the postbox. Expects `this` to equal the clicked element.
+		 * Calls postboxes.pbshow if the postbox has been opened, calls postboxes.pbhide
+		 * if the postbox has been closed.
+		 *
+		 * @since 4.4.0
+		 * @memberof postboxes
+		 * @fires postboxes#postbox-toggled
+		 *
+		 * @returns {void}
+		 */
 		handle_click : function () {
 			var $el = $( this ),
 				p = $el.parent( '.postbox' ),
@@ -41,9 +75,30 @@ var postboxes;
 				}
 			}
 
+			/**
+			 * @summary Fires when a postbox has been opened or closed.
+			 *
+			 * Contains a jQuery object with the relevant postbox element.
+			 *
+			 * @since 4.0.0
+			 * @event postboxes#postbox-toggled
+			 * @type {Object}
+			 */
 			$document.trigger( 'postbox-toggled', p );
 		},
 
+		/**
+		 * Adds event handlers to all postboxes and screen option on the current page.
+		 *
+		 * @since 2.7.0
+		 * @memberof postboxes
+		 *
+		 * @param {string} page The page we are currently on.
+		 * @param {Object} [args]
+		 * @param {Function} args.pbshow A callback that is called when a postbox opens.
+		 * @param {Function} args.pbhide A callback that is called when a postbox closes.
+		 * @returns {void}
+		 */
 		add_postbox_toggles : function (page, args) {
 			var $handles = $( '.postbox .hndle, .postbox .handlediv' );
 
@@ -52,16 +107,40 @@ var postboxes;
 
 			$handles.on( 'click.postboxes', this.handle_click );
 
+			/**
+			 * @since 2.7.0
+			 */
 			$('.postbox .hndle a').click( function(e) {
 				e.stopPropagation();
 			});
 
+			/**
+			 * @summary Hides a postbox.
+			 *
+			 * Event handler for the postbox dismiss button. After clicking the button
+			 * the postbox will be hidden.
+			 *
+			 * @since 3.2.0
+			 *
+			 * @returns {void}
+			 */
 			$( '.postbox a.dismiss' ).on( 'click.postboxes', function( e ) {
 				var hide_id = $(this).parents('.postbox').attr('id') + '-hide';
 				e.preventDefault();
 				$( '#' + hide_id ).prop('checked', false).triggerHandler('click');
 			});
 
+			/**
+			 * @summary Hides the postbox element
+			 *
+			 * Event handler for the screen options checkboxes. When a checkbox is
+			 * clicked this function will hide or show the relevant postboxes.
+			 *
+			 * @since 2.7.0
+			 * @fires postboxes#postbox-toggled
+			 *
+			 * @returns {void}
+			 */
 			$('.hide-postbox-tog').bind('click.postboxes', function() {
 				var $el = $(this),
 					boxId = $el.val(),
@@ -78,11 +157,24 @@ var postboxes;
 						postboxes.pbhide( boxId );
 					}
 				}
+
 				postboxes.save_state( page );
 				postboxes._mark_area();
+
+				/**
+				 * @since 4.0.0
+				 * @see postboxes.handle_click
+				 */
 				$document.trigger( 'postbox-toggled', $postbox );
 			});
 
+			/**
+			 * @summary Changes the amount of columns based on the layout preferences.
+			 *
+			 * @since 2.8.0
+			 *
+			 * @returns {void}
+			 */
 			$('.columns-prefs input[type="radio"]').bind('click.postboxes', function(){
 				var n = parseInt($(this).val(), 10);
 
@@ -93,6 +185,20 @@ var postboxes;
 			});
 		},
 
+		/**
+		 * @summary Initializes all the postboxes, mainly their sortable behaviour.
+		 *
+		 * @since 2.7.0
+		 * @memberof postboxes
+		 *
+		 * @param {string} page The page we are currently on.
+		 * @param {Object} [args={}] The arguments for the postbox initializer.
+		 * @param {Function} args.pbshow A callback that is called when a postbox opens.
+		 * @param {Function} args.pbhide A callback that is called when a postbox
+		 *                               closes.
+		 *
+		 * @returns {void}
+		 */
 		init : function(page, args) {
 			var isMobile = $( document.body ).hasClass( 'mobile' ),
 				$handleButtons = $( '.postbox .handlediv' );
@@ -110,12 +216,13 @@ var postboxes;
 				tolerance: 'pointer',
 				forcePlaceholderSize: true,
 				helper: function( event, element ) {
-					// `helper: 'clone'` is equivalent to `return element.clone();`
-					// Cloning a checked radio and then inserting that clone next to the original
-					// radio unchecks the original radio (since only one of the two can be checked).
-					// We get around this by renaming the helper's inputs' name attributes so that,
-					// when the helper is inserted into the DOM for the sortable, no radios are
-					// duplicated, and no original radio gets unchecked.
+					/* `helper: 'clone'` is equivalent to `return element.clone();`
+					 * Cloning a checked radio and then inserting that clone next to the original
+					 * radio unchecks the original radio (since only one of the two can be checked).
+					 * We get around this by renaming the helper's inputs' name attributes so that,
+					 * when the helper is inserted into the DOM for the sortable, no radios are
+					 * duplicated, and no original radio gets unchecked.
+					 */
 					return element.clone()
 						.find( ':input' )
 							.attr( 'name', function( i, currentName ) {
@@ -157,6 +264,18 @@ var postboxes;
 			});
 		},
 
+		/**
+		 * @summary Saves the state of the postboxes to the server.
+		 *
+		 * Saves the state of the postboxes to the server. It sends two lists, one with
+		 * all the closed postboxes, one with all the hidden postboxes.
+		 *
+		 * @since 2.7.0
+		 * @memberof postboxes
+		 *
+		 * @param {string} page The page we are currently on.
+		 * @returns {void}
+		 */
 		save_state : function(page) {
 			var closed, hidden;
 
@@ -177,6 +296,18 @@ var postboxes;
 			});
 		},
 
+		/**
+		 * @summary Saves the order of the postboxes to the server.
+		 *
+		 * Saves the order of the postboxes to the server. Sends a list of all postboxes
+		 * inside a sortable area to the server.
+		 *
+		 * @since 2.8.0
+		 * @memberof postboxes
+		 *
+		 * @param {string} page The page we are currently on.
+		 * @returns {void}
+		 */
 		save_order : function(page) {
 			var postVars, page_columns = $('.columns-prefs input:checked').val() || 0;
 
@@ -186,12 +317,27 @@ var postboxes;
 				page_columns: page_columns,
 				page: page
 			};
+
 			$('.meta-box-sortables').each( function() {
 				postVars[ 'order[' + this.id.split( '-' )[0] + ']' ] = $( this ).sortable( 'toArray' ).join( ',' );
 			} );
+
 			$.post( ajaxurl, postVars );
 		},
 
+		/**
+		 * @summary Marks empty postbox areas.
+		 *
+		 * Adds a message to empty sortable areas on the dashboard page. Also adds a
+		 * border around the side area on the post edit screen if there are no postboxes
+		 * present.
+		 *
+		 * @since 3.3.0
+		 * @memberof postboxes
+		 * @access private
+		 *
+		 * @returns {void}
+		 */
 		_mark_area : function() {
 			var visible = $('div.postbox:visible').length, side = $('#post-body #side-sortables');
 
@@ -215,6 +361,17 @@ var postboxes;
 			}
 		},
 
+		/**
+		 * @summary Changes the amount of columns on the post edit page.
+		 *
+		 * @since 3.3.0
+		 * @memberof postboxes
+		 * @fires postboxes#postboxes-columnchange
+		 * @access private
+		 *
+		 * @param {number} n The amount of columns to divide the post edit page in.
+		 * @returns {void}
+		 */
 		_pb_edit : function(n) {
 			var el = $('.metabox-holder').get(0);
 
@@ -222,9 +379,25 @@ var postboxes;
 				el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
 			}
 
+			/**
+			 * Fires when the amount of columns on the post edit page has been changed.
+			 *
+			 * @since 4.0.0
+			 * @event postboxes#postboxes-columnchange
+			 */
 			$( document ).trigger( 'postboxes-columnchange' );
 		},
 
+		/**
+		 * @summary Changes the amount of columns the postboxes are in based on the
+		 *          current orientation of the browser.
+		 *
+		 * @since 3.3.0
+		 * @memberof postboxes
+		 * @access private
+		 *
+		 * @returns {void}
+		 */
 		_pb_change : function() {
 			var check = $( 'label.columns-prefs-1 input[type="radio"]' );
 
@@ -247,8 +420,23 @@ var postboxes;
 		},
 
 		/* Callbacks */
+
+		/**
+		 * @since 2.7.0
+		 * @memberof postboxes
+		 * @access public
+		 * @property {Function|boolean} pbshow A callback that is called when a postbox
+		 *                                     is opened.
+		 */
 		pbshow : false,
 
+		/**
+		 * @since 2.7.0
+		 * @memberof postboxes
+		 * @access public
+		 * @property {Function|boolean} pbhide A callback that is called when a postbox
+		 *                                     is closed.
+		 */
 		pbhide : false
 	};
 
diff --git a/wp-admin/js/tags-box.js b/wp-admin/js/tags-box.js
index af823ac4e..7535fbffd 100644
--- a/wp-admin/js/tags-box.js
+++ b/wp-admin/js/tags-box.js
@@ -4,6 +4,8 @@
 var tagBox, array_unique_noempty;
 
 ( function( $ ) {
+	var tagDelimiter = ( window.tagsSuggestL10n && window.tagsSuggestL10n.tagDelimiter ) || ',';
+
 	// Return an array with any duplicate, whitespace or empty values removed
 	array_unique_noempty = function( array ) {
 		var out = [];
@@ -20,13 +22,17 @@ var tagBox, array_unique_noempty;
 	};
 
 	tagBox = {
-		clean : function(tags) {
-			var comma = window.tagsBoxL10n.tagDelimiter;
-			if ( ',' !== comma )
-				tags = tags.replace(new RegExp(comma, 'g'), ',');
+		clean : function( tags ) {
+			if ( ',' !== tagDelimiter ) {
+				tags = tags.replace( new RegExp( tagDelimiter, 'g' ), ',' );
+			}
+
 			tags = tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, '');
-			if ( ',' !== comma )
-				tags = tags.replace(/,/g, comma);
+
+			if ( ',' !== tagDelimiter ) {
+				tags = tags.replace( /,/g, tagDelimiter );
+			}
+
 			return tags;
 		},
 
@@ -35,8 +41,7 @@ var tagBox, array_unique_noempty;
 				num = id.split('-check-num-')[1],
 				taxbox = $(el).closest('.tagsdiv'),
 				thetags = taxbox.find('.the-tags'),
-				comma = window.tagsBoxL10n.tagDelimiter,
-				current_tags = thetags.val().split( comma ),
+				current_tags = thetags.val().split( tagDelimiter ),
 				new_tags = [];
 
 			delete current_tags[num];
@@ -48,7 +53,7 @@ var tagBox, array_unique_noempty;
 				}
 			});
 
-			thetags.val( this.clean( new_tags.join( comma ) ) );
+			thetags.val( this.clean( new_tags.join( tagDelimiter ) ) );
 
 			this.quickClicks( taxbox );
 			return false;
@@ -65,7 +70,7 @@ var tagBox, array_unique_noempty;
 
 			disabled = thetags.prop('disabled');
 
-			current_tags = thetags.val().split( window.tagsBoxL10n.tagDelimiter );
+			current_tags = thetags.val().split( tagDelimiter );
 			tagchecklist.empty();
 
 			$.each( current_tags, function( key, val ) {
@@ -81,16 +86,28 @@ var tagBox, array_unique_noempty;
 
 				// If tags editing isn't disabled, create the X button.
 				if ( ! disabled ) {
-					xbutton = $( '<a id="' + id + '-check-num-' + key + '" class="ntdelbutton" tabindex="0">X</a>' );
+					/*
+					 * Build the X buttons, hide the X icon with aria-hidden and
+					 * use visually hidden text for screen readers.
+					 */
+					xbutton = $( '<button type="button" id="' + id + '-check-num-' + key + '" class="ntdelbutton">' +
+						'<span class="remove-tag-icon" aria-hidden="true"></span>' +
+						'<span class="screen-reader-text">' + window.tagsSuggestL10n.removeTerm + ' ' + val + '</span>' +
+						'</button>' );
 
 					xbutton.on( 'click keypress', function( e ) {
-						// Trigger function if pressed Enter - keyboard navigation
-						if ( e.type === 'click' || e.keyCode === 13 ) {
-							// When using keyboard, move focus back to the new tag field.
-							if ( e.keyCode === 13 ) {
-								$( this ).closest( '.tagsdiv' ).find( 'input.newtag' ).focus();
-							}
-
+						// On click or when using the Enter/Spacebar keys.
+						if ( 'click' === e.type || 13 === e.keyCode || 32 === e.keyCode ) {
+							/*
+							 * When using the keyboard, move focus back to the
+							 * add new tag field. Note: when releasing the pressed
+							 * key this will fire the `keyup` event on the input.
+							 */
+							if ( 13 === e.keyCode || 32 === e.keyCode ) {
+ 								$( this ).closest( '.tagsdiv' ).find( 'input.newtag' ).focus();
+ 							}
+
+							tagBox.userAction = 'remove';
 							tagBox.parseTags( this );
 						}
 					});
@@ -101,27 +118,35 @@ var tagBox, array_unique_noempty;
 				// Append the span to the tag list.
 				tagchecklist.append( span );
 			});
+			// The buttons list is built now, give feedback to screen reader users.
+			tagBox.screenReadersMessage();
 		},
 
 		flushTags : function( el, a, f ) {
 			var tagsval, newtags, text,
 				tags = $( '.the-tags', el ),
-				newtag = $( 'input.newtag', el ),
-				comma = window.tagsBoxL10n.tagDelimiter;
+				newtag = $( 'input.newtag', el );
 
 			a = a || false;
 
 			text = a ? $(a).text() : newtag.val();
 
-			if ( 'undefined' == typeof( text ) ) {
+			/*
+			 * Return if there's no new tag or if the input field is empty.
+			 * Note: when using the keyboard to add tags, focus is moved back to
+			 * the input field and the `keyup` event attached on this field will
+			 * fire when releasing the pressed key. Checking also for the field
+			 * emptiness avoids to set the tags and call quickClicks() again.
+			 */
+			if ( 'undefined' == typeof( text ) || '' === text ) {
 				return false;
 			}
 
 			tagsval = tags.val();
-			newtags = tagsval ? tagsval + comma + text : text;
+			newtags = tagsval ? tagsval + tagDelimiter + text : text;
 
 			newtags = this.clean( newtags );
-			newtags = array_unique_noempty( newtags.split( comma ) ).join( comma );
+			newtags = array_unique_noempty( newtags.split( tagDelimiter ) ).join( tagDelimiter );
 			tags.val( newtags );
 			this.quickClicks( el );
 
@@ -144,6 +169,7 @@ var tagBox, array_unique_noempty;
 				r = $( '<p id="tagcloud-' + tax + '" class="the-tagcloud">' + r + '</p>' );
 
 				$( 'a', r ).click( function() {
+					tagBox.userAction = 'add';
 					tagBox.flushTags( $( '#' + tax ), this );
 					return false;
 				});
@@ -152,33 +178,63 @@ var tagBox, array_unique_noempty;
 			});
 		},
 
+		/**
+		 * Track the user's last action.
+		 *
+		 * @since 4.7.0
+		 */
+		userAction: '',
+
+		/**
+		 * Dispatch an audible message to screen readers.
+		 *
+		 * @since 4.7.0
+		 */
+		screenReadersMessage: function() {
+			var message;
+
+			switch ( this.userAction ) {
+				case 'remove':
+					message = window.tagsSuggestL10n.termRemoved;
+					break;
+
+				case 'add':
+					message = window.tagsSuggestL10n.termAdded;
+					break;
+
+				default:
+					return;
+			}
+
+			window.wp.a11y.speak( message, 'assertive' );
+		},
+
 		init : function() {
-			var t = this, ajaxtag = $('div.ajaxtag');
+			var ajaxtag = $('div.ajaxtag');
 
 			$('.tagsdiv').each( function() {
-				tagBox.quickClicks(this);
+				tagBox.quickClicks( this );
 			});
 
-			$('.tagadd', ajaxtag).click(function(){
-				t.flushTags( $(this).closest('.tagsdiv') );
+			$( '.tagadd', ajaxtag ).click( function() {
+				tagBox.userAction = 'add';
+				tagBox.flushTags( $( this ).closest( '.tagsdiv' ) );
 			});
 
-			$('input.newtag', ajaxtag).keyup(function(e){
-				if ( 13 == e.which ) {
-					tagBox.flushTags( $(this).closest('.tagsdiv') );
-					return false;
+			$( 'input.newtag', ajaxtag ).keyup( function( event ) {
+				if ( 13 == event.which ) {
+					tagBox.userAction = 'add';
+					tagBox.flushTags( $( this ).closest( '.tagsdiv' ) );
+					event.preventDefault();
+					event.stopPropagation();
 				}
-			}).keypress(function(e){
-				if ( 13 == e.which ) {
-					e.preventDefault();
-					return false;
+			}).keypress( function( event ) {
+				if ( 13 == event.which ) {
+					event.preventDefault();
+					event.stopPropagation();
 				}
-			}).each( function() {
-				var tax = $(this).closest('div.tagsdiv').attr('id');
-				$(this).suggest(
-					ajaxurl + '?action=ajax-tag-search&tax=' + tax,
-					{ delay: 500, minchars: 2, multiple: true, multipleSep: window.tagsBoxL10n.tagDelimiter }
-				);
+			}).each( function( i, element ) {
+				$( element ).wpTagsSuggest();
 			});
 
 			// save tags on post save/publish
@@ -188,14 +244,19 @@ var tagBox, array_unique_noempty;
 				});
 			});
 
-			// tag cloud
+			// Fetch and toggle the Tag cloud.
 			$('.tagcloud-link').click(function(){
-				tagBox.get( $(this).attr('id') );
-				$(this).unbind().click(function(){
-					$(this).siblings('.the-tagcloud').toggle();
-					return false;
-				});
-				return false;
+				// On the first click, fetch the tag cloud and insert it in the DOM.
+				tagBox.get( $( this ).attr( 'id' ) );
+				// Update button state, remove previous click event and attach a new one to toggle the cloud.
+				$( this )
+					.attr( 'aria-expanded', 'true' )
+					.unbind()
+					.click( function() {
+						$( this )
+							.attr( 'aria-expanded', 'false' === $( this ).attr( 'aria-expanded' ) ? 'true' : 'false' )
+							.siblings( '.the-tagcloud' ).toggle();
+					});
 			});
 		}
 	};
diff --git a/wp-admin/js/tags-box.min.js b/wp-admin/js/tags-box.min.js
index c08fc30fe..f66ec0264 100644
--- a/wp-admin/js/tags-box.min.js
+++ b/wp-admin/js/tags-box.min.js
@@ -1 +1 @@
-var tagBox,array_unique_noempty;!function(a){array_unique_noempty=function(b){var c=[];return a.each(b,function(b,d){d=a.trim(d),d&&a.inArray(d,c)===-1&&c.push(d)}),c},tagBox={clean:function(a){var b=window.tagsBoxL10n.tagDelimiter;return","!==b&&(a=a.replace(new RegExp(b,"g"),",")),a=a.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,""),","!==b&&(a=a.replace(/,/g,b)),a},parseTags:function(b){var c=b.id,d=c.split("-check-num-")[1],e=a(b).closest(".tagsdiv"),f=e.find(".the-tags"),g=window.tagsBoxL10n.tagDelimiter,h=f.val().split(g),i=[];return delete h[d],a.each(h,function(b,c){c=a.trim(c),c&&i.push(c)}),f.val(this.clean(i.join(g))),this.quickClicks(e),!1},quickClicks:function(b){var c,d,e=a(".the-tags",b),f=a(".tagchecklist",b),g=a(b).attr("id");e.length&&(d=e.prop("disabled"),c=e.val().split(window.tagsBoxL10n.tagDelimiter),f.empty(),a.each(c,function(b,c){var e,h;c=a.trim(c),c&&(e=a("<span />").text(c),d||(h=a('<a id="'+g+"-check-num-"+b+'" class="ntdelbutton" tabindex="0">X</a>'),h.on("click keypress",function(b){"click"!==b.type&&13!==b.keyCode||(13===b.keyCode&&a(this).closest(".tagsdiv").find("input.newtag").focus(),tagBox.parseTags(this))}),e.prepend("&nbsp;").prepend(h)),f.append(e))}))},flushTags:function(b,c,d){var e,f,g,h=a(".the-tags",b),i=a("input.newtag",b),j=window.tagsBoxL10n.tagDelimiter;return c=c||!1,g=c?a(c).text():i.val(),"undefined"!=typeof g&&(e=h.val(),f=e?e+j+g:g,f=this.clean(f),f=array_unique_noempty(f.split(j)).join(j),h.val(f),this.quickClicks(b),c||i.val(""),"undefined"==typeof d&&i.focus(),!1)},get:function(b){var c=b.substr(b.indexOf("-")+1);a.post(ajaxurl,{action:"get-tagcloud",tax:c},function(d,e){0!==d&&"success"==e&&(d=a('<p id="tagcloud-'+c+'" class="the-tagcloud">'+d+"</p>"),a("a",d).click(function(){return tagBox.flushTags(a("#"+c),this),!1}),a("#"+b).after(d))})},init:function(){var b=this,c=a("div.ajaxtag");a(".tagsdiv").each(function(){tagBox.quickClicks(this)}),a(".tagadd",c).click(function(){b.flushTags(a(this).closest(".tagsdiv"))}),a("input.newtag",c).keyup(function(b){if(13==b.which)return tagBox.flushTags(a(this).closest(".tagsdiv")),!1}).keypress(function(a){if(13==a.which)return a.preventDefault(),!1}).each(function(){var b=a(this).closest("div.tagsdiv").attr("id");a(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:!0,multipleSep:window.tagsBoxL10n.tagDelimiter})}),a("#post").submit(function(){a("div.tagsdiv").each(function(){tagBox.flushTags(this,!1,1)})}),a(".tagcloud-link").click(function(){return tagBox.get(a(this).attr("id")),a(this).unbind().click(function(){return a(this).siblings(".the-tagcloud").toggle(),!1}),!1})}}}(jQuery);
\ No newline at end of file
+var tagBox,array_unique_noempty;!function(a){var b=window.tagsSuggestL10n&&window.tagsSuggestL10n.tagDelimiter||",";array_unique_noempty=function(b){var c=[];return a.each(b,function(b,d){d=a.trim(d),d&&a.inArray(d,c)===-1&&c.push(d)}),c},tagBox={clean:function(a){return","!==b&&(a=a.replace(new RegExp(b,"g"),",")),a=a.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,""),","!==b&&(a=a.replace(/,/g,b)),a},parseTags:function(c){var d=c.id,e=d.split("-check-num-")[1],f=a(c).closest(".tagsdiv"),g=f.find(".the-tags"),h=g.val().split(b),i=[];return delete h[e],a.each(h,function(b,c){c=a.trim(c),c&&i.push(c)}),g.val(this.clean(i.join(b))),this.quickClicks(f),!1},quickClicks:function(c){var d,e,f=a(".the-tags",c),g=a(".tagchecklist",c),h=a(c).attr("id");f.length&&(e=f.prop("disabled"),d=f.val().split(b),g.empty(),a.each(d,function(b,c){var d,f;c=a.trim(c),c&&(d=a("<span />").text(c),e||(f=a('<button type="button" id="'+h+"-check-num-"+b+'" class="ntdelbutton"><span class="remove-tag-icon" aria-hidden="true"></span><span class="screen-reader-text">'+window.tagsSuggestL10n.removeTerm+" "+c+"</span></button>"),f.on("click keypress",function(b){"click"!==b.type&&13!==b.keyCode&&32!==b.keyCode||(13!==b.keyCode&&32!==b.keyCode||a(this).closest(".tagsdiv").find("input.newtag").focus(),tagBox.userAction="remove",tagBox.parseTags(this))}),d.prepend("&nbsp;").prepend(f)),g.append(d))}),tagBox.screenReadersMessage())},flushTags:function(c,d,e){var f,g,h,i=a(".the-tags",c),j=a("input.newtag",c);return d=d||!1,h=d?a(d).text():j.val(),"undefined"!=typeof h&&""!==h&&(f=i.val(),g=f?f+b+h:h,g=this.clean(g),g=array_unique_noempty(g.split(b)).join(b),i.val(g),this.quickClicks(c),d||j.val(""),"undefined"==typeof e&&j.focus(),!1)},get:function(b){var c=b.substr(b.indexOf("-")+1);a.post(ajaxurl,{action:"get-tagcloud",tax:c},function(d,e){0!==d&&"success"==e&&(d=a('<p id="tagcloud-'+c+'" class="the-tagcloud">'+d+"</p>"),a("a",d).click(function(){return tagBox.userAction="add",tagBox.flushTags(a("#"+c),this),!1}),a("#"+b).after(d))})},userAction:"",screenReadersMessage:function(){var a;switch(this.userAction){case"remove":a=window.tagsSuggestL10n.termRemoved;break;case"add":a=window.tagsSuggestL10n.termAdded;break;default:return}window.wp.a11y.speak(a,"assertive")},init:function(){var b=a("div.ajaxtag");a(".tagsdiv").each(function(){tagBox.quickClicks(this)}),a(".tagadd",b).click(function(){tagBox.userAction="add",tagBox.flushTags(a(this).closest(".tagsdiv"))}),a("input.newtag",b).keyup(function(b){13==b.which&&(tagBox.userAction="add",tagBox.flushTags(a(this).closest(".tagsdiv")),b.preventDefault(),b.stopPropagation())}).keypress(function(a){13==a.which&&(a.preventDefault(),a.stopPropagation())}).each(function(b,c){a(c).wpTagsSuggest()}),a("#post").submit(function(){a("div.tagsdiv").each(function(){tagBox.flushTags(this,!1,1)})}),a(".tagcloud-link").click(function(){tagBox.get(a(this).attr("id")),a(this).attr("aria-expanded","true").unbind().click(function(){a(this).attr("aria-expanded","false"===a(this).attr("aria-expanded")?"true":"false").siblings(".the-tagcloud").toggle()})})}}}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/tags-suggest.js b/wp-admin/js/tags-suggest.js
new file mode 100644
index 000000000..a678bdc51
--- /dev/null
+++ b/wp-admin/js/tags-suggest.js
@@ -0,0 +1,183 @@
+/**
+ * Default settings for jQuery UI Autocomplete for use with non-hierarchical taxonomies.
+ */
+( function( $ ) {
+	if ( typeof window.tagsSuggestL10n === 'undefined' || typeof window.uiAutocompleteL10n === 'undefined' ) {
+		return;
+	}
+
+	var tempID = 0;
+	var separator = window.tagsSuggestL10n.tagDelimiter || ',';
+
+	function split( val ) {
+		return val.split( new RegExp( separator + '\\s*' ) );
+	}
+
+	function getLast( term ) {
+		return split( term ).pop();
+	}
+
+	/**
+	 * Add UI Autocomplete to an input or textarea element with presets for use
+	 * with non-hierarchical taxonomies.
+	 *
+	 * Example: `$( element ).wpTagsSuggest( options )`.
+	 *
+	 * The taxonomy can be passed in a `data-wp-taxonomy` attribute on the element or
+	 * can be in `options.taxonomy`.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param {object} options Options that are passed to UI Autocomplete. Can be used to override the default settings.
+	 * @returns {object} jQuery instance.
+	 */
+	$.fn.wpTagsSuggest = function( options ) {
+		var cache;
+		var last;
+		var $element = $( this );
+
+		options = options || {};
+
+		var taxonomy = options.taxonomy || $element.attr( 'data-wp-taxonomy' ) || 'post_tag';
+
+		delete( options.taxonomy );
+
+		options = $.extend( {
+			source: function( request, response ) {
+				var term;
+
+				if ( last === request.term ) {
+					response( cache );
+					return;
+				}
+
+				term = getLast( request.term );
+
+				$.get( window.ajaxurl, {
+					action: 'ajax-tag-search',
+					tax: taxonomy,
+					q: term
+				} ).always( function() {
+					$element.removeClass( 'ui-autocomplete-loading' ); // UI fails to remove this sometimes?
+				} ).done( function( data ) {
+					var tagName;
+					var tags = [];
+
+					if ( data ) {
+						data = data.split( '\n' );
+
+						for ( tagName in data ) {
+							var id = ++tempID;
+
+							tags.push({
+								id: id,
+								name: data[tagName]
+							});
+						}
+
+						cache = tags;
+						response( tags );
+					} else {
+						response( tags );
+					}
+				} );
+
+				last = request.term;
+			},
+			focus: function( event, ui ) {
+				$element.attr( 'aria-activedescendant', 'wp-tags-autocomplete-' + ui.item.id );
+
+				// Don't empty the input field when using the arrow keys to
+				// highlight items. See api.jqueryui.com/autocomplete/#event-focus
+				event.preventDefault();
+			},
+			select: function( event, ui ) {
+				var tags = split( $element.val() );
+				// Remove the last user input.
+				tags.pop();
+				// Append the new tag and an empty element to get one more separator at the end.
+				tags.push( ui.item.name, '' );
+
+				$element.val( tags.join( separator + ' ' ) );
+
+				if ( $.ui.keyCode.TAB === event.keyCode ) {
+					// Audible confirmation message when a tag has been selected.
+					window.wp.a11y.speak( window.tagsSuggestL10n.termSelected, 'assertive' );
+					event.preventDefault();
+				} else if ( $.ui.keyCode.ENTER === event.keyCode ) {
+					// Do not close Quick Edit / Bulk Edit
+					event.preventDefault();
+					event.stopPropagation();
+				}
+
+				return false;
+			},
+			open: function() {
+				$element.attr( 'aria-expanded', 'true' );
+			},
+			close: function() {
+				$element.attr( 'aria-expanded', 'false' );
+			},
+			minLength: 2,
+			position: {
+				my: 'left top+2'
+			},
+			messages: {
+				noResults: window.uiAutocompleteL10n.noResults,
+				results: function( number ) {
+					if ( number > 1 ) {
+						return window.uiAutocompleteL10n.manyResults.replace( '%d', number );
+					}
+
+					return window.uiAutocompleteL10n.oneResult;
+				}
+			}
+		}, options );
+
+		$element.on( 'keydown', function() {
+			$element.removeAttr( 'aria-activedescendant' );
+		} )
+		.autocomplete( options )
+		.autocomplete( 'instance' )._renderItem = function( ul, item ) {
+			return $( '<li role="option" id="wp-tags-autocomplete-' + item.id + '">' )
+				.text( item.name )
+				.appendTo( ul );
+		};
+
+		$element.attr( {
+			'role': 'combobox',
+			'aria-autocomplete': 'list',
+			'aria-expanded': 'false',
+			'aria-owns': $element.autocomplete( 'widget' ).attr( 'id' )
+		} )
+		.on( 'focus', function() {
+			var inputValue = split( $element.val() ).pop();
+
+			// Don't trigger a search if the field is empty.
+			// Also, avoids screen readers announce `No search results`.
+			if ( inputValue ) {
+				$element.autocomplete( 'search' );
+			}
+		} )
+		// Returns a jQuery object containing the menu element.
+		.autocomplete( 'widget' )
+			.addClass( 'wp-tags-autocomplete' )
+			.attr( 'role', 'listbox' )
+			.removeAttr( 'tabindex' ) // Remove the `tabindex=0` attribute added by jQuery UI.
+
+			// Looks like Safari and VoiceOver need an `aria-selected` attribute. See ticket #33301.
+			// The `menufocus` and `menublur` events are the same events used to add and remove
+			// the `ui-state-focus` CSS class on the menu items. See jQuery UI Menu Widget.
+			.on( 'menufocus', function( event, ui ) {
+				ui.item.attr( 'aria-selected', 'true' );
+			})
+			.on( 'menublur', function() {
+				// The `menublur` event returns an object where the item is `null`
+				// so we need to find the active item with other means.
+				$( this ).find( '[aria-selected="true"]' ).removeAttr( 'aria-selected' );
+			});
+
+		return this;
+	};
+
+}( jQuery ) );
diff --git a/wp-admin/js/tags-suggest.min.js b/wp-admin/js/tags-suggest.min.js
new file mode 100644
index 000000000..28e426a12
--- /dev/null
+++ b/wp-admin/js/tags-suggest.min.js
@@ -0,0 +1 @@
+!function(a){function b(a){return a.split(new RegExp(e+"\\s*"))}function c(a){return b(a).pop()}if("undefined"!=typeof window.tagsSuggestL10n&&"undefined"!=typeof window.uiAutocompleteL10n){var d=0,e=window.tagsSuggestL10n.tagDelimiter||",";a.fn.wpTagsSuggest=function(f){var g,h,i=a(this);f=f||{};var j=f.taxonomy||i.attr("data-wp-taxonomy")||"post_tag";return delete f.taxonomy,f=a.extend({source:function(b,e){var f;return h===b.term?void e(g):(f=c(b.term),a.get(window.ajaxurl,{action:"ajax-tag-search",tax:j,q:f}).always(function(){i.removeClass("ui-autocomplete-loading")}).done(function(a){var b,c=[];if(a){a=a.split("\n");for(b in a){var f=++d;c.push({id:f,name:a[b]})}g=c,e(c)}else e(c)}),void(h=b.term))},focus:function(a,b){i.attr("aria-activedescendant","wp-tags-autocomplete-"+b.item.id),a.preventDefault()},select:function(c,d){var f=b(i.val());return f.pop(),f.push(d.item.name,""),i.val(f.join(e+" ")),a.ui.keyCode.TAB===c.keyCode?(window.wp.a11y.speak(window.tagsSuggestL10n.termSelected,"assertive"),c.preventDefault()):a.ui.keyCode.ENTER===c.keyCode&&(c.preventDefault(),c.stopPropagation()),!1},open:function(){i.attr("aria-expanded","true")},close:function(){i.attr("aria-expanded","false")},minLength:2,position:{my:"left top+2"},messages:{noResults:window.uiAutocompleteL10n.noResults,results:function(a){return a>1?window.uiAutocompleteL10n.manyResults.replace("%d",a):window.uiAutocompleteL10n.oneResult}}},f),i.on("keydown",function(){i.removeAttr("aria-activedescendant")}).autocomplete(f).autocomplete("instance")._renderItem=function(b,c){return a('<li role="option" id="wp-tags-autocomplete-'+c.id+'">').text(c.name).appendTo(b)},i.attr({role:"combobox","aria-autocomplete":"list","aria-expanded":"false","aria-owns":i.autocomplete("widget").attr("id")}).on("focus",function(){var a=b(i.val()).pop();a&&i.autocomplete("search")}).autocomplete("widget").addClass("wp-tags-autocomplete").attr("role","listbox").removeAttr("tabindex").on("menufocus",function(a,b){b.item.attr("aria-selected","true")}).on("menublur",function(){a(this).find('[aria-selected="true"]').removeAttr("aria-selected")}),this}}}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/theme.js b/wp-admin/js/theme.js
index 18596e824..924f29971 100644
--- a/wp-admin/js/theme.js
+++ b/wp-admin/js/theme.js
@@ -610,6 +610,11 @@ themes.view.Theme = wp.Backbone.View.extend({
 
 	updateTheme: function( event ) {
 		var _this = this;
+
+		if ( ! this.model.get( 'hasPackage' ) ) {
+			return;
+		}
+
 		event.preventDefault();
 
 		wp.updates.maybeRequestFilesystemCredentials( event );
@@ -866,8 +871,12 @@ themes.view.Preview = themes.view.Details.extend({
 	html: themes.template( 'theme-preview' ),
 
 	render: function() {
-		var self = this, currentPreviewDevice,
-			data = this.model.toJSON();
+		var self = this,
+			currentPreviewDevice,
+			data = this.model.toJSON(),
+			$body = $( document.body );
+
+		$body.attr( 'aria-busy', 'true' );
 
 		this.$el.removeClass( 'iframe-ready' ).html( this.html( data ) );
 
@@ -879,8 +888,7 @@ themes.view.Preview = themes.view.Details.extend({
 		themes.router.navigate( themes.router.baseUrl( themes.router.themePath + this.model.get( 'id' ) ), { replace: true } );
 
 		this.$el.fadeIn( 200, function() {
-			$( 'body' ).addClass( 'theme-installer-active full-overlay-active' );
-			$( '.close-full-overlay' ).focus();
+			$body.addClass( 'theme-installer-active full-overlay-active' );
 		});
 
 		this.$el.find( 'iframe' ).one( 'load', function() {
@@ -890,6 +898,7 @@ themes.view.Preview = themes.view.Details.extend({
 
 	iframeLoaded: function() {
 		this.$el.addClass( 'iframe-ready' );
+		$( document.body ).attr( 'aria-busy', 'false' );
 	},
 
 	close: function() {
@@ -1519,6 +1528,7 @@ themes.view.InstallerSearch =  themes.view.Search.extend({
 
 		$( '.filter-links li > a.current' ).removeClass( 'current' );
 		$( 'body' ).removeClass( 'show-filters filters-applied show-favorites-form' );
+		$( '.drawer-toggle' ).attr( 'aria-expanded', 'false' );
 
 		// Get the themes by sending Ajax POST request to api.wordpress.org/themes
 		// or searching the local cache
@@ -1541,7 +1551,7 @@ themes.view.Installer = themes.view.Appearance.extend({
 		'click .filter-drawer .apply-filters': 'applyFilters',
 		'click .filter-group [type="checkbox"]': 'addFilter',
 		'click .filter-drawer .clear-filters': 'clearFilters',
-		'click .filtered-by': 'backToFilters',
+		'click .edit-filters': 'backToFilters',
 		'click .favorites-form-submit' : 'saveUsername',
 		'keyup #wporg-username-input': 'saveUsername'
 	},
@@ -1617,6 +1627,7 @@ themes.view.Installer = themes.view.Appearance.extend({
 		event.preventDefault();
 
 		$( 'body' ).removeClass( 'filters-applied show-filters' );
+		$( '.drawer-toggle' ).attr( 'aria-expanded', 'false' );
 
 		// Bail if this is already active
 		if ( $el.hasClass( this.activeClass ) ) {
@@ -1636,9 +1647,9 @@ themes.view.Installer = themes.view.Appearance.extend({
 		$( '[data-sort="' + sort + '"]' ).addClass( this.activeClass );
 
 		if ( 'favorites' === sort ) {
-			$ ( 'body' ).addClass( 'show-favorites-form' );
+			$( 'body' ).addClass( 'show-favorites-form' );
 		} else {
-			$ ( 'body' ).removeClass( 'show-favorites-form' );
+			$( 'body' ).removeClass( 'show-favorites-form' );
 		}
 
 		this.browse( sort );
@@ -1688,6 +1699,11 @@ themes.view.Installer = themes.view.Appearance.extend({
 			event.preventDefault();
 		}
 
+		if ( ! tags ) {
+			wp.a11y.speak( l10n.selectFeatureFilter );
+			return;
+		}
+
 		$( 'body' ).addClass( 'filters-applied' );
 		$( '.filter-links li > a.current' ).removeClass( 'current' );
 		filteringBy.empty();
@@ -1778,22 +1794,22 @@ themes.view.Installer = themes.view.Appearance.extend({
 
 	// Toggle the full filters navigation
 	moreFilters: function( event ) {
+		var $body = $( 'body' ),
+			$toggleButton = $( '.drawer-toggle' );
+
 		event.preventDefault();
 
-		if ( $( 'body' ).hasClass( 'filters-applied' ) ) {
+		if ( $body.hasClass( 'filters-applied' ) ) {
 			return this.backToFilters();
 		}
 
-		// If the filters section is opened and filters are checked
-		// run the relevant query collapsing to filtered-by state
-		if ( $( 'body' ).hasClass( 'show-filters' ) && this.filtersChecked() ) {
-			return this.addFilter();
-		}
-
 		this.clearSearch();
 
 		themes.router.navigate( themes.router.baseUrl( '' ) );
-		$( 'body' ).toggleClass( 'show-filters' );
+		// Toggle the feature filters view.
+		$body.toggleClass( 'show-filters' );
+		// Toggle the `aria-expanded` button attribute.
+		$toggleButton.attr( 'aria-expanded', $body.hasClass( 'show-filters' ) );
 	},
 
 	// Clears all the checked filters
diff --git a/wp-admin/js/theme.min.js b/wp-admin/js/theme.min.js
index 2a025b190..6608523ee 100644
--- a/wp-admin/js/theme.min.js
+++ b/wp-admin/js/theme.min.js
@@ -1 +1 @@
-window.wp=window.wp||{},function(a){var b,c;b=wp.themes=wp.themes||{},b.data=_wpThemeSettings,c=b.data.l10n,b.isInstall=!!b.data.settings.isInstall,_.extend(b,{model:{},view:{},routes:{},router:{},template:wp.template}),b.Model=Backbone.Model.extend({initialize:function(){var a;_.indexOf(b.data.installedThemes,this.get("slug"))!==-1&&this.set({installed:!0}),this.set({id:this.get("slug")||this.get("id")}),this.has("sections")&&(a=this.get("sections").description,this.set({description:a}))}}),b.view.Appearance=wp.Backbone.View.extend({el:"#wpbody-content .wrap .theme-browser",window:a(window),page:0,initialize:function(a){_.bindAll(this,"scroller"),this.SearchView=a.SearchView?a.SearchView:b.view.Search,this.window.bind("scroll",_.throttle(this.scroller,300))},render:function(){this.view=new b.view.Themes({collection:this.collection,parent:this}),this.search(),this.view.render(),this.$el.empty().append(this.view.el).addClass("rendered")},searchContainer:a("#wpbody h1:first"),search:function(){var d,e=this;1!==b.data.themes.length&&(d=new this.SearchView({collection:e.collection,parent:this}),d.render(),this.searchContainer.append(a.parseHTML('<label class="screen-reader-text" for="wp-filter-search-input">'+c.search+"</label>")).append(d.el))},scroller:function(){var a,b,c=this;a=this.window.scrollTop()+c.window.height(),b=c.$el.offset().top+c.$el.outerHeight(!1)-c.window.height(),b=Math.round(.9*b),a>b&&this.trigger("theme:scroll")}}),b.Collection=Backbone.Collection.extend({model:b.Model,terms:"",doSearch:function(c){this.terms!==c&&(this.terms=c,this.terms.length>0&&this.search(this.terms),""===this.terms&&(this.reset(b.data.themes),a("body").removeClass("no-results")),this.trigger("themes:update"))},search:function(c){var d,e,f,g,h,i;this.reset(b.data.themes,{silent:!0}),c=c.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),c=c.replace(/ /g,")(?=.*"),d=new RegExp("^(?=.*"+c+").+","i"),e=this.filter(function(a){return g=a.get("name").replace(/(<([^>]+)>)/gi,""),h=a.get("description").replace(/(<([^>]+)>)/gi,""),i=a.get("author").replace(/(<([^>]+)>)/gi,""),f=_.union([g,a.get("id"),h,i,a.get("tags")]),d.test(a.get("author"))&&c.length>2&&a.set("displayAuthor",!0),d.test(f)}),0===e.length?this.trigger("query:empty"):a("body").removeClass("no-results"),this.reset(e)},paginate:function(a){var b=this;return a=a||0,b=_(b.rest(20*a)),b=_(b.first(20))},count:!1,query:function(b){var c,d,e,f=this.queries,g=this;if(this.currentQuery.request=b,c=_.find(f,function(a){return _.isEqual(a.request,b)}),d=_.has(b,"page"),d||(this.currentQuery.page=1),c||d){if(d)return this.apiCall(b,d).done(function(a){g.add(a.themes),g.trigger("query:success"),g.loadingThemes=!1}).fail(function(){g.trigger("query:fail")});0===c.themes.length?g.trigger("query:empty"):a("body").removeClass("no-results"),_.isNumber(c.total)&&(this.count=c.total),this.reset(c.themes),c.total||(this.count=this.length),this.trigger("themes:update"),this.trigger("query:success",this.count)}else c=this.apiCall(b).done(function(a){a.themes&&(g.reset(a.themes),e=a.info.results,f.push({themes:a.themes,request:b,total:e})),g.trigger("themes:update"),g.trigger("query:success",e),a.themes&&0===a.themes.length&&g.trigger("query:empty")}).fail(function(){g.trigger("query:fail")})},queries:[],currentQuery:{page:1,request:{}},apiCall:function(b,c){return wp.ajax.send("query-themes",{data:{request:_.extend({per_page:100,fields:{description:!0,tested:!0,requires:!0,rating:!0,downloaded:!0,downloadLink:!0,last_updated:!0,homepage:!0,num_ratings:!0}},b)},beforeSend:function(){c||a("body").addClass("loading-content").removeClass("no-results")}})},loadingThemes:!1}),b.view.Theme=wp.Backbone.View.extend({className:"theme",state:"grid",html:b.template("theme"),events:{click:b.isInstall?"preview":"expand",keydown:b.isInstall?"preview":"expand",touchend:b.isInstall?"preview":"expand",keyup:"addFocus",touchmove:"preventExpand","click .theme-install":"installTheme","click .update-message":"updateTheme"},touchDrag:!1,initialize:function(){this.model.on("change",this.render,this)},render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)).attr({tabindex:0,"aria-describedby":a.id+"-action "+a.id+"-name","data-slug":a.id}),this.activeTheme(),this.model.get("displayAuthor")&&this.$el.addClass("display-author")},activeTheme:function(){this.model.get("active")&&this.$el.addClass("active")},addFocus:function(){var b=a(":focus").hasClass("theme")?a(":focus"):a(":focus").parents(".theme");a(".theme.focus").removeClass("focus"),b.addClass("focus")},expand:function(c){var d=this;if(c=c||window.event,"keydown"!==c.type||13===c.which||32===c.which)return this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).is(".theme-actions a")||a(c.target).is(".theme-actions a, .update-message, .button-link, .notice-dismiss")||(b.focusedTheme=this.$el,this.trigger("theme:expand",d.model.cid)))},preventExpand:function(){this.touchDrag=!0},preview:function(c){var d,e,f=this;return c=c||window.event,this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).not(".install-theme-preview").parents(".theme-actions").length||"keydown"===c.type&&13!==c.which&&32!==c.which||"keydown"===c.type&&13!==c.which&&a(":focus").hasClass("button")||(c.preventDefault(),c=c||window.event,b.focusedTheme=this.$el,e=new b.view.Preview({model:this.model}),e.render(),this.setNavButtonsState(),1===this.model.collection.length?e.$el.addClass("no-navigation"):e.$el.removeClass("no-navigation"),a("div.wrap").append(e.el),this.listenTo(e,"theme:next",function(){return d=f.model,_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)+1),_.isUndefined(f.current)?(f.options.parent.parent.trigger("theme:end"),f.current=d):(e.model=f.current,e.render(),this.setNavButtonsState(),void a(".next-theme").focus())}).listenTo(e,"theme:previous",function(){d=f.model,0!==f.model.collection.indexOf(f.current)&&(_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)-1),_.isUndefined(f.current)||(e.model=f.current,e.render(),this.setNavButtonsState(),a(".previous-theme").focus()))}),this.listenTo(e,"preview:close",function(){f.current=f.model})))},setNavButtonsState:function(){var b=a(".theme-install-overlay"),c=_.isUndefined(this.current)?this.model:this.current;0===this.model.collection.indexOf(c)&&b.find(".previous-theme").addClass("disabled"),_.isUndefined(this.model.collection.at(this.model.collection.indexOf(c)+1))&&b.find(".next-theme").addClass("disabled")},installTheme:function(b){var c=this;b.preventDefault(),wp.updates.maybeRequestFilesystemCredentials(b),a(document).on("wp-theme-install-success",function(a,b){c.model.get("id")===b.slug&&c.model.set({installed:!0})}),wp.updates.installTheme({slug:a(b.target).data("slug")})},updateTheme:function(b){var c=this;b.preventDefault(),wp.updates.maybeRequestFilesystemCredentials(b),a(document).on("wp-theme-update-success",function(a,b){c.model.off("change",c.render,c),c.model.get("id")===b.slug&&c.model.set({hasUpdate:!1,version:b.newVersion}),c.model.on("change",c.render,c)}),wp.updates.updateTheme({slug:a(b.target).parents("div.theme").first().data("slug")})}}),b.view.Details=wp.Backbone.View.extend({className:"theme-overlay",events:{click:"collapse","click .delete-theme":"deleteTheme","click .left":"previousTheme","click .right":"nextTheme","click #update-theme":"updateTheme"},html:b.template("theme-single"),render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)),this.activeTheme(),this.navigation(),this.screenshotCheck(this.$el),this.containFocus(this.$el)},activeTheme:function(){this.$el.toggleClass("active",this.model.get("active"))},containFocus:function(b){_.delay(function(){a(".theme-wrap a.button-primary:visible").focus()},100),b.on("keydown.wp-themes",function(a){var c=b.find(".theme-header button:not(.disabled)").first(),d=b.find(".theme-actions a:visible").last();9===a.which&&(c[0]===a.target&&a.shiftKey?(d.focus(),a.preventDefault()):d[0]!==a.target||a.shiftKey||(c.focus(),a.preventDefault()))})},collapse:function(c){var d,e=this;c=c||window.event,1!==b.data.themes.length&&(a(c.target).is(".theme-backdrop")||a(c.target).is(".close")||27===c.keyCode)&&(a("body").addClass("closing-overlay"),this.$el.fadeOut(130,function(){a("body").removeClass("closing-overlay"),e.closeOverlay(),d=document.body.scrollTop,b.router.navigate(b.router.baseUrl("")),document.body.scrollTop=d,b.focusedTheme&&b.focusedTheme.focus()}))},navigation:function(){this.model.cid===this.model.collection.at(0).cid&&this.$el.find(".left").addClass("disabled").prop("disabled",!0),this.model.cid===this.model.collection.at(this.model.collection.length-1).cid&&this.$el.find(".right").addClass("disabled").prop("disabled",!0)},closeOverlay:function(){a("body").removeClass("modal-open"),this.remove(),this.unbind(),this.trigger("theme:collapse")},updateTheme:function(b){var c=this;b.preventDefault(),wp.updates.maybeRequestFilesystemCredentials(b),a(document).on("wp-theme-update-success",function(a,b){c.model.get("id")===b.slug&&c.model.set({hasUpdate:!1,version:b.newVersion}),c.render()}),wp.updates.updateTheme({slug:a(b.target).data("slug")})},deleteTheme:function(c){var d=this,e=d.model.collection,f=b;c.preventDefault(),window.confirm(wp.themes.data.settings.confirmDelete)&&(wp.updates.maybeRequestFilesystemCredentials(c),a(document).one("wp-theme-delete-success",function(b,c){d.$el.find(".close").trigger("click"),a('[data-slug="'+c.slug+'"').css({backgroundColor:"#faafaa"}).fadeOut(350,function(){a(this).remove(),f.data.themes=_.without(f.data.themes,_.findWhere(f.data.themes,{id:c.slug})),a(".wp-filter-search").val(""),e.doSearch(""),e.remove(d.model),e.trigger("themes:update")})}),wp.updates.deleteTheme({slug:this.model.get("id")}))},nextTheme:function(){var a=this;return a.trigger("theme:next",a.model.cid),!1},previousTheme:function(){var a=this;return a.trigger("theme:previous",a.model.cid),!1},screenshotCheck:function(a){var b,c;b=a.find(".screenshot img"),c=new Image,c.src=b.attr("src"),c.width&&c.width<=300&&a.addClass("small-screenshot")}}),b.view.Preview=b.view.Details.extend({className:"wp-full-overlay expanded",el:".theme-install-overlay",events:{"click .close-full-overlay":"close","click .collapse-sidebar":"collapse","click .devices button":"previewDevice","click .previous-theme":"previousTheme","click .next-theme":"nextTheme",keyup:"keyEvent","click .theme-install":"installTheme"},html:b.template("theme-preview"),render:function(){var c,d=this,e=this.model.toJSON();this.$el.removeClass("iframe-ready").html(this.html(e)),c=this.$el.data("current-preview-device"),c&&d.tooglePreviewDeviceButtons(c),b.router.navigate(b.router.baseUrl(b.router.themePath+this.model.get("id")),{replace:!0}),this.$el.fadeIn(200,function(){a("body").addClass("theme-installer-active full-overlay-active"),a(".close-full-overlay").focus()}),this.$el.find("iframe").one("load",function(){d.iframeLoaded()})},iframeLoaded:function(){this.$el.addClass("iframe-ready")},close:function(){return this.$el.fadeOut(200,function(){a("body").removeClass("theme-installer-active full-overlay-active"),b.focusedTheme&&b.focusedTheme.focus()}).removeClass("iframe-ready"),b.router.navigate(b.router.baseUrl("")),this.trigger("preview:close"),this.undelegateEvents(),this.unbind(),!1},collapse:function(b){var d=a(b.currentTarget);return"true"===d.attr("aria-expanded")?d.attr({"aria-expanded":"false","aria-label":c.expandSidebar}):d.attr({"aria-expanded":"true","aria-label":c.collapseSidebar}),this.$el.toggleClass("collapsed").toggleClass("expanded"),!1},previewDevice:function(b){var c=a(b.currentTarget).data("device");this.$el.removeClass("preview-desktop preview-tablet preview-mobile").addClass("preview-"+c).data("current-preview-device",c),this.tooglePreviewDeviceButtons(c)},tooglePreviewDeviceButtons:function(b){var c=a(".wp-full-overlay-footer .devices");c.find("button").removeClass("active").attr("aria-pressed",!1),c.find("button.preview-"+b).addClass("active").attr("aria-pressed",!0)},keyEvent:function(a){27===a.keyCode&&(this.undelegateEvents(),this.close()),39===a.keyCode&&_.once(this.nextTheme()),37===a.keyCode&&this.previousTheme()},installTheme:function(b){var c=this,d=a(b.target);b.preventDefault(),d.hasClass("disabled")||(wp.updates.maybeRequestFilesystemCredentials(b),a(document).on("wp-theme-install-success",function(){c.model.set({installed:!0})}),wp.updates.installTheme({slug:d.data("slug")}))}}),b.view.Themes=wp.Backbone.View.extend({className:"themes wp-clearfix",$overlay:a("div.theme-overlay"),index:0,count:a(".wrap .theme-count"),liveThemeCount:0,initialize:function(b){var c=this;this.parent=b.parent,this.setView("grid"),c.currentTheme(),this.listenTo(c.collection,"themes:update",function(){c.parent.page=0,c.currentTheme(),c.render(this)}),this.listenTo(c.collection,"query:success",function(a){_.isNumber(a)?(c.count.text(a),c.announceSearchResults(a)):(c.count.text(c.collection.length),c.announceSearchResults(c.collection.length))}),this.listenTo(c.collection,"query:empty",function(){a("body").addClass("no-results")}),this.listenTo(this.parent,"theme:scroll",function(){c.renderThemes(c.parent.page)}),this.listenTo(this.parent,"theme:close",function(){c.overlay&&c.overlay.closeOverlay()}),a("body").on("keyup",function(b){c.overlay&&(a("#request-filesystem-credentials-dialog").is(":visible")||(39===b.keyCode&&c.overlay.nextTheme(),37===b.keyCode&&c.overlay.previousTheme(),27===b.keyCode&&c.overlay.collapse(b)))})},render:function(){this.$el.empty(),1===b.data.themes.length&&(this.singleTheme=new b.view.Details({model:this.collection.models[0]}),this.singleTheme.render(),this.$el.addClass("single-theme"),this.$el.append(this.singleTheme.el)),this.options.collection.size()>0&&this.renderThemes(this.parent.page),this.liveThemeCount=this.collection.count?this.collection.count:this.collection.length,this.count.text(this.liveThemeCount),b.isInstall||this.announceSearchResults(this.liveThemeCount)},renderThemes:function(d){var e=this;return e.instance=e.collection.paginate(d),0===e.instance.size()?void this.parent.trigger("theme:end"):(!b.isInstall&&d>=1&&a(".add-new-theme").remove(),e.instance.each(function(a){e.theme=new b.view.Theme({model:a,parent:e}),e.theme.render(),e.$el.append(e.theme.el),e.listenTo(e.theme,"theme:expand",e.expand,e)}),!b.isInstall&&b.data.settings.canInstall&&this.$el.append('<div class="theme add-new-theme"><a href="'+b.data.settings.installURI+'"><div class="theme-screenshot"><span></span></div><h2 class="theme-name">'+c.addNew+"</h2></a></div>"),void this.parent.page++)},currentTheme:function(){var a,b=this;a=b.collection.findWhere({active:!0}),a&&(b.collection.remove(a),b.collection.add(a,{at:0}))},setView:function(a){return a},expand:function(c){var d,e,f=this;this.model=f.collection.get(c),b.router.navigate(b.router.baseUrl(b.router.themePath+this.model.id)),this.setView("detail"),a("body").addClass("modal-open"),this.overlay=new b.view.Details({model:f.model}),this.overlay.render(),this.model.get("hasUpdate")&&(d=a('[data-slug="'+this.model.id+'"]'),e=a(this.overlay.el),d.find(".updating-message").length?(e.find(".notice-warning h3").remove(),e.find(".notice-warning").removeClass("notice-large").addClass("updating-message").find("p").text(wp.updates.l10n.updating)):d.find(".notice-error").length&&e.find(".notice-warning").remove()),this.$overlay.html(this.overlay.el),this.listenTo(this.overlay,"theme:next",function(){f.next([f.model.cid])}).listenTo(this.overlay,"theme:previous",function(){f.previous([f.model.cid])})},next:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)+1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))},previous:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)-1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))},announceSearchResults:function(a){0===a?wp.a11y.speak(c.noThemesFound):wp.a11y.speak(c.themesFound.replace("%d",a))}}),b.view.Search=wp.Backbone.View.extend({tagName:"input",className:"wp-filter-search",id:"wp-filter-search-input",searching:!1,attributes:{placeholder:c.searchPlaceholder,type:"search","aria-describedby":"live-search-desc"},events:{input:"search",keyup:"search",blur:"pushState"},initialize:function(a){this.parent=a.parent,this.listenTo(this.parent,"theme:close",function(){this.searching=!1})},search:function(a){"keyup"===a.type&&27===a.which&&(a.target.value=""),this.doSearch(a)},doSearch:_.debounce(function(a){var c={};this.collection.doSearch(a.target.value),this.searching&&13!==a.which?c.replace=!0:this.searching=!0,a.target.value?b.router.navigate(b.router.baseUrl(b.router.searchPath+a.target.value),c):b.router.navigate(b.router.baseUrl(""))},500),pushState:function(a){var c=b.router.baseUrl("");a.target.value&&(c=b.router.baseUrl(b.router.searchPath+a.target.value)),this.searching=!1,b.router.navigate(c)}}),b.Router=Backbone.Router.extend({routes:{"themes.php?theme=:slug":"theme","themes.php?search=:query":"search","themes.php?s=:query":"search","themes.php":"themes","":"themes"},baseUrl:function(a){return"themes.php"+a},themePath:"?theme=",searchPath:"?search=",search:function(b){a(".wp-filter-search").val(b)},themes:function(){a(".wp-filter-search").val("")},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.Run={init:function(){this.themes=new b.Collection(b.data.themes),this.view=new b.view.Appearance({collection:this.themes}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this;b.router=new b.Router,b.router.on("route:theme",function(a){c.view.view.expand(a)}),b.router.on("route:themes",function(){c.themes.doSearch(""),c.view.trigger("theme:close")}),b.router.on("route:search",function(){a(".wp-filter-search").trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},b.view.InstallerSearch=b.view.Search.extend({events:{input:"search",keyup:"search"},terms:"",search:function(a){("keyup"!==a.type||9!==a.which&&16!==a.which)&&(this.collection=this.options.parent.view.collection,"keyup"===a.type&&27===a.which&&(a.target.value=""),this.doSearch(a.target.value))},doSearch:_.debounce(function(c){var d={};this.terms!==c&&(this.terms=c,d.search=c,"author:"===c.substring(0,7)&&(d.search="",d.author=c.slice(7)),"tag:"===c.substring(0,4)&&(d.search="",d.tag=[c.slice(4)]),a(".filter-links li > a.current").removeClass("current"),a("body").removeClass("show-filters filters-applied show-favorites-form"),this.collection.query(d),b.router.navigate(b.router.baseUrl(b.router.searchPath+c),{replace:!0}))},500)}),b.view.Installer=b.view.Appearance.extend({el:"#wpbody-content .wrap",events:{"click .filter-links li > a":"onSort","click .theme-filter":"onFilter","click .drawer-toggle":"moreFilters","click .filter-drawer .apply-filters":"applyFilters",'click .filter-group [type="checkbox"]':"addFilter","click .filter-drawer .clear-filters":"clearFilters","click .filtered-by":"backToFilters","click .favorites-form-submit":"saveUsername","keyup #wporg-username-input":"saveUsername"},render:function(){var d=this;this.search(),this.uploader(),this.collection=new b.Collection,this.listenTo(this,"theme:end",function(){d.collection.loadingThemes||(d.collection.loadingThemes=!0,d.collection.currentQuery.page++,_.extend(d.collection.currentQuery.request,{page:d.collection.currentQuery.page}),d.collection.query(d.collection.currentQuery.request))}),this.listenTo(this.collection,"query:success",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove()}),this.listenTo(this.collection,"query:fail",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove(),a(".theme-browser").find("div.themes").before('<div class="error"><p>'+c.error+"</p></div>")}),this.view&&this.view.remove(),this.view=new b.view.Themes({collection:this.collection,parent:this}),this.page=0,this.$el.find(".themes").remove(),this.view.render(),this.$el.find(".theme-browser").append(this.view.el).addClass("rendered")},browse:function(a){this.collection.query({browse:a})},onSort:function(c){var d=a(c.target),e=d.data("sort");c.preventDefault(),a("body").removeClass("filters-applied show-filters"),d.hasClass(this.activeClass)||(this.sort(e),b.router.navigate(b.router.baseUrl(b.router.browsePath+e)))},sort:function(b){this.clearSearch(),a(".filter-links li > a, .theme-filter").removeClass(this.activeClass),a('[data-sort="'+b+'"]').addClass(this.activeClass),"favorites"===b?a("body").addClass("show-favorites-form"):a("body").removeClass("show-favorites-form"),this.browse(b)},onFilter:function(b){var c,d=a(b.target),e=d.data("filter");d.hasClass(this.activeClass)||(a(".filter-links li > a, .theme-section").removeClass(this.activeClass),d.addClass(this.activeClass),e&&(e=_.union([e,this.filtersChecked()]),c={tag:[e]},this.collection.query(c)))},addFilter:function(){this.filtersChecked()},applyFilters:function(b){var c,d=this.filtersChecked(),e={tag:d},f=a(".filtered-by .tags");b&&b.preventDefault(),a("body").addClass("filters-applied"),a(".filter-links li > a.current").removeClass("current"),f.empty(),_.each(d,function(b){c=a('label[for="filter-id-'+b+'"]').text(),f.append('<span class="tag">'+c+"</span>")}),this.collection.query(e)},saveUsername:function(b){var c=a("#wporg-username-input").val(),d=a("#wporg-username-nonce").val(),e={browse:"favorites",user:c},f=this;if(b&&b.preventDefault(),"keyup"!==b.type||13===b.which)return wp.ajax.send("save-wporg-username",{data:{_wpnonce:d,username:c},success:function(){f.collection.query(e)}})},filtersChecked:function(){var b=a(".filter-group").find(":checkbox"),c=[];return _.each(b.filter(":checked"),function(b){c.push(a(b).prop("value"))}),0===c.length?(a(".filter-drawer .apply-filters").find("span").text(""),a(".filter-drawer .clear-filters").hide(),a("body").removeClass("filters-applied"),!1):(a(".filter-drawer .apply-filters").find("span").text(c.length),a(".filter-drawer .clear-filters").css("display","inline-block"),c)},activeClass:"current",searchContainer:a(".wp-filter .search-form"),uploader:function(){var b=a(".upload-view-toggle"),c=a(document.body);b.on("click",function(){c.toggleClass("show-upload-view"),b.attr("aria-expanded",c.hasClass("show-upload-view"))})},moreFilters:function(c){return c.preventDefault(),a("body").hasClass("filters-applied")?this.backToFilters():a("body").hasClass("show-filters")&&this.filtersChecked()?this.addFilter():(this.clearSearch(),b.router.navigate(b.router.baseUrl("")),void a("body").toggleClass("show-filters"))},clearFilters:function(b){var c=a(".filter-group").find(":checkbox"),d=this;b.preventDefault(),_.each(c.filter(":checked"),function(b){return a(b).prop("checked",!1),d.filtersChecked()})},backToFilters:function(b){b&&b.preventDefault(),a("body").removeClass("filters-applied")},clearSearch:function(){a("#wp-filter-search-input").val("")}}),b.InstallerRouter=Backbone.Router.extend({routes:{"theme-install.php?theme=:slug":"preview","theme-install.php?browse=:sort":"sort","theme-install.php?search=:query":"search","theme-install.php":"sort"},baseUrl:function(a){return"theme-install.php"+a},themePath:"?theme=",browsePath:"?browse=",searchPath:"?search=",search:function(b){a(".wp-filter-search").val(b)},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.RunInstaller={init:function(){this.view=new b.view.Installer({section:"featured",SearchView:b.view.InstallerSearch}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this,d={};b.router=new b.InstallerRouter,b.router.on("route:preview",function(a){d.theme=a,c.view.collection.query(d),c.view.collection.once("update",function(){c.view.view.theme.preview()})}),b.router.on("route:sort",function(a){a||(a="featured"),c.view.sort(a),c.view.trigger("theme:close")}),b.router.on("route:search",function(){a(".wp-filter-search").focus().trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},a(document).ready(function(){b.isInstall?b.RunInstaller.init():b.Run.init(),a(".broken-themes .delete-theme").on("click",function(){return confirm(_wpThemeSettings.settings.confirmDelete)})})}(jQuery);var tb_position;jQuery(document).ready(function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=1040<c?1040:c,f=0;a("#wpadminbar").length&&(f=parseInt(a("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"}))},a(window).resize(function(){tb_position()})});
\ No newline at end of file
+window.wp=window.wp||{},function(a){var b,c;b=wp.themes=wp.themes||{},b.data=_wpThemeSettings,c=b.data.l10n,b.isInstall=!!b.data.settings.isInstall,_.extend(b,{model:{},view:{},routes:{},router:{},template:wp.template}),b.Model=Backbone.Model.extend({initialize:function(){var a;_.indexOf(b.data.installedThemes,this.get("slug"))!==-1&&this.set({installed:!0}),this.set({id:this.get("slug")||this.get("id")}),this.has("sections")&&(a=this.get("sections").description,this.set({description:a}))}}),b.view.Appearance=wp.Backbone.View.extend({el:"#wpbody-content .wrap .theme-browser",window:a(window),page:0,initialize:function(a){_.bindAll(this,"scroller"),this.SearchView=a.SearchView?a.SearchView:b.view.Search,this.window.bind("scroll",_.throttle(this.scroller,300))},render:function(){this.view=new b.view.Themes({collection:this.collection,parent:this}),this.search(),this.view.render(),this.$el.empty().append(this.view.el).addClass("rendered")},searchContainer:a("#wpbody h1:first"),search:function(){var d,e=this;1!==b.data.themes.length&&(d=new this.SearchView({collection:e.collection,parent:this}),d.render(),this.searchContainer.append(a.parseHTML('<label class="screen-reader-text" for="wp-filter-search-input">'+c.search+"</label>")).append(d.el))},scroller:function(){var a,b,c=this;a=this.window.scrollTop()+c.window.height(),b=c.$el.offset().top+c.$el.outerHeight(!1)-c.window.height(),b=Math.round(.9*b),a>b&&this.trigger("theme:scroll")}}),b.Collection=Backbone.Collection.extend({model:b.Model,terms:"",doSearch:function(c){this.terms!==c&&(this.terms=c,this.terms.length>0&&this.search(this.terms),""===this.terms&&(this.reset(b.data.themes),a("body").removeClass("no-results")),this.trigger("themes:update"))},search:function(c){var d,e,f,g,h,i;this.reset(b.data.themes,{silent:!0}),c=c.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),c=c.replace(/ /g,")(?=.*"),d=new RegExp("^(?=.*"+c+").+","i"),e=this.filter(function(a){return g=a.get("name").replace(/(<([^>]+)>)/gi,""),h=a.get("description").replace(/(<([^>]+)>)/gi,""),i=a.get("author").replace(/(<([^>]+)>)/gi,""),f=_.union([g,a.get("id"),h,i,a.get("tags")]),d.test(a.get("author"))&&c.length>2&&a.set("displayAuthor",!0),d.test(f)}),0===e.length?this.trigger("query:empty"):a("body").removeClass("no-results"),this.reset(e)},paginate:function(a){var b=this;return a=a||0,b=_(b.rest(20*a)),b=_(b.first(20))},count:!1,query:function(b){var c,d,e,f=this.queries,g=this;if(this.currentQuery.request=b,c=_.find(f,function(a){return _.isEqual(a.request,b)}),d=_.has(b,"page"),d||(this.currentQuery.page=1),c||d){if(d)return this.apiCall(b,d).done(function(a){g.add(a.themes),g.trigger("query:success"),g.loadingThemes=!1}).fail(function(){g.trigger("query:fail")});0===c.themes.length?g.trigger("query:empty"):a("body").removeClass("no-results"),_.isNumber(c.total)&&(this.count=c.total),this.reset(c.themes),c.total||(this.count=this.length),this.trigger("themes:update"),this.trigger("query:success",this.count)}else c=this.apiCall(b).done(function(a){a.themes&&(g.reset(a.themes),e=a.info.results,f.push({themes:a.themes,request:b,total:e})),g.trigger("themes:update"),g.trigger("query:success",e),a.themes&&0===a.themes.length&&g.trigger("query:empty")}).fail(function(){g.trigger("query:fail")})},queries:[],currentQuery:{page:1,request:{}},apiCall:function(b,c){return wp.ajax.send("query-themes",{data:{request:_.extend({per_page:100,fields:{description:!0,tested:!0,requires:!0,rating:!0,downloaded:!0,downloadLink:!0,last_updated:!0,homepage:!0,num_ratings:!0}},b)},beforeSend:function(){c||a("body").addClass("loading-content").removeClass("no-results")}})},loadingThemes:!1}),b.view.Theme=wp.Backbone.View.extend({className:"theme",state:"grid",html:b.template("theme"),events:{click:b.isInstall?"preview":"expand",keydown:b.isInstall?"preview":"expand",touchend:b.isInstall?"preview":"expand",keyup:"addFocus",touchmove:"preventExpand","click .theme-install":"installTheme","click .update-message":"updateTheme"},touchDrag:!1,initialize:function(){this.model.on("change",this.render,this)},render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)).attr({tabindex:0,"aria-describedby":a.id+"-action "+a.id+"-name","data-slug":a.id}),this.activeTheme(),this.model.get("displayAuthor")&&this.$el.addClass("display-author")},activeTheme:function(){this.model.get("active")&&this.$el.addClass("active")},addFocus:function(){var b=a(":focus").hasClass("theme")?a(":focus"):a(":focus").parents(".theme");a(".theme.focus").removeClass("focus"),b.addClass("focus")},expand:function(c){var d=this;if(c=c||window.event,"keydown"!==c.type||13===c.which||32===c.which)return this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).is(".theme-actions a")||a(c.target).is(".theme-actions a, .update-message, .button-link, .notice-dismiss")||(b.focusedTheme=this.$el,this.trigger("theme:expand",d.model.cid)))},preventExpand:function(){this.touchDrag=!0},preview:function(c){var d,e,f=this;return c=c||window.event,this.touchDrag===!0?this.touchDrag=!1:void(a(c.target).not(".install-theme-preview").parents(".theme-actions").length||"keydown"===c.type&&13!==c.which&&32!==c.which||"keydown"===c.type&&13!==c.which&&a(":focus").hasClass("button")||(c.preventDefault(),c=c||window.event,b.focusedTheme=this.$el,e=new b.view.Preview({model:this.model}),e.render(),this.setNavButtonsState(),1===this.model.collection.length?e.$el.addClass("no-navigation"):e.$el.removeClass("no-navigation"),a("div.wrap").append(e.el),this.listenTo(e,"theme:next",function(){return d=f.model,_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)+1),_.isUndefined(f.current)?(f.options.parent.parent.trigger("theme:end"),f.current=d):(e.model=f.current,e.render(),this.setNavButtonsState(),void a(".next-theme").focus())}).listenTo(e,"theme:previous",function(){d=f.model,0!==f.model.collection.indexOf(f.current)&&(_.isUndefined(f.current)||(d=f.current),f.current=f.model.collection.at(f.model.collection.indexOf(d)-1),_.isUndefined(f.current)||(e.model=f.current,e.render(),this.setNavButtonsState(),a(".previous-theme").focus()))}),this.listenTo(e,"preview:close",function(){f.current=f.model})))},setNavButtonsState:function(){var b=a(".theme-install-overlay"),c=_.isUndefined(this.current)?this.model:this.current;0===this.model.collection.indexOf(c)&&b.find(".previous-theme").addClass("disabled"),_.isUndefined(this.model.collection.at(this.model.collection.indexOf(c)+1))&&b.find(".next-theme").addClass("disabled")},installTheme:function(b){var c=this;b.preventDefault(),wp.updates.maybeRequestFilesystemCredentials(b),a(document).on("wp-theme-install-success",function(a,b){c.model.get("id")===b.slug&&c.model.set({installed:!0})}),wp.updates.installTheme({slug:a(b.target).data("slug")})},updateTheme:function(b){var c=this;this.model.get("hasPackage")&&(b.preventDefault(),wp.updates.maybeRequestFilesystemCredentials(b),a(document).on("wp-theme-update-success",function(a,b){c.model.off("change",c.render,c),c.model.get("id")===b.slug&&c.model.set({hasUpdate:!1,version:b.newVersion}),c.model.on("change",c.render,c)}),wp.updates.updateTheme({slug:a(b.target).parents("div.theme").first().data("slug")}))}}),b.view.Details=wp.Backbone.View.extend({className:"theme-overlay",events:{click:"collapse","click .delete-theme":"deleteTheme","click .left":"previousTheme","click .right":"nextTheme","click #update-theme":"updateTheme"},html:b.template("theme-single"),render:function(){var a=this.model.toJSON();this.$el.html(this.html(a)),this.activeTheme(),this.navigation(),this.screenshotCheck(this.$el),this.containFocus(this.$el)},activeTheme:function(){this.$el.toggleClass("active",this.model.get("active"))},containFocus:function(b){_.delay(function(){a(".theme-wrap a.button-primary:visible").focus()},100),b.on("keydown.wp-themes",function(a){var c=b.find(".theme-header button:not(.disabled)").first(),d=b.find(".theme-actions a:visible").last();9===a.which&&(c[0]===a.target&&a.shiftKey?(d.focus(),a.preventDefault()):d[0]!==a.target||a.shiftKey||(c.focus(),a.preventDefault()))})},collapse:function(c){var d,e=this;c=c||window.event,1!==b.data.themes.length&&(a(c.target).is(".theme-backdrop")||a(c.target).is(".close")||27===c.keyCode)&&(a("body").addClass("closing-overlay"),this.$el.fadeOut(130,function(){a("body").removeClass("closing-overlay"),e.closeOverlay(),d=document.body.scrollTop,b.router.navigate(b.router.baseUrl("")),document.body.scrollTop=d,b.focusedTheme&&b.focusedTheme.focus()}))},navigation:function(){this.model.cid===this.model.collection.at(0).cid&&this.$el.find(".left").addClass("disabled").prop("disabled",!0),this.model.cid===this.model.collection.at(this.model.collection.length-1).cid&&this.$el.find(".right").addClass("disabled").prop("disabled",!0)},closeOverlay:function(){a("body").removeClass("modal-open"),this.remove(),this.unbind(),this.trigger("theme:collapse")},updateTheme:function(b){var c=this;b.preventDefault(),wp.updates.maybeRequestFilesystemCredentials(b),a(document).on("wp-theme-update-success",function(a,b){c.model.get("id")===b.slug&&c.model.set({hasUpdate:!1,version:b.newVersion}),c.render()}),wp.updates.updateTheme({slug:a(b.target).data("slug")})},deleteTheme:function(c){var d=this,e=d.model.collection,f=b;c.preventDefault(),window.confirm(wp.themes.data.settings.confirmDelete)&&(wp.updates.maybeRequestFilesystemCredentials(c),a(document).one("wp-theme-delete-success",function(b,c){d.$el.find(".close").trigger("click"),a('[data-slug="'+c.slug+'"').css({backgroundColor:"#faafaa"}).fadeOut(350,function(){a(this).remove(),f.data.themes=_.without(f.data.themes,_.findWhere(f.data.themes,{id:c.slug})),a(".wp-filter-search").val(""),e.doSearch(""),e.remove(d.model),e.trigger("themes:update")})}),wp.updates.deleteTheme({slug:this.model.get("id")}))},nextTheme:function(){var a=this;return a.trigger("theme:next",a.model.cid),!1},previousTheme:function(){var a=this;return a.trigger("theme:previous",a.model.cid),!1},screenshotCheck:function(a){var b,c;b=a.find(".screenshot img"),c=new Image,c.src=b.attr("src"),c.width&&c.width<=300&&a.addClass("small-screenshot")}}),b.view.Preview=b.view.Details.extend({className:"wp-full-overlay expanded",el:".theme-install-overlay",events:{"click .close-full-overlay":"close","click .collapse-sidebar":"collapse","click .devices button":"previewDevice","click .previous-theme":"previousTheme","click .next-theme":"nextTheme",keyup:"keyEvent","click .theme-install":"installTheme"},html:b.template("theme-preview"),render:function(){var c,d=this,e=this.model.toJSON(),f=a(document.body);f.attr("aria-busy","true"),this.$el.removeClass("iframe-ready").html(this.html(e)),c=this.$el.data("current-preview-device"),c&&d.tooglePreviewDeviceButtons(c),b.router.navigate(b.router.baseUrl(b.router.themePath+this.model.get("id")),{replace:!0}),this.$el.fadeIn(200,function(){f.addClass("theme-installer-active full-overlay-active")}),this.$el.find("iframe").one("load",function(){d.iframeLoaded()})},iframeLoaded:function(){this.$el.addClass("iframe-ready"),a(document.body).attr("aria-busy","false")},close:function(){return this.$el.fadeOut(200,function(){a("body").removeClass("theme-installer-active full-overlay-active"),b.focusedTheme&&b.focusedTheme.focus()}).removeClass("iframe-ready"),b.router.navigate(b.router.baseUrl("")),this.trigger("preview:close"),this.undelegateEvents(),this.unbind(),!1},collapse:function(b){var d=a(b.currentTarget);return"true"===d.attr("aria-expanded")?d.attr({"aria-expanded":"false","aria-label":c.expandSidebar}):d.attr({"aria-expanded":"true","aria-label":c.collapseSidebar}),this.$el.toggleClass("collapsed").toggleClass("expanded"),!1},previewDevice:function(b){var c=a(b.currentTarget).data("device");this.$el.removeClass("preview-desktop preview-tablet preview-mobile").addClass("preview-"+c).data("current-preview-device",c),this.tooglePreviewDeviceButtons(c)},tooglePreviewDeviceButtons:function(b){var c=a(".wp-full-overlay-footer .devices");c.find("button").removeClass("active").attr("aria-pressed",!1),c.find("button.preview-"+b).addClass("active").attr("aria-pressed",!0)},keyEvent:function(a){27===a.keyCode&&(this.undelegateEvents(),this.close()),39===a.keyCode&&_.once(this.nextTheme()),37===a.keyCode&&this.previousTheme()},installTheme:function(b){var c=this,d=a(b.target);b.preventDefault(),d.hasClass("disabled")||(wp.updates.maybeRequestFilesystemCredentials(b),a(document).on("wp-theme-install-success",function(){c.model.set({installed:!0})}),wp.updates.installTheme({slug:d.data("slug")}))}}),b.view.Themes=wp.Backbone.View.extend({className:"themes wp-clearfix",$overlay:a("div.theme-overlay"),index:0,count:a(".wrap .theme-count"),liveThemeCount:0,initialize:function(b){var c=this;this.parent=b.parent,this.setView("grid"),c.currentTheme(),this.listenTo(c.collection,"themes:update",function(){c.parent.page=0,c.currentTheme(),c.render(this)}),this.listenTo(c.collection,"query:success",function(a){_.isNumber(a)?(c.count.text(a),c.announceSearchResults(a)):(c.count.text(c.collection.length),c.announceSearchResults(c.collection.length))}),this.listenTo(c.collection,"query:empty",function(){a("body").addClass("no-results")}),this.listenTo(this.parent,"theme:scroll",function(){c.renderThemes(c.parent.page)}),this.listenTo(this.parent,"theme:close",function(){c.overlay&&c.overlay.closeOverlay()}),a("body").on("keyup",function(b){c.overlay&&(a("#request-filesystem-credentials-dialog").is(":visible")||(39===b.keyCode&&c.overlay.nextTheme(),37===b.keyCode&&c.overlay.previousTheme(),27===b.keyCode&&c.overlay.collapse(b)))})},render:function(){this.$el.empty(),1===b.data.themes.length&&(this.singleTheme=new b.view.Details({model:this.collection.models[0]}),this.singleTheme.render(),this.$el.addClass("single-theme"),this.$el.append(this.singleTheme.el)),this.options.collection.size()>0&&this.renderThemes(this.parent.page),this.liveThemeCount=this.collection.count?this.collection.count:this.collection.length,this.count.text(this.liveThemeCount),b.isInstall||this.announceSearchResults(this.liveThemeCount)},renderThemes:function(d){var e=this;return e.instance=e.collection.paginate(d),0===e.instance.size()?void this.parent.trigger("theme:end"):(!b.isInstall&&d>=1&&a(".add-new-theme").remove(),e.instance.each(function(a){e.theme=new b.view.Theme({model:a,parent:e}),e.theme.render(),e.$el.append(e.theme.el),e.listenTo(e.theme,"theme:expand",e.expand,e)}),!b.isInstall&&b.data.settings.canInstall&&this.$el.append('<div class="theme add-new-theme"><a href="'+b.data.settings.installURI+'"><div class="theme-screenshot"><span></span></div><h2 class="theme-name">'+c.addNew+"</h2></a></div>"),void this.parent.page++)},currentTheme:function(){var a,b=this;a=b.collection.findWhere({active:!0}),a&&(b.collection.remove(a),b.collection.add(a,{at:0}))},setView:function(a){return a},expand:function(c){var d,e,f=this;this.model=f.collection.get(c),b.router.navigate(b.router.baseUrl(b.router.themePath+this.model.id)),this.setView("detail"),a("body").addClass("modal-open"),this.overlay=new b.view.Details({model:f.model}),this.overlay.render(),this.model.get("hasUpdate")&&(d=a('[data-slug="'+this.model.id+'"]'),e=a(this.overlay.el),d.find(".updating-message").length?(e.find(".notice-warning h3").remove(),e.find(".notice-warning").removeClass("notice-large").addClass("updating-message").find("p").text(wp.updates.l10n.updating)):d.find(".notice-error").length&&e.find(".notice-warning").remove()),this.$overlay.html(this.overlay.el),this.listenTo(this.overlay,"theme:next",function(){f.next([f.model.cid])}).listenTo(this.overlay,"theme:previous",function(){f.previous([f.model.cid])})},next:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)+1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))},previous:function(a){var b,c,d=this;b=d.collection.get(a[0]),c=d.collection.at(d.collection.indexOf(b)-1),void 0!==c&&(this.overlay.closeOverlay(),d.theme.trigger("theme:expand",c.cid))},announceSearchResults:function(a){0===a?wp.a11y.speak(c.noThemesFound):wp.a11y.speak(c.themesFound.replace("%d",a))}}),b.view.Search=wp.Backbone.View.extend({tagName:"input",className:"wp-filter-search",id:"wp-filter-search-input",searching:!1,attributes:{placeholder:c.searchPlaceholder,type:"search","aria-describedby":"live-search-desc"},events:{input:"search",keyup:"search",blur:"pushState"},initialize:function(a){this.parent=a.parent,this.listenTo(this.parent,"theme:close",function(){this.searching=!1})},search:function(a){"keyup"===a.type&&27===a.which&&(a.target.value=""),this.doSearch(a)},doSearch:_.debounce(function(a){var c={};this.collection.doSearch(a.target.value),this.searching&&13!==a.which?c.replace=!0:this.searching=!0,a.target.value?b.router.navigate(b.router.baseUrl(b.router.searchPath+a.target.value),c):b.router.navigate(b.router.baseUrl(""))},500),pushState:function(a){var c=b.router.baseUrl("");a.target.value&&(c=b.router.baseUrl(b.router.searchPath+a.target.value)),this.searching=!1,b.router.navigate(c)}}),b.Router=Backbone.Router.extend({routes:{"themes.php?theme=:slug":"theme","themes.php?search=:query":"search","themes.php?s=:query":"search","themes.php":"themes","":"themes"},baseUrl:function(a){return"themes.php"+a},themePath:"?theme=",searchPath:"?search=",search:function(b){a(".wp-filter-search").val(b)},themes:function(){a(".wp-filter-search").val("")},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.Run={init:function(){this.themes=new b.Collection(b.data.themes),this.view=new b.view.Appearance({collection:this.themes}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this;b.router=new b.Router,b.router.on("route:theme",function(a){c.view.view.expand(a)}),b.router.on("route:themes",function(){c.themes.doSearch(""),c.view.trigger("theme:close")}),b.router.on("route:search",function(){a(".wp-filter-search").trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},b.view.InstallerSearch=b.view.Search.extend({events:{input:"search",keyup:"search"},terms:"",search:function(a){("keyup"!==a.type||9!==a.which&&16!==a.which)&&(this.collection=this.options.parent.view.collection,"keyup"===a.type&&27===a.which&&(a.target.value=""),this.doSearch(a.target.value))},doSearch:_.debounce(function(c){var d={};this.terms!==c&&(this.terms=c,d.search=c,"author:"===c.substring(0,7)&&(d.search="",d.author=c.slice(7)),"tag:"===c.substring(0,4)&&(d.search="",d.tag=[c.slice(4)]),a(".filter-links li > a.current").removeClass("current"),a("body").removeClass("show-filters filters-applied show-favorites-form"),a(".drawer-toggle").attr("aria-expanded","false"),this.collection.query(d),b.router.navigate(b.router.baseUrl(b.router.searchPath+c),{replace:!0}))},500)}),b.view.Installer=b.view.Appearance.extend({el:"#wpbody-content .wrap",events:{"click .filter-links li > a":"onSort","click .theme-filter":"onFilter","click .drawer-toggle":"moreFilters","click .filter-drawer .apply-filters":"applyFilters",'click .filter-group [type="checkbox"]':"addFilter","click .filter-drawer .clear-filters":"clearFilters","click .edit-filters":"backToFilters","click .favorites-form-submit":"saveUsername","keyup #wporg-username-input":"saveUsername"},render:function(){var d=this;this.search(),this.uploader(),this.collection=new b.Collection,this.listenTo(this,"theme:end",function(){d.collection.loadingThemes||(d.collection.loadingThemes=!0,d.collection.currentQuery.page++,_.extend(d.collection.currentQuery.request,{page:d.collection.currentQuery.page}),d.collection.query(d.collection.currentQuery.request))}),this.listenTo(this.collection,"query:success",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove()}),this.listenTo(this.collection,"query:fail",function(){a("body").removeClass("loading-content"),a(".theme-browser").find("div.error").remove(),a(".theme-browser").find("div.themes").before('<div class="error"><p>'+c.error+"</p></div>")}),this.view&&this.view.remove(),this.view=new b.view.Themes({collection:this.collection,parent:this}),this.page=0,this.$el.find(".themes").remove(),this.view.render(),this.$el.find(".theme-browser").append(this.view.el).addClass("rendered")},browse:function(a){this.collection.query({browse:a})},onSort:function(c){var d=a(c.target),e=d.data("sort");c.preventDefault(),a("body").removeClass("filters-applied show-filters"),a(".drawer-toggle").attr("aria-expanded","false"),d.hasClass(this.activeClass)||(this.sort(e),b.router.navigate(b.router.baseUrl(b.router.browsePath+e)))},sort:function(b){this.clearSearch(),a(".filter-links li > a, .theme-filter").removeClass(this.activeClass),a('[data-sort="'+b+'"]').addClass(this.activeClass),"favorites"===b?a("body").addClass("show-favorites-form"):a("body").removeClass("show-favorites-form"),this.browse(b)},onFilter:function(b){var c,d=a(b.target),e=d.data("filter");d.hasClass(this.activeClass)||(a(".filter-links li > a, .theme-section").removeClass(this.activeClass),d.addClass(this.activeClass),e&&(e=_.union([e,this.filtersChecked()]),c={tag:[e]},this.collection.query(c)))},addFilter:function(){this.filtersChecked()},applyFilters:function(b){var d,e=this.filtersChecked(),f={tag:e},g=a(".filtered-by .tags");return b&&b.preventDefault(),e?(a("body").addClass("filters-applied"),a(".filter-links li > a.current").removeClass("current"),g.empty(),_.each(e,function(b){d=a('label[for="filter-id-'+b+'"]').text(),g.append('<span class="tag">'+d+"</span>")}),void this.collection.query(f)):void wp.a11y.speak(c.selectFeatureFilter)},saveUsername:function(b){var c=a("#wporg-username-input").val(),d=a("#wporg-username-nonce").val(),e={browse:"favorites",user:c},f=this;if(b&&b.preventDefault(),"keyup"!==b.type||13===b.which)return wp.ajax.send("save-wporg-username",{data:{_wpnonce:d,username:c},success:function(){f.collection.query(e)}})},filtersChecked:function(){var b=a(".filter-group").find(":checkbox"),c=[];return _.each(b.filter(":checked"),function(b){c.push(a(b).prop("value"))}),0===c.length?(a(".filter-drawer .apply-filters").find("span").text(""),a(".filter-drawer .clear-filters").hide(),a("body").removeClass("filters-applied"),!1):(a(".filter-drawer .apply-filters").find("span").text(c.length),a(".filter-drawer .clear-filters").css("display","inline-block"),c)},activeClass:"current",searchContainer:a(".wp-filter .search-form"),uploader:function(){var b=a(".upload-view-toggle"),c=a(document.body);b.on("click",function(){c.toggleClass("show-upload-view"),b.attr("aria-expanded",c.hasClass("show-upload-view"))})},moreFilters:function(c){var d=a("body"),e=a(".drawer-toggle");return c.preventDefault(),d.hasClass("filters-applied")?this.backToFilters():(this.clearSearch(),b.router.navigate(b.router.baseUrl("")),d.toggleClass("show-filters"),void e.attr("aria-expanded",d.hasClass("show-filters")))},clearFilters:function(b){var c=a(".filter-group").find(":checkbox"),d=this;b.preventDefault(),_.each(c.filter(":checked"),function(b){return a(b).prop("checked",!1),d.filtersChecked()})},backToFilters:function(b){b&&b.preventDefault(),a("body").removeClass("filters-applied")},clearSearch:function(){a("#wp-filter-search-input").val("")}}),b.InstallerRouter=Backbone.Router.extend({routes:{"theme-install.php?theme=:slug":"preview","theme-install.php?browse=:sort":"sort","theme-install.php?search=:query":"search","theme-install.php":"sort"},baseUrl:function(a){return"theme-install.php"+a},themePath:"?theme=",browsePath:"?browse=",searchPath:"?search=",search:function(b){a(".wp-filter-search").val(b)},navigate:function(){Backbone.history._hasPushState&&Backbone.Router.prototype.navigate.apply(this,arguments)}}),b.RunInstaller={init:function(){this.view=new b.view.Installer({section:"featured",SearchView:b.view.InstallerSearch}),this.render()},render:function(){this.view.render(),this.routes(),Backbone.history.start({root:b.data.settings.adminUrl,pushState:!0,hashChange:!1})},routes:function(){var c=this,d={};b.router=new b.InstallerRouter,b.router.on("route:preview",function(a){d.theme=a,c.view.collection.query(d),c.view.collection.once("update",function(){c.view.view.theme.preview()})}),b.router.on("route:sort",function(a){a||(a="featured"),c.view.sort(a),c.view.trigger("theme:close")}),b.router.on("route:search",function(){a(".wp-filter-search").focus().trigger("keyup")}),this.extraRoutes()},extraRoutes:function(){return!1}},a(document).ready(function(){b.isInstall?b.RunInstaller.init():b.Run.init(),a(".broken-themes .delete-theme").on("click",function(){return confirm(_wpThemeSettings.settings.confirmDelete)})})}(jQuery);var tb_position;jQuery(document).ready(function(a){tb_position=function(){var b=a("#TB_window"),c=a(window).width(),d=a(window).height(),e=1040<c?1040:c,f=0;a("#wpadminbar").length&&(f=parseInt(a("#wpadminbar").css("height"),10)),b.size()&&(b.width(e-50).height(d-45-f),a("#TB_iframeContent").width(e-50).height(d-75-f),b.css({"margin-left":"-"+parseInt((e-50)/2,10)+"px"}),"undefined"!=typeof document.body.style.maxWidth&&b.css({top:20+f+"px","margin-top":"0"}))},a(window).resize(function(){tb_position()})});
\ No newline at end of file
diff --git a/wp-admin/js/updates.js b/wp-admin/js/updates.js
index 239829fe3..400842ebd 100644
--- a/wp-admin/js/updates.js
+++ b/wp-admin/js/updates.js
@@ -21,10 +21,12 @@
  * @param {Array}   settings.plugins.inactive           Base names of inactive plugins.
  * @param {Array}   settings.plugins.upgrade            Base names of plugins with updates available.
  * @param {Array}   settings.plugins.recently_activated Base names of recently activated plugins.
- * @param {object=} settings.totals                     Plugin/theme status information or null.
- * @param {number}  settings.totals.all                 Amount of all plugins or themes.
- * @param {number}  settings.totals.upgrade             Amount of plugins or themes with updates available.
- * @param {number}  settings.totals.disabled            Amount of disabled themes.
+ * @param {object=} settings.themes                     Plugin/theme status information or null.
+ * @param {number}  settings.themes.all                 Amount of all themes.
+ * @param {number}  settings.themes.upgrade             Amount of themes with updates available.
+ * @param {number}  settings.themes.disabled            Amount of disabled themes.
+ * @param {object=} settings.totals                     Combined information for available update counts.
+ * @param {number}  settings.totals.count               Holds the amount of available updates.
  */
 (function( $, wp, settings ) {
 	var $document = $( document );
@@ -257,75 +259,92 @@
 	};
 
 	/**
-	 * Decrements the update counts throughout the various menus.
-	 *
-	 * This includes the toolbar, the "Updates" menu item and the menu items
-	 * for plugins and themes.
+	 * Refreshes update counts everywhere on the screen.
 	 *
-	 * @since 3.9.0
-	 *
-	 * @param {string} type The type of item that was updated or deleted.
-	 *                      Can be 'plugin', 'theme'.
+	 * @since 4.7.0
 	 */
-	wp.updates.decrementCount = function( type ) {
-		var $adminBarUpdates             = $( '#wp-admin-bar-updates' ),
-			$dashboardNavMenuUpdateCount = $( 'a[href="update-core.php"] .update-plugins' ),
-			count                        = $adminBarUpdates.find( '.ab-label' ).text(),
-			$menuItem, $itemCount, itemCount;
-
-		count = parseInt( count, 10 ) - 1;
-
-		if ( count < 0 || isNaN( count ) ) {
-			return;
-		}
+	wp.updates.refreshCount = function() {
+		var $adminBarUpdates              = $( '#wp-admin-bar-updates' ),
+			$dashboardNavMenuUpdateCount  = $( 'a[href="update-core.php"] .update-plugins' ),
+			$pluginsNavMenuUpdateCount    = $( 'a[href="plugins.php"] .update-plugins' ),
+			$appearanceNavMenuUpdateCount = $( 'a[href="themes.php"] .update-plugins' ),
+			itemCount;
 
 		$adminBarUpdates.find( '.ab-item' ).removeAttr( 'title' );
-		$adminBarUpdates.find( '.ab-label' ).text( count );
+		$adminBarUpdates.find( '.ab-label' ).text( settings.totals.counts.total );
 
 		// Remove the update count from the toolbar if it's zero.
-		if ( ! count ) {
+		if ( 0 === settings.totals.counts.total ) {
 			$adminBarUpdates.find( '.ab-label' ).parents( 'li' ).remove();
 		}
 
 		// Update the "Updates" menu item.
 		$dashboardNavMenuUpdateCount.each( function( index, element ) {
-			element.className = element.className.replace( /count-\d+/, 'count-' + count );
+			element.className = element.className.replace( /count-\d+/, 'count-' + settings.totals.counts.total );
 		} );
+		if ( settings.totals.counts.total > 0 ) {
+			$dashboardNavMenuUpdateCount.find( '.update-count' ).text( settings.totals.counts.total );
+		} else {
+			$dashboardNavMenuUpdateCount.remove();
+		}
 
-		$dashboardNavMenuUpdateCount.removeAttr( 'title' );
-		$dashboardNavMenuUpdateCount.find( '.update-count' ).text( count );
-
-		if ( 'plugin' === type ) {
-			$menuItem  = $( '#menu-plugins' );
-			$itemCount = $menuItem.find( '.plugin-count' );
-		} else if ( 'theme' === type ) {
-			$menuItem  = $( '#menu-appearance' );
-			$itemCount = $menuItem.find( '.theme-count' );
+		// Update the "Plugins" menu item.
+		$pluginsNavMenuUpdateCount.each( function( index, element ) {
+			element.className = element.className.replace( /count-\d+/, 'count-' + settings.totals.counts.plugins );
+		} );
+		if ( settings.totals.counts.total > 0 ) {
+			$pluginsNavMenuUpdateCount.find( '.plugin-count' ).text( settings.totals.counts.plugins );
+		} else {
+			$pluginsNavMenuUpdateCount.remove();
 		}
 
-		// Decrement the counter of the other menu items.
-		if ( $itemCount ) {
-			itemCount = $itemCount.eq( 0 ).text();
-			itemCount = parseInt( itemCount, 10 ) - 1;
+		// Update the "Appearance" menu item.
+		$appearanceNavMenuUpdateCount.each( function( index, element ) {
+			element.className = element.className.replace( /count-\d+/, 'count-' + settings.totals.counts.themes );
+		} );
+		if ( settings.totals.counts.total > 0 ) {
+			$appearanceNavMenuUpdateCount.find( '.theme-count' ).text( settings.totals.counts.themes );
+		} else {
+			$appearanceNavMenuUpdateCount.remove();
 		}
 
-		if ( itemCount < 0 || isNaN( itemCount ) ) {
-			return;
+		// Update list table filter navigation.
+		if ( 'plugins' === pagenow || 'plugins-network' === pagenow ) {
+			itemCount = settings.totals.counts.plugins;
+		} else if ( 'themes' === pagenow || 'themes-network' === pagenow ) {
+			itemCount = settings.totals.counts.themes;
 		}
 
 		if ( itemCount > 0 ) {
 			$( '.subsubsub .upgrade .count' ).text( '(' + itemCount + ')' );
-
-			$itemCount.text( itemCount );
-			$menuItem.find( '.update-plugins' ).each( function( index, element ) {
-				element.className = element.className.replace( /count-\d+/, 'count-' + itemCount );
-			} );
 		} else {
 			$( '.subsubsub .upgrade' ).remove();
-			$menuItem.find( '.update-plugins' ).remove();
 		}
 	};
 
+	/**
+	 * Decrements the update counts throughout the various menus.
+	 *
+	 * This includes the toolbar, the "Updates" menu item and the menu items
+	 * for plugins and themes.
+	 *
+	 * @since 3.9.0
+	 *
+	 * @param {string} type The type of item that was updated or deleted.
+	 *                      Can be 'plugin', 'theme'.
+	 */
+	wp.updates.decrementCount = function( type ) {
+		settings.totals.counts.total = Math.max( --settings.totals.counts.total, 0 );
+
+		if ( 'plugin' === type ) {
+			settings.totals.counts.plugins = Math.max( --settings.totals.counts.plugins, 0 );
+		} else if ( 'theme' === type ) {
+			settings.totals.counts.themes = Math.max( --settings.totals.counts.themes, 0 );
+		}
+
+		wp.updates.refreshCount( type );
+	};
+
 	/**
 	 * Sends an Ajax request to the server to update a plugin.
 	 *
@@ -1105,7 +1124,7 @@
 				$message.siblings( '.preview' ).replaceWith( function () {
 					return $( '<a>' )
 						.attr( 'href', response.customizeUrl )
-						.addClass( 'button button-secondary load-customize' )
+						.addClass( 'button load-customize' )
 						.text( wp.updates.l10n.livePreview );
 				} );
 			}
@@ -1217,7 +1236,7 @@
 			$themeRows.css( { backgroundColor: '#faafaa' } ).fadeOut( 350, function() {
 				var $views     = $( '.subsubsub' ),
 					$themeRow  = $( this ),
-					totals     = settings.totals,
+					totals     = settings.themes,
 					deletedRow = wp.template( 'item-deleted-row' );
 
 				if ( ! $themeRow.hasClass( 'plugin-update-tr' ) ) {
@@ -1655,6 +1674,12 @@
 			$pluginSearch        = $( '.plugins-php .wp-filter-search' ),
 			$pluginInstallSearch = $( '.plugin-install-php .wp-filter-search' );
 
+		settings = _.extend( settings, window._wpUpdatesItemCounts || {} );
+
+		if ( settings.totals ) {
+			wp.updates.refreshCount();
+		}
+
 		/*
 		 * Whether a user needs to submit filesystem credentials.
 		 *
@@ -1876,6 +1901,7 @@
 
 			wp.updates.installPlugin( {
 				slug:    $button.data( 'slug' ),
+				pagenow: pagenow,
 				success: wp.updates.installImporterSuccess,
 				error:   wp.updates.installImporterError
 			} );
@@ -2185,10 +2211,12 @@
 		 */
 		$pluginSearch.on( 'keyup input', _.debounce( function( event ) {
 			var data = {
-				_ajax_nonce: wp.updates.ajaxNonce,
-				s:           event.target.value,
-				pagenow:     pagenow
-			};
+				_ajax_nonce:   wp.updates.ajaxNonce,
+				s:             event.target.value,
+				pagenow:       pagenow,
+				plugin_status: 'all'
+			},
+			queryArgs;
 
 			// Clear on escape.
 			if ( 'keyup' === event.type && 27 === event.which ) {
@@ -2201,8 +2229,14 @@
 				wp.updates.searchTerm = data.s;
 			}
 
+			queryArgs = _.object( _.compact( _.map( location.search.slice( 1 ).split( '&' ), function( item ) {
+				if ( item ) return item.split( '=' );
+			} ) ) );
+
+			data.plugin_status = queryArgs.plugin_status || 'all';
+
 			if ( window.history && window.history.replaceState ) {
-				window.history.replaceState( null, '', location.href.split( '?' )[ 0 ] + '?s=' + data.s );
+				window.history.replaceState( null, '', location.href.split( '?' )[ 0 ] + '?s=' + data.s + '&plugin_status=' + data.plugin_status );
 			}
 
 			if ( 'undefined' !== typeof wp.updates.searchRequest ) {
@@ -2211,6 +2245,7 @@
 
 			$bulkActionForm.empty();
 			$( 'body' ).addClass( 'loading-content' );
+			$( '.subsubsub .current' ).removeClass( 'current' );
 
 			wp.updates.searchRequest = wp.ajax.post( 'search-plugins', data ).done( function( response ) {
 
@@ -2220,6 +2255,7 @@
 
 				if ( ! data.s.length ) {
 					$oldSubTitle.remove();
+					$( '.subsubsub .' + data.plugin_status + ' a' ).addClass( 'current' );
 				} else if ( $oldSubTitle.length ) {
 					$oldSubTitle.replaceWith( $subTitle );
 				} else {
@@ -2377,4 +2413,4 @@
 		 */
 		$( window ).on( 'beforeunload', wp.updates.beforeunload );
 	} );
-})( jQuery, window.wp, _.extend( window._wpUpdatesSettings, window._wpUpdatesItemCounts || {} ) );
+})( jQuery, window.wp, window._wpUpdatesSettings );
diff --git a/wp-admin/js/updates.min.js b/wp-admin/js/updates.min.js
index 3dd4de5b8..1bee866ee 100644
--- a/wp-admin/js/updates.min.js
+++ b/wp-admin/js/updates.min.js
@@ -1,2 +1,2 @@
-!function(a,b,c){var d=a(document);b=b||{},b.updates={},b.updates.ajaxNonce=c.ajax_nonce,b.updates.l10n=c.l10n,b.updates.searchTerm="",b.updates.shouldRequestFilesystemCredentials=!1,b.updates.filesystemCredentials={ftp:{host:"",username:"",password:"",connectionType:""},ssh:{publicKey:"",privateKey:""},available:!1},b.updates.ajaxLocked=!1,b.updates.adminNotice=b.template("wp-updates-admin-notice"),b.updates.queue=[],b.updates.$elToReturnFocusToFromCredentialsModal=void 0,b.updates.addAdminNotice=function(c){var e,f=a(c.selector);delete c.selector,e=b.updates.adminNotice(c),f.length||(f=a("#"+c.id)),f.length?f.replaceWith(e):a(".wrap").find("> h1").after(e),d.trigger("wp-updates-notice-added")},b.updates.ajax=function(c,d){var e={};return b.updates.ajaxLocked?(b.updates.queue.push({action:c,data:d}),a.Deferred()):(b.updates.ajaxLocked=!0,d.success&&(e.success=d.success,delete d.success),d.error&&(e.error=d.error,delete d.error),e.data=_.extend(d,{action:c,_ajax_nonce:b.updates.ajaxNonce,username:b.updates.filesystemCredentials.ftp.username,password:b.updates.filesystemCredentials.ftp.password,hostname:b.updates.filesystemCredentials.ftp.hostname,connection_type:b.updates.filesystemCredentials.ftp.connectionType,public_key:b.updates.filesystemCredentials.ssh.publicKey,private_key:b.updates.filesystemCredentials.ssh.privateKey}),b.ajax.send(e).always(b.updates.ajaxAlways))},b.updates.ajaxAlways=function(c){c.errorCode&&"unable_to_connect_to_filesystem"===c.errorCode||(b.updates.ajaxLocked=!1,b.updates.queueChecker()),"undefined"!=typeof c.debug&&window.console&&window.console.log&&_.map(c.debug,function(b){window.console.log(a("<p />").html(b).text())})},b.updates.decrementCount=function(b){var c,d,e,f=a("#wp-admin-bar-updates"),g=a('a[href="update-core.php"] .update-plugins'),h=f.find(".ab-label").text();h=parseInt(h,10)-1,h<0||isNaN(h)||(f.find(".ab-item").removeAttr("title"),f.find(".ab-label").text(h),h||f.find(".ab-label").parents("li").remove(),g.each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+h)}),g.removeAttr("title"),g.find(".update-count").text(h),"plugin"===b?(c=a("#menu-plugins"),d=c.find(".plugin-count")):"theme"===b&&(c=a("#menu-appearance"),d=c.find(".theme-count")),d&&(e=d.eq(0).text(),e=parseInt(e,10)-1),e<0||isNaN(e)||(e>0?(a(".subsubsub .upgrade .count").text("("+e+")"),d.text(e),c.find(".update-plugins").each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+e)})):(a(".subsubsub .upgrade").remove(),c.find(".update-plugins").remove())))},b.updates.updatePlugin=function(c){var e,f,g,h;return c=_.extend({success:b.updates.updatePluginSuccess,error:b.updates.updatePluginError},c),"plugins"===pagenow||"plugins-network"===pagenow?(e=a('tr[data-plugin="'+c.plugin+'"]'),g=e.find(".update-message").removeClass("notice-error").addClass("updating-message notice-warning").find("p"),h=b.updates.l10n.updatingLabel.replace("%s",e.find(".plugin-title strong").text())):"plugin-install"!==pagenow&&"plugin-install-network"!==pagenow||(f=a(".plugin-card-"+c.slug),g=f.find(".update-now").addClass("updating-message"),h=b.updates.l10n.updatingLabel.replace("%s",g.data("name")),f.removeClass("plugin-card-update-failed").find(".notice.notice-error").remove()),g.html()!==b.updates.l10n.updating&&g.data("originaltext",g.html()),g.attr("aria-label",h).text(b.updates.l10n.updating),d.trigger("wp-plugin-updating",c),b.updates.ajax("update-plugin",c)},b.updates.updatePluginSuccess=function(c){var e,f,g;"plugins"===pagenow||"plugins-network"===pagenow?(e=a('tr[data-plugin="'+c.plugin+'"]').removeClass("update").addClass("updated"),f=e.find(".update-message").removeClass("updating-message notice-warning").addClass("updated-message notice-success").find("p"),g=e.find(".plugin-version-author-uri").html().replace(c.oldVersion,c.newVersion),e.find(".plugin-version-author-uri").html(g)):"plugin-install"!==pagenow&&"plugin-install-network"!==pagenow||(f=a(".plugin-card-"+c.slug).find(".update-now").removeClass("updating-message").addClass("button-disabled updated-message")),f.attr("aria-label",b.updates.l10n.updatedLabel.replace("%s",c.pluginName)).text(b.updates.l10n.updated),b.a11y.speak(b.updates.l10n.updatedMsg,"polite"),b.updates.decrementCount("plugin"),d.trigger("wp-plugin-update-success",c)},b.updates.updatePluginError=function(c){var e,f,g;b.updates.isValidResponse(c,"update")&&(b.updates.maybeHandleCredentialError(c,"update-plugin")||(g=b.updates.l10n.updateFailed.replace("%s",c.errorMessage),"plugins"===pagenow||"plugins-network"===pagenow?(f=c.plugin?a('tr[data-plugin="'+c.plugin+'"]').find(".update-message"):a('tr[data-slug="'+c.slug+'"]').find(".update-message"),f.removeClass("updating-message notice-warning").addClass("notice-error").find("p").html(g),c.pluginName?f.find("p").attr("aria-label",b.updates.l10n.updateFailedLabel.replace("%s",c.pluginName)):f.find("p").removeAttr("aria-label")):"plugin-install"!==pagenow&&"plugin-install-network"!==pagenow||(e=a(".plugin-card-"+c.slug).addClass("plugin-card-update-failed").append(b.updates.adminNotice({className:"update-message notice-error notice-alt is-dismissible",message:g})),e.find(".update-now").text(b.updates.l10n.updateFailedShort).removeClass("updating-message"),c.pluginName?e.find(".update-now").attr("aria-label",b.updates.l10n.updateFailedLabel.replace("%s",c.pluginName)):e.find(".update-now").removeAttr("aria-label"),e.on("click",".notice.is-dismissible .notice-dismiss",function(){setTimeout(function(){e.removeClass("plugin-card-update-failed").find(".column-name a").focus(),e.find(".update-now").attr("aria-label",!1).text(b.updates.l10n.updateNow)},200)})),b.a11y.speak(g,"assertive"),d.trigger("wp-plugin-update-error",c)))},b.updates.installPlugin=function(c){var e=a(".plugin-card-"+c.slug),f=e.find(".install-now");return c=_.extend({success:b.updates.installPluginSuccess,error:b.updates.installPluginError},c),"import"===pagenow&&(f=a('[data-slug="'+c.slug+'"]')),f.html()!==b.updates.l10n.installing&&f.data("originaltext",f.html()),f.addClass("updating-message").attr("aria-label",b.updates.l10n.pluginInstallingLabel.replace("%s",f.data("name"))).text(b.updates.l10n.installing),b.a11y.speak(b.updates.l10n.installingMsg,"polite"),e.removeClass("plugin-card-install-failed").find(".notice.notice-error").remove(),d.trigger("wp-plugin-installing",c),b.updates.ajax("install-plugin",c)},b.updates.installPluginSuccess=function(c){var e=a(".plugin-card-"+c.slug).find(".install-now");e.removeClass("updating-message").addClass("updated-message installed button-disabled").attr("aria-label",b.updates.l10n.pluginInstalledLabel.replace("%s",c.pluginName)).text(b.updates.l10n.installed),b.a11y.speak(b.updates.l10n.installedMsg,"polite"),d.trigger("wp-plugin-install-success",c),c.activateUrl&&setTimeout(function(){e.removeClass("install-now installed button-disabled updated-message").addClass("activate-now button-primary").attr("href",c.activateUrl).attr("aria-label",b.updates.l10n.activatePluginLabel.replace("%s",c.pluginName)).text(b.updates.l10n.activatePlugin)},1e3)},b.updates.installPluginError=function(c){var e,f=a(".plugin-card-"+c.slug),g=f.find(".install-now");b.updates.isValidResponse(c,"install")&&(b.updates.maybeHandleCredentialError(c,"install-plugin")||(e=b.updates.l10n.installFailed.replace("%s",c.errorMessage),f.addClass("plugin-card-update-failed").append('<div class="notice notice-error notice-alt is-dismissible"><p>'+e+"</p></div>"),f.on("click",".notice.is-dismissible .notice-dismiss",function(){setTimeout(function(){f.removeClass("plugin-card-update-failed").find(".column-name a").focus()},200)}),g.removeClass("updating-message").addClass("button-disabled").attr("aria-label",b.updates.l10n.pluginInstallFailedLabel.replace("%s",g.data("name"))).text(b.updates.l10n.installFailedShort),b.a11y.speak(e,"assertive"),d.trigger("wp-plugin-install-error",c)))},b.updates.installImporterSuccess=function(c){b.updates.addAdminNotice({id:"install-success",className:"notice-success is-dismissible",message:b.updates.l10n.importerInstalledMsg.replace("%s",c.activateUrl+"&from=import")}),a('[data-slug="'+c.slug+'"]').removeClass("install-now updating-message").addClass("activate-now").attr({href:c.activateUrl+"&from=import","aria-label":b.updates.l10n.activateImporterLabel.replace("%s",c.pluginName)}).text(b.updates.l10n.activateImporter),b.a11y.speak(b.updates.l10n.installedMsg,"polite"),d.trigger("wp-importer-install-success",c)},b.updates.installImporterError=function(c){var e=b.updates.l10n.installFailed.replace("%s",c.errorMessage),f=a('[data-slug="'+c.slug+'"]'),g=f.data("name");b.updates.isValidResponse(c,"install")&&(b.updates.maybeHandleCredentialError(c,"install-plugin")||(b.updates.addAdminNotice({id:c.errorCode,className:"notice-error is-dismissible",message:e}),f.removeClass("updating-message").text(b.updates.l10n.installNow).attr("aria-label",b.updates.l10n.installNowLabel.replace("%s",g)),b.a11y.speak(e,"assertive"),d.trigger("wp-importer-install-error",c)))},b.updates.deletePlugin=function(c){var e=a('[data-plugin="'+c.plugin+'"]').find(".row-actions a.delete");return c=_.extend({success:b.updates.deletePluginSuccess,error:b.updates.deletePluginError},c),e.html()!==b.updates.l10n.deleting&&e.data("originaltext",e.html()).text(b.updates.l10n.deleting),b.a11y.speak(b.updates.l10n.deleting,"polite"),d.trigger("wp-plugin-deleting",c),b.updates.ajax("delete-plugin",c)},b.updates.deletePluginSuccess=function(e){a('[data-plugin="'+e.plugin+'"]').css({backgroundColor:"#faafaa"}).fadeOut(350,function(){var d=a("#bulk-action-form"),f=a(".subsubsub"),g=a(this),h=d.find("thead th:not(.hidden), thead td").length,i=b.template("item-deleted-row"),j=c.plugins;g.hasClass("plugin-update-tr")||g.after(i({slug:e.slug,plugin:e.plugin,colspan:h,name:e.pluginName})),g.remove(),-1!==_.indexOf(j.upgrade,e.plugin)&&(j.upgrade=_.without(j.upgrade,e.plugin),b.updates.decrementCount("plugin")),-1!==_.indexOf(j.inactive,e.plugin)&&(j.inactive=_.without(j.inactive,e.plugin),j.inactive.length?f.find(".inactive .count").text("("+j.inactive.length+")"):f.find(".inactive").remove()),-1!==_.indexOf(j.active,e.plugin)&&(j.active=_.without(j.active,e.plugin),j.active.length?f.find(".active .count").text("("+j.active.length+")"):f.find(".active").remove()),-1!==_.indexOf(j.recently_activated,e.plugin)&&(j.recently_activated=_.without(j.recently_activated,e.plugin),j.recently_activated.length?f.find(".recently_activated .count").text("("+j.recently_activated.length+")"):f.find(".recently_activated").remove()),j.all=_.without(j.all,e.plugin),j.all.length?f.find(".all .count").text("("+j.all.length+")"):(d.find(".tablenav").css({visibility:"hidden"}),f.find(".all").remove(),d.find("tr.no-items").length||d.find("#the-list").append('<tr class="no-items"><td class="colspanchange" colspan="'+h+'">'+b.updates.l10n.noPlugins+"</td></tr>"))}),b.a11y.speak(b.updates.l10n.deleted,"polite"),d.trigger("wp-plugin-delete-success",e)},b.updates.deletePluginError=function(c){var e,f,g=b.template("item-update-row"),h=b.updates.adminNotice({className:"update-message notice-error notice-alt",message:c.errorMessage});c.plugin?(e=a('tr.inactive[data-plugin="'+c.plugin+'"]'),f=e.siblings('[data-plugin="'+c.plugin+'"]')):(e=a('tr.inactive[data-slug="'+c.slug+'"]'),f=e.siblings('[data-slug="'+c.slug+'"]')),b.updates.isValidResponse(c,"delete")&&(b.updates.maybeHandleCredentialError(c,"delete-plugin")||(f.length?(f.find(".notice-error").remove(),f.find(".plugin-update").append(h)):e.addClass("update").after(g({slug:c.slug,plugin:c.plugin||c.slug,colspan:a("#bulk-action-form").find("thead th:not(.hidden), thead td").length,content:h})),d.trigger("wp-plugin-delete-error",c)))},b.updates.updateTheme=function(c){var e;return c=_.extend({success:b.updates.updateThemeSuccess,error:b.updates.updateThemeError},c),"themes-network"===pagenow?e=a('[data-slug="'+c.slug+'"]').find(".update-message").removeClass("notice-error").addClass("updating-message notice-warning").find("p"):(e=a("#update-theme").closest(".notice").removeClass("notice-large"),e.find("h3").remove(),e=e.add(a('[data-slug="'+c.slug+'"]').find(".update-message")),e=e.addClass("updating-message").find("p")),e.html()!==b.updates.l10n.updating&&e.data("originaltext",e.html()),b.a11y.speak(b.updates.l10n.updatingMsg,"polite"),e.text(b.updates.l10n.updating),d.trigger("wp-theme-updating",c),b.updates.ajax("update-theme",c)},b.updates.updateThemeSuccess=function(c){var e,f,g=a("body.modal-open").length,h=a('[data-slug="'+c.slug+'"]'),i={className:"updated-message notice-success notice-alt",message:b.updates.l10n.updated};"themes-network"===pagenow?(e=h.find(".update-message"),f=h.find(".theme-version-author-uri").html().replace(c.oldVersion,c.newVersion),h.find(".theme-version-author-uri").html(f)):(e=a(".theme-info .notice").add(h.find(".update-message")),g?a(".load-customize:visible").focus():h.find(".load-customize").focus()),b.updates.addAdminNotice(_.extend({selector:e},i)),b.a11y.speak(b.updates.l10n.updatedMsg,"polite"),b.updates.decrementCount("theme"),d.trigger("wp-theme-update-success",c),g&&a(".theme-info .theme-author").after(b.updates.adminNotice(i))},b.updates.updateThemeError=function(c){var e,f=a('[data-slug="'+c.slug+'"]'),g=b.updates.l10n.updateFailed.replace("%s",c.errorMessage);b.updates.isValidResponse(c,"update")&&(b.updates.maybeHandleCredentialError(c,"update-theme")||("themes-network"===pagenow?e=f.find(".update-message "):(e=a(".theme-info .notice").add(f.find(".notice")),a("body.modal-open").length?a(".load-customize:visible").focus():f.find(".load-customize").focus()),b.updates.addAdminNotice({selector:e,className:"update-message notice-error notice-alt is-dismissible",message:g}),b.a11y.speak(g,"polite"),d.trigger("wp-theme-update-error",c)))},b.updates.installTheme=function(c){var e=a('.theme-install[data-slug="'+c.slug+'"]');return c=_.extend({success:b.updates.installThemeSuccess,error:b.updates.installThemeError},c),e.addClass("updating-message"),e.parents(".theme").addClass("focus"),e.html()!==b.updates.l10n.installing&&e.data("originaltext",e.html()),e.text(b.updates.l10n.installing).attr("aria-label",b.updates.l10n.themeInstallingLabel.replace("%s",e.data("name"))),b.a11y.speak(b.updates.l10n.installingMsg,"polite"),a('.install-theme-info, [data-slug="'+c.slug+'"]').removeClass("theme-install-failed").find(".notice.notice-error").remove(),d.trigger("wp-theme-installing",c),b.updates.ajax("install-theme",c)},b.updates.installThemeSuccess=function(c){var e,f=a(".wp-full-overlay-header, [data-slug="+c.slug+"]");d.trigger("wp-theme-install-success",c),e=f.find(".button-primary").removeClass("updating-message").addClass("updated-message disabled").attr("aria-label",b.updates.l10n.themeInstalledLabel.replace("%s",c.themeName)).text(b.updates.l10n.installed),b.a11y.speak(b.updates.l10n.installedMsg,"polite"),setTimeout(function(){c.activateUrl&&e.attr("href",c.activateUrl).removeClass("theme-install updated-message disabled").addClass("activate").attr("aria-label",b.updates.l10n.activateThemeLabel.replace("%s",c.themeName)).text(b.updates.l10n.activateTheme),c.customizeUrl&&e.siblings(".preview").replaceWith(function(){return a("<a>").attr("href",c.customizeUrl).addClass("button button-secondary load-customize").text(b.updates.l10n.livePreview)})},1e3)},b.updates.installThemeError=function(c){var e,f,g=b.updates.l10n.installFailed.replace("%s",c.errorMessage),h=b.updates.adminNotice({className:"update-message notice-error notice-alt",message:g});b.updates.isValidResponse(c,"install")&&(b.updates.maybeHandleCredentialError(c,"install-theme")||(d.find("body").hasClass("full-overlay-active")?(f=a('.theme-install[data-slug="'+c.slug+'"]'),e=a(".install-theme-info").prepend(h)):(e=a('[data-slug="'+c.slug+'"]').removeClass("focus").addClass("theme-install-failed").append(h),f=e.find(".theme-install")),f.removeClass("updating-message").attr("aria-label",b.updates.l10n.themeInstallFailedLabel.replace("%s",f.data("name"))).text(b.updates.l10n.installFailedShort),b.a11y.speak(g,"assertive"),d.trigger("wp-theme-install-error",c)))},b.updates.deleteTheme=function(c){var e;return"themes"===pagenow?e=a(".theme-actions .delete-theme"):"themes-network"===pagenow&&(e=a('[data-slug="'+c.slug+'"]').find(".row-actions a.delete")),c=_.extend({success:b.updates.deleteThemeSuccess,error:b.updates.deleteThemeError},c),e&&e.html()!==b.updates.l10n.deleting&&e.data("originaltext",e.html()).text(b.updates.l10n.deleting),b.a11y.speak(b.updates.l10n.deleting,"polite"),a(".theme-info .update-message").remove(),d.trigger("wp-theme-deleting",c),b.updates.ajax("delete-theme",c)},b.updates.deleteThemeSuccess=function(e){var f=a('[data-slug="'+e.slug+'"]');"themes-network"===pagenow&&f.css({backgroundColor:"#faafaa"}).fadeOut(350,function(){var d=a(".subsubsub"),f=a(this),g=c.totals,h=b.template("item-deleted-row");f.hasClass("plugin-update-tr")||f.after(h({slug:e.slug,colspan:a("#bulk-action-form").find("thead th:not(.hidden), thead td").length,name:f.find(".theme-title strong").text()})),f.remove(),f.hasClass("update")&&(g.upgrade--,b.updates.decrementCount("theme")),f.hasClass("inactive")&&(g.disabled--,g.disabled?d.find(".disabled .count").text("("+g.disabled+")"):d.find(".disabled").remove()),d.find(".all .count").text("("+--g.all+")")}),b.a11y.speak(b.updates.l10n.deleted,"polite"),d.trigger("wp-theme-delete-success",e)},b.updates.deleteThemeError=function(c){var e=a('tr.inactive[data-slug="'+c.slug+'"]'),f=a(".theme-actions .delete-theme"),g=b.template("item-update-row"),h=e.siblings("#"+c.slug+"-update"),i=b.updates.l10n.deleteFailed.replace("%s",c.errorMessage),j=b.updates.adminNotice({className:"update-message notice-error notice-alt",message:i});b.updates.maybeHandleCredentialError(c,"delete-theme")||("themes-network"===pagenow?h.length?(h.find(".notice-error").remove(),h.find(".plugin-update").append(j)):e.addClass("update").after(g({slug:c.slug,colspan:a("#bulk-action-form").find("thead th:not(.hidden), thead td").length,content:j})):a(".theme-info .theme-description").before(j),f.html(f.data("originaltext")),b.a11y.speak(i,"assertive"),d.trigger("wp-theme-delete-error",c))},b.updates._addCallbacks=function(a,c){return"import"===pagenow&&"install-plugin"===c&&(a.success=b.updates.installImporterSuccess,a.error=b.updates.installImporterError),a},b.updates.queueChecker=function(){var a;if(!b.updates.ajaxLocked&&b.updates.queue.length)switch(a=b.updates.queue.shift(),a.action){case"install-plugin":b.updates.installPlugin(a.data);break;case"update-plugin":b.updates.updatePlugin(a.data);break;case"delete-plugin":b.updates.deletePlugin(a.data);break;case"install-theme":b.updates.installTheme(a.data);break;case"update-theme":b.updates.updateTheme(a.data);break;case"delete-theme":b.updates.deleteTheme(a.data)}},b.updates.requestFilesystemCredentials=function(c){!1===b.updates.filesystemCredentials.available&&(c&&!b.updates.$elToReturnFocusToFromCredentialsModal&&(b.updates.$elToReturnFocusToFromCredentialsModal=a(c.target)),b.updates.ajaxLocked=!0,b.updates.requestForCredentialsModalOpen())},b.updates.maybeRequestFilesystemCredentials=function(a){b.updates.shouldRequestFilesystemCredentials&&!b.updates.ajaxLocked&&b.updates.requestFilesystemCredentials(a)},b.updates.keydown=function(c){27===c.keyCode?b.updates.requestForCredentialsModalCancel():9===c.keyCode&&("upgrade"!==c.target.id||c.shiftKey?"hostname"===c.target.id&&c.shiftKey&&(a("#upgrade").focus(),c.preventDefault()):(a("#hostname").focus(),c.preventDefault()))},b.updates.requestForCredentialsModalOpen=function(){var c=a("#request-filesystem-credentials-dialog");a("body").addClass("modal-open"),c.show(),c.find("input:enabled:first").focus(),c.on("keydown",b.updates.keydown)},b.updates.requestForCredentialsModalClose=function(){a("#request-filesystem-credentials-dialog").hide(),a("body").removeClass("modal-open"),b.updates.$elToReturnFocusToFromCredentialsModal&&b.updates.$elToReturnFocusToFromCredentialsModal.focus()},b.updates.requestForCredentialsModalCancel=function(){(b.updates.ajaxLocked||b.updates.queue.length)&&(_.each(b.updates.queue,function(a){d.trigger("credential-modal-cancel",a)}),b.updates.ajaxLocked=!1,b.updates.queue=[],b.updates.requestForCredentialsModalClose())},b.updates.showErrorInCredentialsForm=function(b){var c=a("#request-filesystem-credentials-form");c.find(".notice").remove(),c.find("#request-filesystem-credentials-title").after('<div class="notice notice-alt notice-error"><p>'+b+"</p></div>")},b.updates.credentialError=function(a,c){a=b.updates._addCallbacks(a,c),b.updates.queue.unshift({action:c,data:a}),b.updates.filesystemCredentials.available=!1,b.updates.showErrorInCredentialsForm(a.errorMessage),b.updates.requestFilesystemCredentials()},b.updates.maybeHandleCredentialError=function(a,c){return!(!b.updates.shouldRequestFilesystemCredentials||!a.errorCode||"unable_to_connect_to_filesystem"!==a.errorCode)&&(b.updates.credentialError(a,c),!0)},b.updates.isValidResponse=function(c,d){var e,f=b.updates.l10n.unknownError;if(_.isObject(c)&&!_.isFunction(c.always))return!0;switch(_.isString(c)&&"-1"===c?f=b.updates.l10n.nonceError:_.isString(c)?f=c:"undefined"!=typeof c.readyState&&0===c.readyState?f=b.updates.l10n.connectionError:_.isString(c.responseText)&&""!==c.responseText?f=c.responseText:_.isString(c.statusText)&&(f=c.statusText),d){case"update":e=b.updates.l10n.updateFailed;break;case"install":e=b.updates.l10n.installFailed;break;case"delete":e=b.updates.l10n.deleteFailed}return f=f.replace(/<[\/a-z][^<>]*>/gi,""),e=e.replace("%s",f),b.updates.addAdminNotice({id:"unknown_error",className:"notice-error is-dismissible",message:_.escape(e)}),b.updates.ajaxLocked=!1,b.updates.queue=[],a(".button.updating-message").removeClass("updating-message").removeAttr("aria-label").prop("disabled",!0).text(b.updates.l10n.updateFailedShort),a(".updating-message:not(.button):not(.thickbox)").removeClass("updating-message notice-warning").addClass("notice-error").find("p").removeAttr("aria-label").text(e),b.a11y.speak(e,"assertive"),!1},b.updates.beforeunload=function(){if(b.updates.ajaxLocked)return b.updates.l10n.beforeunload},a(function(){var c=a("#plugin-filter"),e=a("#bulk-action-form"),f=a("#request-filesystem-credentials-dialog"),g=a(".plugins-php .wp-filter-search"),h=a(".plugin-install-php .wp-filter-search");b.updates.shouldRequestFilesystemCredentials=f.length>0,f.on("submit","form",function(c){c.preventDefault(),b.updates.filesystemCredentials.ftp.hostname=a("#hostname").val(),b.updates.filesystemCredentials.ftp.username=a("#username").val(),b.updates.filesystemCredentials.ftp.password=a("#password").val(),b.updates.filesystemCredentials.ftp.connectionType=a('input[name="connection_type"]:checked').val(),b.updates.filesystemCredentials.ssh.publicKey=a("#public_key").val(),b.updates.filesystemCredentials.ssh.privateKey=a("#private_key").val(),b.updates.filesystemCredentials.available=!0,b.updates.ajaxLocked=!1,b.updates.queueChecker(),b.updates.requestForCredentialsModalClose()}),f.on("click",'[data-js-action="close"], .notification-dialog-background',b.updates.requestForCredentialsModalCancel),f.on("change",'input[name="connection_type"]',function(){a("#ssh-keys").toggleClass("hidden","ssh"!==a(this).val())}).change(),d.on("credential-modal-cancel",function(c,d){var e,f,g=a(".updating-message");"import"===pagenow?g.removeClass("updating-message"):"plugins"===pagenow||"plugins-network"===pagenow?"update-plugin"===d.action?e=a('tr[data-plugin="'+d.data.plugin+'"]').find(".update-message"):"delete-plugin"===d.action&&(e=a('[data-plugin="'+d.data.plugin+'"]').find(".row-actions a.delete")):"themes"===pagenow||"themes-network"===pagenow?"update-theme"===d.action?e=a('[data-slug="'+d.data.slug+'"]').find(".update-message"):"delete-theme"===d.action&&"themes-network"===pagenow?e=a('[data-slug="'+d.data.slug+'"]').find(".row-actions a.delete"):"delete-theme"===d.action&&"themes"===pagenow&&(e=a(".theme-actions .delete-theme")):e=g,e&&e.hasClass("updating-message")&&(f=e.data("originaltext"),"undefined"==typeof f&&(f=a("<p>").html(e.find("p").data("originaltext"))),e.removeClass("updating-message").html(f),"plugin-install"!==pagenow&&"plugin-install-network"!==pagenow||("update-plugin"===d.action?e.attr("aria-label",b.updates.l10n.updateNowLabel.replace("%s",e.data("name"))):"install-plugin"===d.action&&e.attr("aria-label",b.updates.l10n.installNowLabel.replace("%s",e.data("name"))))),b.a11y.speak(b.updates.l10n.updateCancel,"polite")}),e.on("click","[data-plugin] .update-link",function(c){var d=a(c.target),e=d.parents("tr");c.preventDefault(),d.hasClass("updating-message")||d.hasClass("button-disabled")||(b.updates.maybeRequestFilesystemCredentials(c),b.updates.$elToReturnFocusToFromCredentialsModal=e.find(".check-column input"),b.updates.updatePlugin({plugin:e.data("plugin"),slug:e.data("slug")}))}),c.on("click",".update-now",function(c){var d=a(c.target);c.preventDefault(),d.hasClass("updating-message")||d.hasClass("button-disabled")||(b.updates.maybeRequestFilesystemCredentials(c),b.updates.updatePlugin({plugin:d.data("plugin"),slug:d.data("slug")}))}),c.on("click",".install-now",function(c){var e=a(c.target);c.preventDefault(),e.hasClass("updating-message")||e.hasClass("button-disabled")||(b.updates.shouldRequestFilesystemCredentials&&!b.updates.ajaxLocked&&(b.updates.requestFilesystemCredentials(c),d.on("credential-modal-cancel",function(){var c=a(".install-now.updating-message");c.removeClass("updating-message").text(b.updates.l10n.installNow),b.a11y.speak(b.updates.l10n.updateCancel,"polite")})),b.updates.installPlugin({slug:e.data("slug")}))}),d.on("click",".importer-item .install-now",function(c){var e=a(c.target),f=a(this).data("name");c.preventDefault(),e.hasClass("updating-message")||(b.updates.shouldRequestFilesystemCredentials&&!b.updates.ajaxLocked&&(b.updates.requestFilesystemCredentials(c),d.on("credential-modal-cancel",function(){e.removeClass("updating-message").text(b.updates.l10n.installNow).attr("aria-label",b.updates.l10n.installNowLabel.replace("%s",f)),b.a11y.speak(b.updates.l10n.updateCancel,"polite")})),b.updates.installPlugin({slug:e.data("slug"),success:b.updates.installImporterSuccess,error:b.updates.installImporterError}))}),e.on("click","[data-plugin] a.delete",function(c){var d=a(c.target).parents("tr");c.preventDefault(),window.confirm(b.updates.l10n.aysDeleteUninstall.replace("%s",d.find(".plugin-title strong").text()))&&(b.updates.maybeRequestFilesystemCredentials(c),b.updates.deletePlugin({plugin:d.data("plugin"),slug:d.data("slug")}))}),d.on("click",".themes-php.network-admin .update-link",function(c){var d=a(c.target),e=d.parents("tr");c.preventDefault(),d.hasClass("updating-message")||d.hasClass("button-disabled")||(b.updates.maybeRequestFilesystemCredentials(c),b.updates.$elToReturnFocusToFromCredentialsModal=e.find(".check-column input"),b.updates.updateTheme({slug:e.data("slug")}))}),d.on("click",".themes-php.network-admin a.delete",function(c){var d=a(c.target).parents("tr");c.preventDefault(),window.confirm(b.updates.l10n.aysDelete.replace("%s",d.find(".theme-title strong").text()))&&(b.updates.maybeRequestFilesystemCredentials(c),b.updates.deleteTheme({slug:d.data("slug")}))}),e.on("click",'[type="submit"]',function(c){var f,g,h=a(c.target).siblings("select").val(),i=e.find('input[name="checked[]"]:checked'),j=0,k=0,l=[];switch(pagenow){case"plugins":case"plugins-network":f="plugin";break;case"themes-network":f="theme";break;default:return}if(!i.length)return c.preventDefault(),a("html, body").animate({scrollTop:0}),b.updates.addAdminNotice({id:"no-items-selected",className:"notice-error is-dismissible",message:b.updates.l10n.noItemsSelected});switch(h){case"update-selected":g=h.replace("selected",f);break;case"delete-selected":if(!window.confirm("plugin"===f?b.updates.l10n.aysBulkDelete:b.updates.l10n.aysBulkDeleteThemes))return void c.preventDefault();g=h.replace("selected",f);break;default:return}b.updates.maybeRequestFilesystemCredentials(c),c.preventDefault(),e.find('.manage-column [type="checkbox"]').prop("checked",!1),d.trigger("wp-"+f+"-bulk-"+h,i),i.each(function(c,d){var e=a(d),f=e.parents("tr");return"update-selected"!==h||f.hasClass("update")&&!f.find("notice-error").length?void b.updates.queue.push({action:g,data:{plugin:f.data("plugin"),slug:f.data("slug")}}):void e.prop("checked",!1)}),d.on("wp-plugin-update-success wp-plugin-update-error wp-theme-update-success wp-theme-update-error",function(c,d){var e,f,g=a('[data-slug="'+d.slug+'"]');"wp-"+d.update+"-update-success"===c.type?j++:(f=d.pluginName?d.pluginName:g.find(".column-primary strong").text(),k++,l.push(f+": "+d.errorMessage)),g.find('input[name="checked[]"]:checked').prop("checked",!1),b.updates.adminNotice=b.template("wp-bulk-updates-admin-notice"),b.updates.addAdminNotice({id:"bulk-action-notice",className:"bulk-action-notice",successes:j,errors:k,errorMessages:l,type:d.update}),e=a("#bulk-action-notice").on("click","button",function(){a(this).toggleClass("bulk-action-errors-collapsed").attr("aria-expanded",!a(this).hasClass("bulk-action-errors-collapsed")),e.find(".bulk-action-errors").toggleClass("hidden")}),k>0&&!b.updates.queue.length&&a("html, body").animate({scrollTop:0})}),d.on("wp-updates-notice-added",function(){b.updates.adminNotice=b.template("wp-updates-admin-notice")}),b.updates.queueChecker()}),h.length&&h.attr("aria-describedby","live-search-desc"),h.on("keyup input",_.debounce(function(d,e){var f,g,h=a(".plugin-install-search");f={_ajax_nonce:b.updates.ajaxNonce,s:d.target.value,tab:"search",type:a("#typeselector").val(),pagenow:pagenow},g=location.href.split("?")[0]+"?"+a.param(_.omit(f,["_ajax_nonce","pagenow"])),"keyup"===d.type&&27===d.which&&(d.target.value=""),b.updates.searchTerm===f.s&&"typechange"!==e||(c.empty(),b.updates.searchTerm=f.s,window.history&&window.history.replaceState&&window.history.replaceState(null,"",g),h.length||(h=a('<li class="plugin-install-search" />').append(a("<a />",{"class":"current",href:g,text:b.updates.l10n.searchResultsLabel})),a(".wp-filter .filter-links .current").removeClass("current").parents(".filter-links").prepend(h),c.prev("p").remove(),a(".plugins-popular-tags-wrapper").remove()),"undefined"!=typeof b.updates.searchRequest&&b.updates.searchRequest.abort(),a("body").addClass("loading-content"),b.updates.searchRequest=b.ajax.post("search-install-plugins",f).done(function(d){a("body").removeClass("loading-content"),c.append(d.items),delete b.updates.searchRequest,0===d.count?b.a11y.speak(b.updates.l10n.noPluginsFound):b.a11y.speak(b.updates.l10n.pluginsFound.replace("%d",d.count))}))},500)),g.length&&g.attr("aria-describedby","live-search-desc"),g.on("keyup input",_.debounce(function(c){var d={_ajax_nonce:b.updates.ajaxNonce,s:c.target.value,pagenow:pagenow};"keyup"===c.type&&27===c.which&&(c.target.value=""),b.updates.searchTerm!==d.s&&(b.updates.searchTerm=d.s,window.history&&window.history.replaceState&&window.history.replaceState(null,"",location.href.split("?")[0]+"?s="+d.s),"undefined"!=typeof b.updates.searchRequest&&b.updates.searchRequest.abort(),e.empty(),a("body").addClass("loading-content"),b.updates.searchRequest=b.ajax.post("search-plugins",d).done(function(c){var f=a("<span />").addClass("subtitle").html(b.updates.l10n.searchResults.replace("%s",_.escape(d.s))),g=a(".wrap .subtitle");d.s.length?g.length?g.replaceWith(f):a(".wrap h1").append(f):g.remove(),a("body").removeClass("loading-content"),e.append(c.items),delete b.updates.searchRequest,0===c.count?b.a11y.speak(b.updates.l10n.noPluginsFound):b.a11y.speak(b.updates.l10n.pluginsFound.replace("%d",c.count))}))},500)),d.on("submit",".search-plugins",function(b){b.preventDefault(),a("input.wp-filter-search").trigger("input")}),a("#typeselector").on("change",function(){var b=a('input[name="s"]');b.val().length&&b.trigger("input","typechange")}),a("#plugin_update_from_iframe").on("click",function(b){
-var c,d=window.parent===window?null:window.parent;a.support.postMessage=!!window.postMessage,!1!==a.support.postMessage&&null!==d&&-1===window.parent.location.pathname.indexOf("update-core.php")&&(b.preventDefault(),c={action:"update-plugin",data:{plugin:a(this).data("plugin"),slug:a(this).data("slug")}},d.postMessage(JSON.stringify(c),window.location.origin))}),a("#plugin_install_from_iframe").on("click",function(b){var c,d=window.parent===window?null:window.parent;a.support.postMessage=!!window.postMessage,!1!==a.support.postMessage&&null!==d&&-1===window.parent.location.pathname.indexOf("index.php")&&(b.preventDefault(),c={action:"install-plugin",data:{slug:a(this).data("slug")}},d.postMessage(JSON.stringify(c),window.location.origin))}),a(window).on("message",function(c){var d,e=c.originalEvent,f=document.location.protocol+"//"+document.location.hostname;if(e.origin===f){try{d=a.parseJSON(e.data)}catch(g){return}if("undefined"!=typeof d.action)switch(d.action){case"decrementUpdateCount":b.updates.decrementCount(d.upgradeType);break;case"install-plugin":case"update-plugin":window.tb_remove(),d.data=b.updates._addCallbacks(d.data,d.action),b.updates.queue.push(d),b.updates.queueChecker()}}}),a(window).on("beforeunload",b.updates.beforeunload)})}(jQuery,window.wp,_.extend(window._wpUpdatesSettings,window._wpUpdatesItemCounts||{}));
\ No newline at end of file
+!function(a,b,c){var d=a(document);b=b||{},b.updates={},b.updates.ajaxNonce=c.ajax_nonce,b.updates.l10n=c.l10n,b.updates.searchTerm="",b.updates.shouldRequestFilesystemCredentials=!1,b.updates.filesystemCredentials={ftp:{host:"",username:"",password:"",connectionType:""},ssh:{publicKey:"",privateKey:""},available:!1},b.updates.ajaxLocked=!1,b.updates.adminNotice=b.template("wp-updates-admin-notice"),b.updates.queue=[],b.updates.$elToReturnFocusToFromCredentialsModal=void 0,b.updates.addAdminNotice=function(c){var e,f=a(c.selector);delete c.selector,e=b.updates.adminNotice(c),f.length||(f=a("#"+c.id)),f.length?f.replaceWith(e):a(".wrap").find("> h1").after(e),d.trigger("wp-updates-notice-added")},b.updates.ajax=function(c,d){var e={};return b.updates.ajaxLocked?(b.updates.queue.push({action:c,data:d}),a.Deferred()):(b.updates.ajaxLocked=!0,d.success&&(e.success=d.success,delete d.success),d.error&&(e.error=d.error,delete d.error),e.data=_.extend(d,{action:c,_ajax_nonce:b.updates.ajaxNonce,username:b.updates.filesystemCredentials.ftp.username,password:b.updates.filesystemCredentials.ftp.password,hostname:b.updates.filesystemCredentials.ftp.hostname,connection_type:b.updates.filesystemCredentials.ftp.connectionType,public_key:b.updates.filesystemCredentials.ssh.publicKey,private_key:b.updates.filesystemCredentials.ssh.privateKey}),b.ajax.send(e).always(b.updates.ajaxAlways))},b.updates.ajaxAlways=function(c){c.errorCode&&"unable_to_connect_to_filesystem"===c.errorCode||(b.updates.ajaxLocked=!1,b.updates.queueChecker()),"undefined"!=typeof c.debug&&window.console&&window.console.log&&_.map(c.debug,function(b){window.console.log(a("<p />").html(b).text())})},b.updates.refreshCount=function(){var b,d=a("#wp-admin-bar-updates"),e=a('a[href="update-core.php"] .update-plugins'),f=a('a[href="plugins.php"] .update-plugins'),g=a('a[href="themes.php"] .update-plugins');d.find(".ab-item").removeAttr("title"),d.find(".ab-label").text(c.totals.counts.total),0===c.totals.counts.total&&d.find(".ab-label").parents("li").remove(),e.each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+c.totals.counts.total)}),c.totals.counts.total>0?e.find(".update-count").text(c.totals.counts.total):e.remove(),f.each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+c.totals.counts.plugins)}),c.totals.counts.total>0?f.find(".plugin-count").text(c.totals.counts.plugins):f.remove(),g.each(function(a,b){b.className=b.className.replace(/count-\d+/,"count-"+c.totals.counts.themes)}),c.totals.counts.total>0?g.find(".theme-count").text(c.totals.counts.themes):g.remove(),"plugins"===pagenow||"plugins-network"===pagenow?b=c.totals.counts.plugins:"themes"!==pagenow&&"themes-network"!==pagenow||(b=c.totals.counts.themes),b>0?a(".subsubsub .upgrade .count").text("("+b+")"):a(".subsubsub .upgrade").remove()},b.updates.decrementCount=function(a){c.totals.counts.total=Math.max(--c.totals.counts.total,0),"plugin"===a?c.totals.counts.plugins=Math.max(--c.totals.counts.plugins,0):"theme"===a&&(c.totals.counts.themes=Math.max(--c.totals.counts.themes,0)),b.updates.refreshCount(a)},b.updates.updatePlugin=function(c){var e,f,g,h;return c=_.extend({success:b.updates.updatePluginSuccess,error:b.updates.updatePluginError},c),"plugins"===pagenow||"plugins-network"===pagenow?(e=a('tr[data-plugin="'+c.plugin+'"]'),g=e.find(".update-message").removeClass("notice-error").addClass("updating-message notice-warning").find("p"),h=b.updates.l10n.updatingLabel.replace("%s",e.find(".plugin-title strong").text())):"plugin-install"!==pagenow&&"plugin-install-network"!==pagenow||(f=a(".plugin-card-"+c.slug),g=f.find(".update-now").addClass("updating-message"),h=b.updates.l10n.updatingLabel.replace("%s",g.data("name")),f.removeClass("plugin-card-update-failed").find(".notice.notice-error").remove()),g.html()!==b.updates.l10n.updating&&g.data("originaltext",g.html()),g.attr("aria-label",h).text(b.updates.l10n.updating),d.trigger("wp-plugin-updating",c),b.updates.ajax("update-plugin",c)},b.updates.updatePluginSuccess=function(c){var e,f,g;"plugins"===pagenow||"plugins-network"===pagenow?(e=a('tr[data-plugin="'+c.plugin+'"]').removeClass("update").addClass("updated"),f=e.find(".update-message").removeClass("updating-message notice-warning").addClass("updated-message notice-success").find("p"),g=e.find(".plugin-version-author-uri").html().replace(c.oldVersion,c.newVersion),e.find(".plugin-version-author-uri").html(g)):"plugin-install"!==pagenow&&"plugin-install-network"!==pagenow||(f=a(".plugin-card-"+c.slug).find(".update-now").removeClass("updating-message").addClass("button-disabled updated-message")),f.attr("aria-label",b.updates.l10n.updatedLabel.replace("%s",c.pluginName)).text(b.updates.l10n.updated),b.a11y.speak(b.updates.l10n.updatedMsg,"polite"),b.updates.decrementCount("plugin"),d.trigger("wp-plugin-update-success",c)},b.updates.updatePluginError=function(c){var e,f,g;b.updates.isValidResponse(c,"update")&&(b.updates.maybeHandleCredentialError(c,"update-plugin")||(g=b.updates.l10n.updateFailed.replace("%s",c.errorMessage),"plugins"===pagenow||"plugins-network"===pagenow?(f=c.plugin?a('tr[data-plugin="'+c.plugin+'"]').find(".update-message"):a('tr[data-slug="'+c.slug+'"]').find(".update-message"),f.removeClass("updating-message notice-warning").addClass("notice-error").find("p").html(g),c.pluginName?f.find("p").attr("aria-label",b.updates.l10n.updateFailedLabel.replace("%s",c.pluginName)):f.find("p").removeAttr("aria-label")):"plugin-install"!==pagenow&&"plugin-install-network"!==pagenow||(e=a(".plugin-card-"+c.slug).addClass("plugin-card-update-failed").append(b.updates.adminNotice({className:"update-message notice-error notice-alt is-dismissible",message:g})),e.find(".update-now").text(b.updates.l10n.updateFailedShort).removeClass("updating-message"),c.pluginName?e.find(".update-now").attr("aria-label",b.updates.l10n.updateFailedLabel.replace("%s",c.pluginName)):e.find(".update-now").removeAttr("aria-label"),e.on("click",".notice.is-dismissible .notice-dismiss",function(){setTimeout(function(){e.removeClass("plugin-card-update-failed").find(".column-name a").focus(),e.find(".update-now").attr("aria-label",!1).text(b.updates.l10n.updateNow)},200)})),b.a11y.speak(g,"assertive"),d.trigger("wp-plugin-update-error",c)))},b.updates.installPlugin=function(c){var e=a(".plugin-card-"+c.slug),f=e.find(".install-now");return c=_.extend({success:b.updates.installPluginSuccess,error:b.updates.installPluginError},c),"import"===pagenow&&(f=a('[data-slug="'+c.slug+'"]')),f.html()!==b.updates.l10n.installing&&f.data("originaltext",f.html()),f.addClass("updating-message").attr("aria-label",b.updates.l10n.pluginInstallingLabel.replace("%s",f.data("name"))).text(b.updates.l10n.installing),b.a11y.speak(b.updates.l10n.installingMsg,"polite"),e.removeClass("plugin-card-install-failed").find(".notice.notice-error").remove(),d.trigger("wp-plugin-installing",c),b.updates.ajax("install-plugin",c)},b.updates.installPluginSuccess=function(c){var e=a(".plugin-card-"+c.slug).find(".install-now");e.removeClass("updating-message").addClass("updated-message installed button-disabled").attr("aria-label",b.updates.l10n.pluginInstalledLabel.replace("%s",c.pluginName)).text(b.updates.l10n.installed),b.a11y.speak(b.updates.l10n.installedMsg,"polite"),d.trigger("wp-plugin-install-success",c),c.activateUrl&&setTimeout(function(){e.removeClass("install-now installed button-disabled updated-message").addClass("activate-now button-primary").attr("href",c.activateUrl).attr("aria-label",b.updates.l10n.activatePluginLabel.replace("%s",c.pluginName)).text(b.updates.l10n.activatePlugin)},1e3)},b.updates.installPluginError=function(c){var e,f=a(".plugin-card-"+c.slug),g=f.find(".install-now");b.updates.isValidResponse(c,"install")&&(b.updates.maybeHandleCredentialError(c,"install-plugin")||(e=b.updates.l10n.installFailed.replace("%s",c.errorMessage),f.addClass("plugin-card-update-failed").append('<div class="notice notice-error notice-alt is-dismissible"><p>'+e+"</p></div>"),f.on("click",".notice.is-dismissible .notice-dismiss",function(){setTimeout(function(){f.removeClass("plugin-card-update-failed").find(".column-name a").focus()},200)}),g.removeClass("updating-message").addClass("button-disabled").attr("aria-label",b.updates.l10n.pluginInstallFailedLabel.replace("%s",g.data("name"))).text(b.updates.l10n.installFailedShort),b.a11y.speak(e,"assertive"),d.trigger("wp-plugin-install-error",c)))},b.updates.installImporterSuccess=function(c){b.updates.addAdminNotice({id:"install-success",className:"notice-success is-dismissible",message:b.updates.l10n.importerInstalledMsg.replace("%s",c.activateUrl+"&from=import")}),a('[data-slug="'+c.slug+'"]').removeClass("install-now updating-message").addClass("activate-now").attr({href:c.activateUrl+"&from=import","aria-label":b.updates.l10n.activateImporterLabel.replace("%s",c.pluginName)}).text(b.updates.l10n.activateImporter),b.a11y.speak(b.updates.l10n.installedMsg,"polite"),d.trigger("wp-importer-install-success",c)},b.updates.installImporterError=function(c){var e=b.updates.l10n.installFailed.replace("%s",c.errorMessage),f=a('[data-slug="'+c.slug+'"]'),g=f.data("name");b.updates.isValidResponse(c,"install")&&(b.updates.maybeHandleCredentialError(c,"install-plugin")||(b.updates.addAdminNotice({id:c.errorCode,className:"notice-error is-dismissible",message:e}),f.removeClass("updating-message").text(b.updates.l10n.installNow).attr("aria-label",b.updates.l10n.installNowLabel.replace("%s",g)),b.a11y.speak(e,"assertive"),d.trigger("wp-importer-install-error",c)))},b.updates.deletePlugin=function(c){var e=a('[data-plugin="'+c.plugin+'"]').find(".row-actions a.delete");return c=_.extend({success:b.updates.deletePluginSuccess,error:b.updates.deletePluginError},c),e.html()!==b.updates.l10n.deleting&&e.data("originaltext",e.html()).text(b.updates.l10n.deleting),b.a11y.speak(b.updates.l10n.deleting,"polite"),d.trigger("wp-plugin-deleting",c),b.updates.ajax("delete-plugin",c)},b.updates.deletePluginSuccess=function(e){a('[data-plugin="'+e.plugin+'"]').css({backgroundColor:"#faafaa"}).fadeOut(350,function(){var d=a("#bulk-action-form"),f=a(".subsubsub"),g=a(this),h=d.find("thead th:not(.hidden), thead td").length,i=b.template("item-deleted-row"),j=c.plugins;g.hasClass("plugin-update-tr")||g.after(i({slug:e.slug,plugin:e.plugin,colspan:h,name:e.pluginName})),g.remove(),-1!==_.indexOf(j.upgrade,e.plugin)&&(j.upgrade=_.without(j.upgrade,e.plugin),b.updates.decrementCount("plugin")),-1!==_.indexOf(j.inactive,e.plugin)&&(j.inactive=_.without(j.inactive,e.plugin),j.inactive.length?f.find(".inactive .count").text("("+j.inactive.length+")"):f.find(".inactive").remove()),-1!==_.indexOf(j.active,e.plugin)&&(j.active=_.without(j.active,e.plugin),j.active.length?f.find(".active .count").text("("+j.active.length+")"):f.find(".active").remove()),-1!==_.indexOf(j.recently_activated,e.plugin)&&(j.recently_activated=_.without(j.recently_activated,e.plugin),j.recently_activated.length?f.find(".recently_activated .count").text("("+j.recently_activated.length+")"):f.find(".recently_activated").remove()),j.all=_.without(j.all,e.plugin),j.all.length?f.find(".all .count").text("("+j.all.length+")"):(d.find(".tablenav").css({visibility:"hidden"}),f.find(".all").remove(),d.find("tr.no-items").length||d.find("#the-list").append('<tr class="no-items"><td class="colspanchange" colspan="'+h+'">'+b.updates.l10n.noPlugins+"</td></tr>"))}),b.a11y.speak(b.updates.l10n.deleted,"polite"),d.trigger("wp-plugin-delete-success",e)},b.updates.deletePluginError=function(c){var e,f,g=b.template("item-update-row"),h=b.updates.adminNotice({className:"update-message notice-error notice-alt",message:c.errorMessage});c.plugin?(e=a('tr.inactive[data-plugin="'+c.plugin+'"]'),f=e.siblings('[data-plugin="'+c.plugin+'"]')):(e=a('tr.inactive[data-slug="'+c.slug+'"]'),f=e.siblings('[data-slug="'+c.slug+'"]')),b.updates.isValidResponse(c,"delete")&&(b.updates.maybeHandleCredentialError(c,"delete-plugin")||(f.length?(f.find(".notice-error").remove(),f.find(".plugin-update").append(h)):e.addClass("update").after(g({slug:c.slug,plugin:c.plugin||c.slug,colspan:a("#bulk-action-form").find("thead th:not(.hidden), thead td").length,content:h})),d.trigger("wp-plugin-delete-error",c)))},b.updates.updateTheme=function(c){var e;return c=_.extend({success:b.updates.updateThemeSuccess,error:b.updates.updateThemeError},c),"themes-network"===pagenow?e=a('[data-slug="'+c.slug+'"]').find(".update-message").removeClass("notice-error").addClass("updating-message notice-warning").find("p"):(e=a("#update-theme").closest(".notice").removeClass("notice-large"),e.find("h3").remove(),e=e.add(a('[data-slug="'+c.slug+'"]').find(".update-message")),e=e.addClass("updating-message").find("p")),e.html()!==b.updates.l10n.updating&&e.data("originaltext",e.html()),b.a11y.speak(b.updates.l10n.updatingMsg,"polite"),e.text(b.updates.l10n.updating),d.trigger("wp-theme-updating",c),b.updates.ajax("update-theme",c)},b.updates.updateThemeSuccess=function(c){var e,f,g=a("body.modal-open").length,h=a('[data-slug="'+c.slug+'"]'),i={className:"updated-message notice-success notice-alt",message:b.updates.l10n.updated};"themes-network"===pagenow?(e=h.find(".update-message"),f=h.find(".theme-version-author-uri").html().replace(c.oldVersion,c.newVersion),h.find(".theme-version-author-uri").html(f)):(e=a(".theme-info .notice").add(h.find(".update-message")),g?a(".load-customize:visible").focus():h.find(".load-customize").focus()),b.updates.addAdminNotice(_.extend({selector:e},i)),b.a11y.speak(b.updates.l10n.updatedMsg,"polite"),b.updates.decrementCount("theme"),d.trigger("wp-theme-update-success",c),g&&a(".theme-info .theme-author").after(b.updates.adminNotice(i))},b.updates.updateThemeError=function(c){var e,f=a('[data-slug="'+c.slug+'"]'),g=b.updates.l10n.updateFailed.replace("%s",c.errorMessage);b.updates.isValidResponse(c,"update")&&(b.updates.maybeHandleCredentialError(c,"update-theme")||("themes-network"===pagenow?e=f.find(".update-message "):(e=a(".theme-info .notice").add(f.find(".notice")),a("body.modal-open").length?a(".load-customize:visible").focus():f.find(".load-customize").focus()),b.updates.addAdminNotice({selector:e,className:"update-message notice-error notice-alt is-dismissible",message:g}),b.a11y.speak(g,"polite"),d.trigger("wp-theme-update-error",c)))},b.updates.installTheme=function(c){var e=a('.theme-install[data-slug="'+c.slug+'"]');return c=_.extend({success:b.updates.installThemeSuccess,error:b.updates.installThemeError},c),e.addClass("updating-message"),e.parents(".theme").addClass("focus"),e.html()!==b.updates.l10n.installing&&e.data("originaltext",e.html()),e.text(b.updates.l10n.installing).attr("aria-label",b.updates.l10n.themeInstallingLabel.replace("%s",e.data("name"))),b.a11y.speak(b.updates.l10n.installingMsg,"polite"),a('.install-theme-info, [data-slug="'+c.slug+'"]').removeClass("theme-install-failed").find(".notice.notice-error").remove(),d.trigger("wp-theme-installing",c),b.updates.ajax("install-theme",c)},b.updates.installThemeSuccess=function(c){var e,f=a(".wp-full-overlay-header, [data-slug="+c.slug+"]");d.trigger("wp-theme-install-success",c),e=f.find(".button-primary").removeClass("updating-message").addClass("updated-message disabled").attr("aria-label",b.updates.l10n.themeInstalledLabel.replace("%s",c.themeName)).text(b.updates.l10n.installed),b.a11y.speak(b.updates.l10n.installedMsg,"polite"),setTimeout(function(){c.activateUrl&&e.attr("href",c.activateUrl).removeClass("theme-install updated-message disabled").addClass("activate").attr("aria-label",b.updates.l10n.activateThemeLabel.replace("%s",c.themeName)).text(b.updates.l10n.activateTheme),c.customizeUrl&&e.siblings(".preview").replaceWith(function(){return a("<a>").attr("href",c.customizeUrl).addClass("button load-customize").text(b.updates.l10n.livePreview)})},1e3)},b.updates.installThemeError=function(c){var e,f,g=b.updates.l10n.installFailed.replace("%s",c.errorMessage),h=b.updates.adminNotice({className:"update-message notice-error notice-alt",message:g});b.updates.isValidResponse(c,"install")&&(b.updates.maybeHandleCredentialError(c,"install-theme")||(d.find("body").hasClass("full-overlay-active")?(f=a('.theme-install[data-slug="'+c.slug+'"]'),e=a(".install-theme-info").prepend(h)):(e=a('[data-slug="'+c.slug+'"]').removeClass("focus").addClass("theme-install-failed").append(h),f=e.find(".theme-install")),f.removeClass("updating-message").attr("aria-label",b.updates.l10n.themeInstallFailedLabel.replace("%s",f.data("name"))).text(b.updates.l10n.installFailedShort),b.a11y.speak(g,"assertive"),d.trigger("wp-theme-install-error",c)))},b.updates.deleteTheme=function(c){var e;return"themes"===pagenow?e=a(".theme-actions .delete-theme"):"themes-network"===pagenow&&(e=a('[data-slug="'+c.slug+'"]').find(".row-actions a.delete")),c=_.extend({success:b.updates.deleteThemeSuccess,error:b.updates.deleteThemeError},c),e&&e.html()!==b.updates.l10n.deleting&&e.data("originaltext",e.html()).text(b.updates.l10n.deleting),b.a11y.speak(b.updates.l10n.deleting,"polite"),a(".theme-info .update-message").remove(),d.trigger("wp-theme-deleting",c),b.updates.ajax("delete-theme",c)},b.updates.deleteThemeSuccess=function(e){var f=a('[data-slug="'+e.slug+'"]');"themes-network"===pagenow&&f.css({backgroundColor:"#faafaa"}).fadeOut(350,function(){var d=a(".subsubsub"),f=a(this),g=c.themes,h=b.template("item-deleted-row");f.hasClass("plugin-update-tr")||f.after(h({slug:e.slug,colspan:a("#bulk-action-form").find("thead th:not(.hidden), thead td").length,name:f.find(".theme-title strong").text()})),f.remove(),f.hasClass("update")&&(g.upgrade--,b.updates.decrementCount("theme")),f.hasClass("inactive")&&(g.disabled--,g.disabled?d.find(".disabled .count").text("("+g.disabled+")"):d.find(".disabled").remove()),d.find(".all .count").text("("+--g.all+")")}),b.a11y.speak(b.updates.l10n.deleted,"polite"),d.trigger("wp-theme-delete-success",e)},b.updates.deleteThemeError=function(c){var e=a('tr.inactive[data-slug="'+c.slug+'"]'),f=a(".theme-actions .delete-theme"),g=b.template("item-update-row"),h=e.siblings("#"+c.slug+"-update"),i=b.updates.l10n.deleteFailed.replace("%s",c.errorMessage),j=b.updates.adminNotice({className:"update-message notice-error notice-alt",message:i});b.updates.maybeHandleCredentialError(c,"delete-theme")||("themes-network"===pagenow?h.length?(h.find(".notice-error").remove(),h.find(".plugin-update").append(j)):e.addClass("update").after(g({slug:c.slug,colspan:a("#bulk-action-form").find("thead th:not(.hidden), thead td").length,content:j})):a(".theme-info .theme-description").before(j),f.html(f.data("originaltext")),b.a11y.speak(i,"assertive"),d.trigger("wp-theme-delete-error",c))},b.updates._addCallbacks=function(a,c){return"import"===pagenow&&"install-plugin"===c&&(a.success=b.updates.installImporterSuccess,a.error=b.updates.installImporterError),a},b.updates.queueChecker=function(){var a;if(!b.updates.ajaxLocked&&b.updates.queue.length)switch(a=b.updates.queue.shift(),a.action){case"install-plugin":b.updates.installPlugin(a.data);break;case"update-plugin":b.updates.updatePlugin(a.data);break;case"delete-plugin":b.updates.deletePlugin(a.data);break;case"install-theme":b.updates.installTheme(a.data);break;case"update-theme":b.updates.updateTheme(a.data);break;case"delete-theme":b.updates.deleteTheme(a.data)}},b.updates.requestFilesystemCredentials=function(c){!1===b.updates.filesystemCredentials.available&&(c&&!b.updates.$elToReturnFocusToFromCredentialsModal&&(b.updates.$elToReturnFocusToFromCredentialsModal=a(c.target)),b.updates.ajaxLocked=!0,b.updates.requestForCredentialsModalOpen())},b.updates.maybeRequestFilesystemCredentials=function(a){b.updates.shouldRequestFilesystemCredentials&&!b.updates.ajaxLocked&&b.updates.requestFilesystemCredentials(a)},b.updates.keydown=function(c){27===c.keyCode?b.updates.requestForCredentialsModalCancel():9===c.keyCode&&("upgrade"!==c.target.id||c.shiftKey?"hostname"===c.target.id&&c.shiftKey&&(a("#upgrade").focus(),c.preventDefault()):(a("#hostname").focus(),c.preventDefault()))},b.updates.requestForCredentialsModalOpen=function(){var c=a("#request-filesystem-credentials-dialog");a("body").addClass("modal-open"),c.show(),c.find("input:enabled:first").focus(),c.on("keydown",b.updates.keydown)},b.updates.requestForCredentialsModalClose=function(){a("#request-filesystem-credentials-dialog").hide(),a("body").removeClass("modal-open"),b.updates.$elToReturnFocusToFromCredentialsModal&&b.updates.$elToReturnFocusToFromCredentialsModal.focus()},b.updates.requestForCredentialsModalCancel=function(){(b.updates.ajaxLocked||b.updates.queue.length)&&(_.each(b.updates.queue,function(a){d.trigger("credential-modal-cancel",a)}),b.updates.ajaxLocked=!1,b.updates.queue=[],b.updates.requestForCredentialsModalClose())},b.updates.showErrorInCredentialsForm=function(b){var c=a("#request-filesystem-credentials-form");c.find(".notice").remove(),c.find("#request-filesystem-credentials-title").after('<div class="notice notice-alt notice-error"><p>'+b+"</p></div>")},b.updates.credentialError=function(a,c){a=b.updates._addCallbacks(a,c),b.updates.queue.unshift({action:c,data:a}),b.updates.filesystemCredentials.available=!1,b.updates.showErrorInCredentialsForm(a.errorMessage),b.updates.requestFilesystemCredentials()},b.updates.maybeHandleCredentialError=function(a,c){return!(!b.updates.shouldRequestFilesystemCredentials||!a.errorCode||"unable_to_connect_to_filesystem"!==a.errorCode)&&(b.updates.credentialError(a,c),!0)},b.updates.isValidResponse=function(c,d){var e,f=b.updates.l10n.unknownError;if(_.isObject(c)&&!_.isFunction(c.always))return!0;switch(_.isString(c)&&"-1"===c?f=b.updates.l10n.nonceError:_.isString(c)?f=c:"undefined"!=typeof c.readyState&&0===c.readyState?f=b.updates.l10n.connectionError:_.isString(c.responseText)&&""!==c.responseText?f=c.responseText:_.isString(c.statusText)&&(f=c.statusText),d){case"update":e=b.updates.l10n.updateFailed;break;case"install":e=b.updates.l10n.installFailed;break;case"delete":e=b.updates.l10n.deleteFailed}return f=f.replace(/<[\/a-z][^<>]*>/gi,""),e=e.replace("%s",f),b.updates.addAdminNotice({id:"unknown_error",className:"notice-error is-dismissible",message:_.escape(e)}),b.updates.ajaxLocked=!1,b.updates.queue=[],a(".button.updating-message").removeClass("updating-message").removeAttr("aria-label").prop("disabled",!0).text(b.updates.l10n.updateFailedShort),a(".updating-message:not(.button):not(.thickbox)").removeClass("updating-message notice-warning").addClass("notice-error").find("p").removeAttr("aria-label").text(e),b.a11y.speak(e,"assertive"),!1},b.updates.beforeunload=function(){if(b.updates.ajaxLocked)return b.updates.l10n.beforeunload},a(function(){var e=a("#plugin-filter"),f=a("#bulk-action-form"),g=a("#request-filesystem-credentials-dialog"),h=a(".plugins-php .wp-filter-search"),i=a(".plugin-install-php .wp-filter-search");c=_.extend(c,window._wpUpdatesItemCounts||{}),c.totals&&b.updates.refreshCount(),b.updates.shouldRequestFilesystemCredentials=g.length>0,g.on("submit","form",function(c){c.preventDefault(),b.updates.filesystemCredentials.ftp.hostname=a("#hostname").val(),b.updates.filesystemCredentials.ftp.username=a("#username").val(),b.updates.filesystemCredentials.ftp.password=a("#password").val(),b.updates.filesystemCredentials.ftp.connectionType=a('input[name="connection_type"]:checked').val(),b.updates.filesystemCredentials.ssh.publicKey=a("#public_key").val(),b.updates.filesystemCredentials.ssh.privateKey=a("#private_key").val(),b.updates.filesystemCredentials.available=!0,b.updates.ajaxLocked=!1,b.updates.queueChecker(),b.updates.requestForCredentialsModalClose()}),g.on("click",'[data-js-action="close"], .notification-dialog-background',b.updates.requestForCredentialsModalCancel),g.on("change",'input[name="connection_type"]',function(){a("#ssh-keys").toggleClass("hidden","ssh"!==a(this).val())}).change(),d.on("credential-modal-cancel",function(c,d){var e,f,g=a(".updating-message");"import"===pagenow?g.removeClass("updating-message"):"plugins"===pagenow||"plugins-network"===pagenow?"update-plugin"===d.action?e=a('tr[data-plugin="'+d.data.plugin+'"]').find(".update-message"):"delete-plugin"===d.action&&(e=a('[data-plugin="'+d.data.plugin+'"]').find(".row-actions a.delete")):"themes"===pagenow||"themes-network"===pagenow?"update-theme"===d.action?e=a('[data-slug="'+d.data.slug+'"]').find(".update-message"):"delete-theme"===d.action&&"themes-network"===pagenow?e=a('[data-slug="'+d.data.slug+'"]').find(".row-actions a.delete"):"delete-theme"===d.action&&"themes"===pagenow&&(e=a(".theme-actions .delete-theme")):e=g,e&&e.hasClass("updating-message")&&(f=e.data("originaltext"),"undefined"==typeof f&&(f=a("<p>").html(e.find("p").data("originaltext"))),e.removeClass("updating-message").html(f),"plugin-install"!==pagenow&&"plugin-install-network"!==pagenow||("update-plugin"===d.action?e.attr("aria-label",b.updates.l10n.updateNowLabel.replace("%s",e.data("name"))):"install-plugin"===d.action&&e.attr("aria-label",b.updates.l10n.installNowLabel.replace("%s",e.data("name"))))),b.a11y.speak(b.updates.l10n.updateCancel,"polite")}),f.on("click","[data-plugin] .update-link",function(c){var d=a(c.target),e=d.parents("tr");c.preventDefault(),d.hasClass("updating-message")||d.hasClass("button-disabled")||(b.updates.maybeRequestFilesystemCredentials(c),b.updates.$elToReturnFocusToFromCredentialsModal=e.find(".check-column input"),b.updates.updatePlugin({plugin:e.data("plugin"),slug:e.data("slug")}))}),e.on("click",".update-now",function(c){var d=a(c.target);c.preventDefault(),d.hasClass("updating-message")||d.hasClass("button-disabled")||(b.updates.maybeRequestFilesystemCredentials(c),b.updates.updatePlugin({plugin:d.data("plugin"),slug:d.data("slug")}))}),e.on("click",".install-now",function(c){var e=a(c.target);c.preventDefault(),e.hasClass("updating-message")||e.hasClass("button-disabled")||(b.updates.shouldRequestFilesystemCredentials&&!b.updates.ajaxLocked&&(b.updates.requestFilesystemCredentials(c),d.on("credential-modal-cancel",function(){var c=a(".install-now.updating-message");c.removeClass("updating-message").text(b.updates.l10n.installNow),b.a11y.speak(b.updates.l10n.updateCancel,"polite")})),b.updates.installPlugin({slug:e.data("slug")}))}),d.on("click",".importer-item .install-now",function(c){var e=a(c.target),f=a(this).data("name");c.preventDefault(),e.hasClass("updating-message")||(b.updates.shouldRequestFilesystemCredentials&&!b.updates.ajaxLocked&&(b.updates.requestFilesystemCredentials(c),d.on("credential-modal-cancel",function(){e.removeClass("updating-message").text(b.updates.l10n.installNow).attr("aria-label",b.updates.l10n.installNowLabel.replace("%s",f)),b.a11y.speak(b.updates.l10n.updateCancel,"polite")})),b.updates.installPlugin({slug:e.data("slug"),pagenow:pagenow,success:b.updates.installImporterSuccess,error:b.updates.installImporterError}))}),f.on("click","[data-plugin] a.delete",function(c){var d=a(c.target).parents("tr");c.preventDefault(),window.confirm(b.updates.l10n.aysDeleteUninstall.replace("%s",d.find(".plugin-title strong").text()))&&(b.updates.maybeRequestFilesystemCredentials(c),b.updates.deletePlugin({plugin:d.data("plugin"),slug:d.data("slug")}))}),d.on("click",".themes-php.network-admin .update-link",function(c){var d=a(c.target),e=d.parents("tr");c.preventDefault(),d.hasClass("updating-message")||d.hasClass("button-disabled")||(b.updates.maybeRequestFilesystemCredentials(c),b.updates.$elToReturnFocusToFromCredentialsModal=e.find(".check-column input"),b.updates.updateTheme({slug:e.data("slug")}))}),d.on("click",".themes-php.network-admin a.delete",function(c){var d=a(c.target).parents("tr");c.preventDefault(),window.confirm(b.updates.l10n.aysDelete.replace("%s",d.find(".theme-title strong").text()))&&(b.updates.maybeRequestFilesystemCredentials(c),b.updates.deleteTheme({slug:d.data("slug")}))}),f.on("click",'[type="submit"]',function(c){var e,g,h=a(c.target).siblings("select").val(),i=f.find('input[name="checked[]"]:checked'),j=0,k=0,l=[];switch(pagenow){case"plugins":case"plugins-network":e="plugin";break;case"themes-network":e="theme";break;default:return}if(!i.length)return c.preventDefault(),a("html, body").animate({scrollTop:0}),b.updates.addAdminNotice({id:"no-items-selected",className:"notice-error is-dismissible",message:b.updates.l10n.noItemsSelected});switch(h){case"update-selected":g=h.replace("selected",e);break;case"delete-selected":if(!window.confirm("plugin"===e?b.updates.l10n.aysBulkDelete:b.updates.l10n.aysBulkDeleteThemes))return void c.preventDefault();g=h.replace("selected",e);break;default:return}b.updates.maybeRequestFilesystemCredentials(c),c.preventDefault(),f.find('.manage-column [type="checkbox"]').prop("checked",!1),d.trigger("wp-"+e+"-bulk-"+h,i),i.each(function(c,d){var e=a(d),f=e.parents("tr");return"update-selected"!==h||f.hasClass("update")&&!f.find("notice-error").length?void b.updates.queue.push({action:g,data:{plugin:f.data("plugin"),slug:f.data("slug")}}):void e.prop("checked",!1)}),d.on("wp-plugin-update-success wp-plugin-update-error wp-theme-update-success wp-theme-update-error",function(c,d){var e,f,g=a('[data-slug="'+d.slug+'"]');"wp-"+d.update+"-update-success"===c.type?j++:(f=d.pluginName?d.pluginName:g.find(".column-primary strong").text(),k++,l.push(f+": "+d.errorMessage)),g.find('input[name="checked[]"]:checked').prop("checked",!1),b.updates.adminNotice=b.template("wp-bulk-updates-admin-notice"),b.updates.addAdminNotice({id:"bulk-action-notice",className:"bulk-action-notice",successes:j,errors:k,errorMessages:l,type:d.update}),e=a("#bulk-action-notice").on("click","button",function(){a(this).toggleClass("bulk-action-errors-collapsed").attr("aria-expanded",!a(this).hasClass("bulk-action-errors-collapsed")),e.find(".bulk-action-errors").toggleClass("hidden")}),k>0&&!b.updates.queue.length&&a("html, body").animate({scrollTop:0})}),d.on("wp-updates-notice-added",function(){b.updates.adminNotice=b.template("wp-updates-admin-notice")}),b.updates.queueChecker()}),i.length&&i.attr("aria-describedby","live-search-desc"),i.on("keyup input",_.debounce(function(c,d){var f,g,h=a(".plugin-install-search");f={_ajax_nonce:b.updates.ajaxNonce,s:c.target.value,tab:"search",type:a("#typeselector").val(),pagenow:pagenow},g=location.href.split("?")[0]+"?"+a.param(_.omit(f,["_ajax_nonce","pagenow"])),"keyup"===c.type&&27===c.which&&(c.target.value=""),b.updates.searchTerm===f.s&&"typechange"!==d||(e.empty(),b.updates.searchTerm=f.s,window.history&&window.history.replaceState&&window.history.replaceState(null,"",g),h.length||(h=a('<li class="plugin-install-search" />').append(a("<a />",{"class":"current",href:g,text:b.updates.l10n.searchResultsLabel})),a(".wp-filter .filter-links .current").removeClass("current").parents(".filter-links").prepend(h),e.prev("p").remove(),a(".plugins-popular-tags-wrapper").remove()),"undefined"!=typeof b.updates.searchRequest&&b.updates.searchRequest.abort(),a("body").addClass("loading-content"),b.updates.searchRequest=b.ajax.post("search-install-plugins",f).done(function(c){a("body").removeClass("loading-content"),e.append(c.items),delete b.updates.searchRequest,0===c.count?b.a11y.speak(b.updates.l10n.noPluginsFound):b.a11y.speak(b.updates.l10n.pluginsFound.replace("%d",c.count))}))},500)),h.length&&h.attr("aria-describedby","live-search-desc"),h.on("keyup input",_.debounce(function(c){var d,e={_ajax_nonce:b.updates.ajaxNonce,s:c.target.value,pagenow:pagenow,plugin_status:"all"};"keyup"===c.type&&27===c.which&&(c.target.value=""),b.updates.searchTerm!==e.s&&(b.updates.searchTerm=e.s,d=_.object(_.compact(_.map(location.search.slice(1).split("&"),function(a){if(a)return a.split("=")}))),e.plugin_status=d.plugin_status||"all",window.history&&window.history.replaceState&&window.history.replaceState(null,"",location.href.split("?")[0]+"?s="+e.s+"&plugin_status="+e.plugin_status),"undefined"!=typeof b.updates.searchRequest&&b.updates.searchRequest.abort(),
+f.empty(),a("body").addClass("loading-content"),a(".subsubsub .current").removeClass("current"),b.updates.searchRequest=b.ajax.post("search-plugins",e).done(function(c){var d=a("<span />").addClass("subtitle").html(b.updates.l10n.searchResults.replace("%s",_.escape(e.s))),g=a(".wrap .subtitle");e.s.length?g.length?g.replaceWith(d):a(".wrap h1").append(d):(g.remove(),a(".subsubsub ."+e.plugin_status+" a").addClass("current")),a("body").removeClass("loading-content"),f.append(c.items),delete b.updates.searchRequest,0===c.count?b.a11y.speak(b.updates.l10n.noPluginsFound):b.a11y.speak(b.updates.l10n.pluginsFound.replace("%d",c.count))}))},500)),d.on("submit",".search-plugins",function(b){b.preventDefault(),a("input.wp-filter-search").trigger("input")}),a("#typeselector").on("change",function(){var b=a('input[name="s"]');b.val().length&&b.trigger("input","typechange")}),a("#plugin_update_from_iframe").on("click",function(b){var c,d=window.parent===window?null:window.parent;a.support.postMessage=!!window.postMessage,!1!==a.support.postMessage&&null!==d&&-1===window.parent.location.pathname.indexOf("update-core.php")&&(b.preventDefault(),c={action:"update-plugin",data:{plugin:a(this).data("plugin"),slug:a(this).data("slug")}},d.postMessage(JSON.stringify(c),window.location.origin))}),a("#plugin_install_from_iframe").on("click",function(b){var c,d=window.parent===window?null:window.parent;a.support.postMessage=!!window.postMessage,!1!==a.support.postMessage&&null!==d&&-1===window.parent.location.pathname.indexOf("index.php")&&(b.preventDefault(),c={action:"install-plugin",data:{slug:a(this).data("slug")}},d.postMessage(JSON.stringify(c),window.location.origin))}),a(window).on("message",function(c){var d,e=c.originalEvent,f=document.location.protocol+"//"+document.location.hostname;if(e.origin===f){try{d=a.parseJSON(e.data)}catch(g){return}if("undefined"!=typeof d.action)switch(d.action){case"decrementUpdateCount":b.updates.decrementCount(d.upgradeType);break;case"install-plugin":case"update-plugin":window.tb_remove(),d.data=b.updates._addCallbacks(d.data,d.action),b.updates.queue.push(d),b.updates.queueChecker()}}}),a(window).on("beforeunload",b.updates.beforeunload)})}(jQuery,window.wp,window._wpUpdatesSettings);
\ No newline at end of file
diff --git a/wp-admin/js/user-profile.js b/wp-admin/js/user-profile.js
index c5f5db36e..650fbd5d0 100644
--- a/wp-admin/js/user-profile.js
+++ b/wp-admin/js/user-profile.js
@@ -260,12 +260,14 @@
 
 			resetToggle();
 
-			// Clear password field to prevent update
-			$pass1.val( '' ).trigger( 'pwupdate' );
-			$submitButtons.prop( 'disabled', false );
+			if ( $pass1Row.closest( 'form' ).is( '#your-profile' ) ) {
+				// Clear password field to prevent update
+				$pass1.val( '' ).trigger( 'pwupdate' );
+				$submitButtons.prop( 'disabled', false );
+			}
 		} );
 
-		$pass1Row.closest('form').on( 'submit', function () {
+		$pass1Row.closest( 'form' ).on( 'submit', function () {
 			updateLock = false;
 
 			$pass1.prop( 'disabled', false );
diff --git a/wp-admin/js/user-profile.min.js b/wp-admin/js/user-profile.min.js
index cea8d6aa0..a80fe4260 100644
--- a/wp-admin/js/user-profile.min.js
+++ b/wp-admin/js/user-profile.min.js
@@ -1 +1 @@
-!function(a){function b(){return"function"!=typeof zxcvbn?void setTimeout(b,50):(k.val()?(g(),h()):(k.val(k.data("pw")),k.trigger("pwupdate"),h()),1!==parseInt(q.data("start-masked"),10)?j.addClass("show-password"):q.trigger("click"),void a("#pw-weak-text-label").html(userProfileL10n.warnWeak))}function c(){t=k.val(),j=k.parent(),l=a('<input type="text"/>').attr({id:"pass1-text",name:"pass1-text",autocomplete:"off"}).addClass(k[0].className).data("pw",k.data("pw")).val(k.val()).on(u,function(){l.val()!==t&&(n.val(l.val()),k.val(l.val()).trigger("pwupdate"),t=l.val())}),k.after(l),1===parseInt(k.data("reveal"),10)&&b(),k.on(u+" pwupdate",function(){k.val()!==t&&(t=k.val(),l.val()!==t&&l.val(t),k.add(l).removeClass("short bad good strong"),h())})}function d(){q.data("toggle",0).attr({"aria-label":userProfileL10n.ariaHide}).find(".text").text(userProfileL10n.hide).end().find(".dashicons").removeClass("dashicons-visibility").addClass("dashicons-hidden"),l.focus(),m.attr("for","pass1-text")}function e(){q=i.find(".wp-hide-pw"),q.show().on("click",function(){1===parseInt(q.data("toggle"),10)?(j.addClass("show-password"),d(),_.isUndefined(l[0].setSelectionRange)||l[0].setSelectionRange(0,100)):(j.removeClass("show-password"),q.data("toggle",1).attr({"aria-label":userProfileL10n.ariaShow}).find(".text").text(userProfileL10n.show).end().find(".dashicons").removeClass("dashicons-hidden").addClass("dashicons-visibility"),k.focus(),m.attr("for","pass1"),_.isUndefined(k[0].setSelectionRange)||k[0].setSelectionRange(0,100))})}function f(){var f,g,h;i=a(".user-pass1-wrap"),m=i.find("th label").attr("for","pass1-text"),a(".user-pass2-wrap").hide(),s=a("#submit").on("click",function(){v=!1}),r=s.add(" #createusersub"),o=a(".pw-weak"),p=o.find(".pw-checkbox"),p.change(function(){r.prop("disabled",!p.prop("checked"))}),k=a("#pass1"),k.length&&c(),n=a("#pass2").on(u,function(){n.val().length>0&&(k.val(n.val()),n.val(""),t="",k.trigger("pwupdate"))}),k.is(":hidden")&&(k.prop("disabled",!0),n.prop("disabled",!0),l.prop("disabled",!0)),f=i.find(".wp-pwd"),g=i.find("button.wp-generate-pw"),e(),g.length&&f.hide(),g.show(),g.on("click",function(){v=!0,g.hide(),f.show(),k.attr("disabled",!1),n.attr("disabled",!1),l.attr("disabled",!1),0===l.val().length&&b(),_.defer(function(){l.focus(),_.isUndefined(l[0].setSelectionRange)||l[0].setSelectionRange(0,100)},0)}),h=i.find("button.wp-cancel-pw"),h.on("click",function(){v=!1,l.val(""),wp.ajax.post("generate-password").done(function(a){k.data("pw",a)}),g.show(),f.hide(),o.hide(0,function(){p.removeProp("checked")}),k.prop("disabled",!0),n.prop("disabled",!0),l.prop("disabled",!0),d(),k.val("").trigger("pwupdate"),r.prop("disabled",!1)}),i.closest("form").on("submit",function(){v=!1,k.prop("disabled",!1),n.prop("disabled",!1),n.val(k.val()),j.removeClass("show-password")})}function g(){var b,c=a("#pass1").val();if(a("#pass-strength-result").removeClass("short bad good strong"),!c)return void a("#pass-strength-result").html("&nbsp;");switch(b=wp.passwordStrength.meter(c,wp.passwordStrength.userInputBlacklist(),c)){case-1:a("#pass-strength-result").addClass("bad").html(pwsL10n.unknown);break;case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n["short"])}}function h(){var b=a("#pass-strength-result")[0];b.className&&(k.add(l).addClass(b.className),"short"===b.className||"bad"===b.className?(p.prop("checked")||r.prop("disabled",!0),o.show()):(r.prop("disabled",!1),o.hide()))}var i,j,k,l,m,n,o,p,q,r,s,t,u,v=!1;u="oninput"in document.createElement("input")?"input":"keyup",a(document).ready(function(){var b,c,d,e,h=a("#display_name");a("#pass1").val("").on(u+" pwupdate",g),a("#pass-strength-result").show(),a(".color-palette").click(function(){a(this).siblings('input[name="admin_color"]').prop("checked",!0)}),h.length&&a("#first_name, #last_name, #nickname").bind("blur.user_profile",function(){var b=[],c={display_nickname:a("#nickname").val()||"",display_username:a("#user_login").val()||"",display_firstname:a("#first_name").val()||"",display_lastname:a("#last_name").val()||""};c.display_firstname&&c.display_lastname&&(c.display_firstlast=c.display_firstname+" "+c.display_lastname,c.display_lastfirst=c.display_lastname+" "+c.display_firstname),a.each(a("option",h),function(a,c){b.push(c.value)}),a.each(c,function(d,e){if(e){var f=e.replace(/<\/?[a-z][^>]*>/gi,"");c[d].length&&a.inArray(f,b)===-1&&(b.push(f),a("<option />",{text:f}).appendTo(h))}})}),b=a("#color-picker"),c=a("#colors-css"),d=a("input#user_id").val(),e=a('input[name="checkuser_id"]').val(),b.on("click.colorpicker",".color-option",function(){var b,f=a(this);if(!f.hasClass("selected")&&(f.siblings(".selected").removeClass("selected"),f.addClass("selected").find('input[type="radio"]').prop("checked",!0),d===e)){if(0===c.length&&(c=a('<link rel="stylesheet" />').appendTo("head")),c.attr("href",f.children(".css_url").val()),"undefined"!=typeof wp&&wp.svgPainter){try{b=a.parseJSON(f.children(".icon_colors").val())}catch(g){}b&&(wp.svgPainter.setColors(b),wp.svgPainter.paint())}a.post(ajaxurl,{action:"save-user-color-scheme",color_scheme:f.children('input[name="admin_color"]').val(),nonce:a("#color-nonce").val()}).done(function(b){b.success&&a("body").removeClass(b.data.previousScheme).addClass(b.data.currentScheme)})}}),f()}),a("#destroy-sessions").on("click",function(b){var c=a(this);wp.ajax.post("destroy-sessions",{nonce:a("#_wpnonce").val(),user_id:a("#user_id").val()}).done(function(a){c.prop("disabled",!0),c.siblings(".notice").remove(),c.before('<div class="notice notice-success inline"><p>'+a.message+"</p></div>")}).fail(function(a){c.siblings(".notice").remove(),c.before('<div class="notice notice-error inline"><p>'+a.message+"</p></div>")}),b.preventDefault()}),window.generatePassword=b,a(window).on("beforeunload",function(){if(!0===v)return userProfileL10n.warn})}(jQuery);
\ No newline at end of file
+!function(a){function b(){return"function"!=typeof zxcvbn?void setTimeout(b,50):(k.val()?(g(),h()):(k.val(k.data("pw")),k.trigger("pwupdate"),h()),1!==parseInt(q.data("start-masked"),10)?j.addClass("show-password"):q.trigger("click"),void a("#pw-weak-text-label").html(userProfileL10n.warnWeak))}function c(){t=k.val(),j=k.parent(),l=a('<input type="text"/>').attr({id:"pass1-text",name:"pass1-text",autocomplete:"off"}).addClass(k[0].className).data("pw",k.data("pw")).val(k.val()).on(u,function(){l.val()!==t&&(n.val(l.val()),k.val(l.val()).trigger("pwupdate"),t=l.val())}),k.after(l),1===parseInt(k.data("reveal"),10)&&b(),k.on(u+" pwupdate",function(){k.val()!==t&&(t=k.val(),l.val()!==t&&l.val(t),k.add(l).removeClass("short bad good strong"),h())})}function d(){q.data("toggle",0).attr({"aria-label":userProfileL10n.ariaHide}).find(".text").text(userProfileL10n.hide).end().find(".dashicons").removeClass("dashicons-visibility").addClass("dashicons-hidden"),l.focus(),m.attr("for","pass1-text")}function e(){q=i.find(".wp-hide-pw"),q.show().on("click",function(){1===parseInt(q.data("toggle"),10)?(j.addClass("show-password"),d(),_.isUndefined(l[0].setSelectionRange)||l[0].setSelectionRange(0,100)):(j.removeClass("show-password"),q.data("toggle",1).attr({"aria-label":userProfileL10n.ariaShow}).find(".text").text(userProfileL10n.show).end().find(".dashicons").removeClass("dashicons-hidden").addClass("dashicons-visibility"),k.focus(),m.attr("for","pass1"),_.isUndefined(k[0].setSelectionRange)||k[0].setSelectionRange(0,100))})}function f(){var f,g,h;i=a(".user-pass1-wrap"),m=i.find("th label").attr("for","pass1-text"),a(".user-pass2-wrap").hide(),s=a("#submit").on("click",function(){v=!1}),r=s.add(" #createusersub"),o=a(".pw-weak"),p=o.find(".pw-checkbox"),p.change(function(){r.prop("disabled",!p.prop("checked"))}),k=a("#pass1"),k.length&&c(),n=a("#pass2").on(u,function(){n.val().length>0&&(k.val(n.val()),n.val(""),t="",k.trigger("pwupdate"))}),k.is(":hidden")&&(k.prop("disabled",!0),n.prop("disabled",!0),l.prop("disabled",!0)),f=i.find(".wp-pwd"),g=i.find("button.wp-generate-pw"),e(),g.length&&f.hide(),g.show(),g.on("click",function(){v=!0,g.hide(),f.show(),k.attr("disabled",!1),n.attr("disabled",!1),l.attr("disabled",!1),0===l.val().length&&b(),_.defer(function(){l.focus(),_.isUndefined(l[0].setSelectionRange)||l[0].setSelectionRange(0,100)},0)}),h=i.find("button.wp-cancel-pw"),h.on("click",function(){v=!1,l.val(""),wp.ajax.post("generate-password").done(function(a){k.data("pw",a)}),g.show(),f.hide(),o.hide(0,function(){p.removeProp("checked")}),k.prop("disabled",!0),n.prop("disabled",!0),l.prop("disabled",!0),d(),i.closest("form").is("#your-profile")&&(k.val("").trigger("pwupdate"),r.prop("disabled",!1))}),i.closest("form").on("submit",function(){v=!1,k.prop("disabled",!1),n.prop("disabled",!1),n.val(k.val()),j.removeClass("show-password")})}function g(){var b,c=a("#pass1").val();if(a("#pass-strength-result").removeClass("short bad good strong"),!c)return void a("#pass-strength-result").html("&nbsp;");switch(b=wp.passwordStrength.meter(c,wp.passwordStrength.userInputBlacklist(),c)){case-1:a("#pass-strength-result").addClass("bad").html(pwsL10n.unknown);break;case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n["short"])}}function h(){var b=a("#pass-strength-result")[0];b.className&&(k.add(l).addClass(b.className),"short"===b.className||"bad"===b.className?(p.prop("checked")||r.prop("disabled",!0),o.show()):(r.prop("disabled",!1),o.hide()))}var i,j,k,l,m,n,o,p,q,r,s,t,u,v=!1;u="oninput"in document.createElement("input")?"input":"keyup",a(document).ready(function(){var b,c,d,e,h=a("#display_name");a("#pass1").val("").on(u+" pwupdate",g),a("#pass-strength-result").show(),a(".color-palette").click(function(){a(this).siblings('input[name="admin_color"]').prop("checked",!0)}),h.length&&a("#first_name, #last_name, #nickname").bind("blur.user_profile",function(){var b=[],c={display_nickname:a("#nickname").val()||"",display_username:a("#user_login").val()||"",display_firstname:a("#first_name").val()||"",display_lastname:a("#last_name").val()||""};c.display_firstname&&c.display_lastname&&(c.display_firstlast=c.display_firstname+" "+c.display_lastname,c.display_lastfirst=c.display_lastname+" "+c.display_firstname),a.each(a("option",h),function(a,c){b.push(c.value)}),a.each(c,function(d,e){if(e){var f=e.replace(/<\/?[a-z][^>]*>/gi,"");c[d].length&&a.inArray(f,b)===-1&&(b.push(f),a("<option />",{text:f}).appendTo(h))}})}),b=a("#color-picker"),c=a("#colors-css"),d=a("input#user_id").val(),e=a('input[name="checkuser_id"]').val(),b.on("click.colorpicker",".color-option",function(){var b,f=a(this);if(!f.hasClass("selected")&&(f.siblings(".selected").removeClass("selected"),f.addClass("selected").find('input[type="radio"]').prop("checked",!0),d===e)){if(0===c.length&&(c=a('<link rel="stylesheet" />').appendTo("head")),c.attr("href",f.children(".css_url").val()),"undefined"!=typeof wp&&wp.svgPainter){try{b=a.parseJSON(f.children(".icon_colors").val())}catch(g){}b&&(wp.svgPainter.setColors(b),wp.svgPainter.paint())}a.post(ajaxurl,{action:"save-user-color-scheme",color_scheme:f.children('input[name="admin_color"]').val(),nonce:a("#color-nonce").val()}).done(function(b){b.success&&a("body").removeClass(b.data.previousScheme).addClass(b.data.currentScheme)})}}),f()}),a("#destroy-sessions").on("click",function(b){var c=a(this);wp.ajax.post("destroy-sessions",{nonce:a("#_wpnonce").val(),user_id:a("#user_id").val()}).done(function(a){c.prop("disabled",!0),c.siblings(".notice").remove(),c.before('<div class="notice notice-success inline"><p>'+a.message+"</p></div>")}).fail(function(a){c.siblings(".notice").remove(),c.before('<div class="notice notice-error inline"><p>'+a.message+"</p></div>")}),b.preventDefault()}),window.generatePassword=b,a(window).on("beforeunload",function(){if(!0===v)return userProfileL10n.warn})}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/widgets.js b/wp-admin/js/widgets.js
index de64533bd..aa439ea55 100644
--- a/wp-admin/js/widgets.js
+++ b/wp-admin/js/widgets.js
@@ -354,12 +354,12 @@ wpWidgets = {
 			if ( $target.hasClass('button-primary') ) {
 				self.addWidget( chooser );
 				self.closeChooser();
-			} else if ( $target.hasClass('button-secondary') ) {
+			} else if ( $target.hasClass( 'widgets-chooser-cancel' ) ) {
 				self.closeChooser();
 			}
 		}).on( 'keyup.widgets-chooser', function( event ) {
 			if ( event.which === $.ui.keyCode.ENTER ) {
-				if ( $( event.target ).hasClass('button-secondary') ) {
+				if ( $( event.target ).hasClass( 'widgets-chooser-cancel' ) ) {
 					// Close instead of adding when pressing Enter on the Cancel button
 					self.closeChooser();
 				} else {
diff --git a/wp-admin/js/widgets.min.js b/wp-admin/js/widgets.min.js
index d74660672..ba4e09421 100644
--- a/wp-admin/js/widgets.min.js
+++ b/wp-admin/js/widgets.min.js
@@ -1 +1 @@
-var wpWidgets;!function(a){var b=a(document);wpWidgets={hoveredSidebar:null,init:function(){var c,d,e=this,f=a(".widgets-chooser"),g=f.find(".widgets-chooser-sidebars"),h=a("div.widgets-sortables"),i=!("undefined"==typeof isRtl||!isRtl);a("#widgets-right .sidebar-name").click(function(){var c=a(this),d=c.closest(".widgets-holder-wrap");d.hasClass("closed")?(d.removeClass("closed"),c.parent().sortable("refresh")):d.addClass("closed"),b.triggerHandler("wp-pin-menu")}),a("#widgets-left .sidebar-name").click(function(){a(this).closest(".widgets-holder-wrap").toggleClass("closed"),b.triggerHandler("wp-pin-menu")}),a(document.body).bind("click.widgets-toggle",function(b){var c,d,e,f,g,h=a(b.target),j={"z-index":100};h.parents(".widget-top").length&&!h.parents("#available-widgets").length?(c=h.closest("div.widget"),d=c.children(".widget-inside"),e=parseInt(c.find("input.widget-width").val(),10),f=c.parent().width(),d.is(":hidden")?(e>250&&e+30>f&&c.closest("div.widgets-sortables").length&&(g=c.closest("div.widget-liquid-right").length?i?"margin-right":"margin-left":i?"margin-left":"margin-right",j[g]=f-(e+30)+"px",c.css(j)),c.addClass("open"),d.slideDown("fast")):d.slideUp("fast",function(){c.attr("style",""),c.removeClass("open")}),b.preventDefault()):h.hasClass("widget-control-save")?(wpWidgets.save(h.closest("div.widget"),0,1,0),b.preventDefault()):h.hasClass("widget-control-remove")?(wpWidgets.save(h.closest("div.widget"),1,1,0),b.preventDefault()):h.hasClass("widget-control-close")?(c=h.closest("div.widget"),c.removeClass("open"),wpWidgets.close(c),b.preventDefault()):"inactive-widgets-control-remove"===h.attr("id")&&(wpWidgets.removeInactiveWidgets(),b.preventDefault())}),h.children(".widget").each(function(){var b=a(this);wpWidgets.appendTitle(this),b.find("p.widget-error").length&&b.find("a.widget-action").trigger("click")}),a("#widget-list").children(".widget").draggable({connectToSortable:"div.widgets-sortables",handle:"> .widget-top > .widget-title",distance:2,helper:"clone",zIndex:100,containment:"#wpwrap",refreshPositions:!0,start:function(b,c){var f=a(this).find(".widgets-chooser");c.helper.find("div.widget-description").hide(),d=this.id,f.length&&(a("#wpbody-content").append(f.hide()),c.helper.find(".widgets-chooser").remove(),e.clearWidgetSelection())},stop:function(){c&&a(c).hide(),c=""}}),h.droppable({tolerance:"intersect",over:function(b){var c=a(b.target).parent();wpWidgets.hoveredSidebar&&!c.is(wpWidgets.hoveredSidebar)&&wpWidgets.closeSidebar(b),c.hasClass("closed")&&(wpWidgets.hoveredSidebar=c,c.removeClass("closed")),a(this).sortable("refresh")},out:function(a){wpWidgets.hoveredSidebar&&wpWidgets.closeSidebar(a)}}),h.sortable({placeholder:"widget-placeholder",items:"> .widget",handle:"> .widget-top > .widget-title",cursor:"move",distance:2,containment:"#wpwrap",tolerance:"pointer",refreshPositions:!0,start:function(b,c){var d,e=a(this),f=e.parent(),g=c.item.children(".widget-inside");"block"===g.css("display")&&(c.item.removeClass("open"),g.hide(),a(this).sortable("refreshPositions")),f.hasClass("closed")||(d=c.item.hasClass("ui-draggable")?e.height():1+e.height(),e.css("min-height",d+"px"))},stop:function(e,f){var g,h,i,j,k,l,m=f.item,n=d;return wpWidgets.hoveredSidebar=null,m.hasClass("deleting")?(wpWidgets.save(m,1,0,1),void m.remove()):(g=m.find("input.add_new").val(),h=m.find("input.multi_number").val(),m.attr("style","").removeClass("ui-draggable"),d="",g&&("multi"===g?(m.html(m.html().replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,h)})),m.attr("id",n.replace("__i__",h)),h++,a("div#"+n).find("input.multi_number").val(h)):"single"===g&&(m.attr("id","new-"+n),c="div#"+n),wpWidgets.save(m,0,0,1),m.find("input.add_new").val(""),b.trigger("widget-added",[m])),i=m.parent(),i.parent().hasClass("closed")&&(i.parent().removeClass("closed"),j=i.children(".widget"),j.length>1&&(k=j.get(0),l=m.get(0),k.id&&l.id&&k.id!==l.id&&a(k).before(m))),void(g?m.find("a.widget-action").trigger("click"):wpWidgets.saveOrder(i.attr("id"))))},activate:function(){a(this).parent().addClass("widget-hover")},deactivate:function(){a(this).css("min-height","").parent().removeClass("widget-hover")},receive:function(b,c){var d=a(c.sender);return this.id.indexOf("orphaned_widgets")>-1?void d.sortable("cancel"):void(d.attr("id").indexOf("orphaned_widgets")>-1&&!d.children(".widget").length&&d.parents(".orphan-sidebar").slideUp(400,function(){a(this).remove()}))}}).sortable("option","connectWith","div.widgets-sortables"),a("#available-widgets").droppable({tolerance:"pointer",accept:function(b){return"widget-list"!==a(b).parent().attr("id")},drop:function(b,c){c.draggable.addClass("deleting"),a("#removing-widget").hide().children("span").empty()},over:function(b,c){c.draggable.addClass("deleting"),a("div.widget-placeholder").hide(),c.draggable.hasClass("ui-sortable-helper")&&a("#removing-widget").show().children("span").html(c.draggable.find("div.widget-title").children("h3").html())},out:function(b,c){c.draggable.removeClass("deleting"),a("div.widget-placeholder").show(),a("#removing-widget").hide().children("span").empty()}}),a("#widgets-right .widgets-holder-wrap").each(function(b,c){var d=a(c),e=d.find(".sidebar-name h2").text(),f=d.find(".widgets-sortables").attr("id"),h=a('<li tabindex="0">').text(a.trim(e));0===b&&h.addClass("widgets-chooser-selected"),g.append(h),h.data("sidebarId",f)}),a("#available-widgets .widget .widget-title").on("click.widgets-chooser",function(){var b=a(this).closest(".widget");b.hasClass("widget-in-question")||a("#widgets-left").hasClass("chooser")?e.closeChooser():(e.clearWidgetSelection(),a("#widgets-left").addClass("chooser"),b.addClass("widget-in-question").children(".widget-description").after(f),f.slideDown(300,function(){g.find(".widgets-chooser-selected").focus()}),g.find("li").on("focusin.widgets-chooser",function(){g.find(".widgets-chooser-selected").removeClass("widgets-chooser-selected"),a(this).addClass("widgets-chooser-selected")}))}),f.on("click.widgets-chooser",function(b){var c=a(b.target);c.hasClass("button-primary")?(e.addWidget(f),e.closeChooser()):c.hasClass("button-secondary")&&e.closeChooser()}).on("keyup.widgets-chooser",function(b){b.which===a.ui.keyCode.ENTER?a(b.target).hasClass("button-secondary")?e.closeChooser():(e.addWidget(f),e.closeChooser()):b.which===a.ui.keyCode.ESCAPE&&e.closeChooser()})},saveOrder:function(b){var c={action:"widgets-order",savewidgets:a("#_wpnonce_widgets").val(),sidebars:[]};b&&a("#"+b).find(".spinner:first").addClass("is-active"),a("div.widgets-sortables").each(function(){a(this).sortable&&(c["sidebars["+a(this).attr("id")+"]"]=a(this).sortable("toArray").join(","))}),a.post(ajaxurl,c,function(){a("#inactive-widgets-control-remove").prop("disabled",!a("#wp_inactive_widgets .widget").length),a(".spinner").removeClass("is-active")})},save:function(c,d,e,f){var g,h=c.closest("div.widgets-sortables").attr("id"),i=c.find("form").serialize();c=a(c),a(".spinner",c).addClass("is-active"),g={action:"save-widget",savewidgets:a("#_wpnonce_widgets").val(),sidebar:h},d&&(g.delete_widget=1),i+="&"+a.param(g),a.post(ajaxurl,i,function(g){var i;d?(a("input.widget_number",c).val()||(i=a("input.widget-id",c).val(),a("#available-widgets").find("input.widget-id").each(function(){a(this).val()===i&&a(this).closest("div.widget").show()})),e?(f=0,c.slideUp("fast",function(){a(this).remove(),wpWidgets.saveOrder()})):(c.remove(),"wp_inactive_widgets"===h&&a("#inactive-widgets-control-remove").prop("disabled",!a("#wp_inactive_widgets .widget").length))):(a(".spinner").removeClass("is-active"),g&&g.length>2&&(a("div.widget-content",c).html(g),wpWidgets.appendTitle(c),b.trigger("widget-updated",[c]),"wp_inactive_widgets"===h&&a("#inactive-widgets-control-remove").prop("disabled",!a("#wp_inactive_widgets .widget").length))),f&&wpWidgets.saveOrder()})},removeInactiveWidgets:function(){var b,c,d=a(".remove-inactive-widgets");a(".spinner",d).addClass("is-active"),b={action:"delete-inactive-widgets",removeinactivewidgets:a("#_wpnonce_remove_inactive_widgets").val()},c=a.param(b),a.post(ajaxurl,c,function(){a("#wp_inactive_widgets .widget").remove(),a("#inactive-widgets-control-remove").prop("disabled",!0),a(".spinner",d).removeClass("is-active")})},appendTitle:function(b){var c=a('input[id*="-title"]',b).val()||"";c&&(c=": "+c.replace(/<[^<>]+>/g,"").replace(/</g,"&lt;").replace(/>/g,"&gt;")),a(b).children(".widget-top").children(".widget-title").children().children(".in-widget-title").html(c)},close:function(a){a.children(".widget-inside").slideUp("fast",function(){a.attr("style","")})},addWidget:function(c){var d,e,f,g,h,i,j,k=c.find(".widgets-chooser-selected").data("sidebarId"),l=a("#"+k);d=a("#available-widgets").find(".widget-in-question").clone(),e=d.attr("id"),f=d.find("input.add_new").val(),g=d.find("input.multi_number").val(),d.find(".widgets-chooser").remove(),"multi"===f?(d.html(d.html().replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,g)})),d.attr("id",e.replace("__i__",g)),g++,a("#"+e).find("input.multi_number").val(g)):"single"===f&&(d.attr("id","new-"+e),a("#"+e).hide()),l.closest(".widgets-holder-wrap").removeClass("closed"),l.append(d),l.sortable("refresh"),wpWidgets.save(d,0,0,1),d.find("input.add_new").val(""),b.trigger("widget-added",[d]),h=a(window).scrollTop(),i=h+a(window).height(),j=l.offset(),j.bottom=j.top+l.outerHeight(),(h>j.bottom||i<j.top)&&a("html, body").animate({scrollTop:j.top-130},200),window.setTimeout(function(){d.find(".widget-title").trigger("click")},250)},closeChooser:function(){var b=this;a(".widgets-chooser").slideUp(200,function(){a("#wpbody-content").append(this),b.clearWidgetSelection()})},clearWidgetSelection:function(){a("#widgets-left").removeClass("chooser"),a(".widget-in-question").removeClass("widget-in-question")},closeSidebar:function(b){this.hoveredSidebar.addClass("closed"),a(b.target).css("min-height",""),this.hoveredSidebar=null}},b.ready(function(){wpWidgets.init()})}(jQuery);
\ No newline at end of file
+var wpWidgets;!function(a){var b=a(document);wpWidgets={hoveredSidebar:null,init:function(){var c,d,e=this,f=a(".widgets-chooser"),g=f.find(".widgets-chooser-sidebars"),h=a("div.widgets-sortables"),i=!("undefined"==typeof isRtl||!isRtl);a("#widgets-right .sidebar-name").click(function(){var c=a(this),d=c.closest(".widgets-holder-wrap");d.hasClass("closed")?(d.removeClass("closed"),c.parent().sortable("refresh")):d.addClass("closed"),b.triggerHandler("wp-pin-menu")}),a("#widgets-left .sidebar-name").click(function(){a(this).closest(".widgets-holder-wrap").toggleClass("closed"),b.triggerHandler("wp-pin-menu")}),a(document.body).bind("click.widgets-toggle",function(b){var c,d,e,f,g,h=a(b.target),j={"z-index":100};h.parents(".widget-top").length&&!h.parents("#available-widgets").length?(c=h.closest("div.widget"),d=c.children(".widget-inside"),e=parseInt(c.find("input.widget-width").val(),10),f=c.parent().width(),d.is(":hidden")?(e>250&&e+30>f&&c.closest("div.widgets-sortables").length&&(g=c.closest("div.widget-liquid-right").length?i?"margin-right":"margin-left":i?"margin-left":"margin-right",j[g]=f-(e+30)+"px",c.css(j)),c.addClass("open"),d.slideDown("fast")):d.slideUp("fast",function(){c.attr("style",""),c.removeClass("open")}),b.preventDefault()):h.hasClass("widget-control-save")?(wpWidgets.save(h.closest("div.widget"),0,1,0),b.preventDefault()):h.hasClass("widget-control-remove")?(wpWidgets.save(h.closest("div.widget"),1,1,0),b.preventDefault()):h.hasClass("widget-control-close")?(c=h.closest("div.widget"),c.removeClass("open"),wpWidgets.close(c),b.preventDefault()):"inactive-widgets-control-remove"===h.attr("id")&&(wpWidgets.removeInactiveWidgets(),b.preventDefault())}),h.children(".widget").each(function(){var b=a(this);wpWidgets.appendTitle(this),b.find("p.widget-error").length&&b.find("a.widget-action").trigger("click")}),a("#widget-list").children(".widget").draggable({connectToSortable:"div.widgets-sortables",handle:"> .widget-top > .widget-title",distance:2,helper:"clone",zIndex:100,containment:"#wpwrap",refreshPositions:!0,start:function(b,c){var f=a(this).find(".widgets-chooser");c.helper.find("div.widget-description").hide(),d=this.id,f.length&&(a("#wpbody-content").append(f.hide()),c.helper.find(".widgets-chooser").remove(),e.clearWidgetSelection())},stop:function(){c&&a(c).hide(),c=""}}),h.droppable({tolerance:"intersect",over:function(b){var c=a(b.target).parent();wpWidgets.hoveredSidebar&&!c.is(wpWidgets.hoveredSidebar)&&wpWidgets.closeSidebar(b),c.hasClass("closed")&&(wpWidgets.hoveredSidebar=c,c.removeClass("closed")),a(this).sortable("refresh")},out:function(a){wpWidgets.hoveredSidebar&&wpWidgets.closeSidebar(a)}}),h.sortable({placeholder:"widget-placeholder",items:"> .widget",handle:"> .widget-top > .widget-title",cursor:"move",distance:2,containment:"#wpwrap",tolerance:"pointer",refreshPositions:!0,start:function(b,c){var d,e=a(this),f=e.parent(),g=c.item.children(".widget-inside");"block"===g.css("display")&&(c.item.removeClass("open"),g.hide(),a(this).sortable("refreshPositions")),f.hasClass("closed")||(d=c.item.hasClass("ui-draggable")?e.height():1+e.height(),e.css("min-height",d+"px"))},stop:function(e,f){var g,h,i,j,k,l,m=f.item,n=d;return wpWidgets.hoveredSidebar=null,m.hasClass("deleting")?(wpWidgets.save(m,1,0,1),void m.remove()):(g=m.find("input.add_new").val(),h=m.find("input.multi_number").val(),m.attr("style","").removeClass("ui-draggable"),d="",g&&("multi"===g?(m.html(m.html().replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,h)})),m.attr("id",n.replace("__i__",h)),h++,a("div#"+n).find("input.multi_number").val(h)):"single"===g&&(m.attr("id","new-"+n),c="div#"+n),wpWidgets.save(m,0,0,1),m.find("input.add_new").val(""),b.trigger("widget-added",[m])),i=m.parent(),i.parent().hasClass("closed")&&(i.parent().removeClass("closed"),j=i.children(".widget"),j.length>1&&(k=j.get(0),l=m.get(0),k.id&&l.id&&k.id!==l.id&&a(k).before(m))),void(g?m.find("a.widget-action").trigger("click"):wpWidgets.saveOrder(i.attr("id"))))},activate:function(){a(this).parent().addClass("widget-hover")},deactivate:function(){a(this).css("min-height","").parent().removeClass("widget-hover")},receive:function(b,c){var d=a(c.sender);return this.id.indexOf("orphaned_widgets")>-1?void d.sortable("cancel"):void(d.attr("id").indexOf("orphaned_widgets")>-1&&!d.children(".widget").length&&d.parents(".orphan-sidebar").slideUp(400,function(){a(this).remove()}))}}).sortable("option","connectWith","div.widgets-sortables"),a("#available-widgets").droppable({tolerance:"pointer",accept:function(b){return"widget-list"!==a(b).parent().attr("id")},drop:function(b,c){c.draggable.addClass("deleting"),a("#removing-widget").hide().children("span").empty()},over:function(b,c){c.draggable.addClass("deleting"),a("div.widget-placeholder").hide(),c.draggable.hasClass("ui-sortable-helper")&&a("#removing-widget").show().children("span").html(c.draggable.find("div.widget-title").children("h3").html())},out:function(b,c){c.draggable.removeClass("deleting"),a("div.widget-placeholder").show(),a("#removing-widget").hide().children("span").empty()}}),a("#widgets-right .widgets-holder-wrap").each(function(b,c){var d=a(c),e=d.find(".sidebar-name h2").text(),f=d.find(".widgets-sortables").attr("id"),h=a('<li tabindex="0">').text(a.trim(e));0===b&&h.addClass("widgets-chooser-selected"),g.append(h),h.data("sidebarId",f)}),a("#available-widgets .widget .widget-title").on("click.widgets-chooser",function(){var b=a(this).closest(".widget");b.hasClass("widget-in-question")||a("#widgets-left").hasClass("chooser")?e.closeChooser():(e.clearWidgetSelection(),a("#widgets-left").addClass("chooser"),b.addClass("widget-in-question").children(".widget-description").after(f),f.slideDown(300,function(){g.find(".widgets-chooser-selected").focus()}),g.find("li").on("focusin.widgets-chooser",function(){g.find(".widgets-chooser-selected").removeClass("widgets-chooser-selected"),a(this).addClass("widgets-chooser-selected")}))}),f.on("click.widgets-chooser",function(b){var c=a(b.target);c.hasClass("button-primary")?(e.addWidget(f),e.closeChooser()):c.hasClass("widgets-chooser-cancel")&&e.closeChooser()}).on("keyup.widgets-chooser",function(b){b.which===a.ui.keyCode.ENTER?a(b.target).hasClass("widgets-chooser-cancel")?e.closeChooser():(e.addWidget(f),e.closeChooser()):b.which===a.ui.keyCode.ESCAPE&&e.closeChooser()})},saveOrder:function(b){var c={action:"widgets-order",savewidgets:a("#_wpnonce_widgets").val(),sidebars:[]};b&&a("#"+b).find(".spinner:first").addClass("is-active"),a("div.widgets-sortables").each(function(){a(this).sortable&&(c["sidebars["+a(this).attr("id")+"]"]=a(this).sortable("toArray").join(","))}),a.post(ajaxurl,c,function(){a("#inactive-widgets-control-remove").prop("disabled",!a("#wp_inactive_widgets .widget").length),a(".spinner").removeClass("is-active")})},save:function(c,d,e,f){var g,h=c.closest("div.widgets-sortables").attr("id"),i=c.find("form").serialize();c=a(c),a(".spinner",c).addClass("is-active"),g={action:"save-widget",savewidgets:a("#_wpnonce_widgets").val(),sidebar:h},d&&(g.delete_widget=1),i+="&"+a.param(g),a.post(ajaxurl,i,function(g){var i;d?(a("input.widget_number",c).val()||(i=a("input.widget-id",c).val(),a("#available-widgets").find("input.widget-id").each(function(){a(this).val()===i&&a(this).closest("div.widget").show()})),e?(f=0,c.slideUp("fast",function(){a(this).remove(),wpWidgets.saveOrder()})):(c.remove(),"wp_inactive_widgets"===h&&a("#inactive-widgets-control-remove").prop("disabled",!a("#wp_inactive_widgets .widget").length))):(a(".spinner").removeClass("is-active"),g&&g.length>2&&(a("div.widget-content",c).html(g),wpWidgets.appendTitle(c),b.trigger("widget-updated",[c]),"wp_inactive_widgets"===h&&a("#inactive-widgets-control-remove").prop("disabled",!a("#wp_inactive_widgets .widget").length))),f&&wpWidgets.saveOrder()})},removeInactiveWidgets:function(){var b,c,d=a(".remove-inactive-widgets");a(".spinner",d).addClass("is-active"),b={action:"delete-inactive-widgets",removeinactivewidgets:a("#_wpnonce_remove_inactive_widgets").val()},c=a.param(b),a.post(ajaxurl,c,function(){a("#wp_inactive_widgets .widget").remove(),a("#inactive-widgets-control-remove").prop("disabled",!0),a(".spinner",d).removeClass("is-active")})},appendTitle:function(b){var c=a('input[id*="-title"]',b).val()||"";c&&(c=": "+c.replace(/<[^<>]+>/g,"").replace(/</g,"&lt;").replace(/>/g,"&gt;")),a(b).children(".widget-top").children(".widget-title").children().children(".in-widget-title").html(c)},close:function(a){a.children(".widget-inside").slideUp("fast",function(){a.attr("style","")})},addWidget:function(c){var d,e,f,g,h,i,j,k=c.find(".widgets-chooser-selected").data("sidebarId"),l=a("#"+k);d=a("#available-widgets").find(".widget-in-question").clone(),e=d.attr("id"),f=d.find("input.add_new").val(),g=d.find("input.multi_number").val(),d.find(".widgets-chooser").remove(),"multi"===f?(d.html(d.html().replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,g)})),d.attr("id",e.replace("__i__",g)),g++,a("#"+e).find("input.multi_number").val(g)):"single"===f&&(d.attr("id","new-"+e),a("#"+e).hide()),l.closest(".widgets-holder-wrap").removeClass("closed"),l.append(d),l.sortable("refresh"),wpWidgets.save(d,0,0,1),d.find("input.add_new").val(""),b.trigger("widget-added",[d]),h=a(window).scrollTop(),i=h+a(window).height(),j=l.offset(),j.bottom=j.top+l.outerHeight(),(h>j.bottom||i<j.top)&&a("html, body").animate({scrollTop:j.top-130},200),window.setTimeout(function(){d.find(".widget-title").trigger("click")},250)},closeChooser:function(){var b=this;a(".widgets-chooser").slideUp(200,function(){a("#wpbody-content").append(this),b.clearWidgetSelection()})},clearWidgetSelection:function(){a("#widgets-left").removeClass("chooser"),a(".widget-in-question").removeClass("widget-in-question")},closeSidebar:function(b){this.hoveredSidebar.addClass("closed"),a(b.target).css("min-height",""),this.hoveredSidebar=null}},b.ready(function(){wpWidgets.init()})}(jQuery);
\ No newline at end of file
diff --git a/wp-admin/js/word-count.js b/wp-admin/js/word-count.js
index c0255fd29..89afdcc06 100644
--- a/wp-admin/js/word-count.js
+++ b/wp-admin/js/word-count.js
@@ -1,10 +1,57 @@
+/**
+ * Word or character counting functionality. Count words or characters in a provided text string.
+ *
+ * @summary   Count words or characters in a text.
+ *
+ * @namespace wp.utils
+ * @since     2.6
+ */
+
 ( function() {
+	/**
+	 * Word counting utility
+	 *
+	 * @namespace wp.utils.wordcounter
+	 * @memberof  wp.utils
+	 *
+	 * @class
+	 *
+	 * @param {Object} settings                                   Optional. Key-value object containing overrides for
+	 *                                                            settings.
+	 * @param {RegExp} settings.HTMLRegExp                        Optional. Regular expression to find HTML elements.
+	 * @param {RegExp} settings.HTMLcommentRegExp                 Optional. Regular expression to find HTML comments.
+	 * @param {RegExp} settings.spaceRegExp                       Optional. Regular expression to find irregular space
+	 *                                                            characters.
+	 * @param {RegExp} settings.HTMLEntityRegExp                  Optional. Regular expression to find HTML entities.
+	 * @param {RegExp} settings.connectorRegExp                   Optional. Regular expression to find connectors that
+	 *                                                            split words.
+	 * @param {RegExp} settings.removeRegExp                      Optional. Regular expression to find remove unwanted
+	 *                                                            characters to reduce false-positives.
+	 * @param {RegExp} settings.astralRegExp                      Optional. Regular expression to find unwanted
+	 *                                                            characters when searching for non-words.
+	 * @param {RegExp} settings.wordsRegExp                       Optional. Regular expression to find words by spaces.
+	 * @param {RegExp} settings.characters_excluding_spacesRegExp Optional. Regular expression to find characters which
+	 *                                                            are non-spaces.
+	 * @param {RegExp} settings.characters_including_spacesRegExp Optional. Regular expression to find characters
+	 *                                                            including spaces.
+	 * @param {RegExp} settings.shortcodesRegExp                  Optional. Regular expression to find shortcodes.
+	 * @param {Object} settings.l10n                              Optional. Localization object containing specific
+	 *                                                            configuration for the current localization.
+	 * @param {String} settings.l10n.type                         Optional. Method of finding words to count.
+	 * @param {Array}  settings.l10n.shortcodes                   Optional. Array of shortcodes that should be removed
+	 *                                                            from the text.
+	 *
+	 * @return void
+	 */
 	function WordCounter( settings ) {
 		var key,
 			shortcodes;
 
+		// Apply provided settings to object settings.
 		if ( settings ) {
 			for ( key in settings ) {
+
+				// Only apply valid settings.
 				if ( settings.hasOwnProperty( key ) ) {
 					this.settings[ key ] = settings[ key ];
 				}
@@ -13,91 +60,151 @@
 
 		shortcodes = this.settings.l10n.shortcodes;
 
+		// If there are any localization shortcodes, add this as type in the settings.
 		if ( shortcodes && shortcodes.length ) {
 			this.settings.shortcodesRegExp = new RegExp( '\\[\\/?(?:' + shortcodes.join( '|' ) + ')[^\\]]*?\\]', 'g' );
 		}
 	}
 
+	// Default settings.
 	WordCounter.prototype.settings = {
 		HTMLRegExp: /<\/?[a-z][^>]*?>/gi,
 		HTMLcommentRegExp: /<!--[\s\S]*?-->/g,
 		spaceRegExp: /&nbsp;|&#160;/gi,
 		HTMLEntityRegExp: /&\S+?;/g,
+
+		// \u2014 = em-dash
 		connectorRegExp: /--|\u2014/g,
+
+		// Characters to be removed from input text.
 		removeRegExp: new RegExp( [
 			'[',
+
 				// Basic Latin (extract)
 				'\u0021-\u0040\u005B-\u0060\u007B-\u007E',
+
 				// Latin-1 Supplement (extract)
 				'\u0080-\u00BF\u00D7\u00F7',
-				// General Punctuation
-				// Superscripts and Subscripts
-				// Currency Symbols
-				// Combining Diacritical Marks for Symbols
-				// Letterlike Symbols
-				// Number Forms
-				// Arrows
-				// Mathematical Operators
-				// Miscellaneous Technical
-				// Control Pictures
-				// Optical Character Recognition
-				// Enclosed Alphanumerics
-				// Box Drawing
-				// Block Elements
-				// Geometric Shapes
-				// Miscellaneous Symbols
-				// Dingbats
-				// Miscellaneous Mathematical Symbols-A
-				// Supplemental Arrows-A
-				// Braille Patterns
-				// Supplemental Arrows-B
-				// Miscellaneous Mathematical Symbols-B
-				// Supplemental Mathematical Operators
-				// Miscellaneous Symbols and Arrows
+
+				/*
+				 * The following range consists of:
+				 * General Punctuation
+				 * Superscripts and Subscripts
+				 * Currency Symbols
+				 * Combining Diacritical Marks for Symbols
+				 * Letterlike Symbols
+				 * Number Forms
+				 * Arrows
+				 * Mathematical Operators
+				 * Miscellaneous Technical
+				 * Control Pictures
+				 * Optical Character Recognition
+				 * Enclosed Alphanumerics
+				 * Box Drawing
+				 * Block Elements
+				 * Geometric Shapes
+				 * Miscellaneous Symbols
+				 * Dingbats
+				 * Miscellaneous Mathematical Symbols-A
+				 * Supplemental Arrows-A
+				 * Braille Patterns
+				 * Supplemental Arrows-B
+				 * Miscellaneous Mathematical Symbols-B
+				 * Supplemental Mathematical Operators
+				 * Miscellaneous Symbols and Arrows
+				 */
 				'\u2000-\u2BFF',
+
 				// Supplemental Punctuation
 				'\u2E00-\u2E7F',
 			']'
 		].join( '' ), 'g' ),
+
+		// Remove UTF-16 surrogate points, see https://en.wikipedia.org/wiki/UTF-16#U.2BD800_to_U.2BDFFF
 		astralRegExp: /[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
 		wordsRegExp: /\S\s+/g,
 		characters_excluding_spacesRegExp: /\S/g,
+
+		/*
+		 * Match anything that is not a formatting character, excluding:
+		 * \f = form feed
+		 * \n = new line
+		 * \r = carriage return
+		 * \t = tab
+		 * \v = vertical tab
+		 * \u00AD = soft hyphen
+		 * \u2028 = line separator
+		 * \u2029 = paragraph separator
+		 */
 		characters_including_spacesRegExp: /[^\f\n\r\t\v\u00AD\u2028\u2029]/g,
 		l10n: window.wordCountL10n || {}
 	};
 
+	/**
+	 * Counts the number of words (or other specified type) in the specified text.
+	 *
+	 * @summary  Count the number of elements in a text.
+	 *
+	 * @since    2.6
+	 * @memberof wp.utils.wordcounter
+	 *
+	 * @param {String}  text Text to count elements in.
+	 * @param {String}  type Optional. Specify type to use.
+	 *
+	 * @return {Number} The number of items counted.
+	 */
 	WordCounter.prototype.count = function( text, type ) {
 		var count = 0;
 
+		// Use default type if none was provided.
 		type = type || this.settings.l10n.type;
 
+		// Sanitize type to one of three possibilities: 'words', 'characters_excluding_spaces' or 'characters_including_spaces'.
 		if ( type !== 'characters_excluding_spaces' && type !== 'characters_including_spaces' ) {
 			type = 'words';
 		}
 
+		// If we have any text at all.
 		if ( text ) {
 			text = text + '\n';
 
+			// Replace all HTML with a new-line.
 			text = text.replace( this.settings.HTMLRegExp, '\n' );
+
+			// Remove all HTML comments.
 			text = text.replace( this.settings.HTMLcommentRegExp, '' );
 
+			// If a shortcode regular expression has been provided use it to remove shortcodes.
 			if ( this.settings.shortcodesRegExp ) {
 				text = text.replace( this.settings.shortcodesRegExp, '\n' );
 			}
 
+			// Normalize non-breaking space to a normal space.
 			text = text.replace( this.settings.spaceRegExp, ' ' );
 
 			if ( type === 'words' ) {
+
+				// Remove HTML Entities.
 				text = text.replace( this.settings.HTMLEntityRegExp, '' );
+
+				// Convert connectors to spaces to count attached text as words.
 				text = text.replace( this.settings.connectorRegExp, ' ' );
+
+				// Remove unwanted characters.
 				text = text.replace( this.settings.removeRegExp, '' );
 			} else {
+
+				// Convert HTML Entities to "a".
 				text = text.replace( this.settings.HTMLEntityRegExp, 'a' );
+
+				// Remove surrogate points.
 				text = text.replace( this.settings.astralRegExp, 'a' );
 			}
 
+			// Match with the selected type regular expression to count the items.
 			text = text.match( this.settings[ type + 'RegExp' ] );
 
+			// If we have any matches, set the count to the number of items found.
 			if ( text ) {
 				count = text.length;
 			}
@@ -106,6 +213,7 @@
 		return count;
 	};
 
+	// Add the WordCounter to the WP Utils.
 	window.wp = window.wp || {};
 	window.wp.utils = window.wp.utils || {};
 	window.wp.utils.WordCounter = WordCounter;
diff --git a/wp-admin/link-manager.php b/wp-admin/link-manager.php
index 79abe65b7..25e456459 100644
--- a/wp-admin/link-manager.php
+++ b/wp-admin/link-manager.php
@@ -19,17 +19,23 @@ $doaction = $wp_list_table->current_action();
 if ( $doaction && isset( $_REQUEST['linkcheck'] ) ) {
 	check_admin_referer( 'bulk-bookmarks' );
 
+	$redirect_to = admin_url( 'link-manager.php' );
+	$bulklinks = (array) $_REQUEST['linkcheck'];
+
 	if ( 'delete' == $doaction ) {
-		$bulklinks = (array) $_REQUEST['linkcheck'];
 		foreach ( $bulklinks as $link_id ) {
 			$link_id = (int) $link_id;
 
 			wp_delete_link( $link_id );
 		}
 
-		wp_redirect( add_query_arg('deleted', count( $bulklinks ), admin_url( 'link-manager.php' ) ) );
-		exit;
+		$redirect_to = add_query_arg( 'deleted', count( $bulklinks ), $redirect_to );
+	} else {
+		/** This action is documented in wp-admin/edit-comments.php */
+		$redirect_to = apply_filters( 'handle_bulk_actions-' . get_current_screen()->id, $redirect_to, $doaction, $bulklinks );
 	}
+	wp_redirect( $redirect_to );
+	exit;
 } elseif ( ! empty( $_GET['_wp_http_referer'] ) ) {
 	 wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), wp_unslash( $_SERVER['REQUEST_URI'] ) ) );
 	 exit;
@@ -57,8 +63,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Links_Screen" target="_blank">Documentation on Managing Links</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Links_Screen">Documentation on Managing Links</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
diff --git a/wp-admin/link-parse-opml.php b/wp-admin/link-parse-opml.php
index 1d051b523..42bf52cef 100644
--- a/wp-admin/link-parse-opml.php
+++ b/wp-admin/link-parse-opml.php
@@ -72,6 +72,11 @@ function endElement($parser, $tagName) {
 }
 
 // Create an XML parser
+if ( ! function_exists( 'xml_parser_create' ) ) {
+	trigger_error( __( "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );
+	wp_die( __( "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );
+}
+
 $xml_parser = xml_parser_create();
 
 // Set the functions to handle opening and closing tags
diff --git a/wp-admin/media-new.php b/wp-admin/media-new.php
index 86d8810a9..75ddb16b3 100644
--- a/wp-admin/media-new.php
+++ b/wp-admin/media-new.php
@@ -53,8 +53,8 @@ get_current_screen()->add_help_tab( array(
 ) );
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Media_Add_New_Screen" target="_blank">Documentation on Uploading Media Files</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Media_Add_New_Screen">Documentation on Uploading Media Files</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/media-upload.php b/wp-admin/media-upload.php
index 5f87301e2..ebede4e8f 100644
--- a/wp-admin/media-upload.php
+++ b/wp-admin/media-upload.php
@@ -95,7 +95,7 @@ if ( $tab == 'type' || $tab == 'type_url' || ! array_key_exists( $tab , media_up
 	 *
 	 * @since 2.5.0
 	 */
-	do_action( "media_upload_$type" );
+	do_action( "media_upload_{$type}" );
 } else {
 	/**
 	 * Fires inside limited and specific upload-tab views in the legacy
@@ -107,6 +107,6 @@ if ( $tab == 'type' || $tab == 'type_url' || ! array_key_exists( $tab , media_up
 	 *
 	 * @since 2.5.0
 	 */
-	do_action( "media_upload_$tab" );
+	do_action( "media_upload_{$tab}" );
 }
 
diff --git a/wp-admin/media.php b/wp-admin/media.php
index 88fa51ed4..3fbb9265d 100644
--- a/wp-admin/media.php
+++ b/wp-admin/media.php
@@ -80,8 +80,8 @@ case 'edit' :
 
 	get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Media_Add_New_Screen#Edit_Media" target="_blank">Documentation on Edit Media</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Media_Add_New_Screen#Edit_Media">Documentation on Edit Media</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 	);
 
 	require( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/menu-header.php b/wp-admin/menu-header.php
index df7744db5..31a35c772 100644
--- a/wp-admin/menu-header.php
+++ b/wp-admin/menu-header.php
@@ -234,9 +234,11 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
 		echo "</li>";
 	}
 
-	echo '<li id="collapse-menu" class="hide-if-no-js"><div id="collapse-button"><div></div></div>';
-	echo '<span>' . esc_html__( 'Collapse menu' ) . '</span>';
-	echo '</li>';
+	echo '<li id="collapse-menu" class="hide-if-no-js">' .
+		'<button type="button" id="collapse-button" aria-label="' . esc_attr__( 'Collapse Main menu' ) . '" aria-expanded="true">' .
+		'<span class="collapse-button-icon" aria-hidden="true"></span>' .
+		'<span class="collapse-button-label">' . __( 'Collapse menu' ) . '</span>' .
+		'</button></li>';
 }
 
 ?>
diff --git a/wp-admin/menu.php b/wp-admin/menu.php
index 6c0b38f72..2fd146bd1 100644
--- a/wp-admin/menu.php
+++ b/wp-admin/menu.php
@@ -38,7 +38,7 @@ if ( ! is_multisite() ) {
 		$cap = 'update_plugins';
 	else
 		$cap = 'update_themes';
-	$submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), $cap, 'update-core.php');
+	$submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), $cap, 'update-core.php');
 	unset( $cap );
 }
 
diff --git a/wp-admin/ms-delete-site.php b/wp-admin/ms-delete-site.php
index 9424ae197..6bc3cfcd8 100644
--- a/wp-admin/ms-delete-site.php
+++ b/wp-admin/ms-delete-site.php
@@ -18,13 +18,13 @@ if ( ! current_user_can( 'delete_site' ) )
 if ( isset( $_GET['h'] ) && $_GET['h'] != '' && get_option( 'delete_blog_hash' ) != false ) {
 	if ( hash_equals( get_option( 'delete_blog_hash' ), $_GET['h'] ) ) {
 		wpmu_delete_blog( $wpdb->blogid );
-		wp_die( sprintf( __( 'Thank you for using %s, your site has been deleted. Happy trails to you until we meet again.' ), $current_site->site_name ) );
+		wp_die( sprintf( __( 'Thank you for using %s, your site has been deleted. Happy trails to you until we meet again.' ), get_network()->site_name ) );
 	} else {
 		wp_die( __( "I'm sorry, the link you clicked is stale. Please select another option." ) );
 	}
 }
 
-$blog = get_blog_details();
+$blog = get_site();
 $user = wp_get_current_user();
 
 $title = __( 'Delete Site' );
@@ -42,6 +42,8 @@ if ( isset( $_POST['action'] ) && $_POST['action'] == 'deleteblog' && isset( $_P
 
 	$url_delete = esc_url( admin_url( 'ms-delete-site.php?h=' . $hash ) );
 
+	$switched_locale = switch_to_locale( get_locale() );
+
 	/* translators: Do not translate USERNAME, URL_DELETE, SITE_NAME: those are placeholders. */
 	$content = __( "Howdy ###USERNAME###,
 
@@ -70,22 +72,32 @@ Webmaster
 
 	$content = str_replace( '###USERNAME###', $user->user_login, $content );
 	$content = str_replace( '###URL_DELETE###', $url_delete, $content );
-	$content = str_replace( '###SITE_NAME###', $current_site->site_name, $content );
+	$content = str_replace( '###SITE_NAME###', get_network()->site_name, $content );
 
 	wp_mail( get_option( 'admin_email' ), "[ " . wp_specialchars_decode( get_option( 'blogname' ) ) . " ] ".__( 'Delete My Site' ), $content );
+
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
 	?>
 
 	<p><?php _e( 'Thank you. Please check your email for a link to confirm your action. Your site will not be deleted until this link is clicked.' ) ?></p>
 
 <?php } else {
 	?>
-	<p><?php printf( __( 'If you do not want to use your %s site any more, you can delete it using the form below. When you click <strong>Delete My Site Permanently</strong> you will be sent an email with a link in it. Click on this link to delete your site.'), $current_site->site_name); ?></p>
+	<p><?php printf( __( 'If you do not want to use your %s site any more, you can delete it using the form below. When you click <strong>Delete My Site Permanently</strong> you will be sent an email with a link in it. Click on this link to delete your site.'), get_network()->site_name); ?></p>
 	<p><?php _e( 'Remember, once deleted your site cannot be restored.' ) ?></p>
 
 	<form method="post" name="deletedirect">
 		<?php wp_nonce_field( 'delete-blog' ) ?>
 		<input type="hidden" name="action" value="deleteblog" />
-		<p><input id="confirmdelete" type="checkbox" name="confirmdelete" value="1" /> <label for="confirmdelete"><strong><?php printf( __( "I'm sure I want to permanently disable my site, and I am aware I can never get it back or use %s again." ), is_subdomain_install() ? $blog->domain : $blog->domain . $blog->path ); ?></strong></label></p>
+		<p><input id="confirmdelete" type="checkbox" name="confirmdelete" value="1" /> <label for="confirmdelete"><strong><?php
+			printf(
+				/* translators: %s: site address */
+				__( "I'm sure I want to permanently disable my site, and I am aware I can never get it back or use %s again." ),
+				$blog->domain . $blog->path
+			);
+		?></strong></label></p>
 		<?php submit_button( __( 'Delete My Site Permanently' ) ); ?>
 	</form>
  	<?php
diff --git a/wp-admin/my-sites.php b/wp-admin/my-sites.php
index 6ec3367c9..2478b39b1 100644
--- a/wp-admin/my-sites.php
+++ b/wp-admin/my-sites.php
@@ -23,7 +23,7 @@ $updated = false;
 if ( 'updateblogsettings' == $action && isset( $_POST['primary_blog'] ) ) {
 	check_admin_referer( 'update-my-sites' );
 
-	$blog = get_blog_details( (int) $_POST['primary_blog'] );
+	$blog = get_site( (int) $_POST['primary_blog'] );
 	if ( $blog && isset( $blog->domain ) ) {
 		update_user_option( $current_user->ID, 'primary_blog', (int) $_POST['primary_blog'], true );
 		$updated = true;
@@ -39,14 +39,13 @@ get_current_screen()->add_help_tab( array(
 	'id'      => 'overview',
 	'title'   => __('Overview'),
 	'content' =>
-		'<p>' . __('This screen shows an individual user all of their sites in this network, and also allows that user to set a primary site. They can use the links under each site to visit either the front end or the dashboard for that site.') . '</p>' .
-		'<p>' . __('Up until WordPress version 3.0, what is now called a Multisite Network had to be installed separately as WordPress MU (multi-user).') . '</p>'
+		'<p>' . __('This screen shows an individual user all of their sites in this network, and also allows that user to set a primary site. They can use the links under each site to visit either the front end or the dashboard for that site.') . '</p>'
 ) );
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Dashboard_My_Sites_Screen" target="_blank">Documentation on My Sites</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Dashboard_My_Sites_Screen">Documentation on My Sites</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/nav-menus.php b/wp-admin/nav-menus.php
index 72de2a92c..19348c234 100644
--- a/wp-admin/nav-menus.php
+++ b/wp-admin/nav-menus.php
@@ -518,7 +518,8 @@ if ( ! current_theme_supports( 'menus' ) && ! $num_locations )
 
 if ( ! $locations_screen ) : // Main tab
 	$overview  = '<p>' . __( 'This screen is used for managing your custom navigation menus.' ) . '</p>';
-	$overview .= '<p>' . sprintf( __( 'Menus can be displayed in locations defined by your theme, even used in sidebars by adding a &#8220;Custom Menu&#8221; widget on the <a href="%1$s">Widgets</a> screen. If your theme does not support the custom menus feature (the default themes, %2$s and %3$s, do), you can learn about adding this support by following the Documentation link to the side.' ), admin_url( 'widgets.php' ), 'Twenty Fifteen', 'Twenty Fourteen' ) . '</p>';
+	/* translators: 1: Widgets admin screen URL, 2 and 3: The name of the default themes */
+	$overview .= '<p>' . sprintf( __( 'Menus can be displayed in locations defined by your theme, even used in sidebars by adding a &#8220;Custom Menu&#8221; widget on the <a href="%1$s">Widgets</a> screen. If your theme does not support the custom menus feature (the default themes, %2$s and %3$s, do), you can learn about adding this support by following the Documentation link to the side.' ), admin_url( 'widgets.php' ), 'Twenty Sixteen', 'Twenty Seventeen' ) . '</p>';
 	$overview .= '<p>' . __( 'From this screen you can:' ) . '</p>';
 	$overview .= '<ul><li>' . __( 'Create, edit, and delete menus' ) . '</li>';
 	$overview .= '<li>' . __( 'Add, organize, and modify individual menu items' ) . '</li></ul>';
@@ -567,8 +568,8 @@ endif;
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Appearance_Menus_Screen" target="_blank">Documentation on Menus</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Appearance_Menus_Screen">Documentation on Menus</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 // Get the admin header.
@@ -713,7 +714,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 					</option>
 				<?php endforeach; ?>
 			</select>
-			<span class="submit-btn"><input type="submit" class="button-secondary" value="<?php esc_attr_e( 'Select' ); ?>"></span>
+			<span class="submit-btn"><input type="submit" class="button" value="<?php esc_attr_e( 'Select' ); ?>"></span>
 			<span class="add-new-menu-action">
 				<?php printf( __( 'or <a href="%s">create a new menu</a>.' ), esc_url( add_query_arg( array( 'action' => 'edit', 'menu' => 0 ), admin_url( 'nav-menus.php' ) ) ) ); ?>
 			</span><!-- /add-new-menu-action -->
@@ -759,7 +760,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 							<label class="menu-name-label" for="menu-name"><?php _e( 'Menu Name' ); ?></label>
 							<input name="menu-name" id="menu-name" type="text" class="menu-name regular-text menu-item-textbox" <?php echo $menu_name_val . $menu_name_aria_desc; ?> />
 							<div class="publishing-action">
-								<?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?>
+								<?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'primary large menu-save', 'save_menu', false, array( 'id' => 'save_menu_header' ) ); ?>
 							</div><!-- END .publishing-action -->
 						</div><!-- END .major-publishing-actions -->
 					</div><!-- END .nav-menu-header -->
@@ -798,17 +799,19 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 										$auto_add = false;
 								} ?>
 
-								<dl class="auto-add-pages">
-									<dt class="howto"><?php _e( 'Auto add pages' ); ?></dt>
-									<dd class="checkbox-input"><input type="checkbox"<?php checked( $auto_add ); ?> name="auto-add-pages" id="auto-add-pages" value="1" /> <label for="auto-add-pages"><?php printf( __('Automatically add new top-level pages to this menu' ), esc_url( admin_url( 'edit.php?post_type=page' ) ) ); ?></label></dd>
-								</dl>
+								<fieldset class="menu-settings-group auto-add-pages">
+									<legend class="menu-settings-group-name howto"><?php _e( 'Auto add pages' ); ?></legend>
+									<div class="menu-settings-input checkbox-input">
+										<input type="checkbox"<?php checked( $auto_add ); ?> name="auto-add-pages" id="auto-add-pages" value="1" /> <label for="auto-add-pages"><?php printf( __('Automatically add new top-level pages to this menu' ), esc_url( admin_url( 'edit.php?post_type=page' ) ) ); ?></label>
+									</div>
+								</fieldset>
 
 								<?php if ( current_theme_supports( 'menus' ) ) : ?>
 
-									<dl class="menu-theme-locations">
-										<dt class="howto"><?php _e( 'Theme locations' ); ?></dt>
+									<fieldset class="menu-settings-group menu-theme-locations">
+										<legend class="menu-settings-group-name howto"><?php _e( 'Display location' ); ?></legend>
 										<?php foreach ( $locations as $location => $description ) : ?>
-										<dd class="checkbox-input">
+										<div class="menu-settings-input checkbox-input">
 											<input type="checkbox"<?php checked( isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $nav_menu_selected_id ); ?> name="menu-locations[<?php echo esc_attr( $location ); ?>]" id="locations-<?php echo esc_attr( $location ); ?>" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" />
 											<label for="locations-<?php echo esc_attr( $location ); ?>"><?php echo $description; ?></label>
 											<?php if ( ! empty( $menu_locations[ $location ] ) && $menu_locations[ $location ] != $nav_menu_selected_id ) : ?>
@@ -819,9 +822,9 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 													);
 												?></span>
 											<?php endif; ?>
-										</dd>
+										</div>
 										<?php endforeach; ?>
-									</dl>
+									</fieldset>
 
 								<?php endif; ?>
 
@@ -836,7 +839,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 							</span><!-- END .delete-action -->
 							<?php endif; ?>
 							<div class="publishing-action">
-								<?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'button-primary menu-save', 'save_menu', false, array( 'id' => 'save_menu_footer' ) ); ?>
+								<?php submit_button( empty( $nav_menu_selected_id ) ? __( 'Create Menu' ) : __( 'Save Menu' ), 'primary large menu-save', 'save_menu', false, array( 'id' => 'save_menu_footer' ) ); ?>
 							</div><!-- END .publishing-action -->
 						</div><!-- END .major-publishing-actions -->
 					</div><!-- /#nav-menu-footer -->
diff --git a/wp-admin/network.php b/wp-admin/network.php
index 386bb33bb..cce5ebfbf 100644
--- a/wp-admin/network.php
+++ b/wp-admin/network.php
@@ -63,8 +63,8 @@ $network_help = '<p>' . __('This screen allows you to configure a network as hav
 	'<p>' . __('Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar.') . '</p>' .
 	'<p>' . __('The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with &#8220;/blog/&#8221; from the main site. This disabling will be addressed in a future version.') . '</p>' .
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Create_A_Network" target="_blank">Documentation on Creating a Network</a>') . '</p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Tools_Network_Screen" target="_blank">Documentation on the Network Screen</a>') . '</p>';
+	'<p>' . __( '<a href="https://codex.wordpress.org/Create_A_Network">Documentation on Creating a Network</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://codex.wordpress.org/Tools_Network_Screen">Documentation on the Network Screen</a>' ) . '</p>';
 
 get_current_screen()->add_help_tab( array(
 	'id'      => 'network',
@@ -74,9 +74,9 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Create_A_Network" target="_blank">Documentation on Creating a Network</a>') . '</p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Tools_Network_Screen" target="_blank">Documentation on the Network Screen</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Create_A_Network">Documentation on Creating a Network</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://codex.wordpress.org/Tools_Network_Screen">Documentation on the Network Screen</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/network/about.php b/wp-admin/network/about.php
index 4ad541268..829fa1bee 100644
--- a/wp-admin/network/about.php
+++ b/wp-admin/network/about.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/about.php' );
diff --git a/wp-admin/network/admin.php b/wp-admin/network/admin.php
index 66b899984..693fa5aa1 100644
--- a/wp-admin/network/admin.php
+++ b/wp-admin/network/admin.php
@@ -12,8 +12,10 @@ define( 'WP_NETWORK_ADMIN', true );
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( dirname( __FILE__ ) ) . '/admin.php' );
 
-if ( ! is_multisite() )
+// Do not remove this check. It is required by individual network admin pages.
+if ( ! is_multisite() ) {
 	wp_die( __( 'Multisite support is not enabled.' ) );
+}
 
 $redirect_network_admin_request = 0 !== strcasecmp( $current_blog->domain, $current_site->domain ) || 0 !== strcasecmp( $current_blog->path, $current_site->path );
 
diff --git a/wp-admin/network/credits.php b/wp-admin/network/credits.php
index 3d3ae1496..75ee6e733 100644
--- a/wp-admin/network/credits.php
+++ b/wp-admin/network/credits.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/credits.php' );
diff --git a/wp-admin/network/edit.php b/wp-admin/network/edit.php
index a5bb19602..66f194262 100644
--- a/wp-admin/network/edit.php
+++ b/wp-admin/network/edit.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( empty( $_GET['action'] ) ) {
 	wp_redirect( network_admin_url() );
 	exit;
diff --git a/wp-admin/network/freedoms.php b/wp-admin/network/freedoms.php
index da7f86bd2..9afbe82f3 100644
--- a/wp-admin/network/freedoms.php
+++ b/wp-admin/network/freedoms.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/freedoms.php' );
diff --git a/wp-admin/network/index.php b/wp-admin/network/index.php
index 796191f01..81ededbe3 100644
--- a/wp-admin/network/index.php
+++ b/wp-admin/network/index.php
@@ -13,9 +13,6 @@ require_once( dirname( __FILE__ ) . '/admin.php' );
 /** Load WordPress dashboard API */
 require_once( ABSPATH . 'wp-admin/includes/dashboard.php' );
 
-if ( !is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can( 'manage_network' ) )
 	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
 
@@ -50,8 +47,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin" target="_blank">Documentation on the Network Admin</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin">Documentation on the Network Admin</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>'
 );
 
 wp_dashboard_setup();
diff --git a/wp-admin/network/menu.php b/wp-admin/network/menu.php
index 8b5f00269..1cb22f222 100644
--- a/wp-admin/network/menu.php
+++ b/wp-admin/network/menu.php
@@ -14,7 +14,7 @@ $submenu['index.php'][0] = array( __( 'Home' ), 'read', 'index.php' );
 
 $update_data = wp_get_update_data();
 if ( $update_data['counts']['total'] ) {
-	$submenu['index.php'][10] = array( sprintf( __( 'Updates %s' ), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n( $update_data['counts']['total'] ) . "</span></span>" ), 'update_core', 'update-core.php' );
+	$submenu['index.php'][10] = array( sprintf( __( 'Updates %s' ), "<span class='update-plugins count-{$update_data['counts']['total']}'><span class='update-count'>" . number_format_i18n( $update_data['counts']['total'] ) . "</span></span>" ), 'update_core', 'update-core.php' );
 } else {
 	$submenu['index.php'][10] = array( __( 'Updates' ), 'update_core', 'update-core.php' );
 }
diff --git a/wp-admin/network/plugin-editor.php b/wp-admin/network/plugin-editor.php
index 9af590c45..7171e7252 100644
--- a/wp-admin/network/plugin-editor.php
+++ b/wp-admin/network/plugin-editor.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/plugin-editor.php' );
diff --git a/wp-admin/network/plugin-install.php b/wp-admin/network/plugin-install.php
index a8a1c1729..26b3b0c86 100644
--- a/wp-admin/network/plugin-install.php
+++ b/wp-admin/network/plugin-install.php
@@ -13,7 +13,4 @@ if ( isset( $_GET['tab'] ) && ( 'plugin-information' == $_GET['tab'] ) )
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/plugin-install.php' );
diff --git a/wp-admin/network/plugins.php b/wp-admin/network/plugins.php
index e99706052..56c3debd0 100644
--- a/wp-admin/network/plugins.php
+++ b/wp-admin/network/plugins.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/plugins.php' );
diff --git a/wp-admin/network/profile.php b/wp-admin/network/profile.php
index df6b78271..240ef980a 100644
--- a/wp-admin/network/profile.php
+++ b/wp-admin/network/profile.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/profile.php' );
diff --git a/wp-admin/network/settings.php b/wp-admin/network/settings.php
index bad65475e..5d81cdf36 100644
--- a/wp-admin/network/settings.php
+++ b/wp-admin/network/settings.php
@@ -13,9 +13,6 @@ require_once( dirname( __FILE__ ) . '/admin.php' );
 /** WordPress Translation Install API */
 require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can( 'manage_network_options' ) )
 	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
 
@@ -40,8 +37,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Settings_Screen" target="_blank">Documentation on Network Settings</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Settings_Screen">Documentation on Network Settings</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 if ( $_POST ) {
@@ -107,7 +104,7 @@ if ( isset( $_GET['updated'] ) ) {
 			<tr>
 				<th scope="row"><label for="site_name"><?php _e( 'Network Title' ) ?></label></th>
 				<td>
-					<input name="site_name" type="text" id="site_name" class="regular-text" value="<?php echo esc_attr( $current_site->site_name ) ?>" />
+					<input name="site_name" type="text" id="site_name" class="regular-text" value="<?php echo esc_attr( get_network()->site_name ) ?>" />
 				</td>
 			</tr>
 
@@ -309,7 +306,13 @@ if ( isset( $_GET['updated'] ) ) {
 			<tr>
 				<th scope="row"><label for="fileupload_maxk"><?php _e( 'Max upload file size' ) ?></label></th>
 				<td>
-					<?php printf( _x( '%s KB', 'File size in kilobytes' ), '<input name="fileupload_maxk" type="number" min="0" style="width: 100px" id="fileupload_maxk" aria-describedby="fileupload-maxk-desc" value="' . esc_attr( get_site_option( 'fileupload_maxk', 300 ) ) . '" />' ); ?>
+					<?php
+						printf(
+							/* translators: %s: File size in kilobytes */
+							__( '%s KB' ),
+							'<input name="fileupload_maxk" type="number" min="0" style="width: 100px" id="fileupload_maxk" aria-describedby="fileupload-maxk-desc" value="' . esc_attr( get_site_option( 'fileupload_maxk', 300 ) ) . '" />'
+						);
+					?>
 					<p class="screen-reader-text" id="fileupload-maxk-desc">
 						<?php _e( 'Size in kilobytes' ) ?>
 					</p>
diff --git a/wp-admin/network/setup.php b/wp-admin/network/setup.php
index 35938990e..9a642bbb9 100644
--- a/wp-admin/network/setup.php
+++ b/wp-admin/network/setup.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/network.php' );
diff --git a/wp-admin/network/site-info.php b/wp-admin/network/site-info.php
index cb5ec6e24..d5d5ce450 100644
--- a/wp-admin/network/site-info.php
+++ b/wp-admin/network/site-info.php
@@ -10,10 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() ) {
-	wp_die( __( 'Multisite support is not enabled.' ) );
-}
-
 if ( ! current_user_can( 'manage_sites' ) ) {
 	wp_die( __( 'Sorry, you are not allowed to edit this site.' ) );
 }
@@ -31,8 +27,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen" target="_blank">Documentation on Site Management</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>' ) . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen">Documentation on Site Management</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>' ) . '</p>'
 );
 
 $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
@@ -41,7 +37,7 @@ if ( ! $id ) {
 	wp_die( __('Invalid site ID.') );
 }
 
-$details = get_blog_details( $id );
+$details = get_site( $id );
 if ( ! $details ) {
 	wp_die( __( 'The requested site does not exist.' ) );
 }
@@ -88,7 +84,7 @@ if ( isset( $_REQUEST['action'] ) && 'update-site' == $_REQUEST['action'] ) {
 		$blog_data['path'] = $update_parsed_url['path'];
 	}
 
-	$existing_details = get_blog_details( $id, false );
+	$existing_details = get_site( $id );
 	$blog_data_checkboxes = array( 'public', 'archived', 'spam', 'mature', 'deleted' );
 	foreach ( $blog_data_checkboxes as $c ) {
 		if ( ! in_array( $existing_details->$c, array( 0, 1 ) ) ) {
@@ -101,7 +97,7 @@ if ( isset( $_REQUEST['action'] ) && 'update-site' == $_REQUEST['action'] ) {
 	update_blog_details( $id, $blog_data );
 
 	// Maybe update home and siteurl options.
-	$new_details = get_blog_details( $id, false );
+	$new_details = get_site( $id );
 
 	$old_home_url = trailingslashit( esc_url( get_option( 'home' ) ) );
 	$old_home_parsed = parse_url( $old_home_url );
@@ -131,6 +127,7 @@ if ( isset( $_GET['update'] ) ) {
 	}
 }
 
+/* translators: %s: site name */
 $title = sprintf( __( 'Edit Site: %s' ), esc_html( $details->blogname ) );
 
 $parent_file = 'sites.php';
diff --git a/wp-admin/network/site-new.php b/wp-admin/network/site-new.php
index 7882d0e37..0be051ec8 100644
--- a/wp-admin/network/site-new.php
+++ b/wp-admin/network/site-new.php
@@ -13,9 +13,6 @@ require_once( dirname( __FILE__ ) . '/admin.php' );
 /** WordPress Translation Install API */
 require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can( 'manage_sites' ) )
 	wp_die( __( 'Sorry, you are not allowed to add sites to this network.' ) );
 
@@ -29,8 +26,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen" target="_blank">Documentation on Site Management</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen">Documentation on Site Management</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>'
 );
 
 if ( isset($_REQUEST['action']) && 'add-site' == $_REQUEST['action'] ) {
@@ -65,10 +62,14 @@ if ( isset($_REQUEST['action']) && 'add-site' == $_REQUEST['action'] ) {
 	);
 
 	// Handle translation install for the new site.
-	if ( ! empty( $_POST['WPLANG'] ) && wp_can_install_language_pack() ) {
-		$language = wp_download_language_pack( wp_unslash( $_POST['WPLANG'] ) );
-		if ( $language ) {
-			$meta['WPLANG'] = $language;
+	if ( isset( $_POST['WPLANG'] ) ) {
+		if ( '' === $_POST['WPLANG'] ) {
+			$meta['WPLANG'] = ''; // en_US
+		} elseif ( wp_can_install_language_pack() ) {
+			$language = wp_download_language_pack( wp_unslash( $_POST['WPLANG'] ) );
+			if ( $language ) {
+				$meta['WPLANG'] = $language;
+			}
 		}
 	}
 
@@ -85,11 +86,11 @@ if ( isset($_REQUEST['action']) && 'add-site' == $_REQUEST['action'] ) {
 	}
 
 	if ( is_subdomain_install() ) {
-		$newdomain = $domain . '.' . preg_replace( '|^www\.|', '', $current_site->domain );
-		$path      = $current_site->path;
+		$newdomain = $domain . '.' . preg_replace( '|^www\.|', '', get_network()->domain );
+		$path      = get_network()->path;
 	} else {
-		$newdomain = $current_site->domain;
-		$path      = $current_site->path . $domain . '/';
+		$newdomain = get_network()->domain;
+		$path      = get_network()->path . $domain . '/';
 	}
 
 	$password = 'N/A';
@@ -125,7 +126,7 @@ if ( isset($_REQUEST['action']) && 'add-site' == $_REQUEST['action'] ) {
 	}
 
 	$wpdb->hide_errors();
-	$id = wpmu_create_blog( $newdomain, $path, $title, $user_id, $meta, $current_site->id );
+	$id = wpmu_create_blog( $newdomain, $path, $title, $user_id, $meta, get_current_network_id() );
 	$wpdb->show_errors();
 	if ( ! is_wp_error( $id ) ) {
 		if ( ! is_super_admin( $user_id ) && !get_user_option( 'primary_blog', $user_id ) ) {
@@ -137,7 +138,7 @@ if ( isset($_REQUEST['action']) && 'add-site' == $_REQUEST['action'] ) {
 			sprintf(
 				/* translators: %s: network name */
 				__( '[%s] New Site Created' ),
-				$current_site->site_name
+				get_network()->site_name
 			),
 			sprintf(
 				/* translators: 1: user login, 2: site url, 3: site name/title */
@@ -197,9 +198,9 @@ if ( ! empty( $messages ) ) {
 			<th scope="row"><label for="site-address"><?php _e( 'Site Address (URL)' ) ?></label></th>
 			<td>
 			<?php if ( is_subdomain_install() ) { ?>
-				<input name="blog[domain]" type="text" class="regular-text" id="site-address" aria-describedby="site-address-desc" autocapitalize="none" autocorrect="off"/><span class="no-break">.<?php echo preg_replace( '|^www\.|', '', $current_site->domain ); ?></span>
+				<input name="blog[domain]" type="text" class="regular-text" id="site-address" aria-describedby="site-address-desc" autocapitalize="none" autocorrect="off"/><span class="no-break">.<?php echo preg_replace( '|^www\.|', '', get_network()->domain ); ?></span>
 			<?php } else {
-				echo $current_site->domain . $current_site->path ?><input name="blog[domain]" type="text" class="regular-text" id="site-address" aria-describedby="site-address-desc"  autocapitalize="none" autocorrect="off" />
+				echo get_network()->domain . get_network()->path ?><input name="blog[domain]" type="text" class="regular-text" id="site-address" aria-describedby="site-address-desc"  autocapitalize="none" autocorrect="off" />
 			<?php }
 			echo '<p class="description" id="site-address-desc">' . __( 'Only lowercase letters (a-z), numbers, and hyphens are allowed.' ) . '</p>';
 			?>
diff --git a/wp-admin/network/site-settings.php b/wp-admin/network/site-settings.php
index 550fae96a..9d13d307f 100644
--- a/wp-admin/network/site-settings.php
+++ b/wp-admin/network/site-settings.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can( 'manage_sites' ) )
 	wp_die( __( 'Sorry, you are not allowed to edit this site.' ) );
 
@@ -29,8 +26,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen" target="_blank">Documentation on Site Management</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen">Documentation on Site Management</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>'
 );
 
 $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
@@ -38,7 +35,7 @@ $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
 if ( ! $id )
 	wp_die( __('Invalid site ID.') );
 
-$details = get_blog_details( $id );
+$details = get_site( $id );
 if ( ! $details ) {
 	wp_die( __( 'The requested site does not exist.' ) );
 }
@@ -83,6 +80,7 @@ if ( isset($_GET['update']) ) {
 		$messages[] = __('Site options updated.');
 }
 
+/* translators: %s: site name */
 $title = sprintf( __( 'Edit Site: %s' ), esc_html( $details->blogname ) );
 
 $parent_file = 'sites.php';
diff --git a/wp-admin/network/site-themes.php b/wp-admin/network/site-themes.php
index f545f4756..a500c5333 100644
--- a/wp-admin/network/site-themes.php
+++ b/wp-admin/network/site-themes.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can( 'manage_sites' ) )
 	wp_die( __( 'Sorry, you are not allowed to manage themes for this site.' ) );
 
@@ -29,8 +26,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen" target="_blank">Documentation on Site Management</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen">Documentation on Site Management</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
@@ -61,7 +58,7 @@ if ( ! $id )
 
 $wp_list_table->prepare_items();
 
-$details = get_blog_details( $id );
+$details = get_site( $id );
 if ( ! $details ) {
 	wp_die( __( 'The requested site does not exist.' ) );
 }
@@ -122,6 +119,29 @@ if ( $action ) {
 				$n = 'none';
 			}
 			break;
+		default:
+			if ( isset( $_POST['checked'] ) ) {
+				check_admin_referer( 'bulk-themes' );
+				$themes = (array) $_POST['checked'];
+				$n = count( $themes );
+				/**
+				 * Fires when a custom bulk action should be handled.
+				 *
+				 * The redirect link should be modified with success or failure feedback
+				 * from the action to be used to display feedback to the user.
+				 *
+				 * @since 4.7.0
+				 *
+				 * @param string $redirect_url The redirect URL.
+				 * @param string $action       The action being taken.
+				 * @param array  $items        The items to take the action on.
+				 * @param int    $site_id      The site id.
+				 */
+				$referer = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $referer, $action, $themes, $id );
+			} else {
+				$action = 'error';
+				$n = 'none';
+			}
 	}
 
 	update_option( 'allowedthemes', $allowed_themes );
@@ -139,6 +159,7 @@ if ( isset( $_GET['action'] ) && 'update-site' == $_GET['action'] ) {
 add_thickbox();
 add_screen_option( 'per_page' );
 
+/* translators: %s: site name */
 $title = sprintf( __( 'Edit Site: %s' ), esc_html( $details->blogname ) );
 
 $parent_file = 'sites.php';
diff --git a/wp-admin/network/site-users.php b/wp-admin/network/site-users.php
index a3857b70d..fcd1a863d 100644
--- a/wp-admin/network/site-users.php
+++ b/wp-admin/network/site-users.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can('manage_sites') )
 	wp_die(__('Sorry, you are not allowed to edit this site.'));
 
@@ -32,8 +29,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen" target="_blank">Documentation on Site Management</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen">Documentation on Site Management</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
@@ -54,7 +51,7 @@ $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
 if ( ! $id )
 	wp_die( __('Invalid site ID.') );
 
-$details = get_blog_details( $id );
+$details = get_site( $id );
 if ( ! $details ) {
 	wp_die( __( 'The requested site does not exist.' ) );
 }
@@ -117,8 +114,10 @@ if ( $action ) {
 			break;
 
 		case 'remove':
-			if ( ! current_user_can( 'remove_users' )  )
-				die(__('You can&#8217;t remove users.'));
+			if ( ! current_user_can( 'remove_users' ) ) {
+				wp_die( __( 'Sorry, you are not allowed to remove users.' ) );
+			}
+
 			check_admin_referer( 'bulk-users' );
 
 			$update = 'remove';
@@ -139,8 +138,9 @@ if ( $action ) {
 		case 'promote':
 			check_admin_referer( 'bulk-users' );
 			$editable_roles = get_editable_roles();
-			if ( empty( $editable_roles[$_REQUEST['new_role']] ) )
-				wp_die(__('You can&#8217;t give users that role.'));
+			if ( empty( $editable_roles[ $_REQUEST['new_role'] ] ) ) {
+				wp_die( __( 'Sorry, you are not allowed to give users that role.' ) );
+			}
 
 			if ( isset( $_REQUEST['users'] ) ) {
 				$userids = $_REQUEST['users'];
@@ -164,6 +164,16 @@ if ( $action ) {
 				$update = 'err_promote';
 			}
 			break;
+		default:
+			if ( ! isset( $_REQUEST['users'] ) ) {
+				break;
+			}
+			check_admin_referer( 'bulk-users' );
+			$userids = $_REQUEST['users'];
+			/** This action is documented in wp-admin/network/site-themes.php */
+			$referer = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $referer, $action, $userids, $id );
+			$update = $action;
+			break;
 	}
 
 	wp_safe_redirect( add_query_arg( 'update', $update, $referer ) );
@@ -179,6 +189,7 @@ if ( isset( $_GET['action'] ) && 'update-site' == $_GET['action'] ) {
 
 add_screen_option( 'per_page' );
 
+/* translators: %s: site name */
 $title = sprintf( __( 'Edit Site: %s' ), esc_html( $details->blogname ) );
 
 $parent_file = 'sites.php';
diff --git a/wp-admin/network/sites.php b/wp-admin/network/sites.php
index 724c2cf52..96d708ac5 100644
--- a/wp-admin/network/sites.php
+++ b/wp-admin/network/sites.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can( 'manage_sites' ) )
 	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
 
@@ -42,8 +39,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen" target="_blank">Documentation on Site Management</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Sites_Screen">Documentation on Site Management</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
@@ -90,11 +87,11 @@ if ( isset( $_GET['action'] ) ) {
 			header( 'Content-Type: text/html; charset=utf-8' );
 		}
 
-		if ( $current_site->blog_id == $id ) {
+		if ( get_network()->site_id == $id ) {
 			wp_die( __( 'Sorry, you are not allowed to change the current site.' ) );
 		}
 
-		$site_details = get_blog_details( $id );
+		$site_details = get_site( $id );
 		$site_address = untrailingslashit( $site_details->domain . $site_details->path );
 
 		require_once( ABSPATH . 'wp-admin/admin-header.php' );
@@ -129,7 +126,7 @@ if ( isset( $_GET['action'] ) ) {
 				wp_die( __( 'Sorry, you are not allowed to access this page.' ), '', array( 'response' => 403 ) );
 
 			$updated_action = 'not_deleted';
-			if ( $id != '0' && $id != $current_site->blog_id && current_user_can( 'delete_site', $id ) ) {
+			if ( $id != '0' && $id != get_network()->site_id && current_user_can( 'delete_site', $id ) ) {
 				wpmu_delete_blog( $id, true );
 				$updated_action = 'delete';
 			}
@@ -140,7 +137,7 @@ if ( isset( $_GET['action'] ) ) {
 				$doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
 
 				foreach ( (array) $_POST['allblogs'] as $key => $val ) {
-					if ( $val != '0' && $val != $current_site->blog_id ) {
+					if ( $val != '0' && $val != get_network()->site_id ) {
 						switch ( $doaction ) {
 							case 'delete':
 								if ( ! current_user_can( 'delete_site', $val ) )
@@ -160,6 +157,14 @@ if ( isset( $_GET['action'] ) ) {
 						wp_die( __( 'Sorry, you are not allowed to change the current site.' ) );
 					}
 				}
+				if ( ! in_array( $doaction, array( 'delete', 'spam', 'notspam' ), true ) ) {
+					$redirect_to = wp_get_referer();
+					$blogs = (array) $_POST['allblogs'];
+					/** This action is documented in wp-admin/network/site-themes.php */
+					$redirect_to = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $redirect_to, $doaction, $blogs, $id );
+					wp_safe_redirect( $redirect_to );
+					exit();
+				}
 			} else {
 				$location = network_admin_url( 'sites.php' );
 				if ( ! empty( $_REQUEST['paged'] ) ) {
@@ -273,7 +278,7 @@ if ( isset( $_GET['updated'] ) ) {
 	}
 
 	if ( ! empty( $msg ) )
-		$msg = '<div class="updated" id="message notice is-dismissible"><p>' . $msg . '</p></div>';
+		$msg = '<div id="message" class="updated notice is-dismissible"><p>' . $msg . '</p></div>';
 }
 
 $wp_list_table->prepare_items();
diff --git a/wp-admin/network/theme-editor.php b/wp-admin/network/theme-editor.php
index 621c506c2..c28c9675c 100644
--- a/wp-admin/network/theme-editor.php
+++ b/wp-admin/network/theme-editor.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/theme-editor.php' );
diff --git a/wp-admin/network/theme-install.php b/wp-admin/network/theme-install.php
index c666eaff1..4d4ee5ce8 100644
--- a/wp-admin/network/theme-install.php
+++ b/wp-admin/network/theme-install.php
@@ -13,7 +13,4 @@ if ( isset( $_GET['tab'] ) && ( 'theme-information' == $_GET['tab'] ) )
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/theme-install.php' );
diff --git a/wp-admin/network/themes.php b/wp-admin/network/themes.php
index 171afc359..baaa6d802 100644
--- a/wp-admin/network/themes.php
+++ b/wp-admin/network/themes.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( !current_user_can('manage_network_themes') )
 	wp_die( __( 'Sorry, you are not allowed to manage network themes.' ) );
 
@@ -161,9 +158,9 @@ if ( $action ) {
 						wp_nonce_field( 'bulk-themes' );
 
 						if ( 1 == $themes_to_delete ) {
-							submit_button( __( 'Yes, delete this theme' ), 'button', 'submit', false );
+							submit_button( __( 'Yes, delete this theme' ), '', 'submit', false );
 						} else {
-							submit_button( __( 'Yes, delete these themes' ), 'button', 'submit', false );
+							submit_button( __( 'Yes, delete these themes' ), '', 'submit', false );
 						}
 					?>
 				</form>
@@ -171,7 +168,7 @@ if ( $action ) {
 				$referer = wp_get_referer();
 				?>
 				<form method="post" action="<?php echo $referer ? esc_url( $referer ) : ''; ?>" style="display:inline;">
-					<?php submit_button( __( 'No, return me to the theme list' ), 'button', 'submit', false ); ?>
+					<?php submit_button( __( 'No, return me to the theme list' ), '', 'submit', false ); ?>
 				</form>
 			</div>
 				<?php
@@ -195,7 +192,21 @@ if ( $action ) {
 				's' => $s
 			), network_admin_url( 'themes.php' ) ) );
 			exit;
+		default:
+			$themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
+			if ( empty( $themes ) ) {
+				wp_safe_redirect( add_query_arg( 'error', 'none', $referer ) );
+				exit;
+			}
+			check_admin_referer( 'bulk-themes' );
+
+			/** This action is documented in wp-admin/network/site-themes.php */
+			$referer = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $referer, $action, $themes );
+
+			wp_safe_redirect( $referer );
+			exit;
 	}
+
 }
 
 $wp_list_table->prepare_items();
@@ -215,8 +226,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Themes_Screen" target="_blank">Documentation on Network Themes</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Themes_Screen">Documentation on Network Themes</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
diff --git a/wp-admin/network/update-core.php b/wp-admin/network/update-core.php
index 3d2825a95..55f2aca32 100644
--- a/wp-admin/network/update-core.php
+++ b/wp-admin/network/update-core.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/update-core.php' );
diff --git a/wp-admin/network/update.php b/wp-admin/network/update.php
index c90098b25..db63968d1 100644
--- a/wp-admin/network/update.php
+++ b/wp-admin/network/update.php
@@ -13,7 +13,4 @@ if ( isset( $_GET['action'] ) && in_array( $_GET['action'], array( 'update-selec
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/update.php' );
diff --git a/wp-admin/network/upgrade.php b/wp-admin/network/upgrade.php
index 199838cf5..5c2d3f990 100644
--- a/wp-admin/network/upgrade.php
+++ b/wp-admin/network/upgrade.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require_once( ABSPATH . WPINC . '/http.php' );
 
 $title = __( 'Upgrade Network' );
@@ -29,8 +26,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Updates_Screen" target="_blank">Documentation on Upgrade Network</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Updates_Screen">Documentation on Upgrade Network</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
@@ -55,14 +52,24 @@ switch ( $action ) {
 			update_site_option( 'wpmu_upgrade_site', $wp_db_version );
 		}
 
-		$blogs = $wpdb->get_results( "SELECT blog_id FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' AND spam = '0' AND deleted = '0' AND archived = '0' ORDER BY registered DESC LIMIT {$n}, 5", ARRAY_A );
-		if ( empty( $blogs ) ) {
+		$site_ids = get_sites( array(
+			'spam'       => 0,
+			'deleted'    => 0,
+			'archived'   => 0,
+			'network_id' => get_current_network_id(),
+			'number'     => 5,
+			'offset'     => $n,
+			'fields'     => 'ids',
+			'order'      => 'DESC',
+			'orderby'    => 'id',
+		) );
+		if ( empty( $site_ids ) ) {
 			echo '<p>' . __( 'All done!' ) . '</p>';
 			break;
 		}
 		echo "<ul>";
-		foreach ( (array) $blogs as $details ) {
-			switch_to_blog( $details['blog_id'] );
+		foreach ( (array) $site_ids as $site_id ) {
+			switch_to_blog( $site_id );
 			$siteurl = site_url();
 			$upgrade_url = admin_url( 'upgrade.php?step=upgrade_db' );
 			restore_current_blog();
@@ -96,9 +103,9 @@ switch ( $action ) {
 			 *
 			 * @since MU
 			 *
-			 * @param int $blog_id The Site ID.
+			 * @param int $site_id The Site ID.
 			 */
-			do_action( 'wpmu_upgrade_site', $details[ 'blog_id' ] );
+			do_action( 'wpmu_upgrade_site', $site_id );
 		}
 		echo "</ul>";
 		?><p><?php _e( 'If your browser doesn&#8217;t start loading the next page automatically, click this link:' ); ?> <a class="button" href="upgrade.php?action=upgrade&amp;n=<?php echo ($n + 5) ?>"><?php _e("Next Sites"); ?></a></p>
diff --git a/wp-admin/network/user-edit.php b/wp-admin/network/user-edit.php
index effaaf8a0..ef3c2720f 100644
--- a/wp-admin/network/user-edit.php
+++ b/wp-admin/network/user-edit.php
@@ -10,7 +10,4 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 require( ABSPATH . 'wp-admin/user-edit.php' );
diff --git a/wp-admin/network/user-new.php b/wp-admin/network/user-new.php
index fae3fcb00..52941e292 100644
--- a/wp-admin/network/user-new.php
+++ b/wp-admin/network/user-new.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can('create_users') )
 	wp_die(__('Sorry, you are not allowed to add users to this network.'));
 
@@ -26,8 +23,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Users_Screen" target="_blank">Documentation on Network Users</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Users_Screen">Documentation on Network Users</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>'
 );
 
 if ( isset($_REQUEST['action']) && 'add-user' == $_REQUEST['action'] ) {
diff --git a/wp-admin/network/users.php b/wp-admin/network/users.php
index cc3edc2ca..90ece927d 100644
--- a/wp-admin/network/users.php
+++ b/wp-admin/network/users.php
@@ -10,9 +10,6 @@
 /** Load WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
-if ( ! is_multisite() )
-	wp_die( __( 'Multisite support is not enabled.' ) );
-
 if ( ! current_user_can( 'manage_network_users' ) )
 	wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
 
@@ -75,7 +72,7 @@ if ( isset( $_GET['action'] ) ) {
 								$userfunction = 'all_spam';
 								$blogs = get_blogs_of_user( $user_id, true );
 								foreach ( (array) $blogs as $details ) {
-									if ( $details->userblog_id != $current_site->blog_id ) // main blog not a spam !
+									if ( $details->userblog_id != get_network()->site_id ) // main blog not a spam !
 										update_blog_status( $details->userblog_id, 'spam', '1' );
 								}
 								update_user_status( $user_id, 'spam', '1' );
@@ -93,6 +90,17 @@ if ( isset( $_GET['action'] ) ) {
 					}
 				}
 
+				if ( ! in_array( $doaction, array( 'delete', 'spam', 'notspam' ), true ) ) {
+					$sendback = wp_get_referer();
+
+					$user_ids = (array) $_POST['allusers'];
+					/** This action is documented in wp-admin/network/site-themes.php */
+					$sendback = apply_filters( 'handle_network_bulk_actions-' . get_current_screen()->id, $sendback, $doaction, $user_ids );
+
+					wp_safe_redirect( $sendback );
+					exit();
+				}
+
 				wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $userfunction ), wp_get_referer() ) );
 			} else {
 				$location = network_admin_url( 'users.php' );
@@ -168,8 +176,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Users_Screen" target="_blank">Documentation on Network Users</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Network_Admin_Users_Screen">Documentation on Network Users</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/forum/multisite/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
diff --git a/wp-admin/options-discussion.php b/wp-admin/options-discussion.php
index 5b27e14a3..fefc0d82d 100644
--- a/wp-admin/options-discussion.php
+++ b/wp-admin/options-discussion.php
@@ -25,8 +25,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Discussion_Screen" target="_blank">Documentation on Discussion Settings</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Discussion_Screen">Documentation on Discussion Settings</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
@@ -107,6 +107,7 @@ $default_comments_page .= '>' . __('last') . '</option><option value="oldest"';
 if ( 'oldest' == get_option('default_comments_page') ) $default_comments_page .= ' selected="selected"';
 $default_comments_page .= '>' . __('first') . '</option></select>';
 
+/* translators: 1: Form field control for number of top level comments per page, 2: Form field control for the 'first' or 'last' page */
 printf( __('Break comments into pages with %1$s top level comments per page and the %2$s page displayed by default'), '</label><label for="comments_per_page"><input name="comments_per_page" type="number" step="1" min="0" id="comments_per_page" value="' . esc_attr(get_option('comments_per_page')) . '" class="small-text" />', $default_comments_page );
 
 ?></label>
diff --git a/wp-admin/options-general.php b/wp-admin/options-general.php
index 426ebaae1..22d475c2e 100644
--- a/wp-admin/options-general.php
+++ b/wp-admin/options-general.php
@@ -42,8 +42,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Settings_General_Screen" target="_blank">Documentation on General Settings</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Settings_General_Screen">Documentation on General Settings</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
@@ -147,17 +147,17 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
 <td>
 
 <select id="timezone_string" name="timezone_string" aria-describedby="timezone-description">
-<?php echo wp_timezone_choice($tzstring); ?>
+	<?php echo wp_timezone_choice( $tzstring, get_user_locale() ); ?>
 </select>
 
-<p class="description" id="timezone-description"><?php _e( 'Choose a city in the same timezone as you.' ); ?></p>
+<p class="description" id="timezone-description"><?php _e( 'Choose either a city in the same timezone as you or a UTC timezone offset.' ); ?></p>
 
 <p class="timezone-info">
 	<span id="utc-time"><?php
 		/* translators: 1: UTC abbreviation, 2: UTC time */
 		printf( __( 'Universal time (%1$s) is %2$s.' ),
 			'<abbr>' . __( 'UTC' ) . '</abbr>',
-			'<code>' . date_i18n( $timezone_format, false, 'gmt' ) . '</code>'
+			'<code>' . date_i18n( $timezone_format, false, true ) . '</code>'
 		);
 	?></span>
 <?php if ( get_option( 'timezone_string' ) || ! empty( $current_offset ) ) : ?>
diff --git a/wp-admin/options-media.php b/wp-admin/options-media.php
index 2f7e0abbd..698b98dce 100644
--- a/wp-admin/options-media.php
+++ b/wp-admin/options-media.php
@@ -31,8 +31,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Media_Screen" target="_blank">Documentation on Media Settings</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Media_Screen">Documentation on Media Settings</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/options-permalink.php b/wp-admin/options-permalink.php
index b6c52c517..95c1a3e0b 100644
--- a/wp-admin/options-permalink.php
+++ b/wp-admin/options-permalink.php
@@ -41,9 +41,9 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Permalinks_Screen" target="_blank">Documentation on Permalinks Settings</a>') . '</p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Using_Permalinks" target="_blank">Documentation on Using Permalinks</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Permalinks_Screen">Documentation on Permalinks Settings</a>') . '</p>' .
+	'<p>' . __('<a href="https://codex.wordpress.org/Using_Permalinks">Documentation on Using Permalinks</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 add_filter('admin_head', 'options_permalink_add_js');
diff --git a/wp-admin/options-reading.php b/wp-admin/options-reading.php
index 7ad94fbad..69c425f75 100644
--- a/wp-admin/options-reading.php
+++ b/wp-admin/options-reading.php
@@ -35,8 +35,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Reading_Screen" target="_blank">Documentation on Reading Settings</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Reading_Screen">Documentation on Reading Settings</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/options-writing.php b/wp-admin/options-writing.php
index 6248ba9e1..aa314f3bf 100644
--- a/wp-admin/options-writing.php
+++ b/wp-admin/options-writing.php
@@ -42,8 +42,8 @@ if ( apply_filters( 'enable_update_services_configuration', true ) ) {
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Writing_Screen" target="_blank">Documentation on Writing Settings</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Settings_Writing_Screen">Documentation on Writing Settings</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 include( ABSPATH . 'wp-admin/admin-header.php' );
diff --git a/wp-admin/options.php b/wp-admin/options.php
index f319d5208..174748908 100644
--- a/wp-admin/options.php
+++ b/wp-admin/options.php
@@ -47,7 +47,7 @@ if ( empty($option_page) ) {
 if ( ! current_user_can( $capability ) ) {
 	wp_die(
 		'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
-		'<p>' . __( 'Sorry, you are not allowed to manage these items.' ) . '</p>',
+		'<p>' . __( 'Sorry, you are not allowed to manage these options.' ) . '</p>',
 		403
 	);
 }
@@ -194,6 +194,8 @@ if ( 'update' == $action ) {
 	}
 
 	if ( $options ) {
+		$user_language_old = get_user_locale();
+
 		foreach ( $options as $option ) {
 			if ( $unregistered ) {
 				_deprecated_argument( 'options.php', '2.7.0',
@@ -209,19 +211,23 @@ if ( 'update' == $action ) {
 			$value = null;
 			if ( isset( $_POST[ $option ] ) ) {
 				$value = $_POST[ $option ];
-				if ( ! is_array( $value ) )
+				if ( ! is_array( $value ) ) {
 					$value = trim( $value );
+				}
 				$value = wp_unslash( $value );
 			}
 			update_option( $option, $value );
 		}
 
-		// Switch translation in case WPLANG was changed.
-		$language = get_option( 'WPLANG' );
-		if ( $language ) {
-			load_default_textdomain( $language );
-		} else {
-			unload_textdomain( 'default' );
+		/*
+		 * Switch translation in case WPLANG was changed.
+		 * The global $locale is used in get_locale() which is
+		 * used as a fallback in get_user_locale().
+		 */
+		unset( $GLOBALS['locale'] );
+		$user_language_new = get_user_locale();
+		if ( $user_language_old !== $user_language_new  ) {
+			load_default_textdomain( $user_language_new );
 		}
 	}
 
diff --git a/wp-admin/plugin-editor.php b/wp-admin/plugin-editor.php
index 754c4265b..ab8968db8 100644
--- a/wp-admin/plugin-editor.php
+++ b/wp-admin/plugin-editor.php
@@ -20,8 +20,6 @@ if ( !current_user_can('edit_plugins') )
 $title = __("Edit Plugins");
 $parent_file = 'plugins.php';
 
-wp_reset_vars( array( 'action', 'error', 'file', 'plugin' ) );
-
 $plugins = get_plugins();
 
 if ( empty( $plugins ) ) {
@@ -36,11 +34,23 @@ if ( empty( $plugins ) ) {
 	exit;
 }
 
-if ( $file ) {
-	$plugin = $file;
-} elseif ( empty( $plugin ) ) {
-	$plugin = array_keys($plugins);
-	$plugin = $plugin[0];
+$file = '';
+$plugin = '';
+if ( isset( $_REQUEST['file'] ) ) {
+	$file = sanitize_text_field( $_REQUEST['file'] );
+}
+
+if ( isset( $_REQUEST['plugin'] ) ) {
+	$plugin = sanitize_text_field( $_REQUEST['plugin'] );
+}
+
+if ( empty( $plugin ) ) {
+	if ( $file ) {
+		$plugin = $file;
+	} else {
+		$plugin = array_keys( $plugins );
+		$plugin = $plugin[0];
+	}
 }
 
 $plugin_files = get_plugin_files($plugin);
@@ -52,9 +62,7 @@ $file = validate_file_to_edit($file, $plugin_files);
 $real_file = WP_PLUGIN_DIR . '/' . $file;
 $scrollto = isset($_REQUEST['scrollto']) ? (int) $_REQUEST['scrollto'] : 0;
 
-switch ( $action ) {
-
-case 'update':
+if ( isset( $_REQUEST['action'] ) && 'update' === $_REQUEST['action'] ) {
 
 	check_admin_referer('edit-plugin_' . $file);
 
@@ -67,9 +75,10 @@ case 'update':
 		$network_wide = is_plugin_active_for_network( $file );
 
 		// Deactivate so we can test it.
-		if ( is_plugin_active($file) || isset($_POST['phperror']) ) {
-			if ( is_plugin_active($file) )
-				deactivate_plugins($file, true);
+		if ( is_plugin_active( $plugin ) || isset( $_POST['phperror'] ) ) {
+			if ( is_plugin_active( $plugin ) ) {
+				deactivate_plugins( $plugin, true );
+			}
 
 			if ( ! is_network_admin() ) {
 				update_option( 'recently_activated', array( $file => time() ) + (array) get_option( 'recently_activated' ) );
@@ -77,28 +86,31 @@ case 'update':
 				update_site_option( 'recently_activated', array( $file => time() ) + (array) get_site_option( 'recently_activated' ) );
 			}
 
-			wp_redirect(add_query_arg('_wpnonce', wp_create_nonce('edit-plugin-test_' . $file), "plugin-editor.php?file=$file&liveupdate=1&scrollto=$scrollto&networkwide=" . $network_wide));
+			wp_redirect( add_query_arg( '_wpnonce', wp_create_nonce( 'edit-plugin-test_' . $file ), "plugin-editor.php?file=$file&plugin=$plugin&liveupdate=1&scrollto=$scrollto&networkwide=" . $network_wide ) );
 			exit;
 		}
-		wp_redirect( self_admin_url("plugin-editor.php?file=$file&a=te&scrollto=$scrollto") );
+		wp_redirect( self_admin_url( "plugin-editor.php?file=$file&plugin=$plugin&a=te&scrollto=$scrollto" ) );
 	} else {
-		wp_redirect( self_admin_url("plugin-editor.php?file=$file&scrollto=$scrollto") );
+		wp_redirect( self_admin_url( "plugin-editor.php?file=$file&plugin=$plugin&scrollto=$scrollto" ) );
 	}
 	exit;
 
-default:
+} else {
 
 	if ( isset($_GET['liveupdate']) ) {
 		check_admin_referer('edit-plugin-test_' . $file);
 
-		$error = validate_plugin($file);
-		if ( is_wp_error($error) )
+		$error = validate_plugin( $plugin );
+
+		if ( is_wp_error( $error ) ) {
 			wp_die( $error );
+		}
 
-		if ( ( ! empty( $_GET['networkwide'] ) && ! is_plugin_active_for_network($file) ) || ! is_plugin_active($file) )
-			activate_plugin($file, "plugin-editor.php?file=$file&phperror=1", ! empty( $_GET['networkwide'] ) ); // we'll override this later if the plugin can be included without fatal error
+		if ( ( ! empty( $_GET['networkwide'] ) && ! is_plugin_active_for_network( $file ) ) || ! is_plugin_active( $file ) ) {
+			activate_plugin( $plugin, "plugin-editor.php?file=$file&phperror=1", ! empty( $_GET['networkwide'] ) );
+		} // we'll override this later if the plugin can be included without fatal error
 
-		wp_redirect( self_admin_url("plugin-editor.php?file=$file&a=te&scrollto=$scrollto") );
+		wp_redirect( self_admin_url("plugin-editor.php?file=$file&plugin=$plugin&a=te&scrollto=$scrollto") );
 		exit;
 	}
 
@@ -140,9 +152,9 @@ default:
 
 	get_current_screen()->set_help_sidebar(
 		'<p><strong>' . __('For more information:') . '</strong></p>' .
-		'<p>' . __('<a href="https://codex.wordpress.org/Plugins_Editor_Screen" target="_blank">Documentation on Editing Plugins</a>') . '</p>' .
-		'<p>' . __('<a href="https://codex.wordpress.org/Writing_a_Plugin" target="_blank">Documentation on Writing Plugins</a>') . '</p>' .
-		'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+		'<p>' . __('<a href="https://codex.wordpress.org/Plugins_Editor_Screen">Documentation on Editing Plugins</a>') . '</p>' .
+		'<p>' . __('<a href="https://codex.wordpress.org/Writing_a_Plugin">Documentation on Writing Plugins</a>') . '</p>' .
+		'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 	);
 
 	require_once(ABSPATH . 'wp-admin/admin-header.php');
@@ -224,7 +236,7 @@ default:
 	}
 ?>
 		</select>
-		<?php submit_button( __( 'Select' ), 'button', 'Submit', false ); ?>
+		<?php submit_button( __( 'Select' ), '', 'Submit', false ); ?>
 	</form>
 </div>
 <br class="clear" />
@@ -260,10 +272,10 @@ foreach ( $plugin_files as $plugin_file ) :
 		<input type="hidden" name="scrollto" id="scrollto" value="<?php echo $scrollto; ?>" />
 		</div>
 		<?php if ( !empty( $docs_select ) ) : ?>
-		<div id="documentation" class="hide-if-no-js"><label for="docs-list"><?php _e('Documentation:') ?></label> <?php echo $docs_select ?> <input type="button" class="button" value="<?php esc_attr_e( 'Look Up' ) ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'https://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_locale() ) ?>&amp;version=<?php echo urlencode( $wp_version ) ?>&amp;redirect=true'); }" /></div>
+		<div id="documentation" class="hide-if-no-js"><label for="docs-list"><?php _e('Documentation:') ?></label> <?php echo $docs_select ?> <input type="button" class="button" value="<?php esc_attr_e( 'Look Up' ) ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'https://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_user_locale() ) ?>&amp;version=<?php echo urlencode( get_bloginfo( 'version' ) ) ?>&amp;redirect=true'); }" /></div>
 		<?php endif; ?>
 <?php if ( is_writeable($real_file) ) : ?>
-	<?php if ( in_array( $file, (array) get_option( 'active_plugins', array() ) ) ) { ?>
+	<?php if ( in_array( $plugin, (array) get_option( 'active_plugins', array() ) ) ) { ?>
 		<p><?php _e('<strong>Warning:</strong> Making changes to active plugins is not recommended. If your changes cause a fatal error, the plugin will be automatically deactivated.'); ?></p>
 	<?php } ?>
 	<p class="submit">
@@ -289,6 +301,6 @@ jQuery(document).ready(function($){
 });
 </script>
 <?php
-	break;
 }
+
 include(ABSPATH . "wp-admin/admin-footer.php");
diff --git a/wp-admin/plugin-install.php b/wp-admin/plugin-install.php
index 637424b50..490e671d3 100644
--- a/wp-admin/plugin-install.php
+++ b/wp-admin/plugin-install.php
@@ -64,7 +64,7 @@ wp_enqueue_script( 'updates' );
  *
  * @since 2.7.0
  */
-do_action( "install_plugins_pre_$tab" );
+do_action( "install_plugins_pre_{$tab}" );
 
 /*
  * Call the pre upload action on every non-upload plugin install screen
@@ -79,7 +79,7 @@ get_current_screen()->add_help_tab( array(
 'id'		=> 'overview',
 'title'		=> __('Overview'),
 'content'	=>
-	'<p>' . sprintf( __('Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official <a href="%s" target="_blank">WordPress Plugin Directory</a> are compatible with the license WordPress uses.' ), 'https://wordpress.org/plugins/' ) . '</p>' .
+	'<p>' . sprintf( __('Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official <a href="%s">WordPress Plugin Directory</a> are compatible with the license WordPress uses.' ), __( 'https://wordpress.org/plugins/' ) ) . '</p>' .
 	'<p>' . __( 'You can find new plugins to install by searching or browsing the directory right here in your own Plugins section.' ) . ' <span id="live-search-desc" class="hide-if-no-js">' . __( 'The search results will be updated as you type.' ) . '</span></p>'
 
 ) );
@@ -95,8 +95,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Plugins_Add_New_Screen" target="_blank">Documentation on Installing Plugins</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Plugins_Add_New_Screen">Documentation on Installing Plugins</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
@@ -129,7 +129,7 @@ include(ABSPATH . 'wp-admin/admin-header.php');
  * Output the upload plugin form on every non-upload plugin install screen, so it can be
  * displayed via JavaScript rather then opening up the devoted upload plugin page.
  */
-if ( $tab !== 'upload' ) {
+if ( 'upload' !== $tab ) {
 	?>
 	<div class="upload-plugin-wrap">
 		<?php
@@ -138,9 +138,6 @@ if ( $tab !== 'upload' ) {
 		?>
 	</div>
 	<?php
-}
-
-if ( $tab !== 'upload' ) {
 	$wp_list_table->views();
 	echo '<br class="clear" />';
 }
@@ -155,7 +152,7 @@ if ( $tab !== 'upload' ) {
  *
  * @param int $paged The current page number of the plugins list table.
  */
-do_action( "install_plugins_$tab", $paged ); ?>
+do_action( "install_plugins_{$tab}", $paged ); ?>
 
 	<span class="spinner"></span>
 </div>
diff --git a/wp-admin/plugins.php b/wp-admin/plugins.php
index 1d4623819..ae5ea58c5 100644
--- a/wp-admin/plugins.php
+++ b/wp-admin/plugins.php
@@ -327,13 +327,13 @@ if ( $action ) {
 						}
 					?>
 					<?php wp_nonce_field('bulk-plugins') ?>
-					<?php submit_button( $data_to_delete ? __( 'Yes, delete these files and data' ) : __( 'Yes, delete these files' ), 'button', 'submit', false ); ?>
+					<?php submit_button( $data_to_delete ? __( 'Yes, delete these files and data' ) : __( 'Yes, delete these files' ), '', 'submit', false ); ?>
 				</form>
 				<?php
 				$referer = wp_get_referer();
 				?>
 				<form method="post" action="<?php echo $referer ? esc_url( $referer ) : ''; ?>" style="display:inline;">
-					<?php submit_button( __( 'No, return me to the plugin list' ), 'button', 'submit', false ); ?>
+					<?php submit_button( __( 'No, return me to the plugin list' ), '', 'submit', false ); ?>
 				</form>
 			</div>
 				<?php
@@ -356,7 +356,21 @@ if ( $action ) {
 				update_site_option( 'recently_activated', array() );
 			}
 			break;
+
+		default:
+			if ( isset( $_POST['checked'] ) ) {
+				check_admin_referer('bulk-plugins');
+				$plugins = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
+				$sendback = wp_get_referer();
+
+				/** This action is documented in wp-admin/edit-comments.php */
+				$sendback = apply_filters( 'handle_bulk_actions-' . get_current_screen()->id, $sendback, $action, $plugins );
+				wp_safe_redirect( $sendback );
+				exit;
+			}
+			break;
 	}
+
 }
 
 $wp_list_table->prepare_items();
@@ -374,8 +388,8 @@ get_current_screen()->add_help_tab( array(
 	'<p>' . __( 'The search for installed plugins will search for terms in their name, description, or author.' ) . ' <span id="live-search-desc" class="hide-if-no-js">' . __( 'The search results will be updated as you type.' ) . '</span></p>' .
 	'<p>' . sprintf(
 		/* translators: %s: WordPress Plugin Directory URL */
-		__( 'If you would like to see more plugins to choose from, click on the &#8220;Add New&#8221; button and you will be able to browse or search for additional plugins from the <a href="%s" target="_blank">WordPress Plugin Directory</a>. Plugins in the WordPress Plugin Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they&#8217;re free!' ),
-		'https://wordpress.org/plugins/'
+		__( 'If you would like to see more plugins to choose from, click on the &#8220;Add New&#8221; button and you will be able to browse or search for additional plugins from the <a href="%s">WordPress Plugin Directory</a>. Plugins in the WordPress Plugin Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they&#8217;re free!' ),
+		__( 'https://wordpress.org/plugins/' )
 	) . '</p>'
 ) );
 get_current_screen()->add_help_tab( array(
@@ -392,8 +406,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Managing_Plugins#Plugin_Management" target="_blank">Documentation on Managing Plugins</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Managing_Plugins#Plugin_Management">Documentation on Managing Plugins</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
diff --git a/wp-admin/press-this.php b/wp-admin/press-this.php
index e0a4c9016..46322bc41 100644
--- a/wp-admin/press-this.php
+++ b/wp-admin/press-this.php
@@ -19,11 +19,6 @@ if ( ! current_user_can( 'edit_posts' ) || ! current_user_can( get_post_type_obj
 	);
 }
 
-/**
- * @global WP_Press_This $wp_press_this
- */
-if ( empty( $GLOBALS['wp_press_this'] ) ) {
-	include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
-}
-
-$GLOBALS['wp_press_this']->html();
+include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' ); 
+$wp_press_this = new WP_Press_This();
+$wp_press_this->html();
diff --git a/wp-admin/revision.php b/wp-admin/revision.php
index 547b3546f..c86f78a45 100644
--- a/wp-admin/revision.php
+++ b/wp-admin/revision.php
@@ -74,6 +74,7 @@ default :
 
 	$post_edit_link = get_edit_post_link();
 	$post_title     = '<a href="' . $post_edit_link . '">' . _draft_or_post_title() . '</a>';
+	/* translators: 1: Post title */
 	$h1             = sprintf( __( 'Compare Revisions of &#8220;%1$s&#8221;' ), $post_title );
 	$return_to_post = '<a href="' . $post_edit_link . '">' . __( '&larr; Return to editor' ) . '</a>';
 	$title          = __( 'Revisions' );
@@ -116,8 +117,8 @@ get_current_screen()->add_help_tab( array(
 ) );
 
 $revisions_sidebar  = '<p><strong>' . __( 'For more information:' ) . '</strong></p>';
-$revisions_sidebar .= '<p>' . __( '<a href="https://codex.wordpress.org/Revision_Management" target="_blank">Revisions Management</a>' ) . '</p>';
-$revisions_sidebar .= '<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>';
+$revisions_sidebar .= '<p>' . __( '<a href="https://codex.wordpress.org/Revision_Management">Revisions Management</a>' ) . '</p>';
+$revisions_sidebar .= '<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>';
 
 get_current_screen()->set_help_sidebar( $revisions_sidebar );
 
diff --git a/wp-admin/setup-config.php b/wp-admin/setup-config.php
index 1ad40fcb6..1404c3259 100644
--- a/wp-admin/setup-config.php
+++ b/wp-admin/setup-config.php
@@ -5,8 +5,6 @@
  * The permissions for the base directory must allow for writing files in order
  * for the wp-config.php to be created using this page.
  *
- * @internal This file must be parsable by PHP4.
- *
  * @package WordPress
  * @subpackage Administration
  */
@@ -101,7 +99,7 @@ function setup_config_display_header( $body_classes = array() ) {
 	<?php wp_admin_css( 'install', true ); ?>
 </head>
 <body class="<?php echo implode( ' ', $body_classes ); ?>">
-<p id="logo"><a href="<?php esc_attr_e( 'https://wordpress.org/' ); ?>" tabindex="-1"><?php _e( 'WordPress' ); ?></a></p>
+<p id="logo"><a href="<?php echo esc_url( __( 'https://wordpress.org/' ) ); ?>" tabindex="-1"><?php _e( 'WordPress' ); ?></a></p>
 <?php
 } // end function setup_config_display_header();
 
@@ -316,7 +314,6 @@ switch($step) {
 	}
 
 	$key = 0;
-	// Not a PHP5-style by-reference foreach, as this file must be parseable by PHP4.
 	foreach ( $config_file as $line_num => $line ) {
 		if ( '$table_prefix  =' == substr( $line, 0, 16 ) ) {
 			$config_file[ $line_num ] = '$table_prefix  = \'' . addcslashes( $prefix, "\\'" ) . "';\r\n";
diff --git a/wp-admin/term.php b/wp-admin/term.php
index dc3f1d5fe..2018ac041 100644
--- a/wp-admin/term.php
+++ b/wp-admin/term.php
@@ -31,11 +31,11 @@ $taxonomy = $tax->name;
 $title    = $tax->labels->edit_item;
 
 if ( ! in_array( $taxonomy, get_taxonomies( array( 'show_ui' => true ) ) ) ||
-     ! current_user_can( $tax->cap->manage_terms )
+     ! current_user_can( 'edit_term', $tag->term_id )
 ) {
 	wp_die(
 		'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
-		'<p>' . __( 'Sorry, you are not allowed to manage this item.' ) . '</p>',
+		'<p>' . __( 'Sorry, you are not allowed to edit this item.' ) . '</p>',
 		403
 	);
 }
diff --git a/wp-admin/theme-editor.php b/wp-admin/theme-editor.php
index 9fb2c41e4..03b91944e 100644
--- a/wp-admin/theme-editor.php
+++ b/wp-admin/theme-editor.php
@@ -30,17 +30,17 @@ get_current_screen()->add_help_tab( array(
 	<p id="newcontent-description">' . __( 'In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key. In some cases the Esc key will need to be pressed twice before the Tab key will allow you to continue.' ) . '</p>
 	<p>' . __('After typing in your edits, click Update File.') . '</p>
 	<p>' . __('<strong>Advice:</strong> think very carefully about your site crashing if you are live-editing the theme currently in use.') . '</p>
-	<p>' . sprintf( __('Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a <a href="%s" target="_blank">child theme</a> instead.'), __('https://codex.wordpress.org/Child_Themes') ) . '</p>' .
+	<p>' . sprintf( __('Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a <a href="%s">child theme</a> instead.'), __('https://codex.wordpress.org/Child_Themes') ) . '</p>' .
 	( is_network_admin() ? '<p>' . __('Any edits to files from this screen will be reflected on all sites in the network.') . '</p>' : '' )
 ) );
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Theme_Development" target="_blank">Documentation on Theme Development</a>') . '</p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Using_Themes" target="_blank">Documentation on Using Themes</a>') . '</p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Editing_Files" target="_blank">Documentation on Editing Files</a>') . '</p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Template_Tags" target="_blank">Documentation on Template Tags</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Theme_Development">Documentation on Theme Development</a>') . '</p>' .
+	'<p>' . __('<a href="https://codex.wordpress.org/Using_Themes">Documentation on Using Themes</a>') . '</p>' .
+	'<p>' . __('<a href="https://codex.wordpress.org/Editing_Files">Documentation on Editing Files</a>') . '</p>' .
+	'<p>' . __('<a href="https://codex.wordpress.org/Template_Tags">Documentation on Template Tags</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 wp_reset_vars( array( 'action', 'error', 'file', 'theme' ) );
@@ -182,7 +182,7 @@ foreach ( wp_get_themes( array( 'errors' => null ) ) as $a_stylesheet => $a_them
 }
 ?>
 		</select>
-		<?php submit_button( __( 'Select' ), 'button', 'Submit', false ); ?>
+		<?php submit_button( __( 'Select' ), '', 'Submit', false ); ?>
 	</form>
 </div>
 <br class="clear" />
@@ -263,7 +263,7 @@ else : ?>
 		<div id="documentation" class="hide-if-no-js">
 		<label for="docs-list"><?php _e('Documentation:') ?></label>
 		<?php echo $docs_select; ?>
-		<input type="button" class="button" value=" <?php esc_attr_e( 'Look Up' ); ?> " onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'https://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_locale() ) ?>&amp;version=<?php echo urlencode( $wp_version ) ?>&amp;redirect=true'); }" />
+		<input type="button" class="button" value="<?php esc_attr_e( 'Look Up' ); ?>" onclick="if ( '' != jQuery('#docs-list').val() ) { window.open( 'https://api.wordpress.org/core/handbook/1.0/?function=' + escape( jQuery( '#docs-list' ).val() ) + '&amp;locale=<?php echo urlencode( get_user_locale() ) ?>&amp;version=<?php echo urlencode( get_bloginfo( 'version' ) ) ?>&amp;redirect=true'); }" />
 		</div>
 	<?php endif; ?>
 
diff --git a/wp-admin/theme-install.php b/wp-admin/theme-install.php
index 6b3846553..dadef0dd4 100644
--- a/wp-admin/theme-install.php
+++ b/wp-admin/theme-install.php
@@ -37,22 +37,28 @@ foreach ( $installed_themes as $k => $v ) {
 wp_localize_script( 'theme', '_wpThemeSettings', array(
 	'themes'   => false,
 	'settings' => array(
-		'isInstall'     => true,
-		'canInstall'    => current_user_can( 'install_themes' ),
-		'installURI'    => current_user_can( 'install_themes' ) ? self_admin_url( 'theme-install.php' ) : null,
-		'adminUrl'      => parse_url( self_admin_url(), PHP_URL_PATH )
+		'isInstall'  => true,
+		'canInstall' => current_user_can( 'install_themes' ),
+		'installURI' => current_user_can( 'install_themes' ) ? self_admin_url( 'theme-install.php' ) : null,
+		'adminUrl'   => parse_url( self_admin_url(), PHP_URL_PATH )
 	),
 	'l10n' => array(
-		'addNew' => __( 'Add New Theme' ),
-		'search' => __( 'Search Themes' ),
-		'searchPlaceholder' => __( 'Search themes...' ), // placeholder (no ellipsis)
-		'upload' => __( 'Upload Theme' ),
-		'back'   => __( 'Back' ),
-		'error'  => __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ),
-		'themesFound'   => __( 'Number of Themes found: %d' ),
-		'noThemesFound' => __( 'No themes found. Try a different search.' ),
-		'collapseSidebar'    => __( 'Collapse Sidebar' ),
-		'expandSidebar'      => __( 'Expand Sidebar' ),
+		'addNew'              => __( 'Add New Theme' ),
+		'search'              => __( 'Search Themes' ),
+		'searchPlaceholder'   => __( 'Search themes...' ), // placeholder (no ellipsis)
+		'upload'              => __( 'Upload Theme' ),
+		'back'                => __( 'Back' ),
+		'error'               => sprintf(
+			/* translators: %s: support forums URL */
+			__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+			__( 'https://wordpress.org/support/' )
+		),
+		'themesFound'         => __( 'Number of Themes found: %d' ),
+		'noThemesFound'       => __( 'No themes found. Try a different search.' ),
+		'collapseSidebar'     => __( 'Collapse Sidebar' ),
+		'expandSidebar'       => __( 'Expand Sidebar' ),
+		/* translators: hidden accessibility text */
+		'selectFeatureFilter' => __( 'Select one or more Theme features to filter by' ),
 	),
 	'installedThemes' => array_keys( $installed_themes ),
 ) );
@@ -76,7 +82,7 @@ if ( $tab ) {
 $help_overview =
 	'<p>' . sprintf(
 			/* translators: %s: Theme Directory URL */
-			__( 'You can find additional themes for your site by using the Theme Browser/Installer on this screen, which will display themes from the <a href="%s" target="_blank">WordPress Theme Directory</a>. These themes are designed and developed by third parties, are available free of charge, and are compatible with the license WordPress uses.' ),
+			__( 'You can find additional themes for your site by using the Theme Browser/Installer on this screen, which will display themes from the <a href="%s">WordPress Theme Directory</a>. These themes are designed and developed by third parties, are available free of charge, and are compatible with the license WordPress uses.' ),
 			__( 'https://wordpress.org/themes/' )
 		) . '</p>' .
 	'<p>' . __( 'You can Search for themes by keyword, author, or tag, or can get more specific and search by criteria listed in the feature filter.' ) . ' <span id="live-search-desc">' . __( 'The search results will be updated as you type.' ) . '</span></p>' .
@@ -105,8 +111,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Using_Themes#Adding_New_Themes" target="_blank">Documentation on Adding New Themes</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Using_Themes#Adding_New_Themes">Documentation on Adding New Themes</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 include(ABSPATH . 'wp-admin/admin-header.php');
@@ -152,7 +158,7 @@ include(ABSPATH . 'wp-admin/admin-header.php');
 			<li><a href="#" data-sort="favorites"><?php _ex( 'Favorites', 'themes' ); ?></a></li>
 		</ul>
 
-		<a class="drawer-toggle" href="#"><?php _e( 'Feature Filter' ); ?></a>
+		<button type="button" class="button drawer-toggle" aria-expanded="false"><?php _e( 'Feature Filter' ); ?></button>
 
 		<div class="search-form"></div>
 
@@ -172,14 +178,14 @@ include(ABSPATH . 'wp-admin/admin-header.php');
 				<label for="wporg-username-input"><?php _e( 'Your WordPress.org username:' ); ?></label>
 				<input type="hidden" id="wporg-username-nonce" name="_wpnonce" value="<?php echo esc_attr( wp_create_nonce( $action ) ); ?>" />
 				<input type="search" id="wporg-username-input" value="<?php echo esc_attr( $user ); ?>" />
-				<input type="button" class="button button-secondary favorites-form-submit" value="<?php esc_attr_e( 'Get Favorites' ); ?>" />
+				<input type="button" class="button favorites-form-submit" value="<?php esc_attr_e( 'Get Favorites' ); ?>" />
 			</p>
 		</div>
 
 		<div class="filter-drawer">
 			<div class="buttons">
-				<a class="apply-filters button button-secondary" href="#"><?php _e( 'Apply Filters' ); ?><span></span></a>
-				<a class="clear-filters button button-secondary" href="#"><?php _e( 'Clear' ); ?></a>
+				<button type="button" class="apply-filters button"><?php _e( 'Apply Filters' ); ?><span></span></button>
+				<button type="button" class="clear-filters button" aria-label="<?php esc_attr_e( 'Clear current filters' ); ?>"><?php _e( 'Clear' ); ?></button>
 			</div>
 		<?php
 		$feature_list = get_theme_feature_list();
@@ -197,10 +203,14 @@ include(ABSPATH . 'wp-admin/admin-header.php');
 			echo '</fieldset>';
 		}
 		?>
+			<div class="buttons">
+				<button type="button" class="apply-filters button"><?php _e( 'Apply Filters' ); ?><span></span></button>
+				<button type="button" class="clear-filters button" aria-label="<?php esc_attr_e( 'Clear current filters' ); ?>"><?php _e( 'Clear' ); ?></button>
+			</div>
 			<div class="filtered-by">
 				<span><?php _e( 'Filtering by:' ); ?></span>
 				<div class="tags"></div>
-				<a href="#"><?php _e( 'Edit' ); ?></a>
+				<button type="button" class="button-link edit-filters"><?php _e( 'Edit Filters' ); ?></button>
 			</div>
 		</div>
 	</div>
@@ -256,9 +266,9 @@ if ( $tab ) {
 				<a class="button button-primary activate" href="{{ data.activate_url }}" aria-label="<?php echo esc_attr( $aria_label ); ?>"><?php _e( 'Activate' ); ?></a>
 			<# } #>
 			<# if ( data.customize_url ) { #>
-				<a class="button button-secondary load-customize" href="{{ data.customize_url }}"><?php _e( 'Live Preview' ); ?></a>
+				<a class="button load-customize" href="{{ data.customize_url }}"><?php _e( 'Live Preview' ); ?></a>
 			<# } else { #>
-				<button class="button-secondary preview install-theme-preview"><?php _e( 'Preview' ); ?></button>
+				<button class="button preview install-theme-preview"><?php _e( 'Preview' ); ?></button>
 			<# } #>
 		<# } else { #>
 			<?php
@@ -266,7 +276,7 @@ if ( $tab ) {
 			$aria_label = sprintf( __( 'Install %s' ), '{{ data.name }}' );
 			?>
 			<a class="button button-primary theme-install" data-name="{{ data.name }}" data-slug="{{ data.id }}" href="{{ data.install_url }}" aria-label="<?php echo esc_attr( $aria_label ); ?>"><?php _e( 'Install' ); ?></a>
-			<button class="button-secondary preview install-theme-preview"><?php _e( 'Preview' ); ?></button>
+			<button class="button preview install-theme-preview"><?php _e( 'Preview' ); ?></button>
 		<# } #>
 	</div>
 
@@ -319,7 +329,7 @@ if ( $tab ) {
 				</div>
 			</div>
 			<div class="wp-full-overlay-footer">
-				<button type="button" class="collapse-sidebar button-secondary" aria-expanded="true" aria-label="<?php esc_attr_e( 'Collapse Sidebar' ); ?>">
+				<button type="button" class="collapse-sidebar button" aria-expanded="true" aria-label="<?php esc_attr_e( 'Collapse Sidebar' ); ?>">
 					<span class="collapse-sidebar-arrow"></span>
 					<span class="collapse-sidebar-label"><?php _e( 'Collapse' ); ?></span>
 				</button>
diff --git a/wp-admin/themes.php b/wp-admin/themes.php
index c601cd555..6aa129d76 100644
--- a/wp-admin/themes.php
+++ b/wp-admin/themes.php
@@ -89,7 +89,7 @@ if ( current_user_can( 'install_themes' ) ) {
 	if ( is_multisite() ) {
 		$help_install = '<p>' . __('Installing themes on Multisite can only be done from the Network Admin section.') . '</p>';
 	} else {
-		$help_install = '<p>' . sprintf( __('If you would like to see more themes to choose from, click on the &#8220;Add New&#8221; button and you will be able to browse or search for additional themes from the <a href="%s" target="_blank">WordPress Theme Directory</a>. Themes in the WordPress Theme Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they&#8217;re free!'), 'https://wordpress.org/themes/' ) . '</p>';
+		$help_install = '<p>' . sprintf( __('If you would like to see more themes to choose from, click on the &#8220;Add New&#8221; button and you will be able to browse or search for additional themes from the <a href="%s">WordPress Theme Directory</a>. Themes in the WordPress Theme Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they&#8217;re free!'), __( 'https://wordpress.org/themes/' ) ) . '</p>';
 	}
 
 	get_current_screen()->add_help_tab( array(
@@ -115,8 +115,8 @@ if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' )
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Using_Themes" target="_blank">Documentation on Using Themes</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Using_Themes">Documentation on Using Themes</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 );
 
 if ( current_user_can( 'switch_themes' ) ) {
@@ -177,7 +177,7 @@ endif;
 $ct = wp_get_theme();
 
 if ( $ct->errors() && ( ! is_multisite() || current_user_can( 'manage_network_themes' ) ) ) {
-	echo '<div class="error"><p>' . sprintf( __( 'ERROR: %s' ), $ct->errors()->get_error_message() ) . '</p></div>';
+	echo '<div class="error"><p>' . __( 'ERROR:' ) . ' ' . $ct->errors()->get_error_message() . '</p></div>';
 }
 
 /*
@@ -200,17 +200,17 @@ if ( ! $ct->errors() || ( 1 == count( $ct->errors()->get_error_codes() )
 				$submenu[$item[2]] = array_values($submenu[$item[2]]); // Re-index.
 				$menu_hook = get_plugin_page_hook($submenu[$item[2]][0][2], $item[2]);
 				if ( file_exists(WP_PLUGIN_DIR . "/{$submenu[$item[2]][0][2]}") || !empty($menu_hook))
-					$current_theme_actions[] = "<a class='button button-secondary$class' href='admin.php?page={$submenu[$item[2]][0][2]}'>{$item[0]}</a>";
+					$current_theme_actions[] = "<a class='button$class' href='admin.php?page={$submenu[$item[2]][0][2]}'>{$item[0]}</a>";
 				else
-					$current_theme_actions[] = "<a class='button button-secondary$class' href='{$submenu[$item[2]][0][2]}'>{$item[0]}</a>";
+					$current_theme_actions[] = "<a class='button$class' href='{$submenu[$item[2]][0][2]}'>{$item[0]}</a>";
 			} elseif ( ! empty( $item[2] ) && current_user_can( $item[1] ) ) {
 				$menu_file = $item[2];
 
 				if ( current_user_can( 'customize' ) ) {
 					if ( 'custom-header' === $menu_file ) {
-						$current_theme_actions[] = "<a class='button button-secondary hide-if-no-customize$class' href='customize.php?autofocus[control]=header_image'>{$item[0]}</a>";
+						$current_theme_actions[] = "<a class='button hide-if-no-customize$class' href='customize.php?autofocus[control]=header_image'>{$item[0]}</a>";
 					} elseif ( 'custom-background' === $menu_file ) {
-						$current_theme_actions[] = "<a class='button button-secondary hide-if-no-customize$class' href='customize.php?autofocus[control]=background_image'>{$item[0]}</a>";
+						$current_theme_actions[] = "<a class='button hide-if-no-customize$class' href='customize.php?autofocus[control]=background_image'>{$item[0]}</a>";
 					}
 				}
 
@@ -219,9 +219,9 @@ if ( ! $ct->errors() || ( 1 == count( $ct->errors()->get_error_codes() )
 				}
 
 				if ( file_exists( ABSPATH . "wp-admin/$menu_file" ) ) {
-					$current_theme_actions[] = "<a class='button button-secondary$class' href='{$item[2]}'>{$item[0]}</a>";
+					$current_theme_actions[] = "<a class='button$class' href='{$item[2]}'>{$item[0]}</a>";
 				} else {
-					$current_theme_actions[] = "<a class='button button-secondary$class' href='themes.php?page={$item[2]}'>{$item[0]}</a>";
+					$current_theme_actions[] = "<a class='button$class' href='themes.php?page={$item[2]}'>{$item[0]}</a>";
 				}
 			}
 		}
@@ -252,7 +252,11 @@ foreach ( $themes as $theme ) :
 
 	<?php if ( $theme['hasUpdate'] ) : ?>
 		<div class="update-message notice inline notice-warning notice-alt">
+		<?php if ( $theme['hasPackage'] ) : ?>
 			<p><?php _e( 'New version available. <button class="button-link" type="button">Update now</button>' ); ?></p>
+		<?php else : ?>
+			<p><?php _e( 'New version available.' ); ?></p>
+		<?php endif; ?>
 		</div>
 	<?php endif; ?>
 
@@ -281,7 +285,7 @@ foreach ( $themes as $theme ) :
 		/* translators: %s: Theme name */
 		$aria_label = sprintf( _x( 'Activate %s', 'theme' ), '{{ data.name }}' );
 		?>
-		<a class="button button-secondary activate" href="<?php echo $theme['actions']['activate']; ?>" aria-label="<?php echo esc_attr( $aria_label ); ?>"><?php _e( 'Activate' ); ?></a>
+		<a class="button activate" href="<?php echo $theme['actions']['activate']; ?>" aria-label="<?php echo esc_attr( $aria_label ); ?>"><?php _e( 'Activate' ); ?></a>
 		<?php if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { ?>
 			<a class="button button-primary load-customize hide-if-no-customize" href="<?php echo $theme['actions']['customize']; ?>"><?php _e( 'Live Preview' ); ?></a>
 		<?php } ?>
@@ -333,7 +337,7 @@ $can_install = current_user_can( 'install_themes' );
 				), admin_url( 'themes.php' ) );
 				$delete_url = wp_nonce_url( $delete_url, 'delete-theme_' . $stylesheet );
 				?>
-				<td><a href="<?php echo esc_url( $delete_url ); ?>" class="button button-secondary delete-theme"><?php _e( 'Delete' ); ?></a></td>
+				<td><a href="<?php echo esc_url( $delete_url ); ?>" class="button delete-theme"><?php _e( 'Delete' ); ?></a></td>
 				<?php
 			}
 
@@ -348,7 +352,7 @@ $can_install = current_user_can( 'install_themes' );
 					), admin_url( 'update.php' ) );
 					$install_url = wp_nonce_url( $install_url, 'install-theme_' . $parent_theme_name );
 					?>
-					<td><a href="<?php echo esc_url( $install_url ); ?>" class="button button-secondary install-theme"><?php _e( 'Install Parent Theme' ); ?></a></td>
+					<td><a href="<?php echo esc_url( $install_url ); ?>" class="button install-theme"><?php _e( 'Install Parent Theme' ); ?></a></td>
 					<?php
 				}
 			}
@@ -378,7 +382,11 @@ $can_install = current_user_can( 'install_themes' );
 	<# } #>
 
 	<# if ( data.hasUpdate ) { #>
-		<div class="update-message notice inline notice-warning notice-alt"><p><?php _e( 'New version available. <button class="button-link" type="button">Update now</button>' ); ?></p></div>
+		<# if ( data.hasPackage ) { #>
+			<div class="update-message notice inline notice-warning notice-alt"><p><?php _e( 'New version available. <button class="button-link" type="button">Update now</button>' ); ?></p></div>
+		<# } else { #>
+			<div class="update-message notice inline notice-warning notice-alt"><p><?php _e( 'New version available.' ); ?></p></div>
+		<# } #>
 	<# } #>
 
 	<span class="more-details" id="{{ data.id }}-action"><?php _e( 'Theme Details' ); ?></span>
@@ -410,7 +418,7 @@ $can_install = current_user_can( 'install_themes' );
 			/* translators: %s: Theme name */
 			$aria_label = sprintf( _x( 'Activate %s', 'theme' ), '{{ data.name }}' );
 			?>
-			<a class="button button-secondary activate" href="{{{ data.actions.activate }}}" aria-label="<?php echo $aria_label; ?>"><?php _e( 'Activate' ); ?></a>
+			<a class="button activate" href="{{{ data.actions.activate }}}" aria-label="<?php echo $aria_label; ?>"><?php _e( 'Activate' ); ?></a>
 			<a class="button button-primary load-customize hide-if-no-customize" href="{{{ data.actions.customize }}}"><?php _e( 'Live Preview' ); ?></a>
 		<# } #>
 	</div>
@@ -469,13 +477,13 @@ $can_install = current_user_can( 'install_themes' );
 				$aria_label = sprintf( _x( 'Activate %s', 'theme' ), '{{ data.name }}' );
 				?>
 				<# if ( data.actions.activate ) { #>
-					<a href="{{{ data.actions.activate }}}" class="button button-secondary activate" aria-label="<?php echo $aria_label; ?>"><?php _e( 'Activate' ); ?></a>
+					<a href="{{{ data.actions.activate }}}" class="button activate" aria-label="<?php echo $aria_label; ?>"><?php _e( 'Activate' ); ?></a>
 				<# } #>
 				<a href="{{{ data.actions.customize }}}" class="button button-primary load-customize hide-if-no-customize"><?php _e( 'Live Preview' ); ?></a>
 			</div>
 
 			<# if ( ! data.active && data.actions['delete'] ) { #>
-				<a href="{{{ data.actions['delete'] }}}" class="button button-secondary delete-theme"><?php _e( 'Delete' ); ?></a>
+				<a href="{{{ data.actions['delete'] }}}" class="button delete-theme"><?php _e( 'Delete' ); ?></a>
 			<# } #>
 		</div>
 	</div>
@@ -486,4 +494,8 @@ wp_print_request_filesystem_credentials_modal();
 wp_print_admin_notice_templates();
 wp_print_update_row_templates();
 
+wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+	'totals'  => wp_get_update_data(),
+) );
+
 require( ABSPATH . 'wp-admin/admin-footer.php' );
diff --git a/wp-admin/tools.php b/wp-admin/tools.php
index b6de3c818..2110fb5e4 100644
--- a/wp-admin/tools.php
+++ b/wp-admin/tools.php
@@ -25,8 +25,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Tools_Screen" target="_blank">Documentation on Tools</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Tools_Screen">Documentation on Tools</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 require_once( ABSPATH . 'wp-admin/admin-header.php' );
@@ -49,7 +49,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 
 		<p class="pressthis-bookmarklet-wrapper">
 			<a class="pressthis-bookmarklet" onclick="return false;" href="<?php echo htmlspecialchars( get_shortcut_link() ); ?>"><span><?php _e( 'Press This' ); ?></span></a>
-			<button type="button" class="button button-secondary pressthis-js-toggle js-show-pressthis-code-wrap" aria-expanded="false" aria-controls="pressthis-code-wrap">
+			<button type="button" class="button pressthis-js-toggle js-show-pressthis-code-wrap" aria-expanded="false" aria-controls="pressthis-code-wrap">
 				<span class="dashicons dashicons-clipboard"></span>
 				<span class="screen-reader-text"><?php _e( 'Copy &#8220;Press This&#8221; bookmarklet code' ) ?></span>
 			</button>
@@ -68,7 +68,7 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' );
 		<p><?php _e( 'Follow the link to open Press This. Then add it to your device&#8217;s bookmarks or home screen.' ); ?></p>
 
 		<p>
-			<a class="button button-secondary" href="<?php echo htmlspecialchars( admin_url( 'press-this.php' ) ); ?>"><?php _e( 'Open Press This' ) ?></a>
+			<a class="button" href="<?php echo htmlspecialchars( admin_url( 'press-this.php' ) ); ?>"><?php _e( 'Open Press This' ) ?></a>
 		</p>
 		<script>
 			jQuery( document ).ready( function( $ ) {
diff --git a/wp-admin/update-core.php b/wp-admin/update-core.php
index 404bb8ac8..c6c21ead5 100644
--- a/wp-admin/update-core.php
+++ b/wp-admin/update-core.php
@@ -26,16 +26,17 @@ if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_themes'
  *
  * @global string $wp_local_package
  * @global wpdb   $wpdb
- * @global string $wp_version
  *
  * @staticvar bool $first_pass
  *
  * @param object $update
  */
 function list_core_update( $update ) {
- 	global $wp_local_package, $wpdb, $wp_version;
+ 	global $wp_local_package, $wpdb;
   	static $first_pass = true;
 
+	$wp_version = get_bloginfo( 'version' );
+
  	if ( 'en_US' == $update->locale && 'en_US' == get_locale() )
  		$version_string = $update->current;
  	// If the only available update is a partial builds, it doesn't need a language-specific version string.
@@ -53,11 +54,10 @@ function list_core_update( $update ) {
 	$mysql_version  = $wpdb->db_version();
 	$show_buttons = true;
 	if ( 'development' == $update->response ) {
-		$message = __('You are using a development version of WordPress. You can update to the latest nightly build automatically or download the nightly build and install it manually:');
-		$download = __('Download nightly build');
+		$message = __('You are using a development version of WordPress. You can update to the latest nightly build automatically:');
 	} else {
 		if ( $current ) {
-			$message = sprintf( __( 'If you need to re-install version %s, you can do so here or download the package and re-install manually:' ), $version_string );
+			$message = sprintf( __( 'If you need to re-install version %s, you can do so here:' ), $version_string );
 			$submit = __('Re-install Now');
 			$form_action = 'update-core.php?action=do-core-reinstall';
 		} else {
@@ -68,17 +68,20 @@ function list_core_update( $update ) {
 				$mysql_compat = version_compare( $mysql_version, $update->mysql_version, '>=' );
 
 			if ( !$mysql_compat && !$php_compat )
+				/* translators: 1: WordPress version number, 2: Minimum required PHP version number, 3: Minimum required MySQL version number, 4: Current PHP version number, 5: Current MySQL version number */
 				$message = sprintf( __('You cannot update because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s.'), $update->current, $update->php_version, $update->mysql_version, $php_version, $mysql_version );
 			elseif ( !$php_compat )
+				/* translators: 1: WordPress version number, 2: Minimum required PHP version number, 3: Current PHP version number */
 				$message = sprintf( __('You cannot update because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires PHP version %2$s or higher. You are running version %3$s.'), $update->current, $update->php_version, $php_version );
 			elseif ( !$mysql_compat )
+				/* translators: 1: WordPress version number, 2: Minimum required MySQL version number, 3: Current MySQL version number */
 				$message = sprintf( __('You cannot update because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running version %3$s.'), $update->current, $update->mysql_version, $mysql_version );
 			else
-				$message = 	sprintf(__('You can update to <a href="https://codex.wordpress.org/Version_%1$s">WordPress %2$s</a> automatically or download the package and install it manually:'), $update->current, $version_string);
+				/* translators: 1: WordPress version number, 2: WordPress version number including locale if necessary */
+				$message = 	sprintf(__('You can update to <a href="https://codex.wordpress.org/Version_%1$s">WordPress %2$s</a> automatically:'), $update->current, $version_string);
 			if ( !$mysql_compat || !$php_compat )
 				$show_buttons = false;
 		}
-		$download = sprintf(__('Download %s'), $version_string);
 	}
 
 	echo '<p>';
@@ -91,18 +94,17 @@ function list_core_update( $update ) {
 	echo '<input name="locale" value="'. esc_attr($update->locale) .'" type="hidden"/>';
 	if ( $show_buttons ) {
 		if ( $first_pass ) {
-			submit_button( $submit, $current ? 'button' : 'primary regular', 'upgrade', false );
+			submit_button( $submit, $current ? '' : 'primary regular', 'upgrade', false );
 			$first_pass = false;
 		} else {
-			submit_button( $submit, 'button', 'upgrade', false );
+			submit_button( $submit, '', 'upgrade', false );
 		}
-		echo '&nbsp;<a href="' . esc_url( $update->download ) . '" class="button">' . $download . '</a>&nbsp;';
 	}
 	if ( 'en_US' != $update->locale )
 		if ( !isset( $update->dismissed ) || !$update->dismissed )
-			submit_button( __('Hide this update'), 'button', 'dismiss', false );
+			submit_button( __( 'Hide this update' ), '', 'dismiss', false );
 		else
-			submit_button( __('Bring back this update'), 'button', 'undismiss', false );
+			submit_button( __( 'Bring back this update' ), '', 'undismiss', false );
 	echo '</p>';
 	if ( 'en_US' != $update->locale && ( !isset($wp_local_package) || $wp_local_package != $update->locale ) )
 	    echo '<p class="hint">'.__('This localized version contains both the translation and various other localization fixes. You can skip upgrading if you want to keep your current translation.').'</p>';
@@ -149,13 +151,13 @@ function dismissed_updates() {
  *
  * @since 2.7.0
  *
- * @global string $wp_version
  * @global string $required_php_version
  * @global string $required_mysql_version
  */
 function core_upgrade_preamble() {
-	global $wp_version, $required_php_version, $required_mysql_version;
+	global $required_php_version, $required_mysql_version;
 
+	$wp_version = get_bloginfo( 'version' );
 	$updates = get_core_updates();
 
 	if ( !isset($updates[0]->response) || 'latest' == $updates[0]->response ) {
@@ -213,14 +215,9 @@ function core_upgrade_preamble() {
 	dismissed_updates();
 }
 
-/**
- *
- * @global string $wp_version
- */
 function list_plugin_updates() {
-	global $wp_version;
-
-	$cur_wp_version = preg_replace('/-.*$/', '', $wp_version);
+	$wp_version = get_bloginfo( 'version' );
+	$cur_wp_version = preg_replace( '/-.*$/', '', $wp_version );
 
 	require_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
 	$plugins = get_plugin_updates();
@@ -573,8 +570,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Dashboard_Updates_Screen" target="_blank">Documentation on Updating WordPress</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Dashboard_Updates_Screen">Documentation on Updating WordPress</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 );
 
 if ( 'upgrade-core' == $action ) {
@@ -596,9 +593,16 @@ if ( 'upgrade-core' == $action ) {
 		echo '</p></div>';
 	}
 
+	$last_update_check = false;
+	$current = get_site_transient( 'update_core' );
+
+	if ( $current && isset ( $current->last_checked ) )	{
+		$last_update_check = $current->last_checked + get_option( 'gmt_offset' ) * HOUR_IN_SECONDS;
+	}
+
 	echo '<p>';
 	/* translators: %1 date, %2 time. */
-	printf( __( 'Last checked on %1$s at %2$s.' ), date_i18n( __( 'F j, Y' ) ), date_i18n( __( 'g:i a' ) ) );
+	printf( __( 'Last checked on %1$s at %2$s.' ), date_i18n( __( 'F j, Y' ), $last_update_check ), date_i18n( __( 'g:i a' ), $last_update_check ) );
 	echo ' &nbsp; <a class="button" href="' . esc_url( self_admin_url('update-core.php?force-check=1') ) . '">' . __( 'Check Again' ) . '</a>';
 	echo '</p>';
 
@@ -618,6 +622,11 @@ if ( 'upgrade-core' == $action ) {
 	 */
 	do_action( 'core_upgrade_preamble' );
 	echo '</div>';
+
+	wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+		'totals'  => wp_get_update_data(),
+	) );
+
 	include(ABSPATH . 'wp-admin/admin-footer.php');
 
 } elseif ( 'do-core-upgrade' == $action || 'do-core-reinstall' == $action ) {
@@ -642,6 +651,10 @@ if ( 'upgrade-core' == $action ) {
 	if ( isset( $_POST['upgrade'] ) )
 		do_core_upgrade($reinstall);
 
+	wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+		'totals'  => wp_get_update_data(),
+	) );
+
 	include(ABSPATH . 'wp-admin/admin-footer.php');
 
 } elseif ( 'do-plugin-upgrade' == $action ) {
@@ -670,6 +683,11 @@ if ( 'upgrade-core' == $action ) {
 	echo '<h1>' . __( 'Update Plugins' ) . '</h1>';
 	echo '<iframe src="', $url, '" style="width: 100%; height: 100%; min-height: 750px;" frameborder="0" title="' . esc_attr__( 'Update progress' ) . '"></iframe>';
 	echo '</div>';
+
+	wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+		'totals'  => wp_get_update_data(),
+	) );
+
 	include(ABSPATH . 'wp-admin/admin-footer.php');
 
 } elseif ( 'do-theme-upgrade' == $action ) {
@@ -700,6 +718,11 @@ if ( 'upgrade-core' == $action ) {
 		<iframe src="<?php echo $url ?>" style="width: 100%; height: 100%; min-height: 750px;" frameborder="0" title="<?php esc_attr_e( 'Update progress' ); ?>"></iframe>
 	</div>
 	<?php
+
+	wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+		'totals'  => wp_get_update_data(),
+	) );
+
 	include(ABSPATH . 'wp-admin/admin-footer.php');
 
 } elseif ( 'do-translation-upgrade' == $action ) {
@@ -720,6 +743,10 @@ if ( 'upgrade-core' == $action ) {
 	$upgrader = new Language_Pack_Upgrader( new Language_Pack_Upgrader_Skin( compact( 'url', 'nonce', 'title', 'context' ) ) );
 	$result = $upgrader->bulk_upgrade();
 
+	wp_localize_script( 'updates', '_wpUpdatesItemCounts', array(
+		'totals'  => wp_get_update_data(),
+	) );
+
 	require_once( ABSPATH . 'wp-admin/admin-footer.php' );
 
 } else {
diff --git a/wp-admin/upload.php b/wp-admin/upload.php
index b9495ac05..80e73b4e7 100644
--- a/wp-admin/upload.php
+++ b/wp-admin/upload.php
@@ -63,8 +63,8 @@ if ( 'grid' === $mode ) {
 
 	get_current_screen()->set_help_sidebar(
 		'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-		'<p>' . __( '<a href="https://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
-		'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+		'<p>' . __( '<a href="https://codex.wordpress.org/Media_Library_Screen">Documentation on Media Library</a>' ) . '</p>' .
+		'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 	);
 
 	$title = __('Media Library');
@@ -163,6 +163,9 @@ if ( $doaction ) {
 			}
 			$location = add_query_arg( 'deleted', count( $post_ids ), $location );
 			break;
+		default:
+			/** This action is documented in wp-admin/edit-comments.php */
+			$location = apply_filters( 'handle_bulk_actions-' . get_current_screen()->id, $location, $doaction, $post_ids );
 	}
 
 	wp_redirect( $location );
@@ -204,8 +207,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
-	'<p>' . __( '<a href="https://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
-	'<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
+	'<p>' . __( '<a href="https://codex.wordpress.org/Media_Library_Screen">Documentation on Media Library</a>' ) . '</p>' .
+	'<p>' . __( '<a href="https://wordpress.org/support/">Support Forums</a>' ) . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
diff --git a/wp-admin/user-edit.php b/wp-admin/user-edit.php
index aa6ed7f5e..2222ae261 100644
--- a/wp-admin/user-edit.php
+++ b/wp-admin/user-edit.php
@@ -38,6 +38,7 @@ else
 
 $profile_help = '<p>' . __('Your profile contains information about you (your &#8220;account&#8221;) as well as some personal options related to using WordPress.') . '</p>' .
 	'<p>' . __('You can change your password, turn on keyboard shortcuts, change the color scheme of your WordPress administration screens, and turn off the WYSIWYG (Visual) editor, among other things. You can hide the Toolbar (formerly called the Admin Bar) from the front end of your site, however it cannot be disabled on the admin screens.') . '</p>' .
+	'<p>' . __( 'You can select the language you wish to use while using the WordPress administration screen without affecting the language site visitors see.' ) . '</p>' .
 	'<p>' . __('Your username cannot be changed, but you can use other fields to enter your real name or a nickname, and change which name to display on your posts.') . '</p>' .
 	'<p>' . __( 'You can log out of other devices, such as your phone or a public computer, by clicking the Log Out Everywhere Else button.' ) . '</p>' .
 	'<p>' . __('Required fields are indicated; the rest are optional. Profile information will only be displayed if your theme is set up to do so.') . '</p>' .
@@ -51,8 +52,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
     '<p><strong>' . __('For more information:') . '</strong></p>' .
-    '<p>' . __('<a href="https://codex.wordpress.org/Users_Your_Profile_Screen" target="_blank">Documentation on User Profiles</a>') . '</p>' .
-    '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+    '<p>' . __('<a href="https://codex.wordpress.org/Users_Your_Profile_Screen">Documentation on User Profiles</a>') . '</p>' .
+    '<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 $wp_http_referer = remove_query_arg( array( 'update', 'delete_count', 'user_id' ), $wp_http_referer );
@@ -269,6 +270,40 @@ if ( !( IS_PROFILE_PAGE && !$user_can_edit ) ) : ?>
 </fieldset>
 </td>
 </tr>
+
+<?php
+$languages = get_available_languages();
+if ( $languages ) : ?>
+<tr class="user-language-wrap">
+	<th scope="row">
+		<?php /* translators: The user language selection field label */ ?>
+		<label for="locale"><?php _e( 'Language' ); ?></label>
+	</th>
+	<td>
+		<?php
+		$user_locale = $profileuser->locale;
+
+		if ( 'en_US' === $user_locale ) {
+			$user_locale = '';
+		} elseif ( '' === $user_locale || ! in_array( $user_locale, $languages, true ) ) {
+			$user_locale = 'site-default';
+		}
+
+		wp_dropdown_languages( array(
+			'name'                        => 'locale',
+			'id'                          => 'locale',
+			'selected'                    => $user_locale,
+			'languages'                   => $languages,
+			'show_available_translations' => false,
+			'show_option_site_default'    => true
+		) );
+		?>
+	</td>
+</tr>
+<?php
+endif;
+?>
+
 <?php
 /**
  * Fires at the end of the 'Personal Options' settings table on the user editing screen.
@@ -473,10 +508,12 @@ if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_c
 			 * Filters the user profile picture description displayed under the Gravatar.
 			 *
 			 * @since 4.4.0
+			 * @since 4.7.0 Added the `$profileuser` parameter.
 			 *
-			 * @param string $description The description that will be printed.
+			 * @param string  $description The description that will be printed.
+			 * @param WP_User $profileuser The current WP_User object.
 			 */
-			echo apply_filters( 'user_profile_picture_description', $description );
+			echo apply_filters( 'user_profile_picture_description', $description, $profileuser );
 		?></p>
 	</td>
 </tr>
@@ -503,16 +540,16 @@ if ( $show_password_fields = apply_filters( 'show_password_fields', true, $profi
 	<th><label for="pass1"><?php _e( 'New Password' ); ?></label></th>
 	<td>
 		<input class="hidden" value=" " /><!-- #24364 workaround -->
-		<button type="button" class="button button-secondary wp-generate-pw hide-if-no-js"><?php _e( 'Generate Password' ); ?></button>
+		<button type="button" class="button wp-generate-pw hide-if-no-js"><?php _e( 'Generate Password' ); ?></button>
 		<div class="wp-pwd hide-if-js">
 			<span class="password-input-wrapper">
 				<input type="password" name="pass1" id="pass1" class="regular-text" value="" autocomplete="off" data-pw="<?php echo esc_attr( wp_generate_password( 24 ) ); ?>" aria-describedby="pass-strength-result" />
 			</span>
-			<button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
+			<button type="button" class="button wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
 				<span class="dashicons dashicons-hidden"></span>
 				<span class="text"><?php _e( 'Hide' ); ?></span>
 			</button>
-			<button type="button" class="button button-secondary wp-cancel-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Cancel password change' ); ?>">
+			<button type="button" class="button wp-cancel-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Cancel password change' ); ?>">
 				<span class="text"><?php _e( 'Cancel' ); ?></span>
 			</button>
 			<div style="display:none" id="pass-strength-result" aria-live="polite"></div>
@@ -542,7 +579,7 @@ if ( IS_PROFILE_PAGE && count( $sessions->get_all() ) === 1 ) : ?>
 	<tr class="user-sessions-wrap hide-if-no-js">
 		<th><?php _e( 'Sessions' ); ?></th>
 		<td aria-live="assertive">
-			<div class="destroy-sessions"><button type="button" disabled class="button button-secondary"><?php _e( 'Log Out Everywhere Else' ); ?></button></div>
+			<div class="destroy-sessions"><button type="button" disabled class="button"><?php _e( 'Log Out Everywhere Else' ); ?></button></div>
 			<p class="description">
 				<?php _e( 'You are only logged in at this location.' ); ?>
 			</p>
@@ -552,7 +589,7 @@ if ( IS_PROFILE_PAGE && count( $sessions->get_all() ) === 1 ) : ?>
 	<tr class="user-sessions-wrap hide-if-no-js">
 		<th><?php _e( 'Sessions' ); ?></th>
 		<td aria-live="assertive">
-			<div class="destroy-sessions"><button type="button" class="button button-secondary" id="destroy-sessions"><?php _e( 'Log Out Everywhere Else' ); ?></button></div>
+			<div class="destroy-sessions"><button type="button" class="button" id="destroy-sessions"><?php _e( 'Log Out Everywhere Else' ); ?></button></div>
 			<p class="description">
 				<?php _e( 'Did you lose your phone or leave your account logged in at a public computer? You can log out everywhere else, and stay logged in here.' ); ?>
 			</p>
@@ -562,7 +599,7 @@ if ( IS_PROFILE_PAGE && count( $sessions->get_all() ) === 1 ) : ?>
 	<tr class="user-sessions-wrap hide-if-no-js">
 		<th><?php _e( 'Sessions' ); ?></th>
 		<td>
-			<p><button type="button" class="button button-secondary" id="destroy-sessions"><?php _e( 'Log Out Everywhere' ); ?></button></p>
+			<p><button type="button" class="button" id="destroy-sessions"><?php _e( 'Log Out Everywhere' ); ?></button></p>
 			<p class="description">
 				<?php
 				/* translators: 1: User's display name. */
diff --git a/wp-admin/user-new.php b/wp-admin/user-new.php
index 42732434a..e039d711e 100644
--- a/wp-admin/user-new.php
+++ b/wp-admin/user-new.php
@@ -87,6 +87,8 @@ if ( isset($_REQUEST['action']) && 'adduser' == $_REQUEST['action'] ) {
 			 */
 			do_action( 'invite_user', $user_id, $role, $newuser_key );
 
+			$switched_locale = switch_to_locale( get_user_locale( $user_details ) );
+
 			/* translators: 1: Site name, 2: site URL, 3: role, 4: activation URL */
 			$message = __( 'Hi,
 
@@ -96,6 +98,11 @@ You\'ve been invited to join \'%1$s\' at
 Please click the following link to confirm the invite:
 %4$s' );
 			wp_mail( $new_user_email, sprintf( __( '[%s] Joining confirmation' ), wp_specialchars_decode( get_option( 'blogname' ) ) ), sprintf( $message, get_option( 'blogname' ), home_url(), wp_specialchars_decode( translate_user_role( $role['name'] ) ), home_url( "/newbloguser/$newuser_key/" ) ) );
+
+			if ( $switched_locale ) {
+				restore_previous_locale();
+			}
+
 			$redirect = add_query_arg( array('update' => 'add'), 'user-new.php' );
 		}
 	}
@@ -203,8 +210,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
     '<p><strong>' . __('For more information:') . '</strong></p>' .
-    '<p>' . __('<a href="https://codex.wordpress.org/Users_Add_New_Screen" target="_blank">Documentation on Adding New Users</a>') . '</p>' .
-    '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+    '<p>' . __('<a href="https://codex.wordpress.org/Users_Add_New_Screen">Documentation on Adding New Users</a>') . '</p>' .
+    '<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 wp_enqueue_script('wp-ajax-response');
@@ -270,9 +277,9 @@ if ( isset($_GET['update']) ) {
 <div class="wrap">
 <h1 id="add-new-user"><?php
 if ( current_user_can( 'create_users' ) ) {
-	echo _x( 'Add New User', 'user' );
+	_e( 'Add New User' );
 } elseif ( current_user_can( 'promote_users' ) ) {
-	echo _x( 'Add Existing User', 'user' );
+	_e( 'Add Existing User' );
 } ?>
 </h1>
 
@@ -341,8 +348,11 @@ if ( is_multisite() ) {
 	</tr>
 <?php if ( current_user_can( 'manage_network_users' ) ) { ?>
 	<tr>
-		<th scope="row"><label for="adduser-noconfirmation"><?php _e('Skip Confirmation Email') ?></label></th>
-		<td><label for="adduser-noconfirmation"><input type="checkbox" name="noconfirmation" id="adduser-noconfirmation" value="1" /> <?php _e( 'Add the user without sending an email that requires their confirmation.' ); ?></label></td>
+		<th scope="row"><?php _e( 'Skip Confirmation Email' ); ?></th>
+		<td>
+			<input type="checkbox" name="noconfirmation" id="adduser-noconfirmation" value="1" />
+			<label for="adduser-noconfirmation"><?php _e( 'Add the user without sending an email that requires their confirmation.' ); ?></label>
+		</td>
 	</tr>
 <?php } ?>
 </table>
@@ -421,17 +431,17 @@ $new_user_ignore_pass = $creating && isset( $_POST['noconfirmation'] ) ? wp_unsl
 		</th>
 		<td>
 			<input class="hidden" value=" " /><!-- #24364 workaround -->
-			<button type="button" class="button button-secondary wp-generate-pw hide-if-no-js"><?php _e( 'Show password' ); ?></button>
+			<button type="button" class="button wp-generate-pw hide-if-no-js"><?php _e( 'Show password' ); ?></button>
 			<div class="wp-pwd hide-if-js">
 				<?php $initial_password = wp_generate_password( 24 ); ?>
 				<span class="password-input-wrapper">
 					<input type="password" name="pass1" id="pass1" class="regular-text" autocomplete="off" data-reveal="1" data-pw="<?php echo esc_attr( $initial_password ); ?>" aria-describedby="pass-strength-result" />
 				</span>
-				<button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
+				<button type="button" class="button wp-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
 					<span class="dashicons dashicons-hidden"></span>
 					<span class="text"><?php _e( 'Hide' ); ?></span>
 				</button>
-				<button type="button" class="button button-secondary wp-cancel-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Cancel password change' ); ?>">
+				<button type="button" class="button wp-cancel-pw hide-if-no-js" data-toggle="0" aria-label="<?php esc_attr_e( 'Cancel password change' ); ?>">
 					<span class="text"><?php _e( 'Cancel' ); ?></span>
 				</button>
 				<div style="display:none" id="pass-strength-result" aria-live="polite"></div>
@@ -455,7 +465,10 @@ $new_user_ignore_pass = $creating && isset( $_POST['noconfirmation'] ) ? wp_unsl
 	</tr>
 	<tr>
 		<th scope="row"><?php _e( 'Send User Notification' ) ?></th>
-		<td><label for="send_user_notification"><input type="checkbox" name="send_user_notification" id="send_user_notification" value="1" <?php checked( $new_user_send_notification ); ?> /> <?php _e( 'Send the new user an email about their account.' ); ?></label></td>
+		<td>
+			<input type="checkbox" name="send_user_notification" id="send_user_notification" value="1" <?php checked( $new_user_send_notification ); ?> />
+			<label for="send_user_notification"><?php _e( 'Send the new user an email about their account.' ); ?></label>
+		</td>
 	</tr>
 <?php } // !is_multisite ?>
 	<tr class="form-field">
@@ -471,8 +484,11 @@ $new_user_ignore_pass = $creating && isset( $_POST['noconfirmation'] ) ? wp_unsl
 	</tr>
 	<?php if ( is_multisite() && current_user_can( 'manage_network_users' ) ) { ?>
 	<tr>
-		<th scope="row"><label for="noconfirmation"><?php _e('Skip Confirmation Email') ?></label></th>
-		<td><label for="noconfirmation"><input type="checkbox" name="noconfirmation" id="noconfirmation" value="1" <?php checked( $new_user_ignore_pass ); ?> /> <?php _e( 'Add the user without sending an email that requires their confirmation.' ); ?></label></td>
+		<th scope="row"><?php _e( 'Skip Confirmation Email' ); ?></th>
+		<td>
+			<input type="checkbox" name="noconfirmation" id="noconfirmation" value="1" <?php checked( $new_user_ignore_pass ); ?> />
+			<label for="noconfirmation"><?php _e( 'Add the user without sending an email that requires their confirmation.' ); ?></label>
+		</td>
 	</tr>
 	<?php } ?>
 </table>
diff --git a/wp-admin/users.php b/wp-admin/users.php
index 194ced94d..24367647b 100644
--- a/wp-admin/users.php
+++ b/wp-admin/users.php
@@ -13,7 +13,7 @@ require_once( dirname( __FILE__ ) . '/admin.php' );
 if ( ! current_user_can( 'list_users' ) ) {
 	wp_die(
 		'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
-		'<p>' . __( 'Sorry, you are not allowed to browse users.' ) . '</p>',
+		'<p>' . __( 'Sorry, you are not allowed to list users.' ) . '</p>',
 		403
 	);
 }
@@ -64,9 +64,9 @@ unset( $help );
 
 get_current_screen()->set_help_sidebar(
     '<p><strong>' . __('For more information:') . '</strong></p>' .
-    '<p>' . __('<a href="https://codex.wordpress.org/Users_Screen" target="_blank">Documentation on Managing Users</a>') . '</p>' .
-    '<p>' . __('<a href="https://codex.wordpress.org/Roles_and_Capabilities" target="_blank">Descriptions of Roles and Capabilities</a>') . '</p>' .
-    '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+    '<p>' . __('<a href="https://codex.wordpress.org/Users_Screen">Documentation on Managing Users</a>') . '</p>' .
+    '<p>' . __('<a href="https://codex.wordpress.org/Roles_and_Capabilities">Descriptions of Roles and Capabilities</a>') . '</p>' .
+    '<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 get_current_screen()->set_screen_reader_content( array(
@@ -94,7 +94,7 @@ case 'promote':
 	check_admin_referer('bulk-users');
 
 	if ( ! current_user_can( 'promote_users' ) )
-		wp_die( __( 'You can&#8217;t edit that user.' ) );
+		wp_die( __( 'Sorry, you are not allowed to edit this user.' ) );
 
 	if ( empty($_REQUEST['users']) ) {
 		wp_redirect($redirect);
@@ -110,7 +110,7 @@ case 'promote':
 	}
 
 	if ( ! $role || empty( $editable_roles[ $role ] ) ) {
-		wp_die( __( 'You can&#8217;t give users that role.' ) );
+		wp_die( __( 'Sorry, you are not allowed to give users that role.' ) );
 	}
 
 	$userids = $_REQUEST['users'];
@@ -119,7 +119,7 @@ case 'promote':
 		$id = (int) $id;
 
 		if ( ! current_user_can('promote_user', $id) )
-			wp_die(__('You can&#8217;t edit that user.'));
+			wp_die(__('Sorry, you are not allowed to edit this user.'));
 		// The new role of the current user must also have the promote_users cap or be a multisite super admin
 		if ( $id == $current_user->ID && ! $wp_roles->role_objects[ $role ]->has_cap('promote_users')
 			&& ! ( is_multisite() && is_super_admin() ) ) {
@@ -164,14 +164,14 @@ case 'dodelete':
 	}
 
 	if ( ! current_user_can( 'delete_users' ) )
-		wp_die(__('You can&#8217;t delete users.'));
+		wp_die(__('Sorry, you are not allowed to delete users.'));
 
 	$update = 'del';
 	$delete_count = 0;
 
 	foreach ( $userids as $id ) {
 		if ( ! current_user_can( 'delete_user', $id ) )
-			wp_die(__( 'You can&#8217;t delete that user.' ) );
+			wp_die(__( 'Sorry, you are not allowed to delete that user.' ) );
 
 		if ( $id == $current_user->ID ) {
 			$update = 'err_admin_del';
@@ -204,7 +204,7 @@ case 'delete':
 	}
 
 	if ( ! current_user_can( 'delete_users' ) )
-		$errors = new WP_Error( 'edit_users', __( 'You can&#8217;t delete users.' ) );
+		$errors = new WP_Error( 'edit_users', __( 'Sorry, you are not allowed to delete users.' ) );
 
 	if ( empty($_REQUEST['users']) )
 		$userids = array( intval( $_REQUEST['user'] ) );
@@ -314,7 +314,7 @@ case 'doremove':
 	}
 
 	if ( ! current_user_can( 'remove_users' ) )
-		wp_die( __( 'You can&#8217;t remove users.' ) );
+		wp_die( __( 'Sorry, you are not allowed to remove users.' ) );
 
 	$userids = $_REQUEST['users'];
 
@@ -349,7 +349,7 @@ case 'remove':
 	}
 
 	if ( !current_user_can('remove_users') )
-		$error = new WP_Error('edit_users', __('You can&#8217;t remove users.'));
+		$error = new WP_Error('edit_users', __('Sorry, you are not allowed to remove users.'));
 
 	if ( empty($_REQUEST['users']) )
 		$userids = array(intval($_REQUEST['user']));
@@ -382,7 +382,7 @@ case 'remove':
 			echo "<li>" . sprintf(__('ID #%1$s: %2$s <strong>The current user will not be removed.</strong>'), $id, $user->user_login) . "</li>\n";
 		} elseif ( !current_user_can('remove_user', $id) ) {
 			/* translators: 1: user id, 2: user login */
-			echo "<li>" . sprintf(__('ID #%1$s: %2$s <strong>You don&#8217;t have permission to remove this user.</strong>'), $id, $user->user_login) . "</li>\n";
+			echo "<li>" . sprintf(__('ID #%1$s: %2$s <strong>Sorry, you are not allowed to remove this user.</strong>'), $id, $user->user_login) . "</li>\n";
 		} else {
 			/* translators: 1: user id, 2: user login */
 			echo "<li><input type=\"hidden\" name=\"users[]\" value=\"{$id}\" />" . sprintf(__('ID #%1$s: %2$s'), $id, $user->user_login) . "</li>\n";
@@ -410,6 +410,17 @@ default:
 		exit;
 	}
 
+	if ( $wp_list_table->current_action() && ! empty( $_REQUEST['users'] ) ) {
+		$userids = $_REQUEST['users'];
+		$sendback = wp_get_referer();
+
+		/** This action is documented in wp-admin/edit-comments.php */
+		$sendback = apply_filters( 'handle_bulk_actions-' . get_current_screen()->id, $sendback, $wp_list_table->current_action(), $userids );
+
+		wp_safe_redirect( $sendback );
+		exit;
+	}
+
 	$wp_list_table->prepare_items();
 	$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
 	if ( $pagenum > $total_pages && $total_pages > 0 ) {
diff --git a/wp-admin/widgets.php b/wp-admin/widgets.php
index a9876b891..e1ae09132 100644
--- a/wp-admin/widgets.php
+++ b/wp-admin/widgets.php
@@ -71,8 +71,8 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="https://codex.wordpress.org/Appearance_Widgets_Screen" target="_blank">Documentation on Widgets</a>') . '</p>' .
-	'<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	'<p>' . __('<a href="https://codex.wordpress.org/Appearance_Widgets_Screen">Documentation on Widgets</a>') . '</p>' .
+	'<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>'
 );
 
 if ( ! current_theme_supports( 'widgets' ) ) {
@@ -315,9 +315,9 @@ if ( isset($_GET['editwidget']) && $_GET['editwidget'] ) {
 	<a href="widgets.php" class="button alignleft"><?php _e('Cancel'); ?></a>
 <?php
 	} else {
-		submit_button( __( 'Delete' ), 'button alignleft', 'removewidget', false );
+		submit_button( __( 'Delete' ), 'alignleft', 'removewidget', false );
 	}
-	submit_button( __( 'Save Widget' ), 'button-primary alignright', 'savewidget', false ); ?>
+	submit_button( __( 'Save Widget' ), 'primary alignright', 'savewidget', false ); ?>
 	<input type="hidden" name="widget-id" class="widget-id" value="<?php echo esc_attr($widget_id); ?>" />
 	<input type="hidden" name="id_base" class="id_base" value="<?php echo esc_attr($id_base); ?>" />
 	<input type="hidden" name="multi_number" class="multi_number" value="<?php echo esc_attr($multi_number); ?>" />
@@ -500,8 +500,8 @@ foreach ( $theme_sidebars as $sidebar => $registered_sidebar ) {
 <div class="widgets-chooser">
 	<ul class="widgets-chooser-sidebars"></ul>
 	<div class="widgets-chooser-actions">
-		<button class="button-secondary"><?php _e( 'Cancel' ); ?></button>
-		<button class="button-primary"><?php _e( 'Add Widget' ); ?></button>
+		<button class="button widgets-chooser-cancel"><?php _e( 'Cancel' ); ?></button>
+		<button class="button button-primary widgets-chooser-add"><?php _e( 'Add Widget' ); ?></button>
 	</div>
 </div>
 
diff --git a/wp-comments-post.php b/wp-comments-post.php
index 4e9f1fcfb..2c421d327 100644
--- a/wp-comments-post.php
+++ b/wp-comments-post.php
@@ -6,8 +6,13 @@
  */
 
 if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
+	$protocol = $_SERVER['SERVER_PROTOCOL'];
+	if ( ! in_array( $protocol, array( 'HTTP/1.1', 'HTTP/2', 'HTTP/2.0' ) ) ) {
+		$protocol = 'HTTP/1.0';
+	}
+
 	header('Allow: POST');
-	header('HTTP/1.1 405 Method Not Allowed');
+	header("$protocol 405 Method Not Allowed");
 	header('Content-Type: text/plain');
 	exit;
 }
diff --git a/wp-content/themes/twentyfifteen/readme.txt b/wp-content/themes/twentyfifteen/readme.txt
index 36ef94045..8ca828082 100644
--- a/wp-content/themes/twentyfifteen/readme.txt
+++ b/wp-content/themes/twentyfifteen/readme.txt
@@ -1,8 +1,8 @@
 === Twenty Fifteen ===
 Contributors: the WordPress team
 Requires at least: WordPress 4.1
-Tested up to: WordPress 4.7-trunk
-Version: 1.6
+Tested up to: WordPress 4.8-trunk
+Version: 1.7
 License: GPLv2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Tags: blog, two-columns, left-sidebar, accessibility-ready, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready
@@ -55,6 +55,11 @@ Source: http://www.genericons.com
 
 == Changelog ==
 
+= 1.7 =
+* Released: December 6, 2016
+
+https://codex.wordpress.org/Twenty_Fifteen_Theme_Changelog#Version_1.7
+
 = 1.6 =
 * Released: August 15, 2016
 
diff --git a/wp-content/themes/twentyfifteen/style.css b/wp-content/themes/twentyfifteen/style.css
index 56e46b688..13048ba9d 100644
--- a/wp-content/themes/twentyfifteen/style.css
+++ b/wp-content/themes/twentyfifteen/style.css
@@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentyfifteen/
 Author: the WordPress team
 Author URI: https://wordpress.org/
 Description: Our 2015 default theme is clean, blog-focused, and designed for clarity. Twenty Fifteen's simple, straightforward typography is readable on a wide variety of screen sizes, and suitable for multiple languages. We designed it using a mobile-first approach, meaning your content takes center-stage, regardless of whether your visitors arrive by smartphone, tablet, laptop, or desktop computer.
-Version: 1.6
+Version: 1.7
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Tags: blog, two-columns, left-sidebar, accessibility-ready, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready
diff --git a/wp-content/themes/twentyseventeen/404.php b/wp-content/themes/twentyseventeen/404.php
new file mode 100644
index 000000000..4a6d11353
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/404.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * The template for displaying 404 pages (not found)
+ *
+ * @link https://codex.wordpress.org/Creating_an_Error_404_Page
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+get_header(); ?>
+
+<div class="wrap">
+	<div id="primary" class="content-area">
+		<main id="main" class="site-main" role="main">
+
+			<section class="error-404 not-found">
+				<header class="page-header">
+					<h1 class="page-title"><?php _e( 'Oops! That page can&rsquo;t be found.', 'twentyseventeen' ); ?></h1>
+				</header><!-- .page-header -->
+				<div class="page-content">
+					<p><?php _e( 'It looks like nothing was found at this location. Maybe try a search?', 'twentyseventeen' ); ?></p>
+
+					<?php get_search_form(); ?>
+
+				</div><!-- .page-content -->
+			</section><!-- .error-404 -->
+		</main><!-- #main -->
+	</div><!-- #primary -->
+</div><!-- .wrap -->
+
+<?php get_footer();
diff --git a/wp-content/themes/twentyseventeen/README.txt b/wp-content/themes/twentyseventeen/README.txt
new file mode 100644
index 000000000..a41e0e5be
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/README.txt
@@ -0,0 +1,66 @@
+=== Twenty Seventeen ===
+Contributors: the WordPress team
+Requires at least: WordPress 4.8-trunk
+Tested up to: WordPress 4.7
+Version: 1.0
+License: GPLv2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+Tags: one-column, two-columns, right-sidebar, flexible-header, accessibility-ready, custom-colors, custom-header, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready
+
+== Description ==
+
+Twenty Seventeen brings your site to life with header video and immersive featured images. With a focus on business sites, it features multiple sections on the front page as well as widgets, navigation and social menus, a logo, and more. Personalize its asymmetrical grid with a custom color scheme and showcase your multimedia content with post formats. Our default theme for 2017 works great in many languages, for any abilities, and on any device.
+
+For more information about Twenty Seventeen please go to https://codex.wordpress.org/Twenty_Seventeen.
+
+== Installation ==
+
+1. In your admin panel, go to Appearance -> Themes and click the 'Add New' button.
+2. Type in Twenty Seventeen in the search form and press the 'Enter' key on your keyboard.
+3. Click on the 'Activate' button to use your new theme right away.
+4. Go to https://codex.wordpress.org/Twenty_Seventeen for a guide on how to customize this theme.
+5. Navigate to Appearance > Customize in your admin panel and customize to taste.
+
+== Copyright ==
+
+Twenty Seventeen WordPress Theme, Copyright 2016 WordPress.org
+Twenty Seventeen is distributed under the terms of the GNU GPL
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+Twenty Seventeen bundles the following third-party resources:
+
+HTML5 Shiv, Copyright 2014 Alexander Farkas
+Licenses: MIT/GPL2
+Source: https://github.com/aFarkas/html5shiv
+
+jQuery scrollTo, Copyright 2007-2015 Ariel Flesler
+License: MIT
+Source: https://github.com/flesler/jquery.scrollTo
+
+normalize.css, Copyright 2012-2016 Nicolas Gallagher and Jonathan Neal
+License: MIT
+Source: https://necolas.github.io/normalize.css/
+
+Font Awesome icons, Copyright Dave Gandy
+License: SIL Open Font License, version 1.1.
+Source: http://fontawesome.io/
+
+Bundled header image, Copyright Alvin Engler
+License: CC0 1.0 Universal (CC0 1.0)
+Source: https://unsplash.com/@englr?photo=bIhpiQA009k
+
+== Changelog ==
+
+= 1.0 =
+* Released: December 6, 2016
+
+Initial release
diff --git a/wp-content/themes/twentyseventeen/archive.php b/wp-content/themes/twentyseventeen/archive.php
new file mode 100644
index 000000000..6f9e03c37
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/archive.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * The template for displaying archive pages
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+get_header(); ?>
+
+<div class="wrap">
+
+	<?php if ( have_posts() ) : ?>
+		<header class="page-header">
+			<?php
+				the_archive_title( '<h1 class="page-title">', '</h1>' );
+				the_archive_description( '<div class="taxonomy-description">', '</div>' );
+			?>
+		</header><!-- .page-header -->
+	<?php endif; ?>
+
+	<div id="primary" class="content-area">
+		<main id="main" class="site-main" role="main">
+
+		<?php
+		if ( have_posts() ) : ?>
+			<?php
+			/* Start the Loop */
+			while ( have_posts() ) : the_post();
+
+				/*
+				 * Include the Post-Format-specific template for the content.
+				 * If you want to override this in a child theme, then include a file
+				 * called content-___.php (where ___ is the Post Format name) and that will be used instead.
+				 */
+				get_template_part( 'template-parts/post/content', get_post_format() );
+
+			endwhile;
+
+			the_posts_pagination( array(
+				'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous page', 'twentyseventeen' ) . '</span>',
+				'next_text' => '<span class="screen-reader-text">' . __( 'Next page', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ),
+				'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyseventeen' ) . ' </span>',
+			) );
+
+		else :
+
+			get_template_part( 'template-parts/post/content', 'none' );
+
+		endif; ?>
+
+		</main><!-- #main -->
+	</div><!-- #primary -->
+	<?php get_sidebar(); ?>
+</div><!-- .wrap -->
+
+<?php get_footer();
diff --git a/wp-content/themes/twentyseventeen/assets/css/colors-dark.css b/wp-content/themes/twentyseventeen/assets/css/colors-dark.css
new file mode 100644
index 000000000..d6fda60c4
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/css/colors-dark.css
@@ -0,0 +1,560 @@
+/**
+ * Twenty Seventeen: Dark Color Scheme
+ *
+ * See inc/color-patterns.php for dynamic color overrides for the theme.
+ *
+ * Colors are ordered from light to dark.
+ */
+
+.colors-dark button,
+.colors-dark input[type="button"],
+.colors-dark input[type="submit"],
+.colors-dark .entry-footer .edit-link a.post-edit-link {
+	background-color: #fff;
+}
+
+.colors-dark a:hover,
+.colors-dark a:active,
+.colors-dark .entry-content a:focus,
+.colors-dark .entry-content a:hover,
+.colors-dark .entry-summary a:focus,
+.colors-dark .entry-summary a:hover,
+.colors-dark .widget a:focus,
+.colors-dark .widget a:hover,
+.colors-dark .site-footer .widget-area a:focus,
+.colors-dark .site-footer .widget-area a:hover,
+.colors-dark .posts-navigation a:focus,
+.colors-dark .posts-navigation a:hover,
+.colors-dark .comment-metadata a:focus,
+.colors-dark .comment-metadata a:hover,
+.colors-dark .comment-metadata a.comment-edit-link:focus,
+.colors-dark .comment-metadata a.comment-edit-link:hover,
+.colors-dark .comment-reply-link:focus,
+.colors-dark .comment-reply-link:hover,
+.colors-dark .widget_authors a:focus strong,
+.colors-dark .widget_authors a:hover strong,
+.colors-dark .entry-title a:focus,
+.colors-dark .entry-title a:hover,
+.colors-dark .entry-meta a:focus,
+.colors-dark .entry-meta a:hover,
+.colors-dark.blog .entry-meta a.post-edit-link:focus,
+.colors-dark.blog .entry-meta a.post-edit-link:hover,
+.colors-dark.archive .entry-meta a.post-edit-link:focus,
+.colors-dark.archive .entry-meta a.post-edit-link:hover,
+.colors-dark.search .entry-meta a.post-edit-link:focus,
+.colors-dark.search .entry-meta a.post-edit-link:hover,
+.colors-dark .page-links a:focus .page-number,
+.colors-dark .page-links a:hover .page-number,
+.colors-dark .entry-footer .cat-links a:focus,
+.colors-dark .entry-footer .cat-links a:hover,
+.colors-dark .entry-footer .tags-links a:focus,
+.colors-dark .entry-footer .tags-links a:hover,
+.colors-dark .post-navigation a:focus,
+.colors-dark .post-navigation a:hover,
+.colors-dark .pagination a:not(.prev):not(.next):focus,
+.colors-dark .pagination a:not(.prev):not(.next):hover,
+.colors-dark .comments-pagination a:not(.prev):not(.next):focus,
+.colors-dark .comments-pagination a:not(.prev):not(.next):hover,
+.colors-dark .logged-in-as a:focus,
+.colors-dark .logged-in-as a:hover,
+.colors-dark a:focus .nav-title,
+.colors-dark a:hover .nav-title,
+.colors-dark .edit-link a:focus,
+.colors-dark .edit-link a:hover,
+.colors-dark .site-info a:focus,
+.colors-dark .site-info a:hover,
+.colors-dark .widget .widget-title a:focus,
+.colors-dark .widget .widget-title a:hover,
+.colors-dark .widget ul li a:focus,
+.colors-dark .widget ul li a:hover {
+	color: #fff;
+}
+
+.colors-dark .entry-content a:focus,
+.colors-dark .entry-content a:hover,
+.colors-dark .entry-summary a:focus,
+.colors-dark .entry-summary a:hover,
+.colors-dark .widget a:focus,
+.colors-dark .widget a:hover,
+.colors-dark .site-footer .widget-area a:focus,
+.colors-dark .site-footer .widget-area a:hover,
+.colors-dark .posts-navigation a:focus,
+.colors-dark .posts-navigation a:hover,
+.colors-dark .comment-metadata a:focus,
+.colors-dark .comment-metadata a:hover,
+.colors-dark .comment-metadata a.comment-edit-link:focus,
+.colors-dark .comment-metadata a.comment-edit-link:hover,
+.colors-dark .comment-reply-link:focus,
+.colors-dark .comment-reply-link:hover,
+.colors-dark .widget_authors a:focus strong,
+.colors-dark .widget_authors a:hover strong,
+.colors-dark .entry-title a:focus,
+.colors-dark .entry-title a:hover,
+.colors-dark .entry-meta a:focus,
+.colors-dark .entry-meta a:hover,
+.colors-dark.blog .entry-meta a.post-edit-link:focus,
+.colors-dark.blog .entry-meta a.post-edit-link:hover,
+.colors-dark.archive .entry-meta a.post-edit-link:focus,
+.colors-dark.archive .entry-meta a.post-edit-link:hover,
+.colors-dark.search .entry-meta a.post-edit-link:focus,
+.colors-dark.search .entry-meta a.post-edit-link:hover,
+.colors-dark .page-links a:focus .page-number,
+.colors-dark .page-links a:hover .page-number,
+.colors-dark .entry-footer .cat-links a:focus,
+.colors-dark .entry-footer .cat-links a:hover,
+.colors-dark .entry-footer .tags-links a:focus,
+.colors-dark .entry-footer .tags-links a:hover,
+.colors-dark .post-navigation a:focus,
+.colors-dark .post-navigation a:hover,
+.colors-dark .pagination a:not(.prev):not(.next):focus,
+.colors-dark .pagination a:not(.prev):not(.next):hover,
+.colors-dark .comments-pagination a:not(.prev):not(.next):focus,
+.colors-dark .comments-pagination a:not(.prev):not(.next):hover,
+.colors-dark .logged-in-as a:focus,
+.colors-dark .logged-in-as a:hover,
+.colors-dark a:focus .nav-title,
+.colors-dark a:hover .nav-title,
+.colors-dark .edit-link a:focus,
+.colors-dark .edit-link a:hover,
+.colors-dark .site-info a:focus,
+.colors-dark .site-info a:hover,
+.colors-dark .widget .widget-title a:focus,
+.colors-dark .widget .widget-title a:hover,
+.colors-dark .widget ul li a:focus,
+.colors-dark .widget ul li a:hover {
+	-webkit-box-shadow: inset 0 0 0 rgba(255, 255, 255, 0), 0 3px 0 rgba(255, 255, 255, 1); /* Equivalant to #fff */
+	box-shadow: inset 0 0 0 rgba(255, 255, 255, 0), 0 3px 0 rgba(255, 255, 255, 1); /* Equivalant to #fff */
+}
+
+.colors-dark .entry-content a,
+.colors-dark .entry-summary a,
+.colors-dark .widget a,
+.colors-dark .site-footer .widget-area a,
+.colors-dark .posts-navigation a,
+.colors-dark .widget_authors a strong {
+	-webkit-box-shadow: inset 0 -1px 0 rgba(240, 240, 240, 1); /* Equivalant to #f0f0f0 */
+	box-shadow: inset 0 -1px 0 rgba(240, 240, 240, 1); /* Equivalant to #f0f0f0 */
+}
+
+body.colors-dark,
+.colors-dark button,
+.colors-dark input,
+.colors-dark select,
+.colors-dark textarea,
+.colors-dark h3,
+.colors-dark h4,
+.colors-dark h6,
+.colors-dark label,
+.colors-dark .entry-title a,
+.colors-dark.twentyseventeen-front-page .panel-content .recent-posts article,
+.colors-dark .entry-footer .cat-links a,
+.colors-dark .entry-footer .tags-links a,
+.colors-dark .format-quote blockquote,
+.colors-dark .nav-title,
+.colors-dark .comment-body {
+	color: #eee;
+}
+
+/* Placeholder text color -- selectors need to be separate to work. */
+.colors-dark ::-webkit-input-placeholder {
+	color: #ddd;
+}
+
+.colors-dark :-moz-placeholder {
+	color: #ddd;
+}
+
+.colors-dark ::-moz-placeholder {
+	color: #ddd;
+}
+
+.colors-dark :-ms-input-placeholder {
+	color: #ddd;
+}
+
+.colors-dark input[type="text"]:focus,
+.colors-dark input[type="email"]:focus,
+.colors-dark input[type="url"]:focus,
+.colors-dark input[type="password"]:focus,
+.colors-dark input[type="search"]:focus,
+.colors-dark input[type="number"]:focus,
+.colors-dark input[type="tel"]:focus,
+.colors-dark input[type="range"]:focus,
+.colors-dark input[type="date"]:focus,
+.colors-dark input[type="month"]:focus,
+.colors-dark input[type="week"]:focus,
+.colors-dark input[type="time"]:focus,
+.colors-dark input[type="datetime"]:focus,
+.colors-dark input[type="datetime-local"]:focus,
+.colors-dark input[type="color"]:focus,
+.colors-dark textarea:focus,
+.bypostauthor > .comment-body > .comment-meta > .comment-author .avatar {
+	border-color: #eee;
+}
+
+.colors-dark input[type="text"]:focus,
+.colors-dark input[type="email"]:focus,
+.colors-dark input[type="url"]:focus,
+.colors-dark input[type="password"]:focus,
+.colors-dark input[type="search"]:focus,
+.colors-dark input[type="number"]:focus,
+.colors-dark input[type="tel"]:focus,
+.colors-dark input[type="range"]:focus,
+.colors-dark input[type="date"]:focus,
+.colors-dark input[type="month"]:focus,
+.colors-dark input[type="week"]:focus,
+.colors-dark input[type="time"]:focus,
+.colors-dark input[type="datetime"]:focus,
+.colors-dark input[type="datetime-local"]:focus,
+.colors-dark input[type="color"]:focus,
+.colors-dark textarea:focus,
+.colors-dark button.secondary,
+.colors-dark input[type="reset"],
+.colors-dark input[type="button"].secondary,
+.colors-dark input[type="reset"].secondary,
+.colors-dark input[type="submit"].secondary,
+.colors-dark a,
+.colors-dark .site-title,
+.colors-dark .site-title a,
+.colors-dark .navigation-top a,
+.colors-dark .dropdown-toggle,
+.colors-dark .menu-toggle,
+.colors-dark .page .panel-content .entry-title,
+.colors-dark .page-title,
+.colors-dark.page:not(.twentyseventeen-front-page) .entry-title,
+.colors-dark .page-links a .page-number,
+.colors-dark .comment-metadata a.comment-edit-link,
+.colors-dark .comment-reply-link .icon,
+.colors-dark h2.widget-title,
+.colors-dark mark,
+.colors-dark .post-navigation a:focus .icon,
+.colors-dark .post-navigation a:hover .icon,
+.colors-dark.blog .entry-meta a.post-edit-link,
+.colors-dark.archive .entry-meta a.post-edit-link,
+.colors-dark.search .entry-meta a.post-edit-link,
+.colors-custom .twentyseventeen-panel .recent-posts .entry-header .edit-link {
+	color: #ddd;
+}
+
+.colors-dark h2,
+.colors-dark blockquote,
+.colors-dark input[type="text"],
+.colors-dark input[type="email"],
+.colors-dark input[type="url"],
+.colors-dark input[type="password"],
+.colors-dark input[type="search"],
+.colors-dark input[type="number"],
+.colors-dark input[type="tel"],
+.colors-dark input[type="range"],
+.colors-dark input[type="date"],
+.colors-dark input[type="month"],
+.colors-dark input[type="week"],
+.colors-dark input[type="time"],
+.colors-dark input[type="datetime"],
+.colors-dark input[type="datetime-local"],
+.colors-dark input[type="color"],
+.colors-dark textarea,
+.colors-dark .navigation-top .current-menu-item > a,
+.colors-dark .navigation-top .current_page_item > a,
+.colors-dark .entry-content blockquote.alignleft,
+.colors-dark .entry-content blockquote.alignright,
+.colors-dark .taxonomy-description,
+.colors-dark .site-info a,
+.colors-dark .wp-caption {
+	color: #ccc;
+}
+
+.colors-dark abbr,
+.colors-dark acronym {
+	border-bottom-color: #ccc;
+}
+
+.colors-dark h5,
+.main-navigation a:hover,
+.colors-dark .entry-meta,
+.colors-dark .entry-meta a,
+.colors-dark .nav-subtitle,
+.colors-dark .comment-metadata,
+.colors-dark .comment-metadata a,
+.colors-dark .no-comments,
+.colors-dark .comment-awaiting-moderation,
+.colors-dark .page-numbers.current,
+.colors-dark .page-links .page-number,
+.colors-dark .site-description {
+	color: #bbb;
+}
+
+.colors-dark button:hover,
+.colors-dark button:focus,
+.colors-dark input[type="button"]:hover,
+.colors-dark input[type="button"]:focus,
+.colors-dark input[type="submit"]:hover,
+.colors-dark input[type="submit"]:focus,
+.colors-dark .prev.page-numbers:focus,
+.colors-dark .prev.page-numbers:hover,
+.colors-dark .next.page-numbers:focus,
+.colors-dark .next.page-numbers:hover,
+.colors-dark .entry-footer .edit-link a.post-edit-link:focus,
+.colors-dark .entry-footer .edit-link a.post-edit-link:hover {
+	background: #bbb;
+}
+
+.colors-dark .social-navigation a:hover,
+.colors-dark .social-navigation a:focus {
+	background: #999;
+	color: #222;
+}
+
+.colors-dark .entry-footer .cat-links .icon,
+.colors-dark .entry-footer .tags-links .icon {
+	color: #666;
+}
+
+.colors-dark button.secondary:hover,
+.colors-dark button.secondary:focus,
+.colors-dark input[type="reset"]:hover,
+.colors-dark input[type="reset"]:focus,
+.colors-dark input[type="button"].secondary:hover,
+.colors-dark input[type="button"].secondary:focus,
+.colors-dark input[type="reset"].secondary:hover,
+.colors-dark input[type="reset"].secondary:focus,
+.colors-dark input[type="submit"].secondary:hover,
+.colors-dark input[type="submit"].secondary:focus,
+.colors-dark .social-navigation a,
+.colors-dark hr {
+	background: #555;
+}
+
+.colors-dark input[type="text"],
+.colors-dark input[type="email"],
+.colors-dark input[type="url"],
+.colors-dark input[type="password"],
+.colors-dark input[type="search"],
+.colors-dark input[type="number"],
+.colors-dark input[type="tel"],
+.colors-dark input[type="range"],
+.colors-dark input[type="date"],
+.colors-dark input[type="month"],
+.colors-dark input[type="week"],
+.colors-dark input[type="time"],
+.colors-dark input[type="datetime"],
+.colors-dark input[type="datetime-local"],
+.colors-dark input[type="color"],
+.colors-dark textarea,
+.colors-dark select,
+.colors-dark fieldset,
+.colors-dark .widget .tagcloud a:hover,
+.colors-dark .widget .tagcloud a:focus,
+.colors-dark .widget.widget_tag_cloud a:hover,
+.colors-dark .widget.widget_tag_cloud a:focus,
+.colors-dark .wp_widget_tag_cloud a:hover,
+.colors-dark .wp_widget_tag_cloud a:focus {
+	border-color: #555;
+}
+
+.colors-dark button.secondary,
+.colors-dark input[type="reset"],
+.colors-dark input[type="button"].secondary,
+.colors-dark input[type="reset"].secondary,
+.colors-dark input[type="submit"].secondary,
+.colors-dark .prev.page-numbers,
+.colors-dark .next.page-numbers {
+	background-color: #444;
+}
+
+.colors-dark .widget .tagcloud a,
+.colors-dark .widget.widget_tag_cloud a,
+.colors-dark .wp_widget_tag_cloud a {
+	border-color: #444;
+}
+
+.colors-dark.twentyseventeen-front-page article:not(.has-post-thumbnail):not(:first-child),
+.colors-dark .widget ul li {
+	border-top-color: #444;
+}
+
+.colors-dark .widget ul li {
+	border-bottom-color: #444;
+}
+
+.colors-dark pre,
+.colors-dark mark,
+.colors-dark ins,
+.colors-dark input[type="text"],
+.colors-dark input[type="email"],
+.colors-dark input[type="url"],
+.colors-dark input[type="password"],
+.colors-dark input[type="search"],
+.colors-dark input[type="number"],
+.colors-dark input[type="tel"],
+.colors-dark input[type="range"],
+.colors-dark input[type="date"],
+.colors-dark input[type="month"],
+.colors-dark input[type="week"],
+.colors-dark input[type="time"],
+.colors-dark input[type="datetime"],
+.colors-dark input[type="datetime-local"],
+.colors-dark input[type="color"],
+.colors-dark textarea,
+.colors-dark select,
+.colors-dark fieldset {
+	background: #333;
+}
+
+.colors-dark tr,
+.colors-dark thead th {
+	border-color: #333;
+}
+
+.colors-dark .navigation-top,
+.colors-dark .main-navigation > div > ul,
+.colors-dark .pagination,
+.colors-dark .comment-navigation,
+.colors-dark .entry-footer,
+.colors-dark .site-footer {
+	border-top-color: #333;
+}
+
+.colors-dark .single-featured-image-header,
+.colors-dark .navigation-top,
+.colors-dark .main-navigation li,
+.colors-dark .entry-footer,
+.colors-dark #comments {
+	border-bottom-color: #333;
+}
+
+.colors-dark .site-header,
+.colors-dark .single-featured-image-header {
+	background-color: #262626;
+}
+
+.colors-dark button,
+.colors-dark input[type="button"],
+.colors-dark input[type="submit"],
+.colors-dark .prev.page-numbers:focus,
+.colors-dark .prev.page-numbers:hover,
+.colors-dark .next.page-numbers:focus,
+.colors-dark .next.page-numbers:hover {
+	color: #222;
+}
+
+body.colors-dark,
+.colors-dark .site-content-contain,
+.colors-dark .navigation-top,
+.colors-dark .main-navigation ul {
+	background: #222;
+}
+
+.colors-dark .entry-title a,
+.colors-dark .entry-meta a,
+.colors-dark.blog .entry-meta a.post-edit-link,
+.colors-dark.archive .entry-meta a.post-edit-link,
+.colors-dark.search .entry-meta a.post-edit-link,
+.colors-dark .page-links a,
+.colors-dark .page-links a .page-number,
+.colors-dark .entry-footer a,
+.colors-dark .entry-footer .cat-links a,
+.colors-dark .entry-footer .tags-links a,
+.colors-dark .edit-link a,
+.colors-dark .post-navigation a,
+.colors-dark .logged-in-as a,
+.colors-dark .comment-navigation a,
+.colors-dark .comment-metadata a,
+.colors-dark .comment-metadata a.comment-edit-link,
+.colors-dark .comment-reply-link,
+.colors-dark a .nav-title,
+.colors-dark .pagination a,
+.colors-dark .comments-pagination a,
+.colors-dark .widget .widget-title a,
+.colors-dark .widget ul li a,
+.colors-dark .site-footer .widget-area ul li a,
+.colors-dark .site-info a {
+	-webkit-box-shadow: inset 0 -1px 0 rgba(34, 34, 34, 1); /* Equivalant to #222 */
+	box-shadow: inset 0 -1px 0 rgba(34, 34, 34, 1); /* Equivalant to #222 */
+}
+
+/* Fixes linked images */
+.colors-dark .entry-content a img,
+.colors-dark .widget a img {
+	-webkit-box-shadow: 0 0 0 8px #222;
+	box-shadow: 0 0 0 8px #222;
+}
+
+.colors-dark .entry-footer .edit-link a.post-edit-link {
+	color: #000;
+}
+
+.colors-dark .menu-toggle,
+.colors-dark .menu-toggle:hover,
+.colors-dark .menu-toggle:focus,
+.colors-dark .dropdown-toggle,
+.colors-dark .dropdown-toggle:hover,
+.colors-dark .dropdown-toggle:focus,
+.colors-dark .menu-scroll-down,
+.colors-dark .menu-scroll-down:hover,
+.colors-dark .menu-scroll-down:focus {
+	background-color: transparent;
+}
+
+.colors-dark .gallery-item a,
+.colors-dark .gallery-item a:hover,
+.colors-dark .gallery-item a:focus,
+.colors-dark .widget .tagcloud a,
+.colors-dark .widget .tagcloud a:focus,
+.colors-dark .widget .tagcloud a:hover,
+.colors-dark .widget.widget_tag_cloud a,
+.colors-dark .widget.widget_tag_cloud a:focus,
+.colors-dark .widget.widget_tag_cloud a:hover,
+.colors-dark .wp_widget_tag_cloud a,
+.colors-dark .wp_widget_tag_cloud a:focus,
+.colors-dark .wp_widget_tag_cloud a:hover,
+.colors-dark .entry-footer .edit-link a.post-edit-link:focus,
+.colors-dark .entry-footer .edit-link a.post-edit-link:hover {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+@media screen and (min-width: 48em) {
+
+	.colors-dark .nav-links .nav-previous .nav-title .icon,
+	.colors-dark .nav-links .nav-next .nav-title .icon {
+		color: #eee;
+	}
+
+	.colors-dark .main-navigation li li:hover,
+	.colors-dark .main-navigation li li.focus {
+		background: #999;
+	}
+
+	.colors-dark .menu-scroll-down {
+		color: #999;
+	}
+
+	.colors-dark .main-navigation ul ul {
+		border-color: #333;
+		background: #222;
+	}
+
+	.colors-dark .main-navigation ul li.menu-item-has-children:before,
+	.colors-dark .main-navigation ul li.page_item_has_children:before {
+		border-bottom-color: #333;
+	}
+
+	.main-navigation ul li.menu-item-has-children:after,
+	.main-navigation ul li.page_item_has_children:after {
+		border-bottom-color: #222;
+	}
+
+	.colors-dark .main-navigation li li.focus > a,
+	.colors-dark .main-navigation li li:focus > a,
+	.colors-dark .main-navigation li li:hover > a,
+	.colors-dark .main-navigation li li a:hover,
+	.colors-dark .main-navigation li li a:focus,
+	.colors-dark .main-navigation li li.current_page_item a:hover,
+	.colors-dark .main-navigation li li.current-menu-item a:hover,
+	.colors-dark .main-navigation li li.current_page_item a:focus,
+	.colors-dark .main-navigation li li.current-menu-item a:focus {
+		color: #222;
+	}
+
+}
diff --git a/wp-content/themes/twentyseventeen/assets/css/editor-style.css b/wp-content/themes/twentyseventeen/assets/css/editor-style.css
new file mode 100644
index 000000000..5c1137347
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/css/editor-style.css
@@ -0,0 +1,600 @@
+/*
+Theme Name: Twenty Seventeen
+Description: Used to style the TinyMCE editor.
+*/
+
+
+/**
+ * Table of Contents:
+ *
+ * 1.0 - Body
+ * 2.0 - Typography
+ * 3.0 - Elements
+ * 4.0 - Alignment
+ * 5.0 - Caption
+ * 6.0 - Galleries
+ * 7.0 - Media Elements
+ * 8.0 - RTL
+ */
+
+/**
+ * 1.0 - Body
+ */
+
+body {
+	background-color: #fff;
+	color: #333;
+	margin: 20px 40px;
+	max-width: 580px;
+}
+
+/**
+ * 2.0 - Typography
+ */
+
+body,
+button,
+input,
+select,
+textarea {
+	font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
+	font-size: 16px;
+	font-size: 1rem;
+	font-weight: 400;
+	line-height: 1.66;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+	clear: both;
+	line-height: 1.4;
+	margin: 0 0 0.75em;
+	padding: 1.5em 0 0;
+}
+
+h1:first-child,
+h2:first-child,
+h3:first-child,
+h4:first-child,
+h5:first-child,
+h6:first-child {
+	padding-top: 0;
+}
+
+h1 {
+	font-size: 24px;
+	font-size: 1.5rem;
+	font-weight: 300;
+}
+
+h2 {
+	color: #666;
+	font-size: 20px;
+	font-size: 1.25rem;
+	font-weight: 300;
+}
+
+h3 {
+	color: #333;
+	font-size: 18px;
+	font-size: 1.125rem;
+	font-weight: 300;
+}
+
+h4 {
+	color: #333;
+	font-size: 16px;
+	font-size: 1rem;
+	font-weight: 800;
+}
+
+h5 {
+	color: #767676;
+	font-size: 13px;
+	font-size: 0.8125rem;
+	font-weight: 800;
+	letter-spacing: 0.15em;
+	text-transform: uppercase;
+}
+
+h6 {
+	color: #333;
+	font-size: 15px;
+	font-size: 0.9375rem;
+	font-weight: 800;
+}
+
+p {
+	margin: 0 0 1.5em;
+	padding: 0;
+}
+
+dfn,
+cite,
+em,
+i {
+	font-style: italic;
+}
+
+blockquote {
+	color: #666;
+	font-size: 18px;
+	font-size: 1.125rem;
+	font-style: italic;
+	line-height: 1.7;
+	margin: 0;
+	overflow: hidden;
+	padding: 0;
+}
+
+blockquote.alignleft,
+blockquote.alignright {
+	font-size: 14px;
+	font-size: 0.875rem;
+	width: 34%;
+}
+
+address {
+	margin: 0 0 1.5em;
+}
+
+pre {
+	background: #eee;
+	font-family: "Courier 10 Pitch", Courier, monospace;
+	font-size: 15px;
+	font-size: 0.9375rem;
+	line-height: 1.6;
+	margin-bottom: 1.6em;
+	max-width: 100%;
+	overflow: auto;
+	padding: 1.6em;
+}
+
+code,
+kbd,
+tt,
+var {
+	font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
+	font-size: 15px;
+	font-size: 0.9375rem;
+}
+
+abbr,
+acronym {
+	border-bottom: 1px dotted #666;
+	cursor: help;
+}
+
+mark,
+ins {
+	background: #eee;
+	text-decoration: none;
+}
+
+big {
+	font-size: 125%;
+}
+
+blockquote,
+q {
+	quotes: "" "";
+}
+
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+	content: "";
+}
+
+/* Typography for Thai Font */
+
+html[lang="th"] h1,
+html[lang="th"] h2,
+html[lang="th"] h3,
+html[lang="th"] h4,
+html[lang="th"] h5,
+html[lang="th"] h6 {
+	letter-spacing: 0;
+	line-height: 1.65;
+}
+
+html[lang="th"] body,
+html[lang="th"] button,
+html[lang="th"] input,
+html[lang="th"] select,
+html[lang="th"] textarea {
+	line-height: 1.8;
+}
+
+/**
+ * 3.0 - Elements
+ */
+
+hr {
+	background-color: #bbb;
+	border: 0;
+	height: 1px;
+	margin-bottom: 1.5em;
+}
+
+ul,
+ol {
+	margin: 0 0 1.5em;
+	padding: 0;
+}
+
+ul {
+	list-style: disc;
+}
+
+ol {
+	counter-reset: item;
+}
+
+ol li {
+	display: block;
+	position: relative;
+}
+
+ol li:before {
+	content: counter(item);
+	counter-increment: item;
+	font-weight: 800;
+	left: -1.5em;
+	position: absolute;
+}
+
+li > ul,
+li > ol {
+	margin-bottom: 0;
+	margin-left: 1.5em;
+}
+
+dt {
+	font-weight: 700;
+}
+
+dd {
+	margin: 0 1.5em 1.5em;
+}
+
+table {
+	border-collapse: collapse;
+	margin: 0 0 1.5em;
+	width: 100%;
+}
+
+thead th {
+	border-bottom: 2px solid #bbb;
+	padding-bottom: 0.5em;
+}
+
+th {
+	padding: 0.4em;
+	text-align: left;
+}
+
+tr {
+	border-bottom: 1px solid #eee;
+}
+
+td {
+	padding: 0.4em;
+}
+
+th:first-child,
+td:first-child {
+	padding-left: 0;
+}
+
+th:last-child,
+td:last-child {
+	padding-right: 0;
+}
+
+a {
+	-webkit-box-shadow: inset 0 -1px 0 rgba(15, 15, 15, 1);
+	box-shadow: inset 0 -1px 0 rgba(15, 15, 15, 1);
+	color: #222;
+	text-decoration: none;
+	-webkit-transition: color 80ms ease-in, -webkit-box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, -webkit-box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, box-shadow 130ms ease-in-out, -webkit-box-shadow 130ms ease-in-out;
+}
+
+a:focus {
+	outline: thin dotted;
+}
+
+a:hover,
+a:focus {
+	color: #000;
+	-webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1);
+	box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1);
+}
+
+/* Fixes linked images */
+
+a img {
+	background: #fff;
+	-webkit-box-shadow: 0 0 0 6px #fff;
+	box-shadow: 0 0 0 6px #fff;
+}
+
+/**
+ * 4.0 - Alignment
+ */
+
+img {
+	height: auto; /* Make sure images are scaled correctly. */
+	width: inherit;  /* Make images fill their parent's space. Solves IE8. */
+	max-width: 100%; /* Adhere to container width. */
+}
+
+embed,
+iframe,
+object {
+	margin-bottom: 1.5em;
+	max-width: 100%;
+}
+
+/**
+ * 5.0 - Caption
+ */
+
+.wp-caption {
+	color: #666;
+	font-size: 13px;
+	font-size: 0.8125rem;
+	font-style: italic;
+	margin-bottom: 1.5em;
+	max-width: 100%;
+}
+
+.wp-caption img[class*="wp-image-"] {
+	display: block;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+.wp-caption .wp-caption-text {
+	margin: 0.8075em 0;
+}
+
+/**
+ * 6.0 - Galleries
+ */
+
+.gallery {
+	margin-bottom: 1.5em;
+}
+
+.gallery-item {
+	display: inline-block;
+	text-align: center;
+	vertical-align: top;
+	width: 100%;
+}
+
+.gallery-item a,
+.gallery-item a:hover,
+.gallery-item a:focus {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background: none;
+	display: inline-block;
+}
+
+.gallery-columns-2 .gallery-item {
+	max-width: 50%;
+}
+
+.gallery-columns-3 .gallery-item {
+	max-width: 33.33%;
+}
+
+.gallery-columns-4 .gallery-item {
+	max-width: 25%;
+}
+
+.gallery-columns-5 .gallery-item {
+	max-width: 20%;
+}
+
+.gallery-columns-6 .gallery-item {
+	max-width: 16.66%;
+}
+
+.gallery-columns-7 .gallery-item {
+	max-width: 14.28%;
+}
+
+.gallery-columns-8 .gallery-item {
+	max-width: 12.5%;
+}
+
+.gallery-columns-9 .gallery-item {
+	max-width: 11.11%;
+}
+
+.gallery-caption {
+	display: block;
+}
+
+/**
+ * 7.0 - Media Elements
+ */
+
+.mejs-container {
+	margin-bottom: 1.5em;
+}
+
+/* Audio Player */
+
+.mejs-controls a.mejs-horizontal-volume-slider,
+.mejs-controls a.mejs-horizontal-volume-slider:focus,
+.mejs-controls a.mejs-horizontal-volume-slider:hover {
+	background: transparent;
+	border: 0;
+}
+
+/* Playlist Color Overrides: Light */
+
+.wp-playlist-light {
+	border-color: #eee;
+	color: #222;
+}
+
+.wp-playlist-light .wp-playlist-current-item .wp-playlist-item-album {
+	color: #333;
+}
+
+.wp-playlist-light .wp-playlist-current-item .wp-playlist-item-artist {
+	color: #767676;
+}
+
+.wp-playlist-light .wp-playlist-item {
+	border-bottom: 1px dotted #eee;
+	-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+}
+
+.wp-playlist-light .wp-playlist-item:hover,
+.wp-playlist-light .wp-playlist-item:focus {
+	border-bottom-color: rgba(0, 0, 0, 0);
+	background-color: #767676;
+	color: #fff;
+}
+
+.wp-playlist-light a.wp-playlist-caption:hover,
+.wp-playlist-light .wp-playlist-item:hover a,
+.wp-playlist-light .wp-playlist-item:focus a {
+	color: #fff;
+}
+
+/* Playlist Color Overrides: Dark */
+
+.wp-playlist-dark {
+	background: #222;
+	border-color: #333;
+}
+
+.wp-playlist-dark .mejs-container .mejs-controls {
+	background-color: #333;
+}
+
+.wp-playlist-dark .wp-playlist-caption {
+	color: #fff;
+}
+
+.wp-playlist-dark .wp-playlist-current-item .wp-playlist-item-album {
+	color: #eee;
+}
+
+.wp-playlist-dark .wp-playlist-current-item .wp-playlist-item-artist {
+	color: #aaa;
+}
+
+.wp-playlist-dark .wp-playlist-playing {
+	background-color: #333;
+}
+
+.wp-playlist-dark .wp-playlist-item {
+	border-bottom: 1px dotted #555;
+	-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+}
+
+.wp-playlist-dark .wp-playlist-item:hover,
+.wp-playlist-dark .wp-playlist-item:focus {
+	border-bottom-color: rgba(0, 0, 0, 0);
+	background-color: #aaa;
+	color: #222;
+}
+
+.wp-playlist-dark a.wp-playlist-caption:hover,
+.wp-playlist-dark .wp-playlist-item:hover a,
+.wp-playlist-dark .wp-playlist-item:focus a {
+	color: #222;
+}
+
+/* Playlist Style Overrides */
+
+.wp-playlist {
+	padding: 0.625em 0.625em 0.3125em;
+}
+
+.wp-playlist-current-item .wp-playlist-item-title {
+	font-weight: 700;
+}
+
+.wp-playlist-current-item .wp-playlist-item-album {
+	font-style: normal;
+}
+
+.wp-playlist-current-item .wp-playlist-item-artist {
+	font-size: 10px;
+	font-size: 0.625rem;
+	font-weight: 800;
+	letter-spacing: 0.1818em;
+	text-transform: uppercase;
+}
+
+.wp-playlist-item {
+	padding: 0 0.3125em;
+	cursor: pointer;
+}
+
+.wp-playlist-item:last-of-type {
+	border-bottom: none;
+}
+
+.wp-playlist-item a {
+	padding: 0.3125em 0;
+	border-bottom: none;
+}
+
+.wp-playlist-item a,
+.wp-playlist-item a:focus,
+.wp-playlist-item a:hover {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background: transparent;
+}
+
+.wp-playlist-item-length {
+	top: 5px;
+}
+
+/**
+ * 8.0 - RTL
+ */
+
+.rtl th {
+	text-align: right;
+}
+
+.rtl ol {
+	counter-reset: item;
+}
+
+.rtl ol li:before {
+	left: auto;
+	right: -1.5em;
+}
+
+.rtl li > ul,
+.rtl li > ol {
+	margin-left: 0;
+	margin-right: 1.5em;
+}
+
+.rtl .mejs-offscreen {
+	right: -10000px;
+}
diff --git a/wp-content/themes/twentyseventeen/assets/css/ie8.css b/wp-content/themes/twentyseventeen/assets/css/ie8.css
new file mode 100644
index 000000000..bf45c26cb
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/css/ie8.css
@@ -0,0 +1,225 @@
+/*
+Theme Name: Twenty Seventeen
+Description: IE8 specific style.
+*/
+
+body {
+	font-size: 16px;
+}
+
+h1 {
+	font-size: 30px;
+	font-size: 1.875rem;
+}
+
+h2,
+.page .panel-content .recent-posts .entry-title {
+	font-size: 26px;
+	font-size: 1.625rem;
+}
+
+h3 {
+	font-size: 22px;
+	font-size: 1.375rem;
+}
+
+h4 {
+	font-size: 18px;
+	font-size: 1.125rem;
+}
+
+h5 {
+	font-size: 13px;
+	font-size: 0.8125rem;
+}
+
+h6 {
+	font-size: 16px;
+	font-size: 1rem;
+}
+
+img {
+	width: inherit;  /* Make images fill their parent's space. */
+}
+
+/* Fixes linked images */
+.entry-content a img,
+.widget a img {
+	filter: progid:DXImageTransform.Microsoft.DropShadow(OffX=0, OffY=5, Color=#ffffff);
+}
+
+/* Layout */
+
+.site-content {
+	padding: 6.5em 0 0;
+}
+
+/* Site Branding */
+
+.custom-header {
+	overflow: hidden;
+}
+
+.has-header-image.twentyseventeen-front-page .custom-header,
+.has-header-image.home.blog .custom-header {
+	display: block;
+}
+
+.custom-header-media {
+	background-position: bottom center;
+}
+
+.site-branding {
+	padding: 45px 0;
+}
+
+.has-header-image.twentyseventeen-front-page .site-branding,
+.has-header-image.home.blog .site-branding {
+	bottom: 0;
+	display: block;
+	left: 0;
+	height: auto;
+	padding-top: 0;
+	position: absolute;
+	width: 100%;
+}
+
+.has-header-image .custom-header-media img {
+	left: 0;
+	top: 0;
+}
+
+.site-title {
+	font-size: 36px;
+	font-weight: 700;
+}
+
+.site-description {
+	font-size: 16px;
+}
+
+/* Main Navigation */
+
+.navigation-top {
+	background: #fff;
+	position: relative;
+	z-index: 10;
+}
+
+.menu-toggle {
+	width: 150px;
+}
+
+.main-navigation ul#top-menu {
+	margin-bottom: -1px;
+	padding: 0;
+}
+
+.no-svg .dropdown-toggle {
+	padding: 0.25em 0 0;
+}
+
+.no-svg .dropdown-toggle.toggled-on {
+	padding: 0.75em 0 0;
+}
+
+.dropdown-toggle .svg-fallback.icon-angle-down {
+	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=-1, M12=1.2246467991473532e-16, M21=-1.2246467991473532e-16, M22=-1, SizingMethod='auto expand')";
+}
+
+.dropdown-toggle.toggled-on .svg-fallback.icon-angle-down {
+	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=1, SizingMethod='auto expand')";
+}
+
+/* Front Page */
+
+.twentyseventeen-front-page.has-header-image .custom-header,
+.blog.home.has-header-image .custom-header,
+.panel-image {
+	height: 800px;
+	max-height: 800px;
+	padding-top: 0;
+}
+
+.twentyseventeen-front-page .custom-header-media,
+.blog.home .custom-header-media {
+	background-position: center center;
+}
+
+.twentyseventeen-front-page.has-header-image .site-branding,
+.home.blog.has-header-image .site-branding {
+	bottom: 20px;
+	position: absolute;
+	width: 100%;
+}
+
+.page .panel-content .entry-title,
+.page-title,
+.page .entry-title {
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 700;
+	letter-spacing: 0.14em;
+	text-transform: uppercase;
+}
+
+/* Posts */
+
+.blog .site-main > article,
+.archive .site-main > article,
+.search .site-main > article {
+	padding-bottom: 4em;
+}
+
+time.updated {
+	display: none;
+}
+
+time.published {
+	display: inline-block;
+}
+
+.blog .entry-title {
+	padding-top: 0;
+}
+
+.single-post .entry-title,
+.page .entry-title,
+.entry-meta + .entry-title {
+	font-size: 26px;
+	font-weight: 400;
+	letter-spacing: normal;
+	padding-top: 0;
+	text-transform: none;
+}
+
+.entry-footer .cat-links,
+.entry-footer .tags-links {
+	padding-left: 0;
+}
+
+.comment-author .avatar {
+	z-index: -1;
+}
+
+ol.children .children {
+	padding-left: 2em;
+}
+
+/* RTL Styles */
+
+.rtl .has-header-image.twentyseventeen-front-page .site-branding,
+.rtl .has-header-image.home.blog .site-branding {
+	left: auto;
+	right: 0;
+}
+
+.rtl .entry-footer .cat-links,
+.rtl .entry-footer .tags-links {
+	padding-right: 0;
+}
+
+.rtl ol.children .children {
+	padding-left: 0;
+	padding-right: 2em;
+}
diff --git a/wp-content/themes/twentyseventeen/assets/css/ie9.css b/wp-content/themes/twentyseventeen/assets/css/ie9.css
new file mode 100644
index 000000000..9f8f7664d
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/css/ie9.css
@@ -0,0 +1,43 @@
+/*
+Theme Name: Twenty Seventeen
+Description: IE9 specific styles.
+*/
+
+.has-header-image.twentyseventeen-front-page .custom-header,
+.has-header-video.twentyseventeen-front-page .custom-header,
+.has-header-image.home.blog .custom-header,
+.has-header-video.home.blog .custom-header {
+	height: 300px;
+}
+
+.has-header-image .custom-header-media img,
+.has-header-video .custom-header-media video,
+.has-header-video .custom-header-media iframe {
+	min-width: 100%;
+}
+
+@media screen and (min-width: 30em) {
+
+	.has-header-image.twentyseventeen-front-page .custom-header,
+	.has-header-video.twentyseventeen-front-page .custom-header,
+	.has-header-image.home.blog .custom-header,
+	.has-header-video.home.blog .custom-header,
+	.twentyseventeen-front-page.has-header-image .custom-header-media,
+	.home.blog.has-header-image .custom-header-media,
+	.panel-image {
+		height: 700px;
+	}
+}
+
+@media screen and (min-width: 48em) {
+
+	.has-header-image.twentyseventeen-front-page .custom-header,
+	.has-header-video.twentyseventeen-front-page .custom-header,
+	.has-header-image.home.blog .custom-header,
+	.has-header-video.home.blog .custom-header,
+	.twentyseventeen-front-page.has-header-image .custom-header-media,
+	.home.blog.has-header-image .custom-header-media,
+	.panel-image {
+		height: 1000px;
+	}
+}
diff --git a/wp-content/themes/twentyseventeen/assets/images/coffee.jpg b/wp-content/themes/twentyseventeen/assets/images/coffee.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..13847cde7c16ba0f8bd31e5251de88f1ef627219
GIT binary patch
literal 117713
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
WlWbE0PP!>fIq7w7xrNK-|2F{`vF*43

literal 0
HcmV?d00001

diff --git a/wp-content/themes/twentyseventeen/assets/images/espresso.jpg b/wp-content/themes/twentyseventeen/assets/images/espresso.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..7514c96bdfaf991d817670d4a20c432e1b21a8e0
GIT binary patch
literal 93540
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

literal 0
HcmV?d00001

diff --git a/wp-content/themes/twentyseventeen/assets/images/header.jpg b/wp-content/themes/twentyseventeen/assets/images/header.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a3fd3e7122cbc1866e5971a82d0b65e13ccb8e20
GIT binary patch
literal 114854
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%0DPIxk*y
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

literal 0
HcmV?d00001

diff --git a/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg b/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..6baddbf053749ba5224b147c4b54062131fcba62
GIT binary patch
literal 171858
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%0D>l4H>>E{5dXheB-&wbB-r+52xpJ*fXAZ
zP$82d@5JxKA92jEx3H&f@y8Pl{0AJ_=TysY_+W9a_}sz6?>IgwG~Y{TZhTNU{|--f
zuh-1^AD(eA{9%!6pLoum@kjrK0zPLpJ{hxG4u!9Co>ZRrWO+c&TkKE!o&)R;6q--W
zcu-&|cbs`nUGq0#>v!@6hf-ud*zgt4bD#KLwfl|z!5IwA9|Rl^{Be<Elw()EX7gC$
z_{1mGG8}xj+4yws*d_c04SwoG%>T&1u6&_^L*YraKoz^O#Dn_9axL;5N^JZ)K-(*e
zpH!YZy6r!M1Vg0^AIpK}3xAKW)Gw)H;y+O(AiJGUhfl&FA+31Q&HoHy4$PlGgQuV5
z*dI=)IC5O#m_6eUe&vty3!0d>9X$LlI*<K_F~i@3ERO8T*BsA3u@qMRa$fmF^CuY&
zn-1F!_MT__A5$3Yk4|tr!y;Gz{|JLNWK|(E3wTu_GiVbwXjLI-QK685gJXbFV1lp_
zi&J7j19Whg*`DD)!<*#)3}<V1`EU96cb=T&Oc0pA_V%mS-)BF3soXqCxyj1UkAHIf
z!<#c_{^aP6k(tlA;z36rf6spgAr}{So--fLu8Wjo`FZm<``hYox&P8-U->t?A98VV
z_cB)GadB~5xRI~=<BHBn@;Z@`o`;R?AH=^qclLAsNzSzq&JQQtJe=|L?Bv5`pAYvR
zGw}MjxqbSSnUm5YB{$8Sbn3M9UCzYLs_dkQ`%U-Roqtcdncj2q*ld$K1z8bu(#j=e
zln-C|5dAx9v%Q)Bw91OKQlp|h!l`TjUC;?$Q1m|WZM%BdJn!3ix?(@lJm*c#l~25W
zc3<m5y<7R-I=NhtsSh^E3+<XyC%$s#{B0$IQy$%D@_U*bmE8Nmz-^K8w6rustMA4a
z&dklfY<i`|{#(ahd)2nMeE-;oAI{mS7y0e>D1Y!mN%@KY;+5$OU)+{@;=Oa7b*Z2r
zJGW-4vC-t7=(IZ#y}f<Qi~M=c-^$&+$;Ny|UC#9AO~+2xzV}o%4>Oo!ac(DPmB*8g
zU#$~P8m{l~b*!s1y>se7#L?a!mXt`|d!{U>ZnZqgsd#(pxXxUi4|CmialA4;+~0Qo
zYRTsIj}QMuJned#keW1mW3<3UG0o)Z?UUE^FDgihyB1s&HE-Sb?fcAk%kF0s6xjAa
zS2k_&^0Mf;UboWAI<76!aXQ|UTyQ%%sv<giW1>!?b)=^)|FMV%Wpj3~*F3(h=yaLw
z)tPM0TV8LSw&%pp&7MY=?SI|$+Y_<)-Ny54fA-AaxZAeJS*2wTXZg(IlPs!sAF*NW
zGZV8BOga{(_)Pdbzha)}L)}R=ditEH+ESM}cjuJP&GX}}Ss%HM*Kdc7p}O?bZRgTw
z>v;GtIqx}9c;At^JMKtIY}+L{^X1iv>FHC>2ls4qe|AD=$I+I1kCYTYv+NhVFi9@W
z$ofd-mQ$X_Hu9<I?Y{34?3&M=+oY14oO9n=b>_5FU{FzDsU#<<Tk!NzVO9CLeY2vf
zk44<hf4t0QBj<r#IveLNDxI<Io@^F#{!Qf?Nw+saZ;khHaCG!Kvy?~*{@8SM>xGDI
zf+}mW7tE~{JN5QpvLNS*!y9$lrX4qYFaPUiN_o@!d#WFee2!l<&3(K*ynd0)W<~4A
zfnsl?Ez;5|6gwUyoyb}9X3d&4Z<eM1nmOs_$H!F#w)58AQI~ogw5ecP-MdQyvTuUE
z3$D2L@T2@}nLR!qrs*BKoYDU1&f`P!eCIYcJWh`kn5M$+p5Hlh9=9~x!3`TXY{-e|
z=$3zV=+H6dACv$3UshguvWM@oo{e!|^xdA@md6W@_QfojTlFM*&sWY*$r(S+MpwN5
z5;^nAnUlun>}N~l6m7`&)%QPRr?cj?{VRX<i&hN11<Dt)IHki_``mt-3e4KL?ZZi1
z>s+t*PjXADDl0ngXWI+R%748^cdzZfUw+SmPNYe*efiH|zIbZ?!`VvyDu3q9eEIG3
z@yxj;ovHoZrk_(H{d^alme_mTQ()rZLj~Kn%TIXuZ_UOz(Ra7Ed^r5<_`+B3f2B-5
ztUt|Lw{p_qPjT~HUp}eWYbO6|Tg4<hE7$!W?^r**$9h@csbtBH_r*O=1^1P`D|~5b
z#rd&1e$I0nx$nz<?zQ=2=JIiMnd{#hJ6=4kvi_qlyKna4?8j+N$<kt9KAB8kI%l5r
z74<r`v^t&5Zz89;^uEn8w&L3qUCjJd{G{y{&vf-k{}~<`rJb1Ev+-lj`{cE572h`L
zEP17*Bp0o8>ePwJ4<qL+ncP-c7v_I<+V2e!Y2|y(zHD6^H*HT`@5>uE=B1@o{%7dD
z+f}i#WAf2giAmp1$@3o&_@*q8{3@CEWu?x>_enqXedoko%b%I7yffkCqtnu15kJyn
zA8tRU+q-UCg_2@R+o_!8Rhu?FICfM&o5!82Vym&Sy^+uI*-DYurty>~ON!}4zcE}<
z;m7h|`>~3O_H6+_Uhy04-D$VjzFYTue&Mpibvo=vn|^dNyuG;l^10LULWR@J^k?`9
z{d;_S^U@bpeSFRBnwD=5PF;M&R!aSu_ua!*(>y=#R-I6GGuw5Vjdq>I!8Qx&Uz@+o
z7C)n&J}s`j$!>y6@09m@9&L+^b8YEaRH|~!dACg8wTLqlezvJcO@6g{#bL?GXBTgs
zlKkv=^j@30PA*P9*;`Jk{1uPkyzuDUcjMF)o1_~zQp;~DpZ<^~zw~ym*iZN36yt2U
zkIRlLmswV9e80S>XcK#I|4jYEoX7q|{i=Jjo$>fCpB*-4=j8pPbBYv84ZdykGb@{U
zZ;7OpZ*6cb&rLD+*>``X2Z=>ZN-NLVc<S@Y+bSuZQt#p?zpS>kyq+0pbE};1v3cXi
zL-F(Mr>Gqd+HJIVUC-K|&7xOS<aB>doT>ic`ic1r)8>}g8-D##6sdaa+cCG(K^0Tp
zA8>f{lUwm^s!ICwYT1nK*?TA7bCf(@z3t<&Q_PF+w{J7BZJk#8=7aT3)~@Kg{m<kD
zS0rwqw$<4B+LD>S{#}k2&!78z`|)KrPnJz)o!T$UeEj22Hr<Lz1v%|y`m<#=ZgYF=
z&nNMDpX}YW6D9SmCtN;cFu8M+;)k2bKj$7XIFjODJIT}7X0P?b`%#DfJU;y4!H<V?
zYQES@Pk9t~N6x3$X4ba&{*L2kyOVBP=;vhjbn8ZcuI^Cm{k-V%`HYhjKOdWR{_ftg
zy@zd|i}wnjK5--UnQ)70y5!c6FP}%(-I%67o9%e`HaGunHMjCQEB7P!?v$N+|Dd91
zQu*<%4^B6|m%Dc<GMO{s_D9u4x|`x&+~1m8_Fz-dyx$)pj#)-OcIPg?UGKZzaAJzb
z8Mnn}QVL!ruY75gEF7OXxwpWKw=GP)<FfVZypNsRzH47;ofcPheaRge!9xY_>TO=k
zRuXb5>Meg9S-9>@%C5P)Rp$TLa_?gLm9WB^58K+yb5FBwyLjP?m{ps-u-USIKluXh
zr2KV%T5(ugj5%d;*4@>v&&1>H7WRJHlUIA|#r+w53{xJ?^cK2Y-K}5xNdLsmZFlpI
z9(Q@#<-d5^jGCep$KK`bcOO4a(<!_0^n=8&`bCMBHzf^s>*nZm%JCFl{PMdfOLtp`
zdqcO&ySIn-2nbtUNy;+6RaB8HCh=gK#nZhvUKxKbe{;;ta0<Kh<L$Qp)Y2EbZZpq!
zzk274%(O*HYUPJjZuRjSzPrsZ<4<;djlIO}Eqhs1j@TIIyhs<jnbBJ`>D&(UB&W}}
zd-+fP^?TTnR4=~e{lU{;&Ntpaa(2r4Bik%waypV%*I0a>zH{$w>7XMl**V7jomaN4
zyYotM?{bck^4&g?f<NZeoZE5nc>a{XlDktrPW$CQyN30)%ZE8Cd*<x8_g;Lr+~;l;
zyBzoO-T$_4cyH$x&pRoydd-_R?fu7D@)zD+Q+2oc=EIqPyKd$Q@3E1!yJlnXCoe!Y
z@qC`_Z6%>^rw$d&J(g=Yb>EL|Gf!S^lYN+)Te$44#I&Eed*464Q1~-9d2#FJ3GXxi
zc9lOpZnt-m$8C%II$tb4Z=cZKYs2q&cw%aE%CtYn45j8)w2P(lY}<D3nqTdcj>n2u
z-@UjOrCvN!^_7_Wq}<)PVs|4RKRf#I*gn4h466?7B-cJN=QF%`%k1zWTNN9#&Qnea
z$*~J9+}mra)6(bO_|fe;FFW<+KJ(<a_qHaLwTm7*troNUfMb4dWa{Gvi8kds8{cg@
z*(7vO;%E<_+1tmJg}3hMN4RYMRr+L7T(8(Y*ABjkz0Sw8gDr)7_DqnOBQ<BaaN)iW
zla5*3cz008xW`(MnbGR$obuJ#yLCUX?iYH;oFjJnPL`YVk>|<X%Y;+k#O_P1j(VGO
z=lkDo#q8zoa_@T0ETdj}KG;^cjY;S-i>0$<WU{(;{c*|12^0I?6l}cme0oOFwa0=R
zd))W#Gx0k2wYpQeeY(V-8%x|Lnch3veYxm8<DQ)2_ZD}5A6xSN`i_PN$zOJ=-F6al
zpRE-3ZSIfnbMnq?vKPAPKec0iiyX@<Q|%OKmCs3nyKl3oJp2BDH=^&s)V=#6JddT9
z%~V%XZ+)`mNY=M=&(Ch(oZge<`RH_U$L+&EeI_5w5^lPj{pH4u@80*HHe5-T3p=v$
z<VJ3xoZusg`^?HV-I*|Leye)#ca;Ps)1-*or%LlKmcN(p^ZT7HzID>emYXV%pV@}{
zzOA?|S-$y?ko7q}j^w86ogLrfk6qqh^0;Saxw3Vjpn#j|v^U1b_XRxu6D=>@KIyo0
zj$OUWhxcuzxeqy`Mc-G~7$5B1EtwpiKlQQ8huaUgMJ$&}`=0#l`aIe4p7sL6{Kiwq
zg_Qjsrk<`5>)zLyE_vNOvuLBjvD|~lcF0LypUG!5kL}xs_wmf%?v<5@t(_~K9wh#u
zuG#1?OJ0SA%<hBtrFE8F)L!X(_Lga#=f5{iLGC-Pn_SD&=V!`&nAR<Go%h4N+jm}>
za%66@j@I!#{U}}E-tPR&U;c74+jZaXZ4X?rb&3S1_{X}%rw^`}Q*CBh(e1aUXu{QL
z+l?Z#PTAU+@@Y++`Zl@h;n5p6pM2lDd793{d5?9<le<%2|7Q@`aQH~ItWibIv6K4N
z+X{sK+}&qnxA5?V$Cj0qS4wtWeWxz(dH=?H#tYM)7q0LY?df&j=689z#Op29)wfTk
zKF+TbmovWBeR%DSUlBL+w=6GHD&6h7x~6-XsfygZPfyw+n{>QolJ34gUT^tr=GEJa
zD_+cto7|RmT|aJy-yEM(shP8bjgRe6)P1_c+$vY_=LU71>gZ!9x0b)ne0O)YYH4cs
zlDTd_3aY&_`p-Pco*UJ$F(<cTQ>yOSx5uCIFR=K~^Kr_$t*I%(sTrH@EO{*5Fn88m
zx5sTxk&`MaBu=-bdH%RR71V>8y3KHtY;x+{SCMi#(^FpFdB<F^J9ok!PGw_Tc5jRA
zyPwsyML&FDA$~+m^AY>e?jIZfttsAeqIi3gl9EOGgM%C0o33|j9$)!0Iyme0!TyTt
znVu>Sj_cm;Sv<Y(j^Kw0W*tBHce%K@t`|<Vdg;eENx9{9={=pI&sAmGLOv}wqh6KT
z?A4ik;XHfvg}MB;>z~%k-^rfX@x-D|EUvIyTGsD*SXr3+Jn8sF-&1%0__z0m>0u*x
z7MJX4p7Z=RS)>Q;eRzi@`i9veLyNTZARBw(&t-odKkW7AX?f!BcG{ht#obC>_uI_Z
z+-bj@r{0+O*Eun9#kEdZ<NLw--sgT?Kep3N{YUzw<40`0c0W*TyMD}_>7C8Z{M_EY
z-QKFx^eeAUvn-#KGX2r}^1HX*{}x`Tci-@W`vJG~iX+#ZKTo`r@_l2|ao-NV_a(0`
z?!C21t-_Q^tpCGvo<A<`>dy8qeSAjoX8#$?xAwno4&T1JY|dV9_c!;ZKd1|<s7tbA
ze{N}^%=`MAi~DQ-hW`u_XTD7Q_fx$|`NjU%LRB37m*?-Qdu`L>{`2yCl`~)7|Gj<q
ciaYzM{l4{Q_o~$IudL6gZ@Ydqe*gcQ07G<Lwg3PC

literal 0
HcmV?d00001

diff --git a/wp-content/themes/twentyseventeen/assets/images/svg-icons.svg b/wp-content/themes/twentyseventeen/assets/images/svg-icons.svg
new file mode 100644
index 000000000..eb579db1a
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/images/svg-icons.svg
@@ -0,0 +1,148 @@
+<svg style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<defs>
+<symbol id="icon-behance" viewBox="0 0 37 32">
+<path class="path1" d="M33 6.054h-9.125v2.214h9.125v-2.214zM28.5 13.661q-1.607 0-2.607 0.938t-1.107 2.545h7.286q-0.321-3.482-3.571-3.482zM28.786 24.107q1.125 0 2.179-0.571t1.357-1.554h3.946q-1.786 5.482-7.625 5.482-3.821 0-6.080-2.357t-2.259-6.196q0-3.714 2.33-6.17t6.009-2.455q2.464 0 4.295 1.214t2.732 3.196 0.902 4.429q0 0.304-0.036 0.839h-11.75q0 1.982 1.027 3.063t2.973 1.080zM4.946 23.214h5.286q3.661 0 3.661-2.982 0-3.214-3.554-3.214h-5.393v6.196zM4.946 13.625h5.018q1.393 0 2.205-0.652t0.813-2.027q0-2.571-3.393-2.571h-4.643v5.25zM0 4.536h10.607q1.554 0 2.768 0.25t2.259 0.848 1.607 1.723 0.563 2.75q0 3.232-3.071 4.696 2.036 0.571 3.071 2.054t1.036 3.643q0 1.339-0.438 2.438t-1.179 1.848-1.759 1.268-2.161 0.75-2.393 0.232h-10.911v-22.5z"></path>
+</symbol>
+<symbol id="icon-deviantart" viewBox="0 0 18 32">
+<path class="path1" d="M18.286 5.411l-5.411 10.393 0.429 0.554h4.982v7.411h-9.054l-0.786 0.536-2.536 4.875-0.536 0.536h-5.375v-5.411l5.411-10.411-0.429-0.536h-4.982v-7.411h9.054l0.786-0.536 2.536-4.875 0.536-0.536h5.375v5.411z"></path>
+</symbol>
+<symbol id="icon-medium" viewBox="0 0 32 32">
+<path class="path1" d="M10.661 7.518v20.946q0 0.446-0.223 0.759t-0.652 0.313q-0.304 0-0.589-0.143l-8.304-4.161q-0.375-0.179-0.634-0.598t-0.259-0.83v-20.357q0-0.357 0.179-0.607t0.518-0.25q0.25 0 0.786 0.268l9.125 4.571q0.054 0.054 0.054 0.089zM11.804 9.321l9.536 15.464-9.536-4.75v-10.714zM32 9.643v18.821q0 0.446-0.25 0.723t-0.679 0.277-0.839-0.232l-7.875-3.929zM31.946 7.5q0 0.054-4.58 7.491t-5.366 8.705l-6.964-11.321 5.786-9.411q0.304-0.5 0.929-0.5 0.25 0 0.464 0.107l9.661 4.821q0.071 0.036 0.071 0.107z"></path>
+</symbol>
+<symbol id="icon-slideshare" viewBox="0 0 32 32">
+<path class="path1" d="M15.589 13.214q0 1.482-1.134 2.545t-2.723 1.063-2.723-1.063-1.134-2.545q0-1.5 1.134-2.554t2.723-1.054 2.723 1.054 1.134 2.554zM24.554 13.214q0 1.482-1.125 2.545t-2.732 1.063q-1.589 0-2.723-1.063t-1.134-2.545q0-1.5 1.134-2.554t2.723-1.054q1.607 0 2.732 1.054t1.125 2.554zM28.571 16.429v-11.911q0-1.554-0.571-2.205t-1.982-0.652h-19.857q-1.482 0-2.009 0.607t-0.527 2.25v12.018q0.768 0.411 1.58 0.714t1.446 0.5 1.446 0.33 1.268 0.196 1.25 0.071 1.045 0.009 1.009-0.036 0.795-0.036q1.214-0.018 1.696 0.482 0.107 0.107 0.179 0.161 0.464 0.446 1.089 0.911 0.125-1.625 2.107-1.554 0.089 0 0.652 0.027t0.768 0.036 0.813 0.018 0.946-0.018 0.973-0.080 1.089-0.152 1.107-0.241 1.196-0.348 1.205-0.482 1.286-0.616zM31.482 16.339q-2.161 2.661-6.643 4.5 1.5 5.089-0.411 8.304-1.179 2.018-3.268 2.643-1.857 0.571-3.25-0.268-1.536-0.911-1.464-2.929l-0.018-5.821v-0.018q-0.143-0.036-0.438-0.107t-0.42-0.089l-0.018 6.036q0.071 2.036-1.482 2.929-1.411 0.839-3.268 0.268-2.089-0.643-3.25-2.679-1.875-3.214-0.393-8.268-4.482-1.839-6.643-4.5-0.446-0.661-0.071-1.125t1.071 0.018q0.054 0.036 0.196 0.125t0.196 0.143v-12.393q0-1.286 0.839-2.196t2.036-0.911h22.446q1.196 0 2.036 0.911t0.839 2.196v12.393l0.375-0.268q0.696-0.482 1.071-0.018t-0.071 1.125z"></path>
+</symbol>
+<symbol id="icon-snapchat-ghost" viewBox="0 0 30 32">
+<path class="path1" d="M15.143 2.286q2.393-0.018 4.295 1.223t2.92 3.438q0.482 1.036 0.482 3.196 0 0.839-0.161 3.411 0.25 0.125 0.5 0.125 0.321 0 0.911-0.241t0.911-0.241q0.518 0 1 0.321t0.482 0.821q0 0.571-0.563 0.964t-1.232 0.563-1.232 0.518-0.563 0.848q0 0.268 0.214 0.768 0.661 1.464 1.83 2.679t2.58 1.804q0.5 0.214 1.429 0.411 0.5 0.107 0.5 0.625 0 1.25-3.911 1.839-0.125 0.196-0.196 0.696t-0.25 0.83-0.589 0.33q-0.357 0-1.107-0.116t-1.143-0.116q-0.661 0-1.107 0.089-0.571 0.089-1.125 0.402t-1.036 0.679-1.036 0.723-1.357 0.598-1.768 0.241q-0.929 0-1.723-0.241t-1.339-0.598-1.027-0.723-1.036-0.679-1.107-0.402q-0.464-0.089-1.125-0.089-0.429 0-1.17 0.134t-1.045 0.134q-0.446 0-0.625-0.33t-0.25-0.848-0.196-0.714q-3.911-0.589-3.911-1.839 0-0.518 0.5-0.625 0.929-0.196 1.429-0.411 1.393-0.571 2.58-1.804t1.83-2.679q0.214-0.5 0.214-0.768 0-0.5-0.563-0.848t-1.241-0.527-1.241-0.563-0.563-0.938q0-0.482 0.464-0.813t0.982-0.33q0.268 0 0.857 0.232t0.946 0.232q0.321 0 0.571-0.125-0.161-2.536-0.161-3.393 0-2.179 0.482-3.214 1.143-2.446 3.071-3.536t4.714-1.125z"></path>
+</symbol>
+<symbol id="icon-yelp" viewBox="0 0 27 32">
+<path class="path1" d="M13.804 23.554v2.268q-0.018 5.214-0.107 5.446-0.214 0.571-0.911 0.714-0.964 0.161-3.241-0.679t-2.902-1.589q-0.232-0.268-0.304-0.643-0.018-0.214 0.071-0.464 0.071-0.179 0.607-0.839t3.232-3.857q0.018 0 1.071-1.25 0.268-0.339 0.705-0.438t0.884 0.063q0.429 0.179 0.67 0.518t0.223 0.75zM11.143 19.071q-0.054 0.982-0.929 1.25l-2.143 0.696q-4.911 1.571-5.214 1.571-0.625-0.036-0.964-0.643-0.214-0.446-0.304-1.339-0.143-1.357 0.018-2.973t0.536-2.223 1-0.571q0.232 0 3.607 1.375 1.25 0.518 2.054 0.839l1.5 0.607q0.411 0.161 0.634 0.545t0.205 0.866zM25.893 24.375q-0.125 0.964-1.634 2.875t-2.42 2.268q-0.661 0.25-1.125-0.125-0.25-0.179-3.286-5.125l-0.839-1.375q-0.25-0.375-0.205-0.821t0.348-0.821q0.625-0.768 1.482-0.464 0.018 0.018 2.125 0.714 3.625 1.179 4.321 1.42t0.839 0.366q0.5 0.393 0.393 1.089zM13.893 13.089q0.089 1.821-0.964 2.179-1.036 0.304-2.036-1.268l-6.75-10.679q-0.143-0.625 0.339-1.107 0.732-0.768 3.705-1.598t4.009-0.563q0.714 0.179 0.875 0.804 0.054 0.321 0.393 5.455t0.429 6.777zM25.714 15.018q0.054 0.696-0.464 1.054-0.268 0.179-5.875 1.536-1.196 0.268-1.625 0.411l0.018-0.036q-0.411 0.107-0.821-0.071t-0.661-0.571q-0.536-0.839 0-1.554 0.018-0.018 1.339-1.821 2.232-3.054 2.679-3.643t0.607-0.696q0.5-0.339 1.161-0.036 0.857 0.411 2.196 2.384t1.446 2.991v0.054z"></path>
+</symbol>
+<symbol id="icon-vine" viewBox="0 0 27 32">
+<path class="path1" d="M26.732 14.768v3.536q-1.804 0.411-3.536 0.411-1.161 2.429-2.955 4.839t-3.241 3.848-2.286 1.902q-1.429 0.804-2.893-0.054-0.5-0.304-1.080-0.777t-1.518-1.491-1.83-2.295-1.92-3.286-1.884-4.357-1.634-5.616-1.259-6.964h5.054q0.464 3.893 1.25 7.116t1.866 5.661 2.17 4.205 2.5 3.482q3.018-3.018 5.125-7.25-2.536-1.286-3.982-3.929t-1.446-5.946q0-3.429 1.857-5.616t5.071-2.188q3.179 0 4.875 1.884t1.696 5.313q0 2.839-1.036 5.107-0.125 0.018-0.348 0.054t-0.821 0.036-1.125-0.107-1.107-0.455-0.902-0.92q0.554-1.839 0.554-3.286 0-1.554-0.518-2.357t-1.411-0.804q-0.946 0-1.518 0.884t-0.571 2.509q0 3.321 1.875 5.241t4.768 1.92q1.107 0 2.161-0.25z"></path>
+</symbol>
+<symbol id="icon-vk" viewBox="0 0 35 32">
+<path class="path1" d="M34.232 9.286q0.411 1.143-2.679 5.25-0.429 0.571-1.161 1.518-1.393 1.786-1.607 2.339-0.304 0.732 0.25 1.446 0.304 0.375 1.446 1.464h0.018l0.071 0.071q2.518 2.339 3.411 3.946 0.054 0.089 0.116 0.223t0.125 0.473-0.009 0.607-0.446 0.491-1.054 0.223l-4.571 0.071q-0.429 0.089-1-0.089t-0.929-0.393l-0.357-0.214q-0.536-0.375-1.25-1.143t-1.223-1.384-1.089-1.036-1.009-0.277q-0.054 0.018-0.143 0.063t-0.304 0.259-0.384 0.527-0.304 0.929-0.116 1.384q0 0.268-0.063 0.491t-0.134 0.33l-0.071 0.089q-0.321 0.339-0.946 0.393h-2.054q-1.268 0.071-2.607-0.295t-2.348-0.946-1.839-1.179-1.259-1.027l-0.446-0.429q-0.179-0.179-0.491-0.536t-1.277-1.625-1.893-2.696-2.188-3.768-2.33-4.857q-0.107-0.286-0.107-0.482t0.054-0.286l0.071-0.107q0.268-0.339 1.018-0.339l4.893-0.036q0.214 0.036 0.411 0.116t0.286 0.152l0.089 0.054q0.286 0.196 0.429 0.571 0.357 0.893 0.821 1.848t0.732 1.455l0.286 0.518q0.518 1.071 1 1.857t0.866 1.223 0.741 0.688 0.607 0.25 0.482-0.089q0.036-0.018 0.089-0.089t0.214-0.393 0.241-0.839 0.17-1.446 0-2.232q-0.036-0.714-0.161-1.304t-0.25-0.821l-0.107-0.214q-0.446-0.607-1.518-0.768-0.232-0.036 0.089-0.429 0.304-0.339 0.679-0.536 0.946-0.464 4.268-0.429 1.464 0.018 2.411 0.232 0.357 0.089 0.598 0.241t0.366 0.429 0.188 0.571 0.063 0.813-0.018 0.982-0.045 1.259-0.027 1.473q0 0.196-0.018 0.75t-0.009 0.857 0.063 0.723 0.205 0.696 0.402 0.438q0.143 0.036 0.304 0.071t0.464-0.196 0.679-0.616 0.929-1.196 1.214-1.92q1.071-1.857 1.911-4.018 0.071-0.179 0.179-0.313t0.196-0.188l0.071-0.054 0.089-0.045t0.232-0.054 0.357-0.009l5.143-0.036q0.696-0.089 1.143 0.045t0.554 0.295z"></path>
+</symbol>
+<symbol id="icon-search" viewBox="0 0 30 32">
+<path class="path1" d="M20.571 14.857q0-3.304-2.348-5.652t-5.652-2.348-5.652 2.348-2.348 5.652 2.348 5.652 5.652 2.348 5.652-2.348 2.348-5.652zM29.714 29.714q0 0.929-0.679 1.607t-1.607 0.679q-0.964 0-1.607-0.679l-6.125-6.107q-3.196 2.214-7.125 2.214-2.554 0-4.884-0.991t-4.018-2.679-2.679-4.018-0.991-4.884 0.991-4.884 2.679-4.018 4.018-2.679 4.884-0.991 4.884 0.991 4.018 2.679 2.679 4.018 0.991 4.884q0 3.929-2.214 7.125l6.125 6.125q0.661 0.661 0.661 1.607z"></path>
+</symbol>
+<symbol id="icon-envelope-o" viewBox="0 0 32 32">
+<path class="path1" d="M29.714 26.857v-13.714q-0.571 0.643-1.232 1.179-4.786 3.679-7.607 6.036-0.911 0.768-1.482 1.196t-1.545 0.866-1.83 0.438h-0.036q-0.857 0-1.83-0.438t-1.545-0.866-1.482-1.196q-2.821-2.357-7.607-6.036-0.661-0.536-1.232-1.179v13.714q0 0.232 0.17 0.402t0.402 0.17h26.286q0.232 0 0.402-0.17t0.17-0.402zM29.714 8.089v-0.438t-0.009-0.232-0.054-0.223-0.098-0.161-0.161-0.134-0.25-0.045h-26.286q-0.232 0-0.402 0.17t-0.17 0.402q0 3 2.625 5.071 3.446 2.714 7.161 5.661 0.107 0.089 0.625 0.527t0.821 0.67 0.795 0.563 0.902 0.491 0.768 0.161h0.036q0.357 0 0.768-0.161t0.902-0.491 0.795-0.563 0.821-0.67 0.625-0.527q3.714-2.946 7.161-5.661 0.964-0.768 1.795-2.063t0.83-2.348zM32 7.429v19.429q0 1.179-0.839 2.018t-2.018 0.839h-26.286q-1.179 0-2.018-0.839t-0.839-2.018v-19.429q0-1.179 0.839-2.018t2.018-0.839h26.286q1.179 0 2.018 0.839t0.839 2.018z"></path>
+</symbol>
+<symbol id="icon-close" viewBox="0 0 25 32">
+<path class="path1" d="M23.179 23.607q0 0.714-0.5 1.214l-2.429 2.429q-0.5 0.5-1.214 0.5t-1.214-0.5l-5.25-5.25-5.25 5.25q-0.5 0.5-1.214 0.5t-1.214-0.5l-2.429-2.429q-0.5-0.5-0.5-1.214t0.5-1.214l5.25-5.25-5.25-5.25q-0.5-0.5-0.5-1.214t0.5-1.214l2.429-2.429q0.5-0.5 1.214-0.5t1.214 0.5l5.25 5.25 5.25-5.25q0.5-0.5 1.214-0.5t1.214 0.5l2.429 2.429q0.5 0.5 0.5 1.214t-0.5 1.214l-5.25 5.25 5.25 5.25q0.5 0.5 0.5 1.214z"></path>
+</symbol>
+<symbol id="icon-angle-down" viewBox="0 0 21 32">
+<path class="path1" d="M19.196 13.143q0 0.232-0.179 0.411l-8.321 8.321q-0.179 0.179-0.411 0.179t-0.411-0.179l-8.321-8.321q-0.179-0.179-0.179-0.411t0.179-0.411l0.893-0.893q0.179-0.179 0.411-0.179t0.411 0.179l7.018 7.018 7.018-7.018q0.179-0.179 0.411-0.179t0.411 0.179l0.893 0.893q0.179 0.179 0.179 0.411z"></path>
+</symbol>
+<symbol id="icon-folder-open" viewBox="0 0 34 32">
+<path class="path1" d="M33.554 17q0 0.554-0.554 1.179l-6 7.071q-0.768 0.911-2.152 1.545t-2.563 0.634h-19.429q-0.607 0-1.080-0.232t-0.473-0.768q0-0.554 0.554-1.179l6-7.071q0.768-0.911 2.152-1.545t2.563-0.634h19.429q0.607 0 1.080 0.232t0.473 0.768zM27.429 10.857v2.857h-14.857q-1.679 0-3.518 0.848t-2.929 2.134l-6.107 7.179q0-0.071-0.009-0.223t-0.009-0.223v-17.143q0-1.643 1.179-2.821t2.821-1.179h5.714q1.643 0 2.821 1.179t1.179 2.821v0.571h9.714q1.643 0 2.821 1.179t1.179 2.821z"></path>
+</symbol>
+<symbol id="icon-twitter" viewBox="0 0 30 32">
+<path class="path1" d="M28.929 7.286q-1.196 1.75-2.893 2.982 0.018 0.25 0.018 0.75 0 2.321-0.679 4.634t-2.063 4.437-3.295 3.759-4.607 2.607-5.768 0.973q-4.839 0-8.857-2.589 0.625 0.071 1.393 0.071 4.018 0 7.161-2.464-1.875-0.036-3.357-1.152t-2.036-2.848q0.589 0.089 1.089 0.089 0.768 0 1.518-0.196-2-0.411-3.313-1.991t-1.313-3.67v-0.071q1.214 0.679 2.607 0.732-1.179-0.786-1.875-2.054t-0.696-2.75q0-1.571 0.786-2.911 2.161 2.661 5.259 4.259t6.634 1.777q-0.143-0.679-0.143-1.321 0-2.393 1.688-4.080t4.080-1.688q2.5 0 4.214 1.821 1.946-0.375 3.661-1.393-0.661 2.054-2.536 3.179 1.661-0.179 3.321-0.893z"></path>
+</symbol>
+<symbol id="icon-facebook" viewBox="0 0 19 32">
+<path class="path1" d="M17.125 0.214v4.714h-2.804q-1.536 0-2.071 0.643t-0.536 1.929v3.375h5.232l-0.696 5.286h-4.536v13.554h-5.464v-13.554h-4.554v-5.286h4.554v-3.893q0-3.321 1.857-5.152t4.946-1.83q2.625 0 4.071 0.214z"></path>
+</symbol>
+<symbol id="icon-github" viewBox="0 0 27 32">
+<path class="path1" d="M13.714 2.286q3.732 0 6.884 1.839t4.991 4.991 1.839 6.884q0 4.482-2.616 8.063t-6.759 4.955q-0.482 0.089-0.714-0.125t-0.232-0.536q0-0.054 0.009-1.366t0.009-2.402q0-1.732-0.929-2.536 1.018-0.107 1.83-0.321t1.679-0.696 1.446-1.188 0.946-1.875 0.366-2.688q0-2.125-1.411-3.679 0.661-1.625-0.143-3.643-0.5-0.161-1.446 0.196t-1.643 0.786l-0.679 0.429q-1.661-0.464-3.429-0.464t-3.429 0.464q-0.286-0.196-0.759-0.482t-1.491-0.688-1.518-0.241q-0.804 2.018-0.143 3.643-1.411 1.554-1.411 3.679 0 1.518 0.366 2.679t0.938 1.875 1.438 1.196 1.679 0.696 1.83 0.321q-0.696 0.643-0.875 1.839-0.375 0.179-0.804 0.268t-1.018 0.089-1.17-0.384-0.991-1.116q-0.339-0.571-0.866-0.929t-0.884-0.429l-0.357-0.054q-0.375 0-0.518 0.080t-0.089 0.205 0.161 0.25 0.232 0.214l0.125 0.089q0.393 0.179 0.777 0.679t0.563 0.911l0.179 0.411q0.232 0.679 0.786 1.098t1.196 0.536 1.241 0.125 0.991-0.063l0.411-0.071q0 0.679 0.009 1.58t0.009 0.973q0 0.321-0.232 0.536t-0.714 0.125q-4.143-1.375-6.759-4.955t-2.616-8.063q0-3.732 1.839-6.884t4.991-4.991 6.884-1.839zM5.196 21.982q0.054-0.125-0.125-0.214-0.179-0.054-0.232 0.036-0.054 0.125 0.125 0.214 0.161 0.107 0.232-0.036zM5.75 22.589q0.125-0.089-0.036-0.286-0.179-0.161-0.286-0.054-0.125 0.089 0.036 0.286 0.179 0.179 0.286 0.054zM6.286 23.393q0.161-0.125 0-0.339-0.143-0.232-0.304-0.107-0.161 0.089 0 0.321t0.304 0.125zM7.036 24.143q0.143-0.143-0.071-0.339-0.214-0.214-0.357-0.054-0.161 0.143 0.071 0.339 0.214 0.214 0.357 0.054zM8.054 24.589q0.054-0.196-0.232-0.286-0.268-0.071-0.339 0.125t0.232 0.268q0.268 0.107 0.339-0.107zM9.179 24.679q0-0.232-0.304-0.196-0.286 0-0.286 0.196 0 0.232 0.304 0.196 0.286 0 0.286-0.196zM10.214 24.5q-0.036-0.196-0.321-0.161-0.286 0.054-0.25 0.268t0.321 0.143 0.25-0.25z"></path>
+</symbol>
+<symbol id="icon-bars" viewBox="0 0 27 32">
+<path class="path1" d="M27.429 24v2.286q0 0.464-0.339 0.804t-0.804 0.339h-25.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h25.143q0.464 0 0.804 0.339t0.339 0.804zM27.429 14.857v2.286q0 0.464-0.339 0.804t-0.804 0.339h-25.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h25.143q0.464 0 0.804 0.339t0.339 0.804zM27.429 5.714v2.286q0 0.464-0.339 0.804t-0.804 0.339h-25.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h25.143q0.464 0 0.804 0.339t0.339 0.804z"></path>
+</symbol>
+<symbol id="icon-google-plus" viewBox="0 0 41 32">
+<path class="path1" d="M25.661 16.304q0 3.714-1.554 6.616t-4.429 4.536-6.589 1.634q-2.661 0-5.089-1.036t-4.179-2.786-2.786-4.179-1.036-5.089 1.036-5.089 2.786-4.179 4.179-2.786 5.089-1.036q5.107 0 8.768 3.429l-3.554 3.411q-2.089-2.018-5.214-2.018-2.196 0-4.063 1.107t-2.955 3.009-1.089 4.152 1.089 4.152 2.955 3.009 4.063 1.107q1.482 0 2.723-0.411t2.045-1.027 1.402-1.402 0.875-1.482 0.384-1.321h-7.429v-4.5h12.357q0.214 1.125 0.214 2.179zM41.143 14.125v3.75h-3.732v3.732h-3.75v-3.732h-3.732v-3.75h3.732v-3.732h3.75v3.732h3.732z"></path>
+</symbol>
+<symbol id="icon-linkedin" viewBox="0 0 27 32">
+<path class="path1" d="M6.232 11.161v17.696h-5.893v-17.696h5.893zM6.607 5.696q0.018 1.304-0.902 2.179t-2.42 0.875h-0.036q-1.464 0-2.357-0.875t-0.893-2.179q0-1.321 0.92-2.188t2.402-0.866 2.375 0.866 0.911 2.188zM27.429 18.714v10.143h-5.875v-9.464q0-1.875-0.723-2.938t-2.259-1.063q-1.125 0-1.884 0.616t-1.134 1.527q-0.196 0.536-0.196 1.446v9.875h-5.875q0.036-7.125 0.036-11.554t-0.018-5.286l-0.018-0.857h5.875v2.571h-0.036q0.357-0.571 0.732-1t1.009-0.929 1.554-0.777 2.045-0.277q3.054 0 4.911 2.027t1.857 5.938z"></path>
+</symbol>
+<symbol id="icon-quote-right" viewBox="0 0 30 32">
+<path class="path1" d="M13.714 5.714v12.571q0 1.857-0.723 3.545t-1.955 2.92-2.92 1.955-3.545 0.723h-1.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h1.143q1.893 0 3.232-1.339t1.339-3.232v-0.571q0-0.714-0.5-1.214t-1.214-0.5h-4q-1.429 0-2.429-1t-1-2.429v-6.857q0-1.429 1-2.429t2.429-1h6.857q1.429 0 2.429 1t1 2.429zM29.714 5.714v12.571q0 1.857-0.723 3.545t-1.955 2.92-2.92 1.955-3.545 0.723h-1.143q-0.464 0-0.804-0.339t-0.339-0.804v-2.286q0-0.464 0.339-0.804t0.804-0.339h1.143q1.893 0 3.232-1.339t1.339-3.232v-0.571q0-0.714-0.5-1.214t-1.214-0.5h-4q-1.429 0-2.429-1t-1-2.429v-6.857q0-1.429 1-2.429t2.429-1h6.857q1.429 0 2.429 1t1 2.429z"></path>
+</symbol>
+<symbol id="icon-mail-reply" viewBox="0 0 32 32">
+<path class="path1" d="M32 20q0 2.964-2.268 8.054-0.054 0.125-0.188 0.429t-0.241 0.536-0.232 0.393q-0.214 0.304-0.5 0.304-0.268 0-0.42-0.179t-0.152-0.446q0-0.161 0.045-0.473t0.045-0.42q0.089-1.214 0.089-2.196 0-1.804-0.313-3.232t-0.866-2.473-1.429-1.804-1.884-1.241-2.375-0.759-2.75-0.384-3.134-0.107h-4v4.571q0 0.464-0.339 0.804t-0.804 0.339-0.804-0.339l-9.143-9.143q-0.339-0.339-0.339-0.804t0.339-0.804l9.143-9.143q0.339-0.339 0.804-0.339t0.804 0.339 0.339 0.804v4.571h4q12.732 0 15.625 7.196 0.946 2.393 0.946 5.946z"></path>
+</symbol>
+<symbol id="icon-youtube" viewBox="0 0 27 32">
+<path class="path1" d="M17.339 22.214v3.768q0 1.196-0.696 1.196-0.411 0-0.804-0.393v-5.375q0.393-0.393 0.804-0.393 0.696 0 0.696 1.196zM23.375 22.232v0.821h-1.607v-0.821q0-1.214 0.804-1.214t0.804 1.214zM6.125 18.339h1.911v-1.679h-5.571v1.679h1.875v10.161h1.786v-10.161zM11.268 28.5h1.589v-8.821h-1.589v6.75q-0.536 0.75-1.018 0.75-0.321 0-0.375-0.375-0.018-0.054-0.018-0.625v-6.5h-1.589v6.982q0 0.875 0.143 1.304 0.214 0.661 1.036 0.661 0.857 0 1.821-1.089v0.964zM18.929 25.857v-3.518q0-1.304-0.161-1.768-0.304-1-1.268-1-0.893 0-1.661 0.964v-3.875h-1.589v11.839h1.589v-0.857q0.804 0.982 1.661 0.982 0.964 0 1.268-0.982 0.161-0.482 0.161-1.786zM24.964 25.679v-0.232h-1.625q0 0.911-0.036 1.089-0.125 0.643-0.714 0.643-0.821 0-0.821-1.232v-1.554h3.196v-1.839q0-1.411-0.482-2.071-0.696-0.911-1.893-0.911-1.214 0-1.911 0.911-0.5 0.661-0.5 2.071v3.089q0 1.411 0.518 2.071 0.696 0.911 1.929 0.911 1.286 0 1.929-0.946 0.321-0.482 0.375-0.964 0.036-0.161 0.036-1.036zM14.107 9.375v-3.75q0-1.232-0.768-1.232t-0.768 1.232v3.75q0 1.25 0.768 1.25t0.768-1.25zM26.946 22.786q0 4.179-0.464 6.25-0.25 1.054-1.036 1.768t-1.821 0.821q-3.286 0.375-9.911 0.375t-9.911-0.375q-1.036-0.107-1.83-0.821t-1.027-1.768q-0.464-2-0.464-6.25 0-4.179 0.464-6.25 0.25-1.054 1.036-1.768t1.839-0.839q3.268-0.357 9.893-0.357t9.911 0.357q1.036 0.125 1.83 0.839t1.027 1.768q0.464 2 0.464 6.25zM9.125 0h1.821l-2.161 7.125v4.839h-1.786v-4.839q-0.25-1.321-1.089-3.786-0.661-1.839-1.161-3.339h1.893l1.268 4.696zM15.732 5.946v3.125q0 1.446-0.5 2.107-0.661 0.911-1.893 0.911-1.196 0-1.875-0.911-0.5-0.679-0.5-2.107v-3.125q0-1.429 0.5-2.089 0.679-0.911 1.875-0.911 1.232 0 1.893 0.911 0.5 0.661 0.5 2.089zM21.714 3.054v8.911h-1.625v-0.982q-0.946 1.107-1.839 1.107-0.821 0-1.054-0.661-0.143-0.429-0.143-1.339v-7.036h1.625v6.554q0 0.589 0.018 0.625 0.054 0.393 0.375 0.393 0.482 0 1.018-0.768v-6.804h1.625z"></path>
+</symbol>
+<symbol id="icon-dropbox" viewBox="0 0 32 32">
+<path class="path1" d="M7.179 12.625l8.821 5.446-6.107 5.089-8.75-5.696zM24.786 22.536v1.929l-8.75 5.232v0.018l-0.018-0.018-0.018 0.018v-0.018l-8.732-5.232v-1.929l2.625 1.714 6.107-5.071v-0.036l0.018 0.018 0.018-0.018v0.036l6.125 5.071zM9.893 2.107l6.107 5.089-8.821 5.429-6.036-4.821zM24.821 12.625l6.036 4.839-8.732 5.696-6.125-5.089zM22.125 2.107l8.732 5.696-6.036 4.821-8.821-5.429z"></path>
+</symbol>
+<symbol id="icon-instagram" viewBox="0 0 27 32">
+<path class="path1" d="M18.286 16q0-1.893-1.339-3.232t-3.232-1.339-3.232 1.339-1.339 3.232 1.339 3.232 3.232 1.339 3.232-1.339 1.339-3.232zM20.75 16q0 2.929-2.054 4.982t-4.982 2.054-4.982-2.054-2.054-4.982 2.054-4.982 4.982-2.054 4.982 2.054 2.054 4.982zM22.679 8.679q0 0.679-0.482 1.161t-1.161 0.482-1.161-0.482-0.482-1.161 0.482-1.161 1.161-0.482 1.161 0.482 0.482 1.161zM13.714 4.75q-0.125 0-1.366-0.009t-1.884 0-1.723 0.054-1.839 0.179-1.277 0.33q-0.893 0.357-1.571 1.036t-1.036 1.571q-0.196 0.518-0.33 1.277t-0.179 1.839-0.054 1.723 0 1.884 0.009 1.366-0.009 1.366 0 1.884 0.054 1.723 0.179 1.839 0.33 1.277q0.357 0.893 1.036 1.571t1.571 1.036q0.518 0.196 1.277 0.33t1.839 0.179 1.723 0.054 1.884 0 1.366-0.009 1.366 0.009 1.884 0 1.723-0.054 1.839-0.179 1.277-0.33q0.893-0.357 1.571-1.036t1.036-1.571q0.196-0.518 0.33-1.277t0.179-1.839 0.054-1.723 0-1.884-0.009-1.366 0.009-1.366 0-1.884-0.054-1.723-0.179-1.839-0.33-1.277q-0.357-0.893-1.036-1.571t-1.571-1.036q-0.518-0.196-1.277-0.33t-1.839-0.179-1.723-0.054-1.884 0-1.366 0.009zM27.429 16q0 4.089-0.089 5.661-0.179 3.714-2.214 5.75t-5.75 2.214q-1.571 0.089-5.661 0.089t-5.661-0.089q-3.714-0.179-5.75-2.214t-2.214-5.75q-0.089-1.571-0.089-5.661t0.089-5.661q0.179-3.714 2.214-5.75t5.75-2.214q1.571-0.089 5.661-0.089t5.661 0.089q3.714 0.179 5.75 2.214t2.214 5.75q0.089 1.571 0.089 5.661z"></path>
+</symbol>
+<symbol id="icon-flickr" viewBox="0 0 27 32">
+<path class="path1" d="M22.286 2.286q2.125 0 3.634 1.509t1.509 3.634v17.143q0 2.125-1.509 3.634t-3.634 1.509h-17.143q-2.125 0-3.634-1.509t-1.509-3.634v-17.143q0-2.125 1.509-3.634t3.634-1.509h17.143zM12.464 16q0-1.571-1.107-2.679t-2.679-1.107-2.679 1.107-1.107 2.679 1.107 2.679 2.679 1.107 2.679-1.107 1.107-2.679zM22.536 16q0-1.571-1.107-2.679t-2.679-1.107-2.679 1.107-1.107 2.679 1.107 2.679 2.679 1.107 2.679-1.107 1.107-2.679z"></path>
+</symbol>
+<symbol id="icon-tumblr" viewBox="0 0 19 32">
+<path class="path1" d="M16.857 23.732l1.429 4.232q-0.411 0.625-1.982 1.179t-3.161 0.571q-1.857 0.036-3.402-0.464t-2.545-1.321-1.696-1.893-0.991-2.143-0.295-2.107v-9.714h-3v-3.839q1.286-0.464 2.304-1.241t1.625-1.607 1.036-1.821 0.607-1.768 0.268-1.58q0.018-0.089 0.080-0.152t0.134-0.063h4.357v7.571h5.946v4.5h-5.964v9.25q0 0.536 0.116 1t0.402 0.938 0.884 0.741 1.455 0.25q1.393-0.036 2.393-0.518z"></path>
+</symbol>
+<symbol id="icon-dribbble" viewBox="0 0 27 32">
+<path class="path1" d="M18.286 26.786q-0.75-4.304-2.5-8.893h-0.036l-0.036 0.018q-0.286 0.107-0.768 0.295t-1.804 0.875-2.446 1.464-2.339 2.045-1.839 2.643l-0.268-0.196q3.286 2.679 7.464 2.679 2.357 0 4.571-0.929zM14.982 15.946q-0.375-0.875-0.946-1.982-5.554 1.661-12.018 1.661-0.018 0.125-0.018 0.375 0 2.214 0.786 4.223t2.214 3.598q0.893-1.589 2.205-2.973t2.545-2.223 2.33-1.446 1.777-0.857l0.661-0.232q0.071-0.018 0.232-0.063t0.232-0.080zM13.071 12.161q-2.143-3.804-4.357-6.75-2.464 1.161-4.179 3.321t-2.286 4.857q5.393 0 10.821-1.429zM25.286 17.857q-3.75-1.071-7.304-0.518 1.554 4.268 2.286 8.375 1.982-1.339 3.304-3.384t1.714-4.473zM10.911 4.625q-0.018 0-0.036 0.018 0.018-0.018 0.036-0.018zM21.446 7.214q-3.304-2.929-7.732-2.929-1.357 0-2.768 0.339 2.339 3.036 4.393 6.821 1.232-0.464 2.321-1.080t1.723-1.098 1.17-1.018 0.67-0.723zM25.429 15.875q-0.054-4.143-2.661-7.321l-0.018 0.018q-0.161 0.214-0.339 0.438t-0.777 0.795-1.268 1.080-1.786 1.161-2.348 1.152q0.446 0.946 0.786 1.696 0.036 0.107 0.116 0.313t0.134 0.295q0.643-0.089 1.33-0.125t1.313-0.036 1.232 0.027 1.143 0.071 1.009 0.098 0.857 0.116 0.652 0.107 0.446 0.080zM27.429 16q0 3.732-1.839 6.884t-4.991 4.991-6.884 1.839-6.884-1.839-4.991-4.991-1.839-6.884 1.839-6.884 4.991-4.991 6.884-1.839 6.884 1.839 4.991 4.991 1.839 6.884z"></path>
+</symbol>
+<symbol id="icon-skype" viewBox="0 0 27 32">
+<path class="path1" d="M20.946 18.982q0-0.893-0.348-1.634t-0.866-1.223-1.304-0.875-1.473-0.607-1.563-0.411l-1.857-0.429q-0.536-0.125-0.786-0.188t-0.625-0.205-0.536-0.286-0.295-0.375-0.134-0.536q0-1.375 2.571-1.375 0.768 0 1.375 0.214t0.964 0.509 0.679 0.598 0.714 0.518 0.857 0.214q0.839 0 1.348-0.571t0.509-1.375q0-0.982-1-1.777t-2.536-1.205-3.25-0.411q-1.214 0-2.357 0.277t-2.134 0.839-1.589 1.554-0.598 2.295q0 1.089 0.339 1.902t1 1.348 1.429 0.866 1.839 0.58l2.607 0.643q1.607 0.393 2 0.643 0.571 0.357 0.571 1.071 0 0.696-0.714 1.152t-1.875 0.455q-0.911 0-1.634-0.286t-1.161-0.688-0.813-0.804-0.821-0.688-0.964-0.286q-0.893 0-1.348 0.536t-0.455 1.339q0 1.643 2.179 2.813t5.196 1.17q1.304 0 2.5-0.33t2.188-0.955 1.58-1.67 0.589-2.348zM27.429 22.857q0 2.839-2.009 4.848t-4.848 2.009q-2.321 0-4.179-1.429-1.375 0.286-2.679 0.286-2.554 0-4.884-0.991t-4.018-2.679-2.679-4.018-0.991-4.884q0-1.304 0.286-2.679-1.429-1.857-1.429-4.179 0-2.839 2.009-4.848t4.848-2.009q2.321 0 4.179 1.429 1.375-0.286 2.679-0.286 2.554 0 4.884 0.991t4.018 2.679 2.679 4.018 0.991 4.884q0 1.304-0.286 2.679 1.429 1.857 1.429 4.179z"></path>
+</symbol>
+<symbol id="icon-foursquare" viewBox="0 0 23 32">
+<path class="path1" d="M17.857 7.75l0.661-3.464q0.089-0.411-0.161-0.714t-0.625-0.304h-12.714q-0.411 0-0.688 0.304t-0.277 0.661v19.661q0 0.125 0.107 0.018l5.196-6.286q0.411-0.464 0.679-0.598t0.857-0.134h4.268q0.393 0 0.661-0.259t0.321-0.527q0.429-2.321 0.661-3.411 0.071-0.375-0.205-0.714t-0.652-0.339h-5.25q-0.518 0-0.857-0.339t-0.339-0.857v-0.75q0-0.518 0.339-0.848t0.857-0.33h6.179q0.321 0 0.625-0.241t0.357-0.527zM21.911 3.786q-0.268 1.304-0.955 4.759t-1.241 6.25-0.625 3.098q-0.107 0.393-0.161 0.58t-0.25 0.58-0.438 0.589-0.688 0.375-1.036 0.179h-4.839q-0.232 0-0.393 0.179-0.143 0.161-7.607 8.821-0.393 0.446-1.045 0.509t-0.866-0.098q-0.982-0.393-0.982-1.75v-25.179q0-0.982 0.679-1.83t2.143-0.848h15.857q1.696 0 2.268 0.946t0.179 2.839zM21.911 3.786l-2.821 14.107q0.071-0.304 0.625-3.098t1.241-6.25 0.955-4.759z"></path>
+</symbol>
+<symbol id="icon-wordpress" viewBox="0 0 32 32">
+<path class="path1" d="M2.268 16q0-2.911 1.196-5.589l6.554 17.946q-3.5-1.696-5.625-5.018t-2.125-7.339zM25.268 15.304q0 0.339-0.045 0.688t-0.179 0.884-0.205 0.786-0.313 1.054-0.313 1.036l-1.357 4.571-4.964-14.75q0.821-0.054 1.571-0.143 0.339-0.036 0.464-0.33t-0.045-0.554-0.509-0.241l-3.661 0.179q-1.339-0.018-3.607-0.179-0.214-0.018-0.366 0.089t-0.205 0.268-0.027 0.33 0.161 0.295 0.348 0.143l1.429 0.143 2.143 5.857-3 9-5-14.857q0.821-0.054 1.571-0.143 0.339-0.036 0.464-0.33t-0.045-0.554-0.509-0.241l-3.661 0.179q-0.125 0-0.411-0.009t-0.464-0.009q1.875-2.857 4.902-4.527t6.563-1.67q2.625 0 5.009 0.946t4.259 2.661h-0.179q-0.982 0-1.643 0.723t-0.661 1.705q0 0.214 0.036 0.429t0.071 0.384 0.143 0.411 0.161 0.375 0.214 0.402 0.223 0.375 0.259 0.429 0.25 0.411q1.125 1.911 1.125 3.786zM16.232 17.196l4.232 11.554q0.018 0.107 0.089 0.196-2.25 0.786-4.554 0.786-2 0-3.875-0.571zM28.036 9.411q1.696 3.107 1.696 6.589 0 3.732-1.857 6.884t-4.982 4.973l4.196-12.107q1.054-3.018 1.054-4.929 0-0.75-0.107-1.411zM16 0q3.25 0 6.214 1.268t5.107 3.411 3.411 5.107 1.268 6.214-1.268 6.214-3.411 5.107-5.107 3.411-6.214 1.268-6.214-1.268-5.107-3.411-3.411-5.107-1.268-6.214 1.268-6.214 3.411-5.107 5.107-3.411 6.214-1.268zM16 31.268q3.089 0 5.92-1.214t4.875-3.259 3.259-4.875 1.214-5.92-1.214-5.92-3.259-4.875-4.875-3.259-5.92-1.214-5.92 1.214-4.875 3.259-3.259 4.875-1.214 5.92 1.214 5.92 3.259 4.875 4.875 3.259 5.92 1.214z"></path>
+</symbol>
+<symbol id="icon-stumbleupon" viewBox="0 0 34 32">
+<path class="path1" d="M18.964 12.714v-2.107q0-0.75-0.536-1.286t-1.286-0.536-1.286 0.536-0.536 1.286v10.929q0 3.125-2.25 5.339t-5.411 2.214q-3.179 0-5.42-2.241t-2.241-5.42v-4.75h5.857v4.679q0 0.768 0.536 1.295t1.286 0.527 1.286-0.527 0.536-1.295v-11.071q0-3.054 2.259-5.214t5.384-2.161q3.143 0 5.393 2.179t2.25 5.25v2.429l-3.482 1.036zM28.429 16.679h5.857v4.75q0 3.179-2.241 5.42t-5.42 2.241q-3.161 0-5.411-2.223t-2.25-5.366v-4.786l2.339 1.089 3.482-1.036v4.821q0 0.75 0.536 1.277t1.286 0.527 1.286-0.527 0.536-1.277v-4.911z"></path>
+</symbol>
+<symbol id="icon-digg" viewBox="0 0 37 32">
+<path class="path1" d="M5.857 5.036h3.643v17.554h-9.5v-12.446h5.857v-5.107zM5.857 19.661v-6.589h-2.196v6.589h2.196zM10.964 10.143v12.446h3.661v-12.446h-3.661zM10.964 5.036v3.643h3.661v-3.643h-3.661zM16.089 10.143h9.518v16.821h-9.518v-2.911h5.857v-1.464h-5.857v-12.446zM21.946 19.661v-6.589h-2.196v6.589h2.196zM27.071 10.143h9.5v16.821h-9.5v-2.911h5.839v-1.464h-5.839v-12.446zM32.911 19.661v-6.589h-2.196v6.589h2.196z"></path>
+</symbol>
+<symbol id="icon-spotify" viewBox="0 0 27 32">
+<path class="path1" d="M20.125 21.607q0-0.571-0.536-0.911-3.446-2.054-7.982-2.054-2.375 0-5.125 0.607-0.75 0.161-0.75 0.929 0 0.357 0.241 0.616t0.634 0.259q0.089 0 0.661-0.143 2.357-0.482 4.339-0.482 4.036 0 7.089 1.839 0.339 0.196 0.589 0.196 0.339 0 0.589-0.241t0.25-0.616zM21.839 17.768q0-0.714-0.625-1.089-4.232-2.518-9.786-2.518-2.732 0-5.411 0.75-0.857 0.232-0.857 1.143 0 0.446 0.313 0.759t0.759 0.313q0.125 0 0.661-0.143 2.179-0.589 4.482-0.589 4.982 0 8.714 2.214 0.429 0.232 0.679 0.232 0.446 0 0.759-0.313t0.313-0.759zM23.768 13.339q0-0.839-0.714-1.25-2.25-1.304-5.232-1.973t-6.125-0.67q-3.643 0-6.5 0.839-0.411 0.125-0.688 0.455t-0.277 0.866q0 0.554 0.366 0.929t0.92 0.375q0.196 0 0.714-0.143 2.375-0.661 5.482-0.661 2.839 0 5.527 0.607t4.527 1.696q0.375 0.214 0.714 0.214 0.518 0 0.902-0.366t0.384-0.92zM27.429 16q0 3.732-1.839 6.884t-4.991 4.991-6.884 1.839-6.884-1.839-4.991-4.991-1.839-6.884 1.839-6.884 4.991-4.991 6.884-1.839 6.884 1.839 4.991 4.991 1.839 6.884z"></path>
+</symbol>
+<symbol id="icon-soundcloud" viewBox="0 0 41 32">
+<path class="path1" d="M14 24.5l0.286-4.304-0.286-9.339q-0.018-0.179-0.134-0.304t-0.295-0.125q-0.161 0-0.286 0.125t-0.125 0.304l-0.25 9.339 0.25 4.304q0.018 0.179 0.134 0.295t0.277 0.116q0.393 0 0.429-0.411zM19.286 23.982l0.196-3.768-0.214-10.464q0-0.286-0.232-0.429-0.143-0.089-0.286-0.089t-0.286 0.089q-0.232 0.143-0.232 0.429l-0.018 0.107-0.179 10.339q0 0.018 0.196 4.214v0.018q0 0.179 0.107 0.304 0.161 0.196 0.411 0.196 0.196 0 0.357-0.161 0.161-0.125 0.161-0.357zM0.625 17.911l0.357 2.286-0.357 2.25q-0.036 0.161-0.161 0.161t-0.161-0.161l-0.304-2.25 0.304-2.286q0.036-0.161 0.161-0.161t0.161 0.161zM2.161 16.5l0.464 3.696-0.464 3.625q-0.036 0.161-0.179 0.161-0.161 0-0.161-0.179l-0.411-3.607 0.411-3.696q0-0.161 0.161-0.161 0.143 0 0.179 0.161zM3.804 15.821l0.446 4.375-0.446 4.232q0 0.196-0.196 0.196-0.179 0-0.214-0.196l-0.375-4.232 0.375-4.375q0.036-0.214 0.214-0.214 0.196 0 0.196 0.214zM5.482 15.696l0.411 4.5-0.411 4.357q-0.036 0.232-0.25 0.232-0.232 0-0.232-0.232l-0.375-4.357 0.375-4.5q0-0.232 0.232-0.232 0.214 0 0.25 0.232zM7.161 16.018l0.375 4.179-0.375 4.393q-0.036 0.286-0.286 0.286-0.107 0-0.188-0.080t-0.080-0.205l-0.357-4.393 0.357-4.179q0-0.107 0.080-0.188t0.188-0.080q0.25 0 0.286 0.268zM8.839 13.411l0.375 6.786-0.375 4.393q0 0.125-0.089 0.223t-0.214 0.098q-0.286 0-0.321-0.321l-0.321-4.393 0.321-6.786q0.036-0.321 0.321-0.321 0.125 0 0.214 0.098t0.089 0.223zM10.518 11.875l0.339 8.357-0.339 4.357q0 0.143-0.098 0.241t-0.241 0.098q-0.321 0-0.357-0.339l-0.286-4.357 0.286-8.357q0.036-0.339 0.357-0.339 0.143 0 0.241 0.098t0.098 0.241zM12.268 11.161l0.321 9.036-0.321 4.321q-0.036 0.375-0.393 0.375-0.339 0-0.375-0.375l-0.286-4.321 0.286-9.036q0-0.161 0.116-0.277t0.259-0.116q0.161 0 0.268 0.116t0.125 0.277zM19.268 24.411v0 0zM15.732 11.089l0.268 9.107-0.268 4.268q0 0.179-0.134 0.313t-0.313 0.134-0.304-0.125-0.143-0.321l-0.25-4.268 0.25-9.107q0-0.196 0.134-0.321t0.313-0.125 0.313 0.125 0.134 0.321zM17.5 11.429l0.25 8.786-0.25 4.214q0 0.196-0.143 0.339t-0.339 0.143-0.339-0.143-0.161-0.339l-0.214-4.214 0.214-8.786q0.018-0.214 0.161-0.357t0.339-0.143 0.33 0.143 0.152 0.357zM21.286 20.214l-0.25 4.125q0 0.232-0.161 0.393t-0.393 0.161-0.393-0.161-0.179-0.393l-0.107-2.036-0.107-2.089 0.214-11.357v-0.054q0.036-0.268 0.214-0.429 0.161-0.125 0.357-0.125 0.143 0 0.268 0.089 0.25 0.143 0.286 0.464zM41.143 19.875q0 2.089-1.482 3.563t-3.571 1.473h-14.036q-0.232-0.036-0.393-0.196t-0.161-0.393v-16.054q0-0.411 0.5-0.589 1.518-0.607 3.232-0.607 3.482 0 6.036 2.348t2.857 5.777q0.946-0.393 1.964-0.393 2.089 0 3.571 1.482t1.482 3.589z"></path>
+</symbol>
+<symbol id="icon-codepen" viewBox="0 0 32 32">
+<path class="path1" d="M3.857 20.875l10.768 7.179v-6.411l-5.964-3.982zM2.75 18.304l3.446-2.304-3.446-2.304v4.607zM17.375 28.054l10.768-7.179-4.804-3.214-5.964 3.982v6.411zM16 19.25l4.857-3.25-4.857-3.25-4.857 3.25zM8.661 14.339l5.964-3.982v-6.411l-10.768 7.179zM25.804 16l3.446 2.304v-4.607zM23.339 14.339l4.804-3.214-10.768-7.179v6.411zM32 11.125v9.75q0 0.732-0.607 1.143l-14.625 9.75q-0.375 0.232-0.768 0.232t-0.768-0.232l-14.625-9.75q-0.607-0.411-0.607-1.143v-9.75q0-0.732 0.607-1.143l14.625-9.75q0.375-0.232 0.768-0.232t0.768 0.232l14.625 9.75q0.607 0.411 0.607 1.143z"></path>
+</symbol>
+<symbol id="icon-twitch" viewBox="0 0 32 32">
+<path class="path1" d="M16 7.75v7.75h-2.589v-7.75h2.589zM23.107 7.75v7.75h-2.589v-7.75h2.589zM23.107 21.321l4.518-4.536v-14.196h-21.321v18.732h5.821v3.875l3.875-3.875h7.107zM30.214 0v18.089l-7.75 7.75h-5.821l-3.875 3.875h-3.875v-3.875h-7.107v-20.679l1.946-5.161h26.482z"></path>
+</symbol>
+<symbol id="icon-meanpath" viewBox="0 0 27 32">
+<path class="path1" d="M23.411 15.036v2.036q0 0.429-0.241 0.679t-0.67 0.25h-3.607q-0.429 0-0.679-0.25t-0.25-0.679v-2.036q0-0.429 0.25-0.679t0.679-0.25h3.607q0.429 0 0.67 0.25t0.241 0.679zM14.661 19.143v-4.464q0-0.946-0.58-1.527t-1.527-0.58h-2.375q-1.214 0-1.714 0.929-0.5-0.929-1.714-0.929h-2.321q-0.946 0-1.527 0.58t-0.58 1.527v4.464q0 0.393 0.375 0.393h0.982q0.393 0 0.393-0.393v-4.107q0-0.429 0.241-0.679t0.688-0.25h1.679q0.429 0 0.679 0.25t0.25 0.679v4.107q0 0.393 0.375 0.393h0.964q0.393 0 0.393-0.393v-4.107q0-0.429 0.25-0.679t0.679-0.25h1.732q0.429 0 0.67 0.25t0.241 0.679v4.107q0 0.393 0.393 0.393h0.982q0.375 0 0.375-0.393zM25.179 17.429v-2.75q0-0.946-0.589-1.527t-1.536-0.58h-4.714q-0.946 0-1.536 0.58t-0.589 1.527v7.321q0 0.375 0.393 0.375h0.982q0.375 0 0.375-0.375v-3.214q0.554 0.75 1.679 0.75h3.411q0.946 0 1.536-0.58t0.589-1.527zM27.429 6.429v19.143q0 1.714-1.214 2.929t-2.929 1.214h-19.143q-1.714 0-2.929-1.214t-1.214-2.929v-19.143q0-1.714 1.214-2.929t2.929-1.214h19.143q1.714 0 2.929 1.214t1.214 2.929z"></path>
+</symbol>
+<symbol id="icon-pinterest-p" viewBox="0 0 23 32">
+<path class="path1" d="M0 10.661q0-1.929 0.67-3.634t1.848-2.973 2.714-2.196 3.304-1.393 3.607-0.464q2.821 0 5.25 1.188t3.946 3.455 1.518 5.125q0 1.714-0.339 3.357t-1.071 3.161-1.786 2.67-2.589 1.839-3.375 0.688q-1.214 0-2.411-0.571t-1.714-1.571q-0.179 0.696-0.5 2.009t-0.42 1.696-0.366 1.268-0.464 1.268-0.571 1.116-0.821 1.384-1.107 1.545l-0.25 0.089-0.161-0.179q-0.268-2.804-0.268-3.357 0-1.643 0.384-3.688t1.188-5.134 0.929-3.625q-0.571-1.161-0.571-3.018 0-1.482 0.929-2.786t2.357-1.304q1.089 0 1.696 0.723t0.607 1.83q0 1.179-0.786 3.411t-0.786 3.339q0 1.125 0.804 1.866t1.946 0.741q0.982 0 1.821-0.446t1.402-1.214 1-1.696 0.679-1.973 0.357-1.982 0.116-1.777q0-3.089-1.955-4.813t-5.098-1.723q-3.571 0-5.964 2.313t-2.393 5.866q0 0.786 0.223 1.518t0.482 1.161 0.482 0.813 0.223 0.545q0 0.5-0.268 1.304t-0.661 0.804q-0.036 0-0.304-0.054-0.911-0.268-1.616-1t-1.089-1.688-0.58-1.929-0.196-1.902z"></path>
+</symbol>
+<symbol id="icon-get-pocket" viewBox="0 0 31 32">
+<path class="path1" d="M27.946 2.286q1.161 0 1.964 0.813t0.804 1.973v9.268q0 3.143-1.214 6t-3.259 4.911-4.893 3.259-5.973 1.205q-3.143 0-5.991-1.205t-4.902-3.259-3.268-4.911-1.214-6v-9.268q0-1.143 0.821-1.964t1.964-0.821h25.161zM15.375 21.286q0.839 0 1.464-0.589l7.214-6.929q0.661-0.625 0.661-1.518 0-0.875-0.616-1.491t-1.491-0.616q-0.839 0-1.464 0.589l-5.768 5.536-5.768-5.536q-0.625-0.589-1.446-0.589-0.875 0-1.491 0.616t-0.616 1.491q0 0.911 0.643 1.518l7.232 6.929q0.589 0.589 1.446 0.589z"></path>
+</symbol>
+<symbol id="icon-vimeo" viewBox="0 0 32 32">
+<path class="path1" d="M30.518 9.25q-0.179 4.214-5.929 11.625-5.946 7.696-10.036 7.696-2.536 0-4.286-4.696-0.786-2.857-2.357-8.607-1.286-4.679-2.804-4.679-0.321 0-2.268 1.357l-1.375-1.75q0.429-0.375 1.929-1.723t2.321-2.063q2.786-2.464 4.304-2.607 1.696-0.161 2.732 0.991t1.446 3.634q0.786 5.125 1.179 6.661 0.982 4.446 2.143 4.446 0.911 0 2.75-2.875 1.804-2.875 1.946-4.393 0.232-2.482-1.946-2.482-1.018 0-2.161 0.464 2.143-7.018 8.196-6.821 4.482 0.143 4.214 5.821z"></path>
+</symbol>
+<symbol id="icon-reddit-alien" viewBox="0 0 32 32">
+<path class="path1" d="M32 15.107q0 1.036-0.527 1.884t-1.42 1.295q0.214 0.821 0.214 1.714 0 2.768-1.902 5.125t-5.188 3.723-7.143 1.366-7.134-1.366-5.179-3.723-1.902-5.125q0-0.839 0.196-1.679-0.911-0.446-1.464-1.313t-0.554-1.902q0-1.464 1.036-2.509t2.518-1.045q1.518 0 2.589 1.125 3.893-2.714 9.196-2.893l2.071-9.304q0.054-0.232 0.268-0.375t0.464-0.089l6.589 1.446q0.321-0.661 0.964-1.063t1.411-0.402q1.107 0 1.893 0.777t0.786 1.884-0.786 1.893-1.893 0.786-1.884-0.777-0.777-1.884l-5.964-1.321-1.857 8.429q5.357 0.161 9.268 2.857 1.036-1.089 2.554-1.089 1.482 0 2.518 1.045t1.036 2.509zM7.464 18.661q0 1.107 0.777 1.893t1.884 0.786 1.893-0.786 0.786-1.893-0.786-1.884-1.893-0.777q-1.089 0-1.875 0.786t-0.786 1.875zM21.929 25q0.196-0.196 0.196-0.464t-0.196-0.464q-0.179-0.179-0.446-0.179t-0.464 0.179q-0.732 0.75-2.161 1.107t-2.857 0.357-2.857-0.357-2.161-1.107q-0.196-0.179-0.464-0.179t-0.446 0.179q-0.196 0.179-0.196 0.455t0.196 0.473q0.768 0.768 2.116 1.214t2.188 0.527 1.625 0.080 1.625-0.080 2.188-0.527 2.116-1.214zM21.875 21.339q1.107 0 1.884-0.786t0.777-1.893q0-1.089-0.786-1.875t-1.875-0.786q-1.107 0-1.893 0.777t-0.786 1.884 0.786 1.893 1.893 0.786z"></path>
+</symbol>
+<symbol id="icon-hashtag" viewBox="0 0 32 32">
+<path class="path1" d="M17.696 18.286l1.143-4.571h-4.536l-1.143 4.571h4.536zM31.411 9.286l-1 4q-0.125 0.429-0.554 0.429h-5.839l-1.143 4.571h5.554q0.268 0 0.446 0.214 0.179 0.25 0.107 0.5l-1 4q-0.089 0.429-0.554 0.429h-5.839l-1.446 5.857q-0.125 0.429-0.554 0.429h-4q-0.286 0-0.464-0.214-0.161-0.214-0.107-0.5l1.393-5.571h-4.536l-1.446 5.857q-0.125 0.429-0.554 0.429h-4.018q-0.268 0-0.446-0.214-0.161-0.214-0.107-0.5l1.393-5.571h-5.554q-0.268 0-0.446-0.214-0.161-0.214-0.107-0.5l1-4q0.125-0.429 0.554-0.429h5.839l1.143-4.571h-5.554q-0.268 0-0.446-0.214-0.179-0.25-0.107-0.5l1-4q0.089-0.429 0.554-0.429h5.839l1.446-5.857q0.125-0.429 0.571-0.429h4q0.268 0 0.446 0.214 0.161 0.214 0.107 0.5l-1.393 5.571h4.536l1.446-5.857q0.125-0.429 0.571-0.429h4q0.268 0 0.446 0.214 0.161 0.214 0.107 0.5l-1.393 5.571h5.554q0.268 0 0.446 0.214 0.161 0.214 0.107 0.5z"></path>
+</symbol>
+<symbol id="icon-chain" viewBox="0 0 30 32">
+<path class="path1" d="M26 21.714q0-0.714-0.5-1.214l-3.714-3.714q-0.5-0.5-1.214-0.5-0.75 0-1.286 0.571 0.054 0.054 0.339 0.33t0.384 0.384 0.268 0.339 0.232 0.455 0.063 0.491q0 0.714-0.5 1.214t-1.214 0.5q-0.268 0-0.491-0.063t-0.455-0.232-0.339-0.268-0.384-0.384-0.33-0.339q-0.589 0.554-0.589 1.304 0 0.714 0.5 1.214l3.679 3.696q0.482 0.482 1.214 0.482 0.714 0 1.214-0.464l2.625-2.607q0.5-0.5 0.5-1.196zM13.446 9.125q0-0.714-0.5-1.214l-3.679-3.696q-0.5-0.5-1.214-0.5-0.696 0-1.214 0.482l-2.625 2.607q-0.5 0.5-0.5 1.196 0 0.714 0.5 1.214l3.714 3.714q0.482 0.482 1.214 0.482 0.75 0 1.286-0.554-0.054-0.054-0.339-0.33t-0.384-0.384-0.268-0.339-0.232-0.455-0.063-0.491q0-0.714 0.5-1.214t1.214-0.5q0.268 0 0.491 0.063t0.455 0.232 0.339 0.268 0.384 0.384 0.33 0.339q0.589-0.554 0.589-1.304zM29.429 21.714q0 2.143-1.518 3.625l-2.625 2.607q-1.482 1.482-3.625 1.482-2.161 0-3.643-1.518l-3.679-3.696q-1.482-1.482-1.482-3.625 0-2.196 1.571-3.732l-1.571-1.571q-1.536 1.571-3.714 1.571-2.143 0-3.643-1.5l-3.714-3.714q-1.5-1.5-1.5-3.643t1.518-3.625l2.625-2.607q1.482-1.482 3.625-1.482 2.161 0 3.643 1.518l3.679 3.696q1.482 1.482 1.482 3.625 0 2.196-1.571 3.732l1.571 1.571q1.536-1.571 3.714-1.571 2.143 0 3.643 1.5l3.714 3.714q1.5 1.5 1.5 3.643z"></path>
+</symbol>
+<symbol id="icon-thumb-tack" viewBox="0 0 21 32">
+<path class="path1" d="M8.571 15.429v-8q0-0.25-0.161-0.411t-0.411-0.161-0.411 0.161-0.161 0.411v8q0 0.25 0.161 0.411t0.411 0.161 0.411-0.161 0.161-0.411zM20.571 21.714q0 0.464-0.339 0.804t-0.804 0.339h-7.661l-0.911 8.625q-0.036 0.214-0.188 0.366t-0.366 0.152h-0.018q-0.482 0-0.571-0.482l-1.357-8.661h-7.214q-0.464 0-0.804-0.339t-0.339-0.804q0-2.196 1.402-3.955t3.17-1.759v-9.143q-0.929 0-1.607-0.679t-0.679-1.607 0.679-1.607 1.607-0.679h11.429q0.929 0 1.607 0.679t0.679 1.607-0.679 1.607-1.607 0.679v9.143q1.768 0 3.17 1.759t1.402 3.955z"></path>
+</symbol>
+<symbol id="icon-arrow-left" viewBox="0 0 43 32">
+<path class="path1" d="M42.311 14.044c-0.178-0.178-0.533-0.356-0.711-0.356h-33.778l10.311-10.489c0.178-0.178 0.356-0.533 0.356-0.711 0-0.356-0.178-0.533-0.356-0.711l-1.6-1.422c-0.356-0.178-0.533-0.356-0.889-0.356s-0.533 0.178-0.711 0.356l-14.578 14.933c-0.178 0.178-0.356 0.533-0.356 0.711s0.178 0.533 0.356 0.711l14.756 14.933c0 0.178 0.356 0.356 0.533 0.356s0.533-0.178 0.711-0.356l1.6-1.6c0.178-0.178 0.356-0.533 0.356-0.711s-0.178-0.533-0.356-0.711l-10.311-10.489h33.778c0.178 0 0.533-0.178 0.711-0.356 0.356-0.178 0.533-0.356 0.533-0.711v-2.133c0-0.356-0.178-0.711-0.356-0.889z"></path>
+</symbol>
+<symbol id="icon-arrow-right" viewBox="0 0 43 32">
+<path class="path1" d="M0.356 17.956c0.178 0.178 0.533 0.356 0.711 0.356h33.778l-10.311 10.489c-0.178 0.178-0.356 0.533-0.356 0.711 0 0.356 0.178 0.533 0.356 0.711l1.6 1.6c0.178 0.178 0.533 0.356 0.711 0.356s0.533-0.178 0.711-0.356l14.756-14.933c0.178-0.356 0.356-0.711 0.356-0.889s-0.178-0.533-0.356-0.711l-14.756-14.933c0-0.178-0.356-0.356-0.533-0.356s-0.533 0.178-0.711 0.356l-1.6 1.6c-0.178 0.178-0.356 0.533-0.356 0.711s0.178 0.533 0.356 0.711l10.311 10.489h-33.778c-0.178 0-0.533 0.178-0.711 0.356-0.356 0.178-0.533 0.356-0.533 0.711v2.311c0 0.178 0.178 0.533 0.356 0.711z"></path>
+</symbol>
+<symbol id="icon-play" viewBox="0 0 22 28">
+<path d="M21.625 14.484l-20.75 11.531c-0.484 0.266-0.875 0.031-0.875-0.516v-23c0-0.547 0.391-0.781 0.875-0.516l20.75 11.531c0.484 0.266 0.484 0.703 0 0.969z"></path>
+</symbol>
+<symbol id="icon-pause" viewBox="0 0 24 28">
+<path d="M24 3v22c0 0.547-0.453 1-1 1h-8c-0.547 0-1-0.453-1-1v-22c0-0.547 0.453-1 1-1h8c0.547 0 1 0.453 1 1zM10 3v22c0 0.547-0.453 1-1 1h-8c-0.547 0-1-0.453-1-1v-22c0-0.547 0.453-1 1-1h8c0.547 0 1 0.453 1 1z"></path>
+</symbol>
+</defs>
+</svg>
diff --git a/wp-content/themes/twentyseventeen/assets/js/customize-controls.js b/wp-content/themes/twentyseventeen/assets/js/customize-controls.js
new file mode 100644
index 000000000..b8e7e8160
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/js/customize-controls.js
@@ -0,0 +1,34 @@
+/**
+ * Scripts within the customizer controls window.
+ *
+ * Contextually shows the color hue control and informs the preview
+ * when users open or close the front page sections section.
+ */
+
+(function() {
+	wp.customize.bind( 'ready', function() {
+
+		// Only show the color hue control when there's a custom color scheme.
+		wp.customize( 'colorscheme', function( setting ) {
+			wp.customize.control( 'colorscheme_hue', function( control ) {
+				var visibility = function() {
+					if ( 'custom' === setting.get() ) {
+						control.container.slideDown( 180 );
+					} else {
+						control.container.slideUp( 180 );
+					}
+				};
+
+				visibility();
+				setting.bind( visibility );
+			});
+		});
+
+		// Detect when the front page sections section is expanded (or closed) so we can adjust the preview accordingly.
+		wp.customize.section( 'theme_options' ).expanded.bind( function( isExpanding ) {
+
+			// Value of isExpanding will = true if you're entering the section, false if you're leaving it.
+			wp.customize.previewer.send( 'section-highlight', { expanded: isExpanding });
+		});
+	});
+})( jQuery );
diff --git a/wp-content/themes/twentyseventeen/assets/js/customize-preview.js b/wp-content/themes/twentyseventeen/assets/js/customize-preview.js
new file mode 100644
index 000000000..dba7b79b9
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/js/customize-preview.js
@@ -0,0 +1,150 @@
+/**
+ * File customize-preview.js.
+ *
+ * Instantly live-update customizer settings in the preview for improved user experience.
+ */
+
+(function( $ ) {
+
+	// Collect information from customize-controls.js about which panels are opening.
+	wp.customize.bind( 'preview-ready', function() {
+
+		// Initially hide the theme option placeholders on load
+		$( '.panel-placeholder' ).hide();
+
+		wp.customize.preview.bind( 'section-highlight', function( data ) {
+
+			// Only on the front page.
+			if ( ! $( 'body' ).hasClass( 'twentyseventeen-front-page' ) ) {
+				return;
+			}
+
+			// When the section is expanded, show and scroll to the content placeholders, exposing the edit links.
+			if ( true === data.expanded ) {
+				$( 'body' ).addClass( 'highlight-front-sections' );
+				$( '.panel-placeholder' ).slideDown( 200, function() {
+					$.scrollTo( $( '#panel1' ), {
+						duration: 600,
+						offset: { 'top': -70 } // Account for sticky menu.
+					});
+				});
+
+			// If we've left the panel, hide the placeholders and scroll back to the top.
+			} else {
+				$( 'body' ).removeClass( 'highlight-front-sections' );
+				// Don't change scroll when leaving - it's likely to have unintended consequences.
+				$( '.panel-placeholder' ).slideUp( 200 );
+			}
+		});
+	});
+
+	// Site title and description.
+	wp.customize( 'blogname', function( value ) {
+		value.bind( function( to ) {
+			$( '.site-title a' ).text( to );
+		});
+	});
+	wp.customize( 'blogdescription', function( value ) {
+		value.bind( function( to ) {
+			$( '.site-description' ).text( to );
+		});
+	});
+
+	// Header text color.
+	wp.customize( 'header_textcolor', function( value ) {
+		value.bind( function( to ) {
+			if ( 'blank' === to ) {
+				$( '.site-title, .site-description' ).css({
+					clip: 'rect(1px, 1px, 1px, 1px)',
+					position: 'absolute'
+				});
+				// Add class for different logo styles if title and description are hidden.
+				$( 'body' ).addClass( 'title-tagline-hidden' );
+			} else {
+
+				// Check if the text color has been removed and use default colors in theme stylesheet.
+				if ( ! to.length ) {
+					$( '#twentyseventeen-custom-header-styles' ).remove();
+				}
+				$( '.site-title, .site-description' ).css({
+					clip: 'auto',
+					position: 'relative'
+				});
+				$( '.site-branding, .site-branding a, .site-description, .site-description a' ).css({
+					color: to
+				});
+				// Add class for different logo styles if title and description are visible.
+				$( 'body' ).removeClass( 'title-tagline-hidden' );
+			}
+		});
+	});
+
+	// Color scheme.
+	wp.customize( 'colorscheme', function( value ) {
+		value.bind( function( to ) {
+
+			// Update color body class.
+			$( 'body' )
+				.removeClass( 'colors-light colors-dark colors-custom' )
+				.addClass( 'colors-' + to );
+		});
+	});
+
+	// Custom color hue.
+	wp.customize( 'colorscheme_hue', function( value ) {
+		value.bind( function( to ) {
+
+			// Update custom color CSS.
+			var style = $( '#custom-theme-colors' ),
+				hue = style.data( 'hue' ),
+				css = style.html();
+
+			// Equivalent to css.replaceAll, with hue followed by comma to prevent values with units from being changed.
+			css = css.split( hue + ',' ).join( to + ',' );
+			style.html( css ).data( 'hue', to );
+		});
+	});
+
+	// Page layouts.
+	wp.customize( 'page_layout', function( value ) {
+		value.bind( function( to ) {
+			if ( 'one-column' === to ) {
+				$( 'body' ).addClass( 'page-one-column' ).removeClass( 'page-two-column' );
+			} else {
+				$( 'body' ).removeClass( 'page-one-column' ).addClass( 'page-two-column' );
+			}
+		} );
+	} );
+
+	// Whether a header image is available.
+	function hasHeaderImage() {
+		var image = wp.customize( 'header_image' )();
+		return '' !== image && 'remove-header' !== image;
+	}
+
+	// Whether a header video is available.
+	function hasHeaderVideo() {
+		var externalVideo = wp.customize( 'external_header_video' )(),
+			video = wp.customize( 'header_video' )();
+
+		return '' !== externalVideo || ( 0 !== video && '' !== video );
+	}
+
+	// Toggle a body class if a custom header exists.
+	$.each( [ 'external_header_video', 'header_image', 'header_video' ], function( index, settingId ) {
+		wp.customize( settingId, function( setting ) {
+			setting.bind(function() {
+				if ( hasHeaderImage() ) {
+					$( document.body ).addClass( 'has-header-image' );
+				} else {
+					$( document.body ).removeClass( 'has-header-image' );
+				}
+
+				if ( ! hasHeaderVideo() ) {
+					$( document.body ).removeClass( 'has-header-video' );
+				}
+			} );
+		} );
+	} );
+
+} )( jQuery );
diff --git a/wp-content/themes/twentyseventeen/assets/js/global.js b/wp-content/themes/twentyseventeen/assets/js/global.js
new file mode 100644
index 000000000..6e2f42902
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/js/global.js
@@ -0,0 +1,249 @@
+/* global twentyseventeenScreenReaderText */
+(function( $ ) {
+
+	// Variables and DOM Caching.
+	var $body = $( 'body' ),
+		$customHeader = $body.find( '.custom-header' ),
+		$branding = $customHeader.find( '.site-branding' ),
+		$navigation = $body.find( '.navigation-top' ),
+		$navWrap = $navigation.find( '.wrap' ),
+		$navMenuItem = $navigation.find( '.menu-item' ),
+		$menuToggle = $navigation.find( '.menu-toggle' ),
+		$menuScrollDown = $body.find( '.menu-scroll-down' ),
+		$sidebar = $body.find( '#secondary' ),
+		$entryContent = $body.find( '.entry-content' ),
+		$formatQuote = $body.find( '.format-quote blockquote' ),
+		isFrontPage = $body.hasClass( 'twentyseventeen-front-page' ) || $body.hasClass( 'home blog' ),
+		navigationFixedClass = 'site-navigation-fixed',
+		navigationHeight,
+		navigationOuterHeight,
+		navPadding,
+		navMenuItemHeight,
+		idealNavHeight,
+		navIsNotTooTall,
+		headerOffset,
+		menuTop = 0,
+		resizeTimer;
+
+	// Ensure the sticky navigation doesn't cover current focused links.
+	$( 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex], [contenteditable]', '.site-content-contain' ).filter( ':visible' ).focus( function() {
+		if ( $navigation.hasClass( 'site-navigation-fixed' ) ) {
+			var windowScrollTop = $( window ).scrollTop(),
+				fixedNavHeight = $navigation.height(),
+				itemScrollTop = $( this ).offset().top,
+				offsetDiff = itemScrollTop - windowScrollTop;
+
+			// Account for Admin bar.
+			if ( $( '#wpadminbar' ).length ) {
+				offsetDiff -= $( '#wpadminbar' ).height();
+			}
+
+			if ( offsetDiff < fixedNavHeight ) {
+				$( window ).scrollTo( itemScrollTop - ( fixedNavHeight + 50 ), 0 );
+			}
+		}
+	});
+
+	// Set properties of navigation.
+	function setNavProps() {
+		navigationHeight      = $navigation.height();
+		navigationOuterHeight = $navigation.outerHeight();
+		navPadding            = parseFloat( $navWrap.css( 'padding-top' ) ) * 2;
+		navMenuItemHeight     = $navMenuItem.outerHeight() * 2;
+		idealNavHeight        = navPadding + navMenuItemHeight;
+		navIsNotTooTall       = navigationHeight <= idealNavHeight;
+	}
+
+	// Make navigation 'stick'.
+	function adjustScrollClass() {
+
+		// Make sure we're not on a mobile screen.
+		if ( 'none' === $menuToggle.css( 'display' ) ) {
+
+			// Make sure the nav isn't taller than two rows.
+			if ( navIsNotTooTall ) {
+
+				// When there's a custom header image or video, the header offset includes the height of the navigation.
+				if ( isFrontPage && ( $body.hasClass( 'has-header-image' ) || $body.hasClass( 'has-header-video' ) ) ) {
+					headerOffset = $customHeader.innerHeight() - navigationOuterHeight;
+				} else {
+					headerOffset = $customHeader.innerHeight();
+				}
+
+				// If the scroll is more than the custom header, set the fixed class.
+				if ( $( window ).scrollTop() >= headerOffset ) {
+					$navigation.addClass( navigationFixedClass );
+				} else {
+					$navigation.removeClass( navigationFixedClass );
+				}
+
+			} else {
+
+				// Remove 'fixed' class if nav is taller than two rows.
+				$navigation.removeClass( navigationFixedClass );
+			}
+		}
+	}
+
+	// Set margins of branding in header.
+	function adjustHeaderHeight() {
+		if ( 'none' === $menuToggle.css( 'display' ) ) {
+
+			// The margin should be applied to different elements on front-page or home vs interior pages.
+			if ( isFrontPage ) {
+				$branding.css( 'margin-bottom', navigationOuterHeight );
+			} else {
+				$customHeader.css( 'margin-bottom', navigationOuterHeight );
+			}
+
+		} else {
+			$customHeader.css( 'margin-bottom', '0' );
+			$branding.css( 'margin-bottom', '0' );
+		}
+	}
+
+	// Set icon for quotes.
+	function setQuotesIcon() {
+		$( twentyseventeenScreenReaderText.quote ).prependTo( $formatQuote );
+	}
+
+	// Add 'below-entry-meta' class to elements.
+	function belowEntryMetaClass( param ) {
+		var sidebarPos, sidebarPosBottom;
+
+		if ( ! $body.hasClass( 'has-sidebar' ) || (
+			$body.hasClass( 'search' ) ||
+			$body.hasClass( 'single-attachment' ) ||
+			$body.hasClass( 'error404' ) ||
+			$body.hasClass( 'twentyseventeen-front-page' )
+		) ) {
+			return;
+		}
+
+		sidebarPos       = $sidebar.offset();
+		sidebarPosBottom = sidebarPos.top + ( $sidebar.height() + 28 );
+
+		$entryContent.find( param ).each( function() {
+			var $element = $( this ),
+				elementPos = $element.offset(),
+				elementPosTop = elementPos.top;
+
+			// Add 'below-entry-meta' to elements below the entry meta.
+			if ( elementPosTop > sidebarPosBottom ) {
+				$element.addClass( 'below-entry-meta' );
+			} else {
+				$element.removeClass( 'below-entry-meta' );
+			}
+		});
+	}
+
+	/*
+	 * Test if inline SVGs are supported.
+	 * @link https://github.com/Modernizr/Modernizr/
+	 */
+	function supportsInlineSVG() {
+		var div = document.createElement( 'div' );
+		div.innerHTML = '<svg/>';
+		return 'http://www.w3.org/2000/svg' === ( 'undefined' !== typeof SVGRect && div.firstChild && div.firstChild.namespaceURI );
+	}
+
+	/**
+	 * Test if an iOS device.
+	*/
+	function checkiOS() {
+		return /iPad|iPhone|iPod/.test(navigator.userAgent) && ! window.MSStream;
+	}
+
+	/*
+	 * Test if background-attachment: fixed is supported.
+	 * @link http://stackoverflow.com/questions/14115080/detect-support-for-background-attachment-fixed
+	 */
+	function supportsFixedBackground() {
+		var el = document.createElement('div'),
+			isSupported;
+
+		try {
+			if ( ! ( 'backgroundAttachment' in el.style ) || checkiOS() ) {
+				return false;
+			}
+			el.style.backgroundAttachment = 'fixed';
+			isSupported = ( 'fixed' === el.style.backgroundAttachment );
+			return isSupported;
+		}
+		catch (e) {
+			return false;
+		}
+	}
+
+	// Fire on document ready.
+	$( document ).ready( function() {
+
+		// If navigation menu is present on page, setNavProps and adjustScrollClass.
+		if ( $navigation.length ) {
+			setNavProps();
+			adjustScrollClass();
+		}
+
+		// If 'Scroll Down' arrow in present on page, calculate scroll offset and bind an event handler to the click event.
+		if ( $menuScrollDown.length ) {
+
+			if ( $( 'body' ).hasClass( 'admin-bar' ) ) {
+				menuTop -= 32;
+			}
+			if ( $( 'body' ).hasClass( 'blog' ) ) {
+				menuTop -= 30; // The div for latest posts has no space above content, add some to account for this.
+			}
+			if ( ! $navigation.length ) {
+				navigationOuterHeight = 0;
+			}
+
+			$menuScrollDown.click( function( e ) {
+				e.preventDefault();
+				$( window ).scrollTo( '#primary', {
+					duration: 600,
+					offset: { top: menuTop - navigationOuterHeight }
+				});
+			});
+		}
+
+		adjustHeaderHeight();
+		setQuotesIcon();
+		if ( true === supportsInlineSVG() ) {
+			document.documentElement.className = document.documentElement.className.replace( /(\s*)no-svg(\s*)/, '$1svg$2' );
+		}
+
+		if ( true === supportsFixedBackground() ) {
+			document.documentElement.className += ' background-fixed';
+		}
+	});
+
+	// If navigation menu is present on page, adjust it on scroll and screen resize.
+	if ( $navigation.length ) {
+
+		// On scroll, we want to stick/unstick the navigation.
+		$( window ).on( 'scroll', function() {
+			adjustScrollClass();
+			adjustHeaderHeight();
+		});
+
+		// Also want to make sure the navigation is where it should be on resize.
+		$( window ).resize( function() {
+			setNavProps();
+			setTimeout( adjustScrollClass, 500 );
+		});
+	}
+
+	$( window ).resize( function() {
+		clearTimeout( resizeTimer );
+		resizeTimer = setTimeout( function() {
+			belowEntryMetaClass( 'blockquote.alignleft, blockquote.alignright' );
+		}, 300 );
+		setTimeout( adjustHeaderHeight, 1000 );
+	});
+
+	// Add header video class after the video is loaded.
+	$( document ).on( 'wp-custom-header-video-loaded', function() {
+		$body.addClass( 'has-header-video' );
+	});
+
+})( jQuery );
diff --git a/wp-content/themes/twentyseventeen/assets/js/html5.js b/wp-content/themes/twentyseventeen/assets/js/html5.js
new file mode 100644
index 000000000..9c1f04955
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/js/html5.js
@@ -0,0 +1,326 @@
+/**
+* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+;(function(window, document) {
+/*jshint evil:true */
+  /** version */
+  var version = '3.7.3';
+
+  /** Preset options */
+  var options = window.html5 || {};
+
+  /** Used to skip problem elements */
+  var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
+
+  /** Not all elements can be cloned in IE **/
+  var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
+
+  /** Detect whether the browser supports default html5 styles */
+  var supportsHtml5Styles;
+
+  /** Name of the expando, to work with multiple documents or to re-shiv one document */
+  var expando = '_html5shiv';
+
+  /** The id for the the documents expando */
+  var expanID = 0;
+
+  /** Cached data for each document */
+  var expandoData = {};
+
+  /** Detect whether the browser supports unknown elements */
+  var supportsUnknownElements;
+
+  (function() {
+    try {
+        var a = document.createElement('a');
+        a.innerHTML = '<xyz></xyz>';
+        //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
+        supportsHtml5Styles = ('hidden' in a);
+
+        supportsUnknownElements = a.childNodes.length == 1 || (function() {
+          // assign a false positive if unable to shiv
+          (document.createElement)('a');
+          var frag = document.createDocumentFragment();
+          return (
+            typeof frag.cloneNode == 'undefined' ||
+            typeof frag.createDocumentFragment == 'undefined' ||
+            typeof frag.createElement == 'undefined'
+          );
+        }());
+    } catch(e) {
+      // assign a false positive if detection fails => unable to shiv
+      supportsHtml5Styles = true;
+      supportsUnknownElements = true;
+    }
+
+  }());
+
+  /*--------------------------------------------------------------------------*/
+
+  /**
+   * Creates a style sheet with the given CSS text and adds it to the document.
+   * @private
+   * @param {Document} ownerDocument The document.
+   * @param {String} cssText The CSS text.
+   * @returns {StyleSheet} The style element.
+   */
+  function addStyleSheet(ownerDocument, cssText) {
+    var p = ownerDocument.createElement('p'),
+        parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
+
+    p.innerHTML = 'x<style>' + cssText + '</style>';
+    return parent.insertBefore(p.lastChild, parent.firstChild);
+  }
+
+  /**
+   * Returns the value of `html5.elements` as an array.
+   * @private
+   * @returns {Array} An array of shived element node names.
+   */
+  function getElements() {
+    var elements = html5.elements;
+    return typeof elements == 'string' ? elements.split(' ') : elements;
+  }
+
+  /**
+   * Extends the built-in list of html5 elements
+   * @memberOf html5
+   * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
+   * @param {Document} ownerDocument The context document.
+   */
+  function addElements(newElements, ownerDocument) {
+    var elements = html5.elements;
+    if(typeof elements != 'string'){
+      elements = elements.join(' ');
+    }
+    if(typeof newElements != 'string'){
+      newElements = newElements.join(' ');
+    }
+    html5.elements = elements +' '+ newElements;
+    shivDocument(ownerDocument);
+  }
+
+   /**
+   * Returns the data associated to the given document
+   * @private
+   * @param {Document} ownerDocument The document.
+   * @returns {Object} An object of data.
+   */
+  function getExpandoData(ownerDocument) {
+    var data = expandoData[ownerDocument[expando]];
+    if (!data) {
+        data = {};
+        expanID++;
+        ownerDocument[expando] = expanID;
+        expandoData[expanID] = data;
+    }
+    return data;
+  }
+
+  /**
+   * returns a shived element for the given nodeName and document
+   * @memberOf html5
+   * @param {String} nodeName name of the element
+   * @param {Document|DocumentFragment} ownerDocument The context document.
+   * @returns {Object} The shived element.
+   */
+  function createElement(nodeName, ownerDocument, data){
+    if (!ownerDocument) {
+        ownerDocument = document;
+    }
+    if(supportsUnknownElements){
+        return ownerDocument.createElement(nodeName);
+    }
+    if (!data) {
+        data = getExpandoData(ownerDocument);
+    }
+    var node;
+
+    if (data.cache[nodeName]) {
+        node = data.cache[nodeName].cloneNode();
+    } else if (saveClones.test(nodeName)) {
+        node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
+    } else {
+        node = data.createElem(nodeName);
+    }
+
+    // Avoid adding some elements to fragments in IE < 9 because
+    // * Attributes like `name` or `type` cannot be set/changed once an element
+    //   is inserted into a document/fragment
+    // * Link elements with `src` attributes that are inaccessible, as with
+    //   a 403 response, will cause the tab/window to crash
+    // * Script elements appended to fragments will execute when their `src`
+    //   or `text` property is set
+    return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
+  }
+
+  /**
+   * returns a shived DocumentFragment for the given document
+   * @memberOf html5
+   * @param {Document} ownerDocument The context document.
+   * @returns {Object} The shived DocumentFragment.
+   */
+  function createDocumentFragment(ownerDocument, data){
+    if (!ownerDocument) {
+        ownerDocument = document;
+    }
+    if(supportsUnknownElements){
+        return ownerDocument.createDocumentFragment();
+    }
+    data = data || getExpandoData(ownerDocument);
+    var clone = data.frag.cloneNode(),
+        i = 0,
+        elems = getElements(),
+        l = elems.length;
+    for(;i<l;i++){
+        clone.createElement(elems[i]);
+    }
+    return clone;
+  }
+
+  /**
+   * Shivs the `createElement` and `createDocumentFragment` methods of the document.
+   * @private
+   * @param {Document|DocumentFragment} ownerDocument The document.
+   * @param {Object} data of the document.
+   */
+  function shivMethods(ownerDocument, data) {
+    if (!data.cache) {
+        data.cache = {};
+        data.createElem = ownerDocument.createElement;
+        data.createFrag = ownerDocument.createDocumentFragment;
+        data.frag = data.createFrag();
+    }
+
+
+    ownerDocument.createElement = function(nodeName) {
+      //abort shiv
+      if (!html5.shivMethods) {
+          return data.createElem(nodeName);
+      }
+      return createElement(nodeName, ownerDocument, data);
+    };
+
+    ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
+      'var n=f.cloneNode(),c=n.createElement;' +
+      'h.shivMethods&&(' +
+        // unroll the `createElement` calls
+        getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
+          data.createElem(nodeName);
+          data.frag.createElement(nodeName);
+          return 'c("' + nodeName + '")';
+        }) +
+      ');return n}'
+    )(html5, data.frag);
+  }
+
+  /*--------------------------------------------------------------------------*/
+
+  /**
+   * Shivs the given document.
+   * @memberOf html5
+   * @param {Document} ownerDocument The document to shiv.
+   * @returns {Document} The shived document.
+   */
+  function shivDocument(ownerDocument) {
+    if (!ownerDocument) {
+        ownerDocument = document;
+    }
+    var data = getExpandoData(ownerDocument);
+
+    if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
+      data.hasCSS = !!addStyleSheet(ownerDocument,
+        // corrects block display not defined in IE6/7/8/9
+        'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
+        // adds styling not present in IE6/7/8/9
+        'mark{background:#FF0;color:#000}' +
+        // hides non-rendered elements
+        'template{display:none}'
+      );
+    }
+    if (!supportsUnknownElements) {
+      shivMethods(ownerDocument, data);
+    }
+    return ownerDocument;
+  }
+
+  /*--------------------------------------------------------------------------*/
+
+  /**
+   * The `html5` object is exposed so that more elements can be shived and
+   * existing shiving can be detected on iframes.
+   * @type Object
+   * @example
+   *
+   * // options can be changed before the script is included
+   * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
+   */
+  var html5 = {
+
+    /**
+     * An array or space separated string of node names of the elements to shiv.
+     * @memberOf html5
+     * @type Array|String
+     */
+    'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
+
+    /**
+     * current version of html5shiv
+     */
+    'version': version,
+
+    /**
+     * A flag to indicate that the HTML5 style sheet should be inserted.
+     * @memberOf html5
+     * @type Boolean
+     */
+    'shivCSS': (options.shivCSS !== false),
+
+    /**
+     * Is equal to true if a browser supports creating unknown/HTML5 elements
+     * @memberOf html5
+     * @type boolean
+     */
+    'supportsUnknownElements': supportsUnknownElements,
+
+    /**
+     * A flag to indicate that the document's `createElement` and `createDocumentFragment`
+     * methods should be overwritten.
+     * @memberOf html5
+     * @type Boolean
+     */
+    'shivMethods': (options.shivMethods !== false),
+
+    /**
+     * A string to describe the type of `html5` object ("default" or "default print").
+     * @memberOf html5
+     * @type String
+     */
+    'type': 'default',
+
+    // shivs the document according to the specified `html5` object options
+    'shivDocument': shivDocument,
+
+    //creates a shived element
+    createElement: createElement,
+
+    //creates a shived documentFragment
+    createDocumentFragment: createDocumentFragment,
+
+    //extends list of elements
+    addElements: addElements
+  };
+
+  /*--------------------------------------------------------------------------*/
+
+  // expose html5
+  window.html5 = html5;
+
+  // shiv the document
+  shivDocument(document);
+
+  if(typeof module == 'object' && module.exports){
+    module.exports = html5;
+  }
+
+}(typeof window !== "undefined" ? window : this, document));
\ No newline at end of file
diff --git a/wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js b/wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js
new file mode 100644
index 000000000..80ff3fa8a
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/js/jquery.scrollTo.js
@@ -0,0 +1,209 @@
+/*!
+ * jQuery.scrollTo
+ * Copyright (c) 2007-2015 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
+ * Licensed under MIT
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
+ * @projectDescription Lightweight, cross-browser and highly customizable animated scrolling with jQuery
+ * @author Ariel Flesler
+ * @version 2.1.2
+ */
+;(function(factory) {
+	'use strict';
+	if (typeof define === 'function' && define.amd) {
+		// AMD
+		define( ['jquery'], factory );
+	} else if (typeof module !== 'undefined' && module.exports) {
+		// CommonJS
+		module.exports = factory( require( 'jquery' ) );
+	} else {
+		// Global
+		factory( jQuery );
+	}
+})(function($) {
+	'use strict';
+
+	var $scrollTo = $.scrollTo = function(target, duration, settings) {
+		return $( window ).scrollTo( target, duration, settings );
+	};
+
+	$scrollTo.defaults = {
+		axis:'xy',
+		duration: 0,
+		limit:true
+	};
+
+	function isWin(elem) {
+		return ! elem.nodeName ||
+			$.inArray( elem.nodeName.toLowerCase(), ['iframe','#document','html','body'] ) !== -1;
+	}
+
+	$.fn.scrollTo = function(target, duration, settings) {
+		if (typeof duration === 'object') {
+			settings = duration;
+			duration = 0;
+		}
+		if (typeof settings === 'function') {
+			settings = { onAfter:settings };
+		}
+		if (target === 'max') {
+			target = 9e9;
+		}
+
+		settings = $.extend( {}, $scrollTo.defaults, settings );
+		// Speed is still recognized for backwards compatibility
+		duration = duration || settings.duration;
+		// Make sure the settings are given right
+		var queue = settings.queue && settings.axis.length > 1;
+		if (queue) {
+			// Let's keep the overall duration
+			duration /= 2;
+		}
+		settings.offset = both( settings.offset );
+		settings.over = both( settings.over );
+
+		return this.each(function() {
+			// Null target yields nothing, just like jQuery does
+			if (target === null) { return; }
+
+			var win = isWin( this ),
+				elem = win ? this.contentWindow || window : this,
+				$elem = $( elem ),
+				targ = target,
+				attr = {},
+				toff;
+
+			switch (typeof targ) {
+				// A number will pass the regex
+				case 'number':
+				case 'string':
+					if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test( targ )) {
+						targ = both( targ );
+						// We are done
+						break;
+					}
+					// Relative/Absolute selector
+					targ = win ? $( targ ) : $( targ, elem );
+					/* falls through */
+				case 'object':
+					if (targ.length === 0) { return; }
+					// DOMElement / jQuery
+					if (targ.is || targ.style) {
+						// Get the real position of the target
+						toff = (targ = $( targ )).offset();
+					}
+			}
+
+			var offset = $.isFunction( settings.offset ) && settings.offset( elem, targ ) || settings.offset;
+
+			$.each(settings.axis.split( '' ), function(i, axis) {
+				var Pos	= axis === 'x' ? 'Left' : 'Top',
+					pos = Pos.toLowerCase(),
+					key = 'scroll' + Pos,
+					prev = $elem[key](),
+					max = $scrollTo.max( elem, axis );
+
+				if (toff) {// jQuery / DOMElement
+					attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos]);
+
+					// If it's a dom element, reduce the margin
+					if (settings.margin) {
+						attr[key] -= parseInt( targ.css( 'margin' + Pos ), 10 ) || 0;
+						attr[key] -= parseInt( targ.css( 'border' + Pos + 'Width' ), 10 ) || 0;
+					}
+
+					attr[key] += offset[pos] || 0;
+
+					if (settings.over[pos]) {
+						// Scroll to a fraction of its width/height
+						attr[key] += targ[axis === 'x'?'width':'height']() * settings.over[pos];
+					}
+				} else {
+					var val = targ[pos];
+					// Handle percentage values
+					attr[key] = val.slice && val.slice( -1 ) === '%' ?
+						parseFloat( val ) / 100 * max
+						: val;
+				}
+
+				// Number or 'number'
+				if (settings.limit && /^\d+$/.test( attr[key] )) {
+					// Check the limits
+					attr[key] = attr[key] <= 0 ? 0 : Math.min( attr[key], max );
+				}
+
+				// Don't waste time animating, if there's no need.
+				if ( ! i && settings.axis.length > 1) {
+					if (prev === attr[key]) {
+						// No animation needed
+						attr = {};
+					} else if (queue) {
+						// Intermediate animation
+						animate( settings.onAfterFirst );
+						// Don't animate this axis again in the next iteration.
+						attr = {};
+					}
+				}
+			});
+
+			animate( settings.onAfter );
+
+			function animate(callback) {
+				var opts = $.extend({}, settings, {
+					// The queue setting conflicts with animate()
+					// Force it to always be true
+					queue: true,
+					duration: duration,
+					complete: callback && function() {
+						callback.call( elem, targ, settings );
+					}
+				});
+				$elem.animate( attr, opts );
+			}
+		});
+	};
+
+	// Max scrolling position, works on quirks mode
+	// It only fails (not too badly) on IE, quirks mode.
+	$scrollTo.max = function(elem, axis) {
+		var Dim = axis === 'x' ? 'Width' : 'Height',
+			scroll = 'scroll' + Dim;
+
+		if ( ! isWin( elem )) {
+			return elem[scroll] - $( elem )[Dim.toLowerCase()](); }
+
+		var size = 'client' + Dim,
+			doc = elem.ownerDocument || elem.document,
+			html = doc.documentElement,
+			body = doc.body;
+
+		return Math.max( html[scroll], body[scroll] ) - Math.min( html[size], body[size] );
+	};
+
+	function both(val) {
+		return $.isFunction( val ) || $.isPlainObject( val ) ? val : { top:val, left:val };
+	}
+
+	// Add special hooks so that window scroll properties can be animated
+	$.Tween.propHooks.scrollLeft = $.Tween.propHooks.scrollTop = {
+		get: function(t) {
+			return $( t.elem )[t.prop]();
+		},
+		set: function(t) {
+			var curr = this.get( t );
+			// If interrupt is true and user scrolled, stop animating
+			if (t.options.interrupt && t._last && t._last !== curr) {
+				return $( t.elem ).stop();
+			}
+			var next = Math.round( t.now );
+			// Don't waste CPU
+			// Browsers don't render floating point scroll
+			if (curr !== next) {
+				$( t.elem )[t.prop](next);
+				t._last = this.get( t );
+			}
+		}
+	};
+
+	// AMD requirement
+	return $scrollTo;
+});
diff --git a/wp-content/themes/twentyseventeen/assets/js/navigation.js b/wp-content/themes/twentyseventeen/assets/js/navigation.js
new file mode 100644
index 000000000..f0fd65249
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/js/navigation.js
@@ -0,0 +1,109 @@
+/* global twentyseventeenScreenReaderText */
+/**
+ * Theme functions file.
+ *
+ * Contains handlers for navigation and widget area.
+ */
+
+(function( $ ) {
+	var masthead, menuToggle, siteNavContain, siteNavigation;
+
+	function initMainNavigation( container ) {
+
+		// Add dropdown toggle that displays child menu items.
+		var dropdownToggle = $( '<button />', { 'class': 'dropdown-toggle', 'aria-expanded': false })
+			.append( twentyseventeenScreenReaderText.icon )
+			.append( $( '<span />', { 'class': 'screen-reader-text', text: twentyseventeenScreenReaderText.expand }) );
+
+		container.find( '.menu-item-has-children > a, .page_item_has_children > a' ).after( dropdownToggle );
+
+		// Set the active submenu dropdown toggle button initial state.
+		container.find( '.current-menu-ancestor > button' )
+			.addClass( 'toggled-on' )
+			.attr( 'aria-expanded', 'true' )
+			.find( '.screen-reader-text' )
+			.text( twentyseventeenScreenReaderText.collapse );
+		// Set the active submenu initial state.
+		container.find( '.current-menu-ancestor > .sub-menu' ).addClass( 'toggled-on' );
+
+		container.find( '.dropdown-toggle' ).click( function( e ) {
+			var _this = $( this ),
+				screenReaderSpan = _this.find( '.screen-reader-text' );
+
+			e.preventDefault();
+			_this.toggleClass( 'toggled-on' );
+			_this.next( '.children, .sub-menu' ).toggleClass( 'toggled-on' );
+
+			_this.attr( 'aria-expanded', _this.attr( 'aria-expanded' ) === 'false' ? 'true' : 'false' );
+
+			screenReaderSpan.text( screenReaderSpan.text() === twentyseventeenScreenReaderText.expand ? twentyseventeenScreenReaderText.collapse : twentyseventeenScreenReaderText.expand );
+		});
+	}
+
+	initMainNavigation( $( '.main-navigation' ) );
+
+	masthead       = $( '#masthead' );
+	menuToggle     = masthead.find( '.menu-toggle' );
+	siteNavContain = masthead.find( '.main-navigation' );
+	siteNavigation = masthead.find( '.main-navigation > div > ul' );
+
+	// Enable menuToggle.
+	(function() {
+
+		// Return early if menuToggle is missing.
+		if ( ! menuToggle.length ) {
+			return;
+		}
+
+		// Add an initial value for the attribute.
+		menuToggle.attr( 'aria-expanded', 'false' );
+
+		menuToggle.on( 'click.twentyseventeen', function() {
+			siteNavContain.toggleClass( 'toggled-on' );
+
+			$( this ).attr( 'aria-expanded', siteNavContain.hasClass( 'toggled-on' ) );
+		});
+	})();
+
+	// Fix sub-menus for touch devices and better focus for hidden submenu items for accessibility.
+	(function() {
+		if ( ! siteNavigation.length || ! siteNavigation.children().length ) {
+			return;
+		}
+
+		// Toggle `focus` class to allow submenu access on tablets.
+		function toggleFocusClassTouchScreen() {
+			if ( 'none' === $( '.menu-toggle' ).css( 'display' ) ) {
+
+				$( document.body ).on( 'touchstart.twentyseventeen', function( e ) {
+					if ( ! $( e.target ).closest( '.main-navigation li' ).length ) {
+						$( '.main-navigation li' ).removeClass( 'focus' );
+					}
+				});
+
+				siteNavigation.find( '.menu-item-has-children > a, .page_item_has_children > a' )
+					.on( 'touchstart.twentyseventeen', function( e ) {
+						var el = $( this ).parent( 'li' );
+
+						if ( ! el.hasClass( 'focus' ) ) {
+							e.preventDefault();
+							el.toggleClass( 'focus' );
+							el.siblings( '.focus' ).removeClass( 'focus' );
+						}
+					});
+
+			} else {
+				siteNavigation.find( '.menu-item-has-children > a, .page_item_has_children > a' ).unbind( 'touchstart.twentyseventeen' );
+			}
+		}
+
+		if ( 'ontouchstart' in window ) {
+			$( window ).on( 'resize.twentyseventeen', toggleFocusClassTouchScreen );
+			toggleFocusClassTouchScreen();
+		}
+
+		siteNavigation.find( 'a' ).on( 'focus.twentyseventeen blur.twentyseventeen', function() {
+			$( this ).parents( '.menu-item, .page_item' ).toggleClass( 'focus' );
+		});
+	})();
+})( jQuery );
diff --git a/wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js b/wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js
new file mode 100644
index 000000000..a40ebacfc
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js
@@ -0,0 +1,31 @@
+/**
+ * File skip-link-focus-fix.js.
+ *
+ * Helps with accessibility for keyboard only users.
+ *
+ * Learn more: https://git.io/vWdr2
+ */
+(function() {
+	var isIe = /(trident|msie)/i.test( navigator.userAgent );
+
+	if ( isIe && document.getElementById && window.addEventListener ) {
+		window.addEventListener( 'hashchange', function() {
+			var id = location.hash.substring( 1 ),
+				element;
+
+			if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {
+				return;
+			}
+
+			element = document.getElementById( id );
+
+			if ( element ) {
+				if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {
+					element.tabIndex = -1;
+				}
+
+				element.focus();
+			}
+		}, false );
+	}
+})();
diff --git a/wp-content/themes/twentyseventeen/comments.php b/wp-content/themes/twentyseventeen/comments.php
new file mode 100644
index 000000000..de52e9004
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/comments.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * The template for displaying comments
+ *
+ * This is the template that displays the area of the page that contains both the current comments
+ * and the comment form.
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+/*
+ * If the current post is protected by a password and
+ * the visitor has not yet entered the password we will
+ * return early without loading the comments.
+ */
+if ( post_password_required() ) {
+	return;
+}
+?>
+
+<div id="comments" class="comments-area">
+
+	<?php
+	// You can start editing here -- including this comment!
+	if ( have_comments() ) : ?>
+		<h2 class="comments-title">
+			<?php
+				$comments_number = get_comments_number();
+				if ( '1' === $comments_number ) {
+					/* translators: %s: post title */
+					printf( _x( 'One Reply to &ldquo;%s&rdquo;', 'comments title', 'twentyseventeen' ), get_the_title() );
+				} else {
+					printf(
+						/* translators: 1: number of comments, 2: post title */
+						_nx(
+							'%1$s Reply to &ldquo;%2$s&rdquo;',
+							'%1$s Replies to &ldquo;%2$s&rdquo;',
+							$comments_number,
+							'comments title',
+							'twentyseventeen'
+						),
+						number_format_i18n( $comments_number ),
+						get_the_title()
+					);
+				}
+			?>
+		</h2>
+
+		<ol class="comment-list">
+			<?php
+				wp_list_comments( array(
+					'avatar_size' => 100,
+					'style'       => 'ol',
+					'short_ping'  => true,
+					'reply_text'  => twentyseventeen_get_svg( array( 'icon' => 'mail-reply' ) ) . __( 'Reply', 'twentyseventeen' ),
+				) );
+			?>
+		</ol>
+
+		<?php the_comments_pagination( array(
+			'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous', 'twentyseventeen' ) . '</span>',
+			'next_text' => '<span class="screen-reader-text">' . __( 'Next', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ),
+		) );
+
+	endif; // Check for have_comments().
+
+	// If comments are closed and there are comments, let's leave a little note, shall we?
+	if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) : ?>
+
+		<p class="no-comments"><?php _e( 'Comments are closed.', 'twentyseventeen' ); ?></p>
+	<?php
+	endif;
+
+	comment_form();
+	?>
+
+</div><!-- #comments -->
diff --git a/wp-content/themes/twentyseventeen/footer.php b/wp-content/themes/twentyseventeen/footer.php
new file mode 100644
index 000000000..dacc4185c
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/footer.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * The template for displaying the footer
+ *
+ * Contains the closing of the #content div and all content after.
+ *
+ * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+
+		</div><!-- #content -->
+
+		<footer id="colophon" class="site-footer" role="contentinfo">
+			<div class="wrap">
+				<?php
+				get_template_part( 'template-parts/footer/footer', 'widgets' );
+
+				if ( has_nav_menu( 'social' ) ) : ?>
+					<nav class="social-navigation" role="navigation" aria-label="<?php _e( 'Footer Social Links Menu', 'twentyseventeen' ); ?>">
+						<?php
+							wp_nav_menu( array(
+								'theme_location' => 'social',
+								'menu_class'     => 'social-links-menu',
+								'depth'          => 1,
+								'link_before'    => '<span class="screen-reader-text">',
+								'link_after'     => '</span>' . twentyseventeen_get_svg( array( 'icon' => 'chain' ) ),
+							) );
+						?>
+					</nav><!-- .social-navigation -->
+				<?php endif;
+
+				get_template_part( 'template-parts/footer/site', 'info' );
+				?>
+			</div><!-- .wrap -->
+		</footer><!-- #colophon -->
+	</div><!-- .site-content-contain -->
+</div><!-- #page -->
+<?php wp_footer(); ?>
+
+</body>
+</html>
diff --git a/wp-content/themes/twentyseventeen/front-page.php b/wp-content/themes/twentyseventeen/front-page.php
new file mode 100644
index 000000000..99860a0d0
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/front-page.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * The front page template file
+ *
+ * If the user has selected a static page for their homepage, this is what will
+ * appear.
+ * Learn more: https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+get_header(); ?>
+
+<div id="primary" class="content-area">
+	<main id="main" class="site-main" role="main">
+
+		<?php // Show the selected frontpage content.
+		if ( have_posts() ) :
+			while ( have_posts() ) : the_post();
+				get_template_part( 'template-parts/page/content', 'front-page' );
+			endwhile;
+		else : // I'm not sure it's possible to have no posts when this page is shown, but WTH.
+			get_template_part( 'template-parts/post/content', 'none' );
+		endif; ?>
+
+		<?php
+		// Get each of our panels and show the post data.
+		if ( 0 !== twentyseventeen_panel_count() || is_customize_preview() ) : // If we have pages to show.
+
+			/**
+			 * Filter number of front page sections in Twenty Seventeen.
+			 *
+			 * @since Twenty Seventeen 1.0
+			 *
+			 * @param $num_sections integer
+			 */
+			$num_sections = apply_filters( 'twentyseventeen_front_page_sections', 4 );
+			global $twentyseventeencounter;
+
+			// Create a setting and control for each of the sections available in the theme.
+			for ( $i = 1; $i < ( 1 + $num_sections ); $i++ ) {
+				$twentyseventeencounter = $i;
+				twentyseventeen_front_page_section( null, $i );
+			}
+
+	endif; // The if ( 0 !== twentyseventeen_panel_count() ) ends here. ?>
+
+	</main><!-- #main -->
+</div><!-- #primary -->
+
+<?php get_footer();
diff --git a/wp-content/themes/twentyseventeen/functions.php b/wp-content/themes/twentyseventeen/functions.php
new file mode 100644
index 000000000..30fdfccb9
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/functions.php
@@ -0,0 +1,527 @@
+<?php
+/**
+ * Twenty Seventeen functions and definitions
+ *
+ * @link https://developer.wordpress.org/themes/basics/theme-functions/
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ */
+
+/**
+ * Twenty Seventeen only works in WordPress 4.7 or later.
+ */
+if ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '<' ) ) {
+	require get_template_directory() . '/inc/back-compat.php';
+	return;
+}
+
+/**
+ * Sets up theme defaults and registers support for various WordPress features.
+ *
+ * Note that this function is hooked into the after_setup_theme hook, which
+ * runs before the init hook. The init hook is too late for some features, such
+ * as indicating support for post thumbnails.
+ */
+function twentyseventeen_setup() {
+	/*
+	 * Make theme available for translation.
+	 * Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-themes/twentyseventeen
+	 * If you're building a theme based on Twenty Seventeen, use a find and replace
+	 * to change 'twentyseventeen' to the name of your theme in all the template files.
+	 */
+	load_theme_textdomain( 'twentyseventeen' );
+
+	// Add default posts and comments RSS feed links to head.
+	add_theme_support( 'automatic-feed-links' );
+
+	/*
+	 * Let WordPress manage the document title.
+	 * By adding theme support, we declare that this theme does not use a
+	 * hard-coded <title> tag in the document head, and expect WordPress to
+	 * provide it for us.
+	 */
+	add_theme_support( 'title-tag' );
+
+	/*
+	 * Enable support for Post Thumbnails on posts and pages.
+	 *
+	 * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
+	 */
+	add_theme_support( 'post-thumbnails' );
+
+	add_image_size( 'twentyseventeen-featured-image', 2000, 1200, true );
+
+	add_image_size( 'twentyseventeen-thumbnail-avatar', 100, 100, true );
+
+	// This theme uses wp_nav_menu() in two locations.
+	register_nav_menus( array(
+		'top'    => __( 'Top Menu', 'twentyseventeen' ),
+		'social' => __( 'Social Links Menu', 'twentyseventeen' ),
+	) );
+
+	/*
+	 * Switch default core markup for search form, comment form, and comments
+	 * to output valid HTML5.
+	 */
+	add_theme_support( 'html5', array(
+		'comment-form',
+		'comment-list',
+		'gallery',
+		'caption',
+	) );
+
+	/*
+	 * Enable support for Post Formats.
+	 *
+	 * See: https://codex.wordpress.org/Post_Formats
+	 */
+	add_theme_support( 'post-formats', array(
+		'aside',
+		'image',
+		'video',
+		'quote',
+		'link',
+		'gallery',
+		'audio',
+	) );
+
+	// Add theme support for Custom Logo.
+	add_theme_support( 'custom-logo', array(
+		'width'       => 250,
+		'height'      => 250,
+		'flex-width'  => true,
+	) );
+
+	// Add theme support for selective refresh for widgets.
+	add_theme_support( 'customize-selective-refresh-widgets' );
+
+	/*
+	 * This theme styles the visual editor to resemble the theme style,
+	 * specifically font, colors, and column width.
+ 	 */
+	add_editor_style( array( 'assets/css/editor-style.css', twentyseventeen_fonts_url() ) );
+
+	add_theme_support( 'starter-content', array(
+		'widgets' => array(
+			'sidebar-1' => array(
+				'text_business_info',
+				'search',
+				'text_about',
+			),
+
+			'sidebar-2' => array(
+				'text_business_info',
+			),
+
+			'sidebar-3' => array(
+				'text_about',
+				'search',
+			),
+		),
+
+		'posts' => array(
+			'home',
+			'about' => array(
+				'thumbnail' => '{{image-sandwich}}',
+			),
+			'contact' => array(
+				'thumbnail' => '{{image-espresso}}',
+			),
+			'blog' => array(
+				'thumbnail' => '{{image-coffee}}',
+			),
+			'homepage-section' => array(
+				'thumbnail' => '{{image-espresso}}',
+			),
+		),
+
+		'attachments' => array(
+			'image-espresso' => array(
+				'post_title' => _x( 'Espresso', 'Theme starter content', 'twentyseventeen' ),
+				'file' => 'assets/images/espresso.jpg',
+			),
+			'image-sandwich' => array(
+				'post_title' => _x( 'Sandwich', 'Theme starter content', 'twentyseventeen' ),
+				'file' => 'assets/images/sandwich.jpg',
+			),
+			'image-coffee' => array(
+				'post_title' => _x( 'Coffee', 'Theme starter content', 'twentyseventeen' ),
+				'file' => 'assets/images/coffee.jpg',
+			),
+		),
+
+		'options' => array(
+			'show_on_front' => 'page',
+			'page_on_front' => '{{home}}',
+			'page_for_posts' => '{{blog}}',
+		),
+
+		'theme_mods' => array(
+			'panel_1' => '{{homepage-section}}',
+			'panel_2' => '{{about}}',
+			'panel_3' => '{{blog}}',
+			'panel_4' => '{{contact}}',
+		),
+
+		'nav_menus' => array(
+			'top' => array(
+				'name' => __( 'Top Menu', 'twentyseventeen' ),
+				'items' => array(
+					'page_home',
+					'page_about',
+					'page_blog',
+					'page_contact',
+				),
+			),
+			'social' => array(
+				'name' => __( 'Social Links Menu', 'twentyseventeen' ),
+				'items' => array(
+					'link_yelp',
+					'link_facebook',
+					'link_twitter',
+					'link_instagram',
+					'link_email',
+				),
+			),
+		),
+	) );
+}
+add_action( 'after_setup_theme', 'twentyseventeen_setup' );
+
+/**
+ * Set the content width in pixels, based on the theme's design and stylesheet.
+ *
+ * Priority 0 to make it available to lower priority callbacks.
+ *
+ * @global int $content_width
+ */
+function twentyseventeen_content_width() {
+
+	$content_width = 700;
+
+	if ( twentyseventeen_is_frontpage() ) {
+		$content_width = 1120;
+	}
+
+	/**
+	 * Filter Twenty Seventeen content width of the theme.
+	 *
+	 * @since Twenty Seventeen 1.0
+	 *
+	 * @param $content_width integer
+	 */
+	$GLOBALS['content_width'] = apply_filters( 'twentyseventeen_content_width', $content_width );
+}
+add_action( 'after_setup_theme', 'twentyseventeen_content_width', 0 );
+
+/**
+ * Register custom fonts.
+ */
+function twentyseventeen_fonts_url() {
+	$fonts_url = '';
+
+	/**
+	 * Translators: If there are characters in your language that are not
+	 * supported by Libre Franklin, translate this to 'off'. Do not translate
+	 * into your own language.
+	 */
+	$libre_franklin = _x( 'on', 'Libre Franklin font: on or off', 'twentyseventeen' );
+
+	if ( 'off' !== $libre_franklin ) {
+		$font_families = array();
+
+		$font_families[] = 'Libre Franklin:300,300i,400,400i,600,600i,800,800i';
+
+		$query_args = array(
+			'family' => urlencode( implode( '|', $font_families ) ),
+			'subset' => urlencode( 'latin,latin-ext' ),
+		);
+
+		$fonts_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );
+	}
+
+	return esc_url_raw( $fonts_url );
+}
+
+/**
+ * Add preconnect for Google Fonts.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @param array  $urls           URLs to print for resource hints.
+ * @param string $relation_type  The relation type the URLs are printed.
+ * @return array $urls           URLs to print for resource hints.
+ */
+function twentyseventeen_resource_hints( $urls, $relation_type ) {
+	if ( wp_style_is( 'twentyseventeen-fonts', 'queue' ) && 'preconnect' === $relation_type ) {
+		$urls[] = array(
+			'href' => 'https://fonts.gstatic.com',
+			'crossorigin',
+		);
+	}
+
+	return $urls;
+}
+add_filter( 'wp_resource_hints', 'twentyseventeen_resource_hints', 10, 2 );
+
+/**
+ * Register widget area.
+ *
+ * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
+ */
+function twentyseventeen_widgets_init() {
+	register_sidebar( array(
+		'name'          => __( 'Sidebar', 'twentyseventeen' ),
+		'id'            => 'sidebar-1',
+		'description'   => __( 'Add widgets here to appear in your sidebar.', 'twentyseventeen' ),
+		'before_widget' => '<section id="%1$s" class="widget %2$s">',
+		'after_widget'  => '</section>',
+		'before_title'  => '<h2 class="widget-title">',
+		'after_title'   => '</h2>',
+	) );
+
+	register_sidebar( array(
+		'name'          => __( 'Footer 1', 'twentyseventeen' ),
+		'id'            => 'sidebar-2',
+		'description'   => __( 'Add widgets here to appear in your footer.', 'twentyseventeen' ),
+		'before_widget' => '<section id="%1$s" class="widget %2$s">',
+		'after_widget'  => '</section>',
+		'before_title'  => '<h2 class="widget-title">',
+		'after_title'   => '</h2>',
+	) );
+
+	register_sidebar( array(
+		'name'          => __( 'Footer 2', 'twentyseventeen' ),
+		'id'            => 'sidebar-3',
+		'description'   => __( 'Add widgets here to appear in your footer.', 'twentyseventeen' ),
+		'before_widget' => '<section id="%1$s" class="widget %2$s">',
+		'after_widget'  => '</section>',
+		'before_title'  => '<h2 class="widget-title">',
+		'after_title'   => '</h2>',
+	) );
+}
+add_action( 'widgets_init', 'twentyseventeen_widgets_init' );
+
+/**
+ * Replaces "[...]" (appended to automatically generated excerpts) with ... and
+ * a 'Continue reading' link.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @return string 'Continue reading' link prepended with an ellipsis.
+ */
+function twentyseventeen_excerpt_more( $link ) {
+	if ( is_admin() ) {
+		return $link;
+	}
+
+	$link = sprintf( '<p class="link-more"><a href="%1$s" class="more-link">%2$s</a></p>',
+		esc_url( get_permalink( get_the_ID() ) ),
+		/* translators: %s: Name of current post */
+		sprintf( __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ), get_the_title( get_the_ID() ) )
+	);
+	return ' &hellip; ' . $link;
+}
+add_filter( 'excerpt_more', 'twentyseventeen_excerpt_more' );
+
+/**
+ * Handles JavaScript detection.
+ *
+ * Adds a `js` class to the root `<html>` element when JavaScript is detected.
+ *
+ * @since Twenty Seventeen 1.0
+ */
+function twentyseventeen_javascript_detection() {
+	echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n";
+}
+add_action( 'wp_head', 'twentyseventeen_javascript_detection', 0 );
+
+/**
+ * Add a pingback url auto-discovery header for singularly identifiable articles.
+ */
+function twentyseventeen_pingback_header() {
+	if ( is_singular() && pings_open() ) {
+		printf( '<link rel="pingback" href="%s">' . "\n", get_bloginfo( 'pingback_url' ) );
+	}
+}
+add_action( 'wp_head', 'twentyseventeen_pingback_header' );
+
+/**
+ * Display custom color CSS.
+ */
+function twentyseventeen_colors_css_wrap() {
+	if ( 'custom' !== get_theme_mod( 'colorscheme' ) && ! is_customize_preview() ) {
+		return;
+	}
+
+	require_once( get_parent_theme_file_path( '/inc/color-patterns.php' ) );
+	$hue = absint( get_theme_mod( 'colorscheme_hue', 250 ) );
+?>
+	<style type="text/css" id="custom-theme-colors" <?php if ( is_customize_preview() ) { echo 'data-hue="' . $hue . '"'; } ?>>
+		<?php echo twentyseventeen_custom_colors_css(); ?>
+	</style>
+<?php }
+add_action( 'wp_head', 'twentyseventeen_colors_css_wrap' );
+
+/**
+ * Enqueue scripts and styles.
+ */
+function twentyseventeen_scripts() {
+	// Add custom fonts, used in the main stylesheet.
+	wp_enqueue_style( 'twentyseventeen-fonts', twentyseventeen_fonts_url(), array(), null );
+
+	// Theme stylesheet.
+	wp_enqueue_style( 'twentyseventeen-style', get_stylesheet_uri() );
+
+	// Load the dark colorscheme.
+	if ( 'dark' === get_theme_mod( 'colorscheme', 'light' ) || is_customize_preview() ) {
+		wp_enqueue_style( 'twentyseventeen-colors-dark', get_theme_file_uri( '/assets/css/colors-dark.css' ), array( 'twentyseventeen-style' ), '1.0' );
+	}
+
+	// Load the Internet Explorer 9 specific stylesheet, to fix display issues in the Customizer.
+	if ( is_customize_preview() ) {
+		wp_enqueue_style( 'twentyseventeen-ie9', get_theme_file_uri( '/assets/css/ie9.css' ), array( 'twentyseventeen-style' ), '1.0' );
+		wp_style_add_data( 'twentyseventeen-ie9', 'conditional', 'IE 9' );
+	}
+
+	// Load the Internet Explorer 8 specific stylesheet.
+	wp_enqueue_style( 'twentyseventeen-ie8', get_theme_file_uri( '/assets/css/ie8.css' ), array( 'twentyseventeen-style' ), '1.0' );
+	wp_style_add_data( 'twentyseventeen-ie8', 'conditional', 'lt IE 9' );
+
+	// Load the html5 shiv.
+	wp_enqueue_script( 'html5', get_theme_file_uri( '/assets/js/html5.js' ), array(), '3.7.3' );
+	wp_script_add_data( 'html5', 'conditional', 'lt IE 9' );
+
+	wp_enqueue_script( 'twentyseventeen-skip-link-focus-fix', get_theme_file_uri( '/assets/js/skip-link-focus-fix.js' ), array(), '1.0', true );
+
+	$twentyseventeen_l10n = array(
+		'quote'          => twentyseventeen_get_svg( array( 'icon' => 'quote-right' ) ),
+	);
+
+	if ( has_nav_menu( 'top' ) ) {
+		wp_enqueue_script( 'twentyseventeen-navigation', get_theme_file_uri( '/assets/js/navigation.js' ), array(), '1.0', true );
+		$twentyseventeen_l10n['expand']         = __( 'Expand child menu', 'twentyseventeen' );
+		$twentyseventeen_l10n['collapse']       = __( 'Collapse child menu', 'twentyseventeen' );
+		$twentyseventeen_l10n['icon']           = twentyseventeen_get_svg( array( 'icon' => 'angle-down', 'fallback' => true ) );
+	}
+
+	wp_enqueue_script( 'twentyseventeen-global', get_theme_file_uri( '/assets/js/global.js' ), array( 'jquery' ), '1.0', true );
+
+	wp_enqueue_script( 'jquery-scrollto', get_theme_file_uri( '/assets/js/jquery.scrollTo.js' ), array( 'jquery' ), '2.1.2', true );
+
+	wp_localize_script( 'twentyseventeen-skip-link-focus-fix', 'twentyseventeenScreenReaderText', $twentyseventeen_l10n );
+
+	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
+		wp_enqueue_script( 'comment-reply' );
+	}
+}
+add_action( 'wp_enqueue_scripts', 'twentyseventeen_scripts' );
+
+/**
+ * Add custom image sizes attribute to enhance responsive image functionality
+ * for content images.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @param string $sizes A source size value for use in a 'sizes' attribute.
+ * @param array  $size  Image size. Accepts an array of width and height
+ *                      values in pixels (in that order).
+ * @return string A source size value for use in a content image 'sizes' attribute.
+ */
+function twentyseventeen_content_image_sizes_attr( $sizes, $size ) {
+	$width = $size[0];
+
+	if ( 740 <= $width ) {
+		$sizes = '(max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px';
+	}
+
+	if ( is_active_sidebar( 'sidebar-1' ) || is_archive() || is_search() || is_home() || is_page() ) {
+		if ( ! ( is_page() && 'one-column' === get_theme_mod( 'page_options' ) ) && 767 <= $width ) {
+			 $sizes = '(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px';
+		}
+	}
+
+	return $sizes;
+}
+add_filter( 'wp_calculate_image_sizes', 'twentyseventeen_content_image_sizes_attr', 10, 2 );
+
+/**
+ * Filter the `sizes` value in the header image markup.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @param string $html   The HTML image tag markup being filtered.
+ * @param object $header The custom header object returned by 'get_custom_header()'.
+ * @param array  $attr   Array of the attributes for the image tag.
+ * @return string The filtered header image HTML.
+ */
+function twentyseventeen_header_image_tag( $html, $header, $attr ) {
+	if ( isset( $attr['sizes'] ) ) {
+		$html = str_replace( $attr['sizes'], '100vw', $html );
+	}
+	return $html;
+}
+add_filter( 'get_header_image_tag', 'twentyseventeen_header_image_tag', 10, 3 );
+
+/**
+ * Add custom image sizes attribute to enhance responsive image functionality
+ * for post thumbnails.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @param array $attr       Attributes for the image markup.
+ * @param int   $attachment Image attachment ID.
+ * @param array $size       Registered image size or flat array of height and width dimensions.
+ * @return string A source size value for use in a post thumbnail 'sizes' attribute.
+ */
+function twentyseventeen_post_thumbnail_sizes_attr( $attr, $attachment, $size ) {
+	if ( is_archive() || is_search() || is_home() ) {
+		$attr['sizes'] = '(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px';
+	} else {
+		$attr['sizes'] = '100vw';
+	}
+
+	return $attr;
+}
+add_filter( 'wp_get_attachment_image_attributes', 'twentyseventeen_post_thumbnail_sizes_attr', 10, 3 );
+
+/**
+ * Use front-page.php when Front page displays is set to a static page.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @param string $template front-page.php.
+ *
+ * @return string The template to be used: blank if is_home() is true (defaults to index.php), else $template.
+ */
+function twentyseventeen_front_page_template( $template ) {
+	return is_home() ? '' : $template;
+}
+add_filter( 'frontpage_template',  'twentyseventeen_front_page_template' );
+
+/**
+ * Implement the Custom Header feature.
+ */
+require get_parent_theme_file_path( '/inc/custom-header.php' );
+
+/**
+ * Custom template tags for this theme.
+ */
+require get_parent_theme_file_path( '/inc/template-tags.php' );
+
+/**
+ * Additional features to allow styling of the templates.
+ */
+require get_parent_theme_file_path( '/inc/template-functions.php' );
+
+/**
+ * Customizer additions.
+ */
+require get_parent_theme_file_path( '/inc/customizer.php' );
+
+/**
+ * SVG icons functions and filters.
+ */
+require get_parent_theme_file_path( '/inc/icon-functions.php' );
diff --git a/wp-content/themes/twentyseventeen/header.php b/wp-content/themes/twentyseventeen/header.php
new file mode 100644
index 000000000..30d7d2a7c
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/header.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * The header for our theme
+ *
+ * This is the template that displays all of the <head> section and everything up until <div id="content">
+ *
+ * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?><!DOCTYPE html>
+<html <?php language_attributes(); ?> class="no-js no-svg">
+<head>
+<meta charset="<?php bloginfo( 'charset' ); ?>">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<link rel="profile" href="http://gmpg.org/xfn/11">
+
+<?php wp_head(); ?>
+</head>
+
+<body <?php body_class(); ?>>
+<div id="page" class="site">
+	<a class="skip-link screen-reader-text" href="#content"><?php _e( 'Skip to content', 'twentyseventeen' ); ?></a>
+
+	<header id="masthead" class="site-header" role="banner">
+
+		<?php get_template_part( 'template-parts/header/header', 'image' ); ?>
+
+		<?php if ( has_nav_menu( 'top' ) ) : ?>
+			<div class="navigation-top">
+				<div class="wrap">
+					<?php get_template_part( 'template-parts/navigation/navigation', 'top' ); ?>
+				</div><!-- .wrap -->
+			</div><!-- .navigation-top -->
+		<?php endif; ?>
+
+	</header><!-- #masthead -->
+
+	<?php
+	// If a regular post or page, and not the front page, show the featured image.
+	if ( has_post_thumbnail() && ( is_single() || ( is_page() && ! twentyseventeen_is_frontpage() ) ) ) :
+		echo '<div class="single-featured-image-header">';
+		the_post_thumbnail( 'twentyseventeen-featured-image' );
+		echo '</div><!-- .single-featured-image-header -->';
+	endif;
+	?>
+
+	<div class="site-content-contain">
+		<div id="content" class="site-content">
diff --git a/wp-content/themes/twentyseventeen/inc/back-compat.php b/wp-content/themes/twentyseventeen/inc/back-compat.php
new file mode 100644
index 000000000..4772f5621
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/inc/back-compat.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Twenty Seventeen back compat functionality
+ *
+ * Prevents Twenty Seventeen from running on WordPress versions prior to 4.7,
+ * since this theme is not meant to be backward compatible beyond that and
+ * relies on many newer functions and markup changes introduced in 4.7.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since Twenty Seventeen 1.0
+ */
+
+/**
+ * Prevent switching to Twenty Seventeen on old versions of WordPress.
+ *
+ * Switches to the default theme.
+ *
+ * @since Twenty Seventeen 1.0
+ */
+function twentyseventeen_switch_theme() {
+	switch_theme( WP_DEFAULT_THEME );
+	unset( $_GET['activated'] );
+	add_action( 'admin_notices', 'twentyseventeen_upgrade_notice' );
+}
+add_action( 'after_switch_theme', 'twentyseventeen_switch_theme' );
+
+/**
+ * Adds a message for unsuccessful theme switch.
+ *
+ * Prints an update nag after an unsuccessful attempt to switch to
+ * Twenty Seventeen on WordPress versions prior to 4.7.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @global string $wp_version WordPress version.
+ */
+function twentyseventeen_upgrade_notice() {
+	$message = sprintf( __( 'Twenty Seventeen requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'twentyseventeen' ), $GLOBALS['wp_version'] );
+	printf( '<div class="error"><p>%s</p></div>', $message );
+}
+
+/**
+ * Prevents the Customizer from being loaded on WordPress versions prior to 4.7.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @global string $wp_version WordPress version.
+ */
+function twentyseventeen_customize() {
+	wp_die( sprintf( __( 'Twenty Seventeen requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'twentyseventeen' ), $GLOBALS['wp_version'] ), '', array(
+		'back_link' => true,
+	) );
+}
+add_action( 'load-customize.php', 'twentyseventeen_customize' );
+
+/**
+ * Prevents the Theme Preview from being loaded on WordPress versions prior to 4.7.
+ *
+ * @since Twenty Seventeen 1.0
+ *
+ * @global string $wp_version WordPress version.
+ */
+function twentyseventeen_preview() {
+	if ( isset( $_GET['preview'] ) ) {
+		wp_die( sprintf( __( 'Twenty Seventeen requires at least WordPress version 4.7. You are running version %s. Please upgrade and try again.', 'twentyseventeen' ), $GLOBALS['wp_version'] ) );
+	}
+}
+add_action( 'template_redirect', 'twentyseventeen_preview' );
diff --git a/wp-content/themes/twentyseventeen/inc/color-patterns.php b/wp-content/themes/twentyseventeen/inc/color-patterns.php
new file mode 100644
index 000000000..bd261ef73
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/inc/color-patterns.php
@@ -0,0 +1,574 @@
+<?php
+/**
+ * Twenty Seventeen: Color Patterns
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ */
+
+/**
+ * Generate the CSS for the current custom color scheme.
+ */
+function twentyseventeen_custom_colors_css() {
+	$hue = absint( get_theme_mod( 'colorscheme_hue', 250 ) );
+
+	/**
+	 * Filter Twenty Seventeen default saturation level.
+	 *
+	 * @since Twenty Seventeen 1.0
+	 *
+	 * @param $saturation integer
+	 */
+	$saturation = absint( apply_filters( 'twentyseventeen_custom_colors_saturation', 50 ) );
+	$reduced_saturation = ( .8 * $saturation ) . '%';
+	$saturation = $saturation . '%';
+	$css = '
+/**
+ * Twenty Seventeen: Color Patterns
+ *
+ * Colors are ordered from dark to light.
+ */
+
+.colors-custom a:hover,
+.colors-custom a:active,
+.colors-custom .entry-content a:focus,
+.colors-custom .entry-content a:hover,
+.colors-custom .entry-summary a:focus,
+.colors-custom .entry-summary a:hover,
+.colors-custom .widget a:focus,
+.colors-custom .widget a:hover,
+.colors-custom .site-footer .widget-area a:focus,
+.colors-custom .site-footer .widget-area a:hover,
+.colors-custom .posts-navigation a:focus,
+.colors-custom .posts-navigation a:hover,
+.colors-custom .comment-metadata a:focus,
+.colors-custom .comment-metadata a:hover,
+.colors-custom .comment-metadata a.comment-edit-link:focus,
+.colors-custom .comment-metadata a.comment-edit-link:hover,
+.colors-custom .comment-reply-link:focus,
+.colors-custom .comment-reply-link:hover,
+.colors-custom .widget_authors a:focus strong,
+.colors-custom .widget_authors a:hover strong,
+.colors-custom .entry-title a:focus,
+.colors-custom .entry-title a:hover,
+.colors-custom .entry-meta a:focus,
+.colors-custom .entry-meta a:hover,
+.colors-custom.blog .entry-meta a.post-edit-link:focus,
+.colors-custom.blog .entry-meta a.post-edit-link:hover,
+.colors-custom.archive .entry-meta a.post-edit-link:focus,
+.colors-custom.archive .entry-meta a.post-edit-link:hover,
+.colors-custom.search .entry-meta a.post-edit-link:focus,
+.colors-custom.search .entry-meta a.post-edit-link:hover,
+.colors-custom .page-links a:focus .page-number,
+.colors-custom .page-links a:hover .page-number,
+.colors-custom .entry-footer a:focus,
+.colors-custom .entry-footer a:hover,
+.colors-custom .entry-footer .cat-links a:focus,
+.colors-custom .entry-footer .cat-links a:hover,
+.colors-custom .entry-footer .tags-links a:focus,
+.colors-custom .entry-footer .tags-links a:hover,
+.colors-custom .post-navigation a:focus,
+.colors-custom .post-navigation a:hover,
+.colors-custom .pagination a:not(.prev):not(.next):focus,
+.colors-custom .pagination a:not(.prev):not(.next):hover,
+.colors-custom .comments-pagination a:not(.prev):not(.next):focus,
+.colors-custom .comments-pagination a:not(.prev):not(.next):hover,
+.colors-custom .logged-in-as a:focus,
+.colors-custom .logged-in-as a:hover,
+.colors-custom a:focus .nav-title,
+.colors-custom a:hover .nav-title,
+.colors-custom .edit-link a:focus,
+.colors-custom .edit-link a:hover,
+.colors-custom .site-info a:focus,
+.colors-custom .site-info a:hover,
+.colors-custom .widget .widget-title a:focus,
+.colors-custom .widget .widget-title a:hover,
+.colors-custom .widget ul li a:focus,
+.colors-custom .widget ul li a:hover {
+	color: hsl( ' . $hue . ', ' . $saturation . ', 0% ); /* base: #000; */
+}
+
+.colors-custom .entry-content a,
+.colors-custom .entry-summary a,
+.colors-custom .widget a,
+.colors-custom .site-footer .widget-area a,
+.colors-custom .posts-navigation a,
+.colors-custom .widget_authors a strong {
+	-webkit-box-shadow: inset 0 -1px 0 hsl( ' . $hue . ', ' . $saturation  . ', 6% ); /* base: rgba(15, 15, 15, 1); */
+	box-shadow: inset 0 -1px 0 hsl( ' . $hue . ', ' . $saturation . ', 6% ); /* base: rgba(15, 15, 15, 1); */
+}
+
+.colors-custom button,
+.colors-custom input[type="button"],
+.colors-custom input[type="submit"],
+.colors-custom .entry-footer .edit-link a.post-edit-link {
+	background-color: hsl( ' . $hue . ', ' . $saturation . ', 13% ); /* base: #222; */
+}
+
+.colors-custom input[type="text"]:focus,
+.colors-custom input[type="email"]:focus,
+.colors-custom input[type="url"]:focus,
+.colors-custom input[type="password"]:focus,
+.colors-custom input[type="search"]:focus,
+.colors-custom input[type="number"]:focus,
+.colors-custom input[type="tel"]:focus,
+.colors-custom input[type="range"]:focus,
+.colors-custom input[type="date"]:focus,
+.colors-custom input[type="month"]:focus,
+.colors-custom input[type="week"]:focus,
+.colors-custom input[type="time"]:focus,
+.colors-custom input[type="datetime"]:focus,
+.colors-custom .colors-custom input[type="datetime-local"]:focus,
+.colors-custom input[type="color"]:focus,
+.colors-custom textarea:focus,
+.colors-custom button.secondary,
+.colors-custom input[type="reset"],
+.colors-custom input[type="button"].secondary,
+.colors-custom input[type="reset"].secondary,
+.colors-custom input[type="submit"].secondary,
+.colors-custom a,
+.colors-custom .site-title,
+.colors-custom .site-title a,
+.colors-custom .navigation-top a,
+.colors-custom .dropdown-toggle,
+.colors-custom .menu-toggle,
+.colors-custom .page .panel-content .entry-title,
+.colors-custom .page-title,
+.colors-custom.page:not(.twentyseventeen-front-page) .entry-title,
+.colors-custom .page-links a .page-number,
+.colors-custom .comment-metadata a.comment-edit-link,
+.colors-custom .comment-reply-link .icon,
+.colors-custom h2.widget-title,
+.colors-custom mark,
+.colors-custom .post-navigation a:focus .icon,
+.colors-custom .post-navigation a:hover .icon,
+.colors-custom .site-content .site-content-light,
+.colors-custom .twentyseventeen-panel .recent-posts .entry-header .edit-link {
+	color: hsl( ' . $hue . ', ' . $saturation . ', 13% ); /* base: #222; */
+}
+
+.colors-custom .entry-content a:focus,
+.colors-custom .entry-content a:hover,
+.colors-custom .entry-summary a:focus,
+.colors-custom .entry-summary a:hover,
+.colors-custom .widget a:focus,
+.colors-custom .widget a:hover,
+.colors-custom .site-footer .widget-area a:focus,
+.colors-custom .site-footer .widget-area a:hover,
+.colors-custom .posts-navigation a:focus,
+.colors-custom .posts-navigation a:hover,
+.colors-custom .comment-metadata a:focus,
+.colors-custom .comment-metadata a:hover,
+.colors-custom .comment-metadata a.comment-edit-link:focus,
+.colors-custom .comment-metadata a.comment-edit-link:hover,
+.colors-custom .comment-reply-link:focus,
+.colors-custom .comment-reply-link:hover,
+.colors-custom .widget_authors a:focus strong,
+.colors-custom .widget_authors a:hover strong,
+.colors-custom .entry-title a:focus,
+.colors-custom .entry-title a:hover,
+.colors-custom .entry-meta a:focus,
+.colors-custom .entry-meta a:hover,
+.colors-custom.blog .entry-meta a.post-edit-link:focus,
+.colors-custom.blog .entry-meta a.post-edit-link:hover,
+.colors-custom.archive .entry-meta a.post-edit-link:focus,
+.colors-custom.archive .entry-meta a.post-edit-link:hover,
+.colors-custom.search .entry-meta a.post-edit-link:focus,
+.colors-custom.search .entry-meta a.post-edit-link:hover,
+.colors-custom .page-links a:focus .page-number,
+.colors-custom .page-links a:hover .page-number,
+.colors-custom .entry-footer .cat-links a:focus,
+.colors-custom .entry-footer .cat-links a:hover,
+.colors-custom .entry-footer .tags-links a:focus,
+.colors-custom .entry-footer .tags-links a:hover,
+.colors-custom .post-navigation a:focus,
+.colors-custom .post-navigation a:hover,
+.colors-custom .pagination a:not(.prev):not(.next):focus,
+.colors-custom .pagination a:not(.prev):not(.next):hover,
+.colors-custom .comments-pagination a:not(.prev):not(.next):focus,
+.colors-custom .comments-pagination a:not(.prev):not(.next):hover,
+.colors-custom .logged-in-as a:focus,
+.colors-custom .logged-in-as a:hover,
+.colors-custom a:focus .nav-title,
+.colors-custom a:hover .nav-title,
+.colors-custom .edit-link a:focus,
+.colors-custom .edit-link a:hover,
+.colors-custom .site-info a:focus,
+.colors-custom .site-info a:hover,
+.colors-custom .widget .widget-title a:focus,
+.colors-custom .widget .widget-title a:hover,
+.colors-custom .widget ul li a:focus,
+.colors-custom .widget ul li a:hover {
+	-webkit-box-shadow: inset 0 0 0 hsl( ' . $hue . ', ' . $saturation . ', 13% ), 0 3px 0 hsl( ' . $hue . ', ' . $saturation . ', 13% );
+	box-shadow: inset 0 0 0 hsl( ' . $hue . ', ' . $saturation. ' , 13% ), 0 3px 0 hsl( ' . $hue . ', ' . $saturation . ', 13% );
+}
+
+body.colors-custom,
+.colors-custom button,
+.colors-custom input,
+.colors-custom select,
+.colors-custom textarea,
+.colors-custom h3,
+.colors-custom h4,
+.colors-custom h6,
+.colors-custom label,
+.colors-custom .entry-title a,
+.colors-custom.twentyseventeen-front-page .panel-content .recent-posts article,
+.colors-custom .entry-footer .cat-links a,
+.colors-custom .entry-footer .tags-links a,
+.colors-custom .format-quote blockquote,
+.colors-custom .nav-title,
+.colors-custom .comment-body,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-current-item .wp-playlist-item-album {
+	color: hsl( ' . $hue . ', ' . $reduced_saturation . ', 20% ); /* base: #333; */
+}
+
+.colors-custom .social-navigation a:hover,
+.colors-custom .social-navigation a:focus {
+	background: hsl( ' . $hue . ', ' . $reduced_saturation . ', 20% ); /* base: #333; */
+}
+
+.colors-custom input[type="text"]:focus,
+.colors-custom input[type="email"]:focus,
+.colors-custom input[type="url"]:focus,
+.colors-custom input[type="password"]:focus,
+.colors-custom input[type="search"]:focus,
+.colors-custom input[type="number"]:focus,
+.colors-custom input[type="tel"]:focus,
+.colors-custom input[type="range"]:focus,
+.colors-custom input[type="date"]:focus,
+.colors-custom input[type="month"]:focus,
+.colors-custom input[type="week"]:focus,
+.colors-custom input[type="time"]:focus,
+.colors-custom input[type="datetime"]:focus,
+.colors-custom input[type="datetime-local"]:focus,
+.colors-custom input[type="color"]:focus,
+.colors-custom textarea:focus,
+.bypostauthor > .comment-body > .comment-meta > .comment-author .avatar {
+	border-color: hsl( ' . $hue . ', ' . $reduced_saturation . ', 20% ); /* base: #333; */
+}
+
+.colors-custom h2,
+.colors-custom blockquote,
+.colors-custom input[type="text"],
+.colors-custom input[type="email"],
+.colors-custom input[type="url"],
+.colors-custom input[type="password"],
+.colors-custom input[type="search"],
+.colors-custom input[type="number"],
+.colors-custom input[type="tel"],
+.colors-custom input[type="range"],
+.colors-custom input[type="date"],
+.colors-custom input[type="month"],
+.colors-custom input[type="week"],
+.colors-custom input[type="time"],
+.colors-custom input[type="datetime"],
+.colors-custom input[type="datetime-local"],
+.colors-custom input[type="color"],
+.colors-custom textarea,
+.colors-custom .site-description,
+.colors-custom .entry-content blockquote.alignleft,
+.colors-custom .entry-content blockquote.alignright,
+.colors-custom .colors-custom .taxonomy-description,
+.colors-custom .site-info a,
+.colors-custom .wp-caption,
+.colors-custom .gallery-caption {
+	color: hsl( ' . $hue . ', ' . $saturation . ', 40% ); /* base: #666; */
+}
+
+.colors-custom abbr,
+.colors-custom acronym {
+	border-bottom-color: hsl( ' . $hue . ', ' . $saturation . ', 40% ); /* base: #666; */
+}
+
+.colors-custom h5,
+.colors-custom .entry-meta,
+.colors-custom .entry-meta a,
+.colors-custom.blog .entry-meta a.post-edit-link,
+.colors-custom.archive .entry-meta a.post-edit-link,
+.colors-custom.search .entry-meta a.post-edit-link,
+.colors-custom .nav-subtitle,
+.colors-custom .comment-metadata,
+.colors-custom .comment-metadata a,
+.colors-custom .no-comments,
+.colors-custom .comment-awaiting-moderation,
+.colors-custom .page-numbers.current,
+.colors-custom .page-links .page-number,
+.colors-custom .navigation-top .current-menu-item > a,
+.colors-custom .navigation-top .current_page_item > a,
+.colors-custom .main-navigation a:hover,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-current-item .wp-playlist-item-artist {
+	color: hsl( ' . $hue . ', ' . $saturation . ', 46% ); /* base: #767676; */
+}
+
+.colors-custom button:hover,
+.colors-custom button:focus,
+.colors-custom input[type="button"]:hover,
+.colors-custom input[type="button"]:focus,
+.colors-custom input[type="submit"]:hover,
+.colors-custom input[type="submit"]:focus,
+.colors-custom .entry-footer .edit-link a.post-edit-link:hover,
+.colors-custom .entry-footer .edit-link a.post-edit-link:focus,
+.colors-custom .social-navigation a,
+.colors-custom .prev.page-numbers:focus,
+.colors-custom .prev.page-numbers:hover,
+.colors-custom .next.page-numbers:focus,
+.colors-custom .next.page-numbers:hover,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-item:hover,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-item:focus {
+	background: hsl( ' . esc_attr( $hue ) . ', ' . esc_attr( $saturation ) . ', 46% ); /* base: #767676; */
+}
+
+.colors-custom button.secondary:hover,
+.colors-custom button.secondary:focus,
+.colors-custom input[type="reset"]:hover,
+.colors-custom input[type="reset"]:focus,
+.colors-custom input[type="button"].secondary:hover,
+.colors-custom input[type="button"].secondary:focus,
+.colors-custom input[type="reset"].secondary:hover,
+.colors-custom input[type="reset"].secondary:focus,
+.colors-custom input[type="submit"].secondary:hover,
+.colors-custom input[type="submit"].secondary:focus,
+.colors-custom hr {
+	background: hsl( ' . $hue . ', ' . $saturation . ', 73% ); /* base: #bbb; */
+}
+
+.colors-custom input[type="text"],
+.colors-custom input[type="email"],
+.colors-custom input[type="url"],
+.colors-custom input[type="password"],
+.colors-custom input[type="search"],
+.colors-custom input[type="number"],
+.colors-custom input[type="tel"],
+.colors-custom input[type="range"],
+.colors-custom input[type="date"],
+.colors-custom input[type="month"],
+.colors-custom input[type="week"],
+.colors-custom input[type="time"],
+.colors-custom input[type="datetime"],
+.colors-custom input[type="datetime-local"],
+.colors-custom input[type="color"],
+.colors-custom textarea,
+.colors-custom select,
+.colors-custom fieldset,
+.colors-custom .widget .tagcloud a:hover,
+.colors-custom .widget .tagcloud a:focus,
+.colors-custom .widget.widget_tag_cloud a:hover,
+.colors-custom .widget.widget_tag_cloud a:focus,
+.colors-custom .wp_widget_tag_cloud a:hover,
+.colors-custom .wp_widget_tag_cloud a:focus {
+	border-color: hsl( ' . $hue . ', ' . $saturation . ', 73% ); /* base: #bbb; */
+}
+
+.colors-custom thead th {
+	border-bottom-color: hsl( ' . $hue . ', ' . $saturation . ', 73% ); /* base: #bbb; */
+}
+
+.colors-custom .entry-footer .cat-links .icon,
+.colors-custom .entry-footer .tags-links .icon {
+	color: hsl( ' . $hue . ', ' . $saturation . ', 73% ); /* base: #bbb; */
+}
+
+.colors-custom button.secondary,
+.colors-custom input[type="reset"],
+.colors-custom input[type="button"].secondary,
+.colors-custom input[type="reset"].secondary,
+.colors-custom input[type="submit"].secondary,
+.colors-custom .prev.page-numbers,
+.colors-custom .next.page-numbers {
+	background-color: hsl( ' . $hue . ', ' . $saturation . ', 87% ); /* base: #ddd; */
+}
+
+.colors-custom .widget .tagcloud a,
+.colors-custom .widget.widget_tag_cloud a,
+.colors-custom .wp_widget_tag_cloud a {
+	border-color: hsl( ' . $hue . ', ' . $saturation . ', 87% ); /* base: #ddd; */
+}
+
+.colors-custom.twentyseventeen-front-page article:not(.has-post-thumbnail):not(:first-child),
+.colors-custom .widget ul li {
+	border-top-color: hsl( ' . $hue . ', ' . $saturation . ', 87% ); /* base: #ddd; */
+}
+
+.colors-custom .widget ul li {
+	border-bottom-color: hsl( ' . $hue . ', ' . $saturation . ', 87% ); /* base: #ddd; */
+}
+
+.colors-custom pre,
+.colors-custom mark,
+.colors-custom ins {
+	background: hsl( ' . $hue . ', ' . $saturation . ', 93% ); /* base: #eee; */
+}
+
+.colors-custom .navigation-top,
+.colors-custom .main-navigation > div > ul,
+.colors-custom .pagination,
+.colors-custom .comments-pagination,
+.colors-custom .entry-footer,
+.colors-custom .site-footer {
+	border-top-color: hsl( ' . $hue . ', ' . $saturation . ', 93% ); /* base: #eee; */
+}
+
+.colors-custom .navigation-top,
+.colors-custom .main-navigation li,
+.colors-custom .entry-footer,
+.colors-custom .single-featured-image-header,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-item,
+.colors-custom tr {
+	border-bottom-color: hsl( ' . $hue . ', ' . $saturation . ', 93% ); /* base: #eee; */
+}
+
+.colors-custom .site-content .wp-playlist-light {
+	border-color: hsl( ' . $hue . ', ' . $saturation . ', 93% ); /* base: #eee; */
+}
+
+.colors-custom .site-header,
+.colors-custom .single-featured-image-header {
+	background-color: hsl( ' . $hue . ', ' . $saturation . ', 98% ); /* base: #fafafa; */
+}
+
+.colors-custom button,
+.colors-custom input[type="button"],
+.colors-custom input[type="submit"],
+.colors-custom .entry-footer .edit-link a.post-edit-link,
+.colors-custom .social-navigation a,
+.colors-custom .site-content .wp-playlist-light a.wp-playlist-caption:hover,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-item:hover a,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-item:focus a,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-item:hover,
+.colors-custom .site-content .wp-playlist-light .wp-playlist-item:focus,
+.colors-custom .prev.page-numbers:focus,
+.colors-custom .prev.page-numbers:hover,
+.colors-custom .next.page-numbers:focus,
+.colors-custom .next.page-numbers:hover,
+.colors-custom.has-header-image .site-title,
+.colors-custom.has-header-video .site-title,
+.colors-custom.has-header-image .site-title a,
+.colors-custom.has-header-video .site-title a,
+.colors-custom.has-header-image .site-description,
+.colors-custom.has-header-video .site-description {
+	color: hsl( ' . $hue . ', ' . $saturation . ', 100% ); /* base: #fff; */
+}
+
+body.colors-custom,
+.colors-custom .navigation-top,
+.colors-custom .main-navigation ul {
+	background: hsl( ' . $hue . ', ' . $saturation . ', 100% ); /* base: #fff; */
+}
+
+.colors-custom .widget ul li a,
+.colors-custom .site-footer .widget-area ul li a {
+	-webkit-box-shadow: inset 0 -1px 0 hsl( ' . $hue . ', ' . $saturation . ', 100% ); /* base: rgba(255, 255, 255, 1); */
+	box-shadow: inset 0 -1px 0 hsl( ' . $hue . ', ' . $saturation . ', 100% );  /* base: rgba(255, 255, 255, 1); */
+}
+
+.colors-custom .menu-toggle,
+.colors-custom .menu-toggle:hover,
+.colors-custom .menu-toggle:focus,
+.colors-custom .menu .dropdown-toggle,
+.colors-custom .menu-scroll-down,
+.colors-custom .menu-scroll-down:hover,
+.colors-custom .menu-scroll-down:focus {
+	background-color: transparent;
+}
+
+.colors-custom .widget .tagcloud a,
+.colors-custom .widget .tagcloud a:focus,
+.colors-custom .widget .tagcloud a:hover,
+.colors-custom .widget.widget_tag_cloud a,
+.colors-custom .widget.widget_tag_cloud a:focus,
+.colors-custom .widget.widget_tag_cloud a:hover,
+.colors-custom .wp_widget_tag_cloud a,
+.colors-custom .wp_widget_tag_cloud a:focus,
+.colors-custom .wp_widget_tag_cloud a:hover,
+.colors-custom .entry-footer .edit-link a.post-edit-link:focus,
+.colors-custom .entry-footer .edit-link a.post-edit-link:hover {
+	-webkit-box-shadow: none !important;
+	box-shadow: none !important;
+}
+
+/* Reset non-customizable hover styling for links */
+.colors-custom .entry-content a:hover,
+.colors-custom .entry-content a:focus,
+.colors-custom .entry-summary a:hover,
+.colors-custom .entry-summary a:focus,
+.colors-custom .widget a:hover,
+.colors-custom .widget a:focus,
+.colors-custom .site-footer .widget-area a:hover,
+.colors-custom .site-footer .widget-area a:focus,
+.colors-custom .posts-navigation a:hover,
+.colors-custom .posts-navigation a:focus,
+.colors-custom .widget_authors a:hover strong,
+.colors-custom .widget_authors a:focus strong {
+	-webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1);
+	box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1);
+}
+
+.colors-custom .gallery-item a,
+.colors-custom .gallery-item a:hover,
+.colors-custom .gallery-item a:focus {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+@media screen and (min-width: 48em) {
+
+	.colors-custom .nav-links .nav-previous .nav-title .icon,
+	.colors-custom .nav-links .nav-next .nav-title .icon {
+		color: hsl( ' . $hue . ', ' . $saturation . ', 20% ); /* base: #222; */
+	}
+
+	.colors-custom .main-navigation li li:hover,
+	.colors-custom .main-navigation li li.focus {
+		background: hsl( ' . $hue . ', ' . $saturation . ', 46% ); /* base: #767676; */
+	}
+
+	.colors-custom .navigation-top .menu-scroll-down {
+		color: hsl( ' . $hue . ', ' . $saturation . ', 46% ); /* base: #767676; */;
+	}
+
+	.colors-custom abbr[title] {
+		border-bottom-color: hsl( ' . $hue . ', ' . $saturation . ', 46% ); /* base: #767676; */;
+	}
+
+	.colors-custom .main-navigation ul ul {
+		border-color: hsl( ' . $hue . ', ' . $saturation . ', 73% ); /* base: #bbb; */
+		background: hsl( ' . $hue . ', ' . $saturation . ', 100% ); /* base: #fff; */
+	}
+
+	.colors-custom .main-navigation ul li.menu-item-has-children:before,
+	.colors-custom .main-navigation ul li.page_item_has_children:before {
+		border-bottom-color: hsl( ' . $hue . ', ' . $saturation . ', 73% ); /* base: #bbb; */
+	}
+
+	.colors-custom .main-navigation ul li.menu-item-has-children:after,
+	.colors-custom .main-navigation ul li.page_item_has_children:after {
+		border-bottom-color: hsl( ' . $hue . ', ' . $saturation . ', 100% ); /* base: #fff; */
+	}
+
+	.colors-custom .main-navigation li li.focus > a,
+	.colors-custom .main-navigation li li:focus > a,
+	.colors-custom .main-navigation li li:hover > a,
+	.colors-custom .main-navigation li li a:hover,
+	.colors-custom .main-navigation li li a:focus,
+	.colors-custom .main-navigation li li.current_page_item a:hover,
+	.colors-custom .main-navigation li li.current-menu-item a:hover,
+	.colors-custom .main-navigation li li.current_page_item a:focus,
+	.colors-custom .main-navigation li li.current-menu-item a:focus {
+		color: hsl( ' . $hue . ', ' . $saturation . ', 100% ); /* base: #fff; */
+	}
+}';
+
+
+	/**
+	 * Filters Twenty Seventeen custom colors CSS.
+	 *
+	 * @since Twenty Seventeen 1.0
+	 *
+	 * @param $css        string Base theme colors CSS.
+	 * @param $hue        int    The user's selected color hue.
+	 * @param $saturation string Filtered theme color saturation level.
+	 */
+	return apply_filters( 'twentyseventeen_custom_colors_css', $css, $hue, $saturation );
+}
diff --git a/wp-content/themes/twentyseventeen/inc/custom-header.php b/wp-content/themes/twentyseventeen/inc/custom-header.php
new file mode 100644
index 000000000..92940a8ca
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/inc/custom-header.php
@@ -0,0 +1,120 @@
+<?php
+/**
+ * Custom header implementation
+ *
+ * @link https://codex.wordpress.org/Custom_Headers
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ */
+
+/**
+ * Set up the WordPress core custom header feature.
+ *
+ * @uses twentyseventeen_header_style()
+ */
+function twentyseventeen_custom_header_setup() {
+
+	/**
+	 * Filter Twenty Seventeen custom-header support arguments.
+	 *
+	 * @since Twenty Seventeen 1.0
+	 *
+	 * @param array $args {
+	 *     An array of custom-header support arguments.
+	 *
+	 *     @type string $default-image     		Default image of the header.
+	 *     @type string $default_text_color     Default color of the header text.
+	 *     @type int    $width                  Width in pixels of the custom header image. Default 954.
+	 *     @type int    $height                 Height in pixels of the custom header image. Default 1300.
+	 *     @type string $wp-head-callback       Callback function used to styles the header image and text
+	 *                                          displayed on the blog.
+	 *     @type string $flex-height     		Flex support for height of header.
+	 * }
+	 */
+	add_theme_support( 'custom-header', apply_filters( 'twentyseventeen_custom_header_args', array(
+		'default-image'      => get_parent_theme_file_uri( '/assets/images/header.jpg' ),
+		'width'              => 2000,
+		'height'             => 1200,
+		'flex-height'        => true,
+		'video'              => true,
+		'wp-head-callback'   => 'twentyseventeen_header_style',
+	) ) );
+
+	register_default_headers( array(
+		'default-image' => array(
+			'url'           => '%s/assets/images/header.jpg',
+			'thumbnail_url' => '%s/assets/images/header.jpg',
+			'description'   => __( 'Default Header Image', 'twentyseventeen' ),
+		),
+	) );
+}
+add_action( 'after_setup_theme', 'twentyseventeen_custom_header_setup' );
+
+if ( ! function_exists( 'twentyseventeen_header_style' ) ) :
+/**
+ * Styles the header image and text displayed on the blog.
+ *
+ * @see twentyseventeen_custom_header_setup().
+ */
+function twentyseventeen_header_style() {
+	$header_text_color = get_header_textcolor();
+
+	// If no custom options for text are set, let's bail.
+	// get_header_textcolor() options: add_theme_support( 'custom-header' ) is default, hide text (returns 'blank') or any hex value.
+	if ( get_theme_support( 'custom-header', 'default-text-color' ) === $header_text_color ) {
+		return;
+	}
+
+	// If we get this far, we have custom styles. Let's do this.
+	?>
+	<style id="twentyseventeen-custom-header-styles" type="text/css">
+	<?php
+		// Has the text been hidden?
+		if ( 'blank' === $header_text_color ) :
+	?>
+		.site-title,
+		.site-description {
+			position: absolute;
+			clip: rect(1px, 1px, 1px, 1px);
+		}
+	<?php
+		// If the user has set a custom color for the text use that.
+		else :
+	?>
+		.site-title a,
+		.colors-dark .site-title a,
+		.colors-custom .site-title a,
+		body.has-header-image .site-title a,
+		body.has-header-video .site-title a,
+		body.has-header-image.colors-dark .site-title a,
+		body.has-header-video.colors-dark .site-title a,
+		body.has-header-image.colors-custom .site-title a,
+		body.has-header-video.colors-custom .site-title a,
+		.site-description,
+		.colors-dark .site-description,
+		.colors-custom .site-description,
+		body.has-header-image .site-description,
+		body.has-header-video .site-description,
+		body.has-header-image.colors-dark .site-description,
+		body.has-header-video.colors-dark .site-description,
+		body.has-header-image.colors-custom .site-description,
+		body.has-header-video.colors-custom .site-description {
+			color: #<?php echo esc_attr( $header_text_color ); ?>;
+		}
+	<?php endif; ?>
+	</style>
+	<?php
+}
+endif; // End of twentyseventeen_header_style.
+
+/**
+ * Customize video play/pause button in the custom header.
+ */
+function twentyseventeen_video_controls( $settings ) {
+	$settings['l10n']['play'] = '<span class="screen-reader-text">' . __( 'Play background video', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'play' ) );
+	$settings['l10n']['pause'] = '<span class="screen-reader-text">' . __( 'Pause background video', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'pause' ) );
+	return $settings;
+}
+add_filter( 'header_video_settings', 'twentyseventeen_video_controls' );
diff --git a/wp-content/themes/twentyseventeen/inc/customizer.php b/wp-content/themes/twentyseventeen/inc/customizer.php
new file mode 100644
index 000000000..5963f790d
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/inc/customizer.php
@@ -0,0 +1,206 @@
+<?php
+/**
+ * Twenty Seventeen: Customizer
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ */
+
+/**
+ * Add postMessage support for site title and description for the Theme Customizer.
+ *
+ * @param WP_Customize_Manager $wp_customize Theme Customizer object.
+ */
+function twentyseventeen_customize_register( $wp_customize ) {
+	$wp_customize->get_setting( 'blogname' )->transport          = 'postMessage';
+	$wp_customize->get_setting( 'blogdescription' )->transport   = 'postMessage';
+	$wp_customize->get_setting( 'header_textcolor' )->transport  = 'postMessage';
+
+	$wp_customize->selective_refresh->add_partial( 'blogname', array(
+		'selector' => '.site-title a',
+		'render_callback' => 'twentyseventeen_customize_partial_blogname',
+	) );
+	$wp_customize->selective_refresh->add_partial( 'blogdescription', array(
+		'selector' => '.site-description',
+		'render_callback' => 'twentyseventeen_customize_partial_blogdescription',
+	) );
+
+	/**
+	 * Custom colors.
+	 */
+	$wp_customize->add_setting( 'colorscheme', array(
+		'default'           => 'light',
+		'transport'         => 'postMessage',
+		'sanitize_callback' => 'twentyseventeen_sanitize_colorscheme',
+	) );
+
+	$wp_customize->add_setting( 'colorscheme_hue', array(
+		'default'           => 250,
+		'transport'         => 'postMessage',
+		'sanitize_callback' => 'absint', // The hue is stored as a positive integer.
+	) );
+
+	$wp_customize->add_control( 'colorscheme', array(
+		'type'    => 'radio',
+		'label'    => __( 'Color Scheme', 'twentyseventeen' ),
+		'choices'  => array(
+			'light'  => __( 'Light', 'twentyseventeen' ),
+			'dark'   => __( 'Dark', 'twentyseventeen' ),
+			'custom' => __( 'Custom', 'twentyseventeen' ),
+		),
+		'section'  => 'colors',
+		'priority' => 5,
+	) );
+
+	$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'colorscheme_hue', array(
+		'mode' => 'hue',
+		'section'  => 'colors',
+		'priority' => 6,
+	) ) );
+
+	/**
+	 * Theme options.
+	 */
+	$wp_customize->add_section( 'theme_options', array(
+		'title'    => __( 'Theme Options', 'twentyseventeen' ),
+		'priority' => 130, // Before Additional CSS.
+	) );
+
+	$wp_customize->add_setting( 'page_layout', array(
+		'default'           => 'two-column',
+		'sanitize_callback' => 'twentyseventeen_sanitize_page_layout',
+		'transport'         => 'postMessage',
+	) );
+
+	$wp_customize->add_control( 'page_layout', array(
+		'label'       => __( 'Page Layout', 'twentyseventeen' ),
+		'section'     => 'theme_options',
+		'type'        => 'radio',
+		'description' => __( 'When the two column layout is assigned, the page title is in one column and content is in the other.', 'twentyseventeen' ),
+		'choices'     => array(
+			'one-column' => __( 'One Column', 'twentyseventeen' ),
+			'two-column' => __( 'Two Column', 'twentyseventeen' ),
+		),
+		'active_callback' => 'twentyseventeen_is_view_with_layout_option',
+	) );
+
+	/**
+	 * Filter number of front page sections in Twenty Seventeen.
+	 *
+	 * @since Twenty Seventeen 1.0
+	 *
+	 * @param $num_sections integer
+	 */
+	$num_sections = apply_filters( 'twentyseventeen_front_page_sections', 4 );
+
+	// Create a setting and control for each of the sections available in the theme.
+	for ( $i = 1; $i < ( 1 + $num_sections ); $i++ ) {
+		$wp_customize->add_setting( 'panel_' . $i, array(
+			'default'           => false,
+			'sanitize_callback' => 'absint',
+			'transport'         => 'postMessage',
+		) );
+
+		$wp_customize->add_control( 'panel_' . $i, array(
+			/* translators: %d is the front page section number */
+			'label'          => sprintf( __( 'Front Page Section %d Content', 'twentyseventeen' ), $i ),
+			'description'    => ( 1 !== $i ? '' : __( 'Select pages to feature in each area from the dropdowns. Add an image to a section by setting a featured image in the page editor. Empty sections will not be displayed.', 'twentyseventeen' ) ),
+			'section'        => 'theme_options',
+			'type'           => 'dropdown-pages',
+			'allow_addition' => true,
+			'active_callback' => 'twentyseventeen_is_static_front_page',
+		) );
+
+		$wp_customize->selective_refresh->add_partial( 'panel_' . $i, array(
+			'selector'            => '#panel' . $i,
+			'render_callback'     => 'twentyseventeen_front_page_section',
+			'container_inclusive' => true,
+		) );
+	}
+}
+add_action( 'customize_register', 'twentyseventeen_customize_register' );
+
+/**
+ * Sanitize the page layout options.
+ */
+function twentyseventeen_sanitize_page_layout( $input ) {
+	$valid = array(
+		'one-column' => __( 'One Column', 'twentyseventeen' ),
+		'two-column' => __( 'Two Column', 'twentyseventeen' ),
+	);
+
+	if ( array_key_exists( $input, $valid ) ) {
+		return $input;
+	}
+
+	return '';
+}
+
+/**
+ * Sanitize the colorscheme.
+ */
+function twentyseventeen_sanitize_colorscheme( $input ) {
+	$valid = array( 'light', 'dark', 'custom' );
+
+	if ( in_array( $input, $valid ) ) {
+		return $input;
+	}
+
+	return 'light';
+}
+
+/**
+ * Render the site title for the selective refresh partial.
+ *
+ * @since Twenty Seventeen 1.0
+ * @see twentyseventeen_customize_register()
+ *
+ * @return void
+ */
+function twentyseventeen_customize_partial_blogname() {
+	bloginfo( 'name' );
+}
+
+/**
+ * Render the site tagline for the selective refresh partial.
+ *
+ * @since Twenty Seventeen 1.0
+ * @see twentyseventeen_customize_register()
+ *
+ * @return void
+ */
+function twentyseventeen_customize_partial_blogdescription() {
+	bloginfo( 'description' );
+}
+
+/**
+ * Return whether we're previewing the front page and it's a static page.
+ */
+function twentyseventeen_is_static_front_page() {
+	return ( is_front_page() && ! is_home() );
+}
+
+/**
+ * Return whether we're on a view that supports a one or two column layout.
+ */
+function twentyseventeen_is_view_with_layout_option() {
+	// This option is available on all pages. It's also available on archives when there isn't a sidebar.
+	return ( is_page() || ( is_archive() && ! is_active_sidebar( 'sidebar-1' ) ) );
+}
+
+/**
+ * Bind JS handlers to instantly live-preview changes.
+ */
+function twentyseventeen_customize_preview_js() {
+	wp_enqueue_script( 'twentyseventeen-customize-preview', get_theme_file_uri( '/assets/js/customize-preview.js' ), array( 'customize-preview' ), '1.0', true );
+}
+add_action( 'customize_preview_init', 'twentyseventeen_customize_preview_js' );
+
+/**
+ * Load dynamic logic for the customizer controls area.
+ */
+function twentyseventeen_panels_js() {
+	wp_enqueue_script( 'twentyseventeen-customize-controls', get_theme_file_uri( '/assets/js/customize-controls.js' ), array(), '1.0', true );
+}
+add_action( 'customize_controls_enqueue_scripts', 'twentyseventeen_panels_js' );
diff --git a/wp-content/themes/twentyseventeen/inc/icon-functions.php b/wp-content/themes/twentyseventeen/inc/icon-functions.php
new file mode 100644
index 000000000..dc423ee46
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/inc/icon-functions.php
@@ -0,0 +1,218 @@
+<?php
+/**
+ * SVG icons related functions and filters
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ */
+
+/**
+ * Add SVG definitions to the footer.
+ */
+function twentyseventeen_include_svg_icons() {
+	// Define SVG sprite file.
+	$svg_icons = get_parent_theme_file_path( '/assets/images/svg-icons.svg' );
+
+	// If it exists, include it.
+	if ( file_exists( $svg_icons ) ) {
+		require_once( $svg_icons );
+	}
+}
+add_action( 'wp_footer', 'twentyseventeen_include_svg_icons', 9999 );
+
+/**
+ * Return SVG markup.
+ *
+ * @param array $args {
+ *     Parameters needed to display an SVG.
+ *
+ *     @type string $icon  Required SVG icon filename.
+ *     @type string $title Optional SVG title.
+ *     @type string $desc  Optional SVG description.
+ * }
+ * @return string SVG markup.
+ */
+function twentyseventeen_get_svg( $args = array() ) {
+	// Make sure $args are an array.
+	if ( empty( $args ) ) {
+		return __( 'Please define default parameters in the form of an array.', 'twentyseventeen' );
+	}
+
+	// Define an icon.
+	if ( false === array_key_exists( 'icon', $args ) ) {
+		return __( 'Please define an SVG icon filename.', 'twentyseventeen' );
+	}
+
+	// Set defaults.
+	$defaults = array(
+		'icon'        => '',
+		'title'       => '',
+		'desc'        => '',
+		'fallback'    => false,
+	);
+
+	// Parse args.
+	$args = wp_parse_args( $args, $defaults );
+
+	// Set aria hidden.
+	$aria_hidden = ' aria-hidden="true"';
+
+	// Set ARIA.
+	$aria_labelledby = '';
+
+	/*
+	 * Twenty Seventeen doesn't use the SVG title or description attributes; non-decorative icons are described with .screen-reader-text.
+	 *
+	 * However, child themes can use the title and description to add information to non-decorative SVG icons to improve accessibility.
+	 *
+	 * Example 1 with title: <?php echo twentyseventeen_get_svg( array( 'icon' => 'arrow-right', 'title' => __( 'This is the title', 'textdomain' ) ) ); ?>
+	 *
+	 * Example 2 with title and description: <?php echo twentyseventeen_get_svg( array( 'icon' => 'arrow-right', 'title' => __( 'This is the title', 'textdomain' ), 'desc' => __( 'This is the description', 'textdomain' ) ) ); ?>
+	 *
+	 * See https://www.paciellogroup.com/blog/2013/12/using-aria-enhance-svg-accessibility/.
+	 */
+	if ( $args['title'] ) {
+		$aria_hidden     = '';
+		$unique_id       = uniqid();
+		$aria_labelledby = ' aria-labelledby="title-' . $unique_id . '"';
+
+		if ( $args['desc'] ) {
+			$aria_labelledby = ' aria-labelledby="title-' . $unique_id . ' desc-' . $unique_id . '"';
+		}
+	}
+
+	// Begin SVG markup.
+	$svg = '<svg class="icon icon-' . esc_attr( $args['icon'] ) . '"' . $aria_hidden . $aria_labelledby . ' role="img">';
+
+	// Display the title.
+	if ( $args['title'] ) {
+		$svg .= '<title id="title-' . $unique_id . '">' . esc_html( $args['title'] ) . '</title>';
+
+		// Display the desc only if the title is already set.
+		if ( $args['desc'] ) {
+			$svg .= '<desc id="desc-' . $unique_id . '">' . esc_html( $args['desc'] ) . '</desc>';
+		}
+	}
+
+	/*
+	 * Display the icon.
+	 *
+	 * The whitespace around `<use>` is intentional - it is a work around to a keyboard navigation bug in Safari 10.
+	 *
+	 * See https://core.trac.wordpress.org/ticket/38387.
+	 */
+	$svg .= ' <use href="#icon-' . esc_html( $args['icon'] ) . '" xlink:href="#icon-' . esc_html( $args['icon'] ) . '"></use> ';
+
+	// Add some markup to use as a fallback for browsers that do not support SVGs.
+	if ( $args['fallback'] ) {
+		$svg .= '<span class="svg-fallback icon-' . esc_attr( $args['icon'] ) . '"></span>';
+	}
+
+	$svg .= '</svg>';
+
+	return $svg;
+}
+
+/**
+ * Display SVG icons in social links menu.
+ *
+ * @param  string  $item_output The menu item output.
+ * @param  WP_Post $item        Menu item object.
+ * @param  int     $depth       Depth of the menu.
+ * @param  array   $args        wp_nav_menu() arguments.
+ * @return string  $item_output The menu item output with social icon.
+ */
+function twentyseventeen_nav_menu_social_icons( $item_output, $item, $depth, $args ) {
+	// Get supported social icons.
+	$social_icons = twentyseventeen_social_links_icons();
+
+	// Change SVG icon inside social links menu if there is supported URL.
+	if ( 'social' === $args->theme_location ) {
+		foreach ( $social_icons as $attr => $value ) {
+			if ( false !== strpos( $item_output, $attr ) ) {
+				$item_output = str_replace( $args->link_after, '</span>' . twentyseventeen_get_svg( array( 'icon' => esc_attr( $value ) ) ), $item_output );
+			}
+		}
+	}
+
+	return $item_output;
+}
+add_filter( 'walker_nav_menu_start_el', 'twentyseventeen_nav_menu_social_icons', 10, 4 );
+
+/**
+ * Add dropdown icon if menu item has children.
+ *
+ * @param  string $title The menu item's title.
+ * @param  object $item  The current menu item.
+ * @param  array  $args  An array of wp_nav_menu() arguments.
+ * @param  int    $depth Depth of menu item. Used for padding.
+ * @return string $title The menu item's title with dropdown icon.
+ */
+function twentyseventeen_dropdown_icon_to_menu_link( $title, $item, $args, $depth ) {
+	if ( 'top' === $args->theme_location ) {
+		foreach ( $item->classes as $value ) {
+			if ( 'menu-item-has-children' === $value || 'page_item_has_children' === $value ) {
+				$title = $title . twentyseventeen_get_svg( array( 'icon' => 'angle-down' ) );
+			}
+		}
+	}
+
+	return $title;
+}
+add_filter( 'nav_menu_item_title', 'twentyseventeen_dropdown_icon_to_menu_link', 10, 4 );
+
+/**
+ * Returns an array of supported social links (URL and icon name).
+ *
+ * @return array $social_links_icons
+ */
+function twentyseventeen_social_links_icons() {
+	// Supported social links icons.
+	$social_links_icons = array(
+		'behance.net'     => 'behance',
+		'codepen.io'      => 'codepen',
+		'deviantart.com'  => 'deviantart',
+		'digg.com'        => 'digg',
+		'dribbble.com'    => 'dribbble',
+		'dropbox.com'     => 'dropbox',
+		'facebook.com'    => 'facebook',
+		'flickr.com'      => 'flickr',
+		'foursquare.com'  => 'foursquare',
+		'plus.google.com' => 'google-plus',
+		'github.com'      => 'github',
+		'instagram.com'   => 'instagram',
+		'linkedin.com'    => 'linkedin',
+		'mailto:'         => 'envelope-o',
+		'medium.com'      => 'medium',
+		'pinterest.com'   => 'pinterest-p',
+		'getpocket.com'   => 'get-pocket',
+		'reddit.com'      => 'reddit-alien',
+		'skype.com'       => 'skype',
+		'skype:'          => 'skype',
+		'slideshare.net'  => 'slideshare',
+		'snapchat.com'    => 'snapchat-ghost',
+		'soundcloud.com'  => 'soundcloud',
+		'spotify.com'     => 'spotify',
+		'stumbleupon.com' => 'stumbleupon',
+		'tumblr.com'      => 'tumblr',
+		'twitch.tv'       => 'twitch',
+		'twitter.com'     => 'twitter',
+		'vimeo.com'       => 'vimeo',
+		'vine.co'         => 'vine',
+		'vk.com'          => 'vk',
+		'wordpress.org'   => 'wordpress',
+		'wordpress.com'   => 'wordpress',
+		'yelp.com'        => 'yelp',
+		'youtube.com'     => 'youtube',
+	);
+
+	/**
+	 * Filter Twenty Seventeen social links icons.
+	 *
+	 * @since Twenty Seventeen 1.0
+	 *
+	 * @param array $social_links_icons
+	 */
+	return apply_filters( 'twentyseventeen_social_links_icons', $social_links_icons );
+}
diff --git a/wp-content/themes/twentyseventeen/inc/template-functions.php b/wp-content/themes/twentyseventeen/inc/template-functions.php
new file mode 100644
index 000000000..6b136c476
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/inc/template-functions.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * Additional features to allow styling of the templates
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ */
+
+/**
+ * Adds custom classes to the array of body classes.
+ *
+ * @param array $classes Classes for the body element.
+ * @return array
+ */
+function twentyseventeen_body_classes( $classes ) {
+	// Add class of group-blog to blogs with more than 1 published author.
+	if ( is_multi_author() ) {
+		$classes[] = 'group-blog';
+	}
+
+	// Add class of hfeed to non-singular pages.
+	if ( ! is_singular() ) {
+		$classes[] = 'hfeed';
+	}
+
+	// Add class if we're viewing the Customizer for easier styling of theme options.
+	if ( is_customize_preview() ) {
+		$classes[] = 'twentyseventeen-customizer';
+	}
+
+	// Add class on front page.
+	if ( is_front_page() && 'posts' !== get_option( 'show_on_front' ) ) {
+		$classes[] = 'twentyseventeen-front-page';
+	}
+
+	// Add a class if there is a custom header.
+	if ( has_header_image() ) {
+		$classes[] = 'has-header-image';
+	}
+
+	// Add class if sidebar is used.
+	if ( is_active_sidebar( 'sidebar-1' ) && ! is_page() ) {
+		$classes[] = 'has-sidebar';
+	}
+
+	// Add class for one or two column page layouts.
+	if ( is_page() || is_archive() ) {
+		if ( 'one-column' === get_theme_mod( 'page_layout' ) ) {
+			$classes[] = 'page-one-column';
+		} else {
+			$classes[] = 'page-two-column';
+		}
+	}
+
+	// Add class if the site title and tagline is hidden.
+	if ( 'blank' === get_header_textcolor() ) {
+		$classes[] = 'title-tagline-hidden';
+	}
+
+	// Get the colorscheme or the default if there isn't one.
+	$colors = twentyseventeen_sanitize_colorscheme( get_theme_mod( 'colorscheme', 'light' ) );
+	$classes[] = 'colors-' . $colors;
+
+	return $classes;
+}
+add_filter( 'body_class', 'twentyseventeen_body_classes' );
+
+/**
+ * Count our number of active panels.
+ *
+ * Primarily used to see if we have any panels active, duh.
+ */
+function twentyseventeen_panel_count() {
+
+	$panel_count = 0;
+
+	/**
+	 * Filter number of front page sections in Twenty Seventeen.
+	 *
+	 * @since Twenty Seventeen 1.0
+	 *
+	 * @param $num_sections integer
+	 */
+	$num_sections = apply_filters( 'twentyseventeen_front_page_sections', 4 );
+
+	// Create a setting and control for each of the sections available in the theme.
+	for ( $i = 1; $i < ( 1 + $num_sections ); $i++ ) {
+		if ( get_theme_mod( 'panel_' . $i ) ) {
+			$panel_count++;
+		}
+	}
+
+	return $panel_count;
+}
+
+/**
+ * Checks to see if we're on the homepage or not.
+ */
+function twentyseventeen_is_frontpage() {
+	return ( is_front_page() && ! is_home() );
+}
diff --git a/wp-content/themes/twentyseventeen/inc/template-tags.php b/wp-content/themes/twentyseventeen/inc/template-tags.php
new file mode 100644
index 000000000..5367e60a4
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/inc/template-tags.php
@@ -0,0 +1,196 @@
+<?php
+/**
+ * Custom template tags for this theme
+ *
+ * Eventually, some of the functionality here could be replaced by core features.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ */
+
+if ( ! function_exists( 'twentyseventeen_posted_on' ) ) :
+/**
+ * Prints HTML with meta information for the current post-date/time and author.
+ */
+function twentyseventeen_posted_on() {
+
+	// Get the author name; wrap it in a link.
+	$byline = sprintf(
+		/* translators: %s: post author */
+		__( 'by %s', 'twentyseventeen' ),
+		'<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . get_the_author() . '</a></span>'
+	);
+
+	// Finally, let's write all of this to the page.
+	echo '<span class="posted-on">' . twentyseventeen_time_link() . '</span><span class="byline"> ' . $byline . '</span>';
+}
+endif;
+
+
+if ( ! function_exists( 'twentyseventeen_time_link' ) ) :
+/**
+ * Gets a nicely formatted string for the published date.
+ */
+function twentyseventeen_time_link() {
+	$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
+	if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
+		$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
+	}
+
+	$time_string = sprintf( $time_string,
+		get_the_date( DATE_W3C ),
+		get_the_date(),
+		get_the_modified_date( DATE_W3C ),
+		get_the_modified_date()
+	);
+
+	// Wrap the time string in a link, and preface it with 'Posted on'.
+	return sprintf(
+		/* translators: %s: post date */
+		__( '<span class="screen-reader-text">Posted on</span> %s', 'twentyseventeen' ),
+		'<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>'
+	);
+}
+endif;
+
+
+if ( ! function_exists( 'twentyseventeen_entry_footer' ) ) :
+/**
+ * Prints HTML with meta information for the categories, tags and comments.
+ */
+function twentyseventeen_entry_footer() {
+
+	/* translators: used between list items, there is a space after the comma */
+	$separate_meta = __( ', ', 'twentyseventeen' );
+
+	// Get Categories for posts.
+	$categories_list = get_the_category_list( $separate_meta );
+
+	// Get Tags for posts.
+	$tags_list = get_the_tag_list( '', $separate_meta );
+
+	// We don't want to output .entry-footer if it will be empty, so make sure its not.
+	if ( ( ( twentyseventeen_categorized_blog() && $categories_list ) || $tags_list ) || get_edit_post_link() ) {
+
+		echo '<footer class="entry-footer">';
+
+			if ( 'post' === get_post_type() ) {
+				if ( ( $categories_list && twentyseventeen_categorized_blog() ) || $tags_list ) {
+					echo '<span class="cat-tags-links">';
+
+						// Make sure there's more than one category before displaying.
+						if ( $categories_list && twentyseventeen_categorized_blog() ) {
+							echo '<span class="cat-links">' . twentyseventeen_get_svg( array( 'icon' => 'folder-open' ) ) . '<span class="screen-reader-text">' . __( 'Categories', 'twentyseventeen' ) . '</span>' . $categories_list . '</span>';
+						}
+
+						if ( $tags_list ) {
+							echo '<span class="tags-links">' . twentyseventeen_get_svg( array( 'icon' => 'hashtag' ) ) . '<span class="screen-reader-text">' . __( 'Tags', 'twentyseventeen' ) . '</span>' . $tags_list . '</span>';
+						}
+
+					echo '</span>';
+				}
+			}
+
+			twentyseventeen_edit_link();
+
+		echo '</footer> <!-- .entry-footer -->';
+	}
+}
+endif;
+
+
+if ( ! function_exists( 'twentyseventeen_edit_link' ) ) :
+/**
+ * Returns an accessibility-friendly link to edit a post or page.
+ *
+ * This also gives us a little context about what exactly we're editing
+ * (post or page?) so that users understand a bit more where they are in terms
+ * of the template hierarchy and their content. Helpful when/if the single-page
+ * layout with multiple posts/pages shown gets confusing.
+ */
+function twentyseventeen_edit_link() {
+
+	$link = edit_post_link(
+		sprintf(
+			/* translators: %s: Name of current post */
+			__( 'Edit<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
+			get_the_title()
+		),
+		'<span class="edit-link">',
+		'</span>'
+	);
+
+	return $link;
+}
+endif;
+
+/**
+ * Display a front page section.
+ *
+ * @param $partial WP_Customize_Partial Partial associated with a selective refresh request.
+ * @param $id integer Front page section to display.
+ */
+function twentyseventeen_front_page_section( $partial = null, $id = 0 ) {
+	if ( is_a( $partial, 'WP_Customize_Partial' ) ) {
+		// Find out the id and set it up during a selective refresh.
+		global $twentyseventeencounter;
+		$id = str_replace( 'panel_', '', $partial->id );
+		$twentyseventeencounter = $id;
+	}
+
+	global $post; // Modify the global post object before setting up post data.
+	if ( get_theme_mod( 'panel_' . $id ) ) {
+		global $post;
+		$post = get_post( get_theme_mod( 'panel_' . $id ) );
+		setup_postdata( $post );
+		set_query_var( 'panel', $id );
+
+		get_template_part( 'template-parts/page/content', 'front-page-panels' );
+
+		wp_reset_postdata();
+	} elseif ( is_customize_preview() ) {
+		// The output placeholder anchor.
+		echo '<article class="panel-placeholder panel twentyseventeen-panel twentyseventeen-panel' . $id . '" id="panel' . $id . '"><span class="twentyseventeen-panel-title">' . sprintf( __( 'Front Page Section %1$s Placeholder', 'twentyseventeen' ), $id ) . '</span></article>';
+	}
+}
+
+/**
+ * Returns true if a blog has more than 1 category.
+ *
+ * @return bool
+ */
+function twentyseventeen_categorized_blog() {
+	$category_count = get_transient( 'twentyseventeen_categories' );
+
+	if ( false === $category_count ) {
+		// Create an array of all the categories that are attached to posts.
+		$categories = get_categories( array(
+			'fields'     => 'ids',
+			'hide_empty' => 1,
+			// We only need to know if there is more than one category.
+			'number'     => 2,
+		) );
+
+		// Count the number of categories that are attached to the posts.
+		$category_count = count( $categories );
+
+		set_transient( 'twentyseventeen_categories', $category_count );
+	}
+
+	return $category_count > 1;
+}
+
+
+/**
+ * Flush out the transients used in twentyseventeen_categorized_blog.
+ */
+function twentyseventeen_category_transient_flusher() {
+	if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
+		return;
+	}
+	// Like, beat it. Dig?
+	delete_transient( 'twentyseventeen_categories' );
+}
+add_action( 'edit_category', 'twentyseventeen_category_transient_flusher' );
+add_action( 'save_post',     'twentyseventeen_category_transient_flusher' );
diff --git a/wp-content/themes/twentyseventeen/index.php b/wp-content/themes/twentyseventeen/index.php
new file mode 100644
index 000000000..78d1b4c93
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/index.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * The main template file
+ *
+ * This is the most generic template file in a WordPress theme
+ * and one of the two required files for a theme (the other being style.css).
+ * It is used to display a page when nothing more specific matches a query.
+ * E.g., it puts together the home page when no home.php file exists.
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+get_header(); ?>
+
+<div class="wrap">
+	<?php if ( is_home() && ! is_front_page() ) : ?>
+		<header class="page-header">
+			<h1 class="page-title"><?php single_post_title(); ?></h1>
+		</header>
+	<?php else : ?>
+	<header class="page-header">
+		<h2 class="page-title"><?php _e( 'Posts', 'twentyseventeen' ); ?></h2>
+	</header>
+	<?php endif; ?>
+
+	<div id="primary" class="content-area">
+		<main id="main" class="site-main" role="main">
+
+			<?php
+			if ( have_posts() ) :
+
+				/* Start the Loop */
+				while ( have_posts() ) : the_post();
+
+					/*
+					 * Include the Post-Format-specific template for the content.
+					 * If you want to override this in a child theme, then include a file
+					 * called content-___.php (where ___ is the Post Format name) and that will be used instead.
+					 */
+					get_template_part( 'template-parts/post/content', get_post_format() );
+
+				endwhile;
+
+				the_posts_pagination( array(
+					'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous page', 'twentyseventeen' ) . '</span>',
+					'next_text' => '<span class="screen-reader-text">' . __( 'Next page', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ),
+					'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyseventeen' ) . ' </span>',
+				) );
+
+			else :
+
+				get_template_part( 'template-parts/post/content', 'none' );
+
+			endif;
+			?>
+
+		</main><!-- #main -->
+	</div><!-- #primary -->
+	<?php get_sidebar(); ?>
+</div><!-- .wrap -->
+
+<?php get_footer();
diff --git a/wp-content/themes/twentyseventeen/page.php b/wp-content/themes/twentyseventeen/page.php
new file mode 100644
index 000000000..96211f49d
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/page.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * The template for displaying all pages
+ *
+ * This is the template that displays all pages by default.
+ * Please note that this is the WordPress construct of pages
+ * and that other 'pages' on your WordPress site may use a
+ * different template.
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+get_header(); ?>
+
+<div class="wrap">
+	<div id="primary" class="content-area">
+		<main id="main" class="site-main" role="main">
+
+			<?php
+			while ( have_posts() ) : the_post();
+
+				get_template_part( 'template-parts/page/content', 'page' );
+
+				// If comments are open or we have at least one comment, load up the comment template.
+				if ( comments_open() || get_comments_number() ) :
+					comments_template();
+				endif;
+
+			endwhile; // End of the loop.
+			?>
+
+		</main><!-- #main -->
+	</div><!-- #primary -->
+</div><!-- .wrap -->
+
+<?php get_footer();
diff --git a/wp-content/themes/twentyseventeen/rtl.css b/wp-content/themes/twentyseventeen/rtl.css
new file mode 100644
index 000000000..059355a8a
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/rtl.css
@@ -0,0 +1,546 @@
+/*
+Theme Name: Twenty Seventeen
+
+Adding support for languages written in a Right To Left (RTL) direction is easy,
+it's just a matter of overwriting all the horizontal positioning attributes
+of your CSS stylesheet in a separate stylesheet file named rtl.css.
+
+https://codex.wordpress.org/Right-to-Left_Language_Support
+
+*/
+
+/* Reset */
+
+body {
+	direction: rtl;
+	unicode-bidi: embed;
+}
+
+th {
+	text-align: right;
+}
+
+/* Accessibility */
+
+.screen-reader-text:focus {
+	left: auto;
+	right: 5px;
+}
+
+/* Typography */
+
+textarea {
+	padding-right: 3px;
+}
+
+li > ul,
+li > ol {
+	margin-left: 0;
+	margin-right: 1.5em;
+}
+
+th:first-child,
+td:first-child {
+	padding-left: 0.4em;
+	padding-right: 0;
+}
+
+th:last-child,
+td:last-child {
+	padding-left: 0;
+	padding-right: 0.4em;
+}
+
+/* Forms */
+
+input[type="radio"],
+input[type="checkbox"] {
+	margin-left: 0.5em;
+	margin-right: 0;
+}
+
+/* Media */
+
+.mejs-offscreen {
+	right: -10000px;
+}
+
+/* Site Branding */
+
+.custom-logo-link {
+	padding-left: 1em;
+	padding-right: 0;
+}
+
+/* Main Navigation */
+
+.main-navigation ul {
+	text-align: right;
+}
+
+.main-navigation ul ul {
+	padding-left: 0;
+	padding-right: 1.5em;
+}
+
+.menu-toggle .icon {
+	margin-left: 0.5em;
+	margin-right: 0;
+}
+
+.dropdown-toggle {
+	left: -0.5em;
+	right: auto;
+}
+
+/* Front Page */
+
+.wp-custom-header-video-button {
+	left: 30px;
+	right: auto;
+}
+
+.twentyseventeen-panel .recent-posts .entry-header .edit-link {
+	margin-left: 0;
+	margin-right: 1em;
+}
+
+/* Blog, Archive, Search */
+
+.blog .entry-meta a.post-edit-link,
+.archive .entry-meta a.post-edit-link,
+.search .entry-meta a.post-edit-link {
+	margin-left: 0;
+	margin-right: 1em;
+}
+
+.search .page .entry-meta a.post-edit-link {
+	margin-right: 0;
+}
+
+.sticky .icon-thumb-tack {
+	left: auto;
+	right: -1.5em;
+}
+
+.prev.page-numbers .icon,
+.next.page-numbers .icon {
+	display: inline-block;
+	-ms-transform: rotate(180deg); /* IE 9 */
+	-webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
+	transform: rotate(180deg);
+}
+
+.prev.page-numbers {
+	float: right;
+}
+
+.next.page-numbers {
+	float: left;
+}
+
+.nav-links .nav-previous .nav-title .nav-title-icon-wrapper {
+	margin-left: 0.5em;
+	margin-right: 0;
+}
+
+.nav-links .nav-next .nav-title .nav-title-icon-wrapper {
+	margin-left: 0;
+	margin-right: 0.5em;
+}
+
+/* Blog Entries */
+
+.entry-footer .cat-links,
+.entry-footer .tags-links {
+	padding-left: 0;
+	padding-right: 2.5em;
+}
+
+.entry-footer .cat-links .icon,
+.entry-footer .tags-links .icon {
+	left: auto;
+	margin-left: 0.5em;
+	margin-right: 0;
+	right: 0;
+}
+
+/* Comments */
+
+.comment-body {
+	margin-left: 0;
+	margin-right: 65px;
+}
+
+.comment-reply-link .icon {
+	left: auto;
+	right: -2em;
+	-webkit-transform: scale(-1, 1);
+	-ms-transform: scale(-1, 1);
+	transform: scale(-1, 1);
+}
+
+.comment-author .avatar {
+	left: auto;
+	right: -65px;
+}
+
+.comment-reply-link:before {
+	left: auto;
+	right: -2em;
+}
+
+.children .comment-author .avatar {
+	left: auto;
+	right: -45px;
+}
+
+.form-submit {
+	text-align: left;
+}
+
+/* Post Formats */
+
+.format-quote blockquote .icon {
+	left: auto;
+	right: -1.25em;
+	-webkit-transform: none;
+	-ms-transform: none;
+	transform: none;
+}
+
+/* Post Navigation */
+
+.nav-links .nav-previous .nav-title .nav-title-icon-wrapper,
+.nav-links .nav-next .nav-title .nav-title-icon-wrapper {
+	display: inline-block;
+	-ms-transform: rotate(180deg); /* IE 9 */
+	-webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
+	transform: rotate(180deg);
+}
+
+/* Widgets */
+
+.widget ul {
+	margin: 0;
+}
+
+.search-form .search-submit {
+	left: 3px;
+	right: auto;
+}
+
+.widget .tagcloud a,
+.widget.widget_tag_cloud a,
+.wp_widget_tag_cloud a {
+	float: right;
+	margin: 4px 0 0 4px !important; /* !important to override inline styles */
+}
+
+.widget ul li li {
+	padding-left: 0;
+	padding-right: 1.5rem;
+}
+
+/* Footer */
+
+.social-navigation a {
+	margin-left: 1em;
+	margin-right: 0;
+}
+
+/* Customizer styles */
+
+.twentyseventeen-customizer.twentyseventeen-front-page .twentyseventeen-panel .twentyseventeen-panel-title {
+	left: 3.2em;
+	right: auto;
+}
+
+/* Gallery Styles */
+
+.gallery-item,
+.gallery-caption {
+	text-align: right;
+}
+
+/* SVG Fallback */
+
+.no-svg .dropdown-toggle {
+	left: 0;
+	right: auto;
+}
+
+/* Media queries */
+
+@media screen and (min-width: 48em) {
+
+	body.page-template-full-width-page #primary {
+		float: none;
+	}
+
+	.has-sidebar:not(.error404) #primary {
+		float: right;
+	}
+
+	.has-sidebar #secondary {
+		float: left;
+	}
+
+	.error404 #primary {
+		float: none;
+	}
+
+	/* Site Branding */
+
+	.custom-logo-link {
+		padding-left: 2em;
+		padding-right: 0;
+	}
+
+	/* Navigation */
+
+	.main-navigation ul ul {
+		padding-right: 0;
+	}
+
+	.main-navigation ul ul:before,
+	.main-navigation ul ul:after {
+		left: 0.5em;
+		right: auto;
+	}
+
+	.main-navigation ul ul,
+	.main-navigation ul ul ul {
+		left: auto;
+		right: -999em;
+	}
+
+	.main-navigation ul ul li:hover > ul,
+	.main-navigation ul ul li.focus > ul {
+		left: auto;
+		right: 100%;
+	}
+
+	.main-navigation ul li:hover > ul,
+	.main-navigation ul li.focus > ul {
+		left: auto;
+		right: 0.5em;
+	}
+
+	.main-navigation ul li.menu-item-has-children:before,
+	.main-navigation ul li.menu-item-has-children:after,
+	.main-navigation ul li.page_item_has_children:before,
+	.main-navigation ul li.page_item_has_children:after {
+		left: 1em;
+		right: auto;
+	}
+
+	.main-navigation .menu-item-has-children > a > .icon,
+	.main-navigation .page_item_has_children > a > .icon {
+		left: auto;
+		right: 5px;
+	}
+
+	.main-navigation ul ul .menu-item-has-children > a > .icon,
+	.main-navigation ul ul .page_item_has_children > a > .icon {
+		left: 1em;
+		right: auto;
+		-webkit-transform: rotate(90deg);
+		-ms-transform: rotate(90deg);
+		transform: rotate(90deg);
+	}
+
+	/* Scroll down arrow */
+
+	.navigation-top .menu-scroll-down {
+		left: 0;
+		right: auto;
+	}
+
+	.site-header .menu-scroll-down {
+		left: 0;
+		right: auto;
+	}
+
+	.entry-title a {
+		margin-left: auto;
+		margin-right: -2px;
+	}
+
+	/* Front Page */
+
+	.page-two-column .panel-content .entry-header {
+		float: right;
+	}
+
+	.page-two-column .panel-content .entry-content {
+		float: left;
+	}
+
+	/* Front Page - Recent Posts */
+
+	.page-two-column .panel-content .recent-posts {
+		clear: left;
+		float: left;
+	}
+
+	/* Blog, Archive, Search */
+
+	.sticky .icon-thumb-tack {
+		left: auto;
+		right: -2.5em;
+	}
+
+	body:not(.has-sidebar):not(.page-one-column) .page-header,
+	body.has-sidebar.error404 #primary .page-header,
+	body.page-two-column:not(.archive) #primary .entry-header,
+	body.page-two-column.archive:not(.has-sidebar) #primary .page-header {
+		float: right;
+	}
+
+	.blog:not(.has-sidebar) #primary article,
+	.archive:not(.has-sidebar):not(.page-one-column) #primary article,
+	.search:not(.has-sidebar) #primary article,
+	.has-sidebar.error404 #primary .page-content,
+	.error404.has-sidebar #primary .page-content,
+	body.page-two-column:not(.archive) #primary .entry-content,
+	body.page-two-column #comments {
+		float: left;
+	}
+
+	.entry-footer .edit-link a.post-edit-link {
+		margin-left: 0;
+		margin-right: 1em;
+	}
+
+	/* Entry content */
+
+	/* with sidebar */
+
+	.has-sidebar .entry-content blockquote.alignleft {
+		margin-left: 0;
+		width: 34%;
+	}
+
+	.has-sidebar #primary .entry-content blockquote.alignright,
+	.has-sidebar #primary .entry-content blockquote.alignright.below-entry-meta {
+		margin-right: 0;
+		width: 34%;
+	}
+
+	.has-sidebar #primary .entry-content blockquote.alignleft.below-entry-meta {
+		margin-left: -72.5%;
+		width: 62%;
+	}
+
+	/* blog index and archive */
+
+	.blog:not(.has-sidebar) .entry-content blockquote.alignleft,
+	.twentyseventeen-front-page.page-two-column .entry-content blockquote.alignleft,
+	.archive:not(.has-sidebar) .entry-content blockquote.alignleft,
+	.page-two-column .entry-content blockquote.alignleft {
+		margin-left: 0;
+		width: 34%;
+	}
+
+	.blog:not(.has-sidebar) .entry-content blockquote.alignright,
+	.twentyseventeen-front-page.page-two-column #primary .entry-content blockquote.alignright,
+	.archive:not(.has-sidebar) .entry-content blockquote.alignright,
+	.page-two-column #primary .entry-content blockquote.alignright {
+		margin-right: -72.5%;
+		width: 62%;
+	}
+
+	/* Post formats */
+
+	.format-quote blockquote .icon {
+		left: auto;
+		right: -1.5em;
+	}
+
+	.navigation.pagination {
+		float: left;
+	}
+
+	.has-sidebar .navigation.pagination,
+	.archive.page-one-column:not(.has-sidebar) .navigation.pagination {
+		float: none;
+	}
+
+	.post-navigation .nav-previous {
+		float: right;
+	}
+
+	.post-navigation .nav-next {
+		float: left;
+		text-align: left;
+	}
+
+	/* Comments */
+
+	ol.children .children {
+		padding-left: 0;
+		padding-right: 2em;
+	}
+
+	/* Post Navigation */
+
+	.nav-links .nav-previous .nav-title .nav-title-icon-wrapper {
+		left: auto;
+		right: -2em;
+	}
+
+	.nav-links .nav-next .nav-title .nav-title-icon-wrapper {
+		left: -2em;
+		right: auto;
+	}
+
+	/* Footer */
+
+	.site-footer .widget-column.footer-widget-1 {
+		float: right;
+	}
+
+	.site-footer .widget-column.footer-widget-2 {
+		float: left;
+	}
+
+	.social-navigation {
+		clear: right;
+		float: right;
+	}
+
+	.site-info {
+		float: right;
+	}
+
+	.social-navigation + .site-info {
+		margin-left: 0;
+		margin-right: 6%;
+	}
+}
+
+@media screen and (min-width: 67em) {
+
+	/* Sticky posts */
+
+	.sticky .icon-thumb-tack {
+		left: auto;
+		right: -1.25em;
+	}
+}
+
+@media screen and (min-width: 79em) {
+
+	.has-sidebar #primary .entry-content blockquote.alignright,
+	.has-sidebar #primary .entry-content blockquote.alignright.below-entry-meta {
+		margin-right: -20%;
+	}
+
+	.blog:not(.has-sidebar) .entry-content blockquote.alignleft,
+	.archive:not(.has-sidebar) .entry-content blockquote.alignleft,
+	.page-two-column .entry-content blockquote.alignleft,
+	.twentyseventeen-front-page .entry-content blockquote.alignleft {
+		margin-left: -20%;
+	}
+}
diff --git a/wp-content/themes/twentyseventeen/screenshot.png b/wp-content/themes/twentyseventeen/screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..088b7413e7a88c9d135af933a4d715dae5690441
GIT binary patch
literal 363833
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%0A5+{zj3ys@WWWY4OI6YU9Xt*bW_
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
W!SES;tgZ|U3=E#GelF{r5}E*;-E?^X

literal 0
HcmV?d00001

diff --git a/wp-content/themes/twentyseventeen/search.php b/wp-content/themes/twentyseventeen/search.php
new file mode 100644
index 000000000..c6967f203
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/search.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * The template for displaying search results pages
+ *
+ * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#search-result
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+get_header(); ?>
+
+<div class="wrap">
+
+	<header class="page-header">
+		<?php if ( have_posts() ) : ?>
+			<h1 class="page-title"><?php printf( __( 'Search Results for: %s', 'twentyseventeen' ), '<span>' . get_search_query() . '</span>' ); ?></h1>
+		<?php else : ?>
+			<h1 class="page-title"><?php _e( 'Nothing Found', 'twentyseventeen' ); ?></h1>
+		<?php endif; ?>
+	</header><!-- .page-header -->
+
+	<div id="primary" class="content-area">
+		<main id="main" class="site-main" role="main">
+
+		<?php
+		if ( have_posts() ) :
+			/* Start the Loop */
+			while ( have_posts() ) : the_post();
+
+				/**
+				 * Run the loop for the search to output the results.
+				 * If you want to overload this in a child theme then include a file
+				 * called content-search.php and that will be used instead.
+				 */
+				get_template_part( 'template-parts/post/content', 'excerpt' );
+
+			endwhile; // End of the loop.
+
+			the_posts_pagination( array(
+				'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous page', 'twentyseventeen' ) . '</span>',
+				'next_text' => '<span class="screen-reader-text">' . __( 'Next page', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ),
+				'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyseventeen' ) . ' </span>',
+			) );
+
+		else : ?>
+
+			<p><?php _e( 'Sorry, but nothing matched your search terms. Please try again with some different keywords.', 'twentyseventeen' ); ?></p>
+			<?php
+				get_search_form();
+
+		endif;
+		?>
+
+		</main><!-- #main -->
+	</div><!-- #primary -->
+	<?php get_sidebar(); ?>
+</div><!-- .wrap -->
+
+<?php get_footer();
diff --git a/wp-content/themes/twentyseventeen/searchform.php b/wp-content/themes/twentyseventeen/searchform.php
new file mode 100644
index 000000000..ab6071409
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/searchform.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Template for displaying search forms in Twenty Seventeen
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+?>
+
+<?php $unique_id = esc_attr( uniqid( 'search-form-' ) ); ?>
+
+<form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
+	<label for="<?php echo $unique_id; ?>">
+		<span class="screen-reader-text"><?php echo _x( 'Search for:', 'label', 'twentyseventeen' ); ?></span>
+	</label>
+	<input type="search" id="<?php echo $unique_id; ?>" class="search-field" placeholder="<?php echo esc_attr_x( 'Search &hellip;', 'placeholder', 'twentyseventeen' ); ?>" value="<?php echo get_search_query(); ?>" name="s" />
+	<button type="submit" class="search-submit"><?php echo twentyseventeen_get_svg( array( 'icon' => 'search' ) ); ?><span class="screen-reader-text"><?php echo _x( 'Search', 'submit button', 'twentyseventeen' ); ?></span></button>
+</form>
diff --git a/wp-content/themes/twentyseventeen/sidebar.php b/wp-content/themes/twentyseventeen/sidebar.php
new file mode 100644
index 000000000..ae1761af2
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/sidebar.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * The sidebar containing the main widget area
+ *
+ * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+if ( ! is_active_sidebar( 'sidebar-1' ) ) {
+	return;
+}
+?>
+
+<aside id="secondary" class="widget-area" role="complementary">
+	<?php dynamic_sidebar( 'sidebar-1' ); ?>
+</aside><!-- #secondary -->
diff --git a/wp-content/themes/twentyseventeen/single.php b/wp-content/themes/twentyseventeen/single.php
new file mode 100644
index 000000000..af7671b5b
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/single.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * The template for displaying all single posts
+ *
+ * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#single-post
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+get_header(); ?>
+
+<div class="wrap">
+	<div id="primary" class="content-area">
+		<main id="main" class="site-main" role="main">
+
+			<?php
+				/* Start the Loop */
+				while ( have_posts() ) : the_post();
+
+					get_template_part( 'template-parts/post/content', get_post_format() );
+
+					// If comments are open or we have at least one comment, load up the comment template.
+					if ( comments_open() || get_comments_number() ) :
+						comments_template();
+					endif;
+
+					the_post_navigation( array(
+						'prev_text' => '<span class="screen-reader-text">' . __( 'Previous Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Previous', 'twentyseventeen' ) . '</span> <span class="nav-title"><span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '</span>%title</span>',
+						'next_text' => '<span class="screen-reader-text">' . __( 'Next Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Next', 'twentyseventeen' ) . '</span> <span class="nav-title">%title<span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ) . '</span></span>',
+					) );
+
+				endwhile; // End of the loop.
+			?>
+
+		</main><!-- #main -->
+	</div><!-- #primary -->
+	<?php get_sidebar(); ?>
+</div><!-- .wrap -->
+
+<?php get_footer();
diff --git a/wp-content/themes/twentyseventeen/style.css b/wp-content/themes/twentyseventeen/style.css
new file mode 100644
index 000000000..fd8543be0
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/style.css
@@ -0,0 +1,4235 @@
+/*
+Theme Name: Twenty Seventeen
+Theme URI: https://wordpress.org/themes/twentyseventeen/
+Author: the WordPress team
+Author URI: https://wordpress.org/
+Description: Twenty Seventeen brings your site to life with header video and immersive featured images. With a focus on business sites, it features multiple sections on the front page as well as widgets, navigation and social menus, a logo, and more. Personalize its asymmetrical grid with a custom color scheme and showcase your multimedia content with post formats. Our default theme for 2017 works great in many languages, for any abilities, and on any device.
+Version: 1.0
+License: GNU General Public License v2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+Text Domain: twentyseventeen
+Tags: one-column, two-columns, right-sidebar, flexible-header, accessibility-ready, custom-colors, custom-header, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready
+
+This theme, like WordPress, is licensed under the GPL.
+Use it to make something cool, have fun, and share what you've learned with others.
+*/
+
+/*--------------------------------------------------------------
+>>> TABLE OF CONTENTS:
+----------------------------------------------------------------
+1.0 Normalize
+2.0 Accessibility
+3.0 Alignments
+4.0 Clearings
+5.0 Typography
+6.0 Forms
+7.0 Formatting
+8.0 Lists
+9.0 Tables
+10.0 Links
+11.0 Featured Image Hover
+12.0 Navigation
+13.0 Layout
+   13.1 Header
+   13.2 Front Page
+   13.3 Regular Content
+   13.4 Posts
+   13.5 Pages
+   13.6 Footer
+14.0 Comments
+15.0 Widgets
+16.0 Media
+   16.1 Galleries
+17.0 Customizer
+18.0 SVGs Fallbacks
+19.0 Media Queries
+20.0 Print
+--------------------------------------------------------------*/
+
+/*--------------------------------------------------------------
+1.0 Normalize
+Styles based on Normalize v5.0.0 @link https://github.com/necolas/normalize.css
+--------------------------------------------------------------*/
+
+html {
+	font-family: sans-serif;
+	line-height: 1.15;
+	-ms-text-size-adjust: 100%;
+	-webkit-text-size-adjust: 100%;
+}
+
+body {
+	margin: 0;
+}
+
+article,
+aside,
+footer,
+header,
+nav,
+section {
+	display: block;
+}
+
+h1 {
+	font-size: 2em;
+	margin: 0.67em 0;
+}
+
+figcaption,
+figure,
+main {
+	display: block;
+}
+
+figure {
+	margin: 1em 0;
+}
+
+hr {
+	-webkit-box-sizing: content-box;
+	-moz-box-sizing: content-box;
+	box-sizing: content-box;
+	height: 0;
+	overflow: visible;
+}
+
+pre {
+	font-family: monospace, monospace;
+	font-size: 1em;
+}
+
+a {
+	background-color: transparent;
+	-webkit-text-decoration-skip: objects;
+}
+
+a:active,
+a:hover {
+	outline-width: 0;
+}
+
+abbr[title] {
+	border-bottom: 1px #767676 dotted;
+	text-decoration: none;
+}
+
+b,
+strong {
+	font-weight: inherit;
+}
+
+b,
+strong {
+	font-weight: 700;
+}
+
+code,
+kbd,
+samp {
+	font-family: monospace, monospace;
+	font-size: 1em;
+}
+
+dfn {
+	font-style: italic;
+}
+
+mark {
+	background-color: #eee;
+	color: #222;
+}
+
+small {
+	font-size: 80%;
+}
+
+sub,
+sup {
+	font-size: 75%;
+	line-height: 0;
+	position: relative;
+	vertical-align: baseline;
+}
+
+sub {
+	bottom: -0.25em;
+}
+
+sup {
+	top: -0.5em;
+}
+
+audio,
+video {
+	display: inline-block;
+}
+
+audio:not([controls]) {
+	display: none;
+	height: 0;
+}
+
+img {
+	border-style: none;
+}
+
+svg:not(:root) {
+	overflow: hidden;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+	font-family: sans-serif;
+	font-size: 100%;
+	line-height: 1.15;
+	margin: 0;
+}
+
+button,
+input {
+	overflow: visible;
+}
+
+button,
+select {
+	text-transform: none;
+}
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+	-webkit-appearance: button;
+}
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+	border-style: none;
+	padding: 0;
+}
+
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+	outline: 1px dotted ButtonText;
+}
+
+fieldset {
+	border: 1px solid #bbb;
+	margin: 0 2px;
+	padding: 0.35em 0.625em 0.75em;
+}
+
+legend {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	color: inherit;
+	display: table;
+	max-width: 100%;
+	padding: 0;
+	white-space: normal;
+}
+
+progress {
+	display: inline-block;
+	vertical-align: baseline;
+}
+
+textarea {
+	overflow: auto;
+}
+
+[type="checkbox"],
+[type="radio"] {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	padding: 0;
+}
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+	height: auto;
+}
+
+[type="search"] {
+	-webkit-appearance: textfield;
+	outline-offset: -2px;
+}
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+	-webkit-appearance: none;
+}
+
+::-webkit-file-upload-button {
+	-webkit-appearance: button;
+	font: inherit;
+}
+
+details,
+menu {
+	display: block;
+}
+
+summary {
+	display: list-item;
+}
+
+canvas {
+	display: inline-block;
+}
+
+template {
+	display: none;
+}
+
+[hidden] {
+	display: none;
+}
+
+/*--------------------------------------------------------------
+2.0 Accessibility
+--------------------------------------------------------------*/
+
+/* Text meant only for screen readers. */
+
+.screen-reader-text {
+	clip: rect(1px, 1px, 1px, 1px);
+	height: 1px;
+	overflow: hidden;
+	position: absolute !important;
+	width: 1px;
+	word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */
+}
+
+.screen-reader-text:focus {
+	background-color: #f1f1f1;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	-webkit-box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
+	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
+	clip: auto !important;
+	color: #21759b;
+	display: block;
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 700;
+	height: auto;
+	left: 5px;
+	line-height: normal;
+	padding: 15px 23px 14px;
+	text-decoration: none;
+	top: 5px;
+	width: auto;
+	z-index: 100000; /* Above WP toolbar. */
+}
+
+/*--------------------------------------------------------------
+3.0 Alignments
+--------------------------------------------------------------*/
+
+.alignleft {
+	display: inline;
+	float: left;
+	margin-right: 1.5em;
+}
+
+.alignright {
+	display: inline;
+	float: right;
+	margin-left: 1.5em;
+}
+
+.aligncenter {
+	clear: both;
+	display: block;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+/*--------------------------------------------------------------
+4.0 Clearings
+--------------------------------------------------------------*/
+
+.clear:before,
+.clear:after,
+.entry-content:before,
+.entry-content:after,
+.entry-footer:before,
+.entry-footer:after,
+.comment-content:before,
+.comment-content:after,
+.site-header:before,
+.site-header:after,
+.site-content:before,
+.site-content:after,
+.site-footer:before,
+.site-footer:after,
+.nav-links:before,
+.nav-links:after,
+.pagination:before,
+.pagination:after,
+.comment-author:before,
+.comment-author:after,
+.widget-area:before,
+.widget-area:after,
+.widget:before,
+.widget:after,
+.comment-meta:before,
+.comment-meta:after {
+	content: "";
+	display: table;
+	table-layout: fixed;
+}
+
+.clear:after,
+.entry-content:after,
+.entry-footer:after,
+.comment-content:after,
+.site-header:after,
+.site-content:after,
+.site-footer:after,
+.nav-links:after,
+.pagination:after,
+.comment-author:after,
+.widget-area:after,
+.widget:after,
+.comment-meta:after {
+	clear: both;
+}
+
+/*--------------------------------------------------------------
+5.0 Typography
+--------------------------------------------------------------*/
+
+body,
+button,
+input,
+select,
+textarea {
+	color: #333;
+	font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
+	font-size: 15px;
+	font-size: 0.9375rem;
+	font-weight: 400;
+	line-height: 1.66;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+	clear: both;
+	line-height: 1.4;
+	margin: 0 0 0.75em;
+	padding: 1.5em 0 0;
+}
+
+h1:first-child,
+h2:first-child,
+h3:first-child,
+h4:first-child,
+h5:first-child,
+h6:first-child {
+	padding-top: 0;
+}
+
+h1 {
+	font-size: 24px;
+	font-size: 1.5rem;
+	font-weight: 300;
+}
+
+h2 {
+	color: #666;
+	font-size: 20px;
+	font-size: 1.25rem;
+	font-weight: 300;
+}
+
+h3 {
+	color: #333;
+	font-size: 18px;
+	font-size: 1.125rem;
+	font-weight: 300;
+}
+
+h4 {
+	color: #333;
+	font-size: 16px;
+	font-size: 1rem;
+	font-weight: 800;
+}
+
+h5 {
+	color: #767676;
+	font-size: 13px;
+	font-size: 0.8125rem;
+	font-weight: 800;
+	letter-spacing: 0.15em;
+	text-transform: uppercase;
+}
+
+h6 {
+	color: #333;
+	font-size: 15px;
+	font-size: 0.9375rem;
+	font-weight: 800;
+}
+
+p {
+	margin: 0 0 1.5em;
+	padding: 0;
+}
+
+dfn,
+cite,
+em,
+i {
+	font-style: italic;
+}
+
+blockquote {
+	color: #666;
+	font-size: 18px;
+	font-size: 1.125rem;
+	font-style: italic;
+	line-height: 1.7;
+	margin: 0;
+	overflow: hidden;
+	padding: 0;
+}
+
+blockquote cite {
+	display: block;
+	font-style: normal;
+	font-weight: 600;
+	margin-top: 0.5em;
+}
+
+address {
+	margin: 0 0 1.5em;
+}
+
+pre {
+	background: #eee;
+	font-family: "Courier 10 Pitch", Courier, monospace;
+	font-size: 15px;
+	font-size: 0.9375rem;
+	line-height: 1.6;
+	margin-bottom: 1.6em;
+	max-width: 100%;
+	overflow: auto;
+	padding: 1.6em;
+}
+
+code,
+kbd,
+tt,
+var {
+	font-family: Monaco, Consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
+	font-size: 15px;
+	font-size: 0.9375rem;
+}
+
+abbr,
+acronym {
+	border-bottom: 1px dotted #666;
+	cursor: help;
+}
+
+mark,
+ins {
+	background: #eee;
+	text-decoration: none;
+}
+
+big {
+	font-size: 125%;
+}
+
+blockquote {
+	quotes: "" "";
+}
+
+q {
+	quotes: "“" "”" "‘" "’";
+}
+
+blockquote:before,
+blockquote:after {
+	content: "";
+}
+
+:focus {
+	outline: none;
+}
+
+/* Typography for Arabic Font */
+
+html[lang="ar"] body,
+html[lang="ar"] button,
+html[lang="ar"] input,
+html[lang="ar"] select,
+html[lang="ar"] textarea,
+html[lang="ary"] body,
+html[lang="ary"] button,
+html[lang="ary"] input,
+html[lang="ary"] select,
+html[lang="ary"] textarea,
+html[lang="azb"] body,
+html[lang="azb"] button,
+html[lang="azb"] input,
+html[lang="azb"] select,
+html[lang="azb"] textarea,
+html[lang="fa-IR"] body,
+html[lang="fa-IR"] button,
+html[lang="fa-IR"] input,
+html[lang="fa-IR"] select,
+html[lang="fa-IR"] textarea,
+html[lang="haz"] body,
+html[lang="haz"] button,
+html[lang="haz"] input,
+html[lang="haz"] select,
+html[lang="haz"] textarea,
+html[lang="ps"] body,
+html[lang="ps"] button,
+html[lang="ps"] input,
+html[lang="ps"] select,
+html[lang="ps"] textarea,
+html[lang="ur"] body,
+html[lang="ur"] button,
+html[lang="ur"] input,
+html[lang="ur"] select,
+html[lang="ur"] textarea {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+html[lang="ar"] h1,
+html[lang="ar"] h2,
+html[lang="ar"] h3,
+html[lang="ar"] h4,
+html[lang="ar"] h5,
+html[lang="ar"] h6,
+html[lang="ary"] h1,
+html[lang="ary"] h2,
+html[lang="ary"] h3,
+html[lang="ary"] h4,
+html[lang="ary"] h5,
+html[lang="ary"] h6,
+html[lang="azb"] h1,
+html[lang="azb"] h2,
+html[lang="azb"] h3,
+html[lang="azb"] h4,
+html[lang="azb"] h5,
+html[lang="azb"] h6,
+html[lang="fa-IR"] h1,
+html[lang="fa-IR"] h2,
+html[lang="fa-IR"] h3,
+html[lang="fa-IR"] h4,
+html[lang="fa-IR"] h5,
+html[lang="fa-IR"] h6,
+html[lang="haz"] h1,
+html[lang="haz"] h2,
+html[lang="haz"] h3,
+html[lang="haz"] h4,
+html[lang="haz"] h5,
+html[lang="haz"] h6,
+html[lang="ps"] h1,
+html[lang="ps"] h2,
+html[lang="ps"] h3,
+html[lang="ps"] h4,
+html[lang="ps"] h5,
+html[lang="ps"] h6,
+html[lang="ur"] h1,
+html[lang="ur"] h2,
+html[lang="ur"] h3,
+html[lang="ur"] h4,
+html[lang="ur"] h5,
+html[lang="ur"] h6 {
+	font-weight: 700;
+}
+
+/* Typography for Chinese Font */
+
+html[lang^="zh-"] body,
+html[lang^="zh-"] button,
+html[lang^="zh-"] input,
+html[lang^="zh-"] select,
+html[lang^="zh-"] textarea {
+	font-family: "PingFang TC", "Helvetica Neue", Helvetica, STHeitiTC-Light, Arial, sans-serif;
+}
+
+html[lang^="zh-"] h1,
+html[lang^="zh-"] h2,
+html[lang^="zh-"] h3,
+html[lang^="zh-"] h4,
+html[lang^="zh-"] h5,
+html[lang^="zh-"] h6 {
+	font-weight: 700;
+}
+
+/* Typography for Cyrillic Font */
+
+html[lang="bg-BG"] body,
+html[lang="bg-BG"] button,
+html[lang="bg-BG"] input,
+html[lang="bg-BG"] select,
+html[lang="bg-BG"] textarea,
+html[lang="ru-RU"] body,
+html[lang="ru-RU"] button,
+html[lang="ru-RU"] input,
+html[lang="ru-RU"] select,
+html[lang="ru-RU"] textarea,
+html[lang="uk"] body,
+html[lang="uk"] button,
+html[lang="uk"] input,
+html[lang="uk"] select,
+html[lang="uk"] textarea {
+	font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, sans-serif;
+}
+
+html[lang="bg-BG"] h1,
+html[lang="bg-BG"] h2,
+html[lang="bg-BG"] h3,
+html[lang="bg-BG"] h4,
+html[lang="bg-BG"] h5,
+html[lang="bg-BG"] h6,
+html[lang="ru-RU"] h1,
+html[lang="ru-RU"] h2,
+html[lang="ru-RU"] h3,
+html[lang="ru-RU"] h4,
+html[lang="ru-RU"] h5,
+html[lang="ru-RU"] h6,
+html[lang="uk"] h1,
+html[lang="uk"] h2,
+html[lang="uk"] h3,
+html[lang="uk"] h4,
+html[lang="uk"] h5,
+html[lang="uk"] h6 {
+	font-weight: 700;
+	line-height: 1.2;
+}
+
+/* Typography for Devanagari Font */
+
+html[lang="bn-BD"] body,
+html[lang="bn-BD"] button,
+html[lang="bn-BD"] input,
+html[lang="bn-BD"] select,
+html[lang="bn-BD"] textarea,
+html[lang="hi-IN"] body,
+html[lang="hi-IN"] button,
+html[lang="hi-IN"] input,
+html[lang="hi-IN"] select,
+html[lang="hi-IN"] textarea,
+html[lang="mr-IN"] body,
+html[lang="mr-IN"] button,
+html[lang="mr-IN"] input,
+html[lang="mr-IN"] select,
+html[lang="mr-IN"] textarea {
+	font-family: Arial, sans-serif;
+}
+
+html[lang="bn-BD"] h1,
+html[lang="bn-BD"] h2,
+html[lang="bn-BD"] h3,
+html[lang="bn-BD"] h4,
+html[lang="bn-BD"] h5,
+html[lang="bn-BD"] h6,
+html[lang="hi-IN"] h1,
+html[lang="hi-IN"] h2,
+html[lang="hi-IN"] h3,
+html[lang="hi-IN"] h4,
+html[lang="hi-IN"] h5,
+html[lang="hi-IN"] h6,
+html[lang="mr-IN"] h1,
+html[lang="mr-IN"] h2,
+html[lang="mr-IN"] h3,
+html[lang="mr-IN"] h4,
+html[lang="mr-IN"] h5,
+html[lang="mr-IN"] h6 {
+	font-weight: 700;
+}
+
+/* Typography for Greek Font */
+
+html[lang="el"] body,
+html[lang="el"] button,
+html[lang="el"] input,
+html[lang="el"] select,
+html[lang="el"] textarea {
+	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+
+html[lang="el"] h1,
+html[lang="el"] h2,
+html[lang="el"] h3,
+html[lang="el"] h4,
+html[lang="el"] h5,
+html[lang="el"] h6 {
+	font-weight: 700;
+	line-height: 1.3;
+}
+
+/* Typography for Gujarati Font */
+
+html[lang="gu-IN"] body,
+html[lang="gu-IN"] button,
+html[lang="gu-IN"] input,
+html[lang="gu-IN"] select,
+html[lang="gu-IN"] textarea {
+	font-family: Arial, sans-serif;
+}
+
+html[lang="gu-IN"] h1,
+html[lang="gu-IN"] h2,
+html[lang="gu-IN"] h3,
+html[lang="gu-IN"] h4,
+html[lang="gu-IN"] h5,
+html[lang="gu-IN"] h6 {
+	font-weight: 700;
+}
+
+/* Typography for Hebrew Font */
+
+html[lang="he-IL"] body,
+html[lang="he-IL"] button,
+html[lang="he-IL"] input,
+html[lang="he-IL"] select,
+html[lang="he-IL"] textarea {
+	font-family: "Arial Hebrew", Arial, sans-serif;
+}
+
+html[lang="he-IL"] h1,
+html[lang="he-IL"] h2,
+html[lang="he-IL"] h3,
+html[lang="he-IL"] h4,
+html[lang="he-IL"] h5,
+html[lang="he-IL"] h6 {
+	font-weight: 700;
+}
+
+/* Typography for Japanese Font */
+
+html[lang="ja"] body,
+html[lang="ja"] button,
+html[lang="ja"] input,
+html[lang="ja"] select,
+html[lang="ja"] textarea {
+	font-family: "Hiragino Kaku Gothic Pro", Meiryo, sans-serif;
+}
+
+html[lang="ja"] h1,
+html[lang="ja"] h2,
+html[lang="ja"] h3,
+html[lang="ja"] h4,
+html[lang="ja"] h5,
+html[lang="ja"] h6 {
+	font-weight: 700;
+}
+
+/* Typography for Korean font */
+
+html[lang="ko-KR"] body,
+html[lang="ko-KR"] button,
+html[lang="ko-KR"] input,
+html[lang="ko-KR"] select,
+html[lang="ko-KR"] textarea {
+	font-family: "Apple SD Gothic Neo", "Malgun Gothic", "Nanum Gothic", Dotum, sans-serif;
+}
+
+html[lang="ko-KR"] h1,
+html[lang="ko-KR"] h2,
+html[lang="ko-KR"] h3,
+html[lang="ko-KR"] h4,
+html[lang="ko-KR"] h5,
+html[lang="ko-KR"] h6 {
+	font-weight: 600;
+}
+
+/* Typography for Thai Font */
+
+html[lang="th"] h1,
+html[lang="th"] h2,
+html[lang="th"] h3,
+html[lang="th"] h4,
+html[lang="th"] h5,
+html[lang="th"] h6 {
+	line-height: 1.65;
+	font-family: "Sukhumvit Set", "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+
+html[lang="th"] body,
+html[lang="th"] button,
+html[lang="th"] input,
+html[lang="th"] select,
+html[lang="th"] textarea {
+	line-height: 1.8;
+	font-family: "Sukhumvit Set", "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+
+/* Remove letter-spacing for all non-latin alphabets */
+
+html[lang="ar"] *,
+html[lang="ary"] *,
+html[lang="azb"] *,
+html[lang="haz"] *,
+html[lang="ps"] *,
+html[lang^="zh-"] *,
+html[lang="bg-BG"] *,
+html[lang="ru-RU"] *,
+html[lang="uk"] *,
+html[lang="bn-BD"] *,
+html[lang="hi-IN"] *,
+html[lang="mr-IN"] *,
+html[lang="el"] *,
+html[lang="gu-IN"] *,
+html[lang="he-IL"] *,
+html[lang="ja"] *,
+html[lang="ko-KR"] *,
+html[lang="th"] * {
+	letter-spacing: 0 !important;
+}
+
+/*--------------------------------------------------------------
+6.0 Forms
+--------------------------------------------------------------*/
+
+label {
+	color: #333;
+	display: block;
+	font-weight: 800;
+	margin-bottom: 0.5em;
+}
+
+fieldset {
+	margin-bottom: 1em;
+}
+
+input[type="text"],
+input[type="email"],
+input[type="url"],
+input[type="password"],
+input[type="search"],
+input[type="number"],
+input[type="tel"],
+input[type="range"],
+input[type="date"],
+input[type="month"],
+input[type="week"],
+input[type="time"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="color"],
+textarea {
+	color: #666;
+	background: #fff;
+	background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));
+	border: 1px solid #bbb;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	display: block;
+	padding: 0.7em;
+	width: 100%;
+}
+
+input[type="text"]:focus,
+input[type="email"]:focus,
+input[type="url"]:focus,
+input[type="password"]:focus,
+input[type="search"]:focus,
+input[type="number"]:focus,
+input[type="tel"]:focus,
+input[type="range"]:focus,
+input[type="date"]:focus,
+input[type="month"]:focus,
+input[type="week"]:focus,
+input[type="time"]:focus,
+input[type="datetime"]:focus,
+input[type="datetime-local"]:focus,
+input[type="color"]:focus,
+textarea:focus {
+	color: #222;
+	border-color: #333;
+}
+
+select {
+	border: 1px solid #bbb;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	height: 3em;
+	max-width: 100%;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+	margin-right: 0.5em;
+}
+
+input[type="radio"] + label,
+input[type="checkbox"] + label {
+	font-weight: 400;
+}
+
+button,
+input[type="button"],
+input[type="submit"] {
+	background-color: #222;
+	border: 0;
+	-webkit-border-radius: 2px;
+	border-radius: 2px;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: #fff;
+	cursor: pointer;
+	display: inline-block;
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 800;
+	line-height: 1;
+	padding: 1em 2em;
+	text-shadow: none;
+	-webkit-transition: background 0.2s;
+	transition: background 0.2s;
+}
+
+input + button,
+input + input[type="button"],
+input + input[type="submit"] {
+	padding: 0.75em 2em;
+}
+
+button.secondary,
+input[type="reset"],
+input[type="button"].secondary,
+input[type="reset"].secondary,
+input[type="submit"].secondary {
+	background-color: #ddd;
+	color: #222;
+}
+
+button:hover,
+button:focus,
+input[type="button"]:hover,
+input[type="button"]:focus,
+input[type="submit"]:hover,
+input[type="submit"]:focus {
+	background: #767676;
+}
+
+button.secondary:hover,
+button.secondary:focus,
+input[type="reset"]:hover,
+input[type="reset"]:focus,
+input[type="button"].secondary:hover,
+input[type="button"].secondary:focus,
+input[type="reset"].secondary:hover,
+input[type="reset"].secondary:focus,
+input[type="submit"].secondary:hover,
+input[type="submit"].secondary:focus {
+	background: #bbb;
+}
+
+/* Placeholder text color -- selectors need to be separate to work. */
+::-webkit-input-placeholder {
+	color: #333;
+	font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
+}
+
+:-moz-placeholder {
+	color: #333;
+	font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
+}
+
+::-moz-placeholder {
+	color: #333;
+	font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
+	opacity: 1;
+	/* Since FF19 lowers the opacity of the placeholder by default */
+}
+
+:-ms-input-placeholder {
+	color: #333;
+	font-family: "Libre Franklin", "Helvetica Neue", helvetica, arial, sans-serif;
+}
+
+/*--------------------------------------------------------------
+7.0 Formatting
+--------------------------------------------------------------*/
+
+hr {
+	background-color: #bbb;
+	border: 0;
+	height: 1px;
+	margin-bottom: 1.5em;
+}
+
+/*--------------------------------------------------------------
+8.0 Lists
+--------------------------------------------------------------*/
+
+ul,
+ol {
+	margin: 0 0 1.5em;
+	padding: 0;
+}
+
+ul {
+	list-style: disc;
+}
+
+ol {
+	list-style: decimal;
+}
+
+li > ul,
+li > ol {
+	margin-bottom: 0;
+	margin-left: 1.5em;
+}
+
+dt {
+	font-weight: 700;
+}
+
+dd {
+	margin: 0 1.5em 1.5em;
+}
+
+/*--------------------------------------------------------------
+9.0 Tables
+--------------------------------------------------------------*/
+
+table {
+	border-collapse: collapse;
+	margin: 0 0 1.5em;
+	width: 100%;
+}
+
+thead th {
+	border-bottom: 2px solid #bbb;
+	padding-bottom: 0.5em;
+}
+
+th {
+	padding: 0.4em;
+	text-align: left;
+}
+
+tr {
+	border-bottom: 1px solid #eee;
+}
+
+td {
+	padding: 0.4em;
+}
+
+th:first-child,
+td:first-child {
+	padding-left: 0;
+}
+
+th:last-child,
+td:last-child {
+	padding-right: 0;
+}
+
+/*--------------------------------------------------------------
+10.0 Links
+--------------------------------------------------------------*/
+
+a {
+	color: #222;
+	text-decoration: none;
+}
+
+a:focus {
+	outline: thin dotted;
+}
+
+a:hover,
+a:active {
+	color: #000;
+	outline: 0;
+}
+
+/* Hover effects */
+
+.entry-content a,
+.entry-summary a,
+.widget a,
+.site-footer .widget-area a,
+.posts-navigation a,
+.widget_authors a strong {
+	-webkit-box-shadow: inset 0 -1px 0 rgba(15, 15, 15, 1);
+	box-shadow: inset 0 -1px 0 rgba(15, 15, 15, 1);
+	-webkit-transition: color 80ms ease-in, -webkit-box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, -webkit-box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, box-shadow 130ms ease-in-out, -webkit-box-shadow 130ms ease-in-out;
+}
+
+.entry-title a,
+.entry-meta a,
+.page-links a,
+.page-links a .page-number,
+.entry-footer a,
+.entry-footer .cat-links a,
+.entry-footer .tags-links a,
+.edit-link a,
+.post-navigation a,
+.logged-in-as a,
+.comment-navigation a,
+.comment-metadata a,
+.comment-metadata a.comment-edit-link,
+.comment-reply-link,
+a .nav-title,
+.pagination a,
+.comments-pagination a,
+.site-info a,
+.widget .widget-title a,
+.widget ul li a,
+.site-footer .widget-area ul li a,
+.site-footer .widget-area ul li a {
+	-webkit-box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 1);
+	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 1);
+	text-decoration: none;
+	-webkit-transition: color 80ms ease-in, -webkit-box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, -webkit-box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, box-shadow 130ms ease-in-out;
+	transition: color 80ms ease-in, box-shadow 130ms ease-in-out, -webkit-box-shadow 130ms ease-in-out;
+}
+
+.entry-content a:focus,
+.entry-content a:hover,
+.entry-summary a:focus,
+.entry-summary a:hover,
+.widget a:focus,
+.widget a:hover,
+.site-footer .widget-area a:focus,
+.site-footer .widget-area a:hover,
+.posts-navigation a:focus,
+.posts-navigation a:hover,
+.comment-metadata a:focus,
+.comment-metadata a:hover,
+.comment-metadata a.comment-edit-link:focus,
+.comment-metadata a.comment-edit-link:hover,
+.comment-reply-link:focus,
+.comment-reply-link:hover,
+.widget_authors a:focus strong,
+.widget_authors a:hover strong,
+.entry-title a:focus,
+.entry-title a:hover,
+.entry-meta a:focus,
+.entry-meta a:hover,
+.page-links a:focus .page-number,
+.page-links a:hover .page-number,
+.entry-footer a:focus,
+.entry-footer a:hover,
+.entry-footer .cat-links a:focus,
+.entry-footer .cat-links a:hover,
+.entry-footer .tags-links a:focus,
+.entry-footer .tags-links a:hover,
+.post-navigation a:focus,
+.post-navigation a:hover,
+.pagination a:not(.prev):not(.next):focus,
+.pagination a:not(.prev):not(.next):hover,
+.comments-pagination a:not(.prev):not(.next):focus,
+.comments-pagination a:not(.prev):not(.next):hover,
+.logged-in-as a:focus,
+.logged-in-as a:hover,
+a:focus .nav-title,
+a:hover .nav-title,
+.edit-link a:focus,
+.edit-link a:hover,
+.site-info a:focus,
+.site-info a:hover,
+.widget .widget-title a:focus,
+.widget .widget-title a:hover,
+.widget ul li a:focus,
+.widget ul li a:hover {
+	color: #000;
+	-webkit-box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1);
+	box-shadow: inset 0 0 0 rgba(0, 0, 0, 0), 0 3px 0 rgba(0, 0, 0, 1);
+}
+
+/* Fixes linked images */
+.entry-content a img,
+.widget a img {
+	-webkit-box-shadow: 0 0 0 8px #fff;
+	box-shadow: 0 0 0 8px #fff;
+}
+
+.post-navigation a:focus .icon,
+.post-navigation a:hover .icon {
+	color: #222;
+}
+
+/*--------------------------------------------------------------
+11.0 Featured Image Hover
+--------------------------------------------------------------*/
+
+.post-thumbnail {
+	margin-bottom: 1em;
+}
+
+.post-thumbnail a img {
+	-webkit-backface-visibility: hidden;
+	-webkit-transition: opacity 0.2s;
+	transition: opacity 0.2s;
+}
+
+.post-thumbnail a:hover img,
+.post-thumbnail a:focus img {
+	opacity: 0.7;
+}
+
+/*--------------------------------------------------------------
+12.0 Navigation
+--------------------------------------------------------------*/
+
+.navigation-top {
+	background: #fff;
+	border-bottom: 1px solid #eee;
+	border-top: 1px solid #eee;
+	font-size: 16px;
+	font-size: 1rem;
+	position: relative;
+}
+
+.navigation-top .wrap {
+	max-width: 1000px;
+	padding: 0;
+}
+
+.navigation-top a {
+	color: #222;
+	font-weight: 600;
+	-webkit-transition: color 0.2s;
+	transition: color 0.2s;
+}
+
+.navigation-top .current-menu-item > a,
+.navigation-top .current_page_item > a {
+	color: #767676;
+}
+
+.main-navigation {
+	clear: both;
+	display: block;
+}
+
+.main-navigation ul {
+	background: #fff;
+	list-style: none;
+	margin: 0;
+	padding: 0 1.5em;
+	text-align: left;
+}
+
+/* Hide the menu on small screens when JavaScript is available.
+ * It only works with JavaScript.
+ */
+
+.js .main-navigation ul,
+.main-navigation .menu-item-has-children > a > .icon,
+.main-navigation .page_item_has_children > a > .icon,
+.main-navigation ul a > .icon {
+	display: none;
+}
+
+.main-navigation > div > ul {
+	border-top: 1px solid #eee;
+	padding: 0.75em 1.695em;
+}
+
+.js .main-navigation.toggled-on > div > ul {
+	display: block;
+}
+
+.main-navigation ul ul {
+	padding: 0 0 0 1.5em;
+}
+
+.main-navigation ul ul.toggled-on {
+	display: block;
+}
+
+.main-navigation ul ul a {
+	letter-spacing: 0;
+	padding: 0.4em 0;
+	position: relative;
+	text-transform: none;
+}
+
+.main-navigation li {
+	border-bottom: 1px solid #eee;
+	position: relative;
+}
+
+.main-navigation li li,
+.main-navigation li:last-child {
+	border: 0;
+}
+
+.main-navigation a {
+	display: block;
+	padding: 0.5em 0;
+	text-decoration: none;
+}
+
+.main-navigation a:hover {
+	color: #767676;
+}
+
+/* Menu toggle */
+
+.menu-toggle {
+	background-color: transparent;
+	border: 0;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: #222;
+	display: none;
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 800;
+	line-height: 1.5;
+	margin: 1px auto 2px;
+	padding: 1em;
+	text-shadow: none;
+}
+
+/* Display the menu toggle when JavaScript is available. */
+
+.js .menu-toggle {
+	display: block;
+}
+
+.main-navigation.toggled-on ul.nav-menu {
+	display: block;
+}
+
+.menu-toggle:hover,
+.menu-toggle:focus {
+	background-color: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.menu-toggle:focus {
+	outline: thin solid;
+}
+
+.menu-toggle .icon {
+	margin-right: 0.5em;
+	top: -2px;
+}
+
+.toggled-on .menu-toggle .icon-bars,
+.menu-toggle .icon-close {
+	display: none;
+}
+
+.toggled-on .menu-toggle .icon-close {
+	display: inline-block;
+}
+
+/* Dropdown Toggle */
+
+.dropdown-toggle {
+	background-color: transparent;
+	border: 0;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: #222;
+	display: block;
+	font-size: 16px;
+	right: -0.5em;
+	line-height: 1.5;
+	margin: 0 auto;
+	padding: 0.5em;
+	position: absolute;
+	text-shadow: none;
+	top: 0;
+}
+
+.dropdown-toggle:hover,
+.dropdown-toggle:focus {
+	background: transparent;
+}
+
+.dropdown-toggle:focus {
+	outline: thin dotted;
+}
+
+.dropdown-toggle.toggled-on .icon {
+	-ms-transform: rotate(-180deg); /* IE 9 */
+	-webkit-transform: rotate(-180deg); /* Chrome, Safari, Opera */
+	transform: rotate(-180deg);
+}
+
+/* Scroll down arrow */
+
+.site-header .menu-scroll-down {
+	display: none;
+}
+
+/*--------------------------------------------------------------
+13.0 Layout
+--------------------------------------------------------------*/
+
+html {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+*,
+*:before,
+*:after {
+	/* Inherit box-sizing to make it easier to change the property for components that leverage other behavior; see http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
+	-webkit-box-sizing: inherit;
+	-moz-box-sizing: inherit;
+	box-sizing: inherit;
+}
+
+body {
+	background: #fff;
+	/* Fallback for when there is no custom background color defined. */
+}
+
+#page {
+	position: relative;
+	word-wrap: break-word;
+}
+
+.wrap {
+	margin-left: auto;
+	margin-right: auto;
+	max-width: 700px;
+	padding-left: 2em;
+	padding-right: 2em;
+}
+
+.wrap:after {
+	clear: both;
+	content: "";
+	display: block;
+}
+
+/*--------------------------------------------------------------
+13.1 Header
+--------------------------------------------------------------*/
+
+#masthead .wrap {
+	position: relative;
+}
+
+.site-header {
+	background-color: #fafafa;
+	position: relative;
+}
+
+/* Site branding */
+
+.site-branding {
+	padding: 1em 0;
+	position: relative;
+	-webkit-transition: margin-bottom 0.2s;
+	transition: margin-bottom 0.2s;
+	z-index: 3;
+}
+
+.site-branding a {
+	text-decoration: none;
+	-webkit-transition: opacity 0.2s;
+	transition: opacity 0.2s;
+}
+
+.site-branding a:hover,
+.site-branding a:focus {
+	opacity: 0.7;
+}
+
+.site-title {
+	clear: none;
+	font-size: 24px;
+	font-size: 1.5rem;
+	font-weight: 800;
+	line-height: 1.25;
+	letter-spacing: 0.08em;
+	margin: 0;
+	padding: 0;
+	text-transform: uppercase;
+}
+
+.site-title,
+.site-title a {
+	color: #222;
+	opacity: 1; /* Prevent opacity from changing during selective refreshes in the customize preview */
+}
+
+body.has-header-image .site-title,
+body.has-header-video .site-title,
+body.has-header-image .site-title a,
+body.has-header-video .site-title a {
+	color: #fff;
+}
+
+.site-description {
+	color: #666;
+	font-size: 13px;
+	font-size: 0.8125rem;
+	margin-bottom: 0;
+}
+
+body.has-header-image .site-description,
+body.has-header-video .site-description {
+	color: #fff;
+	opacity: 0.8;
+}
+
+.custom-logo-link {
+	display: inline-block;
+	padding-right: 1em;
+	vertical-align: middle;
+	width: auto;
+}
+
+.custom-logo-link img {
+	display: inline-block;
+	max-height: 80px;
+	width: auto;
+}
+
+body.home.title-tagline-hidden.has-header-image .custom-logo-link img,
+body.home.title-tagline-hidden.has-header-video .custom-logo-link img {
+	max-height: 200px;
+	max-width: 100%;
+}
+
+.custom-logo-link a:hover,
+.custom-logo-link a:focus {
+	opacity: 0.9;
+}
+
+body:not(.title-tagline-hidden) .site-branding-text {
+	display: inline-block;
+	vertical-align: middle;
+}
+
+.custom-header {
+	position: relative;
+}
+
+.has-header-image.twentyseventeen-front-page .custom-header,
+.has-header-video.twentyseventeen-front-page .custom-header,
+.has-header-image.home.blog .custom-header,
+.has-header-video.home.blog .custom-header {
+	display: table;
+	height: 300px;
+	height: 75vh;
+	width: 100%;
+}
+
+.custom-header-media {
+	bottom: 0;
+	left: 0;
+	overflow: hidden;
+	position: absolute;
+	right: 0;
+	top: 0;
+	width: 100%;
+}
+
+.custom-header-media:before {
+	/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#000000+0,000000+100&0+0,0.3+75 */
+	background: -moz-linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 75%, rgba(0, 0, 0, 0.3) 100%); /* FF3.6-15 */
+	background: -webkit-linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 75%, rgba(0, 0, 0, 0.3) 100%); /* Chrome10-25,Safari5.1-6 */
+	background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 75%, rgba(0, 0, 0, 0.3) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
+	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00000000", endColorstr="#4d000000", GradientType=0); /* IE6-9 */
+	bottom: 0;
+	content: "";
+	display: block;
+	height: 100%;
+	left: 0;
+	position: absolute;
+	right: 0;
+	z-index: 2;
+}
+
+.has-header-image .custom-header-media img,
+.has-header-video .custom-header-media video,
+.has-header-video .custom-header-media iframe {
+	position: fixed;
+	height: auto;
+	left: 50%;
+	max-width: 1000%;
+	min-height: 100%;
+	min-width: 100%;
+	min-width: 100vw; /* vw prevents 1px gap on left that 100% has */
+	width: auto;
+	top: 50%;
+	padding-bottom: 1px; /* Prevent header from extending beyond the footer */
+	-ms-transform: translateX(-50%) translateY(-50%);
+	-moz-transform: translateX(-50%) translateY(-50%);
+	-webkit-transform: translateX(-50%) translateY(-50%);
+	transform: translateX(-50%) translateY(-50%);
+}
+
+.wp-custom-header .wp-custom-header-video-button { /* Specificity prevents .color-dark button overrides */
+	background-color: rgba(34, 34, 34, 0.5);
+	border: 1px solid rgba(255, 255, 255, 0.6);
+	color: rgba(255, 255, 255, 0.6);
+	height: 45px;
+	overflow: hidden;
+	padding: 0;
+	position: fixed;
+	right: 30px;
+	top: 30px;
+	-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	width: 45px;
+}
+
+.wp-custom-header .wp-custom-header-video-button:hover,
+.wp-custom-header .wp-custom-header-video-button:focus { /* Specificity prevents .color-dark button overrides */
+	border-color: rgba(255, 255, 255, 0.8);
+	background-color: rgba(34, 34, 34, 0.8);
+	color: #fff;
+}
+
+.admin-bar .wp-custom-header-video-button {
+	top: 62px;
+}
+
+.has-header-image:not(.twentyseventeen-front-page):not(.home) .custom-header-media img {
+	bottom: 0;
+	position: absolute;
+	top: auto;
+	-ms-transform: translateX(-50%) translateY(0);
+	-moz-transform: translateX(-50%) translateY(0);
+	-webkit-transform: translateX(-50%) translateY(0);
+	transform: translateX(-50%) translateY(0);
+}
+
+/* For browsers that support 'object-fit' */
+@supports ( object-fit: cover ) {
+	.has-header-image .custom-header-media img,
+	.has-header-video .custom-header-media video,
+	.has-header-video .custom-header-media iframe,
+	.has-header-image:not(.twentyseventeen-front-page):not(.home) .custom-header-media img {
+		height: 100%;
+		left: 0;
+		-o-object-fit: cover;
+		object-fit: cover;
+		top: 0;
+		-ms-transform: none;
+		-moz-transform: none;
+		-webkit-transform: none;
+		transform: none;
+		width: 100%;
+	}
+}
+
+/* Hides div in Customizer preview when header images or videos change. */
+
+body:not(.has-header-image):not(.has-header-video) .custom-header-media {
+	display: none;
+}
+
+.has-header-image.twentyseventeen-front-page .site-branding,
+.has-header-video.twentyseventeen-front-page .site-branding,
+.has-header-image.home.blog .site-branding,
+.has-header-video.home.blog .site-branding {
+	display: table-cell;
+	height: 100%;
+	vertical-align: bottom;
+}
+
+/*--------------------------------------------------------------
+13.2 Front Page
+--------------------------------------------------------------*/
+
+.twentyseventeen-front-page .site-content {
+	padding: 0;
+}
+
+.twentyseventeen-panel {
+	overflow: hidden;
+	position: relative;
+}
+
+.panel-image {
+	background-position: center center;
+	background-repeat: no-repeat;
+	-webkit-background-size: cover;
+	background-size: cover;
+	position: relative;
+}
+
+.panel-image:before {
+	/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#000000+0,000000+100&0+0,0.3+100 */ /* FF3.6-15 */
+	background: -webkit-linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 100%); /* Chrome10-25,Safari5.1-6 */
+	background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.3)));
+	background: -webkit-linear-gradient(to top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 100%);
+	background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
+	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00000000", endColorstr="#4d000000", GradientType=0); /* IE6-9 */
+	bottom: 0;
+	content: "";
+	left: 0;
+	right: 0;
+	position: absolute;
+	top: 100px;
+}
+
+.twentyseventeen-front-page article:not(.has-post-thumbnail):not(:first-child) {
+	border-top: 1px solid #ddd;
+}
+
+.panel-content {
+	position: relative;
+}
+
+.panel-content .wrap {
+	padding-bottom: 0.5em;
+	padding-top: 1.75em;
+}
+
+/* Panel edit link */
+
+.twentyseventeen-panel .edit-link {
+	display: block;
+	margin: 0.3em 0 0;
+}
+
+.twentyseventeen-panel .entry-header .edit-link {
+	font-size: 14px;
+	font-size: 0.875rem;
+}
+
+/* Front Page - Recent Posts */
+
+.twentyseventeen-front-page .panel-content .recent-posts article {
+	border: 0;
+	color: #333;
+	margin-bottom: 3em;
+}
+
+.recent-posts .entry-header {
+	margin-bottom: 1.2em;
+}
+
+.page .panel-content .recent-posts .entry-title {
+	font-size: 20px;
+	font-size: 1.25rem;
+	font-weight: 300;
+	letter-spacing: 0;
+	text-transform: none;
+}
+
+.twentyseventeen-panel .recent-posts .entry-header .edit-link {
+	color: #222;
+	display: inline-block;
+	font-size: 11px;
+	font-size: 0.6875rem;
+	margin-left: 1em;
+}
+
+/*--------------------------------------------------------------
+13.3 Regular Content
+--------------------------------------------------------------*/
+
+.site-content-contain {
+	background-color: #fff;
+	position: relative;
+}
+
+.site-content {
+	padding: 2.5em 0 0;
+}
+
+/*--------------------------------------------------------------
+13.4 Posts
+--------------------------------------------------------------*/
+
+/* Post Landing Page */
+
+.sticky {
+	position: relative;
+}
+
+.post:not(.sticky) .icon-thumb-tack {
+	display: none;
+}
+
+.sticky .icon-thumb-tack {
+	display: block;
+	height: 18px;
+	left: -1.5em;
+	position: absolute;
+	top: 1.65em;
+	width: 20px;
+}
+
+.page .panel-content .entry-title,
+.page-title,
+body.page:not(.twentyseventeen-front-page) .entry-title {
+	color: #222;
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 800;
+	letter-spacing: 0.14em;
+	text-transform: uppercase;
+}
+
+.entry-header .entry-title {
+	margin-bottom: 0.25em;
+}
+
+.entry-title a {
+	color: #333;
+	text-decoration: none;
+	margin-left: -2px;
+}
+
+.entry-title:not(:first-child) {
+	padding-top: 0;
+}
+
+.entry-meta {
+	color: #767676;
+	font-size: 11px;
+	font-size: 0.6875rem;
+	font-weight: 800;
+	letter-spacing: 0.1818em;
+	padding-bottom: 0.25em;
+	text-transform: uppercase;
+}
+
+.entry-meta a {
+	color: #767676;
+}
+
+.byline,
+.updated:not(.published) {
+	display: none;
+}
+
+.single .byline,
+.group-blog .byline {
+	display: inline;
+}
+
+.pagination,
+.comments-pagination {
+	border-top: 1px solid #eee;
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 800;
+	padding: 2em 0 3em;
+	text-align: center;
+}
+
+.pagination .icon,
+.comments-pagination .icon {
+	width: 0.666666666em;
+	height: 0.666666666em;
+}
+
+.comments-pagination {
+	border: 0;
+}
+
+.page-numbers {
+	display: none;
+	padding: 0.5em 0.75em;
+}
+
+.page-numbers.current {
+	color: #767676;
+	display: inline-block;
+}
+
+.page-numbers.current .screen-reader-text {
+	clip: auto;
+	height: auto;
+	overflow: auto;
+	position: relative !important;
+	width: auto;
+}
+
+.prev.page-numbers,
+.next.page-numbers {
+	background-color: #ddd;
+	-webkit-border-radius: 2px;
+	border-radius: 2px;
+	display: inline-block;
+	font-size: 24px;
+	font-size: 1.5rem;
+	line-height: 1;
+	padding: 0.25em 0.5em 0.4em;
+}
+
+.prev.page-numbers,
+.next.page-numbers {
+	-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+}
+
+.prev.page-numbers:focus,
+.prev.page-numbers:hover,
+.next.page-numbers:focus,
+.next.page-numbers:hover {
+	background-color: #767676;
+	color: #fff;
+}
+
+.prev.page-numbers {
+	float: left;
+}
+
+.next.page-numbers {
+	float: right;
+}
+
+/* Aligned blockquotes */
+
+.entry-content blockquote.alignleft,
+.entry-content blockquote.alignright {
+	color: #666;
+	font-size: 13px;
+	font-size: 0.8125rem;
+	width: 48%;
+}
+
+/* Blog landing, search, archives */
+
+.blog .site-main > article,
+.archive .site-main > article,
+.search .site-main > article {
+	padding-bottom: 2em;
+}
+
+body:not(.twentyseventeen-front-page) .entry-header {
+	padding: 1em 0;
+}
+
+body:not(.twentyseventeen-front-page) .entry-header,
+body:not(.twentyseventeen-front-page) .entry-content,
+body:not(.twentyseventeen-front-page) #comments {
+	margin-left: auto;
+	margin-right: auto;
+}
+
+body:not(.twentyseventeen-front-page) .entry-header {
+	padding-top: 0;
+}
+
+.blog .entry-meta a.post-edit-link,
+.archive .entry-meta a.post-edit-link,
+.search .entry-meta a.post-edit-link {
+	color: #222;
+	display: inline-block;
+	margin-left: 1em;
+	white-space: nowrap;
+}
+
+.search .page .entry-meta a.post-edit-link {
+	margin-left: 0;
+	white-space: nowrap;
+}
+
+.taxonomy-description {
+	color: #666;
+	font-size: 13px;
+	font-size: 0.8125rem;
+}
+
+/* More tag */
+
+.entry-content .more-link:before {
+	content: "";
+	display: block;
+	margin-top: 1.5em;
+}
+
+/* Single Post */
+
+.single-post:not(.has-sidebar) #primary,
+.page.page-one-column:not(.twentyseventeen-front-page) #primary,
+.archive.page-one-column:not(.has-sidebar) .page-header,
+.archive.page-one-column:not(.has-sidebar) #primary {
+	margin-left: auto;
+	margin-right: auto;
+	max-width: 740px;
+}
+
+.single-featured-image-header {
+	background-color: #fafafa;
+	border-bottom: 1px solid #eee;
+}
+
+.single-featured-image-header img {
+	display: block;
+	margin: auto;
+}
+
+.page-links {
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 800;
+	padding: 2em 0 3em;
+}
+
+.page-links .page-number {
+	color: #767676;
+	display: inline-block;
+	padding: 0.5em 1em;
+}
+
+.page-links a {
+	display: inline-block;
+}
+
+.page-links a .page-number {
+	color: #222;
+}
+
+/* Entry footer */
+
+.entry-footer {
+	border-bottom: 1px solid #eee;
+	border-top: 1px solid #eee;
+	margin-top: 2em;
+	padding: 2em 0;
+}
+
+.entry-footer .cat-links,
+.entry-footer .tags-links {
+	display: block;
+	font-size: 11px;
+	font-size: 0.6875rem;
+	font-weight: 800;
+	letter-spacing: 0.1818em;
+	padding-left: 2.5em;
+	position: relative;
+	text-transform: uppercase;
+}
+
+.entry-footer .cat-links + .tags-links {
+	margin-top: 1em;
+}
+
+.entry-footer .cat-links a,
+.entry-footer .tags-links a {
+	color: #333;
+}
+
+.entry-footer .cat-links .icon,
+.entry-footer .tags-links .icon {
+	color: #767676;
+	left: 0;
+	margin-right: 0.5em;
+	position: absolute;
+	top: 2px;
+}
+
+.entry-footer .edit-link {
+	display: inline-block;
+}
+
+.entry-footer .edit-link a.post-edit-link {
+	background-color: #222;
+	-webkit-border-radius: 2px;
+	border-radius: 2px;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	color: #fff;
+	display: inline-block;
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 800;
+	margin-top: 2em;
+	padding: 0.7em 2em;
+	-webkit-transition: background-color 0.2s ease-in-out;
+	transition: background-color 0.2s ease-in-out;
+	white-space: nowrap;
+}
+
+.entry-footer .edit-link a.post-edit-link:hover,
+.entry-footer .edit-link a.post-edit-link:focus {
+	background-color: #767676;
+}
+
+/* Post Formats */
+
+.blog .format-status .entry-title,
+.archive .format-status .entry-title,
+.blog .format-aside .entry-title,
+.archive .format-aside .entry-title {
+	display: none;
+}
+
+.format-quote blockquote {
+	color: #333;
+	font-size: 20px;
+	font-size: 1.25rem;
+	font-weight: 300;
+	overflow: visible;
+	position: relative;
+}
+
+.format-quote blockquote .icon {
+	display: block;
+	height: 20px;
+	left: -1.25em;
+	position: absolute;
+	top: 0.4em;
+	-webkit-transform: scale(-1, 1);
+	-ms-transform: scale(-1, 1);
+	transform: scale(-1, 1);
+	width: 20px;
+}
+
+/* Post Navigation */
+
+.post-navigation {
+	font-weight: 800;
+	margin: 3em 0;
+}
+
+.post-navigation .nav-links {
+	padding: 1em 0;
+}
+
+.nav-subtitle {
+	background: transparent;
+	color: #767676;
+	display: block;
+	font-size: 11px;
+	font-size: 0.6875rem;
+	letter-spacing: 0.1818em;
+	margin-bottom: 1em;
+	text-transform: uppercase;
+}
+
+.nav-title {
+	color: #333;
+	font-size: 15px;
+	font-size: 0.9375rem;
+}
+
+.post-navigation .nav-next {
+	margin-top: 1.5em;
+}
+
+.nav-links .nav-previous .nav-title .nav-title-icon-wrapper {
+	margin-right: 0.5em;
+}
+
+.nav-links .nav-next .nav-title .nav-title-icon-wrapper {
+	margin-left: 0.5em;
+}
+
+/*--------------------------------------------------------------
+13.5 Pages
+--------------------------------------------------------------*/
+
+.page-header {
+	padding-bottom: 2em;
+}
+
+.page .entry-header .edit-link {
+	font-size: 14px;
+	font-size: 0.875rem;
+}
+
+.search .page .entry-header .edit-link {
+	font-size: 11px;
+	font-size: 0.6875rem;
+}
+
+.page-links {
+	clear: both;
+	margin: 0 0 1.5em;
+}
+
+.page:not(.home) #content {
+	padding-bottom: 1.5em;
+}
+
+/* 404 page */
+
+.error404 .page-content {
+	padding-bottom: 4em;
+}
+
+.error404 .page-content .search-form,
+.search .page-content .search-form {
+	margin-bottom: 3em;
+}
+
+/*--------------------------------------------------------------
+13.6 Footer
+--------------------------------------------------------------*/
+
+.site-footer {
+	border-top: 1px solid #eee;
+}
+
+.site-footer .wrap {
+	padding-bottom: 1.5em;
+	padding-top: 2em;
+}
+
+/* Footer widgets */
+
+.site-footer .widget-area {
+	padding-bottom: 2em;
+	padding-top: 2em;
+}
+
+/* Social nav */
+
+.social-navigation {
+	font-size: 16px;
+	font-size: 1rem;
+	margin-bottom: 1em;
+}
+
+.social-navigation ul {
+	list-style: none;
+	margin-bottom: 0;
+	margin-left: 0;
+}
+
+.social-navigation li {
+	display: inline;
+}
+
+.social-navigation a {
+	background-color: #767676;
+	-webkit-border-radius: 40px;
+	border-radius: 40px;
+	color: #fff;
+	display: inline-block;
+	height: 40px;
+	margin: 0 1em 0.5em 0;
+	text-align: center;
+	width: 40px;
+}
+
+.social-navigation a:hover,
+.social-navigation a:focus {
+	background-color: #333;
+}
+
+.social-navigation .icon {
+	height: 16px;
+	top: 12px;
+	width: 16px;
+	vertical-align: top;
+}
+
+/* Site info */
+
+.site-info {
+	font-size: 14px;
+	font-size: 0.875rem;
+	margin-bottom: 1em;
+}
+
+.site-info a {
+	color: #666;
+}
+
+.site-info .sep {
+	margin: 0;
+	display: block;
+	visibility: hidden;
+	height: 0;
+	width: 100%;
+}
+
+/*--------------------------------------------------------------
+14.0 Comments
+--------------------------------------------------------------*/
+
+#comments {
+	clear: both;
+	padding: 2em 0 0.5em;
+}
+
+.comments-title {
+	font-size: 20px;
+	font-size: 1.25rem;
+	margin-bottom: 1.5em;
+}
+
+.comment-list,
+.comment-list .children {
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+
+.comment-list li:before {
+	display: none;
+}
+
+.comment-body {
+	margin-left: 65px;
+}
+
+.comment-author {
+	font-size: 16px;
+	font-size: 1rem;
+	margin-bottom: 0.4em;
+	position: relative;
+	z-index: 2;
+}
+
+.comment-author .avatar {
+	height: 50px;
+	left: -65px;
+	position: absolute;
+	width: 50px;
+}
+
+.comment-author .says {
+	display: none;
+}
+
+.comment-meta {
+	margin-bottom: 1.5em;
+}
+
+.comment-metadata {
+	color: #767676;
+	font-size: 10px;
+	font-size: 0.625rem;
+	font-weight: 800;
+	letter-spacing: 0.1818em;
+	text-transform: uppercase;
+}
+
+.comment-metadata a {
+	color: #767676;
+}
+
+.comment-metadata a.comment-edit-link {
+	color: #222;
+	margin-left: 1em;
+}
+
+.comment-body {
+	color: #333;
+	font-size: 14px;
+	font-size: 0.875rem;
+	margin-bottom: 4em;
+}
+
+.comment-reply-link {
+	font-weight: 800;
+	position: relative;
+}
+
+.comment-reply-link .icon {
+	color: #222;
+	left: -2em;
+	height: 1em;
+	position: absolute;
+	top: 0;
+	width: 1em;
+}
+
+.children .comment-author .avatar {
+	height: 30px;
+	left: -45px;
+	width: 30px;
+}
+
+.bypostauthor > .comment-body > .comment-meta > .comment-author .avatar {
+	border: 1px solid #333;
+	padding: 2px;
+}
+
+.no-comments,
+.comment-awaiting-moderation {
+	color: #767676;
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-style: italic;
+}
+
+.comments-pagination {
+	margin: 2em 0 3em;
+}
+
+.form-submit {
+	text-align: right;
+}
+
+/*--------------------------------------------------------------
+15.0 Widgets
+--------------------------------------------------------------*/
+
+#secondary {
+	padding: 1em 0 2em;
+}
+
+.widget {
+	padding-bottom: 3em;
+}
+
+h2.widget-title {
+	color: #222;
+	font-size: 13px;
+	font-size: 0.8125rem;
+	font-weight: 800;
+	letter-spacing: 0.1818em;
+	margin-bottom: 1.5em;
+	text-transform: uppercase;
+}
+
+.widget-title a {
+	color: inherit;
+}
+
+/* widget forms */
+
+.widget select {
+	width: 100%;
+}
+
+
+/* widget lists */
+
+.widget ul {
+	list-style: none;
+	margin: 0;
+}
+
+.widget ul li {
+	border-bottom: 1px solid #ddd;
+	border-top: 1px solid #ddd;
+	padding: 0.5em 0;
+}
+
+.widget ul li + li {
+	margin-top: -1px;
+}
+
+.widget ul li ul {
+	margin: 0 0 -1px;
+	padding: 0;
+	position: relative;
+}
+
+.widget ul li li {
+	border: 0;
+	padding-left: 24px;
+	padding-left: 1.5rem;
+}
+
+/* Widget lists of links */
+
+.widget_top-posts ul li ul,
+.widget_rss_links ul li ul,
+.widget-grofile ul.grofile-links li ul,
+.widget_pages ul li ul,
+.widget_meta ul li ul {
+	bottom: 0;
+}
+
+.widget_nav_menu ul li li,
+.widget_top-posts ul li,
+.widget_top-posts ul li li,
+.widget_rss_links ul li,
+.widget_rss_links ul li li,
+.widget-grofile ul.grofile-links li,
+.widget-grofile ul.grofile-links li li {
+	padding-bottom: 0.25em;
+	padding-top: 0.25em;
+}
+
+.widget_rss ul li {
+	padding-bottom: 1em;
+	padding-top: 1em;
+}
+
+/* widget markup */
+
+.widget .post-date,
+.widget .rss-date {
+	font-size: 0.81em;
+}
+
+/* Text widget */
+
+.widget_text {
+	word-wrap: break-word;
+}
+
+/* RSS Widget */
+
+.widget_rss .widget-title .rsswidget:first-child {
+	float: right;
+}
+
+.widget_rss .widget-title .rsswidget:first-child:hover {
+	background-color: transparent;
+}
+
+.widget_rss .widget-title .rsswidget:first-child img {
+	display: block;
+}
+
+.widget_rss ul li {
+	padding: 2.125em 0;
+}
+
+.widget_rss ul li:first-child {
+	border-top: none;
+	padding-top: 0;
+}
+
+.widget_rss li .rsswidget {
+	font-size: 22px;
+	font-size: 1.375rem;
+	font-weight: 300;
+	line-height: 1.4;
+}
+
+.widget_rss .rss-date,
+.widget_rss li cite {
+	color: #767676;
+	display: block;
+	font-size: 10px;
+	font-size: 0.625rem;
+	font-style: normal;
+	font-weight: 800;
+	letter-spacing: 0.18em;
+	line-height: 1.5;
+	text-transform: uppercase;
+}
+
+.widget_rss .rss-date {
+	margin: 0.5em 0 1.5em;
+	padding: 0;
+}
+
+.widget_rss .rssSummary {
+	margin-bottom: 0.5em;
+}
+
+/* Contact Info Widget */
+
+.widget_contact_info .contact-map {
+	margin-bottom: 0.5em;
+}
+
+/* Gravatar */
+
+.widget-grofile h4 {
+	font-size: 16px;
+	font-size: 1rem;
+	margin-bottom: 0;
+}
+
+/* Recent Comments */
+
+.widget_recent_comments table,
+.widget_recent_comments th,
+.widget_recent_comments td {
+	border: 0;
+}
+
+/* Recent Posts widget */
+
+.widget_recent_entries .post-date {
+	display: block;
+}
+
+/* Search */
+
+.search-form {
+	position: relative;
+}
+
+.search-form .search-submit {
+	bottom: 3px;
+	padding: 0.5em 1em;
+	position: absolute;
+	right: 3px;
+	top: 3px;
+}
+
+.search-form .search-submit .icon {
+	height: 24px;
+	top: -2px;
+	width: 24px;
+}
+
+/* Tag cloud widget */
+
+.tagcloud,
+.widget_tag_cloud,
+.wp_widget_tag_cloud {
+	line-height: 1.5;
+}
+
+.widget .tagcloud a,
+.widget.widget_tag_cloud a,
+.wp_widget_tag_cloud a {
+	border: 1px solid #ddd;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	display: inline-block;
+	float: left;
+	font-size: 14px !important; /* !important to overwrite inline styles */
+	font-size: 0.875rem !important;
+	margin: 4px 4px 0 0 !important;
+	padding: 4px 10px 5px !important;
+	position: relative;
+	-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	width: auto;
+	word-wrap: break-word;
+	z-index: 0;
+}
+
+.widget .tagcloud a:hover,
+.widget .tagcloud a:focus,
+.widget.widget_tag_cloud a:hover,
+.widget.widget_tag_cloud a:focus,
+.wp_widget_tag_cloud a:hover,
+.wp_widget_tag_cloud a:focus {
+	border-color: #bbb;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	text-decoration: none;
+}
+
+/* Calendar widget */
+
+.widget_calendar th,
+.widget_calendar td {
+	text-align: center;
+}
+
+.widget_calendar tfoot td {
+	border: 0;
+}
+
+/*--------------------------------------------------------------
+16.0 Media
+--------------------------------------------------------------*/
+
+img,
+video {
+	height: auto; /* Make sure images are scaled correctly. */
+	max-width: 100%; /* Adhere to container width. */
+}
+
+img.alignleft,
+img.alignright {
+	float: none;
+	margin: 0;
+}
+
+.page-content .wp-smiley,
+.entry-content .wp-smiley,
+.comment-content .wp-smiley {
+	border: none;
+	margin-bottom: 0;
+	margin-top: 0;
+	padding: 0;
+}
+
+/* Make sure embeds and iframes fit their containers. */
+
+embed,
+iframe,
+object {
+	margin-bottom: 1.5em;
+	max-width: 100%;
+}
+
+.wp-caption,
+.gallery-caption {
+	color: #666;
+	font-size: 13px;
+	font-size: 0.8125rem;
+	font-style: italic;
+	margin-bottom: 1.5em;
+	max-width: 100%;
+}
+
+.wp-caption img[class*="wp-image-"] {
+	display: block;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+.wp-caption .wp-caption-text {
+	margin: 0.8075em 0;
+}
+
+/* Media Elements */
+
+.mejs-container {
+	margin-bottom: 1.5em;
+}
+
+/* Audio Player */
+
+.mejs-controls a.mejs-horizontal-volume-slider,
+.mejs-controls a.mejs-horizontal-volume-slider:focus,
+.mejs-controls a.mejs-horizontal-volume-slider:hover {
+	background: transparent;
+	border: 0;
+}
+
+/* Playlist Color Overrides: Light */
+
+.site-content .wp-playlist-light {
+	border-color: #eee;
+	color: #222;
+}
+
+.site-content .wp-playlist-light .wp-playlist-current-item .wp-playlist-item-album {
+	color: #333;
+}
+
+.site-content .wp-playlist-light .wp-playlist-current-item .wp-playlist-item-artist {
+	color: #767676;
+}
+
+.site-content .wp-playlist-light .wp-playlist-item {
+	border-bottom: 1px dotted #eee;
+	-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+}
+
+.site-content .wp-playlist-light .wp-playlist-item:hover,
+.site-content .wp-playlist-light .wp-playlist-item:focus {
+	border-bottom-color: rgba(0, 0, 0, 0);
+	background-color: #767676;
+	color: #fff;
+}
+
+.site-content .wp-playlist-light a.wp-playlist-caption:hover,
+.site-content .wp-playlist-light .wp-playlist-item:hover a,
+.site-content .wp-playlist-light .wp-playlist-item:focus a {
+	color: #fff;
+}
+
+/* Playlist Color Overrides: Dark */
+
+.site-content .wp-playlist-dark {
+	background: #222;
+	border-color: #333;
+}
+
+.site-content .wp-playlist-dark .mejs-container .mejs-controls {
+	background-color: #333;
+}
+
+.site-content .wp-playlist-dark .wp-playlist-caption {
+	color: #fff;
+}
+
+.site-content .wp-playlist-dark .wp-playlist-current-item .wp-playlist-item-album {
+	color: #eee;
+}
+
+.site-content .wp-playlist-dark .wp-playlist-current-item .wp-playlist-item-artist {
+	color: #aaa;
+}
+
+.site-content .wp-playlist-dark .wp-playlist-playing {
+	background-color: #333;
+}
+
+.site-content .wp-playlist-dark .wp-playlist-item {
+	border-bottom: 1px dotted #555;
+	-webkit-transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+	transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out, color 0.3s ease-in-out;
+}
+
+.site-content .wp-playlist-dark .wp-playlist-item:hover,
+.site-content .wp-playlist-dark .wp-playlist-item:focus {
+	border-bottom-color: rgba(0, 0, 0, 0);
+	background-color: #aaa;
+	color: #222;
+}
+
+.site-content .wp-playlist-dark a.wp-playlist-caption:hover,
+.site-content .wp-playlist-dark .wp-playlist-item:hover a,
+.site-content .wp-playlist-dark .wp-playlist-item:focus a {
+	color: #222;
+}
+
+/* Playlist Style Overrides */
+
+.site-content .wp-playlist {
+	padding: 0.625em 0.625em 0.3125em;
+}
+
+.site-content .wp-playlist-current-item .wp-playlist-item-title {
+	font-weight: 700;
+}
+
+.site-content .wp-playlist-current-item .wp-playlist-item-album {
+	font-style: normal;
+}
+
+.site-content .wp-playlist-current-item .wp-playlist-item-artist {
+	font-size: 10px;
+	font-size: 0.625rem;
+	font-weight: 800;
+	letter-spacing: 0.1818em;
+	text-transform: uppercase;
+}
+
+.site-content .wp-playlist-item {
+	padding: 0 0.3125em;
+	cursor: pointer;
+}
+
+.site-content .wp-playlist-item:last-of-type {
+	border-bottom: none;
+}
+
+.site-content .wp-playlist-item a {
+	padding: 0.3125em 0;
+	border-bottom: none;
+}
+
+.site-content .wp-playlist-item a,
+.site-content .wp-playlist-item a:focus,
+.site-content .wp-playlist-item a:hover {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background: transparent;
+}
+
+.site-content .wp-playlist-item-length {
+	top: 5px;
+}
+
+/* SVG Icons base styles */
+
+.icon {
+	display: inline-block;
+	fill: currentColor;
+	height: 1em;
+	position: relative; /* Align more nicely with capital letters */
+	top: -0.0625em;
+	vertical-align: middle;
+	width: 1em;
+}
+
+/*--------------------------------------------------------------
+16.1 Galleries
+--------------------------------------------------------------*/
+
+.gallery-item {
+	display: inline-block;
+	text-align: left;
+	vertical-align: top;
+	margin: 0 0 1.5em;
+	padding: 0 1em 0 0;
+	width: 50%;
+}
+
+.gallery-columns-1 .gallery-item {
+	width: 100%;
+}
+
+.gallery-columns-2 .gallery-item {
+	max-width: 50%;
+}
+
+.gallery-item a,
+.gallery-item a:hover,
+.gallery-item a:focus {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	background: none;
+	display: inline-block;
+	max-width: 100%;
+}
+
+.gallery-item a img {
+	display: block;
+	-webkit-transition: -webkit-filter 0.2s ease-in;
+	transition: -webkit-filter 0.2s ease-in;
+	transition: filter 0.2s ease-in;
+	transition: filter 0.2s ease-in, -webkit-filter 0.2s ease-in;
+	-webkit-backface-visibility: hidden;
+	backface-visibility: hidden;
+}
+
+.gallery-item a:hover img,
+.gallery-item a:focus img {
+	-webkit-filter: opacity(60%);
+	filter: opacity(60%);
+}
+
+.gallery-caption {
+	display: block;
+	text-align: left;
+	padding: 0 10px 0 0;
+	margin-bottom: 0;
+}
+
+/*--------------------------------------------------------------
+17.0 Customizer
+--------------------------------------------------------------*/
+
+.highlight-front-sections.twentyseventeen-customizer.twentyseventeen-front-page .twentyseventeen-panel:after {
+	border: 2px dashed #0085ba; /* Matches visible edit shortcuts. */
+	bottom: 1em;
+	content: "";
+	display: block;
+	left: 1em;
+	position: absolute;
+	right: 1em;
+	top: 1em;
+	z-index: 1;
+}
+
+.highlight-front-sections.twentyseventeen-customizer.twentyseventeen-front-page .twentyseventeen-panel .panel-content {
+	z-index: 2; /* Prevent :after from preventing interactions within the section */
+}
+
+/* Used for placeholder text */
+.twentyseventeen-customizer.twentyseventeen-front-page .twentyseventeen-panel .twentyseventeen-panel-title {
+	display: block;
+	font-size: 14px;
+	font-size: 0.875rem;
+	font-weight: 700;
+	letter-spacing: 1px;
+	padding: 3em;
+	text-transform: uppercase;
+	text-align: center;
+}
+
+/* Show borders on the custom page panels only when the front page sections are being edited */
+.highlight-front-sections.twentyseventeen-customizer.twentyseventeen-front-page .twentyseventeen-panel:nth-of-type(1):after {
+	border: none;
+}
+
+.twentyseventeen-front-page.twentyseventeen-customizer #primary article.panel-placeholder {
+	border: 0;
+}
+
+/* Add some space around the visual edit shortcut buttons. */
+.twentyseventeen-panel .customize-partial-edit-shortcut button {
+	top: 30px;
+	left: 30px;
+}
+
+/* Ensure that placeholder icons are visible. */
+.twentyseventeen-panel .customize-partial-edit-shortcut-hidden:before {
+	visibility: visible;
+}
+
+/*--------------------------------------------------------------
+18.0 SVGs Fallbacks
+--------------------------------------------------------------*/
+
+.svg-fallback {
+	display: none;
+}
+
+.no-svg .svg-fallback {
+	display: inline-block;
+}
+
+.no-svg .dropdown-toggle {
+	padding: 0.5em 0 0;
+	right: 0;
+	text-align: center;
+	width: 2em;
+}
+
+.no-svg .dropdown-toggle .svg-fallback.icon-angle-down {
+	font-size: 20px;
+	font-size: 1.25rem;
+	font-weight: 400;
+	line-height: 1;
+	-webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
+	-ms-transform: rotate(180deg); /* IE 9 */
+	transform: rotate(180deg);
+}
+
+.no-svg .dropdown-toggle.toggled-on .svg-fallback.icon-angle-down {
+	-webkit-transform: rotate(0); /* Chrome, Safari, Opera */
+	-ms-transform: rotate(0); /* IE 9 */
+	transform: rotate(0);
+}
+
+.no-svg .dropdown-toggle .svg-fallback.icon-angle-down:before {
+	content: "\005E";
+}
+
+/* Social Menu fallbacks */
+
+.no-svg .social-navigation a {
+	background: transparent;
+	color: #222;
+	height: auto;
+	width: auto;
+}
+
+/* Show screen reader text in some cases */
+
+.no-svg .next.page-numbers .screen-reader-text,
+.no-svg .prev.page-numbers .screen-reader-text,
+.no-svg .social-navigation li a .screen-reader-text,
+.no-svg .search-submit .screen-reader-text {
+	clip: auto;
+	font-size: 16px;
+	font-size: 1rem;
+	font-weight: 400;
+	height: auto;
+	position: relative !important; /* overrides previous !important styles */
+	width: auto;
+}
+
+/*--------------------------------------------------------------
+19.0 Media Queries
+--------------------------------------------------------------*/
+
+/* Adjust positioning of edit shortcuts, override style in customize-preview.css */
+@media screen and (min-width: 20em) {
+
+	body.customize-partial-edit-shortcuts-shown .site-header .site-title {
+		padding-left: 0;
+	}
+}
+
+@media screen and (min-width: 30em) {
+
+	/* Typography */
+
+	body,
+	button,
+	input,
+	select,
+	textarea {
+		font-size: 18px;
+		font-size: 1.125rem;
+	}
+
+	h1 {
+		font-size: 30px;
+		font-size: 1.875rem;
+	}
+
+	h2,
+	.page .panel-content .recent-posts .entry-title {
+		font-size: 26px;
+		font-size: 1.625rem;
+	}
+
+	h3 {
+		font-size: 22px;
+		font-size: 1.375rem;
+	}
+
+	h4 {
+		font-size: 18px;
+		font-size: 1.125rem;
+	}
+
+	h5 {
+		font-size: 13px;
+		font-size: 0.8125rem;
+	}
+
+	h6 {
+		font-size: 16px;
+		font-size: 1rem;
+	}
+
+	.entry-content blockquote.alignleft,
+	.entry-content blockquote.alignright {
+		font-size: 14px;
+		font-size: 0.875rem;
+	}
+
+	/* Fix image alignment */
+	img.alignleft {
+		float: left;
+		margin-right: 1.5em;
+	}
+
+	img.alignright {
+		float: right;
+		margin-left: 1.5em;
+	}
+
+	/* Site Branding */
+
+	.site-branding {
+		padding: 3em 0;
+	}
+
+	/* Front Page */
+
+	.panel-content .wrap {
+		padding-bottom: 2em;
+		padding-top: 3.5em;
+	}
+
+	.page-one-column .panel-content .wrap {
+		max-width: 740px;
+	}
+
+	.panel-content .entry-header {
+		margin-bottom: 4.5em;
+	}
+
+	.panel-content .recent-posts .entry-header {
+		margin-bottom: 0;
+	}
+
+	/* Blog Index, Archive, Search */
+
+	.taxonomy-description {
+		font-size: 14px;
+		font-size: 0.875rem;
+	}
+
+	.page-numbers.current {
+		font-size: 16px;
+		font-size: 1rem;
+	}
+
+	/* Site Footer */
+
+	.site-footer {
+		font-size: 16px;
+		font-size: 1rem;
+	}
+
+	/* Gallery Columns */
+
+	.gallery-item {
+		max-width: 25%;
+	}
+
+	.gallery-columns-1 .gallery-item {
+		max-width: 100%;
+	}
+
+	.gallery-columns-2 .gallery-item {
+		max-width: 50%;
+	}
+
+	.gallery-columns-3 .gallery-item {
+		max-width: 33.33%;
+	}
+
+	.gallery-columns-4 .gallery-item {
+		max-width: 25%;
+	}
+}
+
+@media screen and (min-width: 48em) {
+
+	/* Typography */
+
+	body,
+	button,
+	input,
+	select,
+	textarea {
+		font-size: 16px;
+		font-size: 1rem;
+		line-height: 1.5;
+	}
+
+	.entry-content blockquote.alignleft,
+	.entry-content blockquote.alignright {
+		font-size: 13px;
+		font-size: 0.8125rem;
+	}
+
+	/* Layout */
+
+	.wrap {
+		max-width: 1000px;
+		padding-left: 3em;
+		padding-right: 3em;
+	}
+
+	.has-sidebar:not(.error404) #primary {
+		float: left;
+		width: 58%;
+	}
+
+	.has-sidebar #secondary {
+		float: right;
+		padding-top: 0;
+		width: 36%;
+	}
+
+	.error404 #primary {
+		float: none;
+	}
+
+	/* Site Branding */
+
+	.site-branding {
+		margin-bottom: 0;
+	}
+
+	.has-header-image.twentyseventeen-front-page .site-branding,
+	.has-header-video.twentyseventeen-front-page .site-branding,
+	.has-header-image.home.blog .site-branding,
+	.has-header-video.home.blog .site-branding {
+		bottom: 0;
+		display: block;
+		left: 0;
+		height: auto;
+		padding-top: 0;
+		position: absolute;
+		width: 100%;
+	}
+
+	.has-header-image.twentyseventeen-front-page .custom-header,
+	.has-header-video.twentyseventeen-front-page .custom-header,
+	.has-header-image.home.blog .custom-header,
+	.has-header-video.home.blog .custom-header {
+		display: block;
+		height: auto;
+	}
+
+	.custom-header-media {
+		height: 165px;
+		position: relative;
+	}
+
+	.twentyseventeen-front-page.has-header-image .custom-header-media,
+	.twentyseventeen-front-page.has-header-video .custom-header-media,
+	.home.blog.has-header-image .custom-header-media,
+	.home.blog.has-header-video .custom-header-media {
+		height: 0;
+		position: relative;
+	}
+
+	.has-header-image:not(.twentyseventeen-front-page):not(.home) .custom-header-media,
+	.has-header-video:not(.twentyseventeen-front-page):not(.home) .custom-header-media {
+		bottom: 0;
+		height: auto;
+		left: 0;
+		position: absolute;
+		right: 0;
+		top: 0;
+	}
+
+	.custom-logo-link {
+		padding-right: 2em;
+	}
+
+	.custom-logo-link img,
+	body.home.title-tagline-hidden.has-header-image .custom-logo-link img,
+	body.home.title-tagline-hidden.has-header-video .custom-logo-link img {
+		max-width: 350px;
+	}
+
+	.title-tagline-hidden.home.has-header-image .custom-logo-link img,
+	.title-tagline-hidden.home.has-header-video .custom-logo-link img {
+		max-height: 200px;
+	}
+
+	.site-title {
+		font-size: 36px;
+		font-size: 2.25rem;
+	}
+
+	.site-description {
+		font-size: 16px;
+		font-size: 1rem;
+	}
+
+	/* Navigation */
+
+	.navigation-top {
+		bottom: 0;
+		font-size: 14px;
+		font-size: 0.875rem;
+		left: 0;
+		position: absolute;
+		right: 0;
+		width: 100%;
+		z-index: 3;
+	}
+
+	.navigation-top .wrap {
+		max-width: 1000px;
+		/* The font size is 14px here and we need 50px padding in ems */
+		padding: 0.75em 3.4166666666667em;
+	}
+
+	.navigation-top nav {
+		margin-left: -1.25em;
+	}
+
+	.site-navigation-fixed.navigation-top {
+		bottom: auto;
+		position: fixed;
+		left: 0;
+		right: 0;
+		top: 0;
+		width: 100%;
+		z-index: 7;
+	}
+
+	.admin-bar .site-navigation-fixed.navigation-top {
+		top: 32px;
+	}
+
+	/* Main Navigation */
+
+	.js .menu-toggle,
+	.js .dropdown-toggle {
+		display: none;
+	}
+
+	.main-navigation {
+		width: auto;
+	}
+
+	.js .main-navigation ul,
+	.js .main-navigation ul ul,
+	.js .main-navigation > div > ul {
+		display: block;
+	}
+
+	.main-navigation ul {
+		background: transparent;
+		padding: 0;
+	}
+
+	.main-navigation > div > ul {
+		border: 0;
+		margin-bottom: 0;
+		padding: 0;
+	}
+
+	.main-navigation li {
+		border: 0;
+		display: inline-block;
+	}
+
+	.main-navigation li li {
+		display: block;
+	}
+
+	.main-navigation a {
+		padding: 1em 1.25em;
+	}
+
+	.main-navigation ul ul {
+		background: #fff;
+		border: 1px solid #bbb;
+		left: -999em;
+		padding: 0;
+		position: absolute;
+		top: 100%;
+		z-index: 99999;
+	}
+
+	.main-navigation ul li.menu-item-has-children:before,
+	.main-navigation ul li.menu-item-has-children:after,
+	.main-navigation ul li.page_item_has_children:before,
+	.main-navigation ul li.page_item_has_children:after {
+		border-style: solid;
+		border-width: 0 6px 6px;
+		content: "";
+		display: none;
+		height: 0;
+		position: absolute;
+		right: 1em;
+		bottom: -1px;
+		width: 0;
+		z-index: 100000;
+	}
+
+	.main-navigation ul li.menu-item-has-children.focus:before,
+	.main-navigation ul li.menu-item-has-children:hover:before,
+	.main-navigation ul li.menu-item-has-children.focus:after,
+	.main-navigation ul li.menu-item-has-children:hover:after,
+	.main-navigation ul li.page_item_has_children.focus:before,
+	.main-navigation ul li.page_item_has_children:hover:before,
+	.main-navigation ul li.page_item_has_children.focus:after,
+	.main-navigation ul li.page_item_has_children:hover:after {
+		display: block;
+	}
+
+	.main-navigation ul li.menu-item-has-children:before,
+	.main-navigation ul li.page_item_has_children:before {
+		border-color: transparent transparent #bbb;
+		bottom: 0;
+	}
+
+	.main-navigation ul li.menu-item-has-children:after,
+	.main-navigation ul li.page_item_has_children:after {
+		border-color: transparent transparent #fff;
+	}
+
+	.main-navigation ul ul li:hover > ul,
+	.main-navigation ul ul li.focus > ul {
+		left: 100%;
+		right: auto;
+	}
+
+	.main-navigation ul ul a {
+		padding: 0.75em 1.25em;
+		width: 16em;
+	}
+
+	.main-navigation li li {
+		-webkit-transition: background-color 0.2s ease-in-out;
+		transition: background-color 0.2s ease-in-out;
+	}
+
+	.main-navigation li li:hover,
+	.main-navigation li li.focus {
+		background: #767676;
+	}
+
+	.main-navigation li li a {
+		-webkit-transition: color 0.3s ease-in-out;
+		transition: color 0.3s ease-in-out;
+	}
+
+	.main-navigation li li.focus > a,
+	.main-navigation li li:focus > a,
+	.main-navigation li li:hover > a,
+	.main-navigation li li a:hover,
+	.main-navigation li li a:focus,
+	.main-navigation li li.current_page_item a:hover,
+	.main-navigation li li.current-menu-item a:hover,
+	.main-navigation li li.current_page_item a:focus,
+	.main-navigation li li.current-menu-item a:focus {
+		color: #fff;
+	}
+
+	.main-navigation ul li:hover > ul,
+	.main-navigation ul li.focus > ul {
+		left: 0.5em;
+		right: auto;
+	}
+
+	.main-navigation .menu-item-has-children > a > .icon,
+	.main-navigation .page_item_has_children > a > .icon {
+		display: inline;
+		left: 5px;
+		position: relative;
+		top: -1px;
+	}
+
+	.main-navigation ul ul .menu-item-has-children > a > .icon,
+	.main-navigation ul ul .page_item_has_children > a > .icon {
+		margin-top: -9px;
+		left: auto;
+		position: absolute;
+		right: 1em;
+		top: 50%;
+		-webkit-transform: rotate(-90deg); /* Chrome, Safari, Opera */
+		-ms-transform: rotate(-90deg); /* IE 9 */
+		transform: rotate(-90deg);
+	}
+
+	.main-navigation ul ul ul {
+		left: -999em;
+		margin-top: -1px;
+		top: 0;
+	}
+
+	.main-navigation ul ul li.menu-item-has-children.focus:before,
+	.main-navigation ul ul li.menu-item-has-children:hover:before,
+	.main-navigation ul ul li.menu-item-has-children.focus:after,
+	.main-navigation ul ul li.menu-item-has-children:hover:after,
+	.main-navigation ul ul li.page_item_has_children.focus:before,
+	.main-navigation ul ul li.page_item_has_children:hover:before,
+	.main-navigation ul ul li.page_item_has_children.focus:after,
+	.main-navigation ul ul li.page_item_has_children:hover:after {
+		display: none;
+	}
+
+	.site-header .site-navigation-fixed .menu-scroll-down {
+		display: none;
+	}
+
+	/* Scroll down arrow */
+
+	.site-header .menu-scroll-down {
+		display: block;
+		padding: 1em;
+		position: absolute;
+		right: 0;
+	}
+
+	.site-header .menu-scroll-down .icon {
+		-webkit-transform: rotate(90deg); /* Chrome, Safari, Opera */
+		-ms-transform: rotate(90deg); /* IE 9 */
+		transform: rotate(90deg);
+	}
+
+	.site-header .menu-scroll-down {
+		color: #fff;
+		top: 2em;
+	}
+
+	.site-header .navigation-top .menu-scroll-down {
+		color: #767676;
+		top: 0.7em;
+	}
+
+	.menu-scroll-down:focus {
+		outline: thin dotted;
+	}
+
+	.menu-scroll-down .icon {
+		height: 18px;
+		width: 18px;
+	}
+
+	/* Front Page */
+
+	.twentyseventeen-front-page.has-header-image .site-branding,
+	.twentyseventeen-front-page.has-header-video .site-branding,
+	.home.blog.has-header-image .site-branding,
+	.home.blog.has-header-video .site-branding {
+		margin-bottom: 70px;
+	}
+
+	.twentyseventeen-front-page.has-header-image .custom-header-media,
+	.twentyseventeen-front-page.has-header-video .custom-header-media,
+	.home.blog.has-header-image .custom-header-media,
+	.home.blog.has-header-video .custom-header-media {
+		height: 1200px;
+		height: 100vh;
+		max-height: 100%;
+		overflow: hidden;
+	}
+
+	.twentyseventeen-front-page.has-header-image .custom-header-media:before,
+	.twentyseventeen-front-page.has-header-video .custom-header-media:before,
+	.home.blog.has-header-image .custom-header-media:before,
+	.home.blog.has-header-video .custom-header-media:before {
+		height: 33%;
+	}
+
+	.admin-bar.twentyseventeen-front-page.has-header-image .custom-header-media,
+	.admin-bar.twentyseventeen-front-page.has-header-video .custom-header-media,
+	.admin-bar.home.blog.has-header-image .custom-header-media,
+	.admin-bar.home.blog.has-header-video .custom-header-media {
+		height: calc(100vh - 32px);
+	}
+
+	.panel-content .wrap {
+		padding-bottom: 4.5em;
+		padding-top: 6em;
+	}
+
+	.panel-image {
+		height: 100vh;
+		max-height: 1200px;
+	}
+
+	/* With panel images 100% of the screen height, we're going to fix the background image where supported to create a parallax-like effect. */
+	.background-fixed .panel-image {
+		background-attachment: fixed;
+	}
+
+	.page-two-column .panel-content .entry-header {
+		float: left;
+		width: 36%;
+	}
+
+	.page-two-column .panel-content .entry-content {
+		float: right;
+		width: 58%;
+	}
+
+	/* Front Page - Recent Posts */
+
+	.page-two-column .panel-content .recent-posts {
+		clear: right;
+		float: right;
+		width: 58%;
+	}
+
+	.panel-content .recent-posts article {
+		margin-bottom: 4em;
+	}
+
+	.panel-content .recent-posts .entry-header,
+	.page-two-column #primary .panel-content .recent-posts .entry-header,
+	.panel-content .recent-posts .entry-content,
+	.page-two-column #primary .panel-content .recent-posts .entry-content {
+		float: none;
+		width: 100%;
+	}
+
+	.panel-content .recent-posts .entry-header {
+		margin-bottom: 1.5em;
+	}
+
+	.page .panel-content .recent-posts .entry-title {
+		font-size: 26px;
+		font-size: 1.625rem;
+	}
+
+	/* Posts */
+
+	.site-content {
+		padding: 5.5em 0 0;
+	}
+
+	.single-post .entry-title,
+	.page .entry-title {
+		font-size: 26px;
+		font-size: 1.625rem;
+	}
+
+	.comments-pagination,
+	.post-navigation {
+		clear: both;
+	}
+
+	.post-navigation .nav-previous {
+		float: left;
+		width: 50%;
+	}
+
+	.post-navigation .nav-next {
+		float: right;
+		text-align: right;
+		width: 50%;
+	}
+
+	.nav-next,
+	.post-navigation .nav-next {
+		margin-top: 0;
+	}
+
+	/* Blog, archive, search */
+
+	.sticky .icon-thumb-tack {
+		height: 23px;
+		left: -2.5em;
+		top: 1.5em;
+		width: 32px;
+	}
+
+	body:not(.has-sidebar):not(.page-one-column) .page-header,
+	body.has-sidebar.error404 #primary .page-header,
+	body.page-two-column:not(.archive) #primary .entry-header,
+	body.page-two-column.archive:not(.has-sidebar) #primary .page-header {
+		float: left;
+		width: 36%;
+	}
+
+	.blog:not(.has-sidebar) #primary article,
+	.archive:not(.page-one-column):not(.has-sidebar) #primary article,
+	.search:not(.has-sidebar) #primary article,
+	.error404:not(.has-sidebar) #primary .page-content,
+	.error404.has-sidebar #primary .page-content,
+	body.page-two-column:not(.archive) #primary .entry-content,
+	body.page-two-column #comments {
+		float: right;
+		width: 58%;
+	}
+
+	.blog .site-main > article,
+	.archive .site-main > article,
+	.search .site-main > article {
+		padding-bottom: 4em;
+	}
+
+	.navigation.pagination {
+		clear: both;
+		float: right;
+		width: 58%;
+	}
+
+	.has-sidebar .navigation.pagination,
+	.archive.page-one-column:not(.has-sidebar) .navigation.pagination {
+		float: none;
+		width: 100%;
+	}
+
+	.entry-footer {
+		display: table;
+		width: 100%;
+	}
+
+	.entry-footer .cat-tags-links {
+		display: table-cell;
+		vertical-align: middle;
+		width: 100%;
+	}
+
+	.entry-footer .edit-link {
+		display: table-cell;
+		text-align: right;
+		vertical-align: middle;
+	}
+
+	.entry-footer .edit-link a.post-edit-link {
+		margin-top: 0;
+		margin-left: 1em;
+	}
+
+	/* Entry content */
+
+	/* without sidebar */
+
+	:not(.has-sidebar) .entry-content blockquote.alignleft {
+		margin-left: -17.5%;
+		width: 48%;
+	}
+
+	:not(.has-sidebar) .entry-content blockquote.alignright {
+		margin-right: -17.5%;
+		width: 48%;
+	}
+
+	/* with sidebar */
+
+	.has-sidebar .entry-content blockquote.alignleft {
+		margin-left: 0;
+		width: 34%;
+	}
+
+	.has-sidebar .entry-content blockquote.alignright {
+		margin-right: 0;
+		width: 34%;
+	}
+
+	.has-sidebar #primary .entry-content blockquote.alignright.below-entry-meta {
+		margin-right: -72.5%;
+		width: 62%;
+	}
+
+	/* blog and archive */
+
+	.blog:not(.has-sidebar) .entry-content blockquote.alignleft,
+	.twentyseventeen-front-page.page-two-column .entry-content blockquote.alignleft,
+	.archive:not(.has-sidebar) .entry-content blockquote.alignleft,
+	.page-two-column .entry-content blockquote.alignleft {
+		margin-left: -72.5%;
+		width: 62%;
+	}
+
+	.blog:not(.has-sidebar) .entry-content blockquote.alignright,
+	.twentyseventeen-front-page.page-two-column .entry-content blockquote.alignright,
+	.archive:not(.has-sidebar) .entry-content blockquote.alignright,
+	.page-two-column .entry-content blockquote.alignright {
+		margin-right: 0;
+		width: 36%;
+	}
+
+	/* Post formats */
+
+	.format-quote blockquote .icon {
+		left: -1.5em;
+	}
+
+	/* Pages */
+
+	.page.page-one-column .entry-header,
+	.twentyseventeen-front-page.page-one-column .entry-header,
+	.archive.page-one-column:not(.has-sidebar) .page-header {
+		margin-bottom: 4em;
+	}
+
+	.page:not(.home) #content {
+		padding-bottom: 3.25em;
+	}
+
+	/* 404 page */
+
+	.error404 .page-content {
+		padding-bottom: 9em;
+	}
+
+	/* Comments */
+
+	#comments {
+		padding-top: 5em;
+	}
+
+	.comments-title {
+		margin-bottom: 2.5em;
+	}
+
+	ol.children .children {
+		padding-left: 2em;
+	}
+
+	/* Posts pagination */
+
+	.nav-links .nav-title {
+		position: relative;
+	}
+
+	.nav-title-icon-wrapper {
+		position: absolute;
+		text-align: center;
+		width: 2em;
+	}
+
+	.nav-links .nav-previous .nav-title .nav-title-icon-wrapper {
+		left: -2em;
+	}
+
+	.nav-links .nav-next .nav-title .nav-title-icon-wrapper {
+		right: -2em;
+	}
+
+	/* Secondary */
+
+	#secondary {
+		font-size: 14px;
+		font-size: 0.875rem;
+		line-height: 1.6;
+	}
+
+	/* Widgets */
+
+	h2.widget-title {
+		font-size: 11px;
+		font-size: 0.6875rem;
+		margin-bottom: 2em;
+	}
+
+	/* Footer */
+
+	.site-footer {
+		font-size: 14px;
+		font-size: 0.875rem;
+		line-height: 1.6;
+		margin-top: 3em;
+	}
+
+	.site-footer .widget-column.footer-widget-1 {
+		float: left;
+		width: 36%;
+	}
+
+	.site-footer .widget-column.footer-widget-2 {
+		float: right;
+		width: 58%;
+	}
+
+	.social-navigation {
+		clear: left;
+		float: left;
+		margin-bottom: 0;
+		width: 36%;
+	}
+
+	.site-info {
+		float: left;
+		padding: 0.7em 0 0;
+		width: 58%;
+	}
+
+	.social-navigation + .site-info {
+		margin-left: 6%;
+	}
+
+	.site-info .sep {
+		margin: 0 0.5em;
+		display: inline;
+		visibility: visible;
+		height: auto;
+		width: auto;
+	}
+
+	/* Gallery Columns */
+
+	.gallery-columns-5 .gallery-item {
+		max-width: 20%;
+	}
+
+	.gallery-columns-6 .gallery-item {
+		max-width: 16.66%;
+	}
+
+	.gallery-columns-7 .gallery-item {
+		max-width: 14.28%;
+	}
+
+	.gallery-columns-8 .gallery-item {
+		max-width: 12.5%;
+	}
+
+	.gallery-columns-9 .gallery-item {
+		max-width: 11.11%;
+	}
+}
+
+@media screen and ( min-width: 67em ) {
+
+	/* Layout */
+
+	/* Navigation */
+	.navigation-top .wrap {
+		padding: 0.75em 2em;
+	}
+
+	.navigation-top nav {
+		margin-left: 0;
+	}
+
+	/* Sticky posts */
+
+	.sticky .icon-thumb-tack {
+		font-size: 32px;
+		font-size: 2rem;
+		height: 22px;
+		left: -1.25em;
+		top: 0.75em;
+		width: 32px;
+	}
+
+	/* Pagination */
+
+	.page-numbers {
+		display: inline-block;
+	}
+
+	.page-numbers.current {
+		font-size: 15px;
+		font-size: 0.9375rem;
+	}
+
+	.page-numbers.current .screen-reader-text {
+		clip: rect(1px, 1px, 1px, 1px);
+		height: 1px;
+		overflow: hidden;
+		position: absolute !important;
+		width: 1px;
+	}
+
+	/* Comments */
+
+	.comment-body {
+		margin-left: 0;
+	}
+}
+
+@media screen and ( min-width: 79em ) {
+
+	.has-sidebar .entry-content blockquote.alignleft {
+		margin-left: -20%;
+	}
+
+	.blog:not(.has-sidebar) .entry-content blockquote.alignright,
+	.archive:not(.has-sidebar) .entry-content blockquote.alignright,
+	.page-two-column .entry-content blockquote.alignright,
+	.twentyseventeen-front-page .entry-content blockquote.alignright {
+		margin-right: -20%;
+	}
+}
+
+@media screen and ( max-width: 48.875em ) and ( min-width: 48em ) {
+
+	.admin-bar .site-navigation-fixed.navigation-top,
+	.admin-bar .site-navigation-hidden.navigation-top {
+		top: 46px;
+	}
+}
+
+/*--------------------------------------------------------------
+20.0 Print
+--------------------------------------------------------------*/
+
+@media print {
+
+	/* Hide elements */
+
+	form,
+	button,
+	input,
+	select,
+	textarea,
+	.navigation-top,
+	.social-navigation,
+	#secondary,
+	.content-bottom-widgets,
+	.header-image,
+	.panel-image-prop,
+	.icon-thumb-tack,
+	.page-links,
+	.edit-link,
+	.post-navigation,
+	.pagination.navigation,
+	.comments-pagination,
+	.comment-respond,
+	.comment-edit-link,
+	.comment-reply-link,
+	.comment-metadata .edit-link,
+	.pingback .edit-link,
+	.site-footer aside.widget-area,
+	.site-info {
+		display: none !important;
+	}
+
+	.entry-footer,
+	#comments,
+	.site-footer,
+	.single-featured-image-header {
+		border: 0;
+	}
+
+	/* Font sizes */
+
+	body {
+		font-size: 12pt;
+	}
+
+	h1 {
+		font-size: 24pt;
+	}
+
+	h2 {
+		font-size: 22pt;
+	}
+
+	h3 {
+		font-size: 17pt;
+	}
+
+	h4 {
+		font-size: 12pt;
+	}
+
+	h5 {
+		font-size: 11pt;
+	}
+
+	h6 {
+		font-size: 12pt;
+	}
+
+	.page .panel-content .entry-title,
+	.page-title,
+	body.page:not(.twentyseventeen-front-page) .entry-title {
+		font-size: 10pt;
+	}
+
+	/* Layout */
+
+	.wrap {
+		padding-left: 5% !important;
+		padding-right: 5% !important;
+		max-width: none;
+	}
+
+	/* Site Branding */
+
+	.site-header {
+		background: transparent;
+		padding: 0;
+	}
+
+	.custom-header-media {
+		padding: 0;
+	}
+
+	.twentyseventeen-front-page.has-header-image .site-branding,
+	.twentyseventeen-front-page.has-header-video .site-branding,
+	.home.blog.has-header-image .site-branding,
+	.home.blog.has-header-video .site-branding {
+		position: relative;
+	}
+
+	.site-branding {
+		margin-top: 0;
+		margin-bottom: 1.75em !important; /* override styles added by JavaScript */
+	}
+
+	.site-title {
+		font-size: 25pt;
+	}
+
+	.site-description {
+		font-size: 12pt;
+		opacity: 1;
+	}
+
+	/* Posts */
+
+	.single-featured-image-header {
+		background: transparent;
+	}
+
+	.entry-meta {
+		font-size: 9pt;
+	}
+
+	/* Colors */
+
+	body,
+	.site {
+		background: none !important; /* Brute force since user agents all print differently. */
+	}
+
+	body,
+	a,
+	.site-title a,
+	.twentyseventeen-front-page.has-header-image .site-title,
+	.twentyseventeen-front-page.has-header-video .site-title,
+	.twentyseventeen-front-page.has-header-image .site-title a,
+	.twentyseventeen-front-page.has-header-video .site-title a {
+		color: #222 !important; /* Make sure color schemes don't affect to print */
+	}
+
+	h2,
+	h5,
+	blockquote,
+	.site-description,
+	.twentyseventeen-front-page.has-header-image .site-description,
+	.twentyseventeen-front-page.has-header-video .site-description,
+	.entry-meta,
+	.entry-meta a {
+		color: #777 !important; /* Make sure color schemes don't affect to print */
+	}
+
+	.entry-content blockquote.alignleft,
+	.entry-content blockquote.alignright {
+		font-size: 11pt;
+		width: 34%;
+	}
+
+	.site-footer {
+		padding: 0;
+	}
+}
diff --git a/wp-content/themes/twentyseventeen/template-parts/footer/footer-widgets.php b/wp-content/themes/twentyseventeen/template-parts/footer/footer-widgets.php
new file mode 100644
index 000000000..ed6bb59c5
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/footer/footer-widgets.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Displays footer widgets if assigned
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+
+<?php
+if ( is_active_sidebar( 'sidebar-2' ) ||
+	 is_active_sidebar( 'sidebar-3' ) ) :
+?>
+
+	<aside class="widget-area" role="complementary">
+		<?php
+		if ( is_active_sidebar( 'sidebar-2' ) ) { ?>
+			<div class="widget-column footer-widget-1">
+				<?php dynamic_sidebar( 'sidebar-2' ); ?>
+			</div>
+		<?php }
+		if ( is_active_sidebar( 'sidebar-3' ) ) { ?>
+			<div class="widget-column footer-widget-2">
+				<?php dynamic_sidebar( 'sidebar-3' ); ?>
+			</div>
+		<?php } ?>
+	</aside><!-- .widget-area -->
+
+<?php endif; ?>
diff --git a/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php b/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php
new file mode 100644
index 000000000..8455dc423
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Displays footer site info
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+<div class="site-info">
+	<a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyseventeen' ) ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentyseventeen' ), 'WordPress' ); ?></a>
+</div><!-- .site-info -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/header/header-image.php b/wp-content/themes/twentyseventeen/template-parts/header/header-image.php
new file mode 100644
index 000000000..6398b22d7
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/header/header-image.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Displays header media
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+<div class="custom-header">
+
+	<div class="custom-header-media">
+		<?php the_custom_header_markup(); ?>
+	</div>
+
+	<?php get_template_part( 'template-parts/header/site', 'branding' ); ?>
+
+</div><!-- .custom-header -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/header/site-branding.php b/wp-content/themes/twentyseventeen/template-parts/header/site-branding.php
new file mode 100644
index 000000000..a86393805
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/header/site-branding.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Displays header site branding
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+<div class="site-branding">
+	<div class="wrap">
+
+		<?php the_custom_logo(); ?>
+
+		<div class="site-branding-text">
+			<?php if ( is_front_page() ) : ?>
+				<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
+			<?php else : ?>
+				<p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
+			<?php endif; ?>
+
+			<?php $description = get_bloginfo( 'description', 'display' );
+				if ( $description || is_customize_preview() ) : ?>
+					<p class="site-description"><?php echo $description; ?></p>
+				<?php endif; ?>
+		</div><!-- .site-branding-text -->
+
+		<?php if ( ( twentyseventeen_is_frontpage() || ( is_home() && is_front_page() ) ) && ! has_nav_menu( 'top' ) ) : ?>
+		<a href="#content" class="menu-scroll-down"><?php echo twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ); ?><span class="screen-reader-text"><?php _e( 'Scroll down to content', 'twentyseventeen' ); ?></span></a>
+	<?php endif; ?>
+
+	</div><!-- .wrap -->
+</div><!-- .site-branding -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php b/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php
new file mode 100644
index 000000000..3a8837f97
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/navigation/navigation-top.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Displays top navigation
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+<nav id="site-navigation" class="main-navigation" role="navigation" aria-label="<?php _e( 'Top Menu', 'twentyseventeen' ); ?>">
+	<button class="menu-toggle" aria-controls="top-menu" aria-expanded="false"><?php echo twentyseventeen_get_svg( array( 'icon' => 'bars' ) ); echo twentyseventeen_get_svg( array( 'icon' => 'close' ) ); _e( 'Menu', 'twentyseventeen' ); ?></button>
+	<?php wp_nav_menu( array(
+		'theme_location' => 'top',
+		'menu_id'        => 'top-menu',
+	) ); ?>
+
+	<?php if ( ( twentyseventeen_is_frontpage() || ( is_home() && is_front_page() ) ) && has_custom_header() ) : ?>
+		<a href="#content" class="menu-scroll-down"><?php echo twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ); ?><span class="screen-reader-text"><?php _e( 'Scroll down to content', 'twentyseventeen' ); ?></span></a>
+	<?php endif; ?>
+</nav><!-- #site-navigation -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/page/content-front-page-panels.php b/wp-content/themes/twentyseventeen/template-parts/page/content-front-page-panels.php
new file mode 100644
index 000000000..79e11949b
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/page/content-front-page-panels.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Template part for displaying pages on front page
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+global $twentyseventeencounter;
+
+?>
+
+<article id="panel<?php echo $twentyseventeencounter; ?>" <?php post_class( 'twentyseventeen-panel ' ); ?> >
+
+	<?php if ( has_post_thumbnail() ) :
+		$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'twentyseventeen-featured-image' );
+
+		// Calculate aspect ratio: h / w * 100%.
+		$ratio = $thumbnail[2] / $thumbnail[1] * 100;
+		?>
+
+		<div class="panel-image" style="background-image: url(<?php echo esc_url( $thumbnail[0] ); ?>);">
+			<div class="panel-image-prop" style="padding-top: <?php echo esc_attr( $ratio ); ?>%"></div>
+		</div><!-- .panel-image -->
+
+	<?php endif; ?>
+
+	<div class="panel-content">
+		<div class="wrap">
+			<header class="entry-header">
+				<?php the_title( '<h2 class="entry-title">', '</h2>' ); ?>
+
+				<?php twentyseventeen_edit_link( get_the_ID() ); ?>
+
+			</header><!-- .entry-header -->
+
+			<div class="entry-content">
+				<?php
+					/* translators: %s: Name of current post */
+					the_content( sprintf(
+						__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
+						get_the_title()
+					) );
+				?>
+			</div><!-- .entry-content -->
+
+			<?php
+			// Show recent blog posts if is blog posts page (Note that get_option returns a string, so we're casting the result as an int).
+			if ( get_the_ID() === (int) get_option( 'page_for_posts' )  ) : ?>
+
+				<?php // Show four most recent posts.
+				$recent_posts = new WP_Query( array(
+					'posts_per_page'      => 3,
+					'post_status'         => 'publish',
+					'ignore_sticky_posts' => true,
+					'no_found_rows'       => true,
+				) );
+				?>
+
+		 		<?php if ( $recent_posts->have_posts() ) : ?>
+
+					<div class="recent-posts">
+
+						<?php
+						while ( $recent_posts->have_posts() ) : $recent_posts->the_post();
+							get_template_part( 'template-parts/post/content', 'excerpt' );
+						endwhile;
+						wp_reset_postdata();
+						?>
+					</div><!-- .recent-posts -->
+				<?php endif; ?>
+			<?php endif; ?>
+
+		</div><!-- .wrap -->
+	</div><!-- .panel-content -->
+
+</article><!-- #post-## -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/page/content-front-page.php b/wp-content/themes/twentyseventeen/template-parts/page/content-front-page.php
new file mode 100644
index 000000000..38fa0f77e
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/page/content-front-page.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Displays content for front page
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+<article id="post-<?php the_ID(); ?>" <?php post_class( 'twentyseventeen-panel ' ); ?> >
+
+	<?php if ( has_post_thumbnail() ) :
+		$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'twentyseventeen-featured-image' );
+
+		$post_thumbnail_id = get_post_thumbnail_id( $post->ID );
+
+		$thumbnail_attributes = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'twentyseventeen-featured-image' );
+
+		// Calculate aspect ratio: h / w * 100%.
+		$ratio = $thumbnail_attributes[2] / $thumbnail_attributes[1] * 100;
+		?>
+
+		<div class="panel-image" style="background-image: url(<?php echo esc_url( $thumbnail[0] ); ?>);">
+			<div class="panel-image-prop" style="padding-top: <?php echo esc_attr( $ratio ); ?>%"></div>
+		</div><!-- .panel-image -->
+
+	<?php endif; ?>
+
+	<div class="panel-content">
+		<div class="wrap">
+			<header class="entry-header">
+				<?php the_title( '<h2 class="entry-title">', '</h2>' ); ?>
+
+				<?php twentyseventeen_edit_link( get_the_ID() ); ?>
+
+			</header><!-- .entry-header -->
+
+			<div class="entry-content">
+				<?php
+					/* translators: %s: Name of current post */
+					the_content( sprintf(
+						__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
+						get_the_title()
+					) );
+				?>
+			</div><!-- .entry-content -->
+
+		</div><!-- .wrap -->
+	</div><!-- .panel-content -->
+
+</article><!-- #post-## -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/page/content-page.php b/wp-content/themes/twentyseventeen/template-parts/page/content-page.php
new file mode 100644
index 000000000..4c470acfb
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/page/content-page.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Template part for displaying page content in page.php
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+
+<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+	<header class="entry-header">
+		<?php the_title( '<h1 class="entry-title">', '</h1>' ); ?>
+		<?php twentyseventeen_edit_link( get_the_ID() ); ?>
+	</header><!-- .entry-header -->
+	<div class="entry-content">
+		<?php
+			the_content();
+
+			wp_link_pages( array(
+				'before' => '<div class="page-links">' . __( 'Pages:', 'twentyseventeen' ),
+				'after'  => '</div>',
+			) );
+		?>
+	</div><!-- .entry-content -->
+</article><!-- #post-## -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/post/content-audio.php b/wp-content/themes/twentyseventeen/template-parts/post/content-audio.php
new file mode 100644
index 000000000..19c79acb2
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/post/content-audio.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * Template part for displaying audio posts
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+
+<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+	<?php
+		if ( is_sticky() && is_home() ) :
+			echo twentyseventeen_get_svg( array( 'icon' => 'thumb-tack' ) );
+		endif;
+	?>
+	<header class="entry-header">
+		<?php
+			if ( 'post' === get_post_type() ) :
+				echo '<div class="entry-meta">';
+					if ( is_single() ) :
+						twentyseventeen_posted_on();
+					else :
+						echo twentyseventeen_time_link();
+						twentyseventeen_edit_link();
+					endif;
+				echo '</div><!-- .entry-meta -->';
+			endif;
+
+			if ( is_single() ) {
+				the_title( '<h1 class="entry-title">', '</h1>' );
+			} else {
+				the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
+			}
+		?>
+	</header><!-- .entry-header -->
+
+	<?php
+		$content = apply_filters( 'the_content', get_the_content() );
+		$audio = false;
+
+		// Only get audio from the content if a playlist isn't present.
+		if ( false === strpos( $content, 'wp-playlist-script' ) ) {
+			$audio = get_media_embedded_in_content( $content, array( 'audio' ) );
+		}
+
+	?>
+
+	<?php if ( '' !== get_the_post_thumbnail() && ! is_single() ) : ?>
+		<div class="post-thumbnail">
+			<a href="<?php the_permalink(); ?>">
+				<?php the_post_thumbnail( 'twentyseventeen-featured-image' ); ?>
+			</a>
+		</div><!-- .post-thumbnail -->
+	<?php endif; ?>
+
+	<div class="entry-content">
+
+		<?php if ( ! is_single() ) :
+
+			// If not a single post, highlight the audio file.
+			if ( ! empty( $audio ) ) :
+				foreach ( $audio as $audio_html ) {
+					echo '<div class="entry-audio">';
+						echo $audio_html;
+					echo '</div><!-- .entry-audio -->';
+				}
+			endif;
+
+		endif;
+
+		if ( is_single() || empty( $audio ) ) :
+
+			/* translators: %s: Name of current post */
+			the_content( sprintf(
+				__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
+				get_the_title()
+			) );
+
+			wp_link_pages( array(
+				'before'      => '<div class="page-links">' . __( 'Pages:', 'twentyseventeen' ),
+				'after'       => '</div>',
+				'link_before' => '<span class="page-number">',
+				'link_after'  => '</span>',
+			) );
+
+		endif; ?>
+
+	</div><!-- .entry-content -->
+
+	<?php if ( is_single() ) : ?>
+		<?php twentyseventeen_entry_footer(); ?>
+	<?php endif; ?>
+
+</article><!-- #post-## -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/post/content-excerpt.php b/wp-content/themes/twentyseventeen/template-parts/post/content-excerpt.php
new file mode 100644
index 000000000..0b342d25b
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/post/content-excerpt.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Template part for displaying posts with excerpts
+ *
+ * Used in Search Results and for Recent Posts in Front Page panels.
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+
+<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+
+	<header class="entry-header">
+		<?php if ( 'post' === get_post_type() ) : ?>
+			<div class="entry-meta">
+				<?php
+					echo twentyseventeen_time_link();
+					twentyseventeen_edit_link();
+				?>
+			</div><!-- .entry-meta -->
+		<?php elseif ( 'page' === get_post_type() && get_edit_post_link() ) : ?>
+			<div class="entry-meta">
+				<?php twentyseventeen_edit_link(); ?>
+			</div><!-- .entry-meta -->
+		<?php endif; ?>
+
+		<?php the_title( sprintf( '<h2 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h2>' ); ?>
+	</header><!-- .entry-header -->
+
+	<div class="entry-summary">
+		<?php the_excerpt(); ?>
+	</div><!-- .entry-summary -->
+
+</article><!-- #post-## -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/post/content-gallery.php b/wp-content/themes/twentyseventeen/template-parts/post/content-gallery.php
new file mode 100644
index 000000000..7f4a643fb
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/post/content-gallery.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Template part for displaying gallery posts
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+?>
+
+<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+	<?php
+		if ( is_sticky() && is_home() ) :
+			echo twentyseventeen_get_svg( array( 'icon' => 'thumb-tack' ) );
+		endif;
+	?>
+	<header class="entry-header">
+		<?php
+			if ( 'post' === get_post_type() ) :
+				echo '<div class="entry-meta">';
+					if ( is_single() ) :
+						twentyseventeen_posted_on();
+					else :
+						echo twentyseventeen_time_link();
+						twentyseventeen_edit_link();
+					endif;
+				echo '</div><!-- .entry-meta -->';
+			endif;
+
+			if ( is_single() ) {
+				the_title( '<h1 class="entry-title">', '</h1>' );
+			} else {
+				the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
+			}
+		?>
+	</header><!-- .entry-header -->
+
+	<?php if ( '' !== get_the_post_thumbnail() && ! is_single() && ! get_post_gallery() ) : ?>
+		<div class="post-thumbnail">
+			<a href="<?php the_permalink(); ?>">
+				<?php the_post_thumbnail( 'twentyseventeen-featured-image' ); ?>
+			</a>
+		</div><!-- .post-thumbnail -->
+	<?php endif; ?>
+
+	<div class="entry-content">
+
+		<?php if ( ! is_single() ) :
+
+			// If not a single post, highlight the gallery.
+			if ( get_post_gallery() ) :
+				echo '<div class="entry-gallery">';
+					echo get_post_gallery();
+				echo '</div>';
+			endif;
+
+		endif;
+
+		if ( is_single() || ! get_post_gallery() ) :
+
+			/* translators: %s: Name of current post */
+			the_content( sprintf(
+				__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
+				get_the_title()
+			) );
+
+			wp_link_pages( array(
+				'before'      => '<div class="page-links">' . __( 'Pages:', 'twentyseventeen' ),
+				'after'       => '</div>',
+				'link_before' => '<span class="page-number">',
+				'link_after'  => '</span>',
+			) );
+
+		endif; ?>
+
+	</div><!-- .entry-content -->
+
+	<?php if ( is_single() ) : ?>
+		<?php twentyseventeen_entry_footer(); ?>
+	<?php endif; ?>
+
+</article><!-- #post-## -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/post/content-image.php b/wp-content/themes/twentyseventeen/template-parts/post/content-image.php
new file mode 100644
index 000000000..f40e1e67b
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/post/content-image.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Template part for displaying image posts
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+?>
+
+<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+	<?php
+		if ( is_sticky() && is_home() ) :
+			echo twentyseventeen_get_svg( array( 'icon' => 'thumb-tack' ) );
+		endif;
+	?>
+	<header class="entry-header">
+		<?php
+			if ( 'post' === get_post_type() ) :
+				echo '<div class="entry-meta">';
+					if ( is_single() ) :
+						twentyseventeen_posted_on();
+					else :
+						echo twentyseventeen_time_link();
+						twentyseventeen_edit_link();
+					endif;
+				echo '</div><!-- .entry-meta -->';
+			endif;
+
+			if ( is_single() ) {
+				the_title( '<h1 class="entry-title">', '</h1>' );
+			} else {
+				the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
+			}
+		?>
+	</header><!-- .entry-header -->
+
+	<?php if ( '' !== get_the_post_thumbnail() && ! is_single() ) : ?>
+		<div class="post-thumbnail">
+			<a href="<?php the_permalink(); ?>">
+				<?php the_post_thumbnail( 'twentyseventeen-featured-image' ); ?>
+			</a>
+		</div><!-- .post-thumbnail -->
+	<?php endif; ?>
+
+	<div class="entry-content">
+
+		<?php if ( is_single() || '' === get_the_post_thumbnail() ) :
+
+			// Only show content if is a single post, or if there's no featured image.
+			/* translators: %s: Name of current post */
+			the_content( sprintf(
+				__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
+				get_the_title()
+			) );
+
+			wp_link_pages( array(
+				'before'      => '<div class="page-links">' . __( 'Pages:', 'twentyseventeen' ),
+				'after'       => '</div>',
+				'link_before' => '<span class="page-number">',
+				'link_after'  => '</span>',
+			) );
+
+		endif; ?>
+
+	</div><!-- .entry-content -->
+
+	<?php if ( is_single() ) : ?>
+		<?php twentyseventeen_entry_footer(); ?>
+	<?php endif; ?>
+
+</article><!-- #post-## -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/post/content-none.php b/wp-content/themes/twentyseventeen/template-parts/post/content-none.php
new file mode 100644
index 000000000..c42941bb8
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/post/content-none.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Template part for displaying a message that posts cannot be found
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+
+<section class="no-results not-found">
+	<header class="page-header">
+		<h1 class="page-title"><?php _e( 'Nothing Found', 'twentyseventeen' ); ?></h1>
+	</header>
+	<div class="page-content">
+		<?php
+		if ( is_home() && current_user_can( 'publish_posts' ) ) : ?>
+
+			<p><?php printf( __( 'Ready to publish your first post? <a href="%1$s">Get started here</a>.', 'twentyseventeen' ), esc_url( admin_url( 'post-new.php' ) ) ); ?></p>
+
+		<?php else : ?>
+
+			<p><?php _e( 'It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps searching can help.', 'twentyseventeen' ); ?></p>
+			<?php
+				get_search_form();
+
+		endif; ?>
+	</div><!-- .page-content -->
+</section><!-- .no-results -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/post/content-video.php b/wp-content/themes/twentyseventeen/template-parts/post/content-video.php
new file mode 100644
index 000000000..cfa37554b
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/post/content-video.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * Template part for displaying video posts
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+?>
+
+<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+	<?php
+		if ( is_sticky() && is_home() ) :
+			echo twentyseventeen_get_svg( array( 'icon' => 'thumb-tack' ) );
+		endif;
+	?>
+	<header class="entry-header">
+		<?php
+			if ( 'post' === get_post_type() ) :
+				echo '<div class="entry-meta">';
+					if ( is_single() ) :
+						twentyseventeen_posted_on();
+					else :
+						echo twentyseventeen_time_link();
+						twentyseventeen_edit_link();
+					endif;
+				echo '</div><!-- .entry-meta -->';
+			endif;
+
+			if ( is_single() ) {
+				the_title( '<h1 class="entry-title">', '</h1>' );
+			} else {
+				the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
+			}
+		?>
+	</header><!-- .entry-header -->
+
+	<?php
+		$content = apply_filters( 'the_content', get_the_content() );
+		$video = false;
+
+		// Only get video from the content if a playlist isn't present.
+		if ( false === strpos( $content, 'wp-playlist-script' ) ) {
+			$video = get_media_embedded_in_content( $content, array( 'video', 'object', 'embed', 'iframe' ) );
+		}
+	?>
+
+	<?php if ( '' !== get_the_post_thumbnail() && ! is_single() && empty( $video ) ) : ?>
+		<div class="post-thumbnail">
+			<a href="<?php the_permalink(); ?>">
+				<?php the_post_thumbnail( 'twentyseventeen-featured-image' ); ?>
+			</a>
+		</div><!-- .post-thumbnail -->
+	<?php endif; ?>
+
+	<div class="entry-content">
+
+		<?php if ( ! is_single() ) :
+
+			// If not a single post, highlight the video file.
+			if ( ! empty( $video ) ) :
+				foreach ( $video as $video_html ) {
+					echo '<div class="entry-video">';
+						echo $video_html;
+					echo '</div>';
+				}
+			endif;
+
+		endif;
+
+		if ( is_single() || empty( $video ) ) :
+
+			/* translators: %s: Name of current post */
+			the_content( sprintf(
+				__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
+				get_the_title()
+			) );
+
+			wp_link_pages( array(
+				'before'      => '<div class="page-links">' . __( 'Pages:', 'twentyseventeen' ),
+				'after'       => '</div>',
+				'link_before' => '<span class="page-number">',
+				'link_after'  => '</span>',
+			) );
+
+		endif; ?>
+
+	</div><!-- .entry-content -->
+
+	<?php if ( is_single() ) : ?>
+		<?php twentyseventeen_entry_footer(); ?>
+	<?php endif; ?>
+
+</article><!-- #post-## -->
diff --git a/wp-content/themes/twentyseventeen/template-parts/post/content.php b/wp-content/themes/twentyseventeen/template-parts/post/content.php
new file mode 100644
index 000000000..7eeaa20e5
--- /dev/null
+++ b/wp-content/themes/twentyseventeen/template-parts/post/content.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Template part for displaying posts
+ *
+ * @link https://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Seventeen
+ * @since 1.0
+ * @version 1.0
+ */
+
+?>
+
+<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+	<?php
+		if ( is_sticky() && is_home() ) :
+			echo twentyseventeen_get_svg( array( 'icon' => 'thumb-tack' ) );
+		endif;
+	?>
+	<header class="entry-header">
+		<?php
+			if ( 'post' === get_post_type() ) :
+				echo '<div class="entry-meta">';
+					if ( is_single() ) :
+						twentyseventeen_posted_on();
+					else :
+						echo twentyseventeen_time_link();
+						twentyseventeen_edit_link();
+					endif;
+				echo '</div><!-- .entry-meta -->';
+			endif;
+
+			if ( is_single() ) {
+				the_title( '<h1 class="entry-title">', '</h1>' );
+			} else {
+				the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
+			}
+		?>
+	</header><!-- .entry-header -->
+
+	<?php if ( '' !== get_the_post_thumbnail() && ! is_single() ) : ?>
+		<div class="post-thumbnail">
+			<a href="<?php the_permalink(); ?>">
+				<?php the_post_thumbnail( 'twentyseventeen-featured-image' ); ?>
+			</a>
+		</div><!-- .post-thumbnail -->
+	<?php endif; ?>
+
+	<div class="entry-content">
+		<?php
+			/* translators: %s: Name of current post */
+			the_content( sprintf(
+				__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ),
+				get_the_title()
+			) );
+
+			wp_link_pages( array(
+				'before'      => '<div class="page-links">' . __( 'Pages:', 'twentyseventeen' ),
+				'after'       => '</div>',
+				'link_before' => '<span class="page-number">',
+				'link_after'  => '</span>',
+			) );
+		?>
+	</div><!-- .entry-content -->
+
+	<?php if ( is_single() ) : ?>
+		<?php twentyseventeen_entry_footer(); ?>
+	<?php endif; ?>
+
+</article><!-- #post-## -->
diff --git a/wp-includes/IXR/class-IXR-base64.php b/wp-includes/IXR/class-IXR-base64.php
new file mode 100644
index 000000000..910f81b19
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-base64.php
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ * IXR_Base64
+ *
+ * @package IXR
+ * @since 1.5.0
+ */
+class IXR_Base64
+{
+    var $data;
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct( $data )
+    {
+        $this->data = $data;
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_Base64( $data ) {
+		self::__construct( $data );
+	}
+
+    function getXml()
+    {
+        return '<base64>'.base64_encode($this->data).'</base64>';
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-client.php b/wp-includes/IXR/class-IXR-client.php
new file mode 100644
index 000000000..f66bcb30d
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-client.php
@@ -0,0 +1,166 @@
+<?php
+
+/**
+ * IXR_Client
+ *
+ * @package IXR
+ * @since 1.5.0
+ *
+ */
+class IXR_Client
+{
+    var $server;
+    var $port;
+    var $path;
+    var $useragent;
+    var $response;
+    var $message = false;
+    var $debug = false;
+    var $timeout;
+    var $headers = array();
+
+    // Storage place for an error message
+    var $error = false;
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct( $server, $path = false, $port = 80, $timeout = 15 )
+    {
+        if (!$path) {
+            // Assume we have been given a URL instead
+            $bits = parse_url($server);
+            $this->server = $bits['host'];
+            $this->port = isset($bits['port']) ? $bits['port'] : 80;
+            $this->path = isset($bits['path']) ? $bits['path'] : '/';
+
+            // Make absolutely sure we have a path
+            if (!$this->path) {
+                $this->path = '/';
+            }
+
+            if ( ! empty( $bits['query'] ) ) {
+                $this->path .= '?' . $bits['query'];
+            }
+        } else {
+            $this->server = $server;
+            $this->path = $path;
+            $this->port = $port;
+        }
+        $this->useragent = 'The Incutio XML-RPC PHP Library';
+        $this->timeout = $timeout;
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_Client( $server, $path = false, $port = 80, $timeout = 15 ) {
+		self::__construct( $server, $path, $port, $timeout );
+	}
+
+    function query()
+    {
+        $args = func_get_args();
+        $method = array_shift($args);
+        $request = new IXR_Request($method, $args);
+        $length = $request->getLength();
+        $xml = $request->getXml();
+        $r = "\r\n";
+        $request  = "POST {$this->path} HTTP/1.0$r";
+
+        // Merged from WP #8145 - allow custom headers
+        $this->headers['Host']          = $this->server;
+        $this->headers['Content-Type']  = 'text/xml';
+        $this->headers['User-Agent']    = $this->useragent;
+        $this->headers['Content-Length']= $length;
+
+        foreach( $this->headers as $header => $value ) {
+            $request .= "{$header}: {$value}{$r}";
+        }
+        $request .= $r;
+
+        $request .= $xml;
+
+        // Now send the request
+        if ($this->debug) {
+            echo '<pre class="ixr_request">'.htmlspecialchars($request)."\n</pre>\n\n";
+        }
+
+        if ($this->timeout) {
+            $fp = @fsockopen($this->server, $this->port, $errno, $errstr, $this->timeout);
+        } else {
+            $fp = @fsockopen($this->server, $this->port, $errno, $errstr);
+        }
+        if (!$fp) {
+            $this->error = new IXR_Error(-32300, 'transport error - could not open socket');
+            return false;
+        }
+        fputs($fp, $request);
+        $contents = '';
+        $debugContents = '';
+        $gotFirstLine = false;
+        $gettingHeaders = true;
+        while (!feof($fp)) {
+            $line = fgets($fp, 4096);
+            if (!$gotFirstLine) {
+                // Check line for '200'
+                if (strstr($line, '200') === false) {
+                    $this->error = new IXR_Error(-32300, 'transport error - HTTP status code was not 200');
+                    return false;
+                }
+                $gotFirstLine = true;
+            }
+            if (trim($line) == '') {
+                $gettingHeaders = false;
+            }
+            if (!$gettingHeaders) {
+            	// merged from WP #12559 - remove trim
+                $contents .= $line;
+            }
+            if ($this->debug) {
+            	$debugContents .= $line;
+            }
+        }
+        if ($this->debug) {
+            echo '<pre class="ixr_response">'.htmlspecialchars($debugContents)."\n</pre>\n\n";
+        }
+
+        // Now parse what we've got back
+        $this->message = new IXR_Message($contents);
+        if (!$this->message->parse()) {
+            // XML error
+            $this->error = new IXR_Error(-32700, 'parse error. not well formed');
+            return false;
+        }
+
+        // Is the message a fault?
+        if ($this->message->messageType == 'fault') {
+            $this->error = new IXR_Error($this->message->faultCode, $this->message->faultString);
+            return false;
+        }
+
+        // Message must be OK
+        return true;
+    }
+
+    function getResponse()
+    {
+        // methodResponses can only have one param - return that
+        return $this->message->params[0];
+    }
+
+    function isError()
+    {
+        return (is_object($this->error));
+    }
+
+    function getErrorCode()
+    {
+        return $this->error->code;
+    }
+
+    function getErrorMessage()
+    {
+        return $this->error->message;
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-clientmulticall.php b/wp-includes/IXR/class-IXR-clientmulticall.php
new file mode 100644
index 000000000..bc40efd77
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-clientmulticall.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * IXR_ClientMulticall
+ *
+ * @package IXR
+ * @since 1.5.0
+ */
+class IXR_ClientMulticall extends IXR_Client
+{
+    var $calls = array();
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct( $server, $path = false, $port = 80 )
+    {
+        parent::IXR_Client($server, $path, $port);
+        $this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)';
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_ClientMulticall( $server, $path = false, $port = 80 ) {
+		self::__construct( $server, $path, $port );
+	}
+
+    function addCall()
+    {
+        $args = func_get_args();
+        $methodName = array_shift($args);
+        $struct = array(
+            'methodName' => $methodName,
+            'params' => $args
+        );
+        $this->calls[] = $struct;
+    }
+
+    function query()
+    {
+        // Prepare multicall, then call the parent::query() method
+        return parent::query('system.multicall', $this->calls);
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-date.php b/wp-includes/IXR/class-IXR-date.php
new file mode 100644
index 000000000..7304f603b
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-date.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * IXR_Date
+ *
+ * @package IXR
+ * @since 1.5.0
+ */
+class IXR_Date {
+    var $year;
+    var $month;
+    var $day;
+    var $hour;
+    var $minute;
+    var $second;
+    var $timezone;
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct( $time )
+    {
+        // $time can be a PHP timestamp or an ISO one
+        if (is_numeric($time)) {
+            $this->parseTimestamp($time);
+        } else {
+            $this->parseIso($time);
+        }
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_Date( $time ) {
+		self::__construct( $time );
+	}
+
+    function parseTimestamp($timestamp)
+    {
+        $this->year = date('Y', $timestamp);
+        $this->month = date('m', $timestamp);
+        $this->day = date('d', $timestamp);
+        $this->hour = date('H', $timestamp);
+        $this->minute = date('i', $timestamp);
+        $this->second = date('s', $timestamp);
+        $this->timezone = '';
+    }
+
+    function parseIso($iso)
+    {
+        $this->year = substr($iso, 0, 4);
+        $this->month = substr($iso, 4, 2);
+        $this->day = substr($iso, 6, 2);
+        $this->hour = substr($iso, 9, 2);
+        $this->minute = substr($iso, 12, 2);
+        $this->second = substr($iso, 15, 2);
+        $this->timezone = substr($iso, 17);
+    }
+
+    function getIso()
+    {
+        return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second.$this->timezone;
+    }
+
+    function getXml()
+    {
+        return '<dateTime.iso8601>'.$this->getIso().'</dateTime.iso8601>';
+    }
+
+    function getTimestamp()
+    {
+        return mktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year);
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-error.php b/wp-includes/IXR/class-IXR-error.php
new file mode 100644
index 000000000..660f7d109
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-error.php
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * IXR_Error
+ *
+ * @package IXR
+ * @since 1.5.0
+ */
+class IXR_Error
+{
+    var $code;
+    var $message;
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct( $code, $message )
+    {
+        $this->code = $code;
+        $this->message = htmlspecialchars($message);
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_Error( $code, $message ) {
+		self::__construct( $code, $message );
+	}
+
+    function getXml()
+    {
+        $xml = <<<EOD
+<methodResponse>
+  <fault>
+    <value>
+      <struct>
+        <member>
+          <name>faultCode</name>
+          <value><int>{$this->code}</int></value>
+        </member>
+        <member>
+          <name>faultString</name>
+          <value><string>{$this->message}</string></value>
+        </member>
+      </struct>
+    </value>
+  </fault>
+</methodResponse>
+
+EOD;
+        return $xml;
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-introspectionserver.php b/wp-includes/IXR/class-IXR-introspectionserver.php
new file mode 100644
index 000000000..5628d81ca
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-introspectionserver.php
@@ -0,0 +1,174 @@
+<?php
+
+/**
+ * IXR_IntrospectionServer
+ *
+ * @package IXR
+ * @since 1.5.0
+ */
+class IXR_IntrospectionServer extends IXR_Server
+{
+    var $signatures;
+    var $help;
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct()
+    {
+        $this->setCallbacks();
+        $this->setCapabilities();
+        $this->capabilities['introspection'] = array(
+            'specUrl' => 'http://xmlrpc.usefulinc.com/doc/reserved.html',
+            'specVersion' => 1
+        );
+        $this->addCallback(
+            'system.methodSignature',
+            'this:methodSignature',
+            array('array', 'string'),
+            'Returns an array describing the return type and required parameters of a method'
+        );
+        $this->addCallback(
+            'system.getCapabilities',
+            'this:getCapabilities',
+            array('struct'),
+            'Returns a struct describing the XML-RPC specifications supported by this server'
+        );
+        $this->addCallback(
+            'system.listMethods',
+            'this:listMethods',
+            array('array'),
+            'Returns an array of available methods on this server'
+        );
+        $this->addCallback(
+            'system.methodHelp',
+            'this:methodHelp',
+            array('string', 'string'),
+            'Returns a documentation string for the specified method'
+        );
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_IntrospectionServer() {
+		self::__construct();
+	}
+
+    function addCallback($method, $callback, $args, $help)
+    {
+        $this->callbacks[$method] = $callback;
+        $this->signatures[$method] = $args;
+        $this->help[$method] = $help;
+    }
+
+    function call($methodname, $args)
+    {
+        // Make sure it's in an array
+        if ($args && !is_array($args)) {
+            $args = array($args);
+        }
+
+        // Over-rides default call method, adds signature check
+        if (!$this->hasMethod($methodname)) {
+            return new IXR_Error(-32601, 'server error. requested method "'.$this->message->methodName.'" not specified.');
+        }
+        $method = $this->callbacks[$methodname];
+        $signature = $this->signatures[$methodname];
+        $returnType = array_shift($signature);
+
+        // Check the number of arguments
+        if (count($args) != count($signature)) {
+            return new IXR_Error(-32602, 'server error. wrong number of method parameters');
+        }
+
+        // Check the argument types
+        $ok = true;
+        $argsbackup = $args;
+        for ($i = 0, $j = count($args); $i < $j; $i++) {
+            $arg = array_shift($args);
+            $type = array_shift($signature);
+            switch ($type) {
+                case 'int':
+                case 'i4':
+                    if (is_array($arg) || !is_int($arg)) {
+                        $ok = false;
+                    }
+                    break;
+                case 'base64':
+                case 'string':
+                    if (!is_string($arg)) {
+                        $ok = false;
+                    }
+                    break;
+                case 'boolean':
+                    if ($arg !== false && $arg !== true) {
+                        $ok = false;
+                    }
+                    break;
+                case 'float':
+                case 'double':
+                    if (!is_float($arg)) {
+                        $ok = false;
+                    }
+                    break;
+                case 'date':
+                case 'dateTime.iso8601':
+                    if (!is_a($arg, 'IXR_Date')) {
+                        $ok = false;
+                    }
+                    break;
+            }
+            if (!$ok) {
+                return new IXR_Error(-32602, 'server error. invalid method parameters');
+            }
+        }
+        // It passed the test - run the "real" method call
+        return parent::call($methodname, $argsbackup);
+    }
+
+    function methodSignature($method)
+    {
+        if (!$this->hasMethod($method)) {
+            return new IXR_Error(-32601, 'server error. requested method "'.$method.'" not specified.');
+        }
+        // We should be returning an array of types
+        $types = $this->signatures[$method];
+        $return = array();
+        foreach ($types as $type) {
+            switch ($type) {
+                case 'string':
+                    $return[] = 'string';
+                    break;
+                case 'int':
+                case 'i4':
+                    $return[] = 42;
+                    break;
+                case 'double':
+                    $return[] = 3.1415;
+                    break;
+                case 'dateTime.iso8601':
+                    $return[] = new IXR_Date(time());
+                    break;
+                case 'boolean':
+                    $return[] = true;
+                    break;
+                case 'base64':
+                    $return[] = new IXR_Base64('base64');
+                    break;
+                case 'array':
+                    $return[] = array('array');
+                    break;
+                case 'struct':
+                    $return[] = array('struct' => 'struct');
+                    break;
+            }
+        }
+        return $return;
+    }
+
+    function methodHelp($method)
+    {
+        return $this->help[$method];
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-message.php b/wp-includes/IXR/class-IXR-message.php
new file mode 100644
index 000000000..69af8aa2c
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-message.php
@@ -0,0 +1,234 @@
+<?php
+
+/**
+ * IXR_MESSAGE
+ *
+ * @package IXR
+ * @since 1.5.0
+ *
+ */
+class IXR_Message
+{
+    var $message;
+    var $messageType;  // methodCall / methodResponse / fault
+    var $faultCode;
+    var $faultString;
+    var $methodName;
+    var $params;
+
+    // Current variable stacks
+    var $_arraystructs = array();   // The stack used to keep track of the current array/struct
+    var $_arraystructstypes = array(); // Stack keeping track of if things are structs or array
+    var $_currentStructName = array();  // A stack as well
+    var $_param;
+    var $_value;
+    var $_currentTag;
+    var $_currentTagContents;
+    // The XML parser
+    var $_parser;
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct( $message )
+    {
+        $this->message =& $message;
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_Message( $message ) {
+		self::__construct( $message );
+	}
+
+    function parse()
+    {
+        if ( ! function_exists( 'xml_parser_create' ) ) {
+            trigger_error( __( "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );
+            return false;
+        }
+
+        // first remove the XML declaration
+        // merged from WP #10698 - this method avoids the RAM usage of preg_replace on very large messages
+        $header = preg_replace( '/<\?xml.*?\?'.'>/s', '', substr( $this->message, 0, 100 ), 1 );
+        $this->message = trim( substr_replace( $this->message, $header, 0, 100 ) );
+        if ( '' == $this->message ) {
+            return false;
+        }
+
+        // Then remove the DOCTYPE
+        $header = preg_replace( '/^<!DOCTYPE[^>]*+>/i', '', substr( $this->message, 0, 200 ), 1 );
+        $this->message = trim( substr_replace( $this->message, $header, 0, 200 ) );
+        if ( '' == $this->message ) {
+            return false;
+        }
+
+        // Check that the root tag is valid
+        $root_tag = substr( $this->message, 0, strcspn( substr( $this->message, 0, 20 ), "> \t\r\n" ) );
+        if ( '<!DOCTYPE' === strtoupper( $root_tag ) ) {
+            return false;
+        }
+        if ( ! in_array( $root_tag, array( '<methodCall', '<methodResponse', '<fault' ) ) ) {
+            return false;
+        }
+
+        // Bail if there are too many elements to parse
+        $element_limit = 30000;
+        if ( function_exists( 'apply_filters' ) ) {
+            /**
+             * Filters the number of elements to parse in an XML-RPC response.
+             *
+             * @since 4.0.0
+             *
+             * @param int $element_limit Default elements limit.
+             */
+            $element_limit = apply_filters( 'xmlrpc_element_limit', $element_limit );
+        }
+        if ( $element_limit && 2 * $element_limit < substr_count( $this->message, '<' ) ) {
+            return false;
+        }
+
+        $this->_parser = xml_parser_create();
+        // Set XML parser to take the case of tags in to account
+        xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, false);
+        // Set XML parser callback functions
+        xml_set_object($this->_parser, $this);
+        xml_set_element_handler($this->_parser, 'tag_open', 'tag_close');
+        xml_set_character_data_handler($this->_parser, 'cdata');
+
+        // 256Kb, parse in chunks to avoid the RAM usage on very large messages
+        $chunk_size = 262144;
+
+        /**
+         * Filters the chunk size that can be used to parse an XML-RPC reponse message.
+         *
+         * @since 4.4.0
+         *
+         * @param int $chunk_size Chunk size to parse in bytes.
+         */
+        $chunk_size = apply_filters( 'xmlrpc_chunk_parsing_size', $chunk_size );
+
+        $final = false;
+        do {
+            if (strlen($this->message) <= $chunk_size) {
+                $final = true;
+            }
+            $part = substr($this->message, 0, $chunk_size);
+            $this->message = substr($this->message, $chunk_size);
+            if (!xml_parse($this->_parser, $part, $final)) {
+                return false;
+            }
+            if ($final) {
+                break;
+            }
+        } while (true);
+        xml_parser_free($this->_parser);
+
+        // Grab the error messages, if any
+        if ($this->messageType == 'fault') {
+            $this->faultCode = $this->params[0]['faultCode'];
+            $this->faultString = $this->params[0]['faultString'];
+        }
+        return true;
+    }
+
+    function tag_open($parser, $tag, $attr)
+    {
+        $this->_currentTagContents = '';
+        $this->currentTag = $tag;
+        switch($tag) {
+            case 'methodCall':
+            case 'methodResponse':
+            case 'fault':
+                $this->messageType = $tag;
+                break;
+                /* Deal with stacks of arrays and structs */
+            case 'data':    // data is to all intents and puposes more interesting than array
+                $this->_arraystructstypes[] = 'array';
+                $this->_arraystructs[] = array();
+                break;
+            case 'struct':
+                $this->_arraystructstypes[] = 'struct';
+                $this->_arraystructs[] = array();
+                break;
+        }
+    }
+
+    function cdata($parser, $cdata)
+    {
+        $this->_currentTagContents .= $cdata;
+    }
+
+    function tag_close($parser, $tag)
+    {
+        $valueFlag = false;
+        switch($tag) {
+            case 'int':
+            case 'i4':
+                $value = (int)trim($this->_currentTagContents);
+                $valueFlag = true;
+                break;
+            case 'double':
+                $value = (double)trim($this->_currentTagContents);
+                $valueFlag = true;
+                break;
+            case 'string':
+                $value = (string)trim($this->_currentTagContents);
+                $valueFlag = true;
+                break;
+            case 'dateTime.iso8601':
+                $value = new IXR_Date(trim($this->_currentTagContents));
+                $valueFlag = true;
+                break;
+            case 'value':
+                // "If no type is indicated, the type is string."
+                if (trim($this->_currentTagContents) != '') {
+                    $value = (string)$this->_currentTagContents;
+                    $valueFlag = true;
+                }
+                break;
+            case 'boolean':
+                $value = (boolean)trim($this->_currentTagContents);
+                $valueFlag = true;
+                break;
+            case 'base64':
+                $value = base64_decode($this->_currentTagContents);
+                $valueFlag = true;
+                break;
+                /* Deal with stacks of arrays and structs */
+            case 'data':
+            case 'struct':
+                $value = array_pop($this->_arraystructs);
+                array_pop($this->_arraystructstypes);
+                $valueFlag = true;
+                break;
+            case 'member':
+                array_pop($this->_currentStructName);
+                break;
+            case 'name':
+                $this->_currentStructName[] = trim($this->_currentTagContents);
+                break;
+            case 'methodName':
+                $this->methodName = trim($this->_currentTagContents);
+                break;
+        }
+
+        if ($valueFlag) {
+            if (count($this->_arraystructs) > 0) {
+                // Add value to struct or array
+                if ($this->_arraystructstypes[count($this->_arraystructstypes)-1] == 'struct') {
+                    // Add to struct
+                    $this->_arraystructs[count($this->_arraystructs)-1][$this->_currentStructName[count($this->_currentStructName)-1]] = $value;
+                } else {
+                    // Add to array
+                    $this->_arraystructs[count($this->_arraystructs)-1][] = $value;
+                }
+            } else {
+                // Just add as a parameter
+                $this->params[] = $value;
+            }
+        }
+        $this->_currentTagContents = '';
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-request.php b/wp-includes/IXR/class-IXR-request.php
new file mode 100644
index 000000000..b00687ba6
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-request.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * IXR_Request
+ *
+ * @package IXR
+ * @since 1.5.0
+ */
+class IXR_Request
+{
+    var $method;
+    var $args;
+    var $xml;
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct($method, $args)
+    {
+        $this->method = $method;
+        $this->args = $args;
+        $this->xml = <<<EOD
+<?xml version="1.0"?>
+<methodCall>
+<methodName>{$this->method}</methodName>
+<params>
+
+EOD;
+        foreach ($this->args as $arg) {
+            $this->xml .= '<param><value>';
+            $v = new IXR_Value($arg);
+            $this->xml .= $v->getXml();
+            $this->xml .= "</value></param>\n";
+        }
+        $this->xml .= '</params></methodCall>';
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_Request( $method, $args ) {
+		self::__construct( $method, $args );
+	}
+
+    function getLength()
+    {
+        return strlen($this->xml);
+    }
+
+    function getXml()
+    {
+        return $this->xml;
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-server.php b/wp-includes/IXR/class-IXR-server.php
new file mode 100644
index 000000000..095e44557
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-server.php
@@ -0,0 +1,225 @@
+<?php
+
+/**
+ * IXR_Server
+ *
+ * @package IXR
+ * @since 1.5.0
+ */
+class IXR_Server
+{
+    var $data;
+    var $callbacks = array();
+    var $message;
+    var $capabilities;
+
+	/**
+	 * PHP5 constructor.
+	 */
+    function __construct( $callbacks = false, $data = false, $wait = false )
+    {
+        $this->setCapabilities();
+        if ($callbacks) {
+            $this->callbacks = $callbacks;
+        }
+        $this->setCallbacks();
+        if (!$wait) {
+            $this->serve($data);
+        }
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_Server( $callbacks = false, $data = false, $wait = false ) {
+		self::__construct( $callbacks, $data, $wait );
+	}
+
+    function serve($data = false)
+    {
+        if (!$data) {
+            if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] !== 'POST') {
+                if ( function_exists( 'status_header' ) ) {
+                    status_header( 405 ); // WP #20986
+                    header( 'Allow: POST' );
+                }
+                header('Content-Type: text/plain'); // merged from WP #9093
+                die('XML-RPC server accepts POST requests only.');
+            }
+
+            global $HTTP_RAW_POST_DATA;
+            if (empty($HTTP_RAW_POST_DATA)) {
+                // workaround for a bug in PHP 5.2.2 - http://bugs.php.net/bug.php?id=41293
+                $data = file_get_contents('php://input');
+            } else {
+                $data =& $HTTP_RAW_POST_DATA;
+            }
+        }
+        $this->message = new IXR_Message($data);
+        if (!$this->message->parse()) {
+            $this->error(-32700, 'parse error. not well formed');
+        }
+        if ($this->message->messageType != 'methodCall') {
+            $this->error(-32600, 'server error. invalid xml-rpc. not conforming to spec. Request must be a methodCall');
+        }
+        $result = $this->call($this->message->methodName, $this->message->params);
+
+        // Is the result an error?
+        if (is_a($result, 'IXR_Error')) {
+            $this->error($result);
+        }
+
+        // Encode the result
+        $r = new IXR_Value($result);
+        $resultxml = $r->getXml();
+
+        // Create the XML
+        $xml = <<<EOD
+<methodResponse>
+  <params>
+    <param>
+      <value>
+      $resultxml
+      </value>
+    </param>
+  </params>
+</methodResponse>
+
+EOD;
+      // Send it
+      $this->output($xml);
+    }
+
+    function call($methodname, $args)
+    {
+        if (!$this->hasMethod($methodname)) {
+            return new IXR_Error(-32601, 'server error. requested method '.$methodname.' does not exist.');
+        }
+        $method = $this->callbacks[$methodname];
+
+        // Perform the callback and send the response
+        if (count($args) == 1) {
+            // If only one parameter just send that instead of the whole array
+            $args = $args[0];
+        }
+
+        // Are we dealing with a function or a method?
+        if (is_string($method) && substr($method, 0, 5) == 'this:') {
+            // It's a class method - check it exists
+            $method = substr($method, 5);
+            if (!method_exists($this, $method)) {
+                return new IXR_Error(-32601, 'server error. requested class method "'.$method.'" does not exist.');
+            }
+
+            //Call the method
+            $result = $this->$method($args);
+        } else {
+            // It's a function - does it exist?
+            if (is_array($method)) {
+                if (!is_callable(array($method[0], $method[1]))) {
+                    return new IXR_Error(-32601, 'server error. requested object method "'.$method[1].'" does not exist.');
+                }
+            } else if (!function_exists($method)) {
+                return new IXR_Error(-32601, 'server error. requested function "'.$method.'" does not exist.');
+            }
+
+            // Call the function
+            $result = call_user_func($method, $args);
+        }
+        return $result;
+    }
+
+    function error($error, $message = false)
+    {
+        // Accepts either an error object or an error code and message
+        if ($message && !is_object($error)) {
+            $error = new IXR_Error($error, $message);
+        }
+        $this->output($error->getXml());
+    }
+
+    function output($xml)
+    {
+        $charset = function_exists('get_option') ? get_option('blog_charset') : '';
+        if ($charset)
+            $xml = '<?xml version="1.0" encoding="'.$charset.'"?>'."\n".$xml;
+        else
+            $xml = '<?xml version="1.0"?>'."\n".$xml;
+        $length = strlen($xml);
+        header('Connection: close');
+        if ($charset)
+            header('Content-Type: text/xml; charset='.$charset);
+        else
+            header('Content-Type: text/xml');
+        header('Date: '.date('r'));
+        echo $xml;
+        exit;
+    }
+
+    function hasMethod($method)
+    {
+        return in_array($method, array_keys($this->callbacks));
+    }
+
+    function setCapabilities()
+    {
+        // Initialises capabilities array
+        $this->capabilities = array(
+            'xmlrpc' => array(
+                'specUrl' => 'http://www.xmlrpc.com/spec',
+                'specVersion' => 1
+        ),
+            'faults_interop' => array(
+                'specUrl' => 'http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php',
+                'specVersion' => 20010516
+        ),
+            'system.multicall' => array(
+                'specUrl' => 'http://www.xmlrpc.com/discuss/msgReader$1208',
+                'specVersion' => 1
+        ),
+        );
+    }
+
+    function getCapabilities($args)
+    {
+        return $this->capabilities;
+    }
+
+    function setCallbacks()
+    {
+        $this->callbacks['system.getCapabilities'] = 'this:getCapabilities';
+        $this->callbacks['system.listMethods'] = 'this:listMethods';
+        $this->callbacks['system.multicall'] = 'this:multiCall';
+    }
+
+    function listMethods($args)
+    {
+        // Returns a list of methods - uses array_reverse to ensure user defined
+        // methods are listed before server defined methods
+        return array_reverse(array_keys($this->callbacks));
+    }
+
+    function multiCall($methodcalls)
+    {
+        // See http://www.xmlrpc.com/discuss/msgReader$1208
+        $return = array();
+        foreach ($methodcalls as $call) {
+            $method = $call['methodName'];
+            $params = $call['params'];
+            if ($method == 'system.multicall') {
+                $result = new IXR_Error(-32600, 'Recursive calls to system.multicall are forbidden');
+            } else {
+                $result = $this->call($method, $params);
+            }
+            if (is_a($result, 'IXR_Error')) {
+                $return[] = array(
+                    'faultCode' => $result->code,
+                    'faultString' => $result->message
+                );
+            } else {
+                $return[] = array($result);
+            }
+        }
+        return $return;
+    }
+}
diff --git a/wp-includes/IXR/class-IXR-value.php b/wp-includes/IXR/class-IXR-value.php
new file mode 100644
index 000000000..0fd878bca
--- /dev/null
+++ b/wp-includes/IXR/class-IXR-value.php
@@ -0,0 +1,138 @@
+<?php
+/**
+ * IXR_Value
+ *
+ * @package IXR
+ * @since 1.5.0
+ */
+class IXR_Value {
+    var $data;
+    var $type;
+
+	/**
+	 * PHP5 constructor.
+	 */
+	function __construct( $data, $type = false )
+    {
+        $this->data = $data;
+        if (!$type) {
+            $type = $this->calculateType();
+        }
+        $this->type = $type;
+        if ($type == 'struct') {
+            // Turn all the values in the array in to new IXR_Value objects
+            foreach ($this->data as $key => $value) {
+                $this->data[$key] = new IXR_Value($value);
+            }
+        }
+        if ($type == 'array') {
+            for ($i = 0, $j = count($this->data); $i < $j; $i++) {
+                $this->data[$i] = new IXR_Value($this->data[$i]);
+            }
+        }
+    }
+
+	/**
+	 * PHP4 constructor.
+	 */
+	public function IXR_Value( $data, $type = false ) {
+		self::__construct( $data, $type );
+	}
+
+    function calculateType()
+    {
+        if ($this->data === true || $this->data === false) {
+            return 'boolean';
+        }
+        if (is_integer($this->data)) {
+            return 'int';
+        }
+        if (is_double($this->data)) {
+            return 'double';
+        }
+
+        // Deal with IXR object types base64 and date
+        if (is_object($this->data) && is_a($this->data, 'IXR_Date')) {
+            return 'date';
+        }
+        if (is_object($this->data) && is_a($this->data, 'IXR_Base64')) {
+            return 'base64';
+        }
+
+        // If it is a normal PHP object convert it in to a struct
+        if (is_object($this->data)) {
+            $this->data = get_object_vars($this->data);
+            return 'struct';
+        }
+        if (!is_array($this->data)) {
+            return 'string';
+        }
+
+        // We have an array - is it an array or a struct?
+        if ($this->isStruct($this->data)) {
+            return 'struct';
+        } else {
+            return 'array';
+        }
+    }
+
+    function getXml()
+    {
+        // Return XML for this value
+        switch ($this->type) {
+            case 'boolean':
+                return '<boolean>'.(($this->data) ? '1' : '0').'</boolean>';
+                break;
+            case 'int':
+                return '<int>'.$this->data.'</int>';
+                break;
+            case 'double':
+                return '<double>'.$this->data.'</double>';
+                break;
+            case 'string':
+                return '<string>'.htmlspecialchars($this->data).'</string>';
+                break;
+            case 'array':
+                $return = '<array><data>'."\n";
+                foreach ($this->data as $item) {
+                    $return .= '  <value>'.$item->getXml()."</value>\n";
+                }
+                $return .= '</data></array>';
+                return $return;
+                break;
+            case 'struct':
+                $return = '<struct>'."\n";
+                foreach ($this->data as $name => $value) {
+					$name = htmlspecialchars($name);
+                    $return .= "  <member><name>$name</name><value>";
+                    $return .= $value->getXml()."</value></member>\n";
+                }
+                $return .= '</struct>';
+                return $return;
+                break;
+            case 'date':
+            case 'base64':
+                return $this->data->getXml();
+                break;
+        }
+        return false;
+    }
+
+    /**
+     * Checks whether or not the supplied array is a struct or not
+     *
+     * @param array $array
+     * @return bool
+     */
+    function isStruct($array)
+    {
+        $expected = 0;
+        foreach ($array as $key => $value) {
+            if ((string)$key !== (string)$expected) {
+                return true;
+            }
+            $expected++;
+        }
+        return false;
+    }
+}
diff --git a/wp-includes/Requests/IRI.php b/wp-includes/Requests/IRI.php
index 44a95171b..8dc2fa284 100644
--- a/wp-includes/Requests/IRI.php
+++ b/wp-includes/Requests/IRI.php
@@ -688,10 +688,7 @@ class Requests_IRI {
 		$isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
 		if ($this->ipath !== '' &&
 			(
-				$isauthority && (
-					$this->ipath[0] !== '/' ||
-					substr($this->ipath, 0, 2) === '//'
-				) ||
+				$isauthority && $this->ipath[0] !== '/' ||
 				(
 					$this->scheme === null &&
 					!$isauthority &&
diff --git a/wp-includes/Requests/Transport/cURL.php b/wp-includes/Requests/Transport/cURL.php
index 7979b2eba..4429edb64 100644
--- a/wp-includes/Requests/Transport/cURL.php
+++ b/wp-includes/Requests/Transport/cURL.php
@@ -375,8 +375,9 @@ class Requests_Transport_cURL implements Requests_Transport {
 		curl_setopt($this->handle, CURLOPT_URL, $url);
 		curl_setopt($this->handle, CURLOPT_REFERER, $url);
 		curl_setopt($this->handle, CURLOPT_USERAGENT, $options['useragent']);
-		curl_setopt($this->handle, CURLOPT_HTTPHEADER, $headers);
-
+		if (!empty($headers)) {
+			curl_setopt($this->handle, CURLOPT_HTTPHEADER, $headers);
+		}
 		if ($options['protocol_version'] === 1.1) {
 			curl_setopt($this->handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
 		}
@@ -458,7 +459,7 @@ class Requests_Transport_cURL implements Requests_Transport {
 	 * @param string $data Body data
 	 * @return integer Length of provided data
 	 */
-	protected function stream_body($handle, $data) {
+	public function stream_body($handle, $data) {
 		$this->hooks->dispatch('request.progress', array($data, $this->response_bytes, $this->response_byte_limit));
 		$data_length = strlen($data);
 
diff --git a/wp-includes/Requests/Transport/fsockopen.php b/wp-includes/Requests/Transport/fsockopen.php
index e9170f417..21cb56d5e 100644
--- a/wp-includes/Requests/Transport/fsockopen.php
+++ b/wp-includes/Requests/Transport/fsockopen.php
@@ -70,7 +70,9 @@ class Requests_Transport_fsockopen implements Requests_Transport {
 		// HTTPS support
 		if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https') {
 			$remote_socket = 'ssl://' . $host;
-			$url_parts['port'] = 443;
+			if (!isset($url_parts['port'])) {
+				$url_parts['port'] = 443;
+			}
 
 			$context_options = array(
 				'verify_peer' => true,
@@ -97,6 +99,7 @@ class Requests_Transport_fsockopen implements Requests_Transport {
 			}
 
 			if (isset($options['verifyname']) && $options['verifyname'] === false) {
+				$context_options['verify_peer_name'] = false;
 				$verifyname = false;
 			}
 
@@ -171,7 +174,7 @@ class Requests_Transport_fsockopen implements Requests_Transport {
 		if (!isset($case_insensitive_headers['Host'])) {
 			$out .= sprintf('Host: %s', $url_parts['host']);
 
-			if ($url_parts['port'] !== 80) {
+			if (( 'http' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 80 ) || ( 'https' === strtolower($url_parts['scheme']) && $url_parts['port'] !== 443 )) {
 				$out .= ':' . $url_parts['port'];
 			}
 			$out .= "\r\n";
diff --git a/wp-includes/admin-bar.php b/wp-includes/admin-bar.php
index b57dfaeb3..83deb9609 100644
--- a/wp-includes/admin-bar.php
+++ b/wp-includes/admin-bar.php
@@ -107,19 +107,36 @@ function wp_admin_bar_render() {
  * @param WP_Admin_Bar $wp_admin_bar
  */
 function wp_admin_bar_wp_menu( $wp_admin_bar ) {
-	$wp_admin_bar->add_menu( array(
+	if ( current_user_can( 'read' ) ) {
+		$about_url = self_admin_url( 'about.php' );
+	} elseif ( is_multisite() ) {
+		$about_url = get_dashboard_url( get_current_user_id(), 'about.php' );
+	} else {
+		$about_url = false;
+	}
+
+	$wp_logo_menu_args = array(
 		'id'    => 'wp-logo',
 		'title' => '<span class="ab-icon"></span><span class="screen-reader-text">' . __( 'About WordPress' ) . '</span>',
-		'href'  => self_admin_url( 'about.php' ),
-	) );
+		'href'  => $about_url,
+	);
+
+	// Set tabindex="0" to make sub menus accessible when no URL is available.
+	if ( ! $about_url ) {
+		$wp_logo_menu_args['meta'] = array(
+			'tabindex' => 0,
+		);
+	}
 
-	if ( is_user_logged_in() ) {
+	$wp_admin_bar->add_menu( $wp_logo_menu_args );
+
+	if ( $about_url ) {
 		// Add "About WordPress" link
 		$wp_admin_bar->add_menu( array(
 			'parent' => 'wp-logo',
 			'id'     => 'about',
 			'title'  => __('About WordPress'),
-			'href'   => self_admin_url( 'about.php' ),
+			'href'   => $about_url,
 		) );
 	}
 
@@ -196,7 +213,8 @@ function wp_admin_bar_my_account_item( $wp_admin_bar ) {
 	}
 
 	$avatar = get_avatar( $user_id, 26 );
-	$howdy  = sprintf( __('Howdy, %1$s'), $current_user->display_name );
+	/* translators: %s: current user's display name */
+	$howdy  = sprintf( __( 'Howdy, %s' ), $current_user->display_name );
 	$class  = empty( $avatar ) ? '' : 'with-avatar';
 
 	$wp_admin_bar->add_menu( array(
@@ -293,9 +311,11 @@ function wp_admin_bar_site_menu( $wp_admin_bar ) {
 	}
 
 	if ( is_network_admin() ) {
-		$blogname = sprintf( __('Network Admin: %s'), esc_html( get_current_site()->site_name ) );
+		/* translators: %s: site name */
+		$blogname = sprintf( __( 'Network Admin: %s' ), esc_html( get_network()->site_name ) );
 	} elseif ( is_user_admin() ) {
-		$blogname = sprintf( __('User Dashboard: %s'), esc_html( get_current_site()->site_name ) );
+		/* translators: %s: site name */
+		$blogname = sprintf( __( 'User Dashboard: %s' ), esc_html( get_network()->site_name ) );
 	}
 
 	$title = wp_html_excerpt( $blogname, 40, '&hellip;' );
@@ -346,15 +366,30 @@ function wp_admin_bar_site_menu( $wp_admin_bar ) {
  * @since 4.3.0
  *
  * @param WP_Admin_Bar $wp_admin_bar WP_Admin_Bar instance.
+ * @global WP_Customize_Manager $wp_customize
  */
 function wp_admin_bar_customize_menu( $wp_admin_bar ) {
+	global $wp_customize;
+
 	// Don't show for users who can't access the customizer or when in the admin.
 	if ( ! current_user_can( 'customize' ) || is_admin() ) {
 		return;
 	}
 
+	// Don't show if the user cannot edit a given customize_changeset post currently being previewed.
+	if ( is_customize_preview() && $wp_customize->changeset_post_id() && ! current_user_can( get_post_type_object( 'customize_changeset' )->cap->edit_post, $wp_customize->changeset_post_id() ) ) {
+		return;
+	}
+
 	$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+	if ( is_customize_preview() && $wp_customize->changeset_uuid() ) {
+		$current_url = remove_query_arg( 'customize_changeset_uuid', $current_url );
+	}
+
 	$customize_url = add_query_arg( 'url', urlencode( $current_url ), wp_customize_url() );
+	if ( is_customize_preview() ) {
+		$customize_url = add_query_arg( array( 'changeset_uuid' => $wp_customize->changeset_uuid() ), $customize_url );
+	}
 
 	$wp_admin_bar->add_menu( array(
 		'id'     => 'customize',
@@ -574,6 +609,18 @@ function wp_admin_bar_edit_menu( $wp_admin_bar ) {
 					'href' => get_permalink( $post->ID )
 				) );
 			}
+		} elseif ( 'edit' == $current_screen->base
+ 			&& ( $post_type_object = get_post_type_object( $current_screen->post_type ) )
+ 			&& ( $post_type_object->public )
+ 			&& ( $post_type_object->show_in_admin_bar )
+ 			&& ( get_post_type_archive_link( $post_type_object->name ) )
+			&& ! ( 'post' === $post_type_object->name && 'posts' === get_option( 'show_on_front' ) ) )
+ 		{
+ 			$wp_admin_bar->add_node( array(
+ 				'id' => 'archive',
+ 				'title' => $post_type_object->labels->view_items,
+ 				'href' => get_post_type_archive_link( $current_screen->post_type )
+ 			) );
 		} elseif ( 'term' == $current_screen->base
 			&& isset( $tag ) && is_object( $tag ) && ! is_wp_error( $tag )
 			&& ( $tax = get_taxonomy( $tag->taxonomy ) )
@@ -604,7 +651,7 @@ function wp_admin_bar_edit_menu( $wp_admin_bar ) {
 			) );
 		} elseif ( ! empty( $current_object->taxonomy )
 			&& ( $tax = get_taxonomy( $current_object->taxonomy ) )
-			&& current_user_can( $tax->cap->edit_terms )
+			&& current_user_can( 'edit_term', $current_object->term_id )
 			&& $edit_term_link = get_edit_term_link( $current_object->term_id, $current_object->taxonomy ) )
 		{
 			$wp_admin_bar->add_menu( array(
@@ -696,7 +743,7 @@ function wp_admin_bar_comments_menu( $wp_admin_bar ) {
 	$awaiting_text = sprintf( _n( '%s comment awaiting moderation', '%s comments awaiting moderation', $awaiting_mod ), number_format_i18n( $awaiting_mod ) );
 
 	$icon  = '<span class="ab-icon"></span>';
-	$title = '<span id="ab-awaiting-mod" class="ab-label awaiting-mod pending-count count-' . $awaiting_mod . '" aria-hidden="true">' . number_format_i18n( $awaiting_mod ) . '</span>';
+	$title = '<span class="ab-label awaiting-mod pending-count count-' . $awaiting_mod . '" aria-hidden="true">' . number_format_i18n( $awaiting_mod ) . '</span>';
 	$title .= '<span class="screen-reader-text">' . $awaiting_text . '</span>';
 
 	$wp_admin_bar->add_menu( array(
diff --git a/wp-includes/atomlib.php b/wp-includes/atomlib.php
index 368015adb..f2cba5636 100644
--- a/wp-includes/atomlib.php
+++ b/wp-includes/atomlib.php
@@ -121,6 +121,11 @@ class AtomParser {
 
         array_unshift($this->ns_contexts, array());
 
+        if ( ! function_exists( 'xml_parser_create_ns' ) ) {
+        	trigger_error( __( "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );
+        	return false;
+        }
+
         $parser = xml_parser_create_ns();
         xml_set_object($parser, $this);
         xml_set_element_handler($parser, "start_element", "end_element");
diff --git a/wp-includes/author-template.php b/wp-includes/author-template.php
index 915805fcb..b2b6ea315 100644
--- a/wp-includes/author-template.php
+++ b/wp-includes/author-template.php
@@ -188,7 +188,12 @@ function the_author_meta( $field = '', $user_id = false ) {
  */
 function get_the_author_link() {
 	if ( get_the_author_meta('url') ) {
-		return '<a href="' . esc_url( get_the_author_meta('url') ) . '" title="' . esc_attr( sprintf(__("Visit %s&#8217;s website"), get_the_author()) ) . '" rel="author external">' . get_the_author() . '</a>';
+		return sprintf( '<a href="%1$s" title="%2$s" rel="author external">%3$s</a>',
+			esc_url( get_the_author_meta('url') ),
+			/* translators: %s: author's display name */
+			esc_attr( sprintf( __( 'Visit %s&#8217;s website' ), get_the_author() ) ),
+			get_the_author()
+		);
 	} else {
 		return get_the_author();
 	}
@@ -250,9 +255,9 @@ function get_the_author_posts_link() {
 		return;
 	}
 
-	$link = sprintf(
-		'<a href="%1$s" title="%2$s" rel="author">%3$s</a>',
+	$link = sprintf( '<a href="%1$s" title="%2$s" rel="author">%3$s</a>',
 		esc_url( get_author_posts_url( $authordata->ID, $authordata->user_nicename ) ),
+		/* translators: %s: author's display name */
 		esc_attr( sprintf( __( 'Posts by %s' ), get_the_author() ) ),
 		get_the_author()
 	);
@@ -412,7 +417,12 @@ function wp_list_authors( $args = '' ) {
 			$return .= '<li>';
 		}
 
-		$link = '<a href="' . get_author_posts_url( $author->ID, $author->user_nicename ) . '" title="' . esc_attr( sprintf(__("Posts by %s"), $author->display_name) ) . '">' . $name . '</a>';
+		$link = sprintf( '<a href="%1$s" title="%2$s">%3$s</a>',
+			get_author_posts_url( $author->ID, $author->user_nicename ),
+			/* translators: %s: author's display name */
+			esc_attr( sprintf( __( 'Posts by %s' ), $author->display_name ) ),
+			$name
+		);
 
 		if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
 			$link .= ' ';
diff --git a/wp-includes/bookmark.php b/wp-includes/bookmark.php
index fc719d589..718760be9 100644
--- a/wp-includes/bookmark.php
+++ b/wp-includes/bookmark.php
@@ -14,7 +14,8 @@
  * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param int|stdClass $bookmark
- * @param string $output Optional. Either OBJECT, ARRAY_N, or ARRAY_A constant
+ * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                       an stdClass object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string $filter Optional, default is 'raw'.
  * @return array|object|null Type returned depends on $output value.
  */
@@ -300,10 +301,10 @@ function get_bookmarks( $args = '' ) {
  *
  * @since 2.3.0
  *
- * @param object|array $bookmark Bookmark row
+ * @param stdClass|array $bookmark Bookmark row
  * @param string $context Optional, default is 'display'. How to filter the
  *		fields
- * @return object|array Same type as $bookmark but with fields sanitized.
+ * @return stdClass|array Same type as $bookmark but with fields sanitized.
  */
 function sanitize_bookmark($bookmark, $context = 'display') {
 	$fields = array('link_id', 'link_url', 'link_name', 'link_image', 'link_target', 'link_category',
diff --git a/wp-includes/cache.php b/wp-includes/cache.php
index 6c53eabb7..b97475691 100644
--- a/wp-includes/cache.php
+++ b/wp-includes/cache.php
@@ -254,7 +254,7 @@ function wp_cache_add_non_persistent_groups( $groups ) {
  * This function is deprecated. Use wp_cache_switch_to_blog() instead of this
  * function when preparing the cache for a blog switch. For clearing the cache
  * during unit tests, consider using wp_cache_init(). wp_cache_init() is not
- * recommended outside of unit tests as the performance penality for using it is
+ * recommended outside of unit tests as the performance penalty for using it is
  * high.
  *
  * @since 2.6.0
@@ -302,10 +302,10 @@ class WP_Object_Cache {
 	 * The amount of times the cache data was already stored in the cache.
 	 *
 	 * @since 2.5.0
-	 * @access private
+	 * @access public
 	 * @var int
 	 */
-	private $cache_hits = 0;
+	public $cache_hits = 0;
 
 	/**
 	 * Amount of times the cache did not have the request in cache.
@@ -729,14 +729,10 @@ class WP_Object_Cache {
 	 * Sets up object properties; PHP 5 style constructor.
 	 *
 	 * @since 2.0.8
-	 *
-     * @global int $blog_id Global blog ID.
 	 */
 	public function __construct() {
-		global $blog_id;
-
 		$this->multisite = is_multisite();
-		$this->blog_prefix =  $this->multisite ? $blog_id . ':' : '';
+		$this->blog_prefix =  $this->multisite ? get_current_blog_id() . ':' : '';
 
 
 		/**
diff --git a/wp-includes/capabilities.php b/wp-includes/capabilities.php
index eac359630..c1e644a85 100644
--- a/wp-includes/capabilities.php
+++ b/wp-includes/capabilities.php
@@ -67,6 +67,11 @@ function map_meta_cap( $cap, $user_id ) {
 			}
 		}
 
+		if ( ( get_option( 'page_for_posts' ) == $post->ID ) || ( get_option( 'page_on_front' ) == $post->ID ) ) {
+			$caps[] = 'manage_options';
+			break;
+		}
+
 		$post_type = get_post_type_object( $post->post_type );
 		if ( ! $post_type ) {
 			/* translators: 1: post type, 2: capability name */
@@ -237,56 +242,77 @@ function map_meta_cap( $cap, $user_id ) {
 	case 'edit_post_meta':
 	case 'delete_post_meta':
 	case 'add_post_meta':
-		$post = get_post( $args[0] );
-		if ( ! $post ) {
+	case 'edit_comment_meta':
+	case 'delete_comment_meta':
+	case 'add_comment_meta':
+	case 'edit_term_meta':
+	case 'delete_term_meta':
+	case 'add_term_meta':
+	case 'edit_user_meta':
+	case 'delete_user_meta':
+	case 'add_user_meta':
+		list( $_, $object_type, $_ ) = explode( '_', $cap );
+		$object_id = (int) $args[0];
+
+		switch ( $object_type ) {
+			case 'post':
+				$post = get_post( $object_id );
+				if ( ! $post ) {
+					break;
+				}
+
+				$sub_type = get_post_type( $post );
+				break;
+
+			case 'comment':
+				$comment = get_comment( $object_id );
+				if ( ! $comment ) {
+					break;
+				}
+
+				$sub_type = empty( $comment->comment_type ) ? 'comment' : $comment->comment_type;
+				break;
+
+			case 'term':
+				$term = get_term( $object_id );
+				if ( ! $term ) {
+					break;
+				}
+
+				$sub_type = $term->taxonomy;
+				break;
+
+			case 'user':
+				$user = get_user_by( 'id', $object_id );
+				if ( ! $user ) {
+					break;
+				}
+
+				$sub_type = 'user';
+				break;
+		}
+
+		if ( empty( $sub_type ) ) {
 			$caps[] = 'do_not_allow';
 			break;
 		}
 
-		$post_type = get_post_type( $post );
-
-		$caps = map_meta_cap( 'edit_post', $user_id, $post->ID );
+		$caps = map_meta_cap( "edit_{$object_type}", $user_id, $object_id );
 
-		$meta_key = isset( $args[ 1 ] ) ? $args[ 1 ] : false;
+		$meta_key = isset( $args[1] ) ? $args[1] : false;
 
-		if ( $meta_key && ( has_filter( "auth_post_meta_{$meta_key}" ) || has_filter( "auth_post_{$post_type}_meta_{$meta_key}" ) ) ) {
-			/**
-			 * Filters whether the user is allowed to add post meta to a post.
-			 *
-			 * The dynamic portion of the hook name, `$meta_key`, refers to the
-			 * meta key passed to map_meta_cap().
-			 *
-			 * @since 3.3.0
-			 *
-			 * @param bool   $allowed  Whether the user can add the post meta. Default false.
-			 * @param string $meta_key The meta key.
-			 * @param int    $post_id  Post ID.
-			 * @param int    $user_id  User ID.
-			 * @param string $cap      Capability name.
-			 * @param array  $caps     User capabilities.
-			 */
-			$allowed = apply_filters( "auth_post_meta_{$meta_key}", false, $meta_key, $post->ID, $user_id, $cap, $caps );
+		$has_filter = has_filter( "auth_{$object_type}_meta_{$meta_key}" ) || has_filter( "auth_{$object_type}_{$sub_type}_meta_{$meta_key}" );
+		if ( $meta_key && $has_filter ) {
+			/** This filter is documented in wp-includes/meta.php */
+			$allowed = apply_filters( "auth_{$object_type}_meta_{$meta_key}", false, $meta_key, $object_id, $user_id, $cap, $caps );
 
-			/**
-			 * Filters whether the user is allowed to add post meta to a post of a given type.
-			 *
-			 * The dynamic portions of the hook name, `$meta_key` and `$post_type`,
-			 * refer to the meta key passed to map_meta_cap() and the post type, respectively.
-			 *
-			 * @since 4.6.0
-			 *
-			 * @param bool   $allowed  Whether the user can add the post meta. Default false.
-			 * @param string $meta_key The meta key.
-			 * @param int    $post_id  Post ID.
-			 * @param int    $user_id  User ID.
-			 * @param string $cap      Capability name.
-			 * @param array  $caps     User capabilities.
-			 */
-			$allowed = apply_filters( "auth_post_{$post_type}_meta_{$meta_key}", $allowed, $meta_key, $post->ID, $user_id, $cap, $caps );
+			/** This filter is documented in wp-includes/meta.php */
+			$allowed = apply_filters( "auth_{$object_type}_{$sub_type}_meta_{$meta_key}", $allowed, $meta_key, $object_id, $user_id, $cap, $caps );
 
-			if ( ! $allowed )
+			if ( ! $allowed ) {
 				$caps[] = $cap;
-		} elseif ( $meta_key && is_protected_meta( $meta_key, 'post' ) ) {
+			}
+		} elseif ( $meta_key && is_protected_meta( $meta_key, $object_type ) ) {
 			$caps[] = $cap;
 		}
 		break;
@@ -315,6 +341,7 @@ function map_meta_cap( $cap, $user_id ) {
 		else
 			$caps[] = 'do_not_allow';
 		break;
+	case 'edit_css' :
 	case 'unfiltered_html' :
 		// Disallow unfiltered_html for all users, even admins and super admins.
 		if ( defined( 'DISALLOW_UNFILTERED_HTML' ) && DISALLOW_UNFILTERED_HTML )
@@ -322,7 +349,7 @@ function map_meta_cap( $cap, $user_id ) {
 		elseif ( is_multisite() && ! is_super_admin( $user_id ) )
 			$caps[] = 'do_not_allow';
 		else
-			$caps[] = $cap;
+			$caps[] = 'unfiltered_html';
 		break;
 	case 'edit_files':
 	case 'edit_plugins':
@@ -397,6 +424,53 @@ function map_meta_cap( $cap, $user_id ) {
 	case 'delete_site':
 		$caps[] = 'manage_options';
 		break;
+	case 'edit_term':
+	case 'delete_term':
+	case 'assign_term':
+		$term_id = (int) $args[0];
+		$term = get_term( $term_id );
+		if ( ! $term || is_wp_error( $term ) ) {
+			$caps[] = 'do_not_allow';
+			break;
+		}
+
+		$tax = get_taxonomy( $term->taxonomy );
+		if ( ! $tax ) {
+			$caps[] = 'do_not_allow';
+			break;
+		}
+
+		if ( 'delete_term' === $cap && ( $term->term_id == get_option( 'default_' . $term->taxonomy ) ) ) {
+			$caps[] = 'do_not_allow';
+			break;
+		}
+
+		$taxo_cap = $cap . 's';
+
+		$caps = map_meta_cap( $tax->cap->$taxo_cap, $user_id, $term_id );
+
+		break;
+	case 'manage_post_tags':
+	case 'edit_categories':
+	case 'edit_post_tags':
+	case 'delete_categories':
+	case 'delete_post_tags':
+		$caps[] = 'manage_categories';
+		break;
+	case 'assign_categories':
+	case 'assign_post_tags':
+		$caps[] = 'edit_posts';
+		break;
+	case 'create_sites':
+	case 'delete_sites':
+	case 'manage_network':
+	case 'manage_sites':
+	case 'manage_network_users':
+	case 'manage_network_plugins':
+	case 'manage_network_themes':
+	case 'manage_network_options':
+		$caps[] = $cap;
+		break;
 	default:
 		// Handle meta capabilities for custom post types.
 		global $post_type_meta_caps;
diff --git a/wp-includes/category-template.php b/wp-includes/category-template.php
index 7063c2d4c..ac992d6b3 100644
--- a/wp-includes/category-template.php
+++ b/wp-includes/category-template.php
@@ -99,45 +99,6 @@ function get_the_category( $id = false ) {
 	return apply_filters( 'get_the_categories', $categories, $id );
 }
 
-/**
- * Sort categories by name.
- *
- * Used by usort() as a callback, should not be used directly. Can actually be
- * used to sort any term object.
- *
- * @since 2.3.0
- * @access private
- *
- * @param object $a
- * @param object $b
- * @return int
- */
-function _usort_terms_by_name( $a, $b ) {
-	return strcmp( $a->name, $b->name );
-}
-
-/**
- * Sort categories by ID.
- *
- * Used by usort() as a callback, should not be used directly. Can actually be
- * used to sort any term object.
- *
- * @since 2.3.0
- * @access private
- *
- * @param object $a
- * @param object $b
- * @return int
- */
-function _usort_terms_by_ID( $a, $b ) {
-	if ( $a->term_id > $b->term_id )
-		return 1;
-	elseif ( $a->term_id < $b->term_id )
-		return -1;
-	else
-		return 0;
-}
-
 /**
  * Retrieve category name based on category ID.
  *
@@ -255,7 +216,7 @@ function get_the_category_list( $separator = '', $parents='', $post_id = false )
 }
 
 /**
- * Check if the current post in within any of the given categories.
+ * Check if the current post is within any of the given categories.
  *
  * The given categories are checked against the post's categories' term_ids, names and slugs.
  * Categories given as integers will only be checked against the post's categories' term_ids.
@@ -663,8 +624,9 @@ function wp_list_categories( $args = '' ) {
 		$output .= walk_category_tree( $categories, $depth, $r );
 	}
 
-	if ( $r['title_li'] && 'list' == $r['style'] )
+	if ( $r['title_li'] && 'list' == $r['style'] && ( ! empty( $categories ) || ! $r['hide_title_if_empty'] ) ) {
 		$output .= '</ul></li>';
+	}
 
 	/**
 	 * Filters the HTML output of a taxonomy list.
@@ -917,6 +879,7 @@ function wp_generate_tag_cloud( $tags, $args = '' ) {
 		$tags_data[] = array(
 			'id'         => $tag_id,
 			'url'        => '#' != $tag->link ? $tag->link : '#',
+			'role'       => '#' != $tag->link ? '' : ' role="button"',
 			'name'	     => $tag->name,
 			'title'      => $title,
 			'slug'       => $tag->slug,
@@ -940,7 +903,7 @@ function wp_generate_tag_cloud( $tags, $args = '' ) {
 	// generate the output links array
 	foreach ( $tags_data as $key => $tag_data ) {
 		$class = $tag_data['class'] . ' tag-link-position-' . ( $key + 1 );
-		$a[] = "<a href='" . esc_url( $tag_data['url'] ) . "' class='" . esc_attr( $class ) . "' title='" . esc_attr( $tag_data['title'] ) . "' style='font-size: " . esc_attr( str_replace( ',', '.', $tag_data['font_size'] ) . $args['unit'] ) . ";'>" . esc_html( $tag_data['name'] ) . "</a>";
+		$a[] = "<a href='" . esc_url( $tag_data['url'] ) . "'" . $tag_data['role'] . " class='" . esc_attr( $class ) . "' title='" . esc_attr( $tag_data['title'] ) . "' style='font-size: " . esc_attr( str_replace( ',', '.', $tag_data['font_size'] ) . $args['unit'] ) . ";'>" . esc_html( $tag_data['name'] ) . "</a>";
 	}
 
 	switch ( $args['format'] ) {
@@ -1142,7 +1105,12 @@ function get_the_tag_list( $before = '', $sep = '', $after = '', $id = 0 ) {
 function the_tags( $before = null, $sep = ', ', $after = '' ) {
 	if ( null === $before )
 		$before = __('Tags: ');
-	echo get_the_tag_list($before, $sep, $after);
+
+	$the_tags = get_the_tag_list( $before, $sep, $after );
+
+	if ( ! is_wp_error( $the_tags ) ) {
+		echo $the_tags;
+	}
 }
 
 /**
@@ -1259,7 +1227,7 @@ function get_the_term_list( $id, $taxonomy, $before = '', $sep = '', $after = ''
 	 *
 	 * @param array $links An array of term links.
 	 */
-	$term_links = apply_filters( "term_links-$taxonomy", $links );
+	$term_links = apply_filters( "term_links-{$taxonomy}", $links );
 
 	return $before . join( $sep, $term_links ) . $after;
 }
diff --git a/wp-includes/category.php b/wp-includes/category.php
index 08d18c0a6..2ab54a5a9 100644
--- a/wp-includes/category.php
+++ b/wp-includes/category.php
@@ -82,7 +82,8 @@ function get_categories( $args = '' ) {
  * @since 1.5.1
  *
  * @param int|object $category Category ID or Category row object
- * @param string $output Optional. Constant OBJECT, ARRAY_A, or ARRAY_N
+ * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to a
+ *                       WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string $filter Optional. Default is raw or no WordPress defined filter will applied.
  * @return object|array|WP_Error|null Category data in type defined by $output parameter.
  *                                    WP_Error if $category is empty, null if it does not exist.
@@ -113,9 +114,10 @@ function get_category( $category, $output = OBJECT, $filter = 'raw' ) {
  * @since 2.1.0
  *
  * @param string $category_path URL containing category slugs.
- * @param bool $full_match Optional. Whether full path should be matched.
- * @param string $output Optional. Constant OBJECT, ARRAY_A, or ARRAY_N
- * @return object|array|WP_Error|void Type is based on $output value.
+ * @param bool   $full_match    Optional. Whether full path should be matched.
+ * @param string $output        Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                              a WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT.
+ * @return WP_Term|array|WP_Error|null Type is based on $output value.
  */
 function get_category_by_path( $category_path, $full_match = true, $output = OBJECT ) {
 	$category_path = rawurlencode( urldecode( $category_path ) );
@@ -296,10 +298,11 @@ function get_tags( $args = '' ) {
  *
  * @since 2.3.0
  *
- * @param int|object $tag
- * @param string $output Optional. Constant OBJECT, ARRAY_A, or ARRAY_N
- * @param string $filter Optional. Default is raw or no WordPress defined filter will applied.
- * @return object|array|WP_Error|null Tag data in type defined by $output parameter. WP_Error if $tag is empty, null if it does not exist.
+ * @param int|WP_Term|object $tag    A tag ID or object.
+ * @param string             $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                                   a WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT.
+ * @param string             $filter Optional. Default is raw or no WordPress defined filter will applied.
+ * @return WP_Term|array|WP_Error|null Tag data in type defined by $output parameter. WP_Error if $tag is empty, null if it does not exist.
  */
 function get_tag( $tag, $output = OBJECT, $filter = 'raw' ) {
 	return get_term( $tag, 'post_tag', $output, $filter );
diff --git a/wp-includes/class-IXR.php b/wp-includes/class-IXR.php
index a8e31983e..706e5e320 100644
--- a/wp-includes/class-IXR.php
+++ b/wp-includes/class-IXR.php
@@ -39,1184 +39,22 @@
  * @license    http://www.opensource.org/licenses/bsd-license.php BSD
  */
 
-/**
- * IXR_Value
- *
- * @package IXR
- * @since 1.5.0
- */
-class IXR_Value {
-    var $data;
-    var $type;
-
-	/**
-	 * PHP5 constructor.
-	 */
-	function __construct( $data, $type = false )
-    {
-        $this->data = $data;
-        if (!$type) {
-            $type = $this->calculateType();
-        }
-        $this->type = $type;
-        if ($type == 'struct') {
-            // Turn all the values in the array in to new IXR_Value objects
-            foreach ($this->data as $key => $value) {
-                $this->data[$key] = new IXR_Value($value);
-            }
-        }
-        if ($type == 'array') {
-            for ($i = 0, $j = count($this->data); $i < $j; $i++) {
-                $this->data[$i] = new IXR_Value($this->data[$i]);
-            }
-        }
-    }
-
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_Value( $data, $type = false ) {
-		self::__construct( $data, $type );
-	}
-
-    function calculateType()
-    {
-        if ($this->data === true || $this->data === false) {
-            return 'boolean';
-        }
-        if (is_integer($this->data)) {
-            return 'int';
-        }
-        if (is_double($this->data)) {
-            return 'double';
-        }
-
-        // Deal with IXR object types base64 and date
-        if (is_object($this->data) && is_a($this->data, 'IXR_Date')) {
-            return 'date';
-        }
-        if (is_object($this->data) && is_a($this->data, 'IXR_Base64')) {
-            return 'base64';
-        }
-
-        // If it is a normal PHP object convert it in to a struct
-        if (is_object($this->data)) {
-            $this->data = get_object_vars($this->data);
-            return 'struct';
-        }
-        if (!is_array($this->data)) {
-            return 'string';
-        }
-
-        // We have an array - is it an array or a struct?
-        if ($this->isStruct($this->data)) {
-            return 'struct';
-        } else {
-            return 'array';
-        }
-    }
-
-    function getXml()
-    {
-        // Return XML for this value
-        switch ($this->type) {
-            case 'boolean':
-                return '<boolean>'.(($this->data) ? '1' : '0').'</boolean>';
-                break;
-            case 'int':
-                return '<int>'.$this->data.'</int>';
-                break;
-            case 'double':
-                return '<double>'.$this->data.'</double>';
-                break;
-            case 'string':
-                return '<string>'.htmlspecialchars($this->data).'</string>';
-                break;
-            case 'array':
-                $return = '<array><data>'."\n";
-                foreach ($this->data as $item) {
-                    $return .= '  <value>'.$item->getXml()."</value>\n";
-                }
-                $return .= '</data></array>';
-                return $return;
-                break;
-            case 'struct':
-                $return = '<struct>'."\n";
-                foreach ($this->data as $name => $value) {
-					$name = htmlspecialchars($name);
-                    $return .= "  <member><name>$name</name><value>";
-                    $return .= $value->getXml()."</value></member>\n";
-                }
-                $return .= '</struct>';
-                return $return;
-                break;
-            case 'date':
-            case 'base64':
-                return $this->data->getXml();
-                break;
-        }
-        return false;
-    }
-
-    /**
-     * Checks whether or not the supplied array is a struct or not
-     *
-     * @param array $array
-     * @return bool
-     */
-    function isStruct($array)
-    {
-        $expected = 0;
-        foreach ($array as $key => $value) {
-            if ((string)$key !== (string)$expected) {
-                return true;
-            }
-            $expected++;
-        }
-        return false;
-    }
-}
-
-/**
- * IXR_MESSAGE
- *
- * @package IXR
- * @since 1.5.0
- *
- */
-class IXR_Message
-{
-    var $message;
-    var $messageType;  // methodCall / methodResponse / fault
-    var $faultCode;
-    var $faultString;
-    var $methodName;
-    var $params;
-
-    // Current variable stacks
-    var $_arraystructs = array();   // The stack used to keep track of the current array/struct
-    var $_arraystructstypes = array(); // Stack keeping track of if things are structs or array
-    var $_currentStructName = array();  // A stack as well
-    var $_param;
-    var $_value;
-    var $_currentTag;
-    var $_currentTagContents;
-    // The XML parser
-    var $_parser;
-
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct( $message )
-    {
-        $this->message =& $message;
-    }
-
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_Message( $message ) {
-		self::__construct( $message );
-	}
-
-    function parse()
-    {
-        // first remove the XML declaration
-        // merged from WP #10698 - this method avoids the RAM usage of preg_replace on very large messages
-        $header = preg_replace( '/<\?xml.*?\?'.'>/s', '', substr( $this->message, 0, 100 ), 1 );
-        $this->message = trim( substr_replace( $this->message, $header, 0, 100 ) );
-        if ( '' == $this->message ) {
-            return false;
-        }
-
-        // Then remove the DOCTYPE
-        $header = preg_replace( '/^<!DOCTYPE[^>]*+>/i', '', substr( $this->message, 0, 200 ), 1 );
-        $this->message = trim( substr_replace( $this->message, $header, 0, 200 ) );
-        if ( '' == $this->message ) {
-            return false;
-        }
-
-        // Check that the root tag is valid
-        $root_tag = substr( $this->message, 0, strcspn( substr( $this->message, 0, 20 ), "> \t\r\n" ) );
-        if ( '<!DOCTYPE' === strtoupper( $root_tag ) ) {
-            return false;
-        }
-        if ( ! in_array( $root_tag, array( '<methodCall', '<methodResponse', '<fault' ) ) ) {
-            return false;
-        }
-
-        // Bail if there are too many elements to parse
-        $element_limit = 30000;
-        if ( function_exists( 'apply_filters' ) ) {
-            /**
-             * Filters the number of elements to parse in an XML-RPC response.
-             *
-             * @since 4.0.0
-             *
-             * @param int $element_limit Default elements limit.
-             */
-            $element_limit = apply_filters( 'xmlrpc_element_limit', $element_limit );
-        }
-        if ( $element_limit && 2 * $element_limit < substr_count( $this->message, '<' ) ) {
-            return false;
-        }
-
-        $this->_parser = xml_parser_create();
-        // Set XML parser to take the case of tags in to account
-        xml_parser_set_option($this->_parser, XML_OPTION_CASE_FOLDING, false);
-        // Set XML parser callback functions
-        xml_set_object($this->_parser, $this);
-        xml_set_element_handler($this->_parser, 'tag_open', 'tag_close');
-        xml_set_character_data_handler($this->_parser, 'cdata');
-
-        // 256Kb, parse in chunks to avoid the RAM usage on very large messages
-        $chunk_size = 262144;
-
-        /**
-         * Filters the chunk size that can be used to parse an XML-RPC reponse message.
-         *
-         * @since 4.4.0
-         *
-         * @param int $chunk_size Chunk size to parse in bytes.
-         */
-        $chunk_size = apply_filters( 'xmlrpc_chunk_parsing_size', $chunk_size );
-
-        $final = false;
-        do {
-            if (strlen($this->message) <= $chunk_size) {
-                $final = true;
-            }
-            $part = substr($this->message, 0, $chunk_size);
-            $this->message = substr($this->message, $chunk_size);
-            if (!xml_parse($this->_parser, $part, $final)) {
-                return false;
-            }
-            if ($final) {
-                break;
-            }
-        } while (true);
-        xml_parser_free($this->_parser);
-
-        // Grab the error messages, if any
-        if ($this->messageType == 'fault') {
-            $this->faultCode = $this->params[0]['faultCode'];
-            $this->faultString = $this->params[0]['faultString'];
-        }
-        return true;
-    }
-
-    function tag_open($parser, $tag, $attr)
-    {
-        $this->_currentTagContents = '';
-        $this->currentTag = $tag;
-        switch($tag) {
-            case 'methodCall':
-            case 'methodResponse':
-            case 'fault':
-                $this->messageType = $tag;
-                break;
-                /* Deal with stacks of arrays and structs */
-            case 'data':    // data is to all intents and puposes more interesting than array
-                $this->_arraystructstypes[] = 'array';
-                $this->_arraystructs[] = array();
-                break;
-            case 'struct':
-                $this->_arraystructstypes[] = 'struct';
-                $this->_arraystructs[] = array();
-                break;
-        }
-    }
-
-    function cdata($parser, $cdata)
-    {
-        $this->_currentTagContents .= $cdata;
-    }
-
-    function tag_close($parser, $tag)
-    {
-        $valueFlag = false;
-        switch($tag) {
-            case 'int':
-            case 'i4':
-                $value = (int)trim($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-            case 'double':
-                $value = (double)trim($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-            case 'string':
-                $value = (string)trim($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-            case 'dateTime.iso8601':
-                $value = new IXR_Date(trim($this->_currentTagContents));
-                $valueFlag = true;
-                break;
-            case 'value':
-                // "If no type is indicated, the type is string."
-                if (trim($this->_currentTagContents) != '') {
-                    $value = (string)$this->_currentTagContents;
-                    $valueFlag = true;
-                }
-                break;
-            case 'boolean':
-                $value = (boolean)trim($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-            case 'base64':
-                $value = base64_decode($this->_currentTagContents);
-                $valueFlag = true;
-                break;
-                /* Deal with stacks of arrays and structs */
-            case 'data':
-            case 'struct':
-                $value = array_pop($this->_arraystructs);
-                array_pop($this->_arraystructstypes);
-                $valueFlag = true;
-                break;
-            case 'member':
-                array_pop($this->_currentStructName);
-                break;
-            case 'name':
-                $this->_currentStructName[] = trim($this->_currentTagContents);
-                break;
-            case 'methodName':
-                $this->methodName = trim($this->_currentTagContents);
-                break;
-        }
-
-        if ($valueFlag) {
-            if (count($this->_arraystructs) > 0) {
-                // Add value to struct or array
-                if ($this->_arraystructstypes[count($this->_arraystructstypes)-1] == 'struct') {
-                    // Add to struct
-                    $this->_arraystructs[count($this->_arraystructs)-1][$this->_currentStructName[count($this->_currentStructName)-1]] = $value;
-                } else {
-                    // Add to array
-                    $this->_arraystructs[count($this->_arraystructs)-1][] = $value;
-                }
-            } else {
-                // Just add as a parameter
-                $this->params[] = $value;
-            }
-        }
-        $this->_currentTagContents = '';
-    }
-}
-
-/**
- * IXR_Server
- *
- * @package IXR
- * @since 1.5.0
- */
-class IXR_Server
-{
-    var $data;
-    var $callbacks = array();
-    var $message;
-    var $capabilities;
-
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct( $callbacks = false, $data = false, $wait = false )
-    {
-        $this->setCapabilities();
-        if ($callbacks) {
-            $this->callbacks = $callbacks;
-        }
-        $this->setCallbacks();
-        if (!$wait) {
-            $this->serve($data);
-        }
-    }
-
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_Server( $callbacks = false, $data = false, $wait = false ) {
-		self::__construct( $callbacks, $data, $wait );
-	}
-
-    function serve($data = false)
-    {
-        if (!$data) {
-            if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] !== 'POST') {
-                if ( function_exists( 'status_header' ) ) {
-                    status_header( 405 ); // WP #20986
-                    header( 'Allow: POST' );
-                }
-                header('Content-Type: text/plain'); // merged from WP #9093
-                die('XML-RPC server accepts POST requests only.');
-            }
-
-            global $HTTP_RAW_POST_DATA;
-            if (empty($HTTP_RAW_POST_DATA)) {
-                // workaround for a bug in PHP 5.2.2 - http://bugs.php.net/bug.php?id=41293
-                $data = file_get_contents('php://input');
-            } else {
-                $data =& $HTTP_RAW_POST_DATA;
-            }
-        }
-        $this->message = new IXR_Message($data);
-        if (!$this->message->parse()) {
-            $this->error(-32700, 'parse error. not well formed');
-        }
-        if ($this->message->messageType != 'methodCall') {
-            $this->error(-32600, 'server error. invalid xml-rpc. not conforming to spec. Request must be a methodCall');
-        }
-        $result = $this->call($this->message->methodName, $this->message->params);
-
-        // Is the result an error?
-        if (is_a($result, 'IXR_Error')) {
-            $this->error($result);
-        }
-
-        // Encode the result
-        $r = new IXR_Value($result);
-        $resultxml = $r->getXml();
-
-        // Create the XML
-        $xml = <<<EOD
-<methodResponse>
-  <params>
-    <param>
-      <value>
-      $resultxml
-      </value>
-    </param>
-  </params>
-</methodResponse>
-
-EOD;
-      // Send it
-      $this->output($xml);
-    }
-
-    function call($methodname, $args)
-    {
-        if (!$this->hasMethod($methodname)) {
-            return new IXR_Error(-32601, 'server error. requested method '.$methodname.' does not exist.');
-        }
-        $method = $this->callbacks[$methodname];
-
-        // Perform the callback and send the response
-        if (count($args) == 1) {
-            // If only one parameter just send that instead of the whole array
-            $args = $args[0];
-        }
-
-        // Are we dealing with a function or a method?
-        if (is_string($method) && substr($method, 0, 5) == 'this:') {
-            // It's a class method - check it exists
-            $method = substr($method, 5);
-            if (!method_exists($this, $method)) {
-                return new IXR_Error(-32601, 'server error. requested class method "'.$method.'" does not exist.');
-            }
-
-            //Call the method
-            $result = $this->$method($args);
-        } else {
-            // It's a function - does it exist?
-            if (is_array($method)) {
-                if (!is_callable(array($method[0], $method[1]))) {
-                    return new IXR_Error(-32601, 'server error. requested object method "'.$method[1].'" does not exist.');
-                }
-            } else if (!function_exists($method)) {
-                return new IXR_Error(-32601, 'server error. requested function "'.$method.'" does not exist.');
-            }
-
-            // Call the function
-            $result = call_user_func($method, $args);
-        }
-        return $result;
-    }
-
-    function error($error, $message = false)
-    {
-        // Accepts either an error object or an error code and message
-        if ($message && !is_object($error)) {
-            $error = new IXR_Error($error, $message);
-        }
-        $this->output($error->getXml());
-    }
-
-    function output($xml)
-    {
-        $charset = function_exists('get_option') ? get_option('blog_charset') : '';
-        if ($charset)
-            $xml = '<?xml version="1.0" encoding="'.$charset.'"?>'."\n".$xml;
-        else
-            $xml = '<?xml version="1.0"?>'."\n".$xml;
-        $length = strlen($xml);
-        header('Connection: close');
-        if ($charset)
-            header('Content-Type: text/xml; charset='.$charset);
-        else
-            header('Content-Type: text/xml');
-        header('Date: '.date('r'));
-        echo $xml;
-        exit;
-    }
-
-    function hasMethod($method)
-    {
-        return in_array($method, array_keys($this->callbacks));
-    }
-
-    function setCapabilities()
-    {
-        // Initialises capabilities array
-        $this->capabilities = array(
-            'xmlrpc' => array(
-                'specUrl' => 'http://www.xmlrpc.com/spec',
-                'specVersion' => 1
-        ),
-            'faults_interop' => array(
-                'specUrl' => 'http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php',
-                'specVersion' => 20010516
-        ),
-            'system.multicall' => array(
-                'specUrl' => 'http://www.xmlrpc.com/discuss/msgReader$1208',
-                'specVersion' => 1
-        ),
-        );
-    }
-
-    function getCapabilities($args)
-    {
-        return $this->capabilities;
-    }
-
-    function setCallbacks()
-    {
-        $this->callbacks['system.getCapabilities'] = 'this:getCapabilities';
-        $this->callbacks['system.listMethods'] = 'this:listMethods';
-        $this->callbacks['system.multicall'] = 'this:multiCall';
-    }
-
-    function listMethods($args)
-    {
-        // Returns a list of methods - uses array_reverse to ensure user defined
-        // methods are listed before server defined methods
-        return array_reverse(array_keys($this->callbacks));
-    }
-
-    function multiCall($methodcalls)
-    {
-        // See http://www.xmlrpc.com/discuss/msgReader$1208
-        $return = array();
-        foreach ($methodcalls as $call) {
-            $method = $call['methodName'];
-            $params = $call['params'];
-            if ($method == 'system.multicall') {
-                $result = new IXR_Error(-32600, 'Recursive calls to system.multicall are forbidden');
-            } else {
-                $result = $this->call($method, $params);
-            }
-            if (is_a($result, 'IXR_Error')) {
-                $return[] = array(
-                    'faultCode' => $result->code,
-                    'faultString' => $result->message
-                );
-            } else {
-                $return[] = array($result);
-            }
-        }
-        return $return;
-    }
-}
-
-/**
- * IXR_Request
- *
- * @package IXR
- * @since 1.5.0
- */
-class IXR_Request
-{
-    var $method;
-    var $args;
-    var $xml;
-
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct($method, $args)
-    {
-        $this->method = $method;
-        $this->args = $args;
-        $this->xml = <<<EOD
-<?xml version="1.0"?>
-<methodCall>
-<methodName>{$this->method}</methodName>
-<params>
-
-EOD;
-        foreach ($this->args as $arg) {
-            $this->xml .= '<param><value>';
-            $v = new IXR_Value($arg);
-            $this->xml .= $v->getXml();
-            $this->xml .= "</value></param>\n";
-        }
-        $this->xml .= '</params></methodCall>';
-    }
-
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_Request( $method, $args ) {
-		self::__construct( $method, $args );
-	}
-
-    function getLength()
-    {
-        return strlen($this->xml);
-    }
-
-    function getXml()
-    {
-        return $this->xml;
-    }
-}
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-server.php' );
 
-/**
- * IXR_Client
- *
- * @package IXR
- * @since 1.5.0
- *
- */
-class IXR_Client
-{
-    var $server;
-    var $port;
-    var $path;
-    var $useragent;
-    var $response;
-    var $message = false;
-    var $debug = false;
-    var $timeout;
-    var $headers = array();
-
-    // Storage place for an error message
-    var $error = false;
-
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct( $server, $path = false, $port = 80, $timeout = 15 )
-    {
-        if (!$path) {
-            // Assume we have been given a URL instead
-            $bits = parse_url($server);
-            $this->server = $bits['host'];
-            $this->port = isset($bits['port']) ? $bits['port'] : 80;
-            $this->path = isset($bits['path']) ? $bits['path'] : '/';
-
-            // Make absolutely sure we have a path
-            if (!$this->path) {
-                $this->path = '/';
-            }
-
-            if ( ! empty( $bits['query'] ) ) {
-                $this->path .= '?' . $bits['query'];
-            }
-        } else {
-            $this->server = $server;
-            $this->path = $path;
-            $this->port = $port;
-        }
-        $this->useragent = 'The Incutio XML-RPC PHP Library';
-        $this->timeout = $timeout;
-    }
-
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_Client( $server, $path = false, $port = 80, $timeout = 15 ) {
-		self::__construct( $server, $path, $port, $timeout );
-	}
-
-    function query()
-    {
-        $args = func_get_args();
-        $method = array_shift($args);
-        $request = new IXR_Request($method, $args);
-        $length = $request->getLength();
-        $xml = $request->getXml();
-        $r = "\r\n";
-        $request  = "POST {$this->path} HTTP/1.0$r";
-
-        // Merged from WP #8145 - allow custom headers
-        $this->headers['Host']          = $this->server;
-        $this->headers['Content-Type']  = 'text/xml';
-        $this->headers['User-Agent']    = $this->useragent;
-        $this->headers['Content-Length']= $length;
-
-        foreach( $this->headers as $header => $value ) {
-            $request .= "{$header}: {$value}{$r}";
-        }
-        $request .= $r;
-
-        $request .= $xml;
-
-        // Now send the request
-        if ($this->debug) {
-            echo '<pre class="ixr_request">'.htmlspecialchars($request)."\n</pre>\n\n";
-        }
-
-        if ($this->timeout) {
-            $fp = @fsockopen($this->server, $this->port, $errno, $errstr, $this->timeout);
-        } else {
-            $fp = @fsockopen($this->server, $this->port, $errno, $errstr);
-        }
-        if (!$fp) {
-            $this->error = new IXR_Error(-32300, 'transport error - could not open socket');
-            return false;
-        }
-        fputs($fp, $request);
-        $contents = '';
-        $debugContents = '';
-        $gotFirstLine = false;
-        $gettingHeaders = true;
-        while (!feof($fp)) {
-            $line = fgets($fp, 4096);
-            if (!$gotFirstLine) {
-                // Check line for '200'
-                if (strstr($line, '200') === false) {
-                    $this->error = new IXR_Error(-32300, 'transport error - HTTP status code was not 200');
-                    return false;
-                }
-                $gotFirstLine = true;
-            }
-            if (trim($line) == '') {
-                $gettingHeaders = false;
-            }
-            if (!$gettingHeaders) {
-            	// merged from WP #12559 - remove trim
-                $contents .= $line;
-            }
-            if ($this->debug) {
-            	$debugContents .= $line;
-            }
-        }
-        if ($this->debug) {
-            echo '<pre class="ixr_response">'.htmlspecialchars($debugContents)."\n</pre>\n\n";
-        }
-
-        // Now parse what we've got back
-        $this->message = new IXR_Message($contents);
-        if (!$this->message->parse()) {
-            // XML error
-            $this->error = new IXR_Error(-32700, 'parse error. not well formed');
-            return false;
-        }
-
-        // Is the message a fault?
-        if ($this->message->messageType == 'fault') {
-            $this->error = new IXR_Error($this->message->faultCode, $this->message->faultString);
-            return false;
-        }
-
-        // Message must be OK
-        return true;
-    }
-
-    function getResponse()
-    {
-        // methodResponses can only have one param - return that
-        return $this->message->params[0];
-    }
-
-    function isError()
-    {
-        return (is_object($this->error));
-    }
-
-    function getErrorCode()
-    {
-        return $this->error->code;
-    }
-
-    function getErrorMessage()
-    {
-        return $this->error->message;
-    }
-}
-
-
-/**
- * IXR_Error
- *
- * @package IXR
- * @since 1.5.0
- */
-class IXR_Error
-{
-    var $code;
-    var $message;
-
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct( $code, $message )
-    {
-        $this->code = $code;
-        $this->message = htmlspecialchars($message);
-    }
-
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_Error( $code, $message ) {
-		self::__construct( $code, $message );
-	}
-
-    function getXml()
-    {
-        $xml = <<<EOD
-<methodResponse>
-  <fault>
-    <value>
-      <struct>
-        <member>
-          <name>faultCode</name>
-          <value><int>{$this->code}</int></value>
-        </member>
-        <member>
-          <name>faultString</name>
-          <value><string>{$this->message}</string></value>
-        </member>
-      </struct>
-    </value>
-  </fault>
-</methodResponse>
-
-EOD;
-        return $xml;
-    }
-}
-
-/**
- * IXR_Date
- *
- * @package IXR
- * @since 1.5.0
- */
-class IXR_Date {
-    var $year;
-    var $month;
-    var $day;
-    var $hour;
-    var $minute;
-    var $second;
-    var $timezone;
-
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct( $time )
-    {
-        // $time can be a PHP timestamp or an ISO one
-        if (is_numeric($time)) {
-            $this->parseTimestamp($time);
-        } else {
-            $this->parseIso($time);
-        }
-    }
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-base64.php' );
 
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_Date( $time ) {
-		self::__construct( $time );
-	}
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-client.php' );
 
-    function parseTimestamp($timestamp)
-    {
-        $this->year = date('Y', $timestamp);
-        $this->month = date('m', $timestamp);
-        $this->day = date('d', $timestamp);
-        $this->hour = date('H', $timestamp);
-        $this->minute = date('i', $timestamp);
-        $this->second = date('s', $timestamp);
-        $this->timezone = '';
-    }
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-clientmulticall.php' );
 
-    function parseIso($iso)
-    {
-        $this->year = substr($iso, 0, 4);
-        $this->month = substr($iso, 4, 2);
-        $this->day = substr($iso, 6, 2);
-        $this->hour = substr($iso, 9, 2);
-        $this->minute = substr($iso, 12, 2);
-        $this->second = substr($iso, 15, 2);
-        $this->timezone = substr($iso, 17);
-    }
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-date.php' );
 
-    function getIso()
-    {
-        return $this->year.$this->month.$this->day.'T'.$this->hour.':'.$this->minute.':'.$this->second.$this->timezone;
-    }
-
-    function getXml()
-    {
-        return '<dateTime.iso8601>'.$this->getIso().'</dateTime.iso8601>';
-    }
-
-    function getTimestamp()
-    {
-        return mktime($this->hour, $this->minute, $this->second, $this->month, $this->day, $this->year);
-    }
-}
-
-/**
- * IXR_Base64
- *
- * @package IXR
- * @since 1.5.0
- */
-class IXR_Base64
-{
-    var $data;
-
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct( $data )
-    {
-        $this->data = $data;
-    }
-
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_Base64( $data ) {
-		self::__construct( $data );
-	}
-
-    function getXml()
-    {
-        return '<base64>'.base64_encode($this->data).'</base64>';
-    }
-}
-
-/**
- * IXR_IntrospectionServer
- *
- * @package IXR
- * @since 1.5.0
- */
-class IXR_IntrospectionServer extends IXR_Server
-{
-    var $signatures;
-    var $help;
-
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct()
-    {
-        $this->setCallbacks();
-        $this->setCapabilities();
-        $this->capabilities['introspection'] = array(
-            'specUrl' => 'http://xmlrpc.usefulinc.com/doc/reserved.html',
-            'specVersion' => 1
-        );
-        $this->addCallback(
-            'system.methodSignature',
-            'this:methodSignature',
-            array('array', 'string'),
-            'Returns an array describing the return type and required parameters of a method'
-        );
-        $this->addCallback(
-            'system.getCapabilities',
-            'this:getCapabilities',
-            array('struct'),
-            'Returns a struct describing the XML-RPC specifications supported by this server'
-        );
-        $this->addCallback(
-            'system.listMethods',
-            'this:listMethods',
-            array('array'),
-            'Returns an array of available methods on this server'
-        );
-        $this->addCallback(
-            'system.methodHelp',
-            'this:methodHelp',
-            array('string', 'string'),
-            'Returns a documentation string for the specified method'
-        );
-    }
-
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_IntrospectionServer() {
-		self::__construct();
-	}
-
-    function addCallback($method, $callback, $args, $help)
-    {
-        $this->callbacks[$method] = $callback;
-        $this->signatures[$method] = $args;
-        $this->help[$method] = $help;
-    }
-
-    function call($methodname, $args)
-    {
-        // Make sure it's in an array
-        if ($args && !is_array($args)) {
-            $args = array($args);
-        }
-
-        // Over-rides default call method, adds signature check
-        if (!$this->hasMethod($methodname)) {
-            return new IXR_Error(-32601, 'server error. requested method "'.$this->message->methodName.'" not specified.');
-        }
-        $method = $this->callbacks[$methodname];
-        $signature = $this->signatures[$methodname];
-        $returnType = array_shift($signature);
-
-        // Check the number of arguments
-        if (count($args) != count($signature)) {
-            return new IXR_Error(-32602, 'server error. wrong number of method parameters');
-        }
-
-        // Check the argument types
-        $ok = true;
-        $argsbackup = $args;
-        for ($i = 0, $j = count($args); $i < $j; $i++) {
-            $arg = array_shift($args);
-            $type = array_shift($signature);
-            switch ($type) {
-                case 'int':
-                case 'i4':
-                    if (is_array($arg) || !is_int($arg)) {
-                        $ok = false;
-                    }
-                    break;
-                case 'base64':
-                case 'string':
-                    if (!is_string($arg)) {
-                        $ok = false;
-                    }
-                    break;
-                case 'boolean':
-                    if ($arg !== false && $arg !== true) {
-                        $ok = false;
-                    }
-                    break;
-                case 'float':
-                case 'double':
-                    if (!is_float($arg)) {
-                        $ok = false;
-                    }
-                    break;
-                case 'date':
-                case 'dateTime.iso8601':
-                    if (!is_a($arg, 'IXR_Date')) {
-                        $ok = false;
-                    }
-                    break;
-            }
-            if (!$ok) {
-                return new IXR_Error(-32602, 'server error. invalid method parameters');
-            }
-        }
-        // It passed the test - run the "real" method call
-        return parent::call($methodname, $argsbackup);
-    }
-
-    function methodSignature($method)
-    {
-        if (!$this->hasMethod($method)) {
-            return new IXR_Error(-32601, 'server error. requested method "'.$method.'" not specified.');
-        }
-        // We should be returning an array of types
-        $types = $this->signatures[$method];
-        $return = array();
-        foreach ($types as $type) {
-            switch ($type) {
-                case 'string':
-                    $return[] = 'string';
-                    break;
-                case 'int':
-                case 'i4':
-                    $return[] = 42;
-                    break;
-                case 'double':
-                    $return[] = 3.1415;
-                    break;
-                case 'dateTime.iso8601':
-                    $return[] = new IXR_Date(time());
-                    break;
-                case 'boolean':
-                    $return[] = true;
-                    break;
-                case 'base64':
-                    $return[] = new IXR_Base64('base64');
-                    break;
-                case 'array':
-                    $return[] = array('array');
-                    break;
-                case 'struct':
-                    $return[] = array('struct' => 'struct');
-                    break;
-            }
-        }
-        return $return;
-    }
-
-    function methodHelp($method)
-    {
-        return $this->help[$method];
-    }
-}
-
-/**
- * IXR_ClientMulticall
- *
- * @package IXR
- * @since 1.5.0
- */
-class IXR_ClientMulticall extends IXR_Client
-{
-    var $calls = array();
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-error.php' );
 
-	/**
-	 * PHP5 constructor.
-	 */
-    function __construct( $server, $path = false, $port = 80 )
-    {
-        parent::IXR_Client($server, $path, $port);
-        $this->useragent = 'The Incutio XML-RPC PHP Library (multicall client)';
-    }
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-introspectionserver.php' );
 
-	/**
-	 * PHP4 constructor.
-	 */
-	public function IXR_ClientMulticall( $server, $path = false, $port = 80 ) {
-		self::__construct( $server, $path, $port );
-	}
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-message.php' );
 
-    function addCall()
-    {
-        $args = func_get_args();
-        $methodName = array_shift($args);
-        $struct = array(
-            'methodName' => $methodName,
-            'params' => $args
-        );
-        $this->calls[] = $struct;
-    }
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-request.php' );
 
-    function query()
-    {
-        // Prepare multicall, then call the parent::query() method
-        return parent::query('system.multicall', $this->calls);
-    }
-}
+require_once( ABSPATH . WPINC . '/IXR/class-IXR-value.php' );
\ No newline at end of file
diff --git a/wp-includes/class-feed.php b/wp-includes/class-feed.php
index d525fe32e..62dd1195d 100644
--- a/wp-includes/class-feed.php
+++ b/wp-includes/class-feed.php
@@ -1,277 +1,18 @@
 <?php
-
-if ( ! class_exists( 'SimplePie', false ) )
-	require_once( ABSPATH . WPINC . '/class-simplepie.php' );
-
-/**
- * Core class used to implement a feed cache.
- *
- * @since 2.8.0
- *
- * @see SimplePie_Cache
- */
-class WP_Feed_Cache extends SimplePie_Cache {
-
-	/**
-	 * Creates a new SimplePie_Cache object.
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 *
-	 * @param string $location  URL location (scheme is used to determine handler).
-	 * @param string $filename  Unique identifier for cache object.
-	 * @param string $extension 'spi' or 'spc'.
-	 * @return WP_Feed_Cache_Transient Feed cache handler object that uses transients.
-	 */
-	public function create($location, $filename, $extension) {
-		return new WP_Feed_Cache_Transient($location, $filename, $extension);
-	}
-}
-
-/**
- * Core class used to implement feed cache transients.
- *
- * @since 2.8.0
- */
-class WP_Feed_Cache_Transient {
-
-	/**
-	 * Holds the transient name.
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 * @var string
-	 */
-	public $name;
-
-	/**
-	 * Holds the transient mod name.
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 * @var string
-	 */
-	public $mod_name;
-
-	/**
-	 * Holds the cache duration in seconds.
-	 *
-	 * Defaults to 43200 seconds (12 hours).
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 * @var int
-	 */
-	public $lifetime = 43200;
-
-	/**
-	 * Constructor.
-	 *
-	 * @since 2.8.0
-	 * @since 3.2.0 Updated to use a PHP5 constructor.
-	 * @access public
-	 *
-	 * @param string $location  URL location (scheme is used to determine handler).
-	 * @param string $filename  Unique identifier for cache object.
-	 * @param string $extension 'spi' or 'spc'.
-	 */
-	public function __construct($location, $filename, $extension) {
-		$this->name = 'feed_' . $filename;
-		$this->mod_name = 'feed_mod_' . $filename;
-
-		$lifetime = $this->lifetime;
-		/**
-		 * Filters the transient lifetime of the feed cache.
-		 *
-		 * @since 2.8.0
-		 *
-		 * @param int    $lifetime Cache duration in seconds. Default is 43200 seconds (12 hours).
-		 * @param string $filename Unique identifier for the cache object.
-		 */
-		$this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $filename);
-	}
-
-	/**
-	 * Sets the transient.
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 *
-	 * @param SimplePie $data Data to save.
-	 * @return true Always true.
-	 */
-	public function save($data) {
-		if ( $data instanceof SimplePie ) {
-			$data = $data->data;
-		}
-
-		set_transient($this->name, $data, $this->lifetime);
-		set_transient($this->mod_name, time(), $this->lifetime);
-		return true;
-	}
-
-	/**
-	 * Gets the transient.
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 *
-	 * @return mixed Transient value.
-	 */
-	public function load() {
-		return get_transient($this->name);
-	}
-
-	/**
-	 * Gets mod transient.
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 *
-	 * @return mixed Transient value.
-	 */
-	public function mtime() {
-		return get_transient($this->mod_name);
-	}
-
-	/**
-	 * Sets mod transient.
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 *
-	 * @return bool False if value was not set and true if value was set.
-	 */
-	public function touch() {
-		return set_transient($this->mod_name, time(), $this->lifetime);
-	}
-
-	/**
-	 * Deletes transients.
-	 *
-	 * @since 2.8.0
-	 * @access public
-	 *
-	 * @return true Always true.
-	 */
-	public function unlink() {
-		delete_transient($this->name);
-		delete_transient($this->mod_name);
-		return true;
-	}
-}
-
 /**
- * Core class for fetching remote files and reading local files with SimplePie.
- *
- * @since 2.8.0
+ * Feed API
  *
- * @see SimplePie_File
+ * @package WordPress
+ * @subpackage Feed
  */
-class WP_SimplePie_File extends SimplePie_File {
-
-	/**
-	 * Constructor.
-	 *
-	 * @since 2.8.0
-	 * @since 3.2.0 Updated to use a PHP5 constructor.
-	 * @access public
-	 *
-	 * @param string       $url             Remote file URL.
-	 * @param integer      $timeout         Optional. How long the connection should stay open in seconds.
-	 *                                      Default 10.
-	 * @param integer      $redirects       Optional. The number of allowed redirects. Default 5.
-	 * @param string|array $headers         Optional. Array or string of headers to send with the request.
-	 *                                      Default null.
-	 * @param string       $useragent       Optional. User-agent value sent. Default null.
-	 * @param boolean      $force_fsockopen Optional. Whether to force opening internet or unix domain socket
-	 *                                      connection or not. Default false.
-	 */
-	public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) {
-		$this->url = $url;
-		$this->timeout = $timeout;
-		$this->redirects = $redirects;
-		$this->headers = $headers;
-		$this->useragent = $useragent;
-
-		$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE;
-
-		if ( preg_match('/^http(s)?:\/\//i', $url) ) {
-			$args = array(
-				'timeout' => $this->timeout,
-				'redirection' => $this->redirects,
-			);
 
-			if ( !empty($this->headers) )
-				$args['headers'] = $this->headers;
+_deprecated_file( basename( __FILE__ ), '4.7.0', 'fetch_feed()' );
 
-			if ( SIMPLEPIE_USERAGENT != $this->useragent ) //Use default WP user agent unless custom has been specified
-				$args['user-agent'] = $this->useragent;
-
-			$res = wp_safe_remote_request($url, $args);
-
-			if ( is_wp_error($res) ) {
-				$this->error = 'WP HTTP Error: ' . $res->get_error_message();
-				$this->success = false;
-			} else {
-				$this->headers = wp_remote_retrieve_headers( $res );
-				$this->body = wp_remote_retrieve_body( $res );
-				$this->status_code = wp_remote_retrieve_response_code( $res );
-			}
-		} else {
-			$this->error = '';
-			$this->success = false;
-		}
-	}
+if ( ! class_exists( 'SimplePie', false ) ) {
+	require_once( ABSPATH . WPINC . '/class-simplepie.php' );
 }
 
-/**
- * Core class used to implement SimpliePie feed sanitization.
- *
- * Extends the SimplePie_Sanitize class to use KSES, because
- * we cannot universally count on DOMDocument being available.
- *
- * @since 3.5.0
- *
- * @see SimplePie_Sanitize
- */
-class WP_SimplePie_Sanitize_KSES extends SimplePie_Sanitize {
-
-	/**
-	 * WordPress SimplePie sanitization using KSES.
-	 *
-	 * Sanitizes the incoming data, to ensure that it matches the type of data expected, using KSES.
-	 *
-	 * @since 3.5.0
-	 * @access public
-	 *
-	 * @param mixed   $data The data that needs to be sanitized.
-	 * @param integer $type The type of data that it's supposed to be.
-	 * @param string  $base Optional. The `xml:base` value to use when converting relative
-	 *                      URLs to absolute ones. Default empty.
-	 * @return mixed Sanitized data.
-	 */
-	public function sanitize( $data, $type, $base = '' ) {
-		$data = trim( $data );
-		if ( $type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML ) {
-			if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data)) {
-				$type |= SIMPLEPIE_CONSTRUCT_HTML;
-			}
-			else {
-				$type |= SIMPLEPIE_CONSTRUCT_TEXT;
-			}
-		}
-		if ( $type & SIMPLEPIE_CONSTRUCT_BASE64 ) {
-			$data = base64_decode( $data );
-		}
-		if ( $type & ( SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML ) ) {
-			$data = wp_kses_post( $data );
-			if ( $this->output_encoding !== 'UTF-8' ) {
-				$data = $this->registry->call( 'Misc', 'change_encoding', array( $data, 'UTF-8', $this->output_encoding ) );
-			}
-			return $data;
-		} else {
-			return parent::sanitize( $data, $type, $base );
-		}
-	}
-}
+require_once( ABSPATH . WPINC . '/class-wp-feed-cache.php' );
+require_once( ABSPATH . WPINC . '/class-wp-feed-cache-transient.php' );
+require_once( ABSPATH . WPINC . '/class-wp-simplepie-file.php' );
+require_once( ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php' );
\ No newline at end of file
diff --git a/wp-includes/class-http.php b/wp-includes/class-http.php
index c0272ba48..b9f5ab50f 100644
--- a/wp-includes/class-http.php
+++ b/wp-includes/class-http.php
@@ -101,8 +101,6 @@ class WP_Http {
 	 * @access public
 	 * @since 2.7.0
 	 *
-	 * @global string $wp_version
-	 *
 	 * @param string       $url  The request URL.
 	 * @param string|array $args {
 	 *     Optional. Array or string of HTTP request arguments.
@@ -116,7 +114,7 @@ class WP_Http {
 	 *     @type string       $httpversion         Version of the HTTP protocol to use. Accepts '1.0' and '1.1'.
 	 *                                             Default '1.0'.
 	 *     @type string       $user-agent          User-agent value sent.
-	 *                                             Default WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ).
+	 *                                             Default WordPress/' . get_bloginfo( 'version' ) . '; ' . get_bloginfo( 'url' ).
 	 *     @type bool         $reject_unsafe_urls  Whether to pass URLs through wp_http_validate_url().
 	 *                                             Default false.
 	 *     @type bool         $blocking            Whether the calling code requires the result of the request.
@@ -148,8 +146,6 @@ class WP_Http {
 	 *                        A WP_Error instance upon error.
 	 */
 	public function request( $url, $args = array() ) {
-		global $wp_version;
-
 		$defaults = array(
 			'method' => 'GET',
 			/**
@@ -185,7 +181,7 @@ class WP_Http {
 			 *
 			 * @param string $user_agent WordPress user agent string.
 			 */
-			'user-agent' => apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) ),
+			'user-agent' => apply_filters( 'http_headers_useragent', 'WordPress/' . get_bloginfo( 'version' ) . '; ' . get_bloginfo( 'url' ) ),
 			/**
 			 * Filters whether to pass URLs through wp_http_validate_url() in an HTTP request.
 			 *
@@ -304,7 +300,7 @@ class WP_Http {
 			'timeout' => $r['timeout'],
 			'useragent' => $r['user-agent'],
 			'blocking' => $r['blocking'],
-			'hooks' => new Requests_Hooks(),
+			'hooks' => new WP_HTTP_Requests_Hooks( $url, $r ),
 		);
 
 		// Ensure redirects follow browser behaviour.
@@ -332,6 +328,7 @@ class WP_Http {
 		// SSL certificate handling
 		if ( ! $r['sslverify'] ) {
 			$options['verify'] = false;
+			$options['verifyname'] = false;
 		} else {
 			$options['verify'] = $r['sslcertificates'];
 		}
@@ -362,8 +359,8 @@ class WP_Http {
 			}
 		}
 
-		// Work around a bug in Requests when the path starts with // See https://github.com/rmccue/Requests/issues/231
-		$url = preg_replace( '!^(\w+://[^/]+)//(.*)$!i', '$1/$2', $url );
+		// Avoid issues where mbstring.func_overload is enabled
+		mbstring_binary_safe_encoding();
 
 		try {
 			$requests_response = Requests::request( $url, $headers, $data, $type, $options );
@@ -379,6 +376,8 @@ class WP_Http {
 			$response = new WP_Error( 'http_request_failed', $e->getMessage() );
 		}
 
+		reset_mbstring_encoding();
+
 		/**
 		 * Fires after an HTTP API response is received and before the response is returned.
 		 *
diff --git a/wp-includes/class-oembed.php b/wp-includes/class-oembed.php
index 9790d266f..b1b721194 100644
--- a/wp-includes/class-oembed.php
+++ b/wp-includes/class-oembed.php
@@ -55,49 +55,59 @@ class WP_oEmbed {
 	public function __construct() {
 		$host = urlencode( home_url() );
 		$providers = array(
-			'#http://((m|www)\.)?youtube\.com/watch.*#i'          => array( 'http://www.youtube.com/oembed',                             true  ),
-			'#https://((m|www)\.)?youtube\.com/watch.*#i'         => array( 'http://www.youtube.com/oembed?scheme=https',                true  ),
-			'#http://((m|www)\.)?youtube\.com/playlist.*#i'       => array( 'http://www.youtube.com/oembed',                             true  ),
-			'#https://((m|www)\.)?youtube\.com/playlist.*#i'      => array( 'http://www.youtube.com/oembed?scheme=https',                true  ),
-			'#http://youtu\.be/.*#i'                              => array( 'http://www.youtube.com/oembed',                             true  ),
-			'#https://youtu\.be/.*#i'                             => array( 'http://www.youtube.com/oembed?scheme=https',                true  ),
-			'#https?://(.+\.)?vimeo\.com/.*#i'                    => array( 'http://vimeo.com/api/oembed.{format}',                      true  ),
-			'#https?://(www\.)?dailymotion\.com/.*#i'             => array( 'https://www.dailymotion.com/services/oembed',               true  ),
-			'#https?://dai.ly/.*#i'                               => array( 'https://www.dailymotion.com/services/oembed',               true  ),
-			'#https?://(www\.)?flickr\.com/.*#i'                  => array( 'https://www.flickr.com/services/oembed/',                   true  ),
-			'#https?://flic\.kr/.*#i'                             => array( 'https://www.flickr.com/services/oembed/',                   true  ),
-			'#https?://(.+\.)?smugmug\.com/.*#i'                  => array( 'http://api.smugmug.com/services/oembed/',                   true  ),
-			'#https?://(www\.)?hulu\.com/watch/.*#i'              => array( 'http://www.hulu.com/api/oembed.{format}',                   true  ),
-			'http://i*.photobucket.com/albums/*'                  => array( 'http://api.photobucket.com/oembed',                         false ),
-			'http://gi*.photobucket.com/groups/*'                 => array( 'http://api.photobucket.com/oembed',                         false ),
-			'#https?://(www\.)?scribd\.com/doc/.*#i'              => array( 'http://www.scribd.com/services/oembed',                     true  ),
-			'#https?://wordpress.tv/.*#i'                         => array( 'http://wordpress.tv/oembed/',                               true  ),
-			'#https?://(.+\.)?polldaddy\.com/.*#i'                => array( 'https://polldaddy.com/oembed/',                             true  ),
-			'#https?://poll\.fm/.*#i'                             => array( 'https://polldaddy.com/oembed/',                             true  ),
-			'#https?://(www\.)?funnyordie\.com/videos/.*#i'       => array( 'http://www.funnyordie.com/oembed',                          true  ),
-			'#https?://(www\.)?twitter\.com/.+?/status(es)?/.*#i' => array( 'https://publish.twitter.com/oembed',                        true  ),
-			'#https?://(www\.)?twitter\.com/.+?/timelines/.*#i'   => array( 'https://publish.twitter.com/oembed',                        true  ),
-			'#https?://(www\.)?twitter\.com/i/moments/.*#i'       => array( 'https://publish.twitter.com/oembed',                        true  ),
-			'#https?://vine.co/v/.*#i'                            => array( 'https://vine.co/oembed.{format}',                           true  ),
-			'#https?://(www\.)?soundcloud\.com/.*#i'              => array( 'http://soundcloud.com/oembed',                              true  ),
-			'#https?://(.+?\.)?slideshare\.net/.*#i'              => array( 'https://www.slideshare.net/api/oembed/2',                   true  ),
-			'#https?://(www\.)?instagr(\.am|am\.com)/p/.*#i'      => array( 'https://api.instagram.com/oembed',                          true  ),
-			'#https?://(open|play)\.spotify\.com/.*#i'            => array( 'https://embed.spotify.com/oembed/',                         true  ),
-			'#https?://(.+\.)?imgur\.com/.*#i'                    => array( 'http://api.imgur.com/oembed',                               true  ),
-			'#https?://(www\.)?meetu(\.ps|p\.com)/.*#i'           => array( 'http://api.meetup.com/oembed',                              true  ),
-			'#https?://(www\.)?issuu\.com/.+/docs/.+#i'           => array( 'http://issuu.com/oembed_wp',                                true  ),
-			'#https?://(www\.)?collegehumor\.com/video/.*#i'      => array( 'http://www.collegehumor.com/oembed.{format}',               true  ),
-			'#https?://(www\.)?mixcloud\.com/.*#i'                => array( 'http://www.mixcloud.com/oembed',                            true  ),
-			'#https?://(www\.|embed\.)?ted\.com/talks/.*#i'       => array( 'http://www.ted.com/talks/oembed.{format}',                  true  ),
-			'#https?://(www\.)?(animoto|video214)\.com/play/.*#i' => array( 'https://animoto.com/oembeds/create',                        true  ),
-			'#https?://(.+)\.tumblr\.com/post/.*#i'               => array( 'https://www.tumblr.com/oembed/1.0',                         true  ),
-			'#https?://(www\.)?kickstarter\.com/projects/.*#i'    => array( 'https://www.kickstarter.com/services/oembed',               true  ),
-			'#https?://kck\.st/.*#i'                              => array( 'https://www.kickstarter.com/services/oembed',               true  ),
-			'#https?://cloudup\.com/.*#i'                         => array( 'https://cloudup.com/oembed',                                true  ),
-			'#https?://(www\.)?reverbnation\.com/.*#i'            => array( 'https://www.reverbnation.com/oembed',                       true  ),
-			'#https?://videopress.com/v/.*#'                      => array( 'https://public-api.wordpress.com/oembed/1.0/?for=' . $host, true  ),
-			'#https?://(www\.)?reddit\.com/r/[^/]+/comments/.*#i' => array( 'https://www.reddit.com/oembed',                             true  ),
-			'#https?://(www\.)?speakerdeck\.com/.*#i'             => array( 'https://speakerdeck.com/oembed.{format}',                   true  ),
+			'#https?://((m|www)\.)?youtube\.com/watch.*#i'             => array( 'https://www.youtube.com/oembed',                            true  ),
+			'#https?://((m|www)\.)?youtube\.com/playlist.*#i'          => array( 'https://www.youtube.com/oembed',                            true  ),
+			'#https?://youtu\.be/.*#i'                                 => array( 'https://www.youtube.com/oembed',                            true  ),
+			'#https?://(.+\.)?vimeo\.com/.*#i'                         => array( 'https://vimeo.com/api/oembed.{format}',                     true  ),
+			'#https?://(www\.)?dailymotion\.com/.*#i'                  => array( 'https://www.dailymotion.com/services/oembed',               true  ),
+			'#https?://dai\.ly/.*#i'                                   => array( 'https://www.dailymotion.com/services/oembed',               true  ),
+			'#https?://(www\.)?flickr\.com/.*#i'                       => array( 'https://www.flickr.com/services/oembed/',                   true  ),
+			'#https?://flic\.kr/.*#i'                                  => array( 'https://www.flickr.com/services/oembed/',                   true  ),
+			'#https?://(.+\.)?smugmug\.com/.*#i'                       => array( 'https://api.smugmug.com/services/oembed/',                  true  ),
+			'#https?://(www\.)?hulu\.com/watch/.*#i'                   => array( 'http://www.hulu.com/api/oembed.{format}',                   true  ),
+			'http://i*.photobucket.com/albums/*'                       => array( 'http://api.photobucket.com/oembed',                         false ),
+			'http://gi*.photobucket.com/groups/*'                      => array( 'http://api.photobucket.com/oembed',                         false ),
+			'#https?://(www\.)?scribd\.com/doc/.*#i'                   => array( 'https://www.scribd.com/services/oembed',                    true  ),
+			'#https?://wordpress\.tv/.*#i'                             => array( 'https://wordpress.tv/oembed/',                              true  ),
+			'#https?://(.+\.)?polldaddy\.com/.*#i'                     => array( 'https://polldaddy.com/oembed/',                             true  ),
+			'#https?://poll\.fm/.*#i'                                  => array( 'https://polldaddy.com/oembed/',                             true  ),
+			'#https?://(www\.)?funnyordie\.com/videos/.*#i'            => array( 'http://www.funnyordie.com/oembed',                          true  ),
+			'#https?://(www\.)?twitter\.com/\w{1,15}/status(es)?/.*#i' => array( 'https://publish.twitter.com/oembed',                        true  ),
+			'#https?://(www\.)?twitter\.com/\w{1,15}$#i'               => array( 'https://publish.twitter.com/oembed',                        true  ),
+			'#https?://(www\.)?twitter\.com/\w{1,15}/likes$#i'         => array( 'https://publish.twitter.com/oembed',                        true  ),
+			'#https?://(www\.)?twitter\.com/\w{1,15}/lists/.*#i'       => array( 'https://publish.twitter.com/oembed',                        true  ),
+			'#https?://(www\.)?twitter\.com/\w{1,15}/timelines/.*#i'   => array( 'https://publish.twitter.com/oembed',                        true  ),
+			'#https?://(www\.)?twitter\.com/i/moments/.*#i'            => array( 'https://publish.twitter.com/oembed',                        true  ),
+			'#https?://vine\.co/v/.*#i'                                => array( 'https://vine.co/oembed.{format}',                           true  ),
+			'#https?://(www\.)?soundcloud\.com/.*#i'                   => array( 'https://soundcloud.com/oembed',                             true  ),
+			'#https?://(.+?\.)?slideshare\.net/.*#i'                   => array( 'https://www.slideshare.net/api/oembed/2',                   true  ),
+			'#https?://(www\.)?instagr(\.am|am\.com)/p/.*#i'           => array( 'https://api.instagram.com/oembed',                          true  ),
+			'#https?://(open|play)\.spotify\.com/.*#i'                 => array( 'https://embed.spotify.com/oembed/',                         true  ),
+			'#https?://(.+\.)?imgur\.com/.*#i'                         => array( 'http://api.imgur.com/oembed',                               true  ),
+			'#https?://(www\.)?meetu(\.ps|p\.com)/.*#i'                => array( 'https://api.meetup.com/oembed',                             true  ),
+			'#https?://(www\.)?issuu\.com/.+/docs/.+#i'                => array( 'https://issuu.com/oembed_wp',                               true  ),
+			'#https?://(www\.)?collegehumor\.com/video/.*#i'           => array( 'http://www.collegehumor.com/oembed.{format}',               true  ),
+			'#https?://(www\.)?mixcloud\.com/.*#i'                     => array( 'https://www.mixcloud.com/oembed',                           true  ),
+			'#https?://(www\.|embed\.)?ted\.com/talks/.*#i'            => array( 'https://www.ted.com/services/v1/oembed.{format}',           true  ),
+			'#https?://(www\.)?(animoto|video214)\.com/play/.*#i'      => array( 'https://animoto.com/oembeds/create',                        true  ),
+			'#https?://(.+)\.tumblr\.com/post/.*#i'                    => array( 'https://www.tumblr.com/oembed/1.0',                         true  ),
+			'#https?://(www\.)?kickstarter\.com/projects/.*#i'         => array( 'https://www.kickstarter.com/services/oembed',               true  ),
+			'#https?://kck\.st/.*#i'                                   => array( 'https://www.kickstarter.com/services/oembed',               true  ),
+			'#https?://cloudup\.com/.*#i'                              => array( 'https://cloudup.com/oembed',                                true  ),
+			'#https?://(www\.)?reverbnation\.com/.*#i'                 => array( 'https://www.reverbnation.com/oembed',                       true  ),
+			'#https?://videopress\.com/v/.*#'                          => array( 'https://public-api.wordpress.com/oembed/1.0/?for=' . $host, true  ),
+			'#https?://(www\.)?reddit\.com/r/[^/]+/comments/.*#i'      => array( 'https://www.reddit.com/oembed',                             true  ),
+			'#https?://(www\.)?speakerdeck\.com/.*#i'                  => array( 'https://speakerdeck.com/oembed.{format}',                   true  ),
+			'#https?://www\.facebook\.com/.*/posts/.*#i'               => array( 'https://www.facebook.com/plugins/post/oembed.json/',        true  ),
+			'#https?://www\.facebook\.com/.*/activity/.*#i'            => array( 'https://www.facebook.com/plugins/post/oembed.json/',        true  ),
+			'#https?://www\.facebook\.com/.*/photos/.*#i'              => array( 'https://www.facebook.com/plugins/post/oembed.json/',        true  ),
+			'#https?://www\.facebook\.com/photo(s/|\.php).*#i'         => array( 'https://www.facebook.com/plugins/post/oembed.json/',        true  ),
+			'#https?://www\.facebook\.com/permalink\.php.*#i'          => array( 'https://www.facebook.com/plugins/post/oembed.json/',        true  ),
+			'#https?://www\.facebook\.com/media/.*#i'                  => array( 'https://www.facebook.com/plugins/post/oembed.json/',        true  ),
+			'#https?://www\.facebook\.com/questions/.*#i'              => array( 'https://www.facebook.com/plugins/post/oembed.json/',        true  ),
+			'#https?://www\.facebook\.com/notes/.*#i'                  => array( 'https://www.facebook.com/plugins/post/oembed.json/',        true  ),
+			'#https?://www\.facebook\.com/.*/videos/.*#i'              => array( 'https://www.facebook.com/plugins/video/oembed.json/',       true  ),
+			'#https?://www\.facebook\.com/video\.php.*#i'              => array( 'https://www.facebook.com/plugins/video/oembed.json/',       true  ),
 		);
 
 		if ( ! empty( self::$early_providers['add'] ) ) {
@@ -160,13 +170,17 @@ class WP_oEmbed {
 		 * | Tumblr       | tumblr.com            |      Yes       | 4.2.0     |
 		 * | Kickstarter  | kickstarter.com       |      Yes       | 4.2.0     |
 		 * | Kickstarter  | kck.st                |      Yes       | 4.2.0     |
-		 * | Cloudup      | cloudup.com           |      Yes       | 4.4.0     |
+		 * | Cloudup      | cloudup.com           |      Yes       | 4.3.0     |
 		 * | ReverbNation | reverbnation.com      |      Yes       | 4.4.0     |
 		 * | VideoPress   | videopress.com        |      Yes       | 4.4.0     |
 		 * | Reddit       | reddit.com            |      Yes       | 4.4.0     |
 		 * | Speaker Deck | speakerdeck.com       |      Yes       | 4.4.0     |
 		 * | Twitter      | twitter.com/timelines |      Yes       | 4.5.0     |
 		 * | Twitter      | twitter.com/moments   |      Yes       | 4.5.0     |
+		 * | Facebook     | facebook.com          |      Yes       | 4.7.0     |
+		 * | Twitter      | twitter.com/user      |      Yes       | 4.7.0     |
+		 * | Twitter      | twitter.com/likes     |      Yes       | 4.7.0     |
+		 * | Twitter      | twitter.com/lists     |      Yes       | 4.7.0     |
 		 *
 		 * No longer supported providers:
 		 *
@@ -252,7 +266,7 @@ class WP_oEmbed {
 	/**
 	 * Adds an oEmbed provider.
 	 *
-	 * The provider is removed just-in-time when wp_oembed_add_provider() is called before
+	 * The provider is added just-in-time when wp_oembed_add_provider() is called before
 	 * the {@see 'plugins_loaded'} hook.
 	 *
 	 * The just-in-time addition is for the benefit of the {@see 'oembed_providers'} filter.
@@ -549,7 +563,7 @@ class WP_oEmbed {
 	 * @access private
 	 *
 	 * @param string $response_body
-	 * @return object|false
+	 * @return stdClass|false
 	 */
 	private function _parse_xml_body( $response_body ) {
 		if ( ! function_exists( 'simplexml_import_dom' ) || ! class_exists( 'DOMDocument', false ) )
@@ -677,22 +691,3 @@ class WP_oEmbed {
 		return str_replace( $tokens, $pre, $stripped );
 	}
 }
-
-/**
- * Returns the initialized WP_oEmbed object.
- *
- * @since 2.9.0
- * @access private
- *
- * @staticvar WP_oEmbed $wp_oembed
- *
- * @return WP_oEmbed object.
- */
-function _wp_oembed_get_object() {
-	static $wp_oembed = null;
-
-	if ( is_null( $wp_oembed ) ) {
-		$wp_oembed = new WP_oEmbed();
-	}
-	return $wp_oembed;
-}
diff --git a/wp-includes/class-phpmailer.php b/wp-includes/class-phpmailer.php
index b28c4ef2f..2c481c0da 100644
--- a/wp-includes/class-phpmailer.php
+++ b/wp-includes/class-phpmailer.php
@@ -1385,7 +1385,7 @@ class PHPMailer
     public function getSMTPInstance()
     {
         if (!is_object($this->smtp)) {
-        	require_once( 'class-smtp.php' );
+			require_once( 'class-smtp.php' );
             $this->smtp = new SMTP;
         }
         return $this->smtp;
diff --git a/wp-includes/class-pop3.php b/wp-includes/class-pop3.php
index ffbc377da..7416dd700 100644
--- a/wp-includes/class-pop3.php
+++ b/wp-includes/class-pop3.php
@@ -430,7 +430,7 @@ class POP3 {
         if(!$this->is_ok($reply))
         {
             //  The POP3 RSET command -never- gives a -ERR
-            //  response - if it ever does, something truely
+            //  response - if it ever does, something truly
             //  wild is going on.
 
             $this->ERROR = "POP3 reset: " . _("Error ") . "[$reply]";
diff --git a/wp-includes/class-requests.php b/wp-includes/class-requests.php
index 5a6257a8a..bb266189c 100644
--- a/wp-includes/class-requests.php
+++ b/wp-includes/class-requests.php
@@ -749,15 +749,17 @@ class Requests {
 	 * @return string Decoded body
 	 */
 	protected static function decode_chunked($data) {
-		if (!preg_match('/^([0-9a-f]+)[^\r\n]*\r\n/i', trim($data))) {
+		if (!preg_match('/^([0-9a-f]+)(?:;(?:[\w-]*)(?:=(?:(?:[\w-]*)*|"(?:[^\r\n])*"))?)*\r\n/i', trim($data))) {
 			return $data;
 		}
 
+
+
 		$decoded = '';
 		$encoded = $data;
 
 		while (true) {
-			$is_chunked = (bool) preg_match('/^([0-9a-f]+)[^\r\n]*\r\n/i', $encoded, $matches);
+			$is_chunked = (bool) preg_match('/^([0-9a-f]+)(?:;(?:[\w-]*)(?:=(?:(?:[\w-]*)*|"(?:[^\r\n])*"))?)*\r\n/i', $encoded, $matches);
 			if (!$is_chunked) {
 				// Looks like it's not chunked after all
 				return $data;
diff --git a/wp-includes/class-walker-comment.php b/wp-includes/class-walker-comment.php
index 72220aaf0..8383740b4 100644
--- a/wp-includes/class-walker-comment.php
+++ b/wp-includes/class-walker-comment.php
@@ -273,7 +273,12 @@ class Walker_Comment extends Walker {
 		<?php endif; ?>
 		<div class="comment-author vcard">
 			<?php if ( 0 != $args['avatar_size'] ) echo get_avatar( $comment, $args['avatar_size'] ); ?>
-			<?php printf( __( '<cite class="fn">%s</cite> <span class="says">says:</span>' ), get_comment_author_link( $comment ) ); ?>
+			<?php
+				/* translators: %s: comment author link */
+				printf( __( '%s <span class="says">says:</span>' ),
+					sprintf( '<cite class="fn">%s</cite>', get_comment_author_link( $comment ) )
+				);
+			?>
 		</div>
 		<?php if ( '0' == $comment->comment_approved ) : ?>
 		<em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ) ?></em>
@@ -325,7 +330,12 @@ class Walker_Comment extends Walker {
 				<footer class="comment-meta">
 					<div class="comment-author vcard">
 						<?php if ( 0 != $args['avatar_size'] ) echo get_avatar( $comment, $args['avatar_size'] ); ?>
-						<?php printf( __( '%s <span class="says">says:</span>' ), sprintf( '<b class="fn">%s</b>', get_comment_author_link( $comment ) ) ); ?>
+						<?php
+							/* translators: %s: comment author link */
+							printf( __( '%s <span class="says">says:</span>' ),
+								sprintf( '<b class="fn">%s</b>', get_comment_author_link( $comment ) )
+							);
+						?>
 					</div><!-- .comment-author -->
 
 					<div class="comment-metadata">
diff --git a/wp-includes/class-walker-nav-menu.php b/wp-includes/class-walker-nav-menu.php
index 43eaa91c6..4c1a1f2c9 100644
--- a/wp-includes/class-walker-nav-menu.php
+++ b/wp-includes/class-walker-nav-menu.php
@@ -45,13 +45,20 @@ class Walker_Nav_Menu extends Walker {
 	 *
 	 * @see Walker::start_lvl()
 	 *
-	 * @param string $output Passed by reference. Used to append additional content.
-	 * @param int    $depth  Depth of menu item. Used for padding.
-	 * @param array  $args   An array of wp_nav_menu() arguments.
+	 * @param string   $output Passed by reference. Used to append additional content.
+	 * @param int      $depth  Depth of menu item. Used for padding.
+	 * @param stdClass $args   An object of wp_nav_menu() arguments.
 	 */
 	public function start_lvl( &$output, $depth = 0, $args = array() ) {
-		$indent = str_repeat("\t", $depth);
-		$output .= "\n$indent<ul class=\"sub-menu\">\n";
+		if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
+			$t = '';
+			$n = '';
+		} else {
+			$t = "\t";
+			$n = "\n";
+		}
+		$indent = str_repeat( $t, $depth );
+		$output .= "{$n}{$indent}<ul class=\"sub-menu\">{$n}";
 	}
 
 	/**
@@ -61,13 +68,20 @@ class Walker_Nav_Menu extends Walker {
 	 *
 	 * @see Walker::end_lvl()
 	 *
-	 * @param string $output Passed by reference. Used to append additional content.
-	 * @param int    $depth  Depth of menu item. Used for padding.
-	 * @param array  $args   An array of wp_nav_menu() arguments.
+	 * @param string   $output Passed by reference. Used to append additional content.
+	 * @param int      $depth  Depth of menu item. Used for padding.
+	 * @param stdClass $args   An object of wp_nav_menu() arguments.
 	 */
 	public function end_lvl( &$output, $depth = 0, $args = array() ) {
-		$indent = str_repeat("\t", $depth);
-		$output .= "$indent</ul>\n";
+		if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
+			$t = '';
+			$n = '';
+		} else {
+			$t = "\t";
+			$n = "\n";
+		}
+		$indent = str_repeat( $t, $depth );
+		$output .= "$indent</ul>{$n}";
 	}
 
 	/**
@@ -78,14 +92,21 @@ class Walker_Nav_Menu extends Walker {
 	 *
 	 * @see Walker::start_el()
 	 *
-	 * @param string $output Passed by reference. Used to append additional content.
-	 * @param object $item   Menu item data object.
-	 * @param int    $depth  Depth of menu item. Used for padding.
-	 * @param array  $args   An array of wp_nav_menu() arguments.
-	 * @param int    $id     Current item ID.
+	 * @param string   $output Passed by reference. Used to append additional content.
+	 * @param WP_Post  $item   Menu item data object.
+	 * @param int      $depth  Depth of menu item. Used for padding.
+	 * @param stdClass $args   An object of wp_nav_menu() arguments.
+	 * @param int      $id     Current item ID.
 	 */
 	public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
-		$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
+		if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
+			$t = '';
+			$n = '';
+		} else {
+			$t = "\t";
+			$n = "\n";
+		}
+		$indent = ( $depth ) ? str_repeat( $t, $depth ) : '';
 
 		$classes = empty( $item->classes ) ? array() : (array) $item->classes;
 		$classes[] = 'menu-item-' . $item->ID;
@@ -95,9 +116,9 @@ class Walker_Nav_Menu extends Walker {
 		 *
 		 * @since 4.4.0
 		 *
-		 * @param array  $args  An array of arguments.
-		 * @param object $item  Menu item data object.
-		 * @param int    $depth Depth of menu item. Used for padding.
+		 * @param stdClass $args  An object of wp_nav_menu() arguments.
+		 * @param WP_Post  $item  Menu item data object.
+		 * @param int      $depth Depth of menu item. Used for padding.
 		 */
 		$args = apply_filters( 'nav_menu_item_args', $args, $item, $depth );
 
@@ -107,10 +128,10 @@ class Walker_Nav_Menu extends Walker {
 		 * @since 3.0.0
 		 * @since 4.1.0 The `$depth` parameter was added.
 		 *
-		 * @param array  $classes The CSS classes that are applied to the menu item's `<li>` element.
-		 * @param object $item    The current menu item.
-		 * @param array  $args    An array of wp_nav_menu() arguments.
-		 * @param int    $depth   Depth of menu item. Used for padding.
+		 * @param array    $classes The CSS classes that are applied to the menu item's `<li>` element.
+		 * @param WP_Post  $item    The current menu item.
+		 * @param stdClass $args    An object of wp_nav_menu() arguments.
+		 * @param int      $depth   Depth of menu item. Used for padding.
 		 */
 		$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
 		$class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';
@@ -121,10 +142,10 @@ class Walker_Nav_Menu extends Walker {
 		 * @since 3.0.1
 		 * @since 4.1.0 The `$depth` parameter was added.
 		 *
-		 * @param string $menu_id The ID that is applied to the menu item's `<li>` element.
-		 * @param object $item    The current menu item.
-		 * @param array  $args    An array of wp_nav_menu() arguments.
-		 * @param int    $depth   Depth of menu item. Used for padding.
+		 * @param string   $menu_id The ID that is applied to the menu item's `<li>` element.
+		 * @param WP_Post  $item    The current menu item.
+		 * @param stdClass $args    An object of wp_nav_menu() arguments.
+		 * @param int      $depth   Depth of menu item. Used for padding.
 		 */
 		$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args, $depth );
 		$id = $id ? ' id="' . esc_attr( $id ) . '"' : '';
@@ -151,9 +172,9 @@ class Walker_Nav_Menu extends Walker {
 		 *     @type string $rel    The rel attribute.
 		 *     @type string $href   The href attribute.
 		 * }
-		 * @param object $item  The current menu item.
-		 * @param array  $args  An array of wp_nav_menu() arguments.
-		 * @param int    $depth Depth of menu item. Used for padding.
+		 * @param WP_Post  $item  The current menu item.
+		 * @param stdClass $args  An object of wp_nav_menu() arguments.
+		 * @param int      $depth Depth of menu item. Used for padding.
 		 */
 		$atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth );
 
@@ -173,10 +194,10 @@ class Walker_Nav_Menu extends Walker {
 		 *
 		 * @since 4.4.0
 		 *
-		 * @param string $title The menu item's title.
-		 * @param object $item  The current menu item.
-		 * @param array  $args  An array of wp_nav_menu() arguments.
-		 * @param int    $depth Depth of menu item. Used for padding.
+		 * @param string   $title The menu item's title.
+		 * @param WP_Post  $item  The current menu item.
+		 * @param stdClass $args  An object of wp_nav_menu() arguments.
+		 * @param int      $depth Depth of menu item. Used for padding.
 		 */
 		$title = apply_filters( 'nav_menu_item_title', $title, $item, $args, $depth );
 
@@ -195,10 +216,10 @@ class Walker_Nav_Menu extends Walker {
 		 *
 		 * @since 3.0.0
 		 *
-		 * @param string $item_output The menu item's starting HTML output.
-		 * @param object $item        Menu item data object.
-		 * @param int    $depth       Depth of menu item. Used for padding.
-		 * @param array  $args        An array of wp_nav_menu() arguments.
+		 * @param string   $item_output The menu item's starting HTML output.
+		 * @param WP_Post  $item        Menu item data object.
+		 * @param int      $depth       Depth of menu item. Used for padding.
+		 * @param stdClass $args        An object of wp_nav_menu() arguments.
 		 */
 		$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
 	}
@@ -210,13 +231,20 @@ class Walker_Nav_Menu extends Walker {
 	 *
 	 * @see Walker::end_el()
 	 *
-	 * @param string $output Passed by reference. Used to append additional content.
-	 * @param object $item   Page data object. Not used.
-	 * @param int    $depth  Depth of page. Not Used.
-	 * @param array  $args   An array of wp_nav_menu() arguments.
+	 * @param string   $output Passed by reference. Used to append additional content.
+	 * @param WP_Post  $item   Page data object. Not used.
+	 * @param int      $depth  Depth of page. Not Used.
+	 * @param stdClass $args   An object of wp_nav_menu() arguments.
 	 */
 	public function end_el( &$output, $item, $depth = 0, $args = array() ) {
-		$output .= "</li>\n";
+		if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) {
+			$t = '';
+			$n = '';
+		} else {
+			$t = "\t";
+			$n = "\n";
+		}
+		$output .= "</li>{$n}";
 	}
 
 } // Walker_Nav_Menu
diff --git a/wp-includes/class-walker-page.php b/wp-includes/class-walker-page.php
index fd55ccee4..3fcaa67a8 100644
--- a/wp-includes/class-walker-page.php
+++ b/wp-includes/class-walker-page.php
@@ -49,12 +49,19 @@ class Walker_Page extends Walker {
 	 *
 	 * @param string $output Passed by reference. Used to append additional content.
 	 * @param int    $depth  Optional. Depth of page. Used for padding. Default 0.
-	 * @param array  $args   Optional. Arguments for outputing the next level.
+	 * @param array  $args   Optional. Arguments for outputting the next level.
 	 *                       Default empty array.
 	 */
 	public function start_lvl( &$output, $depth = 0, $args = array() ) {
-		$indent = str_repeat("\t", $depth);
-		$output .= "\n$indent<ul class='children'>\n";
+		if ( 'preserve' === $args['item_spacing'] ) {
+			$t = "\t";
+			$n = "\n";
+		} else {
+			$t = '';
+			$n = '';
+		}
+		$indent = str_repeat( $t, $depth );
+		$output .= "{$n}{$indent}<ul class='children'>{$n}";
 	}
 
 	/**
@@ -71,8 +78,15 @@ class Walker_Page extends Walker {
 	 *                       Default empty array.
 	 */
 	public function end_lvl( &$output, $depth = 0, $args = array() ) {
-		$indent = str_repeat("\t", $depth);
-		$output .= "$indent</ul>\n";
+		if ( 'preserve' === $args['item_spacing'] ) {
+			$t = "\t";
+			$n = "\n";
+		} else {
+			$t = '';
+			$n = '';
+		}
+		$indent = str_repeat( $t, $depth );
+		$output .= "{$indent}</ul>{$n}";
 	}
 
 	/**
@@ -89,8 +103,15 @@ class Walker_Page extends Walker {
 	 * @param int     $current_page Optional. Page ID. Default 0.
 	 */
 	public function start_el( &$output, $page, $depth = 0, $args = array(), $current_page = 0 ) {
+		if ( 'preserve' === $args['item_spacing'] ) {
+			$t = "\t";
+			$n = "\n";
+		} else {
+			$t = '';
+			$n = '';
+		}
 		if ( $depth ) {
-			$indent = str_repeat( "\t", $depth );
+			$indent = str_repeat( $t, $depth );
 		} else {
 			$indent = '';
 		}
@@ -175,7 +196,14 @@ class Walker_Page extends Walker {
 	 * @param array   $args   Optional. Array of arguments. Default empty array.
 	 */
 	public function end_el( &$output, $page, $depth = 0, $args = array() ) {
-		$output .= "</li>\n";
+		if ( 'preserve' === $args['item_spacing'] ) {
+			$t = "\t";
+			$n = "\n";
+		} else {
+			$t = '';
+			$n = '';
+		}
+		$output .= "</li>{$n}";
 	}
 
 }
diff --git a/wp-includes/class-wp-ajax-response.php b/wp-includes/class-wp-ajax-response.php
index f02d24ee7..a86d8dd53 100644
--- a/wp-includes/class-wp-ajax-response.php
+++ b/wp-includes/class-wp-ajax-response.php
@@ -149,7 +149,7 @@ class WP_Ajax_Response {
 		foreach ( (array) $this->responses as $response )
 			echo $response;
 		echo '</wp_ajax>';
-		if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
+		if ( wp_doing_ajax() )
 			wp_die();
 		else
 			die();
diff --git a/wp-includes/class-wp-comment-query.php b/wp-includes/class-wp-comment-query.php
index 0920ca229..ef8b6d545 100644
--- a/wp-includes/class-wp-comment-query.php
+++ b/wp-includes/class-wp-comment-query.php
@@ -182,7 +182,7 @@ class WP_Comment_Query {
 	 *     @type array        $meta_query                Meta query clauses to limit retrieved comments by.
 	 *                                                   See WP_Meta_Query. Default empty.
 	 *     @type int          $number                    Maximum number of comments to retrieve.
-	 *                                                   Default null (no limit).
+	 *                                                   Default empty (no limit).
 	 *     @type int          $offset                    Number of comments to offset the query. Used to build
 	 *                                                   LIMIT clause. Default 0.
 	 *     @type bool         $no_found_rows             Whether to disable the `SQL_CALC_FOUND_ROWS` query.
@@ -393,11 +393,8 @@ class WP_Comment_Query {
 
 		// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
 		$key = md5( serialize( wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) ) ) );
-		$last_changed = wp_cache_get( 'last_changed', 'comment' );
-		if ( ! $last_changed ) {
-			$last_changed = microtime();
-			wp_cache_set( 'last_changed', $last_changed, 'comment' );
-		}
+		$last_changed = wp_cache_get_last_changed( 'comment' );
+
 
 		$cache_key   = "get_comments:$key:$last_changed";
 		$cache_value = wp_cache_get( $cache_key, 'comment' );
@@ -972,11 +969,7 @@ class WP_Comment_Query {
 		}
 
 		$key = md5( serialize( wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) ) ) );
-		$last_changed = wp_cache_get( 'last_changed', 'comment' );
-		if ( ! $last_changed ) {
-			$last_changed = microtime();
-			wp_cache_set( 'last_changed', $last_changed, 'comment' );
-		}
+		$last_changed = wp_cache_get_last_changed( 'comment' );
 
 		// Fetch an entire level of the descendant tree at a time.
 		$level = 0;
@@ -995,8 +988,18 @@ class WP_Comment_Query {
 			}
 
 			if ( $uncached_parent_ids ) {
-				$where = 'WHERE ' . $_where . ' AND comment_parent IN (' . implode( ',', array_map( 'intval', $uncached_parent_ids ) ) . ')';
-				$level_comments = $wpdb->get_results( "SELECT $wpdb->comments.comment_ID, $wpdb->comments.comment_parent {$this->sql_clauses['from']} {$where} {$this->sql_clauses['groupby']} ORDER BY comment_date_gmt ASC, comment_ID ASC" );
+				// Fetch this level of comments.
+				$parent_query_args = $this->query_vars;
+				foreach ( $exclude_keys as $exclude_key ) {
+					$parent_query_args[ $exclude_key ] = '';
+				}
+				$parent_query_args['parent__in']    = $uncached_parent_ids;
+				$parent_query_args['no_found_rows'] = true;
+				$parent_query_args['hierarchical']  = false;
+				$parent_query_args['offset']        = 0;
+				$parent_query_args['number']        = 0;
+
+				$level_comments = get_comments( $parent_query_args );
 
 				// Cache parent-child relationships.
 				$parent_map = array_fill_keys( $uncached_parent_ids, array() );
@@ -1017,7 +1020,7 @@ class WP_Comment_Query {
 
 		// Prime comment caches for non-top-level comments.
 		$descendant_ids = array();
-		for ( $i = 1; $i < count( $levels ); $i++ ) {
+		for ( $i = 1, $c = count( $levels ); $i < $c; $i++ ) {
 			$descendant_ids = array_merge( $descendant_ids, $levels[ $i ] );
 		}
 
diff --git a/wp-includes/class-wp-comment.php b/wp-includes/class-wp-comment.php
index 0e9f88a35..80ef9bb1d 100644
--- a/wp-includes/class-wp-comment.php
+++ b/wp-includes/class-wp-comment.php
@@ -191,11 +191,12 @@ final class WP_Comment {
 	public static function get_instance( $id ) {
 		global $wpdb;
 
-		$comment_id = (int) $id;
-		if ( ! $comment_id ) {
+		if ( ! is_numeric( $id ) || $id != floor( $id ) || ! $id ) {
 			return false;
 		}
 
+		$comment_id = (int) $id;
+
 		$_comment = wp_cache_get( $comment_id, 'comment' );
 
 		if ( ! $_comment ) {
diff --git a/wp-includes/class-wp-customize-control.php b/wp-includes/class-wp-customize-control.php
index 1920140ff..07c6dcfce 100644
--- a/wp-includes/class-wp-customize-control.php
+++ b/wp-includes/class-wp-customize-control.php
@@ -114,6 +114,15 @@ class WP_Customize_Control {
 	 */
 	public $input_attrs = array();
 
+	/**
+	 * Show UI for adding new content, currently only used for the dropdown-pages control.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $allow_addition = false;
+
 	/**
 	 * @deprecated It is better to just call the json() method
 	 * @access public
@@ -296,6 +305,10 @@ class WP_Customize_Control {
 		$this->json['label'] = $this->label;
 		$this->json['description'] = $this->description;
 		$this->json['instanceNumber'] = $this->instance_number;
+
+		if ( 'dropdown-pages' === $this->type ) {
+			$this->json['allow_addition'] = $this->allow_addition;
+		}
 	}
 
 	/**
@@ -383,7 +396,7 @@ class WP_Customize_Control {
 		 *
 		 * @param WP_Customize_Control $this WP_Customize_Control instance.
 		 */
-		do_action( 'customize_render_control_' . $this->id, $this );
+		do_action( "customize_render_control_{$this->id}", $this );
 
 		$this->render();
 	}
@@ -444,7 +457,7 @@ class WP_Customize_Control {
 	/**
 	 * Render the control's content.
 	 *
-	 * Allows the content to be overriden without having to rewrite the wrapper in `$this::render()`.
+	 * Allows the content to be overridden without having to rewrite the wrapper in `$this::render()`.
 	 *
 	 * Supports basic input types `text`, `checkbox`, `textarea`, `radio`, `select` and `dropdown-pages`.
 	 * Additional input types such as `email`, `url`, `number`, `hidden` and `date` are supported implicitly.
@@ -519,7 +532,7 @@ class WP_Customize_Control {
 					if ( ! empty( $this->description ) ) : ?>
 						<span class="description customize-control-description"><?php echo $this->description; ?></span>
 					<?php endif; ?>
-					<textarea rows="5" <?php $this->link(); ?>><?php echo esc_textarea( $this->value() ); ?></textarea>
+					<textarea rows="5" <?php $this->input_attrs(); ?> <?php $this->link(); ?>><?php echo esc_textarea( $this->value() ); ?></textarea>
 				</label>
 				<?php
 				break;
@@ -533,22 +546,58 @@ class WP_Customize_Control {
 					<span class="description customize-control-description"><?php echo $this->description; ?></span>
 				<?php endif; ?>
 
-				<?php $dropdown = wp_dropdown_pages(
+				<?php
+				$dropdown_name = '_customize-dropdown-pages-' . $this->id;
+				$show_option_none = __( '&mdash; Select &mdash;' );
+				$option_none_value = '0';
+				$dropdown = wp_dropdown_pages(
 					array(
-						'name'              => '_customize-dropdown-pages-' . $this->id,
+						'name'              => $dropdown_name,
 						'echo'              => 0,
-						'show_option_none'  => __( '&mdash; Select &mdash;' ),
-						'option_none_value' => '0',
+						'show_option_none'  => $show_option_none,
+						'option_none_value' => $option_none_value,
 						'selected'          => $this->value(),
 					)
 				);
+				if ( empty( $dropdown ) ) {
+					$dropdown = sprintf( '<select id="%1$s" name="%1$s">', esc_attr( $dropdown_name ) );
+					$dropdown .= sprintf( '<option value="%1$s">%2$s</option>', esc_attr( $option_none_value ), esc_html( $show_option_none ) );
+					$dropdown .= '</select>';
+				}
 
 				// Hackily add in the data link parameter.
 				$dropdown = str_replace( '<select', '<select ' . $this->get_link(), $dropdown );
+
+				// Even more hacikly add auto-draft page stubs.
+				// @todo Eventually this should be removed in favor of the pages being injected into the underlying get_pages() call. See <https://github.com/xwp/wp-customize-posts/pull/250>.
+				$nav_menus_created_posts_setting = $this->manager->get_setting( 'nav_menus_created_posts' );
+				if ( $nav_menus_created_posts_setting && current_user_can( 'publish_pages' ) ) {
+					$auto_draft_page_options = '';
+					foreach ( $nav_menus_created_posts_setting->value() as $auto_draft_page_id ) {
+						$post = get_post( $auto_draft_page_id );
+						if ( $post && 'page' === $post->post_type ) {
+							$auto_draft_page_options .= sprintf( '<option value="%1$s">%2$s</option>', esc_attr( $post->ID ), esc_html( $post->post_title ) );
+						}
+					}
+					if ( $auto_draft_page_options ) {
+						$dropdown = str_replace( '</select>', $auto_draft_page_options . '</select>', $dropdown );
+					}
+				}
+
 				echo $dropdown;
 				?>
 				</label>
-				<?php
+				<?php if ( $this->allow_addition && current_user_can( 'publish_pages' ) && current_user_can( 'edit_theme_options' ) ) : // Currently tied to menus functionality. ?>
+					<button type="button" class="button-link add-new-toggle"><?php
+						/* translators: %s: add new page label */
+						printf( __( '+ %s' ), get_post_type_object( 'page' )->labels->add_new_item );
+					?></button>
+					<div class="new-content-item">
+						<label for="create-input-<?php echo $this->id; ?>"><span class="screen-reader-text"><?php _e( 'New page title' ); ?></span></label>
+						<input type="text" id="create-input-<?php echo $this->id; ?>" class="create-item-input" placeholder="<?php esc_attr_e( 'New page title&hellip;' ); ?>">
+						<button type="button" class="button add-content"><?php _e( 'Add' ); ?></button>
+					</div>
+				<?php endif;
 				break;
 			default:
 				?>
@@ -614,6 +663,9 @@ require_once( ABSPATH . WPINC . '/customize/class-wp-customize-image-control.php
 /** WP_Customize_Background_Image_Control class */
 require_once( ABSPATH . WPINC . '/customize/class-wp-customize-background-image-control.php' );
 
+/** WP_Customize_Background_Position_Control class */
+require_once( ABSPATH . WPINC . '/customize/class-wp-customize-background-position-control.php' );
+
 /** WP_Customize_Cropped_Image_Control class */
 require_once( ABSPATH . WPINC . '/customize/class-wp-customize-cropped-image-control.php' );
 
diff --git a/wp-includes/class-wp-customize-manager.php b/wp-includes/class-wp-customize-manager.php
index 09e48b290..127d572be 100644
--- a/wp-includes/class-wp-customize-manager.php
+++ b/wp-includes/class-wp-customize-manager.php
@@ -129,15 +129,6 @@ final class WP_Customize_Manager {
 	 */
 	protected $controls = array();
 
-	/**
-	 * Return value of check_ajax_referer() in customize_preview_init() method.
-	 *
-	 * @since 3.5.0
-	 * @access protected
-	 * @var false|int
-	 */
-	protected $nonce_tick;
-
 	/**
 	 * Panel types that may be rendered from JS templates.
 	 *
@@ -192,6 +183,15 @@ final class WP_Customize_Manager {
 	 */
 	protected $autofocus = array();
 
+	/**
+	 * Messenger channel.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $messenger_channel;
+
 	/**
 	 * Unsanitized values for Customize Settings parsed from $_POST['customized'].
 	 *
@@ -199,12 +199,76 @@ final class WP_Customize_Manager {
 	 */
 	private $_post_values;
 
+	/**
+	 * Changeset UUID.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var string
+	 */
+	private $_changeset_uuid;
+
+	/**
+	 * Changeset post ID.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var int|false
+	 */
+	private $_changeset_post_id;
+
+	/**
+	 * Changeset data loaded from a customize_changeset post.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var array
+	 */
+	private $_changeset_data;
+
 	/**
 	 * Constructor.
 	 *
 	 * @since 3.4.0
+	 * @since 4.7.0 Added $args param.
+	 *
+	 * @param array $args {
+	 *     Args.
+	 *
+	 *     @type string $changeset_uuid    Changeset UUID, the post_name for the customize_changeset post containing the customized state. Defaults to new UUID.
+	 *     @type string $theme             Theme to be previewed (for theme switch). Defaults to customize_theme or theme query params.
+	 *     @type string $messenger_channel Messenger channel. Defaults to customize_messenger_channel query param.
+	 * }
 	 */
-	public function __construct() {
+	public function __construct( $args = array() ) {
+
+		$args = array_merge(
+			array_fill_keys( array( 'changeset_uuid', 'theme', 'messenger_channel' ), null ),
+			$args
+		);
+
+		// Note that the UUID format will be validated in the setup_theme() method.
+		if ( ! isset( $args['changeset_uuid'] ) ) {
+			$args['changeset_uuid'] = wp_generate_uuid4();
+		}
+
+		// The theme and messenger_channel should be supplied via $args, but they are also looked at in the $_REQUEST global here for back-compat.
+		if ( ! isset( $args['theme'] ) ) {
+			if ( isset( $_REQUEST['customize_theme'] ) ) {
+				$args['theme'] = wp_unslash( $_REQUEST['customize_theme'] );
+			} elseif ( isset( $_REQUEST['theme'] ) ) { // Deprecated.
+				$args['theme'] = wp_unslash( $_REQUEST['theme'] );
+			}
+		}
+		if ( ! isset( $args['messenger_channel'] ) && isset( $_REQUEST['customize_messenger_channel'] ) ) {
+			$args['messenger_channel'] = sanitize_key( wp_unslash( $_REQUEST['customize_messenger_channel'] ) );
+		}
+
+		$this->original_stylesheet = get_stylesheet();
+		$this->theme = wp_get_theme( $args['theme'] );
+		$this->messenger_channel = $args['messenger_channel'];
+		$this->_changeset_uuid = $args['changeset_uuid'];
+
 		require_once( ABSPATH . WPINC . '/class-wp-customize-setting.php' );
 		require_once( ABSPATH . WPINC . '/class-wp-customize-panel.php' );
 		require_once( ABSPATH . WPINC . '/class-wp-customize-section.php' );
@@ -215,6 +279,7 @@ final class WP_Customize_Manager {
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-upload-control.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-image-control.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-background-image-control.php' );
+		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-background-position-control.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-cropped-image-control.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-site-icon-control.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-header-image-control.php' );
@@ -235,6 +300,7 @@ final class WP_Customize_Manager {
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-nav-menu-section.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-new-menu-section.php' );
 
+		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-custom-css-setting.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-filter-setting.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-header-image-setting.php' );
 		require_once( ABSPATH . WPINC . '/customize/class-wp-customize-background-image-setting.php' );
@@ -271,14 +337,9 @@ final class WP_Customize_Manager {
 			$this->nav_menus = new WP_Customize_Nav_Menus( $this );
 		}
 
-		add_filter( 'wp_die_handler', array( $this, 'wp_die_handler' ) );
-
 		add_action( 'setup_theme', array( $this, 'setup_theme' ) );
 		add_action( 'wp_loaded',   array( $this, 'wp_loaded' ) );
 
-		// Run wp_redirect_status late to make sure we override the status last.
-		add_action( 'wp_redirect_status', array( $this, 'wp_redirect_status' ), 1000 );
-
 		// Do not spawn cron (especially the alternate cron) while running the Customizer.
 		remove_action( 'init', 'wp_cron' );
 
@@ -300,6 +361,9 @@ final class WP_Customize_Manager {
 		add_action( 'customize_controls_print_footer_scripts', array( $this, 'render_section_templates' ), 1 );
 		add_action( 'customize_controls_print_footer_scripts', array( $this, 'render_control_templates' ), 1 );
 
+		// Export header video settings with the partial response.
+		add_filter( 'customize_render_partials_response', array( $this, 'export_header_video_settings' ), 10, 3 );
+
 		// Export the settings to JS via the _wpCustomizeSettings variable.
 		add_action( 'customize_controls_print_footer_scripts', array( $this, 'customize_pane_settings' ), 1000 );
 	}
@@ -315,8 +379,7 @@ final class WP_Customize_Manager {
 	 * @return bool True if it's an Ajax request, false otherwise.
 	 */
 	public function doing_ajax( $action = null ) {
-		$doing_ajax = ( defined( 'DOING_AJAX' ) && DOING_AJAX );
-		if ( ! $doing_ajax ) {
+		if ( ! wp_doing_ajax() ) {
 			return false;
 		}
 
@@ -341,7 +404,7 @@ final class WP_Customize_Manager {
 	 * @param mixed $message UI message
 	 */
 	protected function wp_die( $ajax_message, $message = null ) {
-		if ( $this->doing_ajax() || isset( $_POST['customized'] ) ) {
+		if ( $this->doing_ajax() ) {
 			wp_die( $ajax_message );
 		}
 
@@ -349,6 +412,29 @@ final class WP_Customize_Manager {
 			$message = __( 'Cheatin&#8217; uh?' );
 		}
 
+		if ( $this->messenger_channel ) {
+			ob_start();
+			wp_enqueue_scripts();
+			wp_print_scripts( array( 'customize-base' ) );
+
+			$settings = array(
+				'messengerArgs' => array(
+					'channel' => $this->messenger_channel,
+					'url' => wp_customize_url(),
+				),
+				'error' => $ajax_message,
+			);
+			?>
+			<script>
+			( function( api, settings ) {
+				var preview = new api.Messenger( settings.messengerArgs );
+				preview.send( 'iframe-loading-error', settings.error );
+			} )( wp.customize, <?php echo wp_json_encode( $settings ) ?> );
+			</script>
+			<?php
+			$message .= ob_get_clean();
+		}
+
 		wp_die( $message );
 	}
 
@@ -356,10 +442,13 @@ final class WP_Customize_Manager {
 	 * Return the Ajax wp_die() handler if it's a customized request.
 	 *
 	 * @since 3.4.0
+	 * @deprecated 4.7.0
 	 *
-	 * @return string
+	 * @return callable Die handler.
 	 */
 	public function wp_die_handler() {
+		_deprecated_function( __METHOD__, '4.7.0' );
+
 		if ( $this->doing_ajax() || isset( $_POST['customized'] ) ) {
 			return '_ajax_wp_die_handler';
 		}
@@ -375,24 +464,43 @@ final class WP_Customize_Manager {
 	 * @since 3.4.0
 	 */
 	public function setup_theme() {
-		send_origin_headers();
+		global $pagenow;
 
-		$doing_ajax_or_is_customized = ( $this->doing_ajax() || isset( $_POST['customized'] ) );
-		if ( is_admin() && ! $doing_ajax_or_is_customized ) {
-			auth_redirect();
-		} elseif ( $doing_ajax_or_is_customized && ! is_user_logged_in() ) {
-			$this->wp_die( 0, __( 'You must be logged in to complete this action.' ) );
+		// Check permissions for customize.php access since this method is called before customize.php can run any code,
+		if ( 'customize.php' === $pagenow && ! current_user_can( 'customize' ) ) {
+			if ( ! is_user_logged_in() ) {
+				auth_redirect();
+			} else {
+				wp_die(
+					'<h1>' . __( 'Cheatin&#8217; uh?' ) . '</h1>' .
+					'<p>' . __( 'Sorry, you are not allowed to customize this site.' ) . '</p>',
+					403
+				);
+			}
+			return;
 		}
 
-		show_admin_bar( false );
+		if ( ! preg_match( '/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/', $this->_changeset_uuid ) ) {
+			$this->wp_die( -1, __( 'Invalid changeset UUID' ) );
+		}
 
-		if ( ! current_user_can( 'customize' ) ) {
-			$this->wp_die( -1, __( 'Sorry, you are not allowed to customize this site.' ) );
+		/*
+		 * If unauthenticated then require a valid changeset UUID to load the preview.
+		 * In this way, the UUID serves as a secret key. If the messenger channel is present,
+		 * then send unauthenticated code to prompt re-auth.
+		 */
+		if ( ! current_user_can( 'customize' ) && ! $this->changeset_post_id() ) {
+			$this->wp_die( $this->messenger_channel ? 0 : -1, __( 'Non-existent changeset UUID.' ) );
 		}
 
-		$this->original_stylesheet = get_stylesheet();
+		if ( ! headers_sent() ) {
+			send_origin_headers();
+		}
 
-		$this->theme = wp_get_theme( isset( $_REQUEST['theme'] ) ? $_REQUEST['theme'] : null );
+		// Hide the admin bar if we're embedded in the customizer iframe.
+		if ( $this->messenger_channel ) {
+			show_admin_bar( false );
+		}
 
 		if ( $this->is_theme_active() ) {
 			// Once the theme is loaded, we'll validate it.
@@ -415,6 +523,15 @@ final class WP_Customize_Manager {
 			}
 		}
 
+		/*
+		 * Import theme starter content for fresh installs when landing in the customizer.
+		 * Import starter content at after_setup_theme:100 so that any
+		 * add_theme_support( 'starter-content' ) calls will have been made.
+		 */
+		if ( get_option( 'fresh_site' ) && 'customize.php' === $pagenow ) {
+			add_action( 'after_setup_theme', array( $this, 'import_theme_starter_content' ), 100 );
+		}
+
 		$this->start_previewing_theme();
 	}
 
@@ -507,6 +624,18 @@ final class WP_Customize_Manager {
 		do_action( 'stop_previewing_theme', $this );
 	}
 
+	/**
+	 * Get the changeset UUID.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return string UUID.
+	 */
+	public function changeset_uuid() {
+		return $this->_changeset_uuid;
+	}
+
 	/**
 	 * Get the theme being customized.
 	 *
@@ -604,8 +733,23 @@ final class WP_Customize_Manager {
 		 */
 		do_action( 'customize_register', $this );
 
-		if ( $this->is_preview() && ! is_admin() )
+		/*
+		 * Note that settings must be previewed here even outside the customizer preview
+		 * and also in the customizer pane itself. This is to enable loading an existing
+		 * changeset into the customizer. Previewing the settings only has to be prevented
+		 * in the case of a customize_save action because then update_option()
+		 * may short-circuit because it will detect that there are no changes to
+		 * make.
+		 */
+		if ( ! $this->doing_ajax( 'customize_save' ) ) {
+			foreach ( $this->settings as $setting ) {
+				$setting->preview();
+			}
+		}
+
+		if ( $this->is_preview() && ! is_admin() ) {
 			$this->customize_preview_init();
+		}
 	}
 
 	/**
@@ -615,251 +759,1064 @@ final class WP_Customize_Manager {
 	 * Instead, the JS will sniff out the location header.
 	 *
 	 * @since 3.4.0
+	 * @deprecated 4.7.0
 	 *
-	 * @param $status
+	 * @param int $status Status.
 	 * @return int
 	 */
 	public function wp_redirect_status( $status ) {
-		if ( $this->is_preview() && ! is_admin() )
+		_deprecated_function( __FUNCTION__, '4.7.0' );
+
+		if ( $this->is_preview() && ! is_admin() ) {
 			return 200;
+		}
 
 		return $status;
 	}
 
 	/**
-	 * Parse the incoming $_POST['customized'] JSON data and store the unsanitized
-	 * settings for subsequent post_value() lookups.
+	 * Find the changeset post ID for a given changeset UUID.
 	 *
-	 * @since 4.1.1
+	 * @since 4.7.0
+	 * @access public
 	 *
-	 * @return array
+	 * @param string $uuid Changeset UUID.
+	 * @return int|null Returns post ID on success and null on failure.
 	 */
-	public function unsanitized_post_values() {
-		if ( ! isset( $this->_post_values ) ) {
-			if ( isset( $_POST['customized'] ) ) {
-				$this->_post_values = json_decode( wp_unslash( $_POST['customized'] ), true );
-			}
-			if ( empty( $this->_post_values ) ) { // if not isset or if JSON error
-				$this->_post_values = array();
-			}
+	public function find_changeset_post_id( $uuid ) {
+		$cache_group = 'customize_changeset_post';
+		$changeset_post_id = wp_cache_get( $uuid, $cache_group );
+		if ( $changeset_post_id && 'customize_changeset' === get_post_type( $changeset_post_id ) ) {
+			return $changeset_post_id;
 		}
-		if ( empty( $this->_post_values ) ) {
-			return array();
-		} else {
-			return $this->_post_values;
+
+		$changeset_post_query = new WP_Query( array(
+			'post_type' => 'customize_changeset',
+			'post_status' => get_post_stati(),
+			'name' => $uuid,
+			'posts_per_page' => 1,
+			'no_found_rows' => true,
+			'cache_results' => true,
+			'update_post_meta_cache' => false,
+			'update_term_meta_cache' => false,
+		) );
+		if ( ! empty( $changeset_post_query->posts ) ) {
+			// Note: 'fields'=>'ids' is not being used in order to cache the post object as it will be needed.
+			$changeset_post_id = $changeset_post_query->posts[0]->ID;
+			wp_cache_set( $this->_changeset_uuid, $changeset_post_id, $cache_group );
+			return $changeset_post_id;
 		}
+
+		return null;
 	}
 
 	/**
-	 * Returns the sanitized value for a given setting from the request's POST data.
+	 * Get the changeset post id for the loaded changeset.
 	 *
-	 * @since 3.4.0
-	 * @since 4.1.1 Introduced the `$default` parameter.
-	 * @since 4.6.0 `$default` is now returned early when the setting post value is invalid.
+	 * @since 4.7.0
 	 * @access public
 	 *
-	 * @see WP_REST_Server::dispatch()
-	 * @see WP_Rest_Request::sanitize_params()
-	 * @see WP_Rest_Request::has_valid_params()
-	 *
-	 * @param WP_Customize_Setting $setting A WP_Customize_Setting derived object.
-	 * @param mixed                $default Value returned $setting has no post value (added in 4.2.0)
-	 *                                      or the post value is invalid (added in 4.6.0).
-	 * @return string|mixed $post_value Sanitized value or the $default provided.
+	 * @return int|null Post ID on success or null if there is no post yet saved.
 	 */
-	public function post_value( $setting, $default = null ) {
-		$post_values = $this->unsanitized_post_values();
-		if ( ! array_key_exists( $setting->id, $post_values ) ) {
-			return $default;
-		}
-		$value = $post_values[ $setting->id ];
-		$valid = $setting->validate( $value );
-		if ( is_wp_error( $valid ) ) {
-			return $default;
+	public function changeset_post_id() {
+		if ( ! isset( $this->_changeset_post_id ) ) {
+			$post_id = $this->find_changeset_post_id( $this->_changeset_uuid );
+			if ( ! $post_id ) {
+				$post_id = false;
+			}
+			$this->_changeset_post_id = $post_id;
 		}
-		$value = $setting->sanitize( $value );
-		if ( is_null( $value ) || is_wp_error( $value ) ) {
-			return $default;
+		if ( false === $this->_changeset_post_id ) {
+			return null;
 		}
-		return $value;
+		return $this->_changeset_post_id;
 	}
 
 	/**
-	 * Override a setting's (unsanitized) value as found in any incoming $_POST['customized'].
-	 *
-	 * @since 4.2.0
-	 * @access public
+	 * Get the data stored in a changeset post.
 	 *
-	 * @param string $setting_id ID for the WP_Customize_Setting instance.
-	 * @param mixed  $value      Post value.
-	 */
-	public function set_post_value( $setting_id, $value ) {
-		$this->unsanitized_post_values();
-		$this->_post_values[ $setting_id ] = $value;
-
-		/**
-		 * Announce when a specific setting's unsanitized post value has been set.
-		 *
-		 * Fires when the WP_Customize_Manager::set_post_value() method is called.
-		 *
-		 * The dynamic portion of the hook name, `$setting_id`, refers to the setting ID.
-		 *
-		 * @since 4.4.0
-		 *
-		 * @param mixed                $value Unsanitized setting post value.
-		 * @param WP_Customize_Manager $this  WP_Customize_Manager instance.
-		 */
-		do_action( "customize_post_value_set_{$setting_id}", $value, $this );
-
-		/**
-		 * Announce when any setting's unsanitized post value has been set.
-		 *
-		 * Fires when the WP_Customize_Manager::set_post_value() method is called.
-		 *
-		 * This is useful for `WP_Customize_Setting` instances to watch
-		 * in order to update a cached previewed value.
-		 *
-		 * @since 4.4.0
-		 *
-		 * @param string               $setting_id Setting ID.
-		 * @param mixed                $value      Unsanitized setting post value.
-		 * @param WP_Customize_Manager $this       WP_Customize_Manager instance.
-		 */
-		do_action( 'customize_post_value_set', $setting_id, $value, $this );
-	}
-
-	/**
-	 * Print JavaScript settings.
+	 * @since 4.7.0
+	 * @access protected
 	 *
-	 * @since 3.4.0
+	 * @param int $post_id Changeset post ID.
+	 * @return array|WP_Error Changeset data or WP_Error on error.
 	 */
-	public function customize_preview_init() {
-		$this->nonce_tick = check_ajax_referer( 'preview-customize_' . $this->get_stylesheet(), 'nonce' );
-
-		$this->prepare_controls();
-
-		wp_enqueue_script( 'customize-preview' );
-		add_action( 'wp', array( $this, 'customize_preview_override_404_status' ) );
-		add_action( 'wp_head', array( $this, 'customize_preview_base' ) );
-		add_action( 'wp_head', array( $this, 'customize_preview_html5' ) );
-		add_action( 'wp_head', array( $this, 'customize_preview_loading_style' ) );
-		add_action( 'wp_footer', array( $this, 'customize_preview_settings' ), 20 );
-		add_action( 'shutdown', array( $this, 'customize_preview_signature' ), 1000 );
-		add_filter( 'wp_die_handler', array( $this, 'remove_preview_signature' ) );
-
-		foreach ( $this->settings as $setting ) {
-			$setting->preview();
+	protected function get_changeset_post_data( $post_id ) {
+		if ( ! $post_id ) {
+			return new WP_Error( 'empty_post_id' );
 		}
-
-		/**
-		 * Fires once the Customizer preview has initialized and JavaScript
-		 * settings have been printed.
-		 *
-		 * @since 3.4.0
-		 *
-		 * @param WP_Customize_Manager $this WP_Customize_Manager instance.
-		 */
-		do_action( 'customize_preview_init', $this );
+		$changeset_post = get_post( $post_id );
+		if ( ! $changeset_post ) {
+			return new WP_Error( 'missing_post' );
+		}
+		if ( 'customize_changeset' !== $changeset_post->post_type ) {
+			return new WP_Error( 'wrong_post_type' );
+		}
+		$changeset_data = json_decode( $changeset_post->post_content, true );
+		if ( function_exists( 'json_last_error' ) && json_last_error() ) {
+			return new WP_Error( 'json_parse_error', '', json_last_error() );
+		}
+		if ( ! is_array( $changeset_data ) ) {
+			return new WP_Error( 'expected_array' );
+		}
+		return $changeset_data;
 	}
 
 	/**
-	 * Prevent sending a 404 status when returning the response for the customize
-	 * preview, since it causes the jQuery Ajax to fail. Send 200 instead.
+	 * Get changeset data.
 	 *
-	 * @since 4.0.0
+	 * @since 4.7.0
 	 * @access public
-	 */
-	public function customize_preview_override_404_status() {
-		if ( is_404() ) {
-			status_header( 200 );
-		}
-	}
-
-	/**
-	 * Print base element for preview frame.
 	 *
-	 * @since 3.4.0
+	 * @return array Changeset data.
 	 */
-	public function customize_preview_base() {
-		?><base href="<?php echo home_url( '/' ); ?>" /><?php
+	public function changeset_data() {
+		if ( isset( $this->_changeset_data ) ) {
+			return $this->_changeset_data;
+		}
+		$changeset_post_id = $this->changeset_post_id();
+		if ( ! $changeset_post_id ) {
+			$this->_changeset_data = array();
+		} else {
+			$data = $this->get_changeset_post_data( $changeset_post_id );
+			if ( ! is_wp_error( $data ) ) {
+				$this->_changeset_data = $data;
+			} else {
+				$this->_changeset_data = array();
+			}
+		}
+		return $this->_changeset_data;
 	}
 
 	/**
-	 * Print a workaround to handle HTML5 tags in IE < 9.
+	 * Starter content setting IDs.
 	 *
-	 * @since 3.4.0
+	 * @since 4.7.0
+	 * @access private
+	 * @var array
 	 */
-	public function customize_preview_html5() { ?>
-		<!--[if lt IE 9]>
-		<script type="text/javascript">
-			var e = [ 'abbr', 'article', 'aside', 'audio', 'canvas', 'datalist', 'details',
-				'figure', 'footer', 'header', 'hgroup', 'mark', 'menu', 'meter', 'nav',
-				'output', 'progress', 'section', 'time', 'video' ];
-			for ( var i = 0; i < e.length; i++ ) {
-				document.createElement( e[i] );
-			}
-		</script>
-		<![endif]--><?php
-	}
+	protected $pending_starter_content_settings_ids = array();
 
 	/**
-	 * Print CSS for loading indicators for the Customizer preview.
+	 * Import theme starter content into the customized state.
 	 *
-	 * @since 4.2.0
+	 * @since 4.7.0
 	 * @access public
-	 */
-	public function customize_preview_loading_style() {
-		?><style>
-			body.wp-customizer-unloading {
-				opacity: 0.25;
-				cursor: progress !important;
-				-webkit-transition: opacity 0.5s;
-				transition: opacity 0.5s;
-			}
-			body.wp-customizer-unloading * {
-				pointer-events: none !important;
-			}
-		</style><?php
-	}
-
-	/**
-	 * Print JavaScript settings for preview frame.
 	 *
-	 * @since 3.4.0
+	 * @param array $starter_content Starter content. Defaults to `get_theme_starter_content()`.
 	 */
-	public function customize_preview_settings() {
-		$setting_validities = $this->validate_setting_values( $this->unsanitized_post_values() );
-		$exported_setting_validities = array_map( array( $this, 'prepare_setting_validity_for_js' ), $setting_validities );
+	function import_theme_starter_content( $starter_content = array() ) {
+		if ( empty( $starter_content ) ) {
+			$starter_content = get_theme_starter_content();
+		}
 
-		$settings = array(
-			'theme' => array(
-				'stylesheet' => $this->get_stylesheet(),
-				'active'     => $this->is_theme_active(),
-			),
-			'url' => array(
-				'self' => empty( $_SERVER['REQUEST_URI'] ) ? home_url( '/' ) : esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ),
-			),
-			'channel' => wp_unslash( $_POST['customize_messenger_channel'] ),
-			'activePanels' => array(),
-			'activeSections' => array(),
-			'activeControls' => array(),
-			'settingValidities' => $exported_setting_validities,
-			'nonce' => $this->get_nonces(),
-			'l10n' => array(
-				'shiftClickToEdit' => __( 'Shift-click to edit this element.' ),
-			),
-			'_dirty' => array_keys( $this->unsanitized_post_values() ),
-		);
+		$changeset_data = array();
+		if ( $this->changeset_post_id() ) {
+			$changeset_data = $this->get_changeset_post_data( $this->changeset_post_id() );
+		}
 
-		foreach ( $this->panels as $panel_id => $panel ) {
-			if ( $panel->check_capabilities() ) {
-				$settings['activePanels'][ $panel_id ] = $panel->active();
-				foreach ( $panel->sections as $section_id => $section ) {
-					if ( $section->check_capabilities() ) {
-						$settings['activeSections'][ $section_id ] = $section->active();
+		$sidebars_widgets = isset( $starter_content['widgets'] ) && ! empty( $this->widgets ) ? $starter_content['widgets'] : array();
+		$attachments = isset( $starter_content['attachments'] ) && ! empty( $this->nav_menus ) ? $starter_content['attachments'] : array();
+		$posts = isset( $starter_content['posts'] ) && ! empty( $this->nav_menus ) ? $starter_content['posts'] : array();
+		$options = isset( $starter_content['options'] ) ? $starter_content['options'] : array();
+		$nav_menus = isset( $starter_content['nav_menus'] ) && ! empty( $this->nav_menus ) ? $starter_content['nav_menus'] : array();
+		$theme_mods = isset( $starter_content['theme_mods'] ) ? $starter_content['theme_mods'] : array();
+
+		// Widgets.
+		$max_widget_numbers = array();
+		foreach ( $sidebars_widgets as $sidebar_id => $widgets ) {
+			$sidebar_widget_ids = array();
+			foreach ( $widgets as $widget ) {
+				list( $id_base, $instance ) = $widget;
+
+				if ( ! isset( $max_widget_numbers[ $id_base ] ) ) {
+
+					// When $settings is an array-like object, get an intrinsic array for use with array_keys().
+					$settings = get_option( "widget_{$id_base}", array() );
+					if ( $settings instanceof ArrayObject || $settings instanceof ArrayIterator ) {
+						$settings = $settings->getArrayCopy();
+					}
+
+					// Find the max widget number for this type.
+					$widget_numbers = array_keys( $settings );
+					if ( count( $widget_numbers ) > 0 ) {
+						$widget_numbers[] = 1;
+						$max_widget_numbers[ $id_base ] = call_user_func_array( 'max', $widget_numbers );
+					} else {
+						$max_widget_numbers[ $id_base ] = 1;
 					}
 				}
-			}
+				$max_widget_numbers[ $id_base ] += 1;
+
+				$widget_id = sprintf( '%s-%d', $id_base, $max_widget_numbers[ $id_base ] );
+				$setting_id = sprintf( 'widget_%s[%d]', $id_base, $max_widget_numbers[ $id_base ] );
+
+				$setting_value = $this->widgets->sanitize_widget_js_instance( $instance );
+				if ( empty( $changeset_data[ $setting_id ] ) || ! empty( $changeset_data[ $setting_id ]['starter_content'] ) ) {
+					$this->set_post_value( $setting_id, $setting_value );
+					$this->pending_starter_content_settings_ids[] = $setting_id;
+				}
+				$sidebar_widget_ids[] = $widget_id;
+			}
+
+			$setting_id = sprintf( 'sidebars_widgets[%s]', $sidebar_id );
+			if ( empty( $changeset_data[ $setting_id ] ) || ! empty( $changeset_data[ $setting_id ]['starter_content'] ) ) {
+				$this->set_post_value( $setting_id, $sidebar_widget_ids );
+				$this->pending_starter_content_settings_ids[] = $setting_id;
+			}
+		}
+
+		$starter_content_auto_draft_post_ids = array();
+		if ( ! empty( $changeset_data['nav_menus_created_posts']['value'] ) ) {
+			$starter_content_auto_draft_post_ids = array_merge( $starter_content_auto_draft_post_ids, $changeset_data['nav_menus_created_posts']['value'] );
+		}
+
+		// Make an index of all the posts needed and what their slugs are.
+		$needed_posts = array();
+		$attachments = $this->prepare_starter_content_attachments( $attachments );
+		foreach ( $attachments as $attachment ) {
+			$key = 'attachment:' . $attachment['post_name'];
+			$needed_posts[ $key ] = true;
+		}
+		foreach ( array_keys( $posts ) as $post_symbol ) {
+			if ( empty( $posts[ $post_symbol ]['post_name'] ) && empty( $posts[ $post_symbol ]['post_title'] ) ) {
+				unset( $posts[ $post_symbol ] );
+				continue;
+			}
+			if ( empty( $posts[ $post_symbol ]['post_name'] ) ) {
+				$posts[ $post_symbol ]['post_name'] = sanitize_title( $posts[ $post_symbol ]['post_title'] );
+			}
+			if ( empty( $posts[ $post_symbol ]['post_type'] ) ) {
+				$posts[ $post_symbol ]['post_type'] = 'post';
+			}
+			$needed_posts[ $posts[ $post_symbol ]['post_type'] . ':' . $posts[ $post_symbol ]['post_name'] ] = true;
+		}
+		$all_post_slugs = array_merge(
+			wp_list_pluck( $attachments, 'post_name' ),
+			wp_list_pluck( $posts, 'post_name' )
+		);
+
+		// Re-use auto-draft starter content posts referenced in the current customized state.
+		$existing_starter_content_posts = array();
+		if ( ! empty( $starter_content_auto_draft_post_ids ) ) {
+			$existing_posts_query = new WP_Query( array(
+				'post__in' => $starter_content_auto_draft_post_ids,
+				'post_status' => 'auto-draft',
+				'post_type' => 'any',
+				'posts_per_page' => -1,
+			) );
+			foreach ( $existing_posts_query->posts as $existing_post ) {
+				$post_name = $existing_post->post_name;
+				if ( empty( $post_name ) ) {
+					$post_name = get_post_meta( $existing_post->ID, '_customize_draft_post_name', true );
+				}
+				$existing_starter_content_posts[ $existing_post->post_type . ':' . $post_name ] = $existing_post;
+			}
+		}
+
+		// Re-use non-auto-draft posts.
+		if ( ! empty( $all_post_slugs ) ) {
+			$existing_posts_query = new WP_Query( array(
+				'post_name__in' => $all_post_slugs,
+				'post_status' => array_diff( get_post_stati(), array( 'auto-draft' ) ),
+				'post_type' => 'any',
+				'posts_per_page' => -1,
+			) );
+			foreach ( $existing_posts_query->posts as $existing_post ) {
+				$key = $existing_post->post_type . ':' . $existing_post->post_name;
+				if ( isset( $needed_posts[ $key ] ) && ! isset( $existing_starter_content_posts[ $key ] ) ) {
+					$existing_starter_content_posts[ $key ] = $existing_post;
+				}
+			}
+		}
+
+		// Attachments are technically posts but handled differently.
+		if ( ! empty( $attachments ) ) {
+
+			$attachment_ids = array();
+
+			foreach ( $attachments as $symbol => $attachment ) {
+				$file_array = array(
+					'name' => $attachment['file_name'],
+				);
+				$file_path = $attachment['file_path'];
+				$attachment_id = null;
+				$attached_file = null;
+				if ( isset( $existing_starter_content_posts[ 'attachment:' . $attachment['post_name'] ] ) ) {
+					$attachment_post = $existing_starter_content_posts[ 'attachment:' . $attachment['post_name'] ];
+					$attachment_id = $attachment_post->ID;
+					$attached_file = get_attached_file( $attachment_id );
+					if ( empty( $attached_file ) || ! file_exists( $attached_file ) ) {
+						$attachment_id = null;
+						$attached_file = null;
+					} elseif ( $this->get_stylesheet() !== get_post_meta( $attachment_post->ID, '_starter_content_theme', true ) ) {
+
+						// Re-generate attachment metadata since it was previously generated for a different theme.
+						$metadata = wp_generate_attachment_metadata( $attachment_post->ID, $attached_file );
+						wp_update_attachment_metadata( $attachment_id, $metadata );
+						update_post_meta( $attachment_id, '_starter_content_theme', $this->get_stylesheet() );
+					}
+				}
+
+				// Insert the attachment auto-draft because it doesn't yet exist or the attached file is gone.
+				if ( ! $attachment_id ) {
+
+					// Copy file to temp location so that original file won't get deleted from theme after sideloading.
+					$temp_file_name = wp_tempnam( basename( $file_path ) );
+					if ( $temp_file_name && copy( $file_path, $temp_file_name ) ) {
+						$file_array['tmp_name'] = $temp_file_name;
+					}
+					if ( empty( $file_array['tmp_name'] ) ) {
+						continue;
+					}
+
+					$attachment_post_data = array_merge(
+						wp_array_slice_assoc( $attachment, array( 'post_title', 'post_content', 'post_excerpt' ) ),
+						array(
+							'post_status' => 'auto-draft', // So attachment will be garbage collected in a week if changeset is never published.
+						)
+					);
+
+					// In PHP < 5.6 filesize() returns 0 for the temp files unless we clear the file status cache.
+					// Technically, PHP < 5.6.0 || < 5.5.13 || < 5.4.29 but no need to be so targeted.
+					// See https://bugs.php.net/bug.php?id=65701
+					if ( version_compare( PHP_VERSION, '5.6', '<' ) ) {
+						clearstatcache();
+					}
+
+					$attachment_id = media_handle_sideload( $file_array, 0, null, $attachment_post_data );
+					if ( is_wp_error( $attachment_id ) ) {
+						continue;
+					}
+					update_post_meta( $attachment_id, '_starter_content_theme', $this->get_stylesheet() );
+					update_post_meta( $attachment_id, '_customize_draft_post_name', $attachment['post_name'] );
+				}
+
+				$attachment_ids[ $symbol ] = $attachment_id;
+			}
+			$starter_content_auto_draft_post_ids = array_merge( $starter_content_auto_draft_post_ids, array_values( $attachment_ids ) );
+		}
+
+		// Posts & pages.
+		if ( ! empty( $posts ) ) {
+			foreach ( array_keys( $posts ) as $post_symbol ) {
+				if ( empty( $posts[ $post_symbol ]['post_type'] ) || empty( $posts[ $post_symbol ]['post_name'] ) ) {
+					continue;
+				}
+				$post_type = $posts[ $post_symbol ]['post_type'];
+				if ( ! empty( $posts[ $post_symbol ]['post_name'] ) ) {
+					$post_name = $posts[ $post_symbol ]['post_name'];
+				} elseif ( ! empty( $posts[ $post_symbol ]['post_title'] ) ) {
+					$post_name = sanitize_title( $posts[ $post_symbol ]['post_title'] );
+				} else {
+					continue;
+				}
+
+				// Use existing auto-draft post if one already exists with the same type and name.
+				if ( isset( $existing_starter_content_posts[ $post_type . ':' . $post_name ] ) ) {
+					$posts[ $post_symbol ]['ID'] = $existing_starter_content_posts[ $post_type . ':' . $post_name ]->ID;
+					continue;
+				}
+
+				// Translate the featured image symbol.
+				if ( ! empty( $posts[ $post_symbol ]['thumbnail'] )
+					&& preg_match( '/^{{(?P<symbol>.+)}}$/', $posts[ $post_symbol ]['thumbnail'], $matches )
+					&& isset( $attachment_ids[ $matches['symbol'] ] ) ) {
+					$posts[ $post_symbol ]['meta_input']['_thumbnail_id'] = $attachment_ids[ $matches['symbol'] ];
+				}
+
+				if ( ! empty( $posts[ $post_symbol ]['template'] ) ) {
+					$posts[ $post_symbol ]['meta_input']['_wp_page_template'] = $posts[ $post_symbol ]['template'];
+				}
+
+				$r = $this->nav_menus->insert_auto_draft_post( $posts[ $post_symbol ] );
+				if ( $r instanceof WP_Post ) {
+					$posts[ $post_symbol ]['ID'] = $r->ID;
+				}
+			}
+
+			$starter_content_auto_draft_post_ids = array_merge( $starter_content_auto_draft_post_ids, wp_list_pluck( $posts, 'ID' ) );
+		}
+
+		// The nav_menus_created_posts setting is why nav_menus component is dependency for adding posts.
+		if ( ! empty( $this->nav_menus ) && ! empty( $starter_content_auto_draft_post_ids ) ) {
+			$setting_id = 'nav_menus_created_posts';
+			$this->set_post_value( $setting_id, array_unique( array_values( $starter_content_auto_draft_post_ids ) ) );
+			$this->pending_starter_content_settings_ids[] = $setting_id;
+		}
+
+		// Nav menus.
+		$placeholder_id = -1;
+		$reused_nav_menu_setting_ids = array();
+		foreach ( $nav_menus as $nav_menu_location => $nav_menu ) {
+
+			$nav_menu_term_id = null;
+			$nav_menu_setting_id = null;
+			$matches = array();
+
+			// Look for an existing placeholder menu with starter content to re-use.
+			foreach ( $changeset_data as $setting_id => $setting_params ) {
+				$can_reuse = (
+					! empty( $setting_params['starter_content'] )
+					&&
+					! in_array( $setting_id, $reused_nav_menu_setting_ids, true )
+					&&
+					preg_match( '#^nav_menu\[(?P<nav_menu_id>-?\d+)\]$#', $setting_id, $matches )
+				);
+				if ( $can_reuse ) {
+					$nav_menu_term_id = intval( $matches['nav_menu_id'] );
+					$nav_menu_setting_id = $setting_id;
+					$reused_nav_menu_setting_ids[] = $setting_id;
+					break;
+				}
+			}
+
+			if ( ! $nav_menu_term_id ) {
+				while ( isset( $changeset_data[ sprintf( 'nav_menu[%d]', $placeholder_id ) ] ) ) {
+					$placeholder_id--;
+				}
+				$nav_menu_term_id = $placeholder_id;
+				$nav_menu_setting_id = sprintf( 'nav_menu[%d]', $placeholder_id );
+			}
+
+			$this->set_post_value( $nav_menu_setting_id, array(
+				'name' => isset( $nav_menu['name'] ) ? $nav_menu['name'] : $nav_menu_location,
+			) );
+			$this->pending_starter_content_settings_ids[] = $nav_menu_setting_id;
+
+			// @todo Add support for menu_item_parent.
+			$position = 0;
+			foreach ( $nav_menu['items'] as $nav_menu_item ) {
+				$nav_menu_item_setting_id = sprintf( 'nav_menu_item[%d]', $placeholder_id-- );
+				if ( ! isset( $nav_menu_item['position'] ) ) {
+					$nav_menu_item['position'] = $position++;
+				}
+				$nav_menu_item['nav_menu_term_id'] = $nav_menu_term_id;
+
+				if ( isset( $nav_menu_item['object_id'] ) ) {
+					if ( 'post_type' === $nav_menu_item['type'] && preg_match( '/^{{(?P<symbol>.+)}}$/', $nav_menu_item['object_id'], $matches ) && isset( $posts[ $matches['symbol'] ] ) ) {
+						$nav_menu_item['object_id'] = $posts[ $matches['symbol'] ]['ID'];
+						if ( empty( $nav_menu_item['title'] ) ) {
+							$original_object = get_post( $nav_menu_item['object_id'] );
+							$nav_menu_item['title'] = $original_object->post_title;
+						}
+					} else {
+						continue;
+					}
+				} else {
+					$nav_menu_item['object_id'] = 0;
+				}
+
+				if ( empty( $changeset_data[ $nav_menu_item_setting_id ] ) || ! empty( $changeset_data[ $nav_menu_item_setting_id ]['starter_content'] ) ) {
+					$this->set_post_value( $nav_menu_item_setting_id, $nav_menu_item );
+					$this->pending_starter_content_settings_ids[] = $nav_menu_item_setting_id;
+				}
+			}
+
+			$setting_id = sprintf( 'nav_menu_locations[%s]', $nav_menu_location );
+			if ( empty( $changeset_data[ $setting_id ] ) || ! empty( $changeset_data[ $setting_id ]['starter_content'] ) ) {
+				$this->set_post_value( $setting_id, $nav_menu_term_id );
+				$this->pending_starter_content_settings_ids[] = $setting_id;
+			}
+		}
+
+		// Options.
+		foreach ( $options as $name => $value ) {
+			if ( preg_match( '/^{{(?P<symbol>.+)}}$/', $value, $matches ) ) {
+				if ( isset( $posts[ $matches['symbol'] ] ) ) {
+					$value = $posts[ $matches['symbol'] ]['ID'];
+				} elseif ( isset( $attachment_ids[ $matches['symbol'] ] ) ) {
+					$value = $attachment_ids[ $matches['symbol'] ];
+				} else {
+					continue;
+				}
+			}
+
+			if ( empty( $changeset_data[ $name ] ) || ! empty( $changeset_data[ $name ]['starter_content'] ) ) {
+				$this->set_post_value( $name, $value );
+				$this->pending_starter_content_settings_ids[] = $name;
+			}
+		}
+
+		// Theme mods.
+		foreach ( $theme_mods as $name => $value ) {
+			if ( preg_match( '/^{{(?P<symbol>.+)}}$/', $value, $matches ) ) {
+				if ( isset( $posts[ $matches['symbol'] ] ) ) {
+					$value = $posts[ $matches['symbol'] ]['ID'];
+				} elseif ( isset( $attachment_ids[ $matches['symbol'] ] ) ) {
+					$value = $attachment_ids[ $matches['symbol'] ];
+				} else {
+					continue;
+				}
+			}
+
+			// Handle header image as special case since setting has a legacy format.
+			if ( 'header_image' === $name ) {
+				$name = 'header_image_data';
+				$metadata = wp_get_attachment_metadata( $value );
+				if ( empty( $metadata ) ) {
+					continue;
+				}
+				$value = array(
+					'attachment_id' => $value,
+					'url' => wp_get_attachment_url( $value ),
+					'height' => $metadata['height'],
+					'width' => $metadata['width'],
+				);
+			} elseif ( 'background_image' === $name ) {
+				$value = wp_get_attachment_url( $value );
+			}
+
+			if ( empty( $changeset_data[ $name ] ) || ! empty( $changeset_data[ $name ]['starter_content'] ) ) {
+				$this->set_post_value( $name, $value );
+				$this->pending_starter_content_settings_ids[] = $name;
+			}
+		}
+
+		if ( ! empty( $this->pending_starter_content_settings_ids ) ) {
+			if ( did_action( 'customize_register' ) ) {
+				$this->_save_starter_content_changeset();
+			} else {
+				add_action( 'customize_register', array( $this, '_save_starter_content_changeset' ), 1000 );
+			}
+		}
+	}
+
+	/**
+	 * Prepare starter content attachments.
+	 *
+	 * Ensure that the attachments are valid and that they have slugs and file name/path.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param array $attachments Attachments.
+	 * @return array Prepared attachments.
+	 */
+	protected function prepare_starter_content_attachments( $attachments ) {
+		$prepared_attachments = array();
+		if ( empty( $attachments ) ) {
+			return $prepared_attachments;
+		}
+
+		// Such is The WordPress Way.
+		require_once( ABSPATH . 'wp-admin/includes/file.php' );
+		require_once( ABSPATH . 'wp-admin/includes/media.php' );
+		require_once( ABSPATH . 'wp-admin/includes/image.php' );
+
+		foreach ( $attachments as $symbol => $attachment ) {
+
+			// A file is required and URLs to files are not currently allowed.
+			if ( empty( $attachment['file'] ) || preg_match( '#^https?://$#', $attachment['file'] ) ) {
+				continue;
+			}
+
+			$file_path = null;
+			if ( file_exists( $attachment['file'] ) ) {
+				$file_path = $attachment['file']; // Could be absolute path to file in plugin.
+			} elseif ( is_child_theme() && file_exists( get_stylesheet_directory() . '/' . $attachment['file'] ) ) {
+				$file_path = get_stylesheet_directory() . '/' . $attachment['file'];
+			} elseif ( file_exists( get_template_directory() . '/' . $attachment['file'] ) ) {
+				$file_path = get_template_directory() . '/' . $attachment['file'];
+			} else {
+				continue;
+			}
+			$file_name = basename( $attachment['file'] );
+
+			// Skip file types that are not recognized.
+			$checked_filetype = wp_check_filetype( $file_name );
+			if ( empty( $checked_filetype['type'] ) ) {
+				continue;
+			}
+
+			// Ensure post_name is set since not automatically derived from post_title for new auto-draft posts.
+			if ( empty( $attachment['post_name'] ) ) {
+				if ( ! empty( $attachment['post_title'] ) ) {
+					$attachment['post_name'] = sanitize_title( $attachment['post_title'] );
+				} else {
+					$attachment['post_name'] = sanitize_title( preg_replace( '/\.\w+$/', '', $file_name ) );
+				}
+			}
+
+			$attachment['file_name'] = $file_name;
+			$attachment['file_path'] = $file_path;
+			$prepared_attachments[ $symbol ] = $attachment;
+		}
+		return $prepared_attachments;
+	}
+
+	/**
+	 * Save starter content changeset.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 */
+	public function _save_starter_content_changeset() {
+
+		if ( empty( $this->pending_starter_content_settings_ids ) ) {
+			return;
+		}
+
+		$this->save_changeset_post( array(
+			'data' => array_fill_keys( $this->pending_starter_content_settings_ids, array( 'starter_content' => true ) ),
+			'starter_content' => true,
+		) );
+
+		$this->pending_starter_content_settings_ids = array();
+	}
+
+	/**
+	 * Get dirty pre-sanitized setting values in the current customized state.
+	 *
+	 * The returned array consists of a merge of three sources:
+	 * 1. If the theme is not currently active, then the base array is any stashed
+	 *    theme mods that were modified previously but never published.
+	 * 2. The values from the current changeset, if it exists.
+	 * 3. If the user can customize, the values parsed from the incoming
+	 *    `$_POST['customized']` JSON data.
+	 * 4. Any programmatically-set post values via `WP_Customize_Manager::set_post_value()`.
+	 *
+	 * The name "unsanitized_post_values" is a carry-over from when the customized
+	 * state was exclusively sourced from `$_POST['customized']`. Nevertheless,
+	 * the value returned will come from the current changeset post and from the
+	 * incoming post data.
+	 *
+	 * @since 4.1.1
+	 * @since 4.7.0 Added $args param and merging with changeset values and stashed theme mods.
+	 *
+	 * @param array $args {
+	 *     Args.
+	 *
+	 *     @type bool $exclude_changeset Whether the changeset values should also be excluded. Defaults to false.
+	 *     @type bool $exclude_post_data Whether the post input values should also be excluded. Defaults to false when lacking the customize capability.
+	 * }
+	 * @return array
+	 */
+	public function unsanitized_post_values( $args = array() ) {
+		$args = array_merge(
+			array(
+				'exclude_changeset' => false,
+				'exclude_post_data' => ! current_user_can( 'customize' ),
+			),
+			$args
+		);
+
+		$values = array();
+
+		// Let default values be from the stashed theme mods if doing a theme switch and if no changeset is present.
+		if ( ! $this->is_theme_active() ) {
+			$stashed_theme_mods = get_option( 'customize_stashed_theme_mods' );
+			$stylesheet = $this->get_stylesheet();
+			if ( isset( $stashed_theme_mods[ $stylesheet ] ) ) {
+				$values = array_merge( $values, wp_list_pluck( $stashed_theme_mods[ $stylesheet ], 'value' ) );
+			}
+		}
+
+		if ( ! $args['exclude_changeset'] ) {
+			foreach ( $this->changeset_data() as $setting_id => $setting_params ) {
+				if ( ! array_key_exists( 'value', $setting_params ) ) {
+					continue;
+				}
+				if ( isset( $setting_params['type'] ) && 'theme_mod' === $setting_params['type'] ) {
+
+					// Ensure that theme mods values are only used if they were saved under the current theme.
+					$namespace_pattern = '/^(?P<stylesheet>.+?)::(?P<setting_id>.+)$/';
+					if ( preg_match( $namespace_pattern, $setting_id, $matches ) && $this->get_stylesheet() === $matches['stylesheet'] ) {
+						$values[ $matches['setting_id'] ] = $setting_params['value'];
+					}
+				} else {
+					$values[ $setting_id ] = $setting_params['value'];
+				}
+			}
+		}
+
+		if ( ! $args['exclude_post_data'] ) {
+			if ( ! isset( $this->_post_values ) ) {
+				if ( isset( $_POST['customized'] ) ) {
+					$post_values = json_decode( wp_unslash( $_POST['customized'] ), true );
+				} else {
+					$post_values = array();
+				}
+				if ( is_array( $post_values ) ) {
+					$this->_post_values = $post_values;
+				} else {
+					$this->_post_values = array();
+				}
+			}
+			$values = array_merge( $values, $this->_post_values );
+		}
+		return $values;
+	}
+
+	/**
+	 * Returns the sanitized value for a given setting from the current customized state.
+	 *
+	 * The name "post_value" is a carry-over from when the customized state was exclusively
+	 * sourced from `$_POST['customized']`. Nevertheless, the value returned will come
+	 * from the current changeset post and from the incoming post data.
+	 *
+	 * @since 3.4.0
+	 * @since 4.1.1 Introduced the `$default` parameter.
+	 * @since 4.6.0 `$default` is now returned early when the setting post value is invalid.
+	 * @access public
+	 *
+	 * @see WP_REST_Server::dispatch()
+	 * @see WP_Rest_Request::sanitize_params()
+	 * @see WP_Rest_Request::has_valid_params()
+	 *
+	 * @param WP_Customize_Setting $setting A WP_Customize_Setting derived object.
+	 * @param mixed                $default Value returned $setting has no post value (added in 4.2.0)
+	 *                                      or the post value is invalid (added in 4.6.0).
+	 * @return string|mixed $post_value Sanitized value or the $default provided.
+	 */
+	public function post_value( $setting, $default = null ) {
+		$post_values = $this->unsanitized_post_values();
+		if ( ! array_key_exists( $setting->id, $post_values ) ) {
+			return $default;
+		}
+		$value = $post_values[ $setting->id ];
+		$valid = $setting->validate( $value );
+		if ( is_wp_error( $valid ) ) {
+			return $default;
+		}
+		$value = $setting->sanitize( $value );
+		if ( is_null( $value ) || is_wp_error( $value ) ) {
+			return $default;
+		}
+		return $value;
+	}
+
+	/**
+	 * Override a setting's value in the current customized state.
+	 *
+	 * The name "post_value" is a carry-over from when the customized state was
+	 * exclusively sourced from `$_POST['customized']`.
+	 *
+	 * @since 4.2.0
+	 * @access public
+	 *
+	 * @param string $setting_id ID for the WP_Customize_Setting instance.
+	 * @param mixed  $value      Post value.
+	 */
+	public function set_post_value( $setting_id, $value ) {
+		$this->unsanitized_post_values(); // Populate _post_values from $_POST['customized'].
+		$this->_post_values[ $setting_id ] = $value;
+
+		/**
+		 * Announce when a specific setting's unsanitized post value has been set.
+		 *
+		 * Fires when the WP_Customize_Manager::set_post_value() method is called.
+		 *
+		 * The dynamic portion of the hook name, `$setting_id`, refers to the setting ID.
+		 *
+		 * @since 4.4.0
+		 *
+		 * @param mixed                $value Unsanitized setting post value.
+		 * @param WP_Customize_Manager $this  WP_Customize_Manager instance.
+		 */
+		do_action( "customize_post_value_set_{$setting_id}", $value, $this );
+
+		/**
+		 * Announce when any setting's unsanitized post value has been set.
+		 *
+		 * Fires when the WP_Customize_Manager::set_post_value() method is called.
+		 *
+		 * This is useful for `WP_Customize_Setting` instances to watch
+		 * in order to update a cached previewed value.
+		 *
+		 * @since 4.4.0
+		 *
+		 * @param string               $setting_id Setting ID.
+		 * @param mixed                $value      Unsanitized setting post value.
+		 * @param WP_Customize_Manager $this       WP_Customize_Manager instance.
+		 */
+		do_action( 'customize_post_value_set', $setting_id, $value, $this );
+	}
+
+	/**
+	 * Print JavaScript settings.
+	 *
+	 * @since 3.4.0
+	 */
+	public function customize_preview_init() {
+
+		/*
+		 * Now that Customizer previews are loaded into iframes via GET requests
+		 * and natural URLs with transaction UUIDs added, we need to ensure that
+		 * the responses are never cached by proxies. In practice, this will not
+		 * be needed if the user is logged-in anyway. But if anonymous access is
+		 * allowed then the auth cookies would not be sent and WordPress would
+		 * not send no-cache headers by default.
+		 */
+		if ( ! headers_sent() ) {
+			nocache_headers();
+			header( 'X-Robots: noindex, nofollow, noarchive' );
+		}
+		add_action( 'wp_head', 'wp_no_robots' );
+		add_filter( 'wp_headers', array( $this, 'filter_iframe_security_headers' ) );
+
+		/*
+		 * If preview is being served inside the customizer preview iframe, and
+		 * if the user doesn't have customize capability, then it is assumed
+		 * that the user's session has expired and they need to re-authenticate.
+		 */
+		if ( $this->messenger_channel && ! current_user_can( 'customize' ) ) {
+			$this->wp_die( -1, __( 'Unauthorized. You may remove the customize_messenger_channel param to preview as frontend.' ) );
+			return;
+		}
+
+		$this->prepare_controls();
+
+		add_filter( 'wp_redirect', array( $this, 'add_state_query_params' ) );
+
+		wp_enqueue_script( 'customize-preview' );
+		add_action( 'wp_head', array( $this, 'customize_preview_loading_style' ) );
+		add_action( 'wp_head', array( $this, 'remove_frameless_preview_messenger_channel' ) );
+		add_action( 'wp_footer', array( $this, 'customize_preview_settings' ), 20 );
+		add_filter( 'get_edit_post_link', '__return_empty_string' );
+
+		/**
+		 * Fires once the Customizer preview has initialized and JavaScript
+		 * settings have been printed.
+		 *
+		 * @since 3.4.0
+		 *
+		 * @param WP_Customize_Manager $this WP_Customize_Manager instance.
+		 */
+		do_action( 'customize_preview_init', $this );
+	}
+
+	/**
+	 * Filter the X-Frame-Options and Content-Security-Policy headers to ensure frontend can load in customizer.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param array $headers Headers.
+	 * @return array Headers.
+	 */
+	public function filter_iframe_security_headers( $headers ) {
+		$customize_url = admin_url( 'customize.php' );
+		$headers['X-Frame-Options'] = 'ALLOW-FROM ' . $customize_url;
+		$headers['Content-Security-Policy'] = 'frame-ancestors ' . preg_replace( '#^(\w+://[^/]+).+?$#', '$1', $customize_url );
+		return $headers;
+	}
+
+	/**
+	 * Add customize state query params to a given URL if preview is allowed.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @see wp_redirect()
+	 * @see WP_Customize_Manager::get_allowed_url()
+	 *
+	 * @param string $url URL.
+	 * @return string URL.
+	 */
+	public function add_state_query_params( $url ) {
+		$parsed_original_url = wp_parse_url( $url );
+		$is_allowed = false;
+		foreach ( $this->get_allowed_urls() as $allowed_url ) {
+			$parsed_allowed_url = wp_parse_url( $allowed_url );
+			$is_allowed = (
+				$parsed_allowed_url['scheme'] === $parsed_original_url['scheme']
+				&&
+				$parsed_allowed_url['host'] === $parsed_original_url['host']
+				&&
+				0 === strpos( $parsed_original_url['path'], $parsed_allowed_url['path'] )
+			);
+			if ( $is_allowed ) {
+				break;
+			}
+		}
+
+		if ( $is_allowed ) {
+			$query_params = array(
+				'customize_changeset_uuid' => $this->changeset_uuid(),
+			);
+			if ( ! $this->is_theme_active() ) {
+				$query_params['customize_theme'] = $this->get_stylesheet();
+			}
+			if ( $this->messenger_channel ) {
+				$query_params['customize_messenger_channel'] = $this->messenger_channel;
+			}
+			$url = add_query_arg( $query_params, $url );
+		}
+
+		return $url;
+	}
+
+	/**
+	 * Prevent sending a 404 status when returning the response for the customize
+	 * preview, since it causes the jQuery Ajax to fail. Send 200 instead.
+	 *
+	 * @since 4.0.0
+	 * @deprecated 4.7.0
+	 * @access public
+	 */
+	public function customize_preview_override_404_status() {
+		_deprecated_function( __METHOD__, '4.7.0' );
+	}
+
+	/**
+	 * Print base element for preview frame.
+	 *
+	 * @since 3.4.0
+	 * @deprecated 4.7.0
+	 */
+	public function customize_preview_base() {
+		_deprecated_function( __METHOD__, '4.7.0' );
+	}
+
+	/**
+	 * Print a workaround to handle HTML5 tags in IE < 9.
+	 *
+	 * @since 3.4.0
+	 * @deprecated 4.7.0 Customizer no longer supports IE8, so all supported browsers recognize HTML5.
+	 */
+	public function customize_preview_html5() {
+		_deprecated_function( __FUNCTION__, '4.7.0' );
+	}
+
+	/**
+	 * Print CSS for loading indicators for the Customizer preview.
+	 *
+	 * @since 4.2.0
+	 * @access public
+	 */
+	public function customize_preview_loading_style() {
+		?><style>
+			body.wp-customizer-unloading {
+				opacity: 0.25;
+				cursor: progress !important;
+				-webkit-transition: opacity 0.5s;
+				transition: opacity 0.5s;
+			}
+			body.wp-customizer-unloading * {
+				pointer-events: none !important;
+			}
+			form.customize-unpreviewable,
+			form.customize-unpreviewable input,
+			form.customize-unpreviewable select,
+			form.customize-unpreviewable button,
+			a.customize-unpreviewable,
+			area.customize-unpreviewable {
+				cursor: not-allowed !important;
+			}
+		</style><?php
+	}
+
+	/**
+	 * Remove customize_messenger_channel query parameter from the preview window when it is not in an iframe.
+	 *
+	 * This ensures that the admin bar will be shown. It also ensures that link navigation will
+	 * work as expected since the parent frame is not being sent the URL to navigate to.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function remove_frameless_preview_messenger_channel() {
+		if ( ! $this->messenger_channel ) {
+			return;
+		}
+		?>
+		<script>
+		( function() {
+			var urlParser, oldQueryParams, newQueryParams, i;
+			if ( parent !== window ) {
+				return;
+			}
+			urlParser = document.createElement( 'a' );
+			urlParser.href = location.href;
+			oldQueryParams = urlParser.search.substr( 1 ).split( /&/ );
+			newQueryParams = [];
+			for ( i = 0; i < oldQueryParams.length; i += 1 ) {
+				if ( ! /^customize_messenger_channel=/.test( oldQueryParams[ i ] ) ) {
+					newQueryParams.push( oldQueryParams[ i ] );
+				}
+			}
+			urlParser.search = newQueryParams.join( '&' );
+			if ( urlParser.search !== location.search ) {
+				location.replace( urlParser.href );
+			}
+		} )();
+		</script>
+		<?php
+	}
+
+	/**
+	 * Print JavaScript settings for preview frame.
+	 *
+	 * @since 3.4.0
+	 */
+	public function customize_preview_settings() {
+		$post_values = $this->unsanitized_post_values( array( 'exclude_changeset' => true ) );
+		$setting_validities = $this->validate_setting_values( $post_values );
+		$exported_setting_validities = array_map( array( $this, 'prepare_setting_validity_for_js' ), $setting_validities );
+
+		// Note that the REQUEST_URI is not passed into home_url() since this breaks subdirectory installs.
+		$self_url = empty( $_SERVER['REQUEST_URI'] ) ? home_url( '/' ) : esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) );
+		$state_query_params = array(
+			'customize_theme',
+			'customize_changeset_uuid',
+			'customize_messenger_channel',
+		);
+		$self_url = remove_query_arg( $state_query_params, $self_url );
+
+		$allowed_urls = $this->get_allowed_urls();
+		$allowed_hosts = array();
+		foreach ( $allowed_urls as $allowed_url ) {
+			$parsed = wp_parse_url( $allowed_url );
+			if ( empty( $parsed['host'] ) ) {
+				continue;
+			}
+			$host = $parsed['host'];
+			if ( ! empty( $parsed['port'] ) ) {
+				$host .= ':' . $parsed['port'];
+			}
+			$allowed_hosts[] = $host;
+		}
+		$settings = array(
+			'changeset' => array(
+				'uuid' => $this->_changeset_uuid,
+			),
+			'timeouts' => array(
+				'selectiveRefresh' => 250,
+				'keepAliveSend' => 1000,
+			),
+			'theme' => array(
+				'stylesheet' => $this->get_stylesheet(),
+				'active'     => $this->is_theme_active(),
+			),
+			'url' => array(
+				'self' => $self_url,
+				'allowed' => array_map( 'esc_url_raw', $this->get_allowed_urls() ),
+				'allowedHosts' => array_unique( $allowed_hosts ),
+				'isCrossDomain' => $this->is_cross_domain(),
+			),
+			'channel' => $this->messenger_channel,
+			'activePanels' => array(),
+			'activeSections' => array(),
+			'activeControls' => array(),
+			'settingValidities' => $exported_setting_validities,
+			'nonce' => current_user_can( 'customize' ) ? $this->get_nonces() : array(),
+			'l10n' => array(
+				'shiftClickToEdit' => __( 'Shift-click to edit this element.' ),
+				'linkUnpreviewable' => __( 'This link is not live-previewable.' ),
+				'formUnpreviewable' => __( 'This form is not live-previewable.' ),
+			),
+			'_dirty' => array_keys( $post_values ),
+		);
+
+		foreach ( $this->panels as $panel_id => $panel ) {
+			if ( $panel->check_capabilities() ) {
+				$settings['activePanels'][ $panel_id ] = $panel->active();
+				foreach ( $panel->sections as $section_id => $section ) {
+					if ( $section->check_capabilities() ) {
+						$settings['activeSections'][ $section_id ] = $section->active();
+					}
+				}
+			}
 		}
 		foreach ( $this->sections as $id => $section ) {
 			if ( $section->check_capabilities() ) {
@@ -902,21 +1859,23 @@ final class WP_Customize_Manager {
 	 * Prints a signature so we can ensure the Customizer was properly executed.
 	 *
 	 * @since 3.4.0
+	 * @deprecated 4.7.0
 	 */
 	public function customize_preview_signature() {
-		echo 'WP_CUSTOMIZER_SIGNATURE';
+		_deprecated_function( __METHOD__, '4.7.0' );
 	}
 
 	/**
 	 * Removes the signature in case we experience a case where the Customizer was not properly executed.
 	 *
 	 * @since 3.4.0
+	 * @deprecated 4.7.0
 	 *
 	 * @param mixed $return Value passed through for {@see 'wp_die_handler'} filter.
 	 * @return mixed Value passed through for {@see 'wp_die_handler'} filter.
 	 */
 	public function remove_preview_signature( $return = null ) {
-		remove_action( 'shutdown', array( $this, 'customize_preview_signature' ), 1000 );
+		_deprecated_function( __METHOD__, '4.7.0' );
 
 		return $return;
 	}
@@ -991,9 +1950,10 @@ final class WP_Customize_Manager {
 	/**
 	 * Validates setting values.
 	 *
-	 * Sanitization is applied to the values before being passed for validation.
 	 * Validation is skipped for unregistered settings or for values that are
-	 * already null since they will be skipped anyway.
+	 * already null since they will be skipped anyway. Sanitization is applied
+	 * to values that pass validation, and values that become null or `WP_Error`
+	 * after sanitizing are marked invalid.
 	 *
 	 * @since 4.6.0
 	 * @access public
@@ -1001,17 +1961,45 @@ final class WP_Customize_Manager {
 	 * @see WP_REST_Request::has_valid_params()
 	 * @see WP_Customize_Setting::validate()
 	 *
-	 * @param array $setting_values Mapping of setting IDs to values to sanitize and validate.
+	 * @param array $setting_values Mapping of setting IDs to values to validate and sanitize.
+	 * @param array $options {
+	 *     Options.
+	 *
+	 *     @type bool $validate_existence  Whether a setting's existence will be checked.
+	 *     @type bool $validate_capability Whether the setting capability will be checked.
+	 * }
 	 * @return array Mapping of setting IDs to return value of validate method calls, either `true` or `WP_Error`.
 	 */
-	public function validate_setting_values( $setting_values ) {
+	public function validate_setting_values( $setting_values, $options = array() ) {
+		$options = wp_parse_args( $options, array(
+			'validate_capability' => false,
+			'validate_existence' => false,
+		) );
+
 		$validities = array();
 		foreach ( $setting_values as $setting_id => $unsanitized_value ) {
 			$setting = $this->get_setting( $setting_id );
-			if ( ! $setting || is_null( $unsanitized_value ) ) {
+			if ( ! $setting ) {
+				if ( $options['validate_existence'] ) {
+					$validities[ $setting_id ] = new WP_Error( 'unrecognized', __( 'Setting does not exist or is unrecognized.' ) );
+				}
 				continue;
 			}
-			$validity = $setting->validate( $unsanitized_value );
+			if ( $options['validate_capability'] && ! current_user_can( $setting->capability ) ) {
+				$validity = new WP_Error( 'unauthorized', __( 'Unauthorized to modify setting due to capability.' ) );
+			} else {
+				if ( is_null( $unsanitized_value ) ) {
+					continue;
+				}
+				$validity = $setting->validate( $unsanitized_value );
+			}
+			if ( ! is_wp_error( $validity ) ) {
+				/** This filter is documented in wp-includes/class-wp-customize-setting.php */
+				$late_validity = apply_filters( "customize_validate_{$setting->id}", new WP_Error(), $unsanitized_value, $setting );
+				if ( ! empty( $late_validity->errors ) ) {
+					$validity = $late_validity;
+				}
+			}
 			if ( ! is_wp_error( $validity ) ) {
 				$value = $setting->sanitize( $unsanitized_value );
 				if ( is_null( $value ) ) {
@@ -1046,17 +2034,9 @@ final class WP_Customize_Manager {
 		if ( is_wp_error( $validity ) ) {
 			$notification = array();
 			foreach ( $validity->errors as $error_code => $error_messages ) {
-				$error_data = $validity->get_error_data( $error_code );
-				if ( is_null( $error_data ) ) {
-					$error_data = array();
-				}
-				$error_data = array_merge(
-					$error_data,
-					array( 'from_server' => true )
-				);
 				$notification[ $error_code ] = array(
 					'message' => join( ' ', $error_messages ),
-					'data' => $error_data,
+					'data' => $validity->get_error_data( $error_code ),
 				);
 			}
 			return $notification;
@@ -1066,11 +2046,16 @@ final class WP_Customize_Manager {
 	}
 
 	/**
-	 * Switch the theme and trigger the save() method on each setting.
+	 * Handle customize_save WP Ajax request to save/update a changeset.
 	 *
 	 * @since 3.4.0
+	 * @since 4.7.0 The semantics of this method have changed to update a changeset, optionally to also change the status and other attributes.
 	 */
 	public function save() {
+		if ( ! is_user_logged_in() ) {
+			wp_send_json_error( 'unauthenticated' );
+		}
+
 		if ( ! $this->is_preview() ) {
 			wp_send_json_error( 'not_preview' );
 		}
@@ -1080,6 +2065,248 @@ final class WP_Customize_Manager {
 			wp_send_json_error( 'invalid_nonce' );
 		}
 
+		$changeset_post_id = $this->changeset_post_id();
+		if ( empty( $changeset_post_id ) ) {
+			if ( ! current_user_can( get_post_type_object( 'customize_changeset' )->cap->create_posts ) ) {
+				wp_send_json_error( 'cannot_create_changeset_post' );
+			}
+		} else {
+			if ( ! current_user_can( get_post_type_object( 'customize_changeset' )->cap->edit_post, $changeset_post_id ) ) {
+				wp_send_json_error( 'cannot_edit_changeset_post' );
+			}
+		}
+
+		if ( ! empty( $_POST['customize_changeset_data'] ) ) {
+			$input_changeset_data = json_decode( wp_unslash( $_POST['customize_changeset_data'] ), true );
+			if ( ! is_array( $input_changeset_data ) ) {
+				wp_send_json_error( 'invalid_customize_changeset_data' );
+			}
+		} else {
+			$input_changeset_data = array();
+		}
+
+		// Validate title.
+		$changeset_title = null;
+		if ( isset( $_POST['customize_changeset_title'] ) ) {
+			$changeset_title = sanitize_text_field( wp_unslash( $_POST['customize_changeset_title'] ) );
+		}
+
+		// Validate changeset status param.
+		$is_publish = null;
+		$changeset_status = null;
+		if ( isset( $_POST['customize_changeset_status'] ) ) {
+			$changeset_status = wp_unslash( $_POST['customize_changeset_status'] );
+			if ( ! get_post_status_object( $changeset_status ) || ! in_array( $changeset_status, array( 'draft', 'pending', 'publish', 'future' ), true ) ) {
+				wp_send_json_error( 'bad_customize_changeset_status', 400 );
+			}
+			$is_publish = ( 'publish' === $changeset_status || 'future' === $changeset_status );
+			if ( $is_publish && ! current_user_can( get_post_type_object( 'customize_changeset' )->cap->publish_posts ) ) {
+				wp_send_json_error( 'changeset_publish_unauthorized', 403 );
+			}
+		}
+
+		/*
+		 * Validate changeset date param. Date is assumed to be in local time for
+		 * the WP if in MySQL format (YYYY-MM-DD HH:MM:SS). Otherwise, the date
+		 * is parsed with strtotime() so that ISO date format may be supplied
+		 * or a string like "+10 minutes".
+		 */
+		$changeset_date_gmt = null;
+		if ( isset( $_POST['customize_changeset_date'] ) ) {
+			$changeset_date = wp_unslash( $_POST['customize_changeset_date'] );
+			if ( preg_match( '/^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d$/', $changeset_date ) ) {
+				$mm = substr( $changeset_date, 5, 2 );
+				$jj = substr( $changeset_date, 8, 2 );
+				$aa = substr( $changeset_date, 0, 4 );
+				$valid_date = wp_checkdate( $mm, $jj, $aa, $changeset_date );
+				if ( ! $valid_date ) {
+					wp_send_json_error( 'bad_customize_changeset_date', 400 );
+				}
+				$changeset_date_gmt = get_gmt_from_date( $changeset_date );
+			} else {
+				$timestamp = strtotime( $changeset_date );
+				if ( ! $timestamp ) {
+					wp_send_json_error( 'bad_customize_changeset_date', 400 );
+				}
+				$changeset_date_gmt = gmdate( 'Y-m-d H:i:s', $timestamp );
+			}
+		}
+
+		$r = $this->save_changeset_post( array(
+			'status' => $changeset_status,
+			'title' => $changeset_title,
+			'date_gmt' => $changeset_date_gmt,
+			'data' => $input_changeset_data,
+		) );
+		if ( is_wp_error( $r ) ) {
+			$response = array(
+				'message' => $r->get_error_message(),
+				'code' => $r->get_error_code(),
+			);
+			if ( is_array( $r->get_error_data() ) ) {
+				$response = array_merge( $response, $r->get_error_data() );
+			} else {
+				$response['data'] = $r->get_error_data();
+			}
+		} else {
+			$response = $r;
+
+			// Note that if the changeset status was publish, then it will get set to trash if revisions are not supported.
+			$response['changeset_status'] = get_post_status( $this->changeset_post_id() );
+			if ( $is_publish && 'trash' === $response['changeset_status'] ) {
+				$response['changeset_status'] = 'publish';
+			}
+
+			if ( 'publish' === $response['changeset_status'] ) {
+				$response['next_changeset_uuid'] = wp_generate_uuid4();
+			}
+		}
+
+		if ( isset( $response['setting_validities'] ) ) {
+			$response['setting_validities'] = array_map( array( $this, 'prepare_setting_validity_for_js' ), $response['setting_validities'] );
+		}
+
+		/**
+		 * Filters response data for a successful customize_save Ajax request.
+		 *
+		 * This filter does not apply if there was a nonce or authentication failure.
+		 *
+		 * @since 4.2.0
+		 *
+		 * @param array                $response Additional information passed back to the 'saved'
+		 *                                       event on `wp.customize`.
+		 * @param WP_Customize_Manager $this     WP_Customize_Manager instance.
+		 */
+		$response = apply_filters( 'customize_save_response', $response, $this );
+
+		if ( is_wp_error( $r ) ) {
+			wp_send_json_error( $response );
+		} else {
+			wp_send_json_success( $response );
+		}
+	}
+
+	/**
+	 * Save the post for the loaded changeset.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param array $args {
+	 *     Args for changeset post.
+	 *
+	 *     @type array  $data            Optional additional changeset data. Values will be merged on top of any existing post values.
+	 *     @type string $status          Post status. Optional. If supplied, the save will be transactional and a post revision will be allowed.
+	 *     @type string $title           Post title. Optional.
+	 *     @type string $date_gmt        Date in GMT. Optional.
+	 *     @type int    $user_id         ID for user who is saving the changeset. Optional, defaults to the current user ID.
+	 *     @type bool   $starter_content Whether the data is starter content. If false (default), then $starter_content will be cleared for any $data being saved.
+	 * }
+	 *
+	 * @return array|WP_Error Returns array on success and WP_Error with array data on error.
+	 */
+	function save_changeset_post( $args = array() ) {
+
+		$args = array_merge(
+			array(
+				'status' => null,
+				'title' => null,
+				'data' => array(),
+				'date_gmt' => null,
+				'user_id' => get_current_user_id(),
+				'starter_content' => false,
+			),
+			$args
+		);
+
+		$changeset_post_id = $this->changeset_post_id();
+		$existing_changeset_data = array();
+		if ( $changeset_post_id ) {
+			$existing_status = get_post_status( $changeset_post_id );
+			if ( 'publish' === $existing_status || 'trash' === $existing_status ) {
+				return new WP_Error( 'changeset_already_published' );
+			}
+
+			$existing_changeset_data = $this->get_changeset_post_data( $changeset_post_id );
+		}
+
+		// Fail if attempting to publish but publish hook is missing.
+		if ( 'publish' === $args['status'] && false === has_action( 'transition_post_status', '_wp_customize_publish_changeset' ) ) {
+			return new WP_Error( 'missing_publish_callback' );
+		}
+
+		// Validate date.
+		$now = gmdate( 'Y-m-d H:i:59' );
+		if ( $args['date_gmt'] ) {
+			$is_future_dated = ( mysql2date( 'U', $args['date_gmt'], false ) > mysql2date( 'U', $now, false ) );
+			if ( ! $is_future_dated ) {
+				return new WP_Error( 'not_future_date' ); // Only future dates are allowed.
+			}
+
+			if ( ! $this->is_theme_active() && ( 'future' === $args['status'] || $is_future_dated ) ) {
+				return new WP_Error( 'cannot_schedule_theme_switches' ); // This should be allowed in the future, when theme is a regular setting.
+			}
+			$will_remain_auto_draft = ( ! $args['status'] && ( ! $changeset_post_id || 'auto-draft' === get_post_status( $changeset_post_id ) ) );
+			if ( $will_remain_auto_draft ) {
+				return new WP_Error( 'cannot_supply_date_for_auto_draft_changeset' );
+			}
+		} elseif ( $changeset_post_id && 'future' === $args['status'] ) {
+
+			// Fail if the new status is future but the existing post's date is not in the future.
+			$changeset_post = get_post( $changeset_post_id );
+			if ( mysql2date( 'U', $changeset_post->post_date_gmt, false ) <= mysql2date( 'U', $now, false ) ) {
+				return new WP_Error( 'not_future_date' );
+			}
+		}
+
+		// The request was made via wp.customize.previewer.save().
+		$update_transactionally = (bool) $args['status'];
+		$allow_revision = (bool) $args['status'];
+
+		// Amend post values with any supplied data.
+		foreach ( $args['data'] as $setting_id => $setting_params ) {
+			if ( array_key_exists( 'value', $setting_params ) ) {
+				$this->set_post_value( $setting_id, $setting_params['value'] ); // Add to post values so that they can be validated and sanitized.
+			}
+		}
+
+		// Note that in addition to post data, this will include any stashed theme mods.
+		$post_values = $this->unsanitized_post_values( array(
+			'exclude_changeset' => true,
+			'exclude_post_data' => false,
+		) );
+		$this->add_dynamic_settings( array_keys( $post_values ) ); // Ensure settings get created even if they lack an input value.
+
+		/*
+		 * Get list of IDs for settings that have values different from what is currently
+		 * saved in the changeset. By skipping any values that are already the same, the
+		 * subset of changed settings can be passed into validate_setting_values to prevent
+		 * an underprivileged modifying a single setting for which they have the capability
+		 * from being blocked from saving. This also prevents a user from touching of the
+		 * previous saved settings and overriding the associated user_id if they made no change.
+		 */
+		$changed_setting_ids = array();
+		foreach ( $post_values as $setting_id => $setting_value ) {
+			$setting = $this->get_setting( $setting_id );
+
+			if ( $setting && 'theme_mod' === $setting->type ) {
+				$prefixed_setting_id = $this->get_stylesheet() . '::' . $setting->id;
+			} else {
+				$prefixed_setting_id = $setting_id;
+			}
+
+			$is_value_changed = (
+				! isset( $existing_changeset_data[ $prefixed_setting_id ] )
+				||
+				! array_key_exists( 'value', $existing_changeset_data[ $prefixed_setting_id ] )
+				||
+				$existing_changeset_data[ $prefixed_setting_id ]['value'] !== $setting_value
+			);
+			if ( $is_value_changed ) {
+				$changed_setting_ids[] = $setting_id;
+			}
+		}
+
 		/**
 		 * Fires before save validation happens.
 		 *
@@ -1094,29 +2321,316 @@ final class WP_Customize_Manager {
 		do_action( 'customize_save_validation_before', $this );
 
 		// Validate settings.
-		$setting_validities = $this->validate_setting_values( $this->unsanitized_post_values() );
+		$validated_values = array_merge(
+			array_fill_keys( array_keys( $args['data'] ), null ), // Make sure existence/capability checks are done on value-less setting updates.
+			$post_values
+		);
+		$setting_validities = $this->validate_setting_values( $validated_values, array(
+			'validate_capability' => true,
+			'validate_existence' => true,
+		) );
 		$invalid_setting_count = count( array_filter( $setting_validities, 'is_wp_error' ) );
-		$exported_setting_validities = array_map( array( $this, 'prepare_setting_validity_for_js' ), $setting_validities );
-		if ( $invalid_setting_count > 0 ) {
+
+		/*
+		 * Short-circuit if there are invalid settings the update is transactional.
+		 * A changeset update is transactional when a status is supplied in the request.
+		 */
+		if ( $update_transactionally && $invalid_setting_count > 0 ) {
 			$response = array(
-				'setting_validities' => $exported_setting_validities,
+				'setting_validities' => $setting_validities,
 				'message' => sprintf( _n( 'There is %s invalid setting.', 'There are %s invalid settings.', $invalid_setting_count ), number_format_i18n( $invalid_setting_count ) ),
 			);
+			return new WP_Error( 'transaction_fail', '', $response );
+		}
+
+		// Obtain/merge data for changeset.
+		$original_changeset_data = $this->get_changeset_post_data( $changeset_post_id );
+		$data = $original_changeset_data;
+		if ( is_wp_error( $data ) ) {
+			$data = array();
+		}
+
+		// Ensure that all post values are included in the changeset data.
+		foreach ( $post_values as $setting_id => $post_value ) {
+			if ( ! isset( $args['data'][ $setting_id ] ) ) {
+				$args['data'][ $setting_id ] = array();
+			}
+			if ( ! isset( $args['data'][ $setting_id ]['value'] ) ) {
+				$args['data'][ $setting_id ]['value'] = $post_value;
+			}
+		}
+
+		foreach ( $args['data'] as $setting_id => $setting_params ) {
+			$setting = $this->get_setting( $setting_id );
+			if ( ! $setting || ! $setting->check_capabilities() ) {
+				continue;
+			}
+
+			// Skip updating changeset for invalid setting values.
+			if ( isset( $setting_validities[ $setting_id ] ) && is_wp_error( $setting_validities[ $setting_id ] ) ) {
+				continue;
+			}
+
+			$changeset_setting_id = $setting_id;
+			if ( 'theme_mod' === $setting->type ) {
+				$changeset_setting_id = sprintf( '%s::%s', $this->get_stylesheet(), $setting_id );
+			}
+
+			if ( null === $setting_params ) {
+				// Remove setting from changeset entirely.
+				unset( $data[ $changeset_setting_id ] );
+			} else {
+
+				if ( ! isset( $data[ $changeset_setting_id ] ) ) {
+					$data[ $changeset_setting_id ] = array();
+				}
+
+				// Merge any additional setting params that have been supplied with the existing params.
+				$merged_setting_params = array_merge( $data[ $changeset_setting_id ], $setting_params );
+
+				// Skip updating setting params if unchanged (ensuring the user_id is not overwritten).
+				if ( $data[ $changeset_setting_id ] === $merged_setting_params ) {
+					continue;
+				}
+
+				$data[ $changeset_setting_id ] = array_merge(
+					$merged_setting_params,
+					array(
+						'type' => $setting->type,
+						'user_id' => $args['user_id'],
+					)
+				);
+
+				// Clear starter_content flag in data if changeset is not explicitly being updated for starter content.
+				if ( empty( $args['starter_content'] ) ) {
+					unset( $data[ $changeset_setting_id ]['starter_content'] );
+				}
+			}
+		}
+
+		$filter_context = array(
+			'uuid' => $this->changeset_uuid(),
+			'title' => $args['title'],
+			'status' => $args['status'],
+			'date_gmt' => $args['date_gmt'],
+			'post_id' => $changeset_post_id,
+			'previous_data' => is_wp_error( $original_changeset_data ) ? array() : $original_changeset_data,
+			'manager' => $this,
+		);
+
+		/**
+		 * Filters the settings' data that will be persisted into the changeset.
+		 *
+		 * Plugins may amend additional data (such as additional meta for settings) into the changeset with this filter.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param array $data Updated changeset data, mapping setting IDs to arrays containing a $value item and optionally other metadata.
+		 * @param array $context {
+		 *     Filter context.
+		 *
+		 *     @type string               $uuid          Changeset UUID.
+		 *     @type string               $title         Requested title for the changeset post.
+		 *     @type string               $status        Requested status for the changeset post.
+		 *     @type string               $date_gmt      Requested date for the changeset post in MySQL format and GMT timezone.
+		 *     @type int|false            $post_id       Post ID for the changeset, or false if it doesn't exist yet.
+		 *     @type array                $previous_data Previous data contained in the changeset.
+		 *     @type WP_Customize_Manager $manager       Manager instance.
+		 * }
+		 */
+		$data = apply_filters( 'customize_changeset_save_data', $data, $filter_context );
+
+		// Switch theme if publishing changes now.
+		if ( 'publish' === $args['status'] && ! $this->is_theme_active() ) {
+			// Temporarily stop previewing the theme to allow switch_themes() to operate properly.
+			$this->stop_previewing_theme();
+			switch_theme( $this->get_stylesheet() );
+			update_option( 'theme_switched_via_customizer', true );
+			$this->start_previewing_theme();
+		}
+
+		// Gather the data for wp_insert_post()/wp_update_post().
+		$json_options = 0;
+		if ( defined( 'JSON_UNESCAPED_SLASHES' ) ) {
+			$json_options |= JSON_UNESCAPED_SLASHES; // Introduced in PHP 5.4. This is only to improve readability as slashes needn't be escaped in storage.
+		}
+		$json_options |= JSON_PRETTY_PRINT; // Also introduced in PHP 5.4, but WP defines constant for back compat. See WP Trac #30139.
+		$post_array = array(
+			'post_content' => wp_json_encode( $data, $json_options ),
+		);
+		if ( $args['title'] ) {
+			$post_array['post_title'] = $args['title'];
+		}
+		if ( $changeset_post_id ) {
+			$post_array['ID'] = $changeset_post_id;
+		} else {
+			$post_array['post_type'] = 'customize_changeset';
+			$post_array['post_name'] = $this->changeset_uuid();
+			$post_array['post_status'] = 'auto-draft';
+		}
+		if ( $args['status'] ) {
+			$post_array['post_status'] = $args['status'];
+		}
+
+		// Reset post date to now if we are publishing, otherwise pass post_date_gmt and translate for post_date.
+		if ( 'publish' === $args['status'] ) {
+			$post_array['post_date_gmt'] = '0000-00-00 00:00:00';
+			$post_array['post_date'] = '0000-00-00 00:00:00';
+		} elseif ( $args['date_gmt'] ) {
+			$post_array['post_date_gmt'] = $args['date_gmt'];
+			$post_array['post_date'] = get_date_from_gmt( $args['date_gmt'] );
+		}
+
+		$this->store_changeset_revision = $allow_revision;
+		add_filter( 'wp_save_post_revision_post_has_changed', array( $this, '_filter_revision_post_has_changed' ), 5, 3 );
+
+		// Update the changeset post. The publish_customize_changeset action will cause the settings in the changeset to be saved via WP_Customize_Setting::save().
+		$has_kses = ( false !== has_filter( 'content_save_pre', 'wp_filter_post_kses' ) );
+		if ( $has_kses ) {
+			kses_remove_filters(); // Prevent KSES from corrupting JSON in post_content.
+		}
+
+		// Note that updating a post with publish status will trigger WP_Customize_Manager::publish_changeset_values().
+		if ( $changeset_post_id ) {
+			$post_array['edit_date'] = true; // Prevent date clearing.
+			$r = wp_update_post( wp_slash( $post_array ), true );
+		} else {
+			$r = wp_insert_post( wp_slash( $post_array ), true );
+			if ( ! is_wp_error( $r ) ) {
+				$this->_changeset_post_id = $r; // Update cached post ID for the loaded changeset.
+			}
+		}
+		if ( $has_kses ) {
+			kses_init_filters();
+		}
+		$this->_changeset_data = null; // Reset so WP_Customize_Manager::changeset_data() will re-populate with updated contents.
+
+		remove_filter( 'wp_save_post_revision_post_has_changed', array( $this, '_filter_revision_post_has_changed' ) );
+
+		$response = array(
+			'setting_validities' => $setting_validities,
+		);
+
+		if ( is_wp_error( $r ) ) {
+			$response['changeset_post_save_failure'] = $r->get_error_code();
+			return new WP_Error( 'changeset_post_save_failure', '', $response );
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Whether a changeset revision should be made.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var bool
+	 */
+	protected $store_changeset_revision;
+
+	/**
+	 * Filters whether a changeset has changed to create a new revision.
+	 *
+	 * Note that this will not be called while a changeset post remains in auto-draft status.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param bool    $post_has_changed Whether the post has changed.
+	 * @param WP_Post $last_revision    The last revision post object.
+	 * @param WP_Post $post             The post object.
+	 *
+	 * @return bool Whether a revision should be made.
+	 */
+	public function _filter_revision_post_has_changed( $post_has_changed, $last_revision, $post ) {
+		unset( $last_revision );
+		if ( 'customize_changeset' === $post->post_type ) {
+			$post_has_changed = $this->store_changeset_revision;
+		}
+		return $post_has_changed;
+	}
+
+	/**
+	 * Publish changeset values.
+	 *
+	 * This will the values contained in a changeset, even changesets that do not
+	 * correspond to current manager instance. This is called by
+	 * `_wp_customize_publish_changeset()` when a customize_changeset post is
+	 * transitioned to the `publish` status. As such, this method should not be
+	 * called directly and instead `wp_publish_post()` should be used.
+	 *
+	 * Please note that if the settings in the changeset are for a non-activated
+	 * theme, the theme must first be switched to (via `switch_theme()`) before
+	 * invoking this method.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @see _wp_customize_publish_changeset()
+	 *
+	 * @param int $changeset_post_id ID for customize_changeset post. Defaults to the changeset for the current manager instance.
+	 * @return true|WP_Error True or error info.
+	 */
+	public function _publish_changeset_values( $changeset_post_id ) {
+		$publishing_changeset_data = $this->get_changeset_post_data( $changeset_post_id );
+		if ( is_wp_error( $publishing_changeset_data ) ) {
+			return $publishing_changeset_data;
+		}
+
+		$changeset_post = get_post( $changeset_post_id );
+
+		/*
+		 * Temporarily override the changeset context so that it will be read
+		 * in calls to unsanitized_post_values() and so that it will be available
+		 * on the $wp_customize object passed to hooks during the save logic.
+		 */
+		$previous_changeset_post_id = $this->_changeset_post_id;
+		$this->_changeset_post_id   = $changeset_post_id;
+		$previous_changeset_uuid    = $this->_changeset_uuid;
+		$this->_changeset_uuid      = $changeset_post->post_name;
+		$previous_changeset_data    = $this->_changeset_data;
+		$this->_changeset_data      = $publishing_changeset_data;
+
+		// Parse changeset data to identify theme mod settings and user IDs associated with settings to be saved.
+		$setting_user_ids = array();
+		$theme_mod_settings = array();
+		$namespace_pattern = '/^(?P<stylesheet>.+?)::(?P<setting_id>.+)$/';
+		$matches = array();
+		foreach ( $this->_changeset_data as $raw_setting_id => $setting_params ) {
+			$actual_setting_id = null;
+			$is_theme_mod_setting = (
+				isset( $setting_params['value'] )
+				&&
+				isset( $setting_params['type'] )
+				&&
+				'theme_mod' === $setting_params['type']
+				&&
+				preg_match( $namespace_pattern, $raw_setting_id, $matches )
+			);
+			if ( $is_theme_mod_setting ) {
+				if ( ! isset( $theme_mod_settings[ $matches['stylesheet'] ] ) ) {
+					$theme_mod_settings[ $matches['stylesheet'] ] = array();
+				}
+				$theme_mod_settings[ $matches['stylesheet'] ][ $matches['setting_id'] ] = $setting_params;
+
+				if ( $this->get_stylesheet() === $matches['stylesheet'] ) {
+					$actual_setting_id = $matches['setting_id'];
+				}
+			} else {
+				$actual_setting_id = $raw_setting_id;
+			}
 
-			/** This filter is documented in wp-includes/class-wp-customize-manager.php */
-			$response = apply_filters( 'customize_save_response', $response, $this );
-			wp_send_json_error( $response );
+			// Keep track of the user IDs for settings actually for this theme.
+			if ( $actual_setting_id && isset( $setting_params['user_id'] ) ) {
+				$setting_user_ids[ $actual_setting_id ] = $setting_params['user_id'];
+			}
 		}
 
-		// Do we have to switch themes?
-		if ( ! $this->is_theme_active() ) {
-			// Temporarily stop previewing the theme to allow switch_themes()
-			// to operate properly.
-			$this->stop_previewing_theme();
-			switch_theme( $this->get_stylesheet() );
-			update_option( 'theme_switched_via_customizer', true );
-			$this->start_previewing_theme();
-		}
+		$changeset_setting_values = $this->unsanitized_post_values( array(
+			'exclude_post_data' => true,
+			'exclude_changeset' => false,
+		) );
+		$changeset_setting_ids = array_keys( $changeset_setting_values );
+		$this->add_dynamic_settings( $changeset_setting_ids );
 
 		/**
 		 * Fires once the theme has switched in the Customizer, but before settings
@@ -1124,12 +2638,52 @@ final class WP_Customize_Manager {
 		 *
 		 * @since 3.4.0
 		 *
-		 * @param WP_Customize_Manager $this WP_Customize_Manager instance.
+		 * @param WP_Customize_Manager $manager WP_Customize_Manager instance.
 		 */
 		do_action( 'customize_save', $this );
 
-		foreach ( $this->settings as $setting ) {
-			$setting->save();
+		/*
+		 * Ensure that all settings will allow themselves to be saved. Note that
+		 * this is safe because the setting would have checked the capability
+		 * when the setting value was written into the changeset. So this is why
+		 * an additional capability check is not required here.
+		 */
+		$original_setting_capabilities = array();
+		foreach ( $changeset_setting_ids as $setting_id ) {
+			$setting = $this->get_setting( $setting_id );
+			if ( $setting && ! isset( $setting_user_ids[ $setting_id ] ) ) {
+				$original_setting_capabilities[ $setting->id ] = $setting->capability;
+				$setting->capability = 'exist';
+			}
+		}
+
+		$original_user_id = get_current_user_id();
+		foreach ( $changeset_setting_ids as $setting_id ) {
+			$setting = $this->get_setting( $setting_id );
+			if ( $setting ) {
+				/*
+				 * Set the current user to match the user who saved the value into
+				 * the changeset so that any filters that apply during the save
+				 * process will respect the original user's capabilities. This
+				 * will ensure, for example, that KSES won't strip unsafe HTML
+				 * when a scheduled changeset publishes via WP Cron.
+				 */
+				if ( isset( $setting_user_ids[ $setting_id ] ) ) {
+					wp_set_current_user( $setting_user_ids[ $setting_id ] );
+				} else {
+					wp_set_current_user( $original_user_id );
+				}
+
+				$setting->save();
+			}
+		}
+		wp_set_current_user( $original_user_id );
+
+		// Update the stashed theme mod settings, removing the active theme's stashed settings, if activated.
+		if ( did_action( 'switch_theme' ) ) {
+			$other_theme_mod_settings = $theme_mod_settings;
+			unset( $other_theme_mod_settings[ $this->get_stylesheet() ] );
+			$this->update_stashed_theme_mod_settings( $other_theme_mod_settings );
 		}
 
 		/**
@@ -1137,27 +2691,62 @@ final class WP_Customize_Manager {
 		 *
 		 * @since 3.6.0
 		 *
-		 * @param WP_Customize_Manager $this WP_Customize_Manager instance.
+		 * @param WP_Customize_Manager $manager WP_Customize_Manager instance.
 		 */
 		do_action( 'customize_save_after', $this );
 
-		$data = array(
-			'setting_validities' => $exported_setting_validities,
-		);
+		// Restore original capabilities.
+		foreach ( $original_setting_capabilities as $setting_id => $capability ) {
+			$setting = $this->get_setting( $setting_id );
+			if ( $setting ) {
+				$setting->capability = $capability;
+			}
+		}
 
-		/**
-		 * Filters response data for a successful customize_save Ajax request.
-		 *
-		 * This filter does not apply if there was a nonce or authentication failure.
-		 *
-		 * @since 4.2.0
-		 *
-		 * @param array                $data Additional information passed back to the 'saved'
-		 *                                   event on `wp.customize`.
-		 * @param WP_Customize_Manager $this WP_Customize_Manager instance.
-		 */
-		$response = apply_filters( 'customize_save_response', $data, $this );
-		wp_send_json_success( $response );
+		// Restore original changeset data.
+		$this->_changeset_data    = $previous_changeset_data;
+		$this->_changeset_post_id = $previous_changeset_post_id;
+		$this->_changeset_uuid    = $previous_changeset_uuid;
+
+		return true;
+	}
+
+	/**
+	 * Update stashed theme mod settings.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param array $inactive_theme_mod_settings Mapping of stylesheet to arrays of theme mod settings.
+	 * @return array|false Returns array of updated stashed theme mods or false if the update failed or there were no changes.
+	 */
+	protected function update_stashed_theme_mod_settings( $inactive_theme_mod_settings ) {
+		$stashed_theme_mod_settings = get_option( 'customize_stashed_theme_mods' );
+		if ( empty( $stashed_theme_mod_settings ) ) {
+			$stashed_theme_mod_settings = array();
+		}
+
+		// Delete any stashed theme mods for the active theme since since they would have been loaded and saved upon activation.
+		unset( $stashed_theme_mod_settings[ $this->get_stylesheet() ] );
+
+		// Merge inactive theme mods with the stashed theme mod settings.
+		foreach ( $inactive_theme_mod_settings as $stylesheet => $theme_mod_settings ) {
+			if ( ! isset( $stashed_theme_mod_settings[ $stylesheet ] ) ) {
+				$stashed_theme_mod_settings[ $stylesheet ] = array();
+			}
+
+			$stashed_theme_mod_settings[ $stylesheet ] = array_merge(
+				$stashed_theme_mod_settings[ $stylesheet ],
+				$theme_mod_settings
+			);
+		}
+
+		$autoload = false;
+		$result = update_option( 'customize_stashed_theme_mods', $stashed_theme_mod_settings, $autoload );
+		if ( ! $result ) {
+			return false;
+		}
+		return $stashed_theme_mod_settings;
 	}
 
 	/**
@@ -1535,7 +3124,7 @@ final class WP_Customize_Manager {
 		<script type="text/html" id="tmpl-customize-control-notifications">
 			<ul>
 				<# _.each( data.notifications, function( notification ) { #>
-					<li class="notice notice-{{ notification.type || 'info' }} {{ data.altNotice ? 'notice-alt' : '' }}" data-code="{{ notification.code }}" data-type="{{ notification.type }}">{{ notification.message || notification.code }}</li>
+					<li class="notice notice-{{ notification.type || 'info' }} {{ data.altNotice ? 'notice-alt' : '' }}" data-code="{{ notification.code }}" data-type="{{ notification.type }}">{{{ notification.message || notification.code }}}</li>
 				<# } ); #>
 			</ul>
 		</script>
@@ -1546,12 +3135,15 @@ final class WP_Customize_Manager {
 	 * Helper function to compare two objects by priority, ensuring sort stability via instance_number.
 	 *
 	 * @since 3.4.0
+	 * @deprecated 4.7.0 Use wp_list_sort()
 	 *
 	 * @param WP_Customize_Panel|WP_Customize_Section|WP_Customize_Control $a Object A.
 	 * @param WP_Customize_Panel|WP_Customize_Section|WP_Customize_Control $b Object B.
 	 * @return int
 	 */
 	protected function _cmp_priority( $a, $b ) {
+		_deprecated_function( __METHOD__, '4.7.0', 'wp_list_sort' );
+
 		if ( $a->priority === $b->priority ) {
 			return $a->instance_number - $b->instance_number;
 		} else {
@@ -1571,7 +3163,10 @@ final class WP_Customize_Manager {
 	public function prepare_controls() {
 
 		$controls = array();
-		uasort( $this->controls, array( $this, '_cmp_priority' ) );
+		$this->controls = wp_list_sort( $this->controls, array(
+			'priority'        => 'ASC',
+			'instance_number' => 'ASC',
+		), 'ASC', true );
 
 		foreach ( $this->controls as $id => $control ) {
 			if ( ! isset( $this->sections[ $control->section ] ) || ! $control->check_capabilities() ) {
@@ -1584,7 +3179,10 @@ final class WP_Customize_Manager {
 		$this->controls = $controls;
 
 		// Prepare sections.
-		uasort( $this->sections, array( $this, '_cmp_priority' ) );
+		$this->sections = wp_list_sort( $this->sections, array(
+			'priority'        => 'ASC',
+			'instance_number' => 'ASC',
+		), 'ASC', true );
 		$sections = array();
 
 		foreach ( $this->sections as $section ) {
@@ -1592,7 +3190,11 @@ final class WP_Customize_Manager {
 				continue;
 			}
 
-			usort( $section->controls, array( $this, '_cmp_priority' ) );
+
+			$section->controls = wp_list_sort( $section->controls, array(
+				'priority'        => 'ASC',
+				'instance_number' => 'ASC',
+			) );
 
 			if ( ! $section->panel ) {
 				// Top-level section.
@@ -1607,7 +3209,10 @@ final class WP_Customize_Manager {
 		$this->sections = $sections;
 
 		// Prepare panels.
-		uasort( $this->panels, array( $this, '_cmp_priority' ) );
+		$this->panels = wp_list_sort( $this->panels, array(
+			'priority'        => 'ASC',
+			'instance_number' => 'ASC',
+		), 'ASC', true );
 		$panels = array();
 
 		foreach ( $this->panels as $panel ) {
@@ -1615,14 +3220,20 @@ final class WP_Customize_Manager {
 				continue;
 			}
 
-			uasort( $panel->sections, array( $this, '_cmp_priority' ) );
+			$panel->sections = wp_list_sort( $panel->sections, array(
+				'priority'        => 'ASC',
+				'instance_number' => 'ASC',
+			), 'ASC', true );
 			$panels[ $panel->id ] = $panel;
 		}
 		$this->panels = $panels;
 
 		// Sort panels and top-level sections together.
 		$this->containers = array_merge( $this->panels, $this->sections );
-		uasort( $this->containers, array( $this, '_cmp_priority' ) );
+		$this->containers = wp_list_sort( $this->containers, array(
+			'priority'        => 'ASC',
+			'instance_number' => 'ASC',
+		), 'ASC', true );
 	}
 
 	/**
@@ -1700,6 +3311,67 @@ final class WP_Customize_Manager {
 		return $preview_url;
 	}
 
+	/**
+	 * Determines whether the admin and the frontend are on different domains.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return bool Whether cross-domain.
+	 */
+	public function is_cross_domain() {
+		$admin_origin = wp_parse_url( admin_url() );
+		$home_origin = wp_parse_url( home_url() );
+		$cross_domain = ( strtolower( $admin_origin['host'] ) !== strtolower( $home_origin['host'] ) );
+		return $cross_domain;
+	}
+
+	/**
+	 * Get URLs allowed to be previewed.
+	 *
+	 * If the front end and the admin are served from the same domain, load the
+	 * preview over ssl if the Customizer is being loaded over ssl. This avoids
+	 * insecure content warnings. This is not attempted if the admin and front end
+	 * are on different domains to avoid the case where the front end doesn't have
+	 * ssl certs. Domain mapping plugins can allow other urls in these conditions
+	 * using the customize_allowed_urls filter.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @returns array Allowed URLs.
+	 */
+	public function get_allowed_urls() {
+		$allowed_urls = array( home_url( '/' ) );
+
+		if ( is_ssl() && ! $this->is_cross_domain() ) {
+			$allowed_urls[] = home_url( '/', 'https' );
+		}
+
+		/**
+		 * Filters the list of URLs allowed to be clicked and followed in the Customizer preview.
+		 *
+		 * @since 3.4.0
+		 *
+		 * @param array $allowed_urls An array of allowed URLs.
+		 */
+		$allowed_urls = array_unique( apply_filters( 'customize_allowed_urls', $allowed_urls ) );
+
+		return $allowed_urls;
+	}
+
+	/**
+	 * Get messenger channel.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return string Messenger channel.
+	 */
+	public function get_messenger_channel() {
+		return $this->messenger_channel;
+	}
+
 	/**
 	 * Set URL to link the user to when closing the Customizer.
 	 *
@@ -1809,40 +3481,33 @@ final class WP_Customize_Manager {
 	 * @since 4.4.0
 	 */
 	public function customize_pane_settings() {
-		/*
-		 * If the front end and the admin are served from the same domain, load the
-		 * preview over ssl if the Customizer is being loaded over ssl. This avoids
-		 * insecure content warnings. This is not attempted if the admin and front end
-		 * are on different domains to avoid the case where the front end doesn't have
-		 * ssl certs. Domain mapping plugins can allow other urls in these conditions
-		 * using the customize_allowed_urls filter.
-		 */
-
-		$allowed_urls = array( home_url( '/' ) );
-		$admin_origin = parse_url( admin_url() );
-		$home_origin  = parse_url( home_url() );
-		$cross_domain = ( strtolower( $admin_origin['host'] ) !== strtolower( $home_origin['host'] ) );
-
-		if ( is_ssl() && ! $cross_domain ) {
-			$allowed_urls[] = home_url( '/', 'https' );
-		}
-
-		/**
-		 * Filters the list of URLs allowed to be clicked and followed in the Customizer preview.
-		 *
-		 * @since 3.4.0
-		 *
-		 * @param array $allowed_urls An array of allowed URLs.
-		 */
-		$allowed_urls = array_unique( apply_filters( 'customize_allowed_urls', $allowed_urls ) );
 
 		$login_url = add_query_arg( array(
 			'interim-login' => 1,
 			'customize-login' => 1,
 		), wp_login_url() );
 
+		// Ensure dirty flags are set for modified settings.
+		foreach ( array_keys( $this->unsanitized_post_values() ) as $setting_id ) {
+			$setting = $this->get_setting( $setting_id );
+			if ( $setting ) {
+				$setting->dirty = true;
+			}
+		}
+
 		// Prepare Customizer settings to pass to JavaScript.
 		$settings = array(
+			'changeset' => array(
+				'uuid' => $this->changeset_uuid(),
+				'status' => $this->changeset_post_id() ? get_post_status( $this->changeset_post_id() ) : '',
+			),
+			'timeouts' => array(
+				'windowRefresh' => 250,
+				'changesetAutoSave' => AUTOSAVE_INTERVAL * 1000,
+				'keepAliveCheck' => 2500,
+				'reflowPaneContents' => 100,
+				'previewFrameSensitivity' => 2000,
+			),
 			'theme'    => array(
 				'stylesheet' => $this->get_stylesheet(),
 				'active'     => $this->is_theme_active(),
@@ -1852,8 +3517,8 @@ final class WP_Customize_Manager {
 				'parent'        => esc_url_raw( admin_url() ),
 				'activated'     => esc_url_raw( home_url( '/' ) ),
 				'ajax'          => esc_url_raw( admin_url( 'admin-ajax.php', 'relative' ) ),
-				'allowed'       => array_map( 'esc_url_raw', $allowed_urls ),
-				'isCrossDomain' => $cross_domain,
+				'allowed'       => array_map( 'esc_url_raw', $this->get_allowed_urls() ),
+				'isCrossDomain' => $this->is_cross_domain(),
 				'home'          => esc_url_raw( home_url( '/' ) ),
 				'login'         => esc_url_raw( $login_url ),
 			),
@@ -1977,6 +3642,7 @@ final class WP_Customize_Manager {
 		$this->register_control_type( 'WP_Customize_Upload_Control' );
 		$this->register_control_type( 'WP_Customize_Image_Control' );
 		$this->register_control_type( 'WP_Customize_Background_Image_Control' );
+		$this->register_control_type( 'WP_Customize_Background_Position_Control' );
 		$this->register_control_type( 'WP_Customize_Cropped_Image_Control' );
 		$this->register_control_type( 'WP_Customize_Site_Icon_Control' );
 		$this->register_control_type( 'WP_Customize_Theme_Control' );
@@ -2166,27 +3832,120 @@ final class WP_Customize_Manager {
 			'section' => 'colors',
 		) ) );
 
-
 		/* Custom Header */
 
+		if ( current_theme_supports( 'custom-header', 'video' ) ) {
+			$title = __( 'Header Media' );
+			$description = '<p>' . __( 'If you add a video, the image will be used as a fallback while the video loads.' ) . '</p>';
+
+			// @todo Customizer sections should support having notifications just like controls do. See <https://core.trac.wordpress.org/ticket/38794>.
+			$description .= '<div class="customize-control-notifications-container header-video-not-currently-previewable" style="display: none"><ul>';
+			$description .= '<li class="notice notice-info">' . __( 'This theme doesn\'t support video headers on this page. Navigate to the front page or another page that supports video headers.' ) . '</li>';
+			$description .= '</ul></div>';
+			$width = absint( get_theme_support( 'custom-header', 'width' ) );
+			$height = absint( get_theme_support( 'custom-header', 'height' ) );
+			if ( $width && $height ) {
+				$control_description = sprintf(
+					/* translators: 1: .mp4, 2: header size in pixels */
+					__( 'Upload your video in %1$s format and minimize its file size for best results. Your theme recommends dimensions of %2$s pixels.' ),
+					'<code>.mp4</code>',
+					sprintf( '<strong>%s &times; %s</strong>', $width, $height )
+				);
+			} elseif ( $width ) {
+				$control_description = sprintf(
+					/* translators: 1: .mp4, 2: header width in pixels */
+					__( 'Upload your video in %1$s format and minimize its file size for best results. Your theme recommends a width of %2$s pixels.' ),
+					'<code>.mp4</code>',
+					sprintf( '<strong>%s</strong>', $width )
+				);
+			} else {
+				$control_description = sprintf(
+					/* translators: 1: .mp4, 2: header height in pixels */
+					__( 'Upload your video in %1$s format and minimize its file size for best results. Your theme recommends a height of %2$s pixels.' ),
+					'<code>.mp4</code>',
+					sprintf( '<strong>%s</strong>', $height )
+				);
+			}
+		} else {
+			$title = __( 'Header Image' );
+			$description = '';
+			$control_description = '';
+		}
+
 		$this->add_section( 'header_image', array(
-			'title'          => __( 'Header Image' ),
+			'title'          => $title,
+			'description'    => $description,
 			'theme_supports' => 'custom-header',
 			'priority'       => 60,
 		) );
 
+		$this->add_setting( 'header_video', array(
+			'theme_supports'    => array( 'custom-header', 'video' ),
+			'transport'         => 'postMessage',
+			'sanitize_callback' => 'absint',
+			'validate_callback' => array( $this, '_validate_header_video' ),
+		) );
+
+		$this->add_setting( 'external_header_video', array(
+			'theme_supports'    => array( 'custom-header', 'video' ),
+			'transport'         => 'postMessage',
+			'sanitize_callback' => 'esc_url_raw',
+			'validate_callback' => array( $this, '_validate_external_header_video' ),
+		) );
+
 		$this->add_setting( new WP_Customize_Filter_Setting( $this, 'header_image', array(
-			'default'        => get_theme_support( 'custom-header', 'default-image' ),
+			'default'        => sprintf( get_theme_support( 'custom-header', 'default-image' ), get_template_directory_uri(), get_stylesheet_directory_uri() ),
 			'theme_supports' => 'custom-header',
 		) ) );
 
 		$this->add_setting( new WP_Customize_Header_Image_Setting( $this, 'header_image_data', array(
-			// 'default'        => get_theme_support( 'custom-header', 'default-image' ),
 			'theme_supports' => 'custom-header',
 		) ) );
 
+		/*
+		 * Switch image settings to postMessage when video support is enabled since
+		 * it entails that the_custom_header_markup() will be used, and thus selective
+		 * refresh can be utilized.
+		 */
+		if ( current_theme_supports( 'custom-header', 'video' ) ) {
+			$this->get_setting( 'header_image' )->transport = 'postMessage';
+			$this->get_setting( 'header_image_data' )->transport = 'postMessage';
+		}
+
+		$this->add_control( new WP_Customize_Media_Control( $this, 'header_video', array(
+			'theme_supports' => array( 'custom-header', 'video' ),
+			'label'          => __( 'Header Video' ),
+			'description'    => $control_description,
+			'section'        => 'header_image',
+			'mime_type'      => 'video',
+			// @todo These button_labels can be removed once WP_Customize_Media_Control provides mime_type-specific labels automatically. See <https://core.trac.wordpress.org/ticket/38796>.
+			'button_labels'  => array(
+				'select'       => __( 'Select Video' ),
+				'change'       => __( 'Change Video' ),
+				'placeholder'  => __( 'No video selected' ),
+				'frame_title'  => __( 'Select Video' ),
+				'frame_button' => __( 'Choose Video' ),
+			),
+			'active_callback' => 'is_header_video_active',
+		) ) );
+
+		$this->add_control( 'external_header_video', array(
+			'theme_supports' => array( 'custom-header', 'video' ),
+			'type'           => 'url',
+			'description'    => __( 'Or, enter a YouTube URL:' ),
+			'section'        => 'header_image',
+			'active_callback'=> 'is_front_page',
+		) );
+
 		$this->add_control( new WP_Customize_Header_Image_Control( $this ) );
 
+		$this->selective_refresh->add_partial( 'custom_header', array(
+			'selector'            => '#wp-custom-header',
+			'render_callback'     => 'the_custom_header_markup',
+			'settings'            => array( 'header_video', 'external_header_video', 'header_image' ), // The image is used as a video fallback here.
+			'container_inclusive' => true,
+		) );
+
 		/* Custom Background */
 
 		$this->add_section( 'background_image', array(
@@ -2198,123 +3957,209 @@ final class WP_Customize_Manager {
 		$this->add_setting( 'background_image', array(
 			'default'        => get_theme_support( 'custom-background', 'default-image' ),
 			'theme_supports' => 'custom-background',
+			'sanitize_callback' => array( $this, '_sanitize_background_setting' ),
 		) );
 
 		$this->add_setting( new WP_Customize_Background_Image_Setting( $this, 'background_image_thumb', array(
 			'theme_supports' => 'custom-background',
+			'sanitize_callback' => array( $this, '_sanitize_background_setting' ),
 		) ) );
 
 		$this->add_control( new WP_Customize_Background_Image_Control( $this ) );
 
-		$this->add_setting( 'background_repeat', array(
-			'default'        => get_theme_support( 'custom-background', 'default-repeat' ),
+		$this->add_setting( 'background_preset', array(
+			'default'        => get_theme_support( 'custom-background', 'default-preset' ),
 			'theme_supports' => 'custom-background',
+			'sanitize_callback' => array( $this, '_sanitize_background_setting' ),
 		) );
 
-		$this->add_control( 'background_repeat', array(
-			'label'      => __( 'Background Repeat' ),
+		$this->add_control( 'background_preset', array(
+			'label'      => _x( 'Preset', 'Background Preset' ),
 			'section'    => 'background_image',
-			'type'       => 'radio',
+			'type'       => 'select',
 			'choices'    => array(
-				'no-repeat'  => __('No Repeat'),
-				'repeat'     => __('Tile'),
-				'repeat-x'   => __('Tile Horizontally'),
-				'repeat-y'   => __('Tile Vertically'),
+				'default' => _x( 'Default', 'Default Preset' ),
+				'fill'    => __( 'Fill Screen' ),
+				'fit'     => __( 'Fit to Screen' ),
+				'repeat'  => _x( 'Repeat', 'Repeat Image' ),
+				'custom'  => _x( 'Custom', 'Custom Preset' ),
 			),
 		) );
 
 		$this->add_setting( 'background_position_x', array(
 			'default'        => get_theme_support( 'custom-background', 'default-position-x' ),
 			'theme_supports' => 'custom-background',
+			'sanitize_callback' => array( $this, '_sanitize_background_setting' ),
+		) );
+
+		$this->add_setting( 'background_position_y', array(
+			'default'        => get_theme_support( 'custom-background', 'default-position-y' ),
+			'theme_supports' => 'custom-background',
+			'sanitize_callback' => array( $this, '_sanitize_background_setting' ),
+		) );
+
+		$this->add_control( new WP_Customize_Background_Position_Control( $this, 'background_position', array(
+			'label'    => __( 'Image Position' ),
+			'section'  => 'background_image',
+			'settings' => array(
+				'x' => 'background_position_x',
+				'y' => 'background_position_y',
+			),
+		) ) );
+
+		$this->add_setting( 'background_size', array(
+			'default'        => get_theme_support( 'custom-background', 'default-size' ),
+			'theme_supports' => 'custom-background',
+			'sanitize_callback' => array( $this, '_sanitize_background_setting' ),
 		) );
 
-		$this->add_control( 'background_position_x', array(
-			'label'      => __( 'Background Position' ),
+		$this->add_control( 'background_size', array(
+			'label'      => __( 'Image Size' ),
 			'section'    => 'background_image',
-			'type'       => 'radio',
+			'type'       => 'select',
 			'choices'    => array(
-				'left'       => __('Left'),
-				'center'     => __('Center'),
-				'right'      => __('Right'),
+				'auto'    => __( 'Original' ),
+				'contain' => __( 'Fit to Screen' ),
+				'cover'   => __( 'Fill Screen' ),
 			),
 		) );
 
+		$this->add_setting( 'background_repeat', array(
+			'default'           => get_theme_support( 'custom-background', 'default-repeat' ),
+			'sanitize_callback' => array( $this, '_sanitize_background_setting' ),
+			'theme_supports'    => 'custom-background',
+		) );
+
+		$this->add_control( 'background_repeat', array(
+			'label'    => __( 'Repeat Background Image' ),
+			'section'  => 'background_image',
+			'type'     => 'checkbox',
+		) );
+
 		$this->add_setting( 'background_attachment', array(
-			'default'        => get_theme_support( 'custom-background', 'default-attachment' ),
-			'theme_supports' => 'custom-background',
+			'default'           => get_theme_support( 'custom-background', 'default-attachment' ),
+			'sanitize_callback' => array( $this, '_sanitize_background_setting' ),
+			'theme_supports'    => 'custom-background',
 		) );
 
 		$this->add_control( 'background_attachment', array(
-			'label'      => __( 'Background Attachment' ),
-			'section'    => 'background_image',
-			'type'       => 'radio',
-			'choices'    => array(
-				'scroll'     => __('Scroll'),
-				'fixed'      => __('Fixed'),
-			),
+			'label'    => __( 'Scroll with Page' ),
+			'section'  => 'background_image',
+			'type'     => 'checkbox',
 		) );
 
+
 		// If the theme is using the default background callback, we can update
 		// the background CSS using postMessage.
 		if ( get_theme_support( 'custom-background', 'wp-head-callback' ) === '_custom_background_cb' ) {
-			foreach ( array( 'color', 'image', 'position_x', 'repeat', 'attachment' ) as $prop ) {
+			foreach ( array( 'color', 'image', 'preset', 'position_x', 'position_y', 'size', 'repeat', 'attachment' ) as $prop ) {
 				$this->get_setting( 'background_' . $prop )->transport = 'postMessage';
 			}
 		}
 
-		/* Static Front Page */
-		// #WP19627
+		/*
+		 * Static Front Page
+		 * See also https://core.trac.wordpress.org/ticket/19627 which introduces the the static-front-page theme_support.
+		 * The following replicates behavior from options-reading.php.
+		 */
 
-		// Replicate behavior from options-reading.php and hide front page options if there are no pages
-		if ( get_pages() ) {
-			$this->add_section( 'static_front_page', array(
-				'title'          => __( 'Static Front Page' ),
-			//	'theme_supports' => 'static-front-page',
-				'priority'       => 120,
-				'description'    => __( 'Your theme supports a static front page.' ),
-			) );
+		$this->add_section( 'static_front_page', array(
+			'title' => __( 'Static Front Page' ),
+			'priority' => 120,
+			'description' => __( 'Your theme supports a static front page.' ),
+			'active_callback' => array( $this, 'has_published_pages' ),
+		) );
 
-			$this->add_setting( 'show_on_front', array(
-				'default'        => get_option( 'show_on_front' ),
-				'capability'     => 'manage_options',
-				'type'           => 'option',
-			//	'theme_supports' => 'static-front-page',
-			) );
+		$this->add_setting( 'show_on_front', array(
+			'default' => get_option( 'show_on_front' ),
+			'capability' => 'manage_options',
+			'type' => 'option',
+		) );
 
-			$this->add_control( 'show_on_front', array(
-				'label'   => __( 'Front page displays' ),
-				'section' => 'static_front_page',
-				'type'    => 'radio',
-				'choices' => array(
-					'posts' => __( 'Your latest posts' ),
-					'page'  => __( 'A static page' ),
-				),
-			) );
+		$this->add_control( 'show_on_front', array(
+			'label' => __( 'Front page displays' ),
+			'section' => 'static_front_page',
+			'type' => 'radio',
+			'choices' => array(
+				'posts' => __( 'Your latest posts' ),
+				'page'  => __( 'A static page' ),
+			),
+		) );
 
-			$this->add_setting( 'page_on_front', array(
-				'type'       => 'option',
-				'capability' => 'manage_options',
-			//	'theme_supports' => 'static-front-page',
-			) );
+		$this->add_setting( 'page_on_front', array(
+			'type'       => 'option',
+			'capability' => 'manage_options',
+		) );
 
-			$this->add_control( 'page_on_front', array(
-				'label'      => __( 'Front page' ),
-				'section'    => 'static_front_page',
-				'type'       => 'dropdown-pages',
-			) );
+		$this->add_control( 'page_on_front', array(
+			'label' => __( 'Front page' ),
+			'section' => 'static_front_page',
+			'type' => 'dropdown-pages',
+			'allow_addition' => true,
+		) );
 
-			$this->add_setting( 'page_for_posts', array(
-				'type'           => 'option',
-				'capability'     => 'manage_options',
-			//	'theme_supports' => 'static-front-page',
-			) );
+		$this->add_setting( 'page_for_posts', array(
+			'type' => 'option',
+			'capability' => 'manage_options',
+		) );
 
-			$this->add_control( 'page_for_posts', array(
-				'label'      => __( 'Posts page' ),
-				'section'    => 'static_front_page',
-				'type'       => 'dropdown-pages',
-			) );
+		$this->add_control( 'page_for_posts', array(
+			'label' => __( 'Posts page' ),
+			'section' => 'static_front_page',
+			'type' => 'dropdown-pages',
+			'allow_addition' => true,
+		) );
+
+		/* Custom CSS */
+		$this->add_section( 'custom_css', array(
+			'title'              => __( 'Additional CSS' ),
+			'priority'           => 200,
+			'description_hidden' => true,
+			'description'        => sprintf( '%s<br /><a href="%s" class="external-link" target="_blank">%s<span class="screen-reader-text">%s</span></a>',
+				__( 'CSS allows you to customize the appearance and layout of your site with code. Separate CSS is saved for each of your themes. In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key.' ),
+				esc_url( __( 'https://codex.wordpress.org/CSS' ) ),
+				__( 'Learn more about CSS' ),
+				__( '(link opens in a new window)' )
+			),
+		) );
+
+		$custom_css_setting = new WP_Customize_Custom_CSS_Setting( $this, sprintf( 'custom_css[%s]', get_stylesheet() ), array(
+			'capability' => 'edit_css',
+			'default' => sprintf( "/*\n%s\n*/", __( "You can add your own CSS here.\n\nClick the help icon above to learn more." ) ),
+		) );
+		$this->add_setting( $custom_css_setting );
+
+		$this->add_control( 'custom_css', array(
+			'type'     => 'textarea',
+			'section'  => 'custom_css',
+			'settings' => array( 'default' => $custom_css_setting->id ),
+			'input_attrs' => array(
+				'class' => 'code', // Ensures contents displayed as LTR instead of RTL.
+			),
+		) );
+	}
+
+	/**
+	 * Return whether there are published pages.
+	 *
+	 * Used as active callback for static front page section and controls.
+	 *
+	 * @access private
+	 * @since 4.7.0
+	 *
+	 * @returns bool Whether there are published (or to be published) pages.
+	 */
+	public function has_published_pages() {
+
+		$setting = $this->get_setting( 'nav_menus_created_posts' );
+		if ( $setting ) {
+			foreach ( $setting->value() as $post_id ) {
+				if ( 'page' === get_post_type( $post_id ) ) {
+					return true;
+				}
+			}
 		}
+		return 0 !== count( get_pages() );
 	}
 
 	/**
@@ -2326,7 +4171,8 @@ final class WP_Customize_Manager {
 	 * @see add_dynamic_settings()
 	 */
 	public function register_dynamic_settings() {
-		$this->add_dynamic_settings( array_keys( $this->unsanitized_post_values() ) );
+		$setting_ids = array_keys( $this->unsanitized_post_values() );
+		$this->add_dynamic_settings( $setting_ids );
 	}
 
 	/**
@@ -2351,6 +4197,120 @@ final class WP_Customize_Manager {
 		return $color;
 	}
 
+	/**
+	 * Callback for validating a background setting value.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param string $value Repeat value.
+	 * @param WP_Customize_Setting $setting Setting.
+	 * @return string|WP_Error Background value or validation error.
+	 */
+	public function _sanitize_background_setting( $value, $setting ) {
+		if ( 'background_repeat' === $setting->id ) {
+			if ( ! in_array( $value, array( 'repeat-x', 'repeat-y', 'repeat', 'no-repeat' ) ) ) {
+				return new WP_Error( 'invalid_value', __( 'Invalid value for background repeat.' ) );
+			}
+		} elseif ( 'background_attachment' === $setting->id ) {
+			if ( ! in_array( $value, array( 'fixed', 'scroll' ) ) ) {
+				return new WP_Error( 'invalid_value', __( 'Invalid value for background attachment.' ) );
+			}
+		} elseif ( 'background_position_x' === $setting->id ) {
+			if ( ! in_array( $value, array( 'left', 'center', 'right' ), true ) ) {
+				return new WP_Error( 'invalid_value', __( 'Invalid value for background position X.' ) );
+			}
+		} elseif ( 'background_position_y' === $setting->id ) {
+			if ( ! in_array( $value, array( 'top', 'center', 'bottom' ), true ) ) {
+				return new WP_Error( 'invalid_value', __( 'Invalid value for background position Y.' ) );
+			}
+		} elseif ( 'background_size' === $setting->id ) {
+			if ( ! in_array( $value, array( 'auto', 'contain', 'cover' ), true ) ) {
+				return new WP_Error( 'invalid_value', __( 'Invalid value for background size.' ) );
+			}
+		} elseif ( 'background_preset' === $setting->id ) {
+			if ( ! in_array( $value, array( 'default', 'fill', 'fit', 'repeat', 'custom' ), true ) ) {
+				return new WP_Error( 'invalid_value', __( 'Invalid value for background size.' ) );
+			}
+		} elseif ( 'background_image' === $setting->id || 'background_image_thumb' === $setting->id ) {
+			$value = empty( $value ) ? '' : esc_url_raw( $value );
+		} else {
+			return new WP_Error( 'unrecognized_setting', __( 'Unrecognized background setting.' ) );
+		}
+		return $value;
+	}
+
+	/**
+	 * Export header video settings to facilitate selective refresh.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array $response Response.
+	 * @param WP_Customize_Selective_Refresh $selective_refresh Selective refresh component.
+	 * @param array $partials Array of partials.
+	 * @return array
+	 */
+	public function export_header_video_settings( $response, $selective_refresh, $partials ) {
+		if ( isset( $partials['custom_header'] ) ) {
+			$response['custom_header_settings'] = get_header_video_settings();
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Callback for validating the header_video value.
+	 *
+	 * Ensures that the selected video is less than 8MB and provides an error message.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param WP_Error $validity
+	 * @param mixed $value
+	 * @return mixed
+	 */
+	public function _validate_header_video( $validity, $value ) {
+		$video = get_attached_file( absint( $value ) );
+		if ( $video ) {
+			$size = filesize( $video );
+			if ( 8 < $size / pow( 1024, 2 ) ) { // Check whether the size is larger than 8MB.
+				$validity->add( 'size_too_large',
+					__( 'This video file is too large to use as a header video. Try a shorter video or optimize the compression settings and re-upload a file that is less than 8MB. Or, upload your video to YouTube and link it with the option below.' )
+				);
+			}
+			if ( '.mp4' !== substr( $video, -4 ) && '.mov' !== substr( $video, -4 ) ) { // Check for .mp4 or .mov format, which (assuming h.264 encoding) are the only cross-browser-supported formats.
+				$validity->add( 'invalid_file_type', sprintf(
+					/* translators: 1: .mp4, 2: .mov */
+					__( 'Only %1$s or %2$s files may be used for header video. Please convert your video file and try again, or, upload your video to YouTube and link it with the option below.' ),
+					'<code>.mp4</code>',
+					'<code>.mov</code>'
+				) );
+			}
+		}
+		return $validity;
+	}
+
+	/**
+	 * Callback for validating the external_header_video value.
+	 *
+	 * Ensures that the provided URL is supported.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param WP_Error $validity
+	 * @param mixed $value
+	 * @return mixed
+	 */
+	public function _validate_external_header_video( $validity, $value ) {
+		$video = esc_url_raw( $value );
+		if ( $video ) {
+			if ( ! preg_match( '#^https?://(?:www\.)?(?:youtube\.com/watch|youtu\.be/)#', $video ) ) {
+				$validity->add( 'invalid_url', __( 'Please enter a valid YouTube URL.' ) );
+			}
+		}
+		return $validity;
+	}
+
 	/**
 	 * Callback for rendering the custom logo, used in the custom_logo partial.
 	 *
diff --git a/wp-includes/class-wp-customize-nav-menus.php b/wp-includes/class-wp-customize-nav-menus.php
index f9832a69b..ca1b72f7e 100644
--- a/wp-includes/class-wp-customize-nav-menus.php
+++ b/wp-includes/class-wp-customize-nav-menus.php
@@ -48,7 +48,12 @@ final class WP_Customize_Nav_Menus {
 		$this->previewed_menus = array();
 		$this->manager         = $manager;
 
-		// Skip useless hooks when the user can't manage nav menus anyway.
+		// See https://github.com/xwp/wp-customize-snapshots/blob/962586659688a5b1fd9ae93618b7ce2d4e7a421c/php/class-customize-snapshot-manager.php#L469-L499
+		add_action( 'customize_register', array( $this, 'customize_register' ), 11 );
+		add_filter( 'customize_dynamic_setting_args', array( $this, 'filter_dynamic_setting_args' ), 10, 2 );
+		add_filter( 'customize_dynamic_setting_class', array( $this, 'filter_dynamic_setting_class' ), 10, 3 );
+
+		// Skip remaining hooks when the user can't manage nav menus anyway.
 		if ( ! current_user_can( 'edit_theme_options' ) ) {
 			return;
 		}
@@ -56,16 +61,13 @@ final class WP_Customize_Nav_Menus {
 		add_filter( 'customize_refresh_nonces', array( $this, 'filter_nonces' ) );
 		add_action( 'wp_ajax_load-available-menu-items-customizer', array( $this, 'ajax_load_available_items' ) );
 		add_action( 'wp_ajax_search-available-menu-items-customizer', array( $this, 'ajax_search_available_items' ) );
+		add_action( 'wp_ajax_customize-nav-menus-insert-auto-draft', array( $this, 'ajax_insert_auto_draft_post' ) );
 		add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
-
-		// Needs to run after core Navigation section is set up.
-		add_action( 'customize_register', array( $this, 'customize_register' ), 11 );
-
-		add_filter( 'customize_dynamic_setting_args', array( $this, 'filter_dynamic_setting_args' ), 10, 2 );
-		add_filter( 'customize_dynamic_setting_class', array( $this, 'filter_dynamic_setting_class' ), 10, 3 );
 		add_action( 'customize_controls_print_footer_scripts', array( $this, 'print_templates' ) );
 		add_action( 'customize_controls_print_footer_scripts', array( $this, 'available_items_template' ) );
 		add_action( 'customize_preview_init', array( $this, 'customize_preview_init' ) );
+		add_action( 'customize_preview_init', array( $this, 'make_auto_draft_status_previewable' ) );
+		add_action( 'customize_save_nav_menus_created_posts', array( $this, 'save_nav_menus_created_posts' ) );
 
 		// Selective Refresh partials.
 		add_filter( 'customize_dynamic_partial_args', array( $this, 'customize_dynamic_partial_args' ), 10, 2 );
@@ -98,20 +100,35 @@ final class WP_Customize_Nav_Menus {
 			wp_die( -1 );
 		}
 
-		if ( empty( $_POST['type'] ) || empty( $_POST['object'] ) ) {
+		$all_items = array();
+		$item_types = array();
+		if ( isset( $_POST['item_types'] ) && is_array( $_POST['item_types'] ) ) {
+			$item_types = wp_unslash( $_POST['item_types'] );
+		} elseif ( isset( $_POST['type'] ) && isset( $_POST['object'] ) ) { // Back compat.
+			$item_types[] = array(
+				'type' => wp_unslash( $_POST['type'] ),
+				'object' => wp_unslash( $_POST['object'] ),
+				'page' => empty( $_POST['page'] ) ? 0 : absint( $_POST['page'] ),
+			);
+		} else {
 			wp_send_json_error( 'nav_menus_missing_type_or_object_parameter' );
 		}
 
-		$type = sanitize_key( $_POST['type'] );
-		$object = sanitize_key( $_POST['object'] );
-		$page = empty( $_POST['page'] ) ? 0 : absint( $_POST['page'] );
-		$items = $this->load_available_items_query( $type, $object, $page );
-
-		if ( is_wp_error( $items ) ) {
-			wp_send_json_error( $items->get_error_code() );
-		} else {
-			wp_send_json_success( array( 'items' => $items ) );
+		foreach ( $item_types as $item_type ) {
+			if ( empty( $item_type['type'] ) || empty( $item_type['object'] ) ) {
+				wp_send_json_error( 'nav_menus_missing_type_or_object_parameter' );
+			}
+			$type = sanitize_key( $item_type['type'] );
+			$object = sanitize_key( $item_type['object'] );
+			$page = empty( $item_type['page'] ) ? 0 : absint( $item_type['page'] );
+			$items = $this->load_available_items_query( $type, $object, $page );
+			if ( is_wp_error( $items ) ) {
+				wp_send_json_error( $items->get_error_code() );
+			}
+			$all_items[ $item_type['type'] . ':' . $item_type['object'] ] = $items;
 		}
+
+		wp_send_json_success( array( 'items' => $all_items ) );
 	}
 
 	/**
@@ -157,13 +174,25 @@ final class WP_Customize_Nav_Menus {
 				);
 			}
 
-			$posts = get_posts( array(
+			// Prepend posts with nav_menus_created_posts on first page.
+			$posts = array();
+			if ( 0 === $page && $this->manager->get_setting( 'nav_menus_created_posts' ) ) {
+				foreach ( $this->manager->get_setting( 'nav_menus_created_posts' )->value() as $post_id ) {
+					$auto_draft_post = get_post( $post_id );
+					if ( $post_type->name === $auto_draft_post->post_type ) {
+						$posts[] = $auto_draft_post;
+					}
+				}
+			}
+
+			$posts = array_merge( $posts, get_posts( array(
 				'numberposts' => 10,
 				'offset'      => 10 * $page,
 				'orderby'     => 'date',
 				'order'       => 'DESC',
 				'post_type'   => $object,
-			) );
+			) ) );
+
 			foreach ( $posts as $post ) {
 				$post_title = $post->post_title;
 				if ( '' === $post_title ) {
@@ -288,27 +317,42 @@ final class WP_Customize_Nav_Menus {
 			$query['s'] = $args['s'];
 		}
 
+		$posts = array();
+
+		// Prepend list of posts with nav_menus_created_posts search results on first page.
+		$nav_menus_created_posts_setting = $this->manager->get_setting( 'nav_menus_created_posts' );
+		if ( 1 === $args['pagenum'] && $nav_menus_created_posts_setting && count( $nav_menus_created_posts_setting ) > 0 ) {
+			$stub_post_query = new WP_Query( array_merge(
+				$query,
+				array(
+					'post_status' => 'auto-draft',
+					'post__in' => $nav_menus_created_posts_setting->value(),
+					'posts_per_page' => -1,
+				)
+			) );
+			$posts = array_merge( $posts, $stub_post_query->posts );
+		}
+
 		// Query posts.
 		$get_posts = new WP_Query( $query );
-
-		// Check if any posts were found.
-		if ( $get_posts->post_count ) {
-			foreach ( $get_posts->posts as $post ) {
-				$post_title = $post->post_title;
-				if ( '' === $post_title ) {
-					/* translators: %d: ID of a post */
-					$post_title = sprintf( __( '#%d (no title)' ), $post->ID );
-				}
-				$items[] = array(
-					'id'         => 'post-' . $post->ID,
-					'title'      => html_entity_decode( $post_title, ENT_QUOTES, get_bloginfo( 'charset' ) ),
-					'type'       => 'post_type',
-					'type_label' => $post_type_objects[ $post->post_type ]->labels->singular_name,
-					'object'     => $post->post_type,
-					'object_id'  => intval( $post->ID ),
-					'url'        => get_permalink( intval( $post->ID ) ),
-				);
+		$posts = array_merge( $posts, $get_posts->posts );
+
+		// Create items for posts.
+		foreach ( $posts as $post ) {
+			$post_title = $post->post_title;
+			if ( '' === $post_title ) {
+				/* translators: %d: ID of a post */
+				$post_title = sprintf( __( '#%d (no title)' ), $post->ID );
 			}
+			$items[] = array(
+				'id'         => 'post-' . $post->ID,
+				'title'      => html_entity_decode( $post_title, ENT_QUOTES, get_bloginfo( 'charset' ) ),
+				'type'       => 'post_type',
+				'type_label' => $post_type_objects[ $post->post_type ]->labels->singular_name,
+				'object'     => $post->post_type,
+				'object_id'  => intval( $post->ID ),
+				'url'        => get_permalink( intval( $post->ID ) ),
+			);
 		}
 
 		// Query taxonomy terms.
@@ -368,6 +412,7 @@ final class WP_Customize_Nav_Menus {
 				'untitled'          => _x( '(no label)', 'missing menu item navigation label' ),
 				'unnamed'           => _x( '(unnamed)', 'Missing menu name.' ),
 				'custom_label'      => __( 'Custom Link' ),
+				'page_label'        => get_post_type_object( 'page' )->labels->singular_name,
 				/* translators: %s: menu location */
 				'menuLocation'      => _x( '(Currently set to: %s)', 'menu' ),
 				'menuNameLabel'     => __( 'Menu Name' ),
@@ -486,6 +531,24 @@ final class WP_Customize_Nav_Menus {
 	 */
 	public function customize_register() {
 
+		/*
+		 * Preview settings for nav menus early so that the sections and controls will be added properly.
+		 * See https://github.com/xwp/wp-customize-snapshots/blob/962586659688a5b1fd9ae93618b7ce2d4e7a421c/php/class-customize-snapshot-manager.php#L506-L543
+		 */
+		$nav_menus_setting_ids = array();
+		foreach ( array_keys( $this->manager->unsanitized_post_values() ) as $setting_id ) {
+			if ( preg_match( '/^(nav_menu_locations|nav_menu|nav_menu_item)\[/', $setting_id ) ) {
+				$nav_menus_setting_ids[] = $setting_id;
+			}
+		}
+		$this->manager->add_dynamic_settings( $nav_menus_setting_ids );
+		foreach ( $nav_menus_setting_ids as $setting_id ) {
+			$setting = $this->manager->get_setting( $setting_id );
+			if ( $setting ) {
+				$setting->preview();
+			}
+		}
+
 		// Require JS-rendered control types.
 		$this->manager->register_panel_type( 'WP_Customize_Nav_Menus_Panel' );
 		$this->manager->register_control_type( 'WP_Customize_Nav_Menu_Control' );
@@ -587,6 +650,10 @@ final class WP_Customize_Nav_Menus {
 				$menu_item_setting_id = 'nav_menu_item[' . $item->ID . ']';
 
 				$value = (array) $item;
+				if ( empty( $value['post_title'] ) ) {
+					$value['title'] = '';
+				}
+
 				$value['nav_menu_term_id'] = $menu_id;
 				$this->manager->add_setting( new WP_Customize_Nav_Menu_Item_Setting( $this->manager, $menu_item_setting_id, array(
 					'value'     => $value,
@@ -626,6 +693,13 @@ final class WP_Customize_Nav_Menus {
 			'section'  => 'add_menu',
 			'settings' => array(),
 		) ) );
+
+		$this->manager->add_setting( new WP_Customize_Filter_Setting( $this->manager, 'nav_menus_created_posts', array(
+			'transport' => 'postMessage',
+			'type' => 'option', // To prevent theme prefix in changeset.
+			'default' => array(),
+			'sanitize_callback' => array( $this, 'sanitize_nav_menus_created_posts' ),
+		) ) );
 	}
 
 	/**
@@ -648,6 +722,7 @@ final class WP_Customize_Nav_Menus {
 	 * Return an array of all the available item types.
 	 *
 	 * @since 4.3.0
+	 * @since 4.7.0  Each array item now includes a `$type_label` in in addition to `$title`, `$type`, and `$object`.
 	 * @access public
 	 *
 	 * @return array The available menu item types.
@@ -660,7 +735,8 @@ final class WP_Customize_Nav_Menus {
 			foreach ( $post_types as $slug => $post_type ) {
 				$item_types[] = array(
 					'title'  => $post_type->labels->name,
-					'type'   => 'post_type',
+					'type_label' => $post_type->labels->singular_name,
+					'type' => 'post_type',
 					'object' => $post_type->name,
 				);
 			}
@@ -673,8 +749,9 @@ final class WP_Customize_Nav_Menus {
 					continue;
 				}
 				$item_types[] = array(
-					'title'  => $taxonomy->labels->name,
-					'type'   => 'taxonomy',
+					'title' => $taxonomy->labels->name,
+					'type_label' => $taxonomy->labels->singular_name,
+					'type' => 'taxonomy',
 					'object' => $taxonomy->name,
 				);
 			}
@@ -684,6 +761,7 @@ final class WP_Customize_Nav_Menus {
 		 * Filters the available menu item types.
 		 *
 		 * @since 4.3.0
+		 * @since 4.7.0  Each array item now includes a `$type_label` in in addition to `$title`, `$type`, and `$object`.
 		 *
 		 * @param array $item_types Custom menu item types.
 		 */
@@ -692,6 +770,130 @@ final class WP_Customize_Nav_Menus {
 		return $item_types;
 	}
 
+	/**
+	 * Add a new `auto-draft` post.
+	 *
+	 * @access public
+	 * @since 4.7.0
+	 *
+	 * @param array $postarr {
+	 *     Post array. Note that post_status is overridden to be `auto-draft`.
+	 *
+	 *     @var string $post_title   Post title. Required.
+	 *     @var string $post_type    Post type. Required.
+	 *     @var string $post_name    Post name.
+	 *     @var string $post_content Post content.
+	 * }
+	 * @return WP_Post|WP_Error Inserted auto-draft post object or error.
+	 */
+	public function insert_auto_draft_post( $postarr ) {
+		if ( ! isset( $postarr['post_type'] ) || ! post_type_exists( $postarr['post_type'] )  ) {
+			return new WP_Error( 'unknown_post_type', __( 'Unknown post type' ) );
+		}
+		if ( empty( $postarr['post_title'] ) ) {
+			return new WP_Error( 'empty_title', __( 'Empty title' ) );
+		}
+		if ( ! empty( $postarr['post_status'] ) ) {
+			return new WP_Error( 'status_forbidden', __( 'Status is forbidden' ) );
+		}
+
+		$postarr['post_status'] = 'auto-draft';
+
+		// Auto-drafts are allowed to have empty post_names, so it has to be explicitly set.
+		if ( empty( $postarr['post_name'] ) ) {
+			$postarr['post_name'] = sanitize_title( $postarr['post_title'] );
+		}
+		if ( ! isset( $postarr['meta_input'] ) ) {
+			$postarr['meta_input'] = array();
+		}
+		$postarr['meta_input']['_customize_draft_post_name'] = $postarr['post_name'];
+		unset( $postarr['post_name'] );
+
+		add_filter( 'wp_insert_post_empty_content', '__return_false', 1000 );
+		$r = wp_insert_post( wp_slash( $postarr ), true );
+		remove_filter( 'wp_insert_post_empty_content', '__return_false', 1000 );
+
+		if ( is_wp_error( $r ) ) {
+			return $r;
+		} else {
+			return get_post( $r );
+		}
+	}
+
+	/**
+	 * Ajax handler for adding a new auto-draft post.
+	 *
+	 * @access public
+	 * @since 4.7.0
+	 */
+	public function ajax_insert_auto_draft_post() {
+		if ( ! check_ajax_referer( 'customize-menus', 'customize-menus-nonce', false ) ) {
+			wp_send_json_error( 'bad_nonce', 400 );
+		}
+
+		if ( ! current_user_can( 'customize' ) ) {
+			wp_send_json_error( 'customize_not_allowed', 403 );
+		}
+
+		if ( empty( $_POST['params'] ) || ! is_array( $_POST['params'] ) ) {
+			wp_send_json_error( 'missing_params', 400 );
+		}
+
+		$params = wp_unslash( $_POST['params'] );
+		$illegal_params = array_diff( array_keys( $params ), array( 'post_type', 'post_title' ) );
+		if ( ! empty( $illegal_params ) ) {
+			wp_send_json_error( 'illegal_params', 400 );
+		}
+
+		$params = array_merge(
+			array(
+				'post_type' => '',
+				'post_title' => '',
+			),
+			$params
+		);
+
+		if ( empty( $params['post_type'] ) || ! post_type_exists( $params['post_type'] ) ) {
+			status_header( 400 );
+			wp_send_json_error( 'missing_post_type_param' );
+		}
+
+		$post_type_object = get_post_type_object( $params['post_type'] );
+		if ( ! current_user_can( $post_type_object->cap->create_posts ) || ! current_user_can( $post_type_object->cap->publish_posts ) ) {
+			status_header( 403 );
+			wp_send_json_error( 'insufficient_post_permissions' );
+		}
+
+		$params['post_title'] = trim( $params['post_title'] );
+		if ( '' === $params['post_title'] ) {
+			status_header( 400 );
+			wp_send_json_error( 'missing_post_title' );
+		}
+
+		$r = $this->insert_auto_draft_post( $params );
+		if ( is_wp_error( $r ) ) {
+			$error = $r;
+			if ( ! empty( $post_type_object->labels->singular_name ) ) {
+				$singular_name = $post_type_object->labels->singular_name;
+			} else {
+				$singular_name = __( 'Post' );
+			}
+
+			$data = array(
+				/* translators: %1$s is the post type name and %2$s is the error message. */
+				'message' => sprintf( __( '%1$s could not be created: %2$s' ), $singular_name, $error->get_error_message() ),
+			);
+			wp_send_json_error( $data );
+		} else {
+			$post = $r;
+			$data = array(
+				'post_id' => $post->ID,
+				'url'     => get_permalink( $post->ID ),
+			);
+			wp_send_json_success( $data );
+		}
+	}
+
 	/**
 	 * Print the JavaScript templates used to render Menu Customizer components.
 	 *
@@ -767,61 +969,116 @@ final class WP_Customize_Nav_Menus {
 					<p class="screen-reader-text" id="menu-items-search-desc"><?php _e( 'The search results will be updated as you type.' ); ?></p>
 					<span class="spinner"></span>
 				</div>
+				<div class="search-icon" aria-hidden="true"></div>
 				<button type="button" class="clear-results"><span class="screen-reader-text"><?php _e( 'Clear Results' ); ?></span></button>
-				<ul class="accordion-section-content" data-type="search"></ul>
-			</div>
-			<div id="new-custom-menu-item" class="accordion-section">
-				<h4 class="accordion-section-title" role="presentation">
-					<?php _e( 'Custom Links' ); ?>
-					<button type="button" class="button-link" aria-expanded="false">
-						<span class="screen-reader-text"><?php _e( 'Toggle section: Custom Links' ); ?></span>
-						<span class="toggle-indicator" aria-hidden="true"></span>
-					</button>
-				</h4>
-				<div class="accordion-section-content customlinkdiv">
-					<input type="hidden" value="custom" id="custom-menu-item-type" name="menu-item[-1][menu-item-type]" />
-					<p id="menu-item-url-wrap" class="wp-clearfix">
-						<label class="howto" for="custom-menu-item-url"><?php _e( 'URL' ); ?></label>
-						<input id="custom-menu-item-url" name="menu-item[-1][menu-item-url]" type="text" class="code menu-item-textbox" value="http://">
-					</p>
-					<p id="menu-item-name-wrap" class="wp-clearfix">
-						<label class="howto" for="custom-menu-item-name"><?php _e( 'Link Text' ); ?></label>
-						<input id="custom-menu-item-name" name="menu-item[-1][menu-item-title]" type="text" class="regular-text menu-item-textbox">
-					</p>
-					<p class="button-controls">
-						<span class="add-to-menu">
-							<input type="submit" class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-custom-menu-item" id="custom-menu-item-submit">
-							<span class="spinner"></span>
-						</span>
-					</p>
-				</div>
+				<ul class="accordion-section-content available-menu-items-list" data-type="search"></ul>
 			</div>
 			<?php
-			// Containers for per-post-type item browsing; items added with JS.
-			foreach ( $this->available_item_types() as $available_item_type ) {
-				$id = sprintf( 'available-menu-items-%s-%s', $available_item_type['type'], $available_item_type['object'] );
-				?>
-				<div id="<?php echo esc_attr( $id ); ?>" class="accordion-section">
-					<h4 class="accordion-section-title" role="presentation">
-						<?php echo esc_html( $available_item_type['title'] ); ?>
-						<span class="spinner"></span>
-						<span class="no-items"><?php _e( 'No items' ); ?></span>
-						<button type="button" class="button-link" aria-expanded="false">
-							<span class="screen-reader-text"><?php
-							/* translators: %s: Title of a section with menu items */
-							printf( __( 'Toggle section: %s' ), esc_html( $available_item_type['title'] ) ); ?></span>
-							<span class="toggle-indicator" aria-hidden="true"></span>
-						</button>
-					</h4>
-					<ul class="accordion-section-content" data-type="<?php echo esc_attr( $available_item_type['type'] ); ?>" data-object="<?php echo esc_attr( $available_item_type['object'] ); ?>"></ul>
-				</div>
-				<?php
+
+			// Ensure the page post type comes first in the list.
+			$item_types = $this->available_item_types();
+			$page_item_type = null;
+			foreach ( $item_types as $i => $item_type ) {
+				if ( isset( $item_type['object'] ) && 'page' === $item_type['object'] ) {
+					$page_item_type = $item_type;
+					unset( $item_types[ $i ] );
+				}
+			}
+
+			$this->print_custom_links_available_menu_item();
+			if ( $page_item_type ) {
+				$this->print_post_type_container( $page_item_type );
+			}
+			// Containers for per-post-type item browsing; items are added with JS.
+			foreach ( $item_types as $item_type ) {
+				$this->print_post_type_container( $item_type );
 			}
 			?>
 		</div><!-- #available-menu-items -->
 	<?php
 	}
 
+	/**
+	 * Print the markup for new menu items.
+	 *
+	 * To be used in the template #available-menu-items.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param array $available_item_type Menu item data to output, including title, type, and label.
+	 * @return void
+	 */
+	protected function print_post_type_container( $available_item_type ) {
+		$id = sprintf( 'available-menu-items-%s-%s', $available_item_type['type'], $available_item_type['object'] );
+		?>
+		<div id="<?php echo esc_attr( $id ); ?>" class="accordion-section">
+			<h4 class="accordion-section-title" role="presentation">
+				<?php echo esc_html( $available_item_type['title'] ); ?>
+				<span class="spinner"></span>
+				<span class="no-items"><?php _e( 'No items' ); ?></span>
+				<button type="button" class="button-link" aria-expanded="false">
+					<span class="screen-reader-text"><?php
+						/* translators: %s: Title of a section with menu items */
+						printf( __( 'Toggle section: %s' ), esc_html( $available_item_type['title'] ) ); ?></span>
+					<span class="toggle-indicator" aria-hidden="true"></span>
+				</button>
+			</h4>
+			<div class="accordion-section-content">
+				<?php if ( 'post_type' === $available_item_type['type'] ) : ?>
+					<?php $post_type_obj = get_post_type_object( $available_item_type['object'] ); ?>
+					<?php if ( current_user_can( $post_type_obj->cap->create_posts ) && current_user_can( $post_type_obj->cap->publish_posts ) ) : ?>
+						<div class="new-content-item">
+							<input type="text" class="create-item-input" placeholder="<?php echo esc_attr( $post_type_obj->labels->add_new_item ); ?>">
+							<button type="button" class="button add-content"><?php _e( 'Add' ); ?></button>
+						</div>
+					<?php endif; ?>
+				<?php endif; ?>
+				<ul class="available-menu-items-list" data-type="<?php echo esc_attr( $available_item_type['type'] ); ?>" data-object="<?php echo esc_attr( $available_item_type['object'] ); ?>" data-type_label="<?php echo esc_attr( isset( $available_item_type['type_label'] ) ? $available_item_type['type_label'] : $available_item_type['type'] ); ?>"></ul>
+			</div>
+		</div>
+		<?php
+	}
+
+	/**
+	 * Print the markup for available menu item custom links.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @return void
+	 */
+	protected function print_custom_links_available_menu_item() {
+		?>
+		<div id="new-custom-menu-item" class="accordion-section">
+			<h4 class="accordion-section-title" role="presentation">
+				<?php _e( 'Custom Links' ); ?>
+				<button type="button" class="button-link" aria-expanded="false">
+					<span class="screen-reader-text"><?php _e( 'Toggle section: Custom Links' ); ?></span>
+					<span class="toggle-indicator" aria-hidden="true"></span>
+				</button>
+			</h4>
+			<div class="accordion-section-content customlinkdiv">
+				<input type="hidden" value="custom" id="custom-menu-item-type" name="menu-item[-1][menu-item-type]" />
+				<p id="menu-item-url-wrap" class="wp-clearfix">
+					<label class="howto" for="custom-menu-item-url"><?php _e( 'URL' ); ?></label>
+					<input id="custom-menu-item-url" name="menu-item[-1][menu-item-url]" type="text" class="code menu-item-textbox" value="http://">
+				</p>
+				<p id="menu-item-name-wrap" class="wp-clearfix">
+					<label class="howto" for="custom-menu-item-name"><?php _e( 'Link Text' ); ?></label>
+					<input id="custom-menu-item-name" name="menu-item[-1][menu-item-title]" type="text" class="regular-text menu-item-textbox">
+				</p>
+				<p class="button-controls">
+					<span class="add-to-menu">
+						<input type="submit" class="button submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-custom-menu-item" id="custom-menu-item-submit">
+						<span class="spinner"></span>
+					</span>
+				</p>
+			</div>
+		</div>
+		<?php
+	}
+
 	//
 	// Start functionality specific to partial-refresh of menu changes in Customizer preview.
 	//
@@ -880,6 +1137,83 @@ final class WP_Customize_Nav_Menus {
 		add_filter( 'customize_render_partials_response', array( $this, 'export_partial_rendered_nav_menu_instances' ) );
 	}
 
+	/**
+	 * Make the auto-draft status protected so that it can be queried.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function make_auto_draft_status_previewable() {
+		global $wp_post_statuses;
+		$wp_post_statuses['auto-draft']->protected = true;
+	}
+
+	/**
+	 * Sanitize post IDs for auto-draft posts created for nav menu items to be published.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param array $value Post IDs.
+	 * @returns array Post IDs.
+	 */
+	public function sanitize_nav_menus_created_posts( $value ) {
+		$post_ids = array();
+		foreach ( wp_parse_id_list( $value ) as $post_id ) {
+			if ( empty( $post_id ) ) {
+				continue;
+			}
+			$post = get_post( $post_id );
+			if ( 'auto-draft' !== $post->post_status ) {
+				continue;
+			}
+			$post_type_obj = get_post_type_object( $post->post_type );
+			if ( ! $post_type_obj ) {
+				continue;
+			}
+			if ( ! current_user_can( $post_type_obj->cap->publish_posts ) || ! current_user_can( $post_type_obj->cap->edit_post, $post_id ) ) {
+				continue;
+			}
+			$post_ids[] = $post->ID;
+		}
+		return $post_ids;
+	}
+
+	/**
+	 * Publish the auto-draft posts that were created for nav menu items.
+	 *
+	 * The post IDs will have been sanitized by already by
+	 * `WP_Customize_Nav_Menu_Items::sanitize_nav_menus_created_posts()` to
+	 * remove any post IDs for which the user cannot publish or for which the
+	 * post is not an auto-draft.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_Customize_Setting $setting Customizer setting object.
+	 */
+	public function save_nav_menus_created_posts( $setting ) {
+		$post_ids = $setting->post_value();
+		if ( ! empty( $post_ids ) ) {
+			foreach ( $post_ids as $post_id ) {
+				$target_status = 'attachment' === get_post_type( $post_id ) ? 'inherit' : 'publish';
+				$args = array(
+					'ID' => $post_id,
+					'post_status' => $target_status,
+				);
+				$post_name = get_post_meta( $post_id, '_customize_draft_post_name', true );
+				if ( $post_name ) {
+					$args['post_name'] = $post_name;
+				}
+
+				// Note that wp_publish_post() cannot be used because unique slugs need to be assigned.
+				wp_update_post( wp_slash( $args ) );
+
+				delete_post_meta( $post_id, '_customize_draft_post_name' );
+			}
+		}
+	}
+
 	/**
 	 * Keep track of the arguments that are being passed to wp_nav_menu().
 	 *
diff --git a/wp-includes/class-wp-customize-section.php b/wp-includes/class-wp-customize-section.php
index 0a916f2f5..68d677133 100644
--- a/wp-includes/class-wp-customize-section.php
+++ b/wp-includes/class-wp-customize-section.php
@@ -145,6 +145,18 @@ class WP_Customize_Section {
 	 */
 	public $active_callback = '';
 
+	/**
+	 * Show the description or hide it behind the help icon.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @var bool Indicates whether the Section's description should be
+	 *           hidden behind a help icon ("?") in the Section header,
+	 *           similar to how help icons are displayed on Panels.
+	 */
+	public $description_hidden = false;
+
 	/**
 	 * Constructor.
 	 *
@@ -223,7 +235,7 @@ class WP_Customize_Section {
 	 * @return array The array to be exported to the client as JSON.
 	 */
 	public function json() {
-		$array = wp_array_slice_assoc( (array) $this, array( 'id', 'description', 'priority', 'panel', 'type' ) );
+		$array = wp_array_slice_assoc( (array) $this, array( 'id', 'description', 'priority', 'panel', 'type', 'description_hidden' ) );
 		$array['title'] = html_entity_decode( $this->title, ENT_QUOTES, get_bloginfo( 'charset' ) );
 		$array['content'] = $this->get_content();
 		$array['active'] = $this->active();
@@ -324,11 +336,11 @@ class WP_Customize_Section {
 	 * @see WP_Customize_Manager::render_template()
 	 */
 	public function print_template() {
-        ?>
+		?>
 		<script type="text/html" id="tmpl-customize-section-<?php echo $this->type; ?>">
 			<?php $this->render_template(); ?>
 		</script>
-        <?php
+		<?php
 	}
 
 	/**
@@ -350,7 +362,7 @@ class WP_Customize_Section {
 				<span class="screen-reader-text"><?php _e( 'Press return or enter to open this section' ); ?></span>
 			</h3>
 			<ul class="accordion-section-content">
-				<li class="customize-section-description-container">
+				<li class="customize-section-description-container section-meta <# if ( data.description_hidden ) { #>customize-info<# } #>">
 					<div class="customize-section-title">
 						<button class="customize-section-back" tabindex="-1">
 							<span class="screen-reader-text"><?php _e( 'Back' ); ?></span>
@@ -361,8 +373,15 @@ class WP_Customize_Section {
 							</span>
 							{{ data.title }}
 						</h3>
+						<# if ( data.description && data.description_hidden ) { #>
+							<button type="button" class="customize-help-toggle dashicons dashicons-editor-help" aria-expanded="false"><span class="screen-reader-text"><?php _e( 'Help' ); ?></span></button>
+							<div class="description customize-section-description">
+								{{{ data.description }}}
+							</div>
+						<# } #>
 					</div>
-					<# if ( data.description ) { #>
+
+					<# if ( data.description && ! data.description_hidden ) { #>
 						<div class="description customize-section-description">
 							{{{ data.description }}}
 						</div>
diff --git a/wp-includes/class-wp-customize-setting.php b/wp-includes/class-wp-customize-setting.php
index a0d04d383..7f1f98ac3 100644
--- a/wp-includes/class-wp-customize-setting.php
+++ b/wp-includes/class-wp-customize-setting.php
@@ -498,6 +498,8 @@ class WP_Customize_Setting {
 	/**
 	 * Fetch and sanitize the $_POST value for the setting.
 	 *
+	 * During a save request prior to save, post_value() provides the new value while value() does not.
+	 *
 	 * @since 3.4.0
 	 *
 	 * @param mixed $default A default value which is used as a fallback. Default is null.
@@ -694,6 +696,15 @@ class WP_Customize_Setting {
 		$is_core_type = ( 'option' === $this->type || 'theme_mod' === $this->type );
 
 		if ( ! $is_core_type && ! $this->is_multidimensional_aggregated ) {
+
+			// Use post value if previewed and a post value is present.
+			if ( $this->is_previewed ) {
+				$value = $this->post_value( null );
+				if ( null !== $value ) {
+					return $value;
+				}
+			}
+
 			$value = $this->get_root_value( $this->default );
 
 			/**
diff --git a/wp-includes/class-wp-customize-widgets.php b/wp-includes/class-wp-customize-widgets.php
index 16549ff69..74031194f 100644
--- a/wp-includes/class-wp-customize-widgets.php
+++ b/wp-includes/class-wp-customize-widgets.php
@@ -93,16 +93,18 @@ final class WP_Customize_Widgets {
 	public function __construct( $manager ) {
 		$this->manager = $manager;
 
-		// Skip useless hooks when the user can't manage widgets anyway.
+		// See https://github.com/xwp/wp-customize-snapshots/blob/962586659688a5b1fd9ae93618b7ce2d4e7a421c/php/class-customize-snapshot-manager.php#L420-L449
+		add_filter( 'customize_dynamic_setting_args',          array( $this, 'filter_customize_dynamic_setting_args' ), 10, 2 );
+		add_action( 'widgets_init',                            array( $this, 'register_settings' ), 95 );
+		add_action( 'customize_register',                      array( $this, 'schedule_customize_register' ), 1 );
+
+		// Skip remaining hooks when the user can't manage widgets anyway.
 		if ( ! current_user_can( 'edit_theme_options' ) ) {
 			return;
 		}
 
-		add_filter( 'customize_dynamic_setting_args',          array( $this, 'filter_customize_dynamic_setting_args' ), 10, 2 );
-		add_action( 'widgets_init',                            array( $this, 'register_settings' ), 95 );
 		add_action( 'wp_loaded',                               array( $this, 'override_sidebars_widgets_for_theme_switch' ) );
 		add_action( 'customize_controls_init',                 array( $this, 'customize_controls_init' ) );
-		add_action( 'customize_register',                      array( $this, 'schedule_customize_register' ), 1 );
 		add_action( 'customize_controls_enqueue_scripts',      array( $this, 'enqueue_scripts' ) );
 		add_action( 'customize_controls_print_styles',         array( $this, 'print_styles' ) );
 		add_action( 'customize_controls_print_scripts',        array( $this, 'print_scripts' ) );
@@ -276,6 +278,7 @@ final class WP_Customize_Widgets {
 
 		$this->old_sidebars_widgets = wp_get_sidebars_widgets();
 		add_filter( 'customize_value_old_sidebars_widgets_data', array( $this, 'filter_customize_value_old_sidebars_widgets_data' ) );
+		$this->manager->set_post_value( 'old_sidebars_widgets_data', $this->old_sidebars_widgets ); // Override any value cached in changeset.
 
 		// retrieve_widgets() looks at the global $sidebars_widgets
 		$sidebars_widgets = $this->old_sidebars_widgets;
@@ -712,7 +715,7 @@ final class WP_Customize_Widgets {
 					<% }); %>
 				</ul>
 				<div class="move-widget-actions">
-					<button class="move-widget-btn button-secondary" type="button">{btn}</button>
+					<button class="move-widget-btn button" type="button">{btn}</button>
 				</div>
 			</div>'
 		);
@@ -729,11 +732,12 @@ final class WP_Customize_Widgets {
 				'error'            => __( 'An error has occurred. Please reload the page and try again.' ),
 				'widgetMovedUp'    => __( 'Widget moved up' ),
 				'widgetMovedDown'  => __( 'Widget moved down' ),
-				'noAreasRendered'  => __( 'There are no widget areas currently rendered in the preview. Navigate in the preview to a template that makes use of a widget area in order to access its widgets here.' ),
+				'noAreasRendered'  => __( 'There are no widget areas on the page shown, however other pages in this theme do have them.' ),
 				'reorderModeOn'    => __( 'Reorder mode enabled' ),
 				'reorderModeOff'   => __( 'Reorder mode closed' ),
 				'reorderLabelOn'   => esc_attr__( 'Reorder widgets' ),
-				'reorderLabelOff'  => esc_attr__( 'Close reorder mode' ),
+				'widgetsFound'     => __( 'Number of widgets found: %d' ),
+				'noWidgetsFound'   => __( 'No widgets found.' ),
 			),
 			'tpl' => array(
 				'widgetReorderNav' => $widget_reorder_nav_tpl,
@@ -777,7 +781,10 @@ final class WP_Customize_Widgets {
 			</div>
 			<div id="available-widgets-filter">
 				<label class="screen-reader-text" for="widgets-search"><?php _e( 'Search Widgets' ); ?></label>
-				<input type="search" id="widgets-search" placeholder="<?php esc_attr_e( 'Search widgets&hellip;' ) ?>" />
+				<input type="text" id="widgets-search" placeholder="<?php esc_attr_e( 'Search widgets&hellip;' ) ?>" aria-describedby="widgets-search-desc" />
+				<div class="search-icon" aria-hidden="true"></div>
+				<button type="button" class="clear-results"><span class="screen-reader-text"><?php _e( 'Clear Results' ); ?></span></button>
+				<p class="screen-reader-text" id="widgets-search-desc"><?php _e( 'The search results will be updated as you type.' ); ?></p>
 			</div>
 			<div id="available-widgets-list">
 			<?php foreach ( $this->get_available_widgets() as $available_widget ): ?>
@@ -785,6 +792,7 @@ final class WP_Customize_Widgets {
 					<?php echo $available_widget['control_tpl']; ?>
 				</div>
 			<?php endforeach; ?>
+			<p class="no-widgets-found-message"><?php _e( 'No widgets found.' ); ?></p>
 			</div><!-- #available-widgets-list -->
 		</div><!-- #available-widgets -->
 		</div><!-- #widgets-left -->
diff --git a/wp-includes/class-wp-dependency.php b/wp-includes/class-wp-dependency.php
new file mode 100644
index 000000000..92c545617
--- /dev/null
+++ b/wp-includes/class-wp-dependency.php
@@ -0,0 +1,104 @@
+<?php
+/**
+ * Dependencies API: _WP_Dependency class
+ *
+ * @since 4.7.0
+ *
+ * @package WordPress
+ * @subpackage Dependencies
+ */
+
+/**
+ * Class _WP_Dependency
+ *
+ * Helper class to register a handle and associated data.
+ *
+ * @access private
+ * @since 2.6.0
+ */
+class _WP_Dependency {
+	/**
+	 * The handle name.
+	 *
+	 * @access public
+	 * @since 2.6.0
+	 * @var null
+	 */
+	public $handle;
+
+	/**
+	 * The handle source.
+	 *
+	 * @access public
+	 * @since 2.6.0
+	 * @var null
+	 */
+	public $src;
+
+	/**
+	 * An array of handle dependencies.
+	 *
+	 * @access public
+	 * @since 2.6.0
+	 * @var array
+	 */
+	public $deps = array();
+
+	/**
+	 * The handle version.
+	 *
+	 * Used for cache-busting.
+	 *
+	 * @access public
+	 * @since 2.6.0
+	 * @var bool|string
+	 */
+	public $ver = false;
+
+	/**
+	 * Additional arguments for the handle.
+	 *
+	 * @access public
+	 * @since 2.6.0
+	 * @var null
+	 */
+	public $args = null;  // Custom property, such as $in_footer or $media.
+
+	/**
+	 * Extra data to supply to the handle.
+	 *
+	 * @access public
+	 * @since 2.6.0
+	 * @var array
+	 */
+	public $extra = array();
+
+	/**
+	 * Setup dependencies.
+	 *
+	 * @since 2.6.0
+	 */
+	public function __construct() {
+		@list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args();
+		if ( ! is_array($this->deps) )
+			$this->deps = array();
+	}
+
+	/**
+	 * Add handle data.
+	 *
+	 * @access public
+	 * @since 2.6.0
+	 *
+	 * @param string $name The data key to add.
+	 * @param mixed  $data The data value to add.
+	 * @return bool False if not scalar, true otherwise.
+	 */
+	public function add_data( $name, $data ) {
+		if ( !is_scalar($name) )
+			return false;
+		$this->extra[$name] = $data;
+		return true;
+	}
+
+}
diff --git a/wp-includes/class-wp-editor.php b/wp-includes/class-wp-editor.php
index f7137f83e..916be4d9d 100644
--- a/wp-includes/class-wp-editor.php
+++ b/wp-includes/class-wp-editor.php
@@ -26,6 +26,7 @@ final class _WP_Editors {
 	private static $editor_buttons_css = true;
 	private static $drag_drop_upload = false;
 	private static $old_dfw_compat = false;
+	private static $translation;
 
 	private function __construct() {}
 
@@ -296,14 +297,13 @@ final class _WP_Editors {
 	/**
 	 * @static
 	 *
-	 * @global string $wp_version
 	 * @global string $tinymce_version
 	 *
 	 * @param string $editor_id
 	 * @param array  $set
 	 */
 	public static function editor_settings($editor_id, $set) {
-		global $wp_version, $tinymce_version;
+		global $tinymce_version;
 
 		if ( empty(self::$first_init) ) {
 			if ( is_admin() ) {
@@ -352,12 +352,19 @@ final class _WP_Editors {
 			if ( empty( self::$first_init ) ) {
 				self::$baseurl = includes_url( 'js/tinymce' );
 
-				$mce_locale = get_locale();
+				$mce_locale = get_user_locale();
 				self::$mce_locale = $mce_locale = empty( $mce_locale ) ? 'en' : strtolower( substr( $mce_locale, 0, 2 ) ); // ISO 639-1
 
 				/** This filter is documented in wp-admin/includes/media.php */
 				$no_captions = (bool) apply_filters( 'disable_captions', '' );
 				$ext_plugins = '';
+				$shortcut_labels = array();
+
+				foreach ( self::get_translation() as $name => $value ) {
+					if ( is_array( $value ) ) {
+						$shortcut_labels[$name] = $value[1];
+					}
+				}
 
 				if ( $set['teeny'] ) {
 
@@ -551,7 +558,8 @@ final class _WP_Editors {
 					'wpeditimage_disable_captions' => $no_captions,
 					'wpeditimage_html5_captions' => current_theme_supports( 'html5', 'caption' ),
 					'plugins' => implode( ',', $plugins ),
-					'wp_lang_attr' => get_bloginfo( 'language' )
+					'wp_lang_attr' => get_bloginfo( 'language' ),
+					'wp_shortcut_labels' => wp_json_encode( $shortcut_labels ),
 				);
 
 				if ( ! empty( $mce_external_plugins ) ) {
@@ -559,7 +567,7 @@ final class _WP_Editors {
 				}
 
 				$suffix = SCRIPT_DEBUG ? '' : '.min';
-				$version = 'ver=' . $wp_version;
+				$version = 'ver=' . get_bloginfo( 'version' );
 				$dashicons = includes_url( "css/dashicons$suffix.css?$version" );
 
 				// WordPress default stylesheet and dashicons
@@ -601,7 +609,7 @@ final class _WP_Editors {
 				$mce_buttons = apply_filters( 'teeny_mce_buttons', array('bold', 'italic', 'underline', 'blockquote', 'strikethrough', 'bullist', 'numlist', 'alignleft', 'aligncenter', 'alignright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'), $editor_id );
 				$mce_buttons_2 = $mce_buttons_3 = $mce_buttons_4 = array();
 			} else {
-				$mce_buttons = array( 'bold', 'italic', 'strikethrough', 'bullist', 'numlist', 'blockquote', 'hr', 'alignleft', 'aligncenter', 'alignright', 'link', 'unlink', 'wp_more', 'spellchecker' );
+				$mce_buttons = array( 'formatselect', 'bold', 'italic', 'bullist', 'numlist', 'blockquote', 'alignleft', 'aligncenter', 'alignright', 'link', 'unlink', 'wp_more', 'spellchecker' );
 
 				if ( ! wp_is_mobile() ) {
 					if ( $set['_content_editor_dfw'] ) {
@@ -623,7 +631,7 @@ final class _WP_Editors {
 				 */
 				$mce_buttons = apply_filters( 'mce_buttons', $mce_buttons, $editor_id );
 
-				$mce_buttons_2 = array( 'formatselect', 'underline', 'alignjustify', 'forecolor', 'pastetext', 'removeformat', 'charmap', 'outdent', 'indent', 'undo', 'redo' );
+				$mce_buttons_2 = array( 'strikethrough', 'hr', 'forecolor', 'pastetext', 'removeformat', 'charmap', 'outdent', 'indent', 'undo', 'redo' );
 
 				if ( ! wp_is_mobile() ) {
 					$mce_buttons_2[] = 'wp_help';
@@ -664,6 +672,7 @@ final class _WP_Editors {
 
 			if ( $post = get_post() ) {
 				$body_class .= ' post-type-' . sanitize_html_class( $post->post_type ) . ' post-status-' . sanitize_html_class( $post->post_status );
+
 				if ( post_type_supports( $post->post_type, 'post-formats' ) ) {
 					$post_format = get_post_format( $post );
 					if ( $post_format && ! is_wp_error( $post_format ) )
@@ -671,9 +680,14 @@ final class _WP_Editors {
 					else
 						$body_class .= ' post-format-standard';
 				}
+
+				if ( $page_template = get_page_template_slug( $post ) ) {
+					$page_template = str_replace( '.', '-', basename( $page_template, '.php' ) );
+					$body_class .= ' page-template-' . sanitize_html_class( $page_template );
+				}
 			}
 
-			$body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
+			$body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) );
 
 			if ( !empty($set['tinymce']['body_class']) ) {
 				$body_class .= ' ' . $set['tinymce']['body_class'];
@@ -807,73 +821,64 @@ final class _WP_Editors {
 		) );
 	}
 
-	/**
-	 * Translates the default TinyMCE strings and returns them as JSON encoded object ready to be loaded with tinymce.addI18n().
-	 * Can be used directly (_WP_Editors::wp_mce_translation()) by passing the same locale as set in the TinyMCE init object.
-	 *
-	 * @static
-	 * @param string $mce_locale The locale used for the editor.
-	 * @param bool $json_only optional Whether to include the JavaScript calls to tinymce.addI18n() and tinymce.ScriptLoader.markDone().
-	 * @return string Translation object, JSON encoded.
-	 */
-	public static function wp_mce_translation( $mce_locale = '', $json_only = false ) {
-
-		$mce_translation = array(
+	private static function get_translation() {
+		if ( empty( self::$translation ) ) {
+			self::$translation = array(
 			// Default TinyMCE strings
 			'New document' => __( 'New document' ),
 			'Formats' => _x( 'Formats', 'TinyMCE' ),
 
 			'Headings' => _x( 'Headings', 'TinyMCE' ),
-			'Heading 1' => __( 'Heading 1' ),
-			'Heading 2' => __( 'Heading 2' ),
-			'Heading 3' => __( 'Heading 3' ),
-			'Heading 4' => __( 'Heading 4' ),
-			'Heading 5' => __( 'Heading 5' ),
-			'Heading 6' => __( 'Heading 6' ),
+			'Heading 1' => array( __( 'Heading 1' ), 'access1' ),
+			'Heading 2' => array( __( 'Heading 2' ), 'access2' ),
+			'Heading 3' => array( __( 'Heading 3' ), 'access3' ),
+			'Heading 4' => array( __( 'Heading 4' ), 'access4' ),
+			'Heading 5' => array( __( 'Heading 5' ), 'access5' ),
+			'Heading 6' => array( __( 'Heading 6' ), 'access6' ),
 
 			/* translators: block tags */
 			'Blocks' => _x( 'Blocks', 'TinyMCE' ),
-			'Paragraph' => __( 'Paragraph' ),
-			'Blockquote' => __( 'Blockquote' ),
+			'Paragraph' => array( __( 'Paragraph' ), 'access7' ),
+			'Blockquote' => array( __( 'Blockquote' ), 'accessQ' ),
 			'Div' => _x( 'Div', 'HTML tag' ),
 			'Pre' => _x( 'Pre', 'HTML tag' ),
 			'Preformatted' => _x( 'Preformatted', 'HTML tag' ),
 			'Address' => _x( 'Address', 'HTML tag' ),
 
 			'Inline' => _x( 'Inline', 'HTML elements' ),
-			'Underline' => __( 'Underline' ),
-			'Strikethrough' => __( 'Strikethrough' ),
+			'Underline' => array( __( 'Underline' ), 'metaU' ),
+			'Strikethrough' => array( __( 'Strikethrough' ), 'accessD' ),
 			'Subscript' => __( 'Subscript' ),
 			'Superscript' => __( 'Superscript' ),
 			'Clear formatting' => __( 'Clear formatting' ),
-			'Bold' => __( 'Bold' ),
-			'Italic' => __( 'Italic' ),
-			'Code' => __( 'Code' ),
+			'Bold' => array( __( 'Bold' ), 'metaB' ),
+			'Italic' => array( __( 'Italic' ), 'metaI' ),
+			'Code' => array( __( 'Code' ), 'accessX' ),
 			'Source code' => __( 'Source code' ),
 			'Font Family' => __( 'Font Family' ),
 			'Font Sizes' => __( 'Font Sizes' ),
 
-			'Align center' => __( 'Align center' ),
-			'Align right' => __( 'Align right' ),
-			'Align left' => __( 'Align left' ),
-			'Justify' => __( 'Justify' ),
+			'Align center' => array( __( 'Align center' ), 'accessC' ),
+			'Align right' => array( __( 'Align right' ), 'accessR' ),
+			'Align left' => array( __( 'Align left' ), 'accessL' ),
+			'Justify' => array( __( 'Justify' ), 'accessJ' ),
 			'Increase indent' => __( 'Increase indent' ),
 			'Decrease indent' => __( 'Decrease indent' ),
 
-			'Cut' => __( 'Cut' ),
-			'Copy' => __( 'Copy' ),
-			'Paste' => __( 'Paste' ),
-			'Select all' => __( 'Select all' ),
-			'Undo' => __( 'Undo' ),
-			'Redo' => __( 'Redo' ),
+			'Cut' => array( __( 'Cut' ), 'metaX' ),
+			'Copy' => array( __( 'Copy' ), 'metaC' ),
+			'Paste' => array( __( 'Paste' ), 'metaV' ),
+			'Select all' => array( __( 'Select all' ), 'metaA' ),
+			'Undo' => array( __( 'Undo' ), 'metaZ' ),
+			'Redo' => array( __( 'Redo' ), 'metaY' ),
 
 			'Ok' => __( 'OK' ),
 			'Cancel' => __( 'Cancel' ),
 			'Close' => __( 'Close' ),
 			'Visual aids' => __( 'Visual aids' ),
 
-			'Bullet list' => __( 'Bulleted list' ),
-			'Numbered list' => __( 'Numbered list' ),
+			'Bullet list' => array( __( 'Bulleted list' ), 'accessU' ),
+			'Numbered list' => array( __( 'Numbered list' ), 'accessO' ),
 			'Square' => _x( 'Square', 'list style' ),
 			'Default' => _x( 'Default', 'list style' ),
 			'Circle' => _x( 'Circle', 'list style' ),
@@ -899,7 +904,7 @@ final class _WP_Editors {
 			'Author' => __( 'Author' ),
 
 			// Media, image plugins
-			'Insert/edit image' => __( 'Insert/edit image' ),
+			'Insert/edit image' => array( __( 'Insert/edit image' ), 'accessM' ),
 			'General' => __( 'General' ),
 			'Advanced' => __( 'Advanced' ),
 			'Source' => __( 'Source' ),
@@ -933,8 +938,8 @@ final class _WP_Editors {
 			'Horizontal line' => __( 'Horizontal line' ),
 			'Horizontal space' => __( 'Horizontal space' ),
 			'Restore last draft' => __( 'Restore last draft' ),
-			'Insert/edit link' => __( 'Insert/edit link' ),
-			'Remove link' => __( 'Remove link' ),
+			'Insert/edit link' => array( __( 'Insert/edit link' ), 'metaK' ),
+			'Remove link' => array( __( 'Remove link' ), 'accessS' ),
 
 			'Color' => __( 'Color' ),
 			'Custom color' => __( 'Custom color' ),
@@ -1038,11 +1043,11 @@ final class _WP_Editors {
 			'Format' => _x( 'Format', 'TinyMCE menu' ),
 
 			// WordPress strings
-			'Toolbar Toggle' => __( 'Toolbar Toggle' ),
-			'Insert Read More tag' => __( 'Insert Read More tag' ),
-			'Insert Page Break tag' => __( 'Insert Page Break tag' ),
+			'Toolbar Toggle' => array( __( 'Toolbar Toggle' ), 'accessZ' ),
+			'Insert Read More tag' => array( __( 'Insert Read More tag' ), 'accessT' ),
+			'Insert Page Break tag' => array( __( 'Insert Page Break tag' ), 'accessP' ),
 			'Read more...' => __( 'Read more...' ), // Title on the placeholder inside the editor (no ellipsis)
-			'Distraction-free writing mode' => __( 'Distraction-free writing mode' ),
+			'Distraction-free writing mode' => array( __( 'Distraction-free writing mode' ), 'accessW' ),
 			'No alignment' => __( 'No alignment' ), // Tooltip for the 'alignnone' button in the image toolbar
 			'Remove' => __( 'Remove' ), // Tooltip for the 'remove' button in the image toolbar
 			'Edit ' => __( 'Edit' ), // Tooltip for the 'edit' button in the image toolbar
@@ -1051,7 +1056,7 @@ final class _WP_Editors {
 			'Link options'  => __( 'Link options' ), // Tooltip for the 'link options' button in the inline link dialog
 
 			// Shortcuts help modal
-			'Keyboard Shortcuts' => __( 'Keyboard Shortcuts' ),
+			'Keyboard Shortcuts' => array( __( 'Keyboard Shortcuts' ), 'accessH' ),
 			'Default shortcuts,' => __( 'Default shortcuts,' ),
 			'Additional shortcuts,' => __( 'Additional shortcuts,' ),
 			'Focus shortcuts:' => __( 'Focus shortcuts:' ),
@@ -1074,7 +1079,8 @@ final class _WP_Editors {
 				__( 'The following formatting shortcuts are replaced when pressing Enter. Press Escape or the Undo button to undo.' ),
 			'The next group of formatting shortcuts are applied as you type or when you insert them around plain text in the same paragraph. Press Escape or the Undo button to undo.' =>
 				__( 'The next group of formatting shortcuts are applied as you type or when you insert them around plain text in the same paragraph. Press Escape or the Undo button to undo.' ),
-		);
+			);
+		}
 
 		/**
 		 * Link plugin (not included):
@@ -1087,10 +1093,31 @@ final class _WP_Editors {
 		 *	Url
 		 */
 
+		return self::$translation;
+	}
+
+	/**
+	 * Translates the default TinyMCE strings and returns them as JSON encoded object ready to be loaded with tinymce.addI18n().
+	 * Can be used directly (_WP_Editors::wp_mce_translation()) by passing the same locale as set in the TinyMCE init object.
+	 *
+	 * @static
+	 * @param string $mce_locale The locale used for the editor.
+	 * @param bool $json_only optional Whether to include the JavaScript calls to tinymce.addI18n() and tinymce.ScriptLoader.markDone().
+	 * @return string Translation object, JSON encoded.
+	 */
+	public static function wp_mce_translation( $mce_locale = '', $json_only = false ) {
 		if ( ! $mce_locale ) {
 			$mce_locale = self::$mce_locale;
 		}
 
+		$mce_translation = self::get_translation();
+		
+		foreach ( $mce_translation as $name => $value ) {
+			if ( is_array( $value ) ) {
+				$mce_translation[$name] = $value[0];
+			}
+		}
+
 		/**
 		 * Filters translated strings prepared for TinyMCE.
 		 *
@@ -1131,13 +1158,12 @@ final class _WP_Editors {
 	/**
 	 *
 	 * @static
-	 * @global string $wp_version
 	 * @global string $tinymce_version
 	 * @global bool   $concatenate_scripts
 	 * @global bool   $compress_scripts
 	 */
 	public static function editor_js() {
-		global $wp_version, $tinymce_version, $concatenate_scripts, $compress_scripts;
+		global $tinymce_version, $concatenate_scripts, $compress_scripts;
 
 		/**
 		 * Filters "tiny_mce_version" is deprecated
@@ -1215,7 +1241,7 @@ final class _WP_Editors {
 
 		$baseurl = self::$baseurl;
 		// Load tinymce.js when running from /src, else load wp-tinymce.js.gz (production) or tinymce.min.js (SCRIPT_DEBUG)
-		$mce_suffix = false !== strpos( $wp_version, '-src' ) ? '' : '.min';
+		$mce_suffix = false !== strpos( get_bloginfo( 'version' ), '-src' ) ? '' : '.min';
 
 		if ( $tmce_on ) {
 			if ( $compressed ) {
@@ -1259,14 +1285,6 @@ final class _WP_Editors {
 			var init, id, $wrap;
 
 			if ( typeof tinymce !== 'undefined' ) {
-				// Fix RTL
-				tinymce.on( 'addeditor', function( event ) {
-					event.editor.rtl = event.editor.settings.rtl_ui ||
-						( event.editor.editorManager &&
-						event.editor.editorManager.i18n &&
-						event.editor.editorManager.i18n.rtl );
-				}, true );
-
 				for ( id in tinyMCEPreInit.mceInit ) {
 					init = tinyMCEPreInit.mceInit[id];
 					$wrap = tinymce.$( '#wp-' + id + '-wrap' );
diff --git a/wp-includes/class-wp-embed.php b/wp-includes/class-wp-embed.php
index 17a976f2e..a8ce4d6c7 100644
--- a/wp-includes/class-wp-embed.php
+++ b/wp-includes/class-wp-embed.php
@@ -384,4 +384,3 @@ class WP_Embed {
 		return apply_filters( 'embed_maybe_make_link', $output, $url );
 	}
 }
-$GLOBALS['wp_embed'] = new WP_Embed();
diff --git a/wp-includes/class-wp-error.php b/wp-includes/class-wp-error.php
index 1010adb04..22273f89b 100644
--- a/wp-includes/class-wp-error.php
+++ b/wp-includes/class-wp-error.php
@@ -202,17 +202,3 @@ class WP_Error {
 		unset( $this->error_data[ $code ] );
 	}
 }
-
-/**
- * Check whether variable is a WordPress Error.
- *
- * Returns true if $thing is an object of the WP_Error class.
- *
- * @since 2.1.0
- *
- * @param mixed $thing Check if unknown variable is a WP_Error object.
- * @return bool True, if WP_Error. False, if not WP_Error.
- */
-function is_wp_error( $thing ) {
-	return ( $thing instanceof WP_Error );
-}
diff --git a/wp-includes/class-wp-feed-cache-transient.php b/wp-includes/class-wp-feed-cache-transient.php
new file mode 100644
index 000000000..1b5be4775
--- /dev/null
+++ b/wp-includes/class-wp-feed-cache-transient.php
@@ -0,0 +1,141 @@
+<?php
+/**
+ * Feed API: WP_Feed_Cache_Transient class
+ *
+ * @package WordPress
+ * @subpackage Feed
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to implement feed cache transients.
+ *
+ * @since 2.8.0
+ */
+class WP_Feed_Cache_Transient {
+
+	/**
+	 * Holds the transient name.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 * @var string
+	 */
+	public $name;
+
+	/**
+	 * Holds the transient mod name.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 * @var string
+	 */
+	public $mod_name;
+
+	/**
+	 * Holds the cache duration in seconds.
+	 *
+	 * Defaults to 43200 seconds (12 hours).
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 * @var int
+	 */
+	public $lifetime = 43200;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 2.8.0
+	 * @since 3.2.0 Updated to use a PHP5 constructor.
+	 * @access public
+	 *
+	 * @param string $location  URL location (scheme is used to determine handler).
+	 * @param string $filename  Unique identifier for cache object.
+	 * @param string $extension 'spi' or 'spc'.
+	 */
+	public function __construct($location, $filename, $extension) {
+		$this->name = 'feed_' . $filename;
+		$this->mod_name = 'feed_mod_' . $filename;
+
+		$lifetime = $this->lifetime;
+		/**
+		 * Filters the transient lifetime of the feed cache.
+		 *
+		 * @since 2.8.0
+		 *
+		 * @param int    $lifetime Cache duration in seconds. Default is 43200 seconds (12 hours).
+		 * @param string $filename Unique identifier for the cache object.
+		 */
+		$this->lifetime = apply_filters( 'wp_feed_cache_transient_lifetime', $lifetime, $filename);
+	}
+
+	/**
+	 * Sets the transient.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 *
+	 * @param SimplePie $data Data to save.
+	 * @return true Always true.
+	 */
+	public function save($data) {
+		if ( $data instanceof SimplePie ) {
+			$data = $data->data;
+		}
+
+		set_transient($this->name, $data, $this->lifetime);
+		set_transient($this->mod_name, time(), $this->lifetime);
+		return true;
+	}
+
+	/**
+	 * Gets the transient.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 *
+	 * @return mixed Transient value.
+	 */
+	public function load() {
+		return get_transient($this->name);
+	}
+
+	/**
+	 * Gets mod transient.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 *
+	 * @return mixed Transient value.
+	 */
+	public function mtime() {
+		return get_transient($this->mod_name);
+	}
+
+	/**
+	 * Sets mod transient.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 *
+	 * @return bool False if value was not set and true if value was set.
+	 */
+	public function touch() {
+		return set_transient($this->mod_name, time(), $this->lifetime);
+	}
+
+	/**
+	 * Deletes transients.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 *
+	 * @return true Always true.
+	 */
+	public function unlink() {
+		delete_transient($this->name);
+		delete_transient($this->mod_name);
+		return true;
+	}
+}
diff --git a/wp-includes/class-wp-feed-cache.php b/wp-includes/class-wp-feed-cache.php
new file mode 100644
index 000000000..337d3f3e7
--- /dev/null
+++ b/wp-includes/class-wp-feed-cache.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Feed API: WP_Feed_Cache class
+ *
+ * @package WordPress
+ * @subpackage Feed
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to implement a feed cache.
+ *
+ * @since 2.8.0
+ *
+ * @see SimplePie_Cache
+ */
+class WP_Feed_Cache extends SimplePie_Cache {
+
+	/**
+	 * Creates a new SimplePie_Cache object.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 *
+	 * @param string $location  URL location (scheme is used to determine handler).
+	 * @param string $filename  Unique identifier for cache object.
+	 * @param string $extension 'spi' or 'spc'.
+	 * @return WP_Feed_Cache_Transient Feed cache handler object that uses transients.
+	 */
+	public function create($location, $filename, $extension) {
+		return new WP_Feed_Cache_Transient($location, $filename, $extension);
+	}
+}
diff --git a/wp-includes/class-wp-hook.php b/wp-includes/class-wp-hook.php
new file mode 100644
index 000000000..80b93ef1e
--- /dev/null
+++ b/wp-includes/class-wp-hook.php
@@ -0,0 +1,535 @@
+<?php
+/**
+ * Plugin API: WP_Hook class
+ *
+ * @package WordPress
+ * @subpackage Plugin
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to implement action and filter hook functionality.
+ *
+ * @since 4.7.0
+ *
+ * @see Iterator
+ * @see ArrayAccess
+ */
+final class WP_Hook implements Iterator, ArrayAccess {
+
+	/**
+	 * Hook callbacks.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var array
+	 */
+	public $callbacks = array();
+
+	/**
+	 * The priority keys of actively running iterations of a hook.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var array
+	 */
+	private $iterations = array();
+
+	/**
+	 * The current priority of actively running iterations of a hook.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var array
+	 */
+	private $current_priority = array();
+
+	/**
+	 * Number of levels this hook can be recursively called.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var int
+	 */
+	private $nesting_level = 0;
+
+	/**
+	 * Flag for if we're current doing an action, rather than a filter.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var bool
+	 */
+	private $doing_action = false;
+
+	/**
+	 * Hooks a function or method to a specific filter action.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string   $tag             The name of the filter to hook the $function_to_add callback to.
+	 * @param callable $function_to_add The callback to be run when the filter is applied.
+	 * @param int      $priority        The order in which the functions associated with a
+	 *                                  particular action are executed. Lower numbers correspond with
+	 *                                  earlier execution, and functions with the same priority are executed
+	 *                                  in the order in which they were added to the action.
+	 * @param int      $accepted_args   The number of arguments the function accepts.
+	 */
+	public function add_filter( $tag, $function_to_add, $priority, $accepted_args ) {
+		$idx = _wp_filter_build_unique_id( $tag, $function_to_add, $priority );
+		$priority_existed = isset( $this->callbacks[ $priority ] );
+
+		$this->callbacks[ $priority ][ $idx ] = array(
+			'function' => $function_to_add,
+			'accepted_args' => $accepted_args
+		);
+
+		// if we're adding a new priority to the list, put them back in sorted order
+		if ( ! $priority_existed && count( $this->callbacks ) > 1 ) {
+			ksort( $this->callbacks, SORT_NUMERIC );
+		}
+
+		if ( $this->nesting_level > 0 ) {
+			$this->resort_active_iterations( $priority, $priority_existed );
+		}
+	}
+
+	/**
+	 * Handles reseting callback priority keys mid-iteration.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param bool|int $new_priority     Optional. The priority of the new filter being added. Default false,
+	 *                                   for no priority being added.
+	 * @param bool     $priority_existed Optional. Flag for whether the priority already existed before the new
+	 *                                   filter was added. Default false.
+	 */
+	private function resort_active_iterations( $new_priority = false, $priority_existed = false ) {
+		$new_priorities = array_keys( $this->callbacks );
+
+		// If there are no remaining hooks, clear out all running iterations.
+		if ( ! $new_priorities ) {
+			foreach ( $this->iterations as $index => $iteration ) {
+				$this->iterations[ $index ] = $new_priorities;
+			}
+			return;
+		}
+
+		$min = min( $new_priorities );
+		foreach ( $this->iterations as $index => &$iteration ) {
+			$current = current( $iteration );
+			// If we're already at the end of this iteration, just leave the array pointer where it is.
+			if ( false === $current ) {
+				continue;
+			}
+
+			$iteration = $new_priorities;
+
+			if ( $current < $min ) {
+				array_unshift( $iteration, $current );
+				continue;
+			}
+
+			while ( current( $iteration ) < $current ) {
+				if ( false === next( $iteration ) ) {
+					break;
+				}
+			}
+
+			// If we have a new priority that didn't exist, but ::apply_filters() or ::do_action() thinks it's the current priority...
+			if ( $new_priority === $this->current_priority[ $index ] && ! $priority_existed ) {
+				/*
+				 * ... and the new priority is the same as what $this->iterations thinks is the previous
+				 * priority, we need to move back to it.
+				 */
+
+				if ( false === current( $iteration ) ) {
+					// If we've already moved off the end of the array, go back to the last element.
+					$prev = end( $iteration );
+				} else {
+					// Otherwise, just go back to the previous element.
+					$prev = prev( $iteration );
+				}
+				if ( false === $prev ) {
+					// Start of the array. Reset, and go about our day.
+					reset( $iteration );
+				} elseif ( $new_priority !== $prev ) {
+					// Previous wasn't the same. Move forward again.
+					next( $iteration );
+				}
+			}
+		}
+		unset( $iteration );
+	}
+
+	/**
+	 * Unhooks a function or method from a specific filter action.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string   $tag                The filter hook to which the function to be removed is hooked. Used
+	 *                                     for building the callback ID when SPL is not available.
+	 * @param callable $function_to_remove The callback to be removed from running when the filter is applied.
+	 * @param int      $priority           The exact priority used when adding the original filter callback.
+	 * @return bool Whether the callback existed before it was removed.
+	 */
+	public function remove_filter( $tag, $function_to_remove, $priority ) {
+		$function_key = _wp_filter_build_unique_id( $tag, $function_to_remove, $priority );
+
+		$exists = isset( $this->callbacks[ $priority ][ $function_key ] );
+		if ( $exists ) {
+			unset( $this->callbacks[ $priority ][ $function_key ] );
+			if ( ! $this->callbacks[ $priority ] ) {
+				unset( $this->callbacks[ $priority ] );
+				if ( $this->nesting_level > 0 ) {
+					$this->resort_active_iterations();
+				}
+			}
+		}
+		return $exists;
+	}
+
+	/**
+	 * Checks if a specific action has been registered for this hook.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param callable|bool $function_to_check Optional. The callback to check for. Default false.
+	 * @param string        $tag               Optional. The name of the filter hook. Used for building
+	 *                                         the callback ID when SPL is not available. Default empty.
+	 * @return bool|int The priority of that hook is returned, or false if the function is not attached.
+	 */
+	public function has_filter( $tag = '', $function_to_check = false ) {
+		if ( false === $function_to_check ) {
+			return $this->has_filters();
+		}
+
+		$function_key = _wp_filter_build_unique_id( $tag, $function_to_check, false );
+		if ( ! $function_key ) {
+			return false;
+		}
+
+		foreach ( $this->callbacks as $priority => $callbacks ) {
+			if ( isset( $callbacks[ $function_key ] ) ) {
+				return $priority;
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Checks if any callbacks have been registered for this hook.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return bool True if callbacks have been registered for the current hook, otherwise false.
+	 */
+	public function has_filters() {
+		foreach ( $this->callbacks as $callbacks ) {
+			if ( $callbacks ) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Removes all callbacks from the current filter.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param int|bool $priority Optional. The priority number to remove. Default false.
+	 */
+	public function remove_all_filters( $priority = false ) {
+		if ( ! $this->callbacks ) {
+			return;
+		}
+
+		if ( false === $priority ) {
+			$this->callbacks = array();
+		} else if ( isset( $this->callbacks[ $priority ] ) ) {
+			unset( $this->callbacks[ $priority ] );
+		}
+
+		if ( $this->nesting_level > 0 ) {
+			$this->resort_active_iterations();
+		}
+	}
+
+	/**
+	 * Calls the callback functions added to a filter hook.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param mixed $value The value to filter.
+	 * @param array $args  Arguments to pass to callbacks.
+	 * @return mixed The filtered value after all hooked functions are applied to it.
+	 */
+	public function apply_filters( $value, $args ) {
+		if ( ! $this->callbacks ) {
+			return $value;
+		}
+
+		$nesting_level = $this->nesting_level++;
+
+		$this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
+		$num_args = count( $args );
+
+		do {
+			$this->current_priority[ $nesting_level ] = $priority = current( $this->iterations[ $nesting_level ] );
+
+			foreach ( $this->callbacks[ $priority ] as $the_ ) {
+				if( ! $this->doing_action ) {
+					$args[ 0 ] = $value;
+				}
+
+				// Avoid the array_slice if possible.
+				if ( $the_['accepted_args'] == 0 ) {
+					$value = call_user_func_array( $the_['function'], array() );
+				} elseif ( $the_['accepted_args'] >= $num_args ) {
+					$value = call_user_func_array( $the_['function'], $args );
+				} else {
+					$value = call_user_func_array( $the_['function'], array_slice( $args, 0, (int)$the_['accepted_args'] ) );
+				}
+			}
+		} while ( false !== next( $this->iterations[ $nesting_level ] ) );
+
+		unset( $this->iterations[ $nesting_level ] );
+		unset( $this->current_priority[ $nesting_level ] );
+
+		$this->nesting_level--;
+
+		return $value;
+	}
+
+	/**
+	 * Executes the callback functions hooked on a specific action hook.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param mixed $args Arguments to pass to the hook callbacks.
+	 */
+	public function do_action( $args ) {
+		$this->doing_action = true;
+		$this->apply_filters( '', $args );
+
+		// If there are recursive calls to the current action, we haven't finished it until we get to the last one.
+		if ( ! $this->nesting_level ) {
+			$this->doing_action = false;
+		}
+	}
+
+	/**
+	 * Processes the functions hooked into the 'all' hook.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param array $args Arguments to pass to the hook callbacks. Passed by reference.
+	 */
+	public function do_all_hook( &$args ) {
+		$nesting_level = $this->nesting_level++;
+		$this->iterations[ $nesting_level ] = array_keys( $this->callbacks );
+
+		do {
+			$priority = current( $this->iterations[ $nesting_level ] );
+			foreach ( $this->callbacks[ $priority ] as $the_ ) {
+				call_user_func_array( $the_['function'], $args );
+			}
+		} while ( false !== next( $this->iterations[ $nesting_level ] ) );
+
+		unset( $this->iterations[ $nesting_level ] );
+		$this->nesting_level--;
+	}
+
+	/**
+	 * Return the current priority level of the currently running iteration of the hook.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return int|false If the hook is running, return the current priority level. If it isn't running, return false.
+	 */
+	public function current_priority() {
+		if ( false === current( $this->iterations ) ) {
+			return false;
+		}
+
+		return current( current( $this->iterations ) );
+	}
+
+	/**
+	 * Normalizes filters set up before WordPress has initialized to WP_Hook objects.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @static
+	 *
+	 * @param array $filters Filters to normalize.
+	 * @return WP_Hook[] Array of normalized filters.
+	 */
+	public static function build_preinitialized_hooks( $filters ) {
+		/** @var WP_Hook[] $normalized */
+		$normalized = array();
+
+		foreach ( $filters as $tag => $callback_groups ) {
+			if ( is_object( $callback_groups ) && $callback_groups instanceof WP_Hook ) {
+				$normalized[ $tag ] = $callback_groups;
+				continue;
+			}
+			$hook = new WP_Hook();
+
+			// Loop through callback groups.
+			foreach ( $callback_groups as $priority => $callbacks ) {
+
+				// Loop through callbacks.
+				foreach ( $callbacks as $cb ) {
+					$hook->add_filter( $tag, $cb['function'], $priority, $cb['accepted_args'] );
+				}
+			}
+			$normalized[ $tag ] = $hook;
+		}
+		return $normalized;
+	}
+
+	/**
+	 * Determines whether an offset value exists.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/arrayaccess.offsetexists.php
+	 *
+	 * @param mixed $offset An offset to check for.
+	 * @return bool True if the offset exists, false otherwise.
+	 */
+	public function offsetExists( $offset ) {
+		return isset( $this->callbacks[ $offset ] );
+	}
+
+	/**
+	 * Retrieves a value at a specified offset.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/arrayaccess.offsetget.php
+	 *
+	 * @param mixed $offset The offset to retrieve.
+	 * @return mixed If set, the value at the specified offset, null otherwise.
+	 */
+	public function offsetGet( $offset ) {
+		return isset( $this->callbacks[ $offset ] ) ? $this->callbacks[ $offset ] : null;
+	}
+
+	/**
+	 * Sets a value at a specified offset.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/arrayaccess.offsetset.php
+	 *
+	 * @param mixed $offset The offset to assign the value to.
+	 * @param mixed $value The value to set.
+	 */
+	public function offsetSet( $offset, $value ) {
+		if ( is_null( $offset ) ) {
+			$this->callbacks[] = $value;
+		} else {
+			$this->callbacks[ $offset ] = $value;
+		}
+	}
+
+	/**
+	 * Unsets a specified offset.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/arrayaccess.offsetunset.php
+	 *
+	 * @param mixed $offset The offset to unset.
+	 */
+	public function offsetUnset( $offset ) {
+		unset( $this->callbacks[ $offset ] );
+	}
+
+	/**
+	 * Returns the current element.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/iterator.current.php
+	 *
+	 * @return array Of callbacks at current priority.
+	 */
+	public function current() {
+		return current( $this->callbacks );
+	}
+
+	/**
+	 * Moves forward to the next element.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/iterator.next.php
+	 *
+	 * @return array Of callbacks at next priority.
+	 */
+	public function next() {
+		return next( $this->callbacks );
+	}
+
+	/**
+	 * Returns the key of the current element.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/iterator.key.php
+	 *
+	 * @return mixed Returns current priority on success, or NULL on failure
+	 */
+	public function key() {
+		return key( $this->callbacks );
+	}
+
+	/**
+	 * Checks if current position is valid.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/iterator.valid.php
+	 *
+	 * @return boolean
+	 */
+	public function valid() {
+		return key( $this->callbacks ) !== null;
+	}
+
+	/**
+	 * Rewinds the Iterator to the first element.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://php.net/manual/en/iterator.rewind.php
+	 */
+	public function rewind() {
+		reset( $this->callbacks );
+	}
+
+}
diff --git a/wp-includes/class-wp-http-requests-hooks.php b/wp-includes/class-wp-http-requests-hooks.php
new file mode 100644
index 000000000..108fae8c1
--- /dev/null
+++ b/wp-includes/class-wp-http-requests-hooks.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * HTTP API: Requests hook bridge class
+ *
+ * @package WordPress
+ * @subpackage HTTP
+ * @since 4.7.0
+ */
+
+/**
+ * Bridge to connect Requests internal hooks to WordPress actions.
+ *
+ * @package WordPress
+ * @subpackage HTTP
+ * @since 4.7.0
+ */
+class WP_HTTP_Requests_Hooks extends Requests_Hooks {
+	/**
+	 * Requested URL.
+	 *
+	 * @var string Requested URL.
+	 */
+	protected $url;
+
+	/**
+	 * WordPress WP_HTTP request data.
+	 *
+	 * @var array Request data in WP_Http format.
+	 */
+	protected $request = array();
+
+	/**
+	 * Constructor.
+	 *
+	 * @param string $url URL to request.
+	 * @param array $request Request data in WP_Http format.
+	 */
+	public function __construct( $url, $request ) {
+		$this->url = $url;
+		$this->request = $request;
+	}
+
+	/**
+	 * Dispatch a Requests hook to a native WordPress action.
+	 *
+	 * @param string $hook Hook name.
+	 * @param array $parameters Parameters to pass to callbacks.
+	 * @return boolean True if hooks were run, false if nothing was hooked.
+	 */
+	public function dispatch( $hook, $parameters = array() ) {
+		$result = parent::dispatch( $hook, $parameters );
+
+		// Handle back-compat actions
+		switch ( $hook ) {
+			case 'curl.before_send':
+				/** This action is documented in wp-includes/class-wp-http-curl.php */
+				do_action_ref_array( 'http_api_curl', array( $parameters[0], $this->request, $this->url ) );
+				break;
+		}
+
+		/**
+		 * Transforms a native Request hook to a WordPress actions.
+		 *
+		 * This action maps Requests internal hook to a native WordPress action.
+		 *
+		 * @see https://github.com/rmccue/Requests/blob/master/docs/hooks.md
+		 *
+		 * @param array $parameters Parameters from Requests internal hook.
+		 * @param array $request Request data in WP_Http format.
+		 * @param string $url URL to request.
+		 */
+		do_action_ref_array( "requests-{$hook}", $parameters, $this->request, $this->url );
+
+		return $result;
+	}
+}
diff --git a/wp-includes/class-wp-http-requests-response.php b/wp-includes/class-wp-http-requests-response.php
index ab0a5cc05..660831919 100644
--- a/wp-includes/class-wp-http-requests-response.php
+++ b/wp-includes/class-wp-http-requests-response.php
@@ -65,17 +65,18 @@ class WP_HTTP_Requests_Response extends WP_HTTP_Response {
 	 * @since 4.6.0
 	 * @access public
 	 *
-	 * @return array Map of header name to header value.
+	 * @see \Requests_Utility_CaseInsensitiveDictionary
+	 *
+	 * @return \Requests_Utility_CaseInsensitiveDictionary Map of header name to header value.
 	 */
 	public function get_headers() {
-		// Ensure headers remain case-insensitive
+		// Ensure headers remain case-insensitive.
 		$converted = new Requests_Utility_CaseInsensitiveDictionary();
 
 		foreach ( $this->response->headers->getAll() as $key => $value ) {
 			if ( count( $value ) === 1 ) {
 				$converted[ $key ] = $value[0];
-			}
-			else {
+			} else {
 				$converted[ $key ] = $value;
 			}
 		}
diff --git a/wp-includes/class-wp-http-response.php b/wp-includes/class-wp-http-response.php
index e46b01e08..da83de1d5 100644
--- a/wp-includes/class-wp-http-response.php
+++ b/wp-includes/class-wp-http-response.php
@@ -28,7 +28,7 @@ class WP_HTTP_Response {
 	 *
 	 * @since 4.4.0
 	 * @access public
-	 * @var int
+	 * @var array
 	 */
 	public $headers;
 
@@ -37,7 +37,7 @@ class WP_HTTP_Response {
 	 *
 	 * @since 4.4.0
 	 * @access public
-	 * @var array
+	 * @var int
 	 */
 	public $status;
 
diff --git a/wp-includes/class-wp-image-editor-imagick.php b/wp-includes/class-wp-image-editor-imagick.php
index 82b872d73..fc6fc933a 100644
--- a/wp-includes/class-wp-image-editor-imagick.php
+++ b/wp-includes/class-wp-image-editor-imagick.php
@@ -73,6 +73,7 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
 			'rotateimage',
 			'flipimage',
 			'flopimage',
+			'readimage',
 		);
 
 		// Now, test for deep requirements within Imagick.
@@ -144,7 +145,17 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
 		wp_raise_memory_limit( 'image' );
 
 		try {
-			$this->image = new Imagick( $this->file );
+			$this->image = new Imagick();
+			$file_parts = pathinfo( $this->file );
+			$filename = $this->file;
+
+			if ( 'pdf' == strtolower( $file_parts['extension'] ) ) {
+				$filename = $this->pdf_setup();
+			}
+
+			// Reading image after Imagick instantiation because `setResolution`
+			// only applies correctly before the image is read.
+			$this->image->readImage( $filename );
 
 			if ( ! $this->image->valid() )
 				return new WP_Error( 'invalid_image', __('File is not an image.'), $this->file);
@@ -727,4 +738,27 @@ class WP_Image_Editor_Imagick extends WP_Image_Editor {
 		return true;
 	}
 
+	/**
+	 * Sets up Imagick for PDF processing.
+	 * Increases rendering DPI and only loads first page.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return string|WP_Error File to load or WP_Error on failure.
+	 */
+	protected function pdf_setup() {
+		try {
+			// By default, PDFs are rendered in a very low resolution.
+			// We want the thumbnail to be readable, so increase the rendering DPI.
+			$this->image->setResolution( 128, 128 );
+
+			// Only load the first page.
+			return $this->file . '[0]';
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'pdf_setup_failed', $e->getMessage(), $this->file );
+		}
+	}
+
 }
diff --git a/wp-includes/class-wp-image-editor.php b/wp-includes/class-wp-image-editor.php
index c046823e9..cc991eb8a 100644
--- a/wp-includes/class-wp-image-editor.php
+++ b/wp-includes/class-wp-image-editor.php
@@ -346,12 +346,8 @@ abstract class WP_Image_Editor {
 		}
 
 		if ( $filename ) {
-			$ext = '';
-			$info = pathinfo( $filename );
-			$dir  = $info['dirname'];
-
-			if ( isset( $info['extension'] ) )
-				$ext = $info['extension'];
+			$dir = pathinfo( $filename, PATHINFO_DIRNAME );
+			$ext = pathinfo( $filename, PATHINFO_EXTENSION );
 
 			$filename = trailingslashit( $dir ) . wp_basename( $filename, ".$ext" ) . ".{$new_ext}";
 		}
@@ -375,9 +371,8 @@ abstract class WP_Image_Editor {
 		if ( ! $suffix )
 			$suffix = $this->get_suffix();
 
-		$info = pathinfo( $this->file );
-		$dir  = $info['dirname'];
-		$ext  = $info['extension'];
+		$dir  = pathinfo( $this->file, PATHINFO_DIRNAME );
+		$ext  = pathinfo( $this->file, PATHINFO_EXTENSION );
 
 		$name = wp_basename( $this->file, ".$ext" );
 		$new_ext = strtolower( $extension ? $extension : $ext );
diff --git a/wp-includes/class-wp-list-util.php b/wp-includes/class-wp-list-util.php
new file mode 100644
index 000000000..4af814d55
--- /dev/null
+++ b/wp-includes/class-wp-list-util.php
@@ -0,0 +1,267 @@
+<?php
+/**
+ * WordPress List utility class
+ *
+ * @package WordPress
+ * @since 4.7.0
+ */
+
+/**
+ * List utility.
+ *
+ * Utility class to handle operations on an array of objects.
+ *
+ * @since 4.7.0
+ */
+class WP_List_Util {
+	/**
+	 * The input array.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var array
+	 */
+	private $input = array();
+
+	/**
+	 * The output array.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var array
+	 */
+	private $output = array();
+
+	/**
+	 * Temporary arguments for sorting.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var array
+	 */
+	private $orderby = array();
+
+	/**
+	 * Constructor.
+	 *
+	 * Sets the input array.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array $input Array to perform operations on.
+	 */
+	public function __construct( $input ) {
+		$this->output = $this->input = $input;
+	}
+
+	/**
+	 * Returns the original input array.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array The input array.
+	 */
+	public function get_input() {
+		return $this->input;
+	}
+
+	/**
+	 * Returns the output array.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array The output array.
+	 */
+	public function get_output() {
+		return $this->output;
+	}
+
+	/**
+	 * Filters the list, based on a set of key => value arguments.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array  $args     Optional. An array of key => value arguments to match
+	 *                         against each object. Default empty array.
+	 * @param string $operator Optional. The logical operation to perform. 'AND' means
+	 *                         all elements from the array must match. 'OR' means only
+	 *                         one element needs to match. 'NOT' means no elements may
+	 *                         match. Default 'AND'.
+	 * @return array Array of found values.
+	 */
+	public function filter( $args = array(), $operator = 'AND' ) {
+		if ( empty( $args ) ) {
+			return $this->output;
+		}
+
+		$operator = strtoupper( $operator );
+
+		if ( ! in_array( $operator, array( 'AND', 'OR', 'NOT' ), true ) ) {
+			return array();
+		}
+
+		$count = count( $args );
+		$filtered = array();
+
+		foreach ( $this->output as $key => $obj ) {
+			$to_match = (array) $obj;
+
+			$matched = 0;
+			foreach ( $args as $m_key => $m_value ) {
+				if ( array_key_exists( $m_key, $to_match ) && $m_value == $to_match[ $m_key ] ) {
+					$matched++;
+				}
+			}
+
+			if (
+				( 'AND' == $operator && $matched == $count ) ||
+				( 'OR' == $operator && $matched > 0 ) ||
+				( 'NOT' == $operator && 0 == $matched )
+			) {
+				$filtered[$key] = $obj;
+			}
+		}
+
+		$this->output = $filtered;
+
+		return $this->output;
+	}
+
+	/**
+	 * Plucks a certain field out of each object in the list.
+	 *
+	 * This has the same functionality and prototype of
+	 * array_column() (PHP 5.5) but also supports objects.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param int|string $field     Field from the object to place instead of the entire object
+	 * @param int|string $index_key Optional. Field from the object to use as keys for the new array.
+	 *                              Default null.
+	 * @return array Array of found values. If `$index_key` is set, an array of found values with keys
+	 *               corresponding to `$index_key`. If `$index_key` is null, array keys from the original
+	 *               `$list` will be preserved in the results.
+	 */
+	public function pluck( $field, $index_key = null ) {
+		if ( ! $index_key ) {
+			/*
+			 * This is simple. Could at some point wrap array_column()
+			 * if we knew we had an array of arrays.
+			 */
+			foreach ( $this->output as $key => $value ) {
+				if ( is_object( $value ) ) {
+					$this->output[ $key ] = $value->$field;
+				} else {
+					$this->output[ $key ] = $value[ $field ];
+				}
+			}
+			return $this->output;
+		}
+
+		/*
+		 * When index_key is not set for a particular item, push the value
+		 * to the end of the stack. This is how array_column() behaves.
+		 */
+		$newlist = array();
+		foreach ( $this->output as $value ) {
+			if ( is_object( $value ) ) {
+				if ( isset( $value->$index_key ) ) {
+					$newlist[ $value->$index_key ] = $value->$field;
+				} else {
+					$newlist[] = $value->$field;
+				}
+			} else {
+				if ( isset( $value[ $index_key ] ) ) {
+					$newlist[ $value[ $index_key ] ] = $value[ $field ];
+				} else {
+					$newlist[] = $value[ $field ];
+				}
+			}
+		}
+
+		$this->output = $newlist;
+
+		return $this->output;
+	}
+
+	/**
+	 * Sorts the list, based on one or more orderby arguments.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string|array $orderby       Optional. Either the field name to order by or an array
+	 *                                    of multiple orderby fields as $orderby => $order.
+	 * @param string       $order         Optional. Either 'ASC' or 'DESC'. Only used if $orderby
+	 *                                    is a string.
+	 * @param bool         $preserve_keys Optional. Whether to preserve keys. Default false.
+	 * @return array The sorted array.
+	 */
+	public function sort( $orderby = array(), $order = 'ASC', $preserve_keys = false ) {
+		if ( empty( $orderby ) ) {
+			return $this->output;
+		}
+
+		if ( is_string( $orderby ) ) {
+			$orderby = array( $orderby => $order );
+		}
+
+		foreach ( $orderby as $field => $direction ) {
+			$orderby[ $field ] = 'DESC' === strtoupper( $direction ) ? 'DESC' : 'ASC';
+		}
+
+		$this->orderby = $orderby;
+
+		if ( $preserve_keys ) {
+			uasort( $this->output, array( $this, 'sort_callback' ) );
+		} else {
+			usort( $this->output, array( $this, 'sort_callback' ) );
+		}
+
+		$this->orderby = array();
+
+		return $this->output;
+	}
+
+	/**
+	 * Callback to sort the list by specific fields.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @see WP_List_Util::sort()
+	 *
+	 * @param object|array $a One object to compare.
+	 * @param object|array $b The other object to compare.
+	 * @return int 0 if both objects equal. -1 if second object should come first, 1 otherwise.
+	 */
+	private function sort_callback( $a, $b ) {
+		if ( empty( $this->orderby ) ) {
+			return 0;
+		}
+
+		$a = (array) $a;
+		$b = (array) $b;
+
+		foreach ( $this->orderby as $field => $direction ) {
+			if ( ! isset( $a[ $field ] ) || ! isset( $b[ $field ] ) ) {
+				continue;
+			}
+
+			if ( $a[ $field ] == $b[ $field ] ) {
+				continue;
+			}
+
+			$results = 'DESC' === $direction ? array( 1, -1 ) : array( -1, 1 );
+
+			if ( is_numeric( $a[ $field ] ) && is_numeric( $b[ $field ] ) ) {
+				return ( $a[ $field ] < $b[ $field ] ) ? $results[0] : $results[1];
+			}
+
+			return 0 > strcmp( $a[ $field ], $b[ $field ] ) ? $results[0] : $results[1];
+		}
+
+		return 0;
+	}
+}
diff --git a/wp-includes/class-wp-locale-switcher.php b/wp-includes/class-wp-locale-switcher.php
new file mode 100644
index 000000000..2b0638d29
--- /dev/null
+++ b/wp-includes/class-wp-locale-switcher.php
@@ -0,0 +1,240 @@
+<?php
+/**
+ * Locale API: WP_Locale_Switcher class
+ *
+ * @package WordPress
+ * @subpackage i18n
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used for switching locales.
+ *
+ * @since 4.7.0
+ */
+class WP_Locale_Switcher {
+	/**
+	 * Locale stack.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var string[]
+	 */
+	private $locales = array();
+
+	/**
+	 * Original locale.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var string
+	 */
+	private $original_locale;
+
+	/**
+	 * Holds all available languages.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var array An array of language codes (file names without the .mo extension).
+	 */
+	private $available_languages = array();
+
+	/**
+	 * Constructor.
+	 *
+	 * Stores the original locale as well as a list of all available languages.
+	 *
+	 * @since 4.7.0
+	 */
+	public function __construct() {
+		$this->original_locale     = is_admin() ? get_user_locale() : get_locale();
+		$this->available_languages = array_merge( array( 'en_US' ), get_available_languages() );
+	}
+
+	/**
+	 * Initializes the locale switcher.
+	 *
+	 * Hooks into the {@see 'locale'} filter to change the locale on the fly.
+	 */
+	public function init() {
+		add_filter( 'locale', array( $this, 'filter_locale' ) );
+	}
+
+	/**
+	 * Switches the translations according to the given locale.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $locale The locale to switch to.
+	 * @return bool True on success, false on failure.
+	 */
+	public function switch_to_locale( $locale ) {
+		$current_locale = is_admin() ? get_user_locale() : get_locale();
+		if ( $current_locale === $locale ) {
+			return false;
+		}
+
+		if ( ! in_array( $locale, $this->available_languages, true ) ) {
+			return false;
+		}
+
+		$this->locales[] = $locale;
+
+		$this->change_locale( $locale );
+
+		/**
+		 * Fires when the locale is switched.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param string $locale The new locale.
+		 */
+		do_action( 'switch_locale', $locale );
+
+		return true;
+	}
+
+	/**
+	 * Restores the translations according to the previous locale.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @return string|false Locale on success, false on failure.
+	 */
+	public function restore_previous_locale() {
+		$previous_locale = array_pop( $this->locales );
+
+		if ( null === $previous_locale ) {
+			// The stack is empty, bail.
+			return false;
+		}
+
+		$locale = end( $this->locales );
+
+		if ( ! $locale ) {
+			// There's nothing left in the stack: go back to the original locale.
+			$locale = $this->original_locale;
+		}
+
+		$this->change_locale( $locale );
+
+		/**
+		 * Fires when the locale is restored to the previous one.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param string $locale          The new locale.
+		 * @param string $previous_locale The previous locale.
+		 */
+		do_action( 'restore_previous_locale', $locale, $previous_locale );
+
+		return $locale;
+	}
+
+	/**
+	 * Restores the translations according to the original locale.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @return string|false Locale on success, false on failure.
+	 */
+	public function restore_current_locale() {
+		if ( empty( $this->locales ) ) {
+			return false;
+		}
+
+		$this->locales = array( $this->original_locale );
+
+		return $this->restore_previous_locale();
+	}
+
+	/**
+	 * Whether switch_to_locale() is in effect.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @return bool True if the locale has been switched, false otherwise.
+	 */
+	public function is_switched() {
+		return ! empty( $this->locales );
+	}
+
+	/**
+	 * Filters the WordPress install's locale.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $locale The WordPress install's locale.
+	 * @return string The locale currently being switched to.
+	 */
+	public function filter_locale( $locale ) {
+		$switched_locale = end( $this->locales );
+
+		if ( $switched_locale ) {
+			return $switched_locale;
+		}
+
+		return $locale;
+	}
+
+	/**
+	 * Load translations for a given locale.
+	 *
+	 * When switching to a locale, translations for this locale must be loaded from scratch.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @global Mo[] $l10n An array of all currently loaded text domains.
+	 *
+	 * @param string $locale The locale to load translations for.
+	 */
+	private function load_translations( $locale ) {
+		global $l10n;
+
+		$domains = $l10n ? array_keys( $l10n ) : array();
+
+		load_default_textdomain( $locale );
+
+		foreach ( $domains as $domain ) {
+			if ( 'default' === $domain ) {
+				continue;
+			}
+
+			unload_textdomain( $domain );
+			get_translations_for_domain( $domain );
+		}
+	}
+
+	/**
+	 * Changes the site's locale to the given one.
+	 *
+	 * Loads the translations, changes the global `$wp_locale` object and updates
+	 * all post type labels.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @global WP_Locale $wp_locale The WordPress date and time locale object.
+	 *
+	 * @param string $locale The locale to change to.
+	 */
+	private function change_locale( $locale ) {
+		// Reset translation availability information.
+		_get_path_to_translation( null, true );
+
+		$this->load_translations( $locale );
+
+		$GLOBALS['wp_locale'] = new WP_Locale();
+
+		/**
+		 * Fires when the locale is switched to or restored.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param string $locale The new locale.
+		 */
+		do_action( 'change_locale', $locale );
+	}
+}
diff --git a/wp-includes/class-wp-locale.php b/wp-includes/class-wp-locale.php
index e8dcfc648..2cc6afaa0 100644
--- a/wp-includes/class-wp-locale.php
+++ b/wp-includes/class-wp-locale.php
@@ -59,6 +59,14 @@ class WP_Locale {
 	 */
 	public $month;
 
+	/**
+	 * Stores the translated strings for the month names in genitive case, if the locale specifies.
+	 *
+	 * @since 4.4.0
+	 * @var array
+	 */
+	public $month_genitive;
+
 	/**
 	 * Stores the translated strings for the abbreviated month names.
 	 *
@@ -117,7 +125,6 @@ class WP_Locale {
 	 * @access private
 	 *
 	 * @global string $text_direction
-	 * @global string $wp_version
 	 */
 	public function init() {
 		// The Weekdays
@@ -223,7 +230,7 @@ class WP_Locale {
 		elseif ( 'rtl' == _x( 'ltr', 'text direction' ) )
 			$this->text_direction = 'rtl';
 
-		if ( 'rtl' === $this->text_direction && strpos( $GLOBALS['wp_version'], '-src' ) ) {
+		if ( 'rtl' === $this->text_direction && strpos( get_bloginfo( 'version' ), '-src' ) ) {
 			$this->text_direction = 'ltr';
 			add_action( 'all_admin_notices', array( $this, 'rtl_src_admin_notice' ) );
 		}
diff --git a/wp-includes/class-wp-matchesmapregex.php b/wp-includes/class-wp-matchesmapregex.php
new file mode 100644
index 000000000..86ebb2524
--- /dev/null
+++ b/wp-includes/class-wp-matchesmapregex.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * WP_MatchesMapRegex helper class
+ *
+ * @package WordPress
+ * @since 4.7.0
+ */
+
+/**
+ * Helper class to remove the need to use eval to replace $matches[] in query strings.
+ *
+ * @since 2.9.0
+ */
+class WP_MatchesMapRegex {
+	/**
+	 * store for matches
+	 *
+	 * @access private
+	 * @var array
+	 */
+	private $_matches;
+
+	/**
+	 * store for mapping result
+	 *
+	 * @access public
+	 * @var string
+	 */
+	public $output;
+
+	/**
+	 * subject to perform mapping on (query string containing $matches[] references
+	 *
+	 * @access private
+	 * @var string
+	 */
+	private $_subject;
+
+	/**
+	 * regexp pattern to match $matches[] references
+	 *
+	 * @var string
+	 */
+	public $_pattern = '(\$matches\[[1-9]+[0-9]*\])'; // magic number
+
+	/**
+	 * constructor
+	 *
+	 * @param string $subject subject if regex
+	 * @param array  $matches data to use in map
+	 */
+	public function __construct($subject, $matches) {
+		$this->_subject = $subject;
+		$this->_matches = $matches;
+		$this->output = $this->_map();
+	}
+
+	/**
+	 * Substitute substring matches in subject.
+	 *
+	 * static helper function to ease use
+	 *
+	 * @static
+	 * @access public
+	 *
+	 * @param string $subject subject
+	 * @param array  $matches data used for substitution
+	 * @return string
+	 */
+	public static function apply($subject, $matches) {
+		$oSelf = new WP_MatchesMapRegex($subject, $matches);
+		return $oSelf->output;
+	}
+
+	/**
+	 * do the actual mapping
+	 *
+	 * @access private
+	 * @return string
+	 */
+	private function _map() {
+		$callback = array($this, 'callback');
+		return preg_replace_callback($this->_pattern, $callback, $this->_subject);
+	}
+
+	/**
+	 * preg_replace_callback hook
+	 *
+	 * @access public
+	 * @param  array $matches preg_replace regexp matches
+	 * @return string
+	 */
+	public function callback($matches) {
+		$index = intval(substr($matches[0], 9, -1));
+		return ( isset( $this->_matches[$index] ) ? urlencode($this->_matches[$index]) : '' );
+	}
+}
diff --git a/wp-includes/class-wp-network-query.php b/wp-includes/class-wp-network-query.php
index 7f8954ca4..1bf38ad7e 100644
--- a/wp-includes/class-wp-network-query.php
+++ b/wp-includes/class-wp-network-query.php
@@ -103,7 +103,7 @@ class WP_Network_Query {
  	 *                                              Default false.
  	 *     @type string       $fields               Network fields to return. Accepts 'ids' (returns an array of network IDs)
  	 *                                              or empty (returns an array of complete network objects). Default empty.
- 	 *     @type int          $number               Maximum number of networks to retrieve. Default null (no limit).
+ 	 *     @type int          $number               Maximum number of networks to retrieve. Default empty (no limit).
  	 *     @type int          $offset               Number of networks to offset the query. Used to build LIMIT clause.
  	 *                                              Default 0.
  	 *     @type bool         $no_found_rows        Whether to disable the `SQL_CALC_FOUND_ROWS` query. Default true.
@@ -111,12 +111,10 @@ class WP_Network_Query {
  	 *                                              'domain_length', 'path_length' and 'network__in'. Also accepts false,
  	 *                                              an empty array, or 'none' to disable `ORDER BY` clause. Default 'id'.
  	 *     @type string       $order                How to order retrieved networks. Accepts 'ASC', 'DESC'. Default 'ASC'.
- 	 *     @type string       $domain               Limit results to those affiliated with a given network ID.
- 	 *                                              Default current network ID.
+ 	 *     @type string       $domain               Limit results to those affiliated with a given domain. Default empty.
  	 *     @type array        $domain__in           Array of domains to include affiliated networks for. Default empty.
  	 *     @type array        $domain__not_in       Array of domains to exclude affiliated networks for. Default empty.
- 	 *     @type string       $path                 Limit results to those affiliated with a given network ID.
- 	 *                                              Default current network ID.
+ 	 *     @type string       $path                 Limit results to those affiliated with a given path. Default empty.
  	 *     @type array        $path__in             Array of paths to include affiliated networks for. Default empty.
  	 *     @type array        $path__not_in         Array of paths to exclude affiliated networks for. Default empty.
  	 *     @type string       $search               Search term(s) to retrieve matching networks for. Default empty.
@@ -211,11 +209,7 @@ class WP_Network_Query {
 
 		// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
 		$key = md5( serialize( wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) ) ) );
-		$last_changed = wp_cache_get( 'last_changed', 'networks' );
-		if ( ! $last_changed ) {
-			$last_changed = microtime();
-			wp_cache_set( 'last_changed', $last_changed, 'networks' );
-		}
+		$last_changed = wp_cache_get_last_changed( 'networks' );
 
 		$cache_key = "get_network_ids:$key:$last_changed";
 		$cache_value = wp_cache_get( $cache_key, 'networks' );
diff --git a/wp-includes/class-wp-post-type.php b/wp-includes/class-wp-post-type.php
index c08ca5e5b..0b1d3c00e 100644
--- a/wp-includes/class-wp-post-type.php
+++ b/wp-includes/class-wp-post-type.php
@@ -366,7 +366,7 @@ final class WP_Post_Type {
 		$args = wp_parse_args( $args );
 
 		/**
-		 * Filter the arguments for registering a post type.
+		 * Filters the arguments for registering a post type.
 		 *
 		 * @since 4.4.0
 		 *
diff --git a/wp-includes/class-wp-post.php b/wp-includes/class-wp-post.php
index 5904e588d..c96693489 100644
--- a/wp-includes/class-wp-post.php
+++ b/wp-includes/class-wp-post.php
@@ -210,9 +210,11 @@ final class WP_Post {
 	public static function get_instance( $post_id ) {
 		global $wpdb;
 
-		$post_id = (int) $post_id;
-		if ( ! $post_id )
+		if ( ! is_numeric( $post_id ) || $post_id != floor( $post_id ) || ! $post_id ) {
 			return false;
+		}
+
+		$post_id = (int) $post_id;
 
 		$_post = wp_cache_get( $post_id, 'posts' );
 
@@ -252,7 +254,7 @@ final class WP_Post {
 			return true;
 
 		if ( 'page_template' == $key )
-			return ( 'page' == $this->post_type );
+			return true;
 
 		if ( 'post_category' == $key )
 		   return true;
diff --git a/wp-includes/class-wp-query.php b/wp-includes/class-wp-query.php
new file mode 100644
index 000000000..7f3c22a78
--- /dev/null
+++ b/wp-includes/class-wp-query.php
@@ -0,0 +1,4107 @@
+<?php
+/**
+ * Query API: WP_Query class
+ *
+ * @package WordPress
+ * @subpackage Query
+ * @since 4.7.0
+ */
+
+/**
+ * The WordPress Query class.
+ *
+ * @link https://codex.wordpress.org/Function_Reference/WP_Query Codex page.
+ *
+ * @since 1.5.0
+ * @since 4.5.0 Removed the `$comments_popup` property.
+ */
+class WP_Query {
+
+	/**
+	 * Query vars set by the user
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var array
+	 */
+	public $query;
+
+	/**
+	 * Query vars, after parsing
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var array
+	 */
+	public $query_vars = array();
+
+	/**
+	 * Taxonomy query, as passed to get_tax_sql()
+	 *
+	 * @since 3.1.0
+	 * @access public
+	 * @var object WP_Tax_Query
+	 */
+	public $tax_query;
+
+	/**
+	 * Metadata query container
+	 *
+	 * @since 3.2.0
+	 * @access public
+	 * @var object WP_Meta_Query
+	 */
+	public $meta_query = false;
+
+	/**
+	 * Date query container
+	 *
+	 * @since 3.7.0
+	 * @access public
+	 * @var object WP_Date_Query
+	 */
+	public $date_query = false;
+
+	/**
+	 * Holds the data for a single object that is queried.
+	 *
+	 * Holds the contents of a post, page, category, attachment.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var object|array
+	 */
+	public $queried_object;
+
+	/**
+	 * The ID of the queried object.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var int
+	 */
+	public $queried_object_id;
+
+	/**
+	 * Get post database query.
+	 *
+	 * @since 2.0.1
+	 * @access public
+	 * @var string
+	 */
+	public $request;
+
+	/**
+	 * List of posts.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var array
+	 */
+	public $posts;
+
+	/**
+	 * The amount of posts for the current query.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var int
+	 */
+	public $post_count = 0;
+
+	/**
+	 * Index of the current item in the loop.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var int
+	 */
+	public $current_post = -1;
+
+	/**
+	 * Whether the loop has started and the caller is in the loop.
+	 *
+	 * @since 2.0.0
+	 * @access public
+	 * @var bool
+	 */
+	public $in_the_loop = false;
+
+	/**
+	 * The current post.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var WP_Post
+	 */
+	public $post;
+
+	/**
+	 * The list of comments for current post.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 * @var array
+	 */
+	public $comments;
+
+	/**
+	 * The amount of comments for the posts.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 * @var int
+	 */
+	public $comment_count = 0;
+
+	/**
+	 * The index of the comment in the comment loop.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 * @var int
+	 */
+	public $current_comment = -1;
+
+	/**
+	 * Current comment ID.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 * @var int
+	 */
+	public $comment;
+
+	/**
+	 * The amount of found posts for the current query.
+	 *
+	 * If limit clause was not used, equals $post_count.
+	 *
+	 * @since 2.1.0
+	 * @access public
+	 * @var int
+	 */
+	public $found_posts = 0;
+
+	/**
+	 * The amount of pages.
+	 *
+	 * @since 2.1.0
+	 * @access public
+	 * @var int
+	 */
+	public $max_num_pages = 0;
+
+	/**
+	 * The amount of comment pages.
+	 *
+	 * @since 2.7.0
+	 * @access public
+	 * @var int
+	 */
+	public $max_num_comment_pages = 0;
+
+	/**
+	 * Set if query is single post.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_single = false;
+
+	/**
+	 * Set if query is preview of blog.
+	 *
+	 * @since 2.0.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_preview = false;
+
+	/**
+	 * Set if query returns a page.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_page = false;
+
+	/**
+	 * Set if query is an archive list.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_archive = false;
+
+	/**
+	 * Set if query is part of a date.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_date = false;
+
+	/**
+	 * Set if query contains a year.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_year = false;
+
+	/**
+	 * Set if query contains a month.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_month = false;
+
+	/**
+	 * Set if query contains a day.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_day = false;
+
+	/**
+	 * Set if query contains time.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_time = false;
+
+	/**
+	 * Set if query contains an author.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_author = false;
+
+	/**
+	 * Set if query contains category.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_category = false;
+
+	/**
+	 * Set if query contains tag.
+	 *
+	 * @since 2.3.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_tag = false;
+
+	/**
+	 * Set if query contains taxonomy.
+	 *
+	 * @since 2.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_tax = false;
+
+	/**
+	 * Set if query was part of a search result.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_search = false;
+
+	/**
+	 * Set if query is feed display.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_feed = false;
+
+	/**
+	 * Set if query is comment feed display.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_comment_feed = false;
+
+	/**
+	 * Set if query is trackback.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_trackback = false;
+
+	/**
+	 * Set if query is blog homepage.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_home = false;
+
+	/**
+	 * Set if query couldn't found anything.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_404 = false;
+
+	/**
+	 * Set if query is embed.
+	 *
+	 * @since 4.4.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_embed = false;
+
+	/**
+	 * Set if query is paged
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_paged = false;
+
+	/**
+	 * Set if query is part of administration page.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_admin = false;
+
+	/**
+	 * Set if query is an attachment.
+	 *
+	 * @since 2.0.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_attachment = false;
+
+	/**
+	 * Set if is single, is a page, or is an attachment.
+	 *
+	 * @since 2.1.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_singular = false;
+
+	/**
+	 * Set if query is for robots.
+	 *
+	 * @since 2.1.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_robots = false;
+
+	/**
+	 * Set if query contains posts.
+	 *
+	 * Basically, the homepage if the option isn't set for the static homepage.
+	 *
+	 * @since 2.1.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_posts_page = false;
+
+	/**
+	 * Set if query is for a post type archive.
+	 *
+	 * @since 3.1.0
+	 * @access public
+	 * @var bool
+	 */
+	public $is_post_type_archive = false;
+
+	/**
+	 * Stores the ->query_vars state like md5(serialize( $this->query_vars ) ) so we know
+	 * whether we have to re-parse because something has changed
+	 *
+	 * @since 3.1.0
+	 * @access private
+	 * @var bool|string
+	 */
+	private $query_vars_hash = false;
+
+	/**
+	 * Whether query vars have changed since the initial parse_query() call. Used to catch modifications to query vars made
+	 * via pre_get_posts hooks.
+	 *
+	 * @since 3.1.1
+	 * @access private
+	 */
+	private $query_vars_changed = true;
+
+	/**
+	 * Set if post thumbnails are cached
+	 *
+	 * @since 3.2.0
+	 * @access public
+	 * @var bool
+	 */
+	 public $thumbnails_cached = false;
+
+	/**
+	 * Cached list of search stopwords.
+	 *
+	 * @since 3.7.0
+	 * @var array
+	 */
+	private $stopwords;
+
+	private $compat_fields = array( 'query_vars_hash', 'query_vars_changed' );
+
+	private $compat_methods = array( 'init_query_flags', 'parse_tax_query' );
+
+	/**
+	 * Resets query flags to false.
+	 *
+	 * The query flags are what page info WordPress was able to figure out.
+	 *
+	 * @since 2.0.0
+	 * @access private
+	 */
+	private function init_query_flags() {
+		$this->is_single = false;
+		$this->is_preview = false;
+		$this->is_page = false;
+		$this->is_archive = false;
+		$this->is_date = false;
+		$this->is_year = false;
+		$this->is_month = false;
+		$this->is_day = false;
+		$this->is_time = false;
+		$this->is_author = false;
+		$this->is_category = false;
+		$this->is_tag = false;
+		$this->is_tax = false;
+		$this->is_search = false;
+		$this->is_feed = false;
+		$this->is_comment_feed = false;
+		$this->is_trackback = false;
+		$this->is_home = false;
+		$this->is_404 = false;
+		$this->is_paged = false;
+		$this->is_admin = false;
+		$this->is_attachment = false;
+		$this->is_singular = false;
+		$this->is_robots = false;
+		$this->is_posts_page = false;
+		$this->is_post_type_archive = false;
+	}
+
+	/**
+	 * Initiates object properties and sets default values.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 */
+	public function init() {
+		unset($this->posts);
+		unset($this->query);
+		$this->query_vars = array();
+		unset($this->queried_object);
+		unset($this->queried_object_id);
+		$this->post_count = 0;
+		$this->current_post = -1;
+		$this->in_the_loop = false;
+		unset( $this->request );
+		unset( $this->post );
+		unset( $this->comments );
+		unset( $this->comment );
+		$this->comment_count = 0;
+		$this->current_comment = -1;
+		$this->found_posts = 0;
+		$this->max_num_pages = 0;
+		$this->max_num_comment_pages = 0;
+
+		$this->init_query_flags();
+	}
+
+	/**
+	 * Reparse the query vars.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 */
+	public function parse_query_vars() {
+		$this->parse_query();
+	}
+
+	/**
+	 * Fills in the query variables, which do not exist within the parameter.
+	 *
+	 * @since 2.1.0
+	 * @since 4.4.0 Removed the `comments_popup` public query variable.
+	 * @access public
+	 *
+	 * @param array $array Defined query variables.
+	 * @return array Complete query variables with undefined ones filled in empty.
+	 */
+	public function fill_query_vars($array) {
+		$keys = array(
+			'error'
+			, 'm'
+			, 'p'
+			, 'post_parent'
+			, 'subpost'
+			, 'subpost_id'
+			, 'attachment'
+			, 'attachment_id'
+			, 'name'
+			, 'static'
+			, 'pagename'
+			, 'page_id'
+			, 'second'
+			, 'minute'
+			, 'hour'
+			, 'day'
+			, 'monthnum'
+			, 'year'
+			, 'w'
+			, 'category_name'
+			, 'tag'
+			, 'cat'
+			, 'tag_id'
+			, 'author'
+			, 'author_name'
+			, 'feed'
+			, 'tb'
+			, 'paged'
+			, 'meta_key'
+			, 'meta_value'
+			, 'preview'
+			, 's'
+			, 'sentence'
+			, 'title'
+			, 'fields'
+			, 'menu_order'
+			, 'embed'
+		);
+
+		foreach ( $keys as $key ) {
+			if ( !isset($array[$key]) )
+				$array[$key] = '';
+		}
+
+		$array_keys = array( 'category__in', 'category__not_in', 'category__and', 'post__in', 'post__not_in', 'post_name__in',
+			'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and', 'post_parent__in', 'post_parent__not_in',
+			'author__in', 'author__not_in' );
+
+		foreach ( $array_keys as $key ) {
+			if ( !isset($array[$key]) )
+				$array[$key] = array();
+		}
+		return $array;
+	}
+
+	/**
+	 * Parse a query string and set query type booleans.
+	 *
+	 * @since 1.5.0
+	 * @since 4.2.0 Introduced the ability to order by specific clauses of a `$meta_query`, by passing the clause's
+	 *              array key to `$orderby`.
+	 * @since 4.4.0 Introduced `$post_name__in` and `$title` parameters. `$s` was updated to support excluded
+	 *              search terms, by prepending a hyphen.
+	 * @since 4.5.0 Removed the `$comments_popup` parameter.
+	 *              Introduced the `$comment_status` and `$ping_status` parameters.
+	 *              Introduced `RAND(x)` syntax for `$orderby`, which allows an integer seed value to random sorts.
+	 * @since 4.6.0 Added 'post_name__in' support for `$orderby`. Introduced the `$lazy_load_term_meta` argument.
+	 * @access public
+	 *
+	 * @param string|array $query {
+	 *     Optional. Array or string of Query parameters.
+	 *
+	 *     @type int          $attachment_id           Attachment post ID. Used for 'attachment' post_type.
+	 *     @type int|string   $author                  Author ID, or comma-separated list of IDs.
+	 *     @type string       $author_name             User 'user_nicename'.
+	 *     @type array        $author__in              An array of author IDs to query from.
+	 *     @type array        $author__not_in          An array of author IDs not to query from.
+	 *     @type bool         $cache_results           Whether to cache post information. Default true.
+	 *     @type int|string   $cat                     Category ID or comma-separated list of IDs (this or any children).
+	 *     @type array        $category__and           An array of category IDs (AND in).
+	 *     @type array        $category__in            An array of category IDs (OR in, no children).
+	 *     @type array        $category__not_in        An array of category IDs (NOT in).
+	 *     @type string       $category_name           Use category slug (not name, this or any children).
+	 *     @type string       $comment_status          Comment status.
+	 *     @type int          $comments_per_page       The number of comments to return per page.
+	 *                                                 Default 'comments_per_page' option.
+	 *     @type array        $date_query              An associative array of WP_Date_Query arguments.
+	 *                                                 See WP_Date_Query::__construct().
+	 *     @type int          $day                     Day of the month. Default empty. Accepts numbers 1-31.
+	 *     @type bool         $exact                   Whether to search by exact keyword. Default false.
+	 *     @type string|array $fields                  Which fields to return. Single field or all fields (string),
+	 *                                                 or array of fields. 'id=>parent' uses 'id' and 'post_parent'.
+	 *                                                 Default all fields. Accepts 'ids', 'id=>parent'.
+	 *     @type int          $hour                    Hour of the day. Default empty. Accepts numbers 0-23.
+	 *     @type int|bool     $ignore_sticky_posts     Whether to ignore sticky posts or not. Setting this to false
+	 *                                                 excludes stickies from 'post__in'. Accepts 1|true, 0|false.
+	 *                                                 Default 0|false.
+	 *     @type int          $m                       Combination YearMonth. Accepts any four-digit year and month
+	 *                                                 numbers 1-12. Default empty.
+	 *     @type string       $meta_compare            Comparison operator to test the 'meta_value'.
+	 *     @type string       $meta_key                Custom field key.
+	 *     @type array        $meta_query              An associative array of WP_Meta_Query arguments. See WP_Meta_Query.
+	 *     @type string       $meta_value              Custom field value.
+	 *     @type int          $meta_value_num          Custom field value number.
+	 *     @type int          $menu_order              The menu order of the posts.
+	 *     @type int          $monthnum                The two-digit month. Default empty. Accepts numbers 1-12.
+	 *     @type string       $name                    Post slug.
+	 *     @type bool         $nopaging                Show all posts (true) or paginate (false). Default false.
+	 *     @type bool         $no_found_rows           Whether to skip counting the total rows found. Enabling can improve
+	 *                                                 performance. Default false.
+	 *     @type int          $offset                  The number of posts to offset before retrieval.
+	 *     @type string       $order                   Designates ascending or descending order of posts. Default 'DESC'.
+	 *                                                 Accepts 'ASC', 'DESC'.
+	 *     @type string|array $orderby                 Sort retrieved posts by parameter. One or more options may be
+	 *                                                 passed. To use 'meta_value', or 'meta_value_num',
+	 *                                                 'meta_key=keyname' must be also be defined. To sort by a
+	 *                                                 specific `$meta_query` clause, use that clause's array key.
+	 *                                                 Default 'date'. Accepts 'none', 'name', 'author', 'date',
+	 *                                                 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand',
+	 *                                                 'RAND(x)' (where 'x' is an integer seed value),
+	 *                                                 'comment_count', 'meta_value', 'meta_value_num', 'post__in',
+	 *                                                 'post_name__in', 'post_parent__in', and the array keys
+	 *                                                 of `$meta_query`.
+	 *     @type int          $p                       Post ID.
+	 *     @type int          $page                    Show the number of posts that would show up on page X of a
+	 *                                                 static front page.
+	 *     @type int          $paged                   The number of the current page.
+	 *     @type int          $page_id                 Page ID.
+	 *     @type string       $pagename                Page slug.
+	 *     @type string       $perm                    Show posts if user has the appropriate capability.
+	 *     @type string       $ping_status             Ping status.
+	 *     @type array        $post__in                An array of post IDs to retrieve, sticky posts will be included
+	 *     @type string       $post_mime_type          The mime type of the post. Used for 'attachment' post_type.
+	 *     @type array        $post__not_in            An array of post IDs not to retrieve. Note: a string of comma-
+	 *                                                 separated IDs will NOT work.
+	 *     @type int          $post_parent             Page ID to retrieve child pages for. Use 0 to only retrieve
+	 *                                                 top-level pages.
+	 *     @type array        $post_parent__in         An array containing parent page IDs to query child pages from.
+	 *     @type array        $post_parent__not_in     An array containing parent page IDs not to query child pages from.
+	 *     @type string|array $post_type               A post type slug (string) or array of post type slugs.
+	 *                                                 Default 'any' if using 'tax_query'.
+	 *     @type string|array $post_status             A post status (string) or array of post statuses.
+	 *     @type int          $posts_per_page          The number of posts to query for. Use -1 to request all posts.
+	 *     @type int          $posts_per_archive_page  The number of posts to query for by archive page. Overrides
+	 *                                                 'posts_per_page' when is_archive(), or is_search() are true.
+	 *     @type array        $post_name__in           An array of post slugs that results must match.
+	 *     @type string       $s                       Search keyword(s). Prepending a term with a hyphen will
+	 *                                                 exclude posts matching that term. Eg, 'pillow -sofa' will
+	 *                                                 return posts containing 'pillow' but not 'sofa'. The
+	 *                                                 character used for exclusion can be modified using the
+	 *                                                 the 'wp_query_search_exclusion_prefix' filter.
+	 *     @type int          $second                  Second of the minute. Default empty. Accepts numbers 0-60.
+	 *     @type bool         $sentence                Whether to search by phrase. Default false.
+	 *     @type bool         $suppress_filters        Whether to suppress filters. Default false.
+	 *     @type string       $tag                     Tag slug. Comma-separated (either), Plus-separated (all).
+	 *     @type array        $tag__and                An array of tag ids (AND in).
+	 *     @type array        $tag__in                 An array of tag ids (OR in).
+	 *     @type array        $tag__not_in             An array of tag ids (NOT in).
+	 *     @type int          $tag_id                  Tag id or comma-separated list of IDs.
+	 *     @type array        $tag_slug__and           An array of tag slugs (AND in).
+	 *     @type array        $tag_slug__in            An array of tag slugs (OR in). unless 'ignore_sticky_posts' is
+	 *                                                 true. Note: a string of comma-separated IDs will NOT work.
+	 *     @type array        $tax_query               An associative array of WP_Tax_Query arguments.
+	 *                                                 See WP_Tax_Query->queries.
+	 *     @type string       $title                   Post title.
+	 *     @type bool         $update_post_meta_cache  Whether to update the post meta cache. Default true.
+	 *     @type bool         $update_post_term_cache  Whether to update the post term cache. Default true.
+	 *     @type bool         $lazy_load_term_meta     Whether to lazy-load term meta. Setting to false will
+	 *                                                 disable cache priming for term meta, so that each
+	 *                                                 get_term_meta() call will hit the database.
+	 *                                                 Defaults to the value of `$update_post_term_cache`.
+	 *     @type int          $w                       The week number of the year. Default empty. Accepts numbers 0-53.
+	 *     @type int          $year                    The four-digit year. Default empty. Accepts any four-digit year.
+	 * }
+	 */
+	public function parse_query( $query =  '' ) {
+		if ( ! empty( $query ) ) {
+			$this->init();
+			$this->query = $this->query_vars = wp_parse_args( $query );
+		} elseif ( ! isset( $this->query ) ) {
+			$this->query = $this->query_vars;
+		}
+
+		$this->query_vars = $this->fill_query_vars($this->query_vars);
+		$qv = &$this->query_vars;
+		$this->query_vars_changed = true;
+
+		if ( ! empty($qv['robots']) )
+			$this->is_robots = true;
+
+		if ( ! is_scalar( $qv['p'] ) || $qv['p'] < 0 ) {
+			$qv['p'] = 0;
+			$qv['error'] = '404';
+		} else {
+			$qv['p'] = intval( $qv['p'] );
+		}
+
+		$qv['page_id'] =  absint($qv['page_id']);
+		$qv['year'] = absint($qv['year']);
+		$qv['monthnum'] = absint($qv['monthnum']);
+		$qv['day'] = absint($qv['day']);
+		$qv['w'] = absint($qv['w']);
+		$qv['m'] = is_scalar( $qv['m'] ) ? preg_replace( '|[^0-9]|', '', $qv['m'] ) : '';
+		$qv['paged'] = absint($qv['paged']);
+		$qv['cat'] = preg_replace( '|[^0-9,-]|', '', $qv['cat'] ); // comma separated list of positive or negative integers
+		$qv['author'] = preg_replace( '|[^0-9,-]|', '', $qv['author'] ); // comma separated list of positive or negative integers
+		$qv['pagename'] = trim( $qv['pagename'] );
+		$qv['name'] = trim( $qv['name'] );
+		$qv['title'] = trim( $qv['title'] );
+		if ( '' !== $qv['hour'] ) $qv['hour'] = absint($qv['hour']);
+		if ( '' !== $qv['minute'] ) $qv['minute'] = absint($qv['minute']);
+		if ( '' !== $qv['second'] ) $qv['second'] = absint($qv['second']);
+		if ( '' !== $qv['menu_order'] ) $qv['menu_order'] = absint($qv['menu_order']);
+
+		// Fairly insane upper bound for search string lengths.
+		if ( ! is_scalar( $qv['s'] ) || ( ! empty( $qv['s'] ) && strlen( $qv['s'] ) > 1600 ) ) {
+			$qv['s'] = '';
+		}
+
+		// Compat. Map subpost to attachment.
+		if ( '' != $qv['subpost'] )
+			$qv['attachment'] = $qv['subpost'];
+		if ( '' != $qv['subpost_id'] )
+			$qv['attachment_id'] = $qv['subpost_id'];
+
+		$qv['attachment_id'] = absint($qv['attachment_id']);
+
+		if ( ('' != $qv['attachment']) || !empty($qv['attachment_id']) ) {
+			$this->is_single = true;
+			$this->is_attachment = true;
+		} elseif ( '' != $qv['name'] ) {
+			$this->is_single = true;
+		} elseif ( $qv['p'] ) {
+			$this->is_single = true;
+		} elseif ( ('' !== $qv['hour']) && ('' !== $qv['minute']) &&('' !== $qv['second']) && ('' != $qv['year']) && ('' != $qv['monthnum']) && ('' != $qv['day']) ) {
+			// If year, month, day, hour, minute, and second are set, a single
+			// post is being queried.
+			$this->is_single = true;
+		} elseif ( '' != $qv['static'] || '' != $qv['pagename'] || !empty($qv['page_id']) ) {
+			$this->is_page = true;
+			$this->is_single = false;
+		} else {
+			// Look for archive queries. Dates, categories, authors, search, post type archives.
+
+			if ( isset( $this->query['s'] ) ) {
+				$this->is_search = true;
+			}
+
+			if ( '' !== $qv['second'] ) {
+				$this->is_time = true;
+				$this->is_date = true;
+			}
+
+			if ( '' !== $qv['minute'] ) {
+				$this->is_time = true;
+				$this->is_date = true;
+			}
+
+			if ( '' !== $qv['hour'] ) {
+				$this->is_time = true;
+				$this->is_date = true;
+			}
+
+			if ( $qv['day'] ) {
+				if ( ! $this->is_date ) {
+					$date = sprintf( '%04d-%02d-%02d', $qv['year'], $qv['monthnum'], $qv['day'] );
+					if ( $qv['monthnum'] && $qv['year'] && ! wp_checkdate( $qv['monthnum'], $qv['day'], $qv['year'], $date ) ) {
+						$qv['error'] = '404';
+					} else {
+						$this->is_day = true;
+						$this->is_date = true;
+					}
+				}
+			}
+
+			if ( $qv['monthnum'] ) {
+				if ( ! $this->is_date ) {
+					if ( 12 < $qv['monthnum'] ) {
+						$qv['error'] = '404';
+					} else {
+						$this->is_month = true;
+						$this->is_date = true;
+					}
+				}
+			}
+
+			if ( $qv['year'] ) {
+				if ( ! $this->is_date ) {
+					$this->is_year = true;
+					$this->is_date = true;
+				}
+			}
+
+			if ( $qv['m'] ) {
+				$this->is_date = true;
+				if ( strlen($qv['m']) > 9 ) {
+					$this->is_time = true;
+				} elseif ( strlen( $qv['m'] ) > 7 ) {
+					$this->is_day = true;
+				} elseif ( strlen( $qv['m'] ) > 5 ) {
+					$this->is_month = true;
+				} else {
+					$this->is_year = true;
+				}
+			}
+
+			if ( '' != $qv['w'] ) {
+				$this->is_date = true;
+			}
+
+			$this->query_vars_hash = false;
+			$this->parse_tax_query( $qv );
+
+			foreach ( $this->tax_query->queries as $tax_query ) {
+				if ( ! is_array( $tax_query ) ) {
+					continue;
+				}
+
+				if ( isset( $tax_query['operator'] ) && 'NOT IN' != $tax_query['operator'] ) {
+					switch ( $tax_query['taxonomy'] ) {
+						case 'category':
+							$this->is_category = true;
+							break;
+						case 'post_tag':
+							$this->is_tag = true;
+							break;
+						default:
+							$this->is_tax = true;
+					}
+				}
+			}
+			unset( $tax_query );
+
+			if ( empty($qv['author']) || ($qv['author'] == '0') ) {
+				$this->is_author = false;
+			} else {
+				$this->is_author = true;
+			}
+
+			if ( '' != $qv['author_name'] )
+				$this->is_author = true;
+
+			if ( !empty( $qv['post_type'] ) && ! is_array( $qv['post_type'] ) ) {
+				$post_type_obj = get_post_type_object( $qv['post_type'] );
+				if ( ! empty( $post_type_obj->has_archive ) )
+					$this->is_post_type_archive = true;
+			}
+
+			if ( $this->is_post_type_archive || $this->is_date || $this->is_author || $this->is_category || $this->is_tag || $this->is_tax )
+				$this->is_archive = true;
+		}
+
+		if ( '' != $qv['feed'] )
+			$this->is_feed = true;
+
+		if ( '' != $qv['embed'] ) {
+			$this->is_embed = true;
+		}
+
+		if ( '' != $qv['tb'] )
+			$this->is_trackback = true;
+
+		if ( '' != $qv['paged'] && ( intval($qv['paged']) > 1 ) )
+			$this->is_paged = true;
+
+		// if we're previewing inside the write screen
+		if ( '' != $qv['preview'] )
+			$this->is_preview = true;
+
+		if ( is_admin() )
+			$this->is_admin = true;
+
+		if ( false !== strpos($qv['feed'], 'comments-') ) {
+			$qv['feed'] = str_replace('comments-', '', $qv['feed']);
+			$qv['withcomments'] = 1;
+		}
+
+		$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
+
+		if ( $this->is_feed && ( !empty($qv['withcomments']) || ( empty($qv['withoutcomments']) && $this->is_singular ) ) )
+			$this->is_comment_feed = true;
+
+		if ( !( $this->is_singular || $this->is_archive || $this->is_search || $this->is_feed || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) || $this->is_trackback || $this->is_404 || $this->is_admin || $this->is_robots ) )
+			$this->is_home = true;
+
+		// Correct is_* for page_on_front and page_for_posts
+		if ( $this->is_home && 'page' == get_option('show_on_front') && get_option('page_on_front') ) {
+			$_query = wp_parse_args($this->query);
+			// pagename can be set and empty depending on matched rewrite rules. Ignore an empty pagename.
+			if ( isset($_query['pagename']) && '' == $_query['pagename'] )
+				unset($_query['pagename']);
+
+			unset( $_query['embed'] );
+
+			if ( empty($_query) || !array_diff( array_keys($_query), array('preview', 'page', 'paged', 'cpage') ) ) {
+				$this->is_page = true;
+				$this->is_home = false;
+				$qv['page_id'] = get_option('page_on_front');
+				// Correct <!--nextpage--> for page_on_front
+				if ( !empty($qv['paged']) ) {
+					$qv['page'] = $qv['paged'];
+					unset($qv['paged']);
+				}
+			}
+		}
+
+		if ( '' != $qv['pagename'] ) {
+			$this->queried_object = get_page_by_path( $qv['pagename'] );
+
+			if ( $this->queried_object && 'attachment' == $this->queried_object->post_type ) {
+				if ( preg_match( "/^[^%]*%(?:postname)%/", get_option( 'permalink_structure' ) ) ) {
+					// See if we also have a post with the same slug
+					$post = get_page_by_path( $qv['pagename'], OBJECT, 'post' );
+					if ( $post ) {
+						$this->queried_object = $post;
+						$this->is_page = false;
+						$this->is_single = true;
+					}
+				}
+			}
+
+			if ( ! empty( $this->queried_object ) ) {
+				$this->queried_object_id = (int) $this->queried_object->ID;
+			} else {
+				unset( $this->queried_object );
+			}
+
+			if  ( 'page' == get_option('show_on_front') && isset($this->queried_object_id) && $this->queried_object_id == get_option('page_for_posts') ) {
+				$this->is_page = false;
+				$this->is_home = true;
+				$this->is_posts_page = true;
+			}
+		}
+
+		if ( $qv['page_id'] ) {
+			if  ( 'page' == get_option('show_on_front') && $qv['page_id'] == get_option('page_for_posts') ) {
+				$this->is_page = false;
+				$this->is_home = true;
+				$this->is_posts_page = true;
+			}
+		}
+
+		if ( !empty($qv['post_type']) ) {
+			if ( is_array($qv['post_type']) )
+				$qv['post_type'] = array_map('sanitize_key', $qv['post_type']);
+			else
+				$qv['post_type'] = sanitize_key($qv['post_type']);
+		}
+
+		if ( ! empty( $qv['post_status'] ) ) {
+			if ( is_array( $qv['post_status'] ) )
+				$qv['post_status'] = array_map('sanitize_key', $qv['post_status']);
+			else
+				$qv['post_status'] = preg_replace('|[^a-z0-9_,-]|', '', $qv['post_status']);
+		}
+
+		if ( $this->is_posts_page && ( ! isset($qv['withcomments']) || ! $qv['withcomments'] ) )
+			$this->is_comment_feed = false;
+
+		$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
+		// Done correcting is_* for page_on_front and page_for_posts
+
+		if ( '404' == $qv['error'] )
+			$this->set_404();
+
+		$this->is_embed = $this->is_embed && ( $this->is_singular || $this->is_404 );
+
+		$this->query_vars_hash = md5( serialize( $this->query_vars ) );
+		$this->query_vars_changed = false;
+
+		/**
+		 * Fires after the main query vars have been parsed.
+		 *
+		 * @since 1.5.0
+		 *
+		 * @param WP_Query &$this The WP_Query instance (passed by reference).
+		 */
+		do_action_ref_array( 'parse_query', array( &$this ) );
+	}
+
+	/**
+	 * Parses various taxonomy related query vars.
+	 *
+	 * For BC, this method is not marked as protected. See [28987].
+	 *
+	 * @access protected
+	 * @since 3.1.0
+	 *
+	 * @param array $q The query variables. Passed by reference.
+	 */
+	public function parse_tax_query( &$q ) {
+		if ( ! empty( $q['tax_query'] ) && is_array( $q['tax_query'] ) ) {
+			$tax_query = $q['tax_query'];
+		} else {
+			$tax_query = array();
+		}
+
+		if ( !empty($q['taxonomy']) && !empty($q['term']) ) {
+			$tax_query[] = array(
+				'taxonomy' => $q['taxonomy'],
+				'terms' => array( $q['term'] ),
+				'field' => 'slug',
+			);
+		}
+
+		foreach ( get_taxonomies( array() , 'objects' ) as $taxonomy => $t ) {
+			if ( 'post_tag' == $taxonomy )
+				continue;	// Handled further down in the $q['tag'] block
+
+			if ( $t->query_var && !empty( $q[$t->query_var] ) ) {
+				$tax_query_defaults = array(
+					'taxonomy' => $taxonomy,
+					'field' => 'slug',
+				);
+
+ 				if ( isset( $t->rewrite['hierarchical'] ) && $t->rewrite['hierarchical'] ) {
+					$q[$t->query_var] = wp_basename( $q[$t->query_var] );
+				}
+
+				$term = $q[$t->query_var];
+
+				if ( is_array( $term ) ) {
+					$term = implode( ',', $term );
+				}
+
+				if ( strpos($term, '+') !== false ) {
+					$terms = preg_split( '/[+]+/', $term );
+					foreach ( $terms as $term ) {
+						$tax_query[] = array_merge( $tax_query_defaults, array(
+							'terms' => array( $term )
+						) );
+					}
+				} else {
+					$tax_query[] = array_merge( $tax_query_defaults, array(
+						'terms' => preg_split( '/[,]+/', $term )
+					) );
+				}
+			}
+		}
+
+		// If querystring 'cat' is an array, implode it.
+		if ( is_array( $q['cat'] ) ) {
+			$q['cat'] = implode( ',', $q['cat'] );
+		}
+
+		// Category stuff
+		if ( ! empty( $q['cat'] ) && ! $this->is_singular ) {
+			$cat_in = $cat_not_in = array();
+
+			$cat_array = preg_split( '/[,\s]+/', urldecode( $q['cat'] ) );
+			$cat_array = array_map( 'intval', $cat_array );
+			$q['cat'] = implode( ',', $cat_array );
+
+			foreach ( $cat_array as $cat ) {
+				if ( $cat > 0 )
+					$cat_in[] = $cat;
+				elseif ( $cat < 0 )
+					$cat_not_in[] = abs( $cat );
+			}
+
+			if ( ! empty( $cat_in ) ) {
+				$tax_query[] = array(
+					'taxonomy' => 'category',
+					'terms' => $cat_in,
+					'field' => 'term_id',
+					'include_children' => true
+				);
+			}
+
+			if ( ! empty( $cat_not_in ) ) {
+				$tax_query[] = array(
+					'taxonomy' => 'category',
+					'terms' => $cat_not_in,
+					'field' => 'term_id',
+					'operator' => 'NOT IN',
+					'include_children' => true
+				);
+			}
+			unset( $cat_array, $cat_in, $cat_not_in );
+		}
+
+		if ( ! empty( $q['category__and'] ) && 1 === count( (array) $q['category__and'] ) ) {
+			$q['category__and'] = (array) $q['category__and'];
+			if ( ! isset( $q['category__in'] ) )
+				$q['category__in'] = array();
+			$q['category__in'][] = absint( reset( $q['category__and'] ) );
+			unset( $q['category__and'] );
+		}
+
+		if ( ! empty( $q['category__in'] ) ) {
+			$q['category__in'] = array_map( 'absint', array_unique( (array) $q['category__in'] ) );
+			$tax_query[] = array(
+				'taxonomy' => 'category',
+				'terms' => $q['category__in'],
+				'field' => 'term_id',
+				'include_children' => false
+			);
+		}
+
+		if ( ! empty($q['category__not_in']) ) {
+			$q['category__not_in'] = array_map( 'absint', array_unique( (array) $q['category__not_in'] ) );
+			$tax_query[] = array(
+				'taxonomy' => 'category',
+				'terms' => $q['category__not_in'],
+				'operator' => 'NOT IN',
+				'include_children' => false
+			);
+		}
+
+		if ( ! empty($q['category__and']) ) {
+			$q['category__and'] = array_map( 'absint', array_unique( (array) $q['category__and'] ) );
+			$tax_query[] = array(
+				'taxonomy' => 'category',
+				'terms' => $q['category__and'],
+				'field' => 'term_id',
+				'operator' => 'AND',
+				'include_children' => false
+			);
+		}
+
+		// If querystring 'tag' is array, implode it.
+		if ( is_array( $q['tag'] ) ) {
+			$q['tag'] = implode( ',', $q['tag'] );
+		}
+
+		// Tag stuff
+		if ( '' != $q['tag'] && !$this->is_singular && $this->query_vars_changed ) {
+			if ( strpos($q['tag'], ',') !== false ) {
+				$tags = preg_split('/[,\r\n\t ]+/', $q['tag']);
+				foreach ( (array) $tags as $tag ) {
+					$tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
+					$q['tag_slug__in'][] = $tag;
+				}
+			} elseif ( preg_match('/[+\r\n\t ]+/', $q['tag'] ) || ! empty( $q['cat'] ) ) {
+				$tags = preg_split('/[+\r\n\t ]+/', $q['tag']);
+				foreach ( (array) $tags as $tag ) {
+					$tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
+					$q['tag_slug__and'][] = $tag;
+				}
+			} else {
+				$q['tag'] = sanitize_term_field('slug', $q['tag'], 0, 'post_tag', 'db');
+				$q['tag_slug__in'][] = $q['tag'];
+			}
+		}
+
+		if ( !empty($q['tag_id']) ) {
+			$q['tag_id'] = absint( $q['tag_id'] );
+			$tax_query[] = array(
+				'taxonomy' => 'post_tag',
+				'terms' => $q['tag_id']
+			);
+		}
+
+		if ( !empty($q['tag__in']) ) {
+			$q['tag__in'] = array_map('absint', array_unique( (array) $q['tag__in'] ) );
+			$tax_query[] = array(
+				'taxonomy' => 'post_tag',
+				'terms' => $q['tag__in']
+			);
+		}
+
+		if ( !empty($q['tag__not_in']) ) {
+			$q['tag__not_in'] = array_map('absint', array_unique( (array) $q['tag__not_in'] ) );
+			$tax_query[] = array(
+				'taxonomy' => 'post_tag',
+				'terms' => $q['tag__not_in'],
+				'operator' => 'NOT IN'
+			);
+		}
+
+		if ( !empty($q['tag__and']) ) {
+			$q['tag__and'] = array_map('absint', array_unique( (array) $q['tag__and'] ) );
+			$tax_query[] = array(
+				'taxonomy' => 'post_tag',
+				'terms' => $q['tag__and'],
+				'operator' => 'AND'
+			);
+		}
+
+		if ( !empty($q['tag_slug__in']) ) {
+			$q['tag_slug__in'] = array_map('sanitize_title_for_query', array_unique( (array) $q['tag_slug__in'] ) );
+			$tax_query[] = array(
+				'taxonomy' => 'post_tag',
+				'terms' => $q['tag_slug__in'],
+				'field' => 'slug'
+			);
+		}
+
+		if ( !empty($q['tag_slug__and']) ) {
+			$q['tag_slug__and'] = array_map('sanitize_title_for_query', array_unique( (array) $q['tag_slug__and'] ) );
+			$tax_query[] = array(
+				'taxonomy' => 'post_tag',
+				'terms' => $q['tag_slug__and'],
+				'field' => 'slug',
+				'operator' => 'AND'
+			);
+		}
+
+		$this->tax_query = new WP_Tax_Query( $tax_query );
+
+		/**
+		 * Fires after taxonomy-related query vars have been parsed.
+		 *
+		 * @since 3.7.0
+		 *
+		 * @param WP_Query $this The WP_Query instance.
+		 */
+		do_action( 'parse_tax_query', $this );
+	}
+
+	/**
+	 * Generate SQL for the WHERE clause based on passed search terms.
+	 *
+	 * @since 3.7.0
+	 *
+	 * @param array $q Query variables.
+	 * @return string WHERE clause.
+	 */
+	protected function parse_search( &$q ) {
+		global $wpdb;
+
+		$search = '';
+
+		// added slashes screw with quote grouping when done early, so done later
+		$q['s'] = stripslashes( $q['s'] );
+		if ( empty( $_GET['s'] ) && $this->is_main_query() )
+			$q['s'] = urldecode( $q['s'] );
+		// there are no line breaks in <input /> fields
+		$q['s'] = str_replace( array( "\r", "\n" ), '', $q['s'] );
+		$q['search_terms_count'] = 1;
+		if ( ! empty( $q['sentence'] ) ) {
+			$q['search_terms'] = array( $q['s'] );
+		} else {
+			if ( preg_match_all( '/".*?("|$)|((?<=[\t ",+])|^)[^\t ",+]+/', $q['s'], $matches ) ) {
+				$q['search_terms_count'] = count( $matches[0] );
+				$q['search_terms'] = $this->parse_search_terms( $matches[0] );
+				// if the search string has only short terms or stopwords, or is 10+ terms long, match it as sentence
+				if ( empty( $q['search_terms'] ) || count( $q['search_terms'] ) > 9 )
+					$q['search_terms'] = array( $q['s'] );
+			} else {
+				$q['search_terms'] = array( $q['s'] );
+			}
+		}
+
+		$n = ! empty( $q['exact'] ) ? '' : '%';
+		$searchand = '';
+		$q['search_orderby_title'] = array();
+
+		/**
+		 * Filters the prefix that indicates that a search term should be excluded from results.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param string $exclusion_prefix The prefix. Default '-'. Returning
+		 *                                 an empty value disables exclusions.
+		 */
+		$exclusion_prefix = apply_filters( 'wp_query_search_exclusion_prefix', '-' );
+
+		foreach ( $q['search_terms'] as $term ) {
+			// If there is an $exclusion_prefix, terms prefixed with it should be excluded.
+			$exclude = $exclusion_prefix && ( $exclusion_prefix === substr( $term, 0, 1 ) );
+			if ( $exclude ) {
+				$like_op  = 'NOT LIKE';
+				$andor_op = 'AND';
+				$term     = substr( $term, 1 );
+			} else {
+				$like_op  = 'LIKE';
+				$andor_op = 'OR';
+			}
+
+			if ( $n && ! $exclude ) {
+				$like = '%' . $wpdb->esc_like( $term ) . '%';
+				$q['search_orderby_title'][] = $wpdb->prepare( "{$wpdb->posts}.post_title LIKE %s", $like );
+			}
+
+			$like = $n . $wpdb->esc_like( $term ) . $n;
+			$search .= $wpdb->prepare( "{$searchand}(({$wpdb->posts}.post_title $like_op %s) $andor_op ({$wpdb->posts}.post_excerpt $like_op %s) $andor_op ({$wpdb->posts}.post_content $like_op %s))", $like, $like, $like );
+			$searchand = ' AND ';
+		}
+
+		if ( ! empty( $search ) ) {
+			$search = " AND ({$search}) ";
+			if ( ! is_user_logged_in() ) {
+				$search .= " AND ({$wpdb->posts}.post_password = '') ";
+			}
+		}
+
+		return $search;
+	}
+
+	/**
+	 * Check if the terms are suitable for searching.
+	 *
+	 * Uses an array of stopwords (terms) that are excluded from the separate
+	 * term matching when searching for posts. The list of English stopwords is
+	 * the approximate search engines list, and is translatable.
+	 *
+	 * @since 3.7.0
+	 *
+	 * @param array $terms Terms to check.
+	 * @return array Terms that are not stopwords.
+	 */
+	protected function parse_search_terms( $terms ) {
+		$strtolower = function_exists( 'mb_strtolower' ) ? 'mb_strtolower' : 'strtolower';
+		$checked = array();
+
+		$stopwords = $this->get_search_stopwords();
+
+		foreach ( $terms as $term ) {
+			// keep before/after spaces when term is for exact match
+			if ( preg_match( '/^".+"$/', $term ) )
+				$term = trim( $term, "\"'" );
+			else
+				$term = trim( $term, "\"' " );
+
+			// Avoid single A-Z and single dashes.
+			if ( ! $term || ( 1 === strlen( $term ) && preg_match( '/^[a-z\-]$/i', $term ) ) )
+				continue;
+
+			if ( in_array( call_user_func( $strtolower, $term ), $stopwords, true ) )
+				continue;
+
+			$checked[] = $term;
+		}
+
+		return $checked;
+	}
+
+	/**
+	 * Retrieve stopwords used when parsing search terms.
+	 *
+	 * @since 3.7.0
+	 *
+	 * @return array Stopwords.
+	 */
+	protected function get_search_stopwords() {
+		if ( isset( $this->stopwords ) )
+			return $this->stopwords;
+
+		/* translators: This is a comma-separated list of very common words that should be excluded from a search,
+		 * like a, an, and the. These are usually called "stopwords". You should not simply translate these individual
+		 * words into your language. Instead, look for and provide commonly accepted stopwords in your language.
+		 */
+		$words = explode( ',', _x( 'about,an,are,as,at,be,by,com,for,from,how,in,is,it,of,on,or,that,the,this,to,was,what,when,where,who,will,with,www',
+			'Comma-separated list of search stopwords in your language' ) );
+
+		$stopwords = array();
+		foreach ( $words as $word ) {
+			$word = trim( $word, "\r\n\t " );
+			if ( $word )
+				$stopwords[] = $word;
+		}
+
+		/**
+		 * Filters stopwords used when parsing search terms.
+		 *
+		 * @since 3.7.0
+		 *
+		 * @param array $stopwords Stopwords.
+		 */
+		$this->stopwords = apply_filters( 'wp_search_stopwords', $stopwords );
+		return $this->stopwords;
+	}
+
+	/**
+	 * Generate SQL for the ORDER BY condition based on passed search terms.
+	 *
+	 * @param array $q Query variables.
+	 * @return string ORDER BY clause.
+	 */
+	protected function parse_search_order( &$q ) {
+		global $wpdb;
+
+		if ( $q['search_terms_count'] > 1 ) {
+			$num_terms = count( $q['search_orderby_title'] );
+
+			// If the search terms contain negative queries, don't bother ordering by sentence matches.
+			$like = '';
+			if ( ! preg_match( '/(?:\s|^)\-/', $q['s'] ) ) {
+				$like = '%' . $wpdb->esc_like( $q['s'] ) . '%';
+			}
+
+			$search_orderby = '';
+
+			// sentence match in 'post_title'
+			if ( $like ) {
+				$search_orderby .= $wpdb->prepare( "WHEN {$wpdb->posts}.post_title LIKE %s THEN 1 ", $like );
+			}
+
+			// sanity limit, sort as sentence when more than 6 terms
+			// (few searches are longer than 6 terms and most titles are not)
+			if ( $num_terms < 7 ) {
+				// all words in title
+				$search_orderby .= 'WHEN ' . implode( ' AND ', $q['search_orderby_title'] ) . ' THEN 2 ';
+				// any word in title, not needed when $num_terms == 1
+				if ( $num_terms > 1 )
+					$search_orderby .= 'WHEN ' . implode( ' OR ', $q['search_orderby_title'] ) . ' THEN 3 ';
+			}
+
+			// Sentence match in 'post_content' and 'post_excerpt'.
+			if ( $like ) {
+				$search_orderby .= $wpdb->prepare( "WHEN {$wpdb->posts}.post_excerpt LIKE %s THEN 4 ", $like );
+				$search_orderby .= $wpdb->prepare( "WHEN {$wpdb->posts}.post_content LIKE %s THEN 5 ", $like );
+			}
+
+			if ( $search_orderby ) {
+				$search_orderby = '(CASE ' . $search_orderby . 'ELSE 6 END)';
+			}
+		} else {
+			// single word or sentence search
+			$search_orderby = reset( $q['search_orderby_title'] ) . ' DESC';
+		}
+
+		return $search_orderby;
+	}
+
+	/**
+	 * If the passed orderby value is allowed, convert the alias to a
+	 * properly-prefixed orderby value.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param string $orderby Alias for the field to order by.
+	 * @return string|false Table-prefixed value to used in the ORDER clause. False otherwise.
+	 */
+	protected function parse_orderby( $orderby ) {
+		global $wpdb;
+
+		// Used to filter values.
+		$allowed_keys = array(
+			'post_name', 'post_author', 'post_date', 'post_title', 'post_modified',
+			'post_parent', 'post_type', 'name', 'author', 'date', 'title', 'modified',
+			'parent', 'type', 'ID', 'menu_order', 'comment_count', 'rand',
+		);
+
+		$primary_meta_key = '';
+		$primary_meta_query = false;
+		$meta_clauses = $this->meta_query->get_clauses();
+		if ( ! empty( $meta_clauses ) ) {
+			$primary_meta_query = reset( $meta_clauses );
+
+			if ( ! empty( $primary_meta_query['key'] ) ) {
+				$primary_meta_key = $primary_meta_query['key'];
+				$allowed_keys[] = $primary_meta_key;
+			}
+
+			$allowed_keys[] = 'meta_value';
+			$allowed_keys[] = 'meta_value_num';
+			$allowed_keys   = array_merge( $allowed_keys, array_keys( $meta_clauses ) );
+		}
+
+		// If RAND() contains a seed value, sanitize and add to allowed keys.
+		$rand_with_seed = false;
+		if ( preg_match( '/RAND\(([0-9]+)\)/i', $orderby, $matches ) ) {
+			$orderby = sprintf( 'RAND(%s)', intval( $matches[1] ) );
+			$allowed_keys[] = $orderby;
+			$rand_with_seed = true;
+		}
+
+		if ( ! in_array( $orderby, $allowed_keys, true ) ) {
+			return false;
+		}
+
+		switch ( $orderby ) {
+			case 'post_name':
+			case 'post_author':
+			case 'post_date':
+			case 'post_title':
+			case 'post_modified':
+			case 'post_parent':
+			case 'post_type':
+			case 'ID':
+			case 'menu_order':
+			case 'comment_count':
+				$orderby_clause = "{$wpdb->posts}.{$orderby}";
+				break;
+			case 'rand':
+				$orderby_clause = 'RAND()';
+				break;
+			case $primary_meta_key:
+			case 'meta_value':
+				if ( ! empty( $primary_meta_query['type'] ) ) {
+					$orderby_clause = "CAST({$primary_meta_query['alias']}.meta_value AS {$primary_meta_query['cast']})";
+				} else {
+					$orderby_clause = "{$primary_meta_query['alias']}.meta_value";
+				}
+				break;
+			case 'meta_value_num':
+				$orderby_clause = "{$primary_meta_query['alias']}.meta_value+0";
+				break;
+			default:
+				if ( array_key_exists( $orderby, $meta_clauses ) ) {
+					// $orderby corresponds to a meta_query clause.
+					$meta_clause = $meta_clauses[ $orderby ];
+					$orderby_clause = "CAST({$meta_clause['alias']}.meta_value AS {$meta_clause['cast']})";
+				} elseif ( $rand_with_seed ) {
+					$orderby_clause = $orderby;
+				} else {
+					// Default: order by post field.
+					$orderby_clause = "{$wpdb->posts}.post_" . sanitize_key( $orderby );
+				}
+
+				break;
+		}
+
+		return $orderby_clause;
+	}
+
+	/**
+	 * Parse an 'order' query variable and cast it to ASC or DESC as necessary.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param string $order The 'order' query variable.
+	 * @return string The sanitized 'order' query variable.
+	 */
+	protected function parse_order( $order ) {
+		if ( ! is_string( $order ) || empty( $order ) ) {
+			return 'DESC';
+		}
+
+		if ( 'ASC' === strtoupper( $order ) ) {
+			return 'ASC';
+		} else {
+			return 'DESC';
+		}
+	}
+
+	/**
+	 * Sets the 404 property and saves whether query is feed.
+	 *
+	 * @since 2.0.0
+	 * @access public
+	 */
+	public function set_404() {
+		$is_feed = $this->is_feed;
+
+		$this->init_query_flags();
+		$this->is_404 = true;
+
+		$this->is_feed = $is_feed;
+	}
+
+	/**
+	 * Retrieve query variable.
+	 *
+	 * @since 1.5.0
+	 * @since 3.9.0 The `$default` argument was introduced.
+	 *
+	 * @access public
+	 *
+	 * @param string $query_var Query variable key.
+	 * @param mixed  $default   Optional. Value to return if the query variable is not set. Default empty.
+	 * @return mixed Contents of the query variable.
+	 */
+	public function get( $query_var, $default = '' ) {
+		if ( isset( $this->query_vars[ $query_var ] ) ) {
+			return $this->query_vars[ $query_var ];
+		}
+
+		return $default;
+	}
+
+	/**
+	 * Set query variable.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @param string $query_var Query variable key.
+	 * @param mixed  $value     Query variable value.
+	 */
+	public function set($query_var, $value) {
+		$this->query_vars[$query_var] = $value;
+	}
+
+	/**
+	 * Retrieve the posts based on query variables.
+	 *
+	 * There are a few filters and actions that can be used to modify the post
+	 * database query.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @return array List of posts.
+	 */
+	public function get_posts() {
+		global $wpdb;
+
+		$this->parse_query();
+
+		/**
+		 * Fires after the query variable object is created, but before the actual query is run.
+		 *
+		 * Note: If using conditional tags, use the method versions within the passed instance
+		 * (e.g. $this->is_main_query() instead of is_main_query()). This is because the functions
+		 * like is_main_query() test against the global $wp_query instance, not the passed one.
+		 *
+		 * @since 2.0.0
+		 *
+		 * @param WP_Query &$this The WP_Query instance (passed by reference).
+		 */
+		do_action_ref_array( 'pre_get_posts', array( &$this ) );
+
+		// Shorthand.
+		$q = &$this->query_vars;
+
+		// Fill again in case pre_get_posts unset some vars.
+		$q = $this->fill_query_vars($q);
+
+		// Parse meta query
+		$this->meta_query = new WP_Meta_Query();
+		$this->meta_query->parse_query_vars( $q );
+
+		// Set a flag if a pre_get_posts hook changed the query vars.
+		$hash = md5( serialize( $this->query_vars ) );
+		if ( $hash != $this->query_vars_hash ) {
+			$this->query_vars_changed = true;
+			$this->query_vars_hash = $hash;
+		}
+		unset($hash);
+
+		// First let's clear some variables
+		$distinct = '';
+		$whichauthor = '';
+		$whichmimetype = '';
+		$where = '';
+		$limits = '';
+		$join = '';
+		$search = '';
+		$groupby = '';
+		$post_status_join = false;
+		$page = 1;
+
+		if ( isset( $q['caller_get_posts'] ) ) {
+			_deprecated_argument( 'WP_Query', '3.1.0', __( '"caller_get_posts" is deprecated. Use "ignore_sticky_posts" instead.' ) );
+			if ( !isset( $q['ignore_sticky_posts'] ) )
+				$q['ignore_sticky_posts'] = $q['caller_get_posts'];
+		}
+
+		if ( !isset( $q['ignore_sticky_posts'] ) )
+			$q['ignore_sticky_posts'] = false;
+
+		if ( !isset($q['suppress_filters']) )
+			$q['suppress_filters'] = false;
+
+		if ( !isset($q['cache_results']) ) {
+			if ( wp_using_ext_object_cache() )
+				$q['cache_results'] = false;
+			else
+				$q['cache_results'] = true;
+		}
+
+		if ( !isset($q['update_post_term_cache']) )
+			$q['update_post_term_cache'] = true;
+
+		if ( ! isset( $q['lazy_load_term_meta'] ) ) {
+			$q['lazy_load_term_meta'] = $q['update_post_term_cache'];
+		}
+
+		if ( !isset($q['update_post_meta_cache']) )
+			$q['update_post_meta_cache'] = true;
+
+		if ( !isset($q['post_type']) ) {
+			if ( $this->is_search )
+				$q['post_type'] = 'any';
+			else
+				$q['post_type'] = '';
+		}
+		$post_type = $q['post_type'];
+		if ( empty( $q['posts_per_page'] ) ) {
+			$q['posts_per_page'] = get_option( 'posts_per_page' );
+		}
+		if ( isset($q['showposts']) && $q['showposts'] ) {
+			$q['showposts'] = (int) $q['showposts'];
+			$q['posts_per_page'] = $q['showposts'];
+		}
+		if ( (isset($q['posts_per_archive_page']) && $q['posts_per_archive_page'] != 0) && ($this->is_archive || $this->is_search) )
+			$q['posts_per_page'] = $q['posts_per_archive_page'];
+		if ( !isset($q['nopaging']) ) {
+			if ( $q['posts_per_page'] == -1 ) {
+				$q['nopaging'] = true;
+			} else {
+				$q['nopaging'] = false;
+			}
+		}
+
+		if ( $this->is_feed ) {
+			// This overrides posts_per_page.
+			if ( ! empty( $q['posts_per_rss'] ) ) {
+				$q['posts_per_page'] = $q['posts_per_rss'];
+			} else {
+				$q['posts_per_page'] = get_option( 'posts_per_rss' );
+			}
+			$q['nopaging'] = false;
+		}
+		$q['posts_per_page'] = (int) $q['posts_per_page'];
+		if ( $q['posts_per_page'] < -1 )
+			$q['posts_per_page'] = abs($q['posts_per_page']);
+		elseif ( $q['posts_per_page'] == 0 )
+			$q['posts_per_page'] = 1;
+
+		if ( !isset($q['comments_per_page']) || $q['comments_per_page'] == 0 )
+			$q['comments_per_page'] = get_option('comments_per_page');
+
+		if ( $this->is_home && (empty($this->query) || $q['preview'] == 'true') && ( 'page' == get_option('show_on_front') ) && get_option('page_on_front') ) {
+			$this->is_page = true;
+			$this->is_home = false;
+			$q['page_id'] = get_option('page_on_front');
+		}
+
+		if ( isset($q['page']) ) {
+			$q['page'] = trim($q['page'], '/');
+			$q['page'] = absint($q['page']);
+		}
+
+		// If true, forcibly turns off SQL_CALC_FOUND_ROWS even when limits are present.
+		if ( isset($q['no_found_rows']) )
+			$q['no_found_rows'] = (bool) $q['no_found_rows'];
+		else
+			$q['no_found_rows'] = false;
+
+		switch ( $q['fields'] ) {
+			case 'ids':
+				$fields = "{$wpdb->posts}.ID";
+				break;
+			case 'id=>parent':
+				$fields = "{$wpdb->posts}.ID, {$wpdb->posts}.post_parent";
+				break;
+			default:
+				$fields = "{$wpdb->posts}.*";
+		}
+
+		if ( '' !== $q['menu_order'] ) {
+			$where .= " AND {$wpdb->posts}.menu_order = " . $q['menu_order'];
+		}
+		// The "m" parameter is meant for months but accepts datetimes of varying specificity
+		if ( $q['m'] ) {
+			$where .= " AND YEAR({$wpdb->posts}.post_date)=" . substr($q['m'], 0, 4);
+			if ( strlen($q['m']) > 5 ) {
+				$where .= " AND MONTH({$wpdb->posts}.post_date)=" . substr($q['m'], 4, 2);
+			}
+			if ( strlen($q['m']) > 7 ) {
+				$where .= " AND DAYOFMONTH({$wpdb->posts}.post_date)=" . substr($q['m'], 6, 2);
+			}
+			if ( strlen($q['m']) > 9 ) {
+				$where .= " AND HOUR({$wpdb->posts}.post_date)=" . substr($q['m'], 8, 2);
+			}
+			if ( strlen($q['m']) > 11 ) {
+				$where .= " AND MINUTE({$wpdb->posts}.post_date)=" . substr($q['m'], 10, 2);
+			}
+			if ( strlen($q['m']) > 13 ) {
+				$where .= " AND SECOND({$wpdb->posts}.post_date)=" . substr($q['m'], 12, 2);
+			}
+		}
+
+		// Handle the other individual date parameters
+		$date_parameters = array();
+
+		if ( '' !== $q['hour'] )
+			$date_parameters['hour'] = $q['hour'];
+
+		if ( '' !== $q['minute'] )
+			$date_parameters['minute'] = $q['minute'];
+
+		if ( '' !== $q['second'] )
+			$date_parameters['second'] = $q['second'];
+
+		if ( $q['year'] )
+			$date_parameters['year'] = $q['year'];
+
+		if ( $q['monthnum'] )
+			$date_parameters['monthnum'] = $q['monthnum'];
+
+		if ( $q['w'] )
+			$date_parameters['week'] = $q['w'];
+
+		if ( $q['day'] )
+			$date_parameters['day'] = $q['day'];
+
+		if ( $date_parameters ) {
+			$date_query = new WP_Date_Query( array( $date_parameters ) );
+			$where .= $date_query->get_sql();
+		}
+		unset( $date_parameters, $date_query );
+
+		// Handle complex date queries
+		if ( ! empty( $q['date_query'] ) ) {
+			$this->date_query = new WP_Date_Query( $q['date_query'] );
+			$where .= $this->date_query->get_sql();
+		}
+
+
+		// If we've got a post_type AND it's not "any" post_type.
+		if ( !empty($q['post_type']) && 'any' != $q['post_type'] ) {
+			foreach ( (array)$q['post_type'] as $_post_type ) {
+				$ptype_obj = get_post_type_object($_post_type);
+				if ( !$ptype_obj || !$ptype_obj->query_var || empty($q[ $ptype_obj->query_var ]) )
+					continue;
+
+				if ( ! $ptype_obj->hierarchical ) {
+					// Non-hierarchical post types can directly use 'name'.
+					$q['name'] = $q[ $ptype_obj->query_var ];
+				} else {
+					// Hierarchical post types will operate through 'pagename'.
+					$q['pagename'] = $q[ $ptype_obj->query_var ];
+					$q['name'] = '';
+				}
+
+				// Only one request for a slug is possible, this is why name & pagename are overwritten above.
+				break;
+			} //end foreach
+			unset($ptype_obj);
+		}
+
+		if ( '' !== $q['title'] ) {
+			$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_title = %s", stripslashes( $q['title'] ) );
+		}
+
+		// Parameters related to 'post_name'.
+		if ( '' != $q['name'] ) {
+			$q['name'] = sanitize_title_for_query( $q['name'] );
+			$where .= " AND {$wpdb->posts}.post_name = '" . $q['name'] . "'";
+		} elseif ( '' != $q['pagename'] ) {
+			if ( isset($this->queried_object_id) ) {
+				$reqpage = $this->queried_object_id;
+			} else {
+				if ( 'page' != $q['post_type'] ) {
+					foreach ( (array)$q['post_type'] as $_post_type ) {
+						$ptype_obj = get_post_type_object($_post_type);
+						if ( !$ptype_obj || !$ptype_obj->hierarchical )
+							continue;
+
+						$reqpage = get_page_by_path($q['pagename'], OBJECT, $_post_type);
+						if ( $reqpage )
+							break;
+					}
+					unset($ptype_obj);
+				} else {
+					$reqpage = get_page_by_path($q['pagename']);
+				}
+				if ( !empty($reqpage) )
+					$reqpage = $reqpage->ID;
+				else
+					$reqpage = 0;
+			}
+
+			$page_for_posts = get_option('page_for_posts');
+			if  ( ('page' != get_option('show_on_front') ) || empty($page_for_posts) || ( $reqpage != $page_for_posts ) ) {
+				$q['pagename'] = sanitize_title_for_query( wp_basename( $q['pagename'] ) );
+				$q['name'] = $q['pagename'];
+				$where .= " AND ({$wpdb->posts}.ID = '$reqpage')";
+				$reqpage_obj = get_post( $reqpage );
+				if ( is_object($reqpage_obj) && 'attachment' == $reqpage_obj->post_type ) {
+					$this->is_attachment = true;
+					$post_type = $q['post_type'] = 'attachment';
+					$this->is_page = true;
+					$q['attachment_id'] = $reqpage;
+				}
+			}
+		} elseif ( '' != $q['attachment'] ) {
+			$q['attachment'] = sanitize_title_for_query( wp_basename( $q['attachment'] ) );
+			$q['name'] = $q['attachment'];
+			$where .= " AND {$wpdb->posts}.post_name = '" . $q['attachment'] . "'";
+		} elseif ( is_array( $q['post_name__in'] ) && ! empty( $q['post_name__in'] ) ) {
+			$q['post_name__in'] = array_map( 'sanitize_title_for_query', $q['post_name__in'] );
+			$post_name__in = "'" . implode( "','", $q['post_name__in'] ) . "'";
+			$where .= " AND {$wpdb->posts}.post_name IN ($post_name__in)";
+		}
+
+		// If an attachment is requested by number, let it supersede any post number.
+		if ( $q['attachment_id'] )
+			$q['p'] = absint($q['attachment_id']);
+
+		// If a post number is specified, load that post
+		if ( $q['p'] ) {
+			$where .= " AND {$wpdb->posts}.ID = " . $q['p'];
+		} elseif ( $q['post__in'] ) {
+			$post__in = implode(',', array_map( 'absint', $q['post__in'] ));
+			$where .= " AND {$wpdb->posts}.ID IN ($post__in)";
+		} elseif ( $q['post__not_in'] ) {
+			$post__not_in = implode(',',  array_map( 'absint', $q['post__not_in'] ));
+			$where .= " AND {$wpdb->posts}.ID NOT IN ($post__not_in)";
+		}
+
+		if ( is_numeric( $q['post_parent'] ) ) {
+			$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_parent = %d ", $q['post_parent'] );
+		} elseif ( $q['post_parent__in'] ) {
+			$post_parent__in = implode( ',', array_map( 'absint', $q['post_parent__in'] ) );
+			$where .= " AND {$wpdb->posts}.post_parent IN ($post_parent__in)";
+		} elseif ( $q['post_parent__not_in'] ) {
+			$post_parent__not_in = implode( ',',  array_map( 'absint', $q['post_parent__not_in'] ) );
+			$where .= " AND {$wpdb->posts}.post_parent NOT IN ($post_parent__not_in)";
+		}
+
+		if ( $q['page_id'] ) {
+			if  ( ('page' != get_option('show_on_front') ) || ( $q['page_id'] != get_option('page_for_posts') ) ) {
+				$q['p'] = $q['page_id'];
+				$where = " AND {$wpdb->posts}.ID = " . $q['page_id'];
+			}
+		}
+
+		// If a search pattern is specified, load the posts that match.
+		if ( strlen( $q['s'] ) ) {
+			$search = $this->parse_search( $q );
+		}
+
+		if ( ! $q['suppress_filters'] ) {
+			/**
+			 * Filters the search SQL that is used in the WHERE clause of WP_Query.
+			 *
+			 * @since 3.0.0
+			 *
+			 * @param string   $search Search SQL for WHERE clause.
+			 * @param WP_Query $this   The current WP_Query object.
+			 */
+			$search = apply_filters_ref_array( 'posts_search', array( $search, &$this ) );
+		}
+
+		// Taxonomies
+		if ( !$this->is_singular ) {
+			$this->parse_tax_query( $q );
+
+			$clauses = $this->tax_query->get_sql( $wpdb->posts, 'ID' );
+
+			$join .= $clauses['join'];
+			$where .= $clauses['where'];
+		}
+
+		if ( $this->is_tax ) {
+			if ( empty($post_type) ) {
+				// Do a fully inclusive search for currently registered post types of queried taxonomies
+				$post_type = array();
+				$taxonomies = array_keys( $this->tax_query->queried_terms );
+				foreach ( get_post_types( array( 'exclude_from_search' => false ) ) as $pt ) {
+					$object_taxonomies = $pt === 'attachment' ? get_taxonomies_for_attachments() : get_object_taxonomies( $pt );
+					if ( array_intersect( $taxonomies, $object_taxonomies ) )
+						$post_type[] = $pt;
+				}
+				if ( ! $post_type )
+					$post_type = 'any';
+				elseif ( count( $post_type ) == 1 )
+					$post_type = $post_type[0];
+
+				$post_status_join = true;
+			} elseif ( in_array('attachment', (array) $post_type) ) {
+				$post_status_join = true;
+			}
+		}
+
+		/*
+		 * Ensure that 'taxonomy', 'term', 'term_id', 'cat', and
+		 * 'category_name' vars are set for backward compatibility.
+		 */
+		if ( ! empty( $this->tax_query->queried_terms ) ) {
+
+			/*
+			 * Set 'taxonomy', 'term', and 'term_id' to the
+			 * first taxonomy other than 'post_tag' or 'category'.
+			 */
+			if ( ! isset( $q['taxonomy'] ) ) {
+				foreach ( $this->tax_query->queried_terms as $queried_taxonomy => $queried_items ) {
+					if ( empty( $queried_items['terms'][0] ) ) {
+						continue;
+					}
+
+					if ( ! in_array( $queried_taxonomy, array( 'category', 'post_tag' ) ) ) {
+						$q['taxonomy'] = $queried_taxonomy;
+
+						if ( 'slug' === $queried_items['field'] ) {
+							$q['term'] = $queried_items['terms'][0];
+						} else {
+							$q['term_id'] = $queried_items['terms'][0];
+						}
+
+						// Take the first one we find.
+						break;
+					}
+				}
+			}
+
+			// 'cat', 'category_name', 'tag_id'
+			foreach ( $this->tax_query->queried_terms as $queried_taxonomy => $queried_items ) {
+				if ( empty( $queried_items['terms'][0] ) ) {
+					continue;
+				}
+
+				if ( 'category' === $queried_taxonomy ) {
+					$the_cat = get_term_by( $queried_items['field'], $queried_items['terms'][0], 'category' );
+					if ( $the_cat ) {
+						$this->set( 'cat', $the_cat->term_id );
+						$this->set( 'category_name', $the_cat->slug );
+					}
+					unset( $the_cat );
+				}
+
+				if ( 'post_tag' === $queried_taxonomy ) {
+					$the_tag = get_term_by( $queried_items['field'], $queried_items['terms'][0], 'post_tag' );
+					if ( $the_tag ) {
+						$this->set( 'tag_id', $the_tag->term_id );
+					}
+					unset( $the_tag );
+				}
+			}
+		}
+
+		if ( !empty( $this->tax_query->queries ) || !empty( $this->meta_query->queries ) ) {
+			$groupby = "{$wpdb->posts}.ID";
+		}
+
+		// Author/user stuff
+
+		if ( ! empty( $q['author'] ) && $q['author'] != '0' ) {
+			$q['author'] = addslashes_gpc( '' . urldecode( $q['author'] ) );
+			$authors = array_unique( array_map( 'intval', preg_split( '/[,\s]+/', $q['author'] ) ) );
+			foreach ( $authors as $author ) {
+				$key = $author > 0 ? 'author__in' : 'author__not_in';
+				$q[$key][] = abs( $author );
+			}
+			$q['author'] = implode( ',', $authors );
+		}
+
+		if ( ! empty( $q['author__not_in'] ) ) {
+			$author__not_in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__not_in'] ) ) );
+			$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";
+		} elseif ( ! empty( $q['author__in'] ) ) {
+			$author__in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__in'] ) ) );
+			$where .= " AND {$wpdb->posts}.post_author IN ($author__in) ";
+		}
+
+		// Author stuff for nice URLs
+
+		if ( '' != $q['author_name'] ) {
+			if ( strpos($q['author_name'], '/') !== false ) {
+				$q['author_name'] = explode('/', $q['author_name']);
+				if ( $q['author_name'][ count($q['author_name'])-1 ] ) {
+					$q['author_name'] = $q['author_name'][count($q['author_name'])-1]; // no trailing slash
+				} else {
+					$q['author_name'] = $q['author_name'][count($q['author_name'])-2]; // there was a trailing slash
+				}
+			}
+			$q['author_name'] = sanitize_title_for_query( $q['author_name'] );
+			$q['author'] = get_user_by('slug', $q['author_name']);
+			if ( $q['author'] )
+				$q['author'] = $q['author']->ID;
+			$whichauthor .= " AND ({$wpdb->posts}.post_author = " . absint($q['author']) . ')';
+		}
+
+		// MIME-Type stuff for attachment browsing
+
+		if ( isset( $q['post_mime_type'] ) && '' != $q['post_mime_type'] ) {
+			$whichmimetype = wp_post_mime_type_where( $q['post_mime_type'], $wpdb->posts );
+		}
+		$where .= $search . $whichauthor . $whichmimetype;
+
+		if ( ! empty( $this->meta_query->queries ) ) {
+			$clauses = $this->meta_query->get_sql( 'post', $wpdb->posts, 'ID', $this );
+			$join   .= $clauses['join'];
+			$where  .= $clauses['where'];
+		}
+
+		$rand = ( isset( $q['orderby'] ) && 'rand' === $q['orderby'] );
+		if ( ! isset( $q['order'] ) ) {
+			$q['order'] = $rand ? '' : 'DESC';
+		} else {
+			$q['order'] = $rand ? '' : $this->parse_order( $q['order'] );
+		}
+
+		// Order by.
+		if ( empty( $q['orderby'] ) ) {
+			/*
+			 * Boolean false or empty array blanks out ORDER BY,
+			 * while leaving the value unset or otherwise empty sets the default.
+			 */
+			if ( isset( $q['orderby'] ) && ( is_array( $q['orderby'] ) || false === $q['orderby'] ) ) {
+				$orderby = '';
+			} else {
+				$orderby = "{$wpdb->posts}.post_date " . $q['order'];
+			}
+		} elseif ( 'none' == $q['orderby'] ) {
+			$orderby = '';
+		} elseif ( $q['orderby'] == 'post__in' && ! empty( $post__in ) ) {
+			$orderby = "FIELD( {$wpdb->posts}.ID, $post__in )";
+		} elseif ( $q['orderby'] == 'post_parent__in' && ! empty( $post_parent__in ) ) {
+			$orderby = "FIELD( {$wpdb->posts}.post_parent, $post_parent__in )";
+		} elseif ( $q['orderby'] == 'post_name__in' && ! empty( $post_name__in ) ) {
+			$orderby = "FIELD( {$wpdb->posts}.post_name, $post_name__in )";
+		} else {
+			$orderby_array = array();
+			if ( is_array( $q['orderby'] ) ) {
+				foreach ( $q['orderby'] as $_orderby => $order ) {
+					$orderby = addslashes_gpc( urldecode( $_orderby ) );
+					$parsed  = $this->parse_orderby( $orderby );
+
+					if ( ! $parsed ) {
+						continue;
+					}
+
+					$orderby_array[] = $parsed . ' ' . $this->parse_order( $order );
+				}
+				$orderby = implode( ', ', $orderby_array );
+
+			} else {
+				$q['orderby'] = urldecode( $q['orderby'] );
+				$q['orderby'] = addslashes_gpc( $q['orderby'] );
+
+				foreach ( explode( ' ', $q['orderby'] ) as $i => $orderby ) {
+					$parsed = $this->parse_orderby( $orderby );
+					// Only allow certain values for safety.
+					if ( ! $parsed ) {
+						continue;
+					}
+
+					$orderby_array[] = $parsed;
+				}
+				$orderby = implode( ' ' . $q['order'] . ', ', $orderby_array );
+
+				if ( empty( $orderby ) ) {
+					$orderby = "{$wpdb->posts}.post_date " . $q['order'];
+				} elseif ( ! empty( $q['order'] ) ) {
+					$orderby .= " {$q['order']}";
+				}
+			}
+		}
+
+		// Order search results by relevance only when another "orderby" is not specified in the query.
+		if ( ! empty( $q['s'] ) ) {
+			$search_orderby = '';
+			if ( ! empty( $q['search_orderby_title'] ) && ( empty( $q['orderby'] ) && ! $this->is_feed ) || ( isset( $q['orderby'] ) && 'relevance' === $q['orderby'] ) )
+				$search_orderby = $this->parse_search_order( $q );
+
+			if ( ! $q['suppress_filters'] ) {
+				/**
+				 * Filters the ORDER BY used when ordering search results.
+				 *
+				 * @since 3.7.0
+				 *
+				 * @param string   $search_orderby The ORDER BY clause.
+				 * @param WP_Query $this           The current WP_Query instance.
+				 */
+				$search_orderby = apply_filters( 'posts_search_orderby', $search_orderby, $this );
+			}
+
+			if ( $search_orderby )
+				$orderby = $orderby ? $search_orderby . ', ' . $orderby : $search_orderby;
+		}
+
+		if ( is_array( $post_type ) && count( $post_type ) > 1 ) {
+			$post_type_cap = 'multiple_post_type';
+		} else {
+			if ( is_array( $post_type ) )
+				$post_type = reset( $post_type );
+			$post_type_object = get_post_type_object( $post_type );
+			if ( empty( $post_type_object ) )
+				$post_type_cap = $post_type;
+		}
+
+		if ( isset( $q['post_password'] ) ) {
+			$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_password = %s", $q['post_password'] );
+			if ( empty( $q['perm'] ) ) {
+				$q['perm'] = 'readable';
+			}
+		} elseif ( isset( $q['has_password'] ) ) {
+			$where .= sprintf( " AND {$wpdb->posts}.post_password %s ''", $q['has_password'] ? '!=' : '=' );
+		}
+
+		if ( ! empty( $q['comment_status'] ) ) {
+			$where .= $wpdb->prepare( " AND {$wpdb->posts}.comment_status = %s ", $q['comment_status'] );
+		}
+
+		if ( ! empty( $q['ping_status'] ) )  {
+			$where .= $wpdb->prepare( " AND {$wpdb->posts}.ping_status = %s ", $q['ping_status'] );
+		}
+
+		if ( 'any' == $post_type ) {
+			$in_search_post_types = get_post_types( array('exclude_from_search' => false) );
+			if ( empty( $in_search_post_types ) ) {
+				$where .= ' AND 1=0 ';
+			} else {
+				$where .= " AND {$wpdb->posts}.post_type IN ('" . join("', '", $in_search_post_types ) . "')";
+			}
+		} elseif ( !empty( $post_type ) && is_array( $post_type ) ) {
+			$where .= " AND {$wpdb->posts}.post_type IN ('" . join("', '", $post_type) . "')";
+		} elseif ( ! empty( $post_type ) ) {
+			$where .= " AND {$wpdb->posts}.post_type = '$post_type'";
+			$post_type_object = get_post_type_object ( $post_type );
+		} elseif ( $this->is_attachment ) {
+			$where .= " AND {$wpdb->posts}.post_type = 'attachment'";
+			$post_type_object = get_post_type_object ( 'attachment' );
+		} elseif ( $this->is_page ) {
+			$where .= " AND {$wpdb->posts}.post_type = 'page'";
+			$post_type_object = get_post_type_object ( 'page' );
+		} else {
+			$where .= " AND {$wpdb->posts}.post_type = 'post'";
+			$post_type_object = get_post_type_object ( 'post' );
+		}
+
+		$edit_cap = 'edit_post';
+		$read_cap = 'read_post';
+
+		if ( ! empty( $post_type_object ) ) {
+			$edit_others_cap = $post_type_object->cap->edit_others_posts;
+			$read_private_cap = $post_type_object->cap->read_private_posts;
+		} else {
+			$edit_others_cap = 'edit_others_' . $post_type_cap . 's';
+			$read_private_cap = 'read_private_' . $post_type_cap . 's';
+		}
+
+		$user_id = get_current_user_id();
+
+		$q_status = array();
+		if ( ! empty( $q['post_status'] ) ) {
+			$statuswheres = array();
+			$q_status = $q['post_status'];
+			if ( ! is_array( $q_status ) )
+				$q_status = explode(',', $q_status);
+			$r_status = array();
+			$p_status = array();
+			$e_status = array();
+			if ( in_array( 'any', $q_status ) ) {
+				foreach ( get_post_stati( array( 'exclude_from_search' => true ) ) as $status ) {
+					if ( ! in_array( $status, $q_status ) ) {
+						$e_status[] = "{$wpdb->posts}.post_status <> '$status'";
+					}
+				}
+			} else {
+				foreach ( get_post_stati() as $status ) {
+					if ( in_array( $status, $q_status ) ) {
+						if ( 'private' == $status ) {
+							$p_status[] = "{$wpdb->posts}.post_status = '$status'";
+						} else {
+							$r_status[] = "{$wpdb->posts}.post_status = '$status'";
+						}
+					}
+				}
+			}
+
+			if ( empty($q['perm'] ) || 'readable' != $q['perm'] ) {
+				$r_status = array_merge($r_status, $p_status);
+				unset($p_status);
+			}
+
+			if ( !empty($e_status) ) {
+				$statuswheres[] = "(" . join( ' AND ', $e_status ) . ")";
+			}
+			if ( !empty($r_status) ) {
+				if ( !empty($q['perm'] ) && 'editable' == $q['perm'] && !current_user_can($edit_others_cap) ) {
+					$statuswheres[] = "({$wpdb->posts}.post_author = $user_id " . "AND (" . join( ' OR ', $r_status ) . "))";
+				} else {
+					$statuswheres[] = "(" . join( ' OR ', $r_status ) . ")";
+				}
+			}
+			if ( !empty($p_status) ) {
+				if ( !empty($q['perm'] ) && 'readable' == $q['perm'] && !current_user_can($read_private_cap) ) {
+					$statuswheres[] = "({$wpdb->posts}.post_author = $user_id " . "AND (" . join( ' OR ', $p_status ) . "))";
+				} else {
+					$statuswheres[] = "(" . join( ' OR ', $p_status ) . ")";
+				}
+			}
+			if ( $post_status_join ) {
+				$join .= " LEFT JOIN {$wpdb->posts} AS p2 ON ({$wpdb->posts}.post_parent = p2.ID) ";
+				foreach ( $statuswheres as $index => $statuswhere ) {
+					$statuswheres[$index] = "($statuswhere OR ({$wpdb->posts}.post_status = 'inherit' AND " . str_replace( $wpdb->posts, 'p2', $statuswhere ) . "))";
+				}
+			}
+			$where_status = implode( ' OR ', $statuswheres );
+			if ( ! empty( $where_status ) ) {
+				$where .= " AND ($where_status)";
+			}
+		} elseif ( !$this->is_singular ) {
+			$where .= " AND ({$wpdb->posts}.post_status = 'publish'";
+
+			// Add public states.
+			$public_states = get_post_stati( array('public' => true) );
+			foreach ( (array) $public_states as $state ) {
+				if ( 'publish' == $state ) // Publish is hard-coded above.
+					continue;
+				$where .= " OR {$wpdb->posts}.post_status = '$state'";
+			}
+
+			if ( $this->is_admin ) {
+				// Add protected states that should show in the admin all list.
+				$admin_all_states = get_post_stati( array('protected' => true, 'show_in_admin_all_list' => true) );
+				foreach ( (array) $admin_all_states as $state ) {
+					$where .= " OR {$wpdb->posts}.post_status = '$state'";
+				}
+			}
+
+			if ( is_user_logged_in() ) {
+				// Add private states that are limited to viewing by the author of a post or someone who has caps to read private states.
+				$private_states = get_post_stati( array('private' => true) );
+				foreach ( (array) $private_states as $state ) {
+					$where .= current_user_can( $read_private_cap ) ? " OR {$wpdb->posts}.post_status = '$state'" : " OR {$wpdb->posts}.post_author = $user_id AND {$wpdb->posts}.post_status = '$state'";
+				}
+			}
+
+			$where .= ')';
+		}
+
+		/*
+		 * Apply filters on where and join prior to paging so that any
+		 * manipulations to them are reflected in the paging by day queries.
+		 */
+		if ( !$q['suppress_filters'] ) {
+			/**
+			 * Filters the WHERE clause of the query.
+			 *
+			 * @since 1.5.0
+			 *
+			 * @param string   $where The WHERE clause of the query.
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			$where = apply_filters_ref_array( 'posts_where', array( $where, &$this ) );
+
+			/**
+			 * Filters the JOIN clause of the query.
+			 *
+			 * @since 1.5.0
+			 *
+			 * @param string   $where The JOIN clause of the query.
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			$join = apply_filters_ref_array( 'posts_join', array( $join, &$this ) );
+		}
+
+		// Paging
+		if ( empty($q['nopaging']) && !$this->is_singular ) {
+			$page = absint($q['paged']);
+			if ( !$page )
+				$page = 1;
+
+			// If 'offset' is provided, it takes precedence over 'paged'.
+			if ( isset( $q['offset'] ) && is_numeric( $q['offset'] ) ) {
+				$q['offset'] = absint( $q['offset'] );
+				$pgstrt = $q['offset'] . ', ';
+			} else {
+				$pgstrt = absint( ( $page - 1 ) * $q['posts_per_page'] ) . ', ';
+			}
+			$limits = 'LIMIT ' . $pgstrt . $q['posts_per_page'];
+		}
+
+		// Comments feeds
+		if ( $this->is_comment_feed && ! $this->is_singular ) {
+			if ( $this->is_archive || $this->is_search ) {
+				$cjoin = "JOIN {$wpdb->posts} ON ({$wpdb->comments}.comment_post_ID = {$wpdb->posts}.ID) $join ";
+				$cwhere = "WHERE comment_approved = '1' $where";
+				$cgroupby = "{$wpdb->comments}.comment_id";
+			} else { // Other non singular e.g. front
+				$cjoin = "JOIN {$wpdb->posts} ON ( {$wpdb->comments}.comment_post_ID = {$wpdb->posts}.ID )";
+				$cwhere = "WHERE ( post_status = 'publish' OR ( post_status = 'inherit' AND post_type = 'attachment' ) ) AND comment_approved = '1'";
+				$cgroupby = '';
+			}
+
+			if ( !$q['suppress_filters'] ) {
+				/**
+				 * Filters the JOIN clause of the comments feed query before sending.
+				 *
+				 * @since 2.2.0
+				 *
+				 * @param string   $cjoin The JOIN clause of the query.
+				 * @param WP_Query &$this The WP_Query instance (passed by reference).
+				 */
+				$cjoin = apply_filters_ref_array( 'comment_feed_join', array( $cjoin, &$this ) );
+
+				/**
+				 * Filters the WHERE clause of the comments feed query before sending.
+				 *
+				 * @since 2.2.0
+				 *
+				 * @param string   $cwhere The WHERE clause of the query.
+				 * @param WP_Query &$this  The WP_Query instance (passed by reference).
+				 */
+				$cwhere = apply_filters_ref_array( 'comment_feed_where', array( $cwhere, &$this ) );
+
+				/**
+				 * Filters the GROUP BY clause of the comments feed query before sending.
+				 *
+				 * @since 2.2.0
+				 *
+				 * @param string   $cgroupby The GROUP BY clause of the query.
+				 * @param WP_Query &$this    The WP_Query instance (passed by reference).
+				 */
+				$cgroupby = apply_filters_ref_array( 'comment_feed_groupby', array( $cgroupby, &$this ) );
+
+				/**
+				 * Filters the ORDER BY clause of the comments feed query before sending.
+				 *
+				 * @since 2.8.0
+				 *
+				 * @param string   $corderby The ORDER BY clause of the query.
+				 * @param WP_Query &$this    The WP_Query instance (passed by reference).
+				 */
+				$corderby = apply_filters_ref_array( 'comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
+
+				/**
+				 * Filters the LIMIT clause of the comments feed query before sending.
+				 *
+				 * @since 2.8.0
+				 *
+				 * @param string   $climits The JOIN clause of the query.
+				 * @param WP_Query &$this   The WP_Query instance (passed by reference).
+				 */
+				$climits = apply_filters_ref_array( 'comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
+			}
+			$cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
+			$corderby = ( ! empty( $corderby ) ) ? 'ORDER BY ' . $corderby : '';
+
+			$comments = (array) $wpdb->get_results("SELECT $distinct {$wpdb->comments}.* FROM {$wpdb->comments} $cjoin $cwhere $cgroupby $corderby $climits");
+			// Convert to WP_Comment
+			$this->comments = array_map( 'get_comment', $comments );
+			$this->comment_count = count($this->comments);
+
+			$post_ids = array();
+
+			foreach ( $this->comments as $comment )
+				$post_ids[] = (int) $comment->comment_post_ID;
+
+			$post_ids = join(',', $post_ids);
+			$join = '';
+			if ( $post_ids ) {
+				$where = "AND {$wpdb->posts}.ID IN ($post_ids) ";
+			} else {
+				$where = "AND 0";
+			}
+		}
+
+		$pieces = array( 'where', 'groupby', 'join', 'orderby', 'distinct', 'fields', 'limits' );
+
+		/*
+		 * Apply post-paging filters on where and join. Only plugins that
+		 * manipulate paging queries should use these hooks.
+		 */
+		if ( !$q['suppress_filters'] ) {
+			/**
+			 * Filters the WHERE clause of the query.
+			 *
+			 * Specifically for manipulating paging queries.
+			 *
+			 * @since 1.5.0
+			 *
+			 * @param string   $where The WHERE clause of the query.
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			$where = apply_filters_ref_array( 'posts_where_paged', array( $where, &$this ) );
+
+			/**
+			 * Filters the GROUP BY clause of the query.
+			 *
+			 * @since 2.0.0
+			 *
+			 * @param string   $groupby The GROUP BY clause of the query.
+			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
+			 */
+			$groupby = apply_filters_ref_array( 'posts_groupby', array( $groupby, &$this ) );
+
+			/**
+			 * Filters the JOIN clause of the query.
+			 *
+			 * Specifically for manipulating paging queries.
+			 *
+			 * @since 1.5.0
+			 *
+			 * @param string   $join  The JOIN clause of the query.
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			$join = apply_filters_ref_array( 'posts_join_paged', array( $join, &$this ) );
+
+			/**
+			 * Filters the ORDER BY clause of the query.
+			 *
+			 * @since 1.5.1
+			 *
+			 * @param string   $orderby The ORDER BY clause of the query.
+			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
+			 */
+			$orderby = apply_filters_ref_array( 'posts_orderby', array( $orderby, &$this ) );
+
+			/**
+			 * Filters the DISTINCT clause of the query.
+			 *
+			 * @since 2.1.0
+			 *
+			 * @param string   $distinct The DISTINCT clause of the query.
+			 * @param WP_Query &$this    The WP_Query instance (passed by reference).
+			 */
+			$distinct = apply_filters_ref_array( 'posts_distinct', array( $distinct, &$this ) );
+
+			/**
+			 * Filters the LIMIT clause of the query.
+			 *
+			 * @since 2.1.0
+			 *
+			 * @param string   $limits The LIMIT clause of the query.
+			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
+			 */
+			$limits = apply_filters_ref_array( 'post_limits', array( $limits, &$this ) );
+
+			/**
+			 * Filters the SELECT clause of the query.
+			 *
+			 * @since 2.1.0
+			 *
+			 * @param string   $fields The SELECT clause of the query.
+			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
+			 */
+			$fields = apply_filters_ref_array( 'posts_fields', array( $fields, &$this ) );
+
+			/**
+			 * Filters all query clauses at once, for convenience.
+			 *
+			 * Covers the WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT,
+			 * fields (SELECT), and LIMITS clauses.
+			 *
+			 * @since 3.1.0
+			 *
+			 * @param array    $clauses The list of clauses for the query.
+			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
+			 */
+			$clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );
+
+			$where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
+			$groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
+			$join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
+			$orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
+			$distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
+			$fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
+			$limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
+		}
+
+		/**
+		 * Fires to announce the query's current selection parameters.
+		 *
+		 * For use by caching plugins.
+		 *
+		 * @since 2.3.0
+		 *
+		 * @param string $selection The assembled selection query.
+		 */
+		do_action( 'posts_selection', $where . $groupby . $orderby . $limits . $join );
+
+		/*
+		 * Filters again for the benefit of caching plugins.
+		 * Regular plugins should use the hooks above.
+		 */
+		if ( !$q['suppress_filters'] ) {
+			/**
+			 * Filters the WHERE clause of the query.
+			 *
+			 * For use by caching plugins.
+			 *
+			 * @since 2.5.0
+			 *
+			 * @param string   $where The WHERE clause of the query.
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			$where = apply_filters_ref_array( 'posts_where_request', array( $where, &$this ) );
+
+			/**
+			 * Filters the GROUP BY clause of the query.
+			 *
+			 * For use by caching plugins.
+			 *
+			 * @since 2.5.0
+			 *
+			 * @param string   $groupby The GROUP BY clause of the query.
+			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
+			 */
+			$groupby = apply_filters_ref_array( 'posts_groupby_request', array( $groupby, &$this ) );
+
+			/**
+			 * Filters the JOIN clause of the query.
+			 *
+			 * For use by caching plugins.
+			 *
+			 * @since 2.5.0
+			 *
+			 * @param string   $join  The JOIN clause of the query.
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			$join = apply_filters_ref_array( 'posts_join_request', array( $join, &$this ) );
+
+			/**
+			 * Filters the ORDER BY clause of the query.
+			 *
+			 * For use by caching plugins.
+			 *
+			 * @since 2.5.0
+			 *
+			 * @param string   $orderby The ORDER BY clause of the query.
+			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
+			 */
+			$orderby = apply_filters_ref_array( 'posts_orderby_request', array( $orderby, &$this ) );
+
+			/**
+			 * Filters the DISTINCT clause of the query.
+			 *
+			 * For use by caching plugins.
+			 *
+			 * @since 2.5.0
+			 *
+			 * @param string   $distinct The DISTINCT clause of the query.
+			 * @param WP_Query &$this    The WP_Query instance (passed by reference).
+			 */
+			$distinct = apply_filters_ref_array( 'posts_distinct_request', array( $distinct, &$this ) );
+
+			/**
+			 * Filters the SELECT clause of the query.
+			 *
+			 * For use by caching plugins.
+			 *
+			 * @since 2.5.0
+			 *
+			 * @param string   $fields The SELECT clause of the query.
+			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
+			 */
+			$fields = apply_filters_ref_array( 'posts_fields_request', array( $fields, &$this ) );
+
+			/**
+			 * Filters the LIMIT clause of the query.
+			 *
+			 * For use by caching plugins.
+			 *
+			 * @since 2.5.0
+			 *
+			 * @param string   $limits The LIMIT clause of the query.
+			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
+			 */
+			$limits = apply_filters_ref_array( 'post_limits_request', array( $limits, &$this ) );
+
+			/**
+			 * Filters all query clauses at once, for convenience.
+			 *
+			 * For use by caching plugins.
+			 *
+			 * Covers the WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT,
+			 * fields (SELECT), and LIMITS clauses.
+			 *
+			 * @since 3.1.0
+			 *
+			 * @param array    $pieces The pieces of the query.
+			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
+			 */
+			$clauses = (array) apply_filters_ref_array( 'posts_clauses_request', array( compact( $pieces ), &$this ) );
+
+			$where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
+			$groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
+			$join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
+			$orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
+			$distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
+			$fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
+			$limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
+		}
+
+		if ( ! empty($groupby) )
+			$groupby = 'GROUP BY ' . $groupby;
+		if ( !empty( $orderby ) )
+			$orderby = 'ORDER BY ' . $orderby;
+
+		$found_rows = '';
+		if ( !$q['no_found_rows'] && !empty($limits) )
+			$found_rows = 'SQL_CALC_FOUND_ROWS';
+
+		$this->request = $old_request = "SELECT $found_rows $distinct $fields FROM {$wpdb->posts} $join WHERE 1=1 $where $groupby $orderby $limits";
+
+		if ( !$q['suppress_filters'] ) {
+			/**
+			 * Filters the completed SQL query before sending.
+			 *
+			 * @since 2.0.0
+			 *
+			 * @param string   $request The complete SQL query.
+			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
+			 */
+			$this->request = apply_filters_ref_array( 'posts_request', array( $this->request, &$this ) );
+		}
+
+		/**
+		 * Filters the posts array before the query takes place.
+		 *
+		 * Return a non-null value to bypass WordPress's default post queries.
+		 *
+		 * Filtering functions that require pagination information are encouraged to set
+		 * the `found_posts` and `max_num_pages` properties of the WP_Query object,
+		 * passed to the filter by reference. If WP_Query does not perform a database
+		 * query, it will not have enough information to generate these values itself.
+		 *
+		 * @since 4.6.0
+		 *
+		 * @param array|null $posts Return an array of post data to short-circuit WP's query,
+		 *                          or null to allow WP to run its normal queries.
+		 * @param WP_Query   $this  The WP_Query instance, passed by reference.
+		 */
+		$this->posts = apply_filters_ref_array( 'posts_pre_query', array( null, &$this ) );
+
+		if ( 'ids' == $q['fields'] ) {
+			if ( null === $this->posts ) {
+				$this->posts = $wpdb->get_col( $this->request );
+			}
+
+			$this->posts = array_map( 'intval', $this->posts );
+			$this->post_count = count( $this->posts );
+			$this->set_found_posts( $q, $limits );
+
+			return $this->posts;
+		}
+
+		if ( 'id=>parent' == $q['fields'] ) {
+			if ( null === $this->posts ) {
+				$this->posts = $wpdb->get_results( $this->request );
+			}
+
+			$this->post_count = count( $this->posts );
+			$this->set_found_posts( $q, $limits );
+
+			$r = array();
+			foreach ( $this->posts as $key => $post ) {
+				$this->posts[ $key ]->ID = (int) $post->ID;
+				$this->posts[ $key ]->post_parent = (int) $post->post_parent;
+
+				$r[ (int) $post->ID ] = (int) $post->post_parent;
+			}
+
+			return $r;
+		}
+
+		if ( null === $this->posts ) {
+			$split_the_query = ( $old_request == $this->request && "{$wpdb->posts}.*" == $fields && !empty( $limits ) && $q['posts_per_page'] < 500 );
+
+			/**
+			 * Filters whether to split the query.
+			 *
+			 * Splitting the query will cause it to fetch just the IDs of the found posts
+			 * (and then individually fetch each post by ID), rather than fetching every
+			 * complete row at once. One massive result vs. many small results.
+			 *
+			 * @since 3.4.0
+			 *
+			 * @param bool     $split_the_query Whether or not to split the query.
+			 * @param WP_Query $this            The WP_Query instance.
+			 */
+			$split_the_query = apply_filters( 'split_the_query', $split_the_query, $this );
+
+			if ( $split_the_query ) {
+				// First get the IDs and then fill in the objects
+
+				$this->request = "SELECT $found_rows $distinct {$wpdb->posts}.ID FROM {$wpdb->posts} $join WHERE 1=1 $where $groupby $orderby $limits";
+
+				/**
+				 * Filters the Post IDs SQL request before sending.
+				 *
+				 * @since 3.4.0
+				 *
+				 * @param string   $request The post ID request.
+				 * @param WP_Query $this    The WP_Query instance.
+				 */
+				$this->request = apply_filters( 'posts_request_ids', $this->request, $this );
+
+				$ids = $wpdb->get_col( $this->request );
+
+				if ( $ids ) {
+					$this->posts = $ids;
+					$this->set_found_posts( $q, $limits );
+					_prime_post_caches( $ids, $q['update_post_term_cache'], $q['update_post_meta_cache'] );
+				} else {
+					$this->posts = array();
+				}
+			} else {
+				$this->posts = $wpdb->get_results( $this->request );
+				$this->set_found_posts( $q, $limits );
+			}
+		}
+
+		// Convert to WP_Post objects.
+		if ( $this->posts ) {
+			$this->posts = array_map( 'get_post', $this->posts );
+		}
+
+		if ( ! $q['suppress_filters'] ) {
+			/**
+			 * Filters the raw post results array, prior to status checks.
+			 *
+			 * @since 2.3.0
+			 *
+			 * @param array    $posts The post results array.
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			$this->posts = apply_filters_ref_array( 'posts_results', array( $this->posts, &$this ) );
+		}
+
+		if ( !empty($this->posts) && $this->is_comment_feed && $this->is_singular ) {
+			/** This filter is documented in wp-includes/query.php */
+			$cjoin = apply_filters_ref_array( 'comment_feed_join', array( '', &$this ) );
+
+			/** This filter is documented in wp-includes/query.php */
+			$cwhere = apply_filters_ref_array( 'comment_feed_where', array( "WHERE comment_post_ID = '{$this->posts[0]->ID}' AND comment_approved = '1'", &$this ) );
+
+			/** This filter is documented in wp-includes/query.php */
+			$cgroupby = apply_filters_ref_array( 'comment_feed_groupby', array( '', &$this ) );
+			$cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
+
+			/** This filter is documented in wp-includes/query.php */
+			$corderby = apply_filters_ref_array( 'comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
+			$corderby = ( ! empty( $corderby ) ) ? 'ORDER BY ' . $corderby : '';
+
+			/** This filter is documented in wp-includes/query.php */
+			$climits = apply_filters_ref_array( 'comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
+
+			$comments_request = "SELECT {$wpdb->comments}.* FROM {$wpdb->comments} $cjoin $cwhere $cgroupby $corderby $climits";
+			$comments = $wpdb->get_results($comments_request);
+			// Convert to WP_Comment
+			$this->comments = array_map( 'get_comment', $comments );
+			$this->comment_count = count($this->comments);
+		}
+
+		// Check post status to determine if post should be displayed.
+		if ( !empty($this->posts) && ($this->is_single || $this->is_page) ) {
+			$status = get_post_status($this->posts[0]);
+			if ( 'attachment' === $this->posts[0]->post_type && 0 === (int) $this->posts[0]->post_parent ) {
+				$this->is_page = false;
+				$this->is_single = true;
+				$this->is_attachment = true;
+			}
+			$post_status_obj = get_post_status_object($status);
+
+			// If the post_status was specifically requested, let it pass through.
+			if ( !$post_status_obj->public && ! in_array( $status, $q_status ) ) {
+
+				if ( ! is_user_logged_in() ) {
+					// User must be logged in to view unpublished posts.
+					$this->posts = array();
+				} else {
+					if  ( $post_status_obj->protected ) {
+						// User must have edit permissions on the draft to preview.
+						if ( ! current_user_can($edit_cap, $this->posts[0]->ID) ) {
+							$this->posts = array();
+						} else {
+							$this->is_preview = true;
+							if ( 'future' != $status )
+								$this->posts[0]->post_date = current_time('mysql');
+						}
+					} elseif ( $post_status_obj->private ) {
+						if ( ! current_user_can($read_cap, $this->posts[0]->ID) )
+							$this->posts = array();
+					} else {
+						$this->posts = array();
+					}
+				}
+			}
+
+			if ( $this->is_preview && $this->posts && current_user_can( $edit_cap, $this->posts[0]->ID ) ) {
+				/**
+				 * Filters the single post for preview mode.
+				 *
+				 * @since 2.7.0
+				 *
+				 * @param WP_Post  $post_preview  The Post object.
+				 * @param WP_Query &$this         The WP_Query instance (passed by reference).
+				 */
+				$this->posts[0] = get_post( apply_filters_ref_array( 'the_preview', array( $this->posts[0], &$this ) ) );
+			}
+		}
+
+		// Put sticky posts at the top of the posts array
+		$sticky_posts = get_option('sticky_posts');
+		if ( $this->is_home && $page <= 1 && is_array($sticky_posts) && !empty($sticky_posts) && !$q['ignore_sticky_posts'] ) {
+			$num_posts = count($this->posts);
+			$sticky_offset = 0;
+			// Loop over posts and relocate stickies to the front.
+			for ( $i = 0; $i < $num_posts; $i++ ) {
+				if ( in_array($this->posts[$i]->ID, $sticky_posts) ) {
+					$sticky_post = $this->posts[$i];
+					// Remove sticky from current position
+					array_splice($this->posts, $i, 1);
+					// Move to front, after other stickies
+					array_splice($this->posts, $sticky_offset, 0, array($sticky_post));
+					// Increment the sticky offset. The next sticky will be placed at this offset.
+					$sticky_offset++;
+					// Remove post from sticky posts array
+					$offset = array_search($sticky_post->ID, $sticky_posts);
+					unset( $sticky_posts[$offset] );
+				}
+			}
+
+			// If any posts have been excluded specifically, Ignore those that are sticky.
+			if ( !empty($sticky_posts) && !empty($q['post__not_in']) )
+				$sticky_posts = array_diff($sticky_posts, $q['post__not_in']);
+
+			// Fetch sticky posts that weren't in the query results
+			if ( !empty($sticky_posts) ) {
+				$stickies = get_posts( array(
+					'post__in' => $sticky_posts,
+					'post_type' => $post_type,
+					'post_status' => 'publish',
+					'nopaging' => true
+				) );
+
+				foreach ( $stickies as $sticky_post ) {
+					array_splice( $this->posts, $sticky_offset, 0, array( $sticky_post ) );
+					$sticky_offset++;
+				}
+			}
+		}
+
+		// If comments have been fetched as part of the query, make sure comment meta lazy-loading is set up.
+		if ( ! empty( $this->comments ) ) {
+			wp_queue_comments_for_comment_meta_lazyload( $this->comments );
+		}
+
+		if ( ! $q['suppress_filters'] ) {
+			/**
+			 * Filters the array of retrieved posts after they've been fetched and
+			 * internally processed.
+			 *
+			 * @since 1.5.0
+			 *
+			 * @param array    $posts The array of retrieved posts.
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			$this->posts = apply_filters_ref_array( 'the_posts', array( $this->posts, &$this ) );
+		}
+
+		// Ensure that any posts added/modified via one of the filters above are
+		// of the type WP_Post and are filtered.
+		if ( $this->posts ) {
+			$this->post_count = count( $this->posts );
+
+			$this->posts = array_map( 'get_post', $this->posts );
+
+			if ( $q['cache_results'] )
+				update_post_caches($this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache']);
+
+			$this->post = reset( $this->posts );
+		} else {
+			$this->post_count = 0;
+			$this->posts = array();
+		}
+
+		if ( $q['lazy_load_term_meta'] ) {
+			wp_queue_posts_for_term_meta_lazyload( $this->posts );
+		}
+
+		return $this->posts;
+	}
+
+	/**
+	 * Set up the amount of found posts and the number of pages (if limit clause was used)
+	 * for the current query.
+	 *
+	 * @since 3.5.0
+	 * @access private
+	 *
+	 * @param array  $q      Query variables.
+	 * @param string $limits LIMIT clauses of the query.
+	 */
+	private function set_found_posts( $q, $limits ) {
+		global $wpdb;
+		// Bail if posts is an empty array. Continue if posts is an empty string,
+		// null, or false to accommodate caching plugins that fill posts later.
+		if ( $q['no_found_rows'] || ( is_array( $this->posts ) && ! $this->posts ) )
+			return;
+
+		if ( ! empty( $limits ) ) {
+			/**
+			 * Filters the query to run for retrieving the found posts.
+			 *
+			 * @since 2.1.0
+			 *
+			 * @param string   $found_posts The query to run to find the found posts.
+			 * @param WP_Query &$this       The WP_Query instance (passed by reference).
+			 */
+			$this->found_posts = $wpdb->get_var( apply_filters_ref_array( 'found_posts_query', array( 'SELECT FOUND_ROWS()', &$this ) ) );
+		} else {
+			$this->found_posts = count( $this->posts );
+		}
+
+		/**
+		 * Filters the number of found posts for the query.
+		 *
+		 * @since 2.1.0
+		 *
+		 * @param int      $found_posts The number of posts found.
+		 * @param WP_Query &$this       The WP_Query instance (passed by reference).
+		 */
+		$this->found_posts = apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) );
+
+		if ( ! empty( $limits ) )
+			$this->max_num_pages = ceil( $this->found_posts / $q['posts_per_page'] );
+	}
+
+	/**
+	 * Set up the next post and iterate current post index.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @return WP_Post Next post.
+	 */
+	public function next_post() {
+
+		$this->current_post++;
+
+		$this->post = $this->posts[$this->current_post];
+		return $this->post;
+	}
+
+	/**
+	 * Sets up the current post.
+	 *
+	 * Retrieves the next post, sets up the post, sets the 'in the loop'
+	 * property to true.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @global WP_Post $post
+	 */
+	public function the_post() {
+		global $post;
+		$this->in_the_loop = true;
+
+		if ( $this->current_post == -1 ) // loop has just started
+			/**
+			 * Fires once the loop is started.
+			 *
+			 * @since 2.0.0
+			 *
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			do_action_ref_array( 'loop_start', array( &$this ) );
+
+		$post = $this->next_post();
+		$this->setup_postdata( $post );
+	}
+
+	/**
+	 * Determines whether there are more posts available in the loop.
+	 *
+	 * Calls the {@see 'loop_end'} action when the loop is complete.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @return bool True if posts are available, false if end of loop.
+	 */
+	public function have_posts() {
+		if ( $this->current_post + 1 < $this->post_count ) {
+			return true;
+		} elseif ( $this->current_post + 1 == $this->post_count && $this->post_count > 0 ) {
+			/**
+			 * Fires once the loop has ended.
+			 *
+			 * @since 2.0.0
+			 *
+			 * @param WP_Query &$this The WP_Query instance (passed by reference).
+			 */
+			do_action_ref_array( 'loop_end', array( &$this ) );
+			// Do some cleaning up after the loop
+			$this->rewind_posts();
+		}
+
+		$this->in_the_loop = false;
+		return false;
+	}
+
+	/**
+	 * Rewind the posts and reset post index.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 */
+	public function rewind_posts() {
+		$this->current_post = -1;
+		if ( $this->post_count > 0 ) {
+			$this->post = $this->posts[0];
+		}
+	}
+
+	/**
+	 * Iterate current comment index and return WP_Comment object.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 *
+	 * @return WP_Comment Comment object.
+	 */
+	public function next_comment() {
+		$this->current_comment++;
+
+		$this->comment = $this->comments[$this->current_comment];
+		return $this->comment;
+	}
+
+	/**
+	 * Sets up the current comment.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 * @global WP_Comment $comment Current comment.
+	 */
+	public function the_comment() {
+		global $comment;
+
+		$comment = $this->next_comment();
+
+		if ( $this->current_comment == 0 ) {
+			/**
+			 * Fires once the comment loop is started.
+			 *
+			 * @since 2.2.0
+			 */
+			do_action( 'comment_loop_start' );
+		}
+	}
+
+	/**
+	 * Whether there are more comments available.
+	 *
+	 * Automatically rewinds comments when finished.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 *
+	 * @return bool True, if more comments. False, if no more posts.
+	 */
+	public function have_comments() {
+		if ( $this->current_comment + 1 < $this->comment_count ) {
+			return true;
+		} elseif ( $this->current_comment + 1 == $this->comment_count ) {
+			$this->rewind_comments();
+		}
+
+		return false;
+	}
+
+	/**
+	 * Rewind the comments, resets the comment index and comment to first.
+	 *
+	 * @since 2.2.0
+	 * @access public
+	 */
+	public function rewind_comments() {
+		$this->current_comment = -1;
+		if ( $this->comment_count > 0 ) {
+			$this->comment = $this->comments[0];
+		}
+	}
+
+	/**
+	 * Sets up the WordPress query by parsing query string.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @param string $query URL query string.
+	 * @return array List of posts.
+	 */
+	public function query( $query ) {
+		$this->init();
+		$this->query = $this->query_vars = wp_parse_args( $query );
+		return $this->get_posts();
+	}
+
+	/**
+	 * Retrieve queried object.
+	 *
+	 * If queried object is not set, then the queried object will be set from
+	 * the category, tag, taxonomy, posts page, single post, page, or author
+	 * query variable. After it is set up, it will be returned.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @return object
+	 */
+	public function get_queried_object() {
+		if ( isset($this->queried_object) )
+			return $this->queried_object;
+
+		$this->queried_object = null;
+		$this->queried_object_id = null;
+
+		if ( $this->is_category || $this->is_tag || $this->is_tax ) {
+			if ( $this->is_category ) {
+				if ( $this->get( 'cat' ) ) {
+					$term = get_term( $this->get( 'cat' ), 'category' );
+				} elseif ( $this->get( 'category_name' ) ) {
+					$term = get_term_by( 'slug', $this->get( 'category_name' ), 'category' );
+				}
+			} elseif ( $this->is_tag ) {
+				if ( $this->get( 'tag_id' ) ) {
+					$term = get_term( $this->get( 'tag_id' ), 'post_tag' );
+				} elseif ( $this->get( 'tag' ) ) {
+					$term = get_term_by( 'slug', $this->get( 'tag' ), 'post_tag' );
+				}
+			} else {
+				// For other tax queries, grab the first term from the first clause.
+				if ( ! empty( $this->tax_query->queried_terms ) ) {
+					$queried_taxonomies = array_keys( $this->tax_query->queried_terms );
+					$matched_taxonomy = reset( $queried_taxonomies );
+					$query = $this->tax_query->queried_terms[ $matched_taxonomy ];
+
+					if ( ! empty( $query['terms'] ) ) {
+						if ( 'term_id' == $query['field'] ) {
+							$term = get_term( reset( $query['terms'] ), $matched_taxonomy );
+						} else {
+							$term = get_term_by( $query['field'], reset( $query['terms'] ), $matched_taxonomy );
+						}
+					}
+				}
+			}
+
+			if ( ! empty( $term ) && ! is_wp_error( $term ) )  {
+				$this->queried_object = $term;
+				$this->queried_object_id = (int) $term->term_id;
+
+				if ( $this->is_category && 'category' === $this->queried_object->taxonomy )
+					_make_cat_compat( $this->queried_object );
+			}
+		} elseif ( $this->is_post_type_archive ) {
+			$post_type = $this->get( 'post_type' );
+			if ( is_array( $post_type ) )
+				$post_type = reset( $post_type );
+			$this->queried_object = get_post_type_object( $post_type );
+		} elseif ( $this->is_posts_page ) {
+			$page_for_posts = get_option('page_for_posts');
+			$this->queried_object = get_post( $page_for_posts );
+			$this->queried_object_id = (int) $this->queried_object->ID;
+		} elseif ( $this->is_singular && ! empty( $this->post ) ) {
+			$this->queried_object = $this->post;
+			$this->queried_object_id = (int) $this->post->ID;
+		} elseif ( $this->is_author ) {
+			$this->queried_object_id = (int) $this->get('author');
+			$this->queried_object = get_userdata( $this->queried_object_id );
+		}
+
+		return $this->queried_object;
+	}
+
+	/**
+	 * Retrieve ID of the current queried object.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @return int
+	 */
+	public function get_queried_object_id() {
+		$this->get_queried_object();
+
+		if ( isset($this->queried_object_id) ) {
+			return $this->queried_object_id;
+		}
+
+		return 0;
+	}
+
+	/**
+	 * Constructor.
+	 *
+	 * Sets up the WordPress query, if parameter is not empty.
+	 *
+	 * @since 1.5.0
+	 * @access public
+	 *
+	 * @param string|array $query URL query string or array of vars.
+	 */
+	public function __construct( $query = '' ) {
+		if ( ! empty( $query ) ) {
+			$this->query( $query );
+		}
+	}
+
+	/**
+	 * Make private properties readable for backward compatibility.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $name Property to get.
+	 * @return mixed Property.
+	 */
+	public function __get( $name ) {
+		if ( in_array( $name, $this->compat_fields ) ) {
+			return $this->$name;
+		}
+	}
+
+	/**
+	 * Make private properties checkable for backward compatibility.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $name Property to check if set.
+	 * @return bool Whether the property is set.
+	 */
+	public function __isset( $name ) {
+		if ( in_array( $name, $this->compat_fields ) ) {
+			return isset( $this->$name );
+		}
+	}
+
+	/**
+	 * Make private/protected methods readable for backward compatibility.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param callable $name      Method to call.
+	 * @param array    $arguments Arguments to pass when calling.
+	 * @return mixed|false Return value of the callback, false otherwise.
+	 */
+	public function __call( $name, $arguments ) {
+		if ( in_array( $name, $this->compat_methods ) ) {
+			return call_user_func_array( array( $this, $name ), $arguments );
+		}
+		return false;
+	}
+
+	/**
+ 	 * Is the query for an existing archive page?
+ 	 *
+ 	 * Month, Year, Category, Author, Post Type archive...
+	 *
+ 	 * @since 3.1.0
+ 	 *
+ 	 * @return bool
+ 	 */
+	public function is_archive() {
+		return (bool) $this->is_archive;
+	}
+
+	/**
+	 * Is the query for an existing post type archive page?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param mixed $post_types Optional. Post type or array of posts types to check against.
+	 * @return bool
+	 */
+	public function is_post_type_archive( $post_types = '' ) {
+		if ( empty( $post_types ) || ! $this->is_post_type_archive )
+			return (bool) $this->is_post_type_archive;
+
+		$post_type = $this->get( 'post_type' );
+		if ( is_array( $post_type ) )
+			$post_type = reset( $post_type );
+		$post_type_object = get_post_type_object( $post_type );
+
+		return in_array( $post_type_object->name, (array) $post_types );
+	}
+
+	/**
+	 * Is the query for an existing attachment page?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param mixed $attachment Attachment ID, title, slug, or array of such.
+	 * @return bool
+	 */
+	public function is_attachment( $attachment = '' ) {
+		if ( ! $this->is_attachment ) {
+			return false;
+		}
+
+		if ( empty( $attachment ) ) {
+			return true;
+		}
+
+		$attachment = array_map( 'strval', (array) $attachment );
+
+		$post_obj = $this->get_queried_object();
+
+		if ( in_array( (string) $post_obj->ID, $attachment ) ) {
+			return true;
+		} elseif ( in_array( $post_obj->post_title, $attachment ) ) {
+			return true;
+		} elseif ( in_array( $post_obj->post_name, $attachment ) ) {
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * Is the query for an existing author archive page?
+	 *
+	 * If the $author parameter is specified, this function will additionally
+	 * check if the query is for one of the authors specified.
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param mixed $author Optional. User ID, nickname, nicename, or array of User IDs, nicknames, and nicenames
+	 * @return bool
+	 */
+	public function is_author( $author = '' ) {
+		if ( !$this->is_author )
+			return false;
+
+		if ( empty($author) )
+			return true;
+
+		$author_obj = $this->get_queried_object();
+
+		$author = array_map( 'strval', (array) $author );
+
+		if ( in_array( (string) $author_obj->ID, $author ) )
+			return true;
+		elseif ( in_array( $author_obj->nickname, $author ) )
+			return true;
+		elseif ( in_array( $author_obj->user_nicename, $author ) )
+			return true;
+
+		return false;
+	}
+
+	/**
+	 * Is the query for an existing category archive page?
+	 *
+	 * If the $category parameter is specified, this function will additionally
+	 * check if the query is for one of the categories specified.
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs.
+	 * @return bool
+	 */
+	public function is_category( $category = '' ) {
+		if ( !$this->is_category )
+			return false;
+
+		if ( empty($category) )
+			return true;
+
+		$cat_obj = $this->get_queried_object();
+
+		$category = array_map( 'strval', (array) $category );
+
+		if ( in_array( (string) $cat_obj->term_id, $category ) )
+			return true;
+		elseif ( in_array( $cat_obj->name, $category ) )
+			return true;
+		elseif ( in_array( $cat_obj->slug, $category ) )
+			return true;
+
+		return false;
+	}
+
+	/**
+	 * Is the query for an existing tag archive page?
+	 *
+	 * If the $tag parameter is specified, this function will additionally
+	 * check if the query is for one of the tags specified.
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param mixed $tag Optional. Tag ID, name, slug, or array of Tag IDs, names, and slugs.
+	 * @return bool
+	 */
+	public function is_tag( $tag = '' ) {
+		if ( ! $this->is_tag )
+			return false;
+
+		if ( empty( $tag ) )
+			return true;
+
+		$tag_obj = $this->get_queried_object();
+
+		$tag = array_map( 'strval', (array) $tag );
+
+		if ( in_array( (string) $tag_obj->term_id, $tag ) )
+			return true;
+		elseif ( in_array( $tag_obj->name, $tag ) )
+			return true;
+		elseif ( in_array( $tag_obj->slug, $tag ) )
+			return true;
+
+		return false;
+	}
+
+	/**
+	 * Is the query for an existing custom taxonomy archive page?
+	 *
+	 * If the $taxonomy parameter is specified, this function will additionally
+	 * check if the query is for that specific $taxonomy.
+	 *
+	 * If the $term parameter is specified in addition to the $taxonomy parameter,
+	 * this function will additionally check if the query is for one of the terms
+	 * specified.
+	 *
+	 * @since 3.1.0
+	 *
+	 * @global array $wp_taxonomies
+	 *
+	 * @param mixed $taxonomy Optional. Taxonomy slug or slugs.
+	 * @param mixed $term     Optional. Term ID, name, slug or array of Term IDs, names, and slugs.
+	 * @return bool True for custom taxonomy archive pages, false for built-in taxonomies (category and tag archives).
+	 */
+	public function is_tax( $taxonomy = '', $term = '' ) {
+		global $wp_taxonomies;
+
+		if ( !$this->is_tax )
+			return false;
+
+		if ( empty( $taxonomy ) )
+			return true;
+
+		$queried_object = $this->get_queried_object();
+		$tax_array = array_intersect( array_keys( $wp_taxonomies ), (array) $taxonomy );
+		$term_array = (array) $term;
+
+		// Check that the taxonomy matches.
+		if ( ! ( isset( $queried_object->taxonomy ) && count( $tax_array ) && in_array( $queried_object->taxonomy, $tax_array ) ) )
+			return false;
+
+		// Only a Taxonomy provided.
+		if ( empty( $term ) )
+			return true;
+
+		return isset( $queried_object->term_id ) &&
+			count( array_intersect(
+				array( $queried_object->term_id, $queried_object->name, $queried_object->slug ),
+				$term_array
+			) );
+	}
+
+	/**
+	 * Whether the current URL is within the comments popup window.
+	 *
+	 * @since 3.1.0
+	 * @deprecated 4.5.0
+	 *
+	 * @return bool
+	 */
+	public function is_comments_popup() {
+		_deprecated_function( __FUNCTION__, '4.5.0' );
+
+		return false;
+	}
+
+	/**
+	 * Is the query for an existing date archive?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_date() {
+		return (bool) $this->is_date;
+	}
+
+	/**
+	 * Is the query for an existing day archive?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_day() {
+		return (bool) $this->is_day;
+	}
+
+	/**
+	 * Is the query for a feed?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param string|array $feeds Optional feed types to check.
+	 * @return bool
+	 */
+	public function is_feed( $feeds = '' ) {
+		if ( empty( $feeds ) || ! $this->is_feed )
+			return (bool) $this->is_feed;
+		$qv = $this->get( 'feed' );
+		if ( 'feed' == $qv )
+			$qv = get_default_feed();
+		return in_array( $qv, (array) $feeds );
+	}
+
+	/**
+	 * Is the query for a comments feed?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_comment_feed() {
+		return (bool) $this->is_comment_feed;
+	}
+
+	/**
+	 * Is the query for the front page of the site?
+	 *
+	 * This is for what is displayed at your site's main URL.
+	 *
+	 * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_on_front'.
+	 *
+	 * If you set a static page for the front page of your site, this function will return
+	 * true when viewing that page.
+	 *
+	 * Otherwise the same as @see WP_Query::is_home()
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool True, if front of site.
+	 */
+	public function is_front_page() {
+		// most likely case
+		if ( 'posts' == get_option( 'show_on_front') && $this->is_home() )
+			return true;
+		elseif ( 'page' == get_option( 'show_on_front') && get_option( 'page_on_front' ) && $this->is_page( get_option( 'page_on_front' ) ) )
+			return true;
+		else
+			return false;
+	}
+
+	/**
+	 * Is the query for the blog homepage?
+	 *
+	 * This is the page which shows the time based blog content of your site.
+	 *
+	 * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_for_posts'.
+	 *
+	 * If you set a static page for the front page of your site, this function will return
+	 * true only on the page you set as the "Posts page".
+	 *
+	 * @see WP_Query::is_front_page()
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool True if blog view homepage.
+	 */
+	public function is_home() {
+		return (bool) $this->is_home;
+	}
+
+	/**
+	 * Is the query for an existing month archive?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_month() {
+		return (bool) $this->is_month;
+	}
+
+	/**
+	 * Is the query for an existing single page?
+	 *
+	 * If the $page parameter is specified, this function will additionally
+	 * check if the query is for one of the pages specified.
+	 *
+	 * @see WP_Query::is_single()
+	 * @see WP_Query::is_singular()
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param int|string|array $page Optional. Page ID, title, slug, path, or array of such. Default empty.
+	 * @return bool Whether the query is for an existing single page.
+	 */
+	public function is_page( $page = '' ) {
+		if ( !$this->is_page )
+			return false;
+
+		if ( empty( $page ) )
+			return true;
+
+		$page_obj = $this->get_queried_object();
+
+		$page = array_map( 'strval', (array) $page );
+
+		if ( in_array( (string) $page_obj->ID, $page ) ) {
+			return true;
+		} elseif ( in_array( $page_obj->post_title, $page ) ) {
+			return true;
+		} elseif ( in_array( $page_obj->post_name, $page ) ) {
+			return true;
+		} else {
+			foreach ( $page as $pagepath ) {
+				if ( ! strpos( $pagepath, '/' ) ) {
+					continue;
+				}
+				$pagepath_obj = get_page_by_path( $pagepath );
+
+				if ( $pagepath_obj && ( $pagepath_obj->ID == $page_obj->ID ) ) {
+					return true;
+				}
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Is the query for paged result and not for the first page?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_paged() {
+		return (bool) $this->is_paged;
+	}
+
+	/**
+	 * Is the query for a post or page preview?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_preview() {
+		return (bool) $this->is_preview;
+	}
+
+	/**
+	 * Is the query for the robots file?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_robots() {
+		return (bool) $this->is_robots;
+	}
+
+	/**
+	 * Is the query for a search?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_search() {
+		return (bool) $this->is_search;
+	}
+
+	/**
+	 * Is the query for an existing single post?
+	 *
+	 * Works for any post type excluding pages.
+	 *
+	 * If the $post parameter is specified, this function will additionally
+	 * check if the query is for one of the Posts specified.
+	 *
+	 * @see WP_Query::is_page()
+	 * @see WP_Query::is_singular()
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param int|string|array $post Optional. Post ID, title, slug, path, or array of such. Default empty.
+	 * @return bool Whether the query is for an existing single post.
+	 */
+	public function is_single( $post = '' ) {
+		if ( !$this->is_single )
+			return false;
+
+		if ( empty($post) )
+			return true;
+
+		$post_obj = $this->get_queried_object();
+
+		$post = array_map( 'strval', (array) $post );
+
+		if ( in_array( (string) $post_obj->ID, $post ) ) {
+			return true;
+		} elseif ( in_array( $post_obj->post_title, $post ) ) {
+			return true;
+		} elseif ( in_array( $post_obj->post_name, $post ) ) {
+			return true;
+		} else {
+			foreach ( $post as $postpath ) {
+				if ( ! strpos( $postpath, '/' ) ) {
+					continue;
+				}
+				$postpath_obj = get_page_by_path( $postpath, OBJECT, $post_obj->post_type );
+
+				if ( $postpath_obj && ( $postpath_obj->ID == $post_obj->ID ) ) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Is the query for an existing single post of any post type (post, attachment, page, ... )?
+	 *
+	 * If the $post_types parameter is specified, this function will additionally
+	 * check if the query is for one of the Posts Types specified.
+	 *
+	 * @see WP_Query::is_page()
+	 * @see WP_Query::is_single()
+	 *
+	 * @since 3.1.0
+	 *
+	 * @param string|array $post_types Optional. Post type or array of post types. Default empty.
+	 * @return bool Whether the query is for an existing single post of any of the given post types.
+	 */
+	public function is_singular( $post_types = '' ) {
+		if ( empty( $post_types ) || !$this->is_singular )
+			return (bool) $this->is_singular;
+
+		$post_obj = $this->get_queried_object();
+
+		return in_array( $post_obj->post_type, (array) $post_types );
+	}
+
+	/**
+	 * Is the query for a specific time?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_time() {
+		return (bool) $this->is_time;
+	}
+
+	/**
+	 * Is the query for a trackback endpoint call?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_trackback() {
+		return (bool) $this->is_trackback;
+	}
+
+	/**
+	 * Is the query for an existing year archive?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_year() {
+		return (bool) $this->is_year;
+	}
+
+	/**
+	 * Is the query a 404 (returns no results)?
+	 *
+	 * @since 3.1.0
+	 *
+	 * @return bool
+	 */
+	public function is_404() {
+		return (bool) $this->is_404;
+	}
+
+	/**
+	 * Is the query for an embedded post?
+	 *
+	 * @since 4.4.0
+	 *
+	 * @return bool
+	 */
+	public function is_embed() {
+		return (bool) $this->is_embed;
+	}
+
+	/**
+	 * Is the query the main query?
+	 *
+	 * @since 3.3.0
+	 *
+	 * @global WP_Query $wp_query Global WP_Query instance.
+	 *
+	 * @return bool
+	 */
+	public function is_main_query() {
+		global $wp_the_query;
+		return $wp_the_query === $this;
+	}
+
+	/**
+	 * Set up global post data.
+	 *
+	 * @since 4.1.0
+	 * @since 4.4.0 Added the ability to pass a post ID to `$post`.
+	 *
+	 * @global int             $id
+	 * @global WP_User         $authordata
+	 * @global string|int|bool $currentday
+	 * @global string|int|bool $currentmonth
+	 * @global int             $page
+	 * @global array           $pages
+	 * @global int             $multipage
+	 * @global int             $more
+	 * @global int             $numpages
+	 *
+	 * @param WP_Post|object|int $post WP_Post instance or Post ID/object.
+	 * @return true True when finished.
+	 */
+	public function setup_postdata( $post ) {
+		global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;
+
+		if ( ! ( $post instanceof WP_Post ) ) {
+			$post = get_post( $post );
+		}
+
+		if ( ! $post ) {
+			return;
+		}
+
+		$id = (int) $post->ID;
+
+		$authordata = get_userdata($post->post_author);
+
+		$currentday = mysql2date('d.m.y', $post->post_date, false);
+		$currentmonth = mysql2date('m', $post->post_date, false);
+		$numpages = 1;
+		$multipage = 0;
+		$page = $this->get( 'page' );
+		if ( ! $page )
+			$page = 1;
+
+		/*
+		 * Force full post content when viewing the permalink for the $post,
+		 * or when on an RSS feed. Otherwise respect the 'more' tag.
+		 */
+		if ( $post->ID === get_queried_object_id() && ( $this->is_page() || $this->is_single() ) ) {
+			$more = 1;
+		} elseif ( $this->is_feed() ) {
+			$more = 1;
+		} else {
+			$more = 0;
+		}
+
+		$content = $post->post_content;
+		if ( false !== strpos( $content, '<!--nextpage-->' ) ) {
+			$content = str_replace( "\n<!--nextpage-->\n", '<!--nextpage-->', $content );
+			$content = str_replace( "\n<!--nextpage-->", '<!--nextpage-->', $content );
+			$content = str_replace( "<!--nextpage-->\n", '<!--nextpage-->', $content );
+
+			// Ignore nextpage at the beginning of the content.
+			if ( 0 === strpos( $content, '<!--nextpage-->' ) )
+				$content = substr( $content, 15 );
+
+			$pages = explode('<!--nextpage-->', $content);
+		} else {
+			$pages = array( $post->post_content );
+		}
+
+		/**
+		 * Filters the "pages" derived from splitting the post content.
+		 *
+		 * "Pages" are determined by splitting the post content based on the presence
+		 * of `<!-- nextpage -->` tags.
+		 *
+		 * @since 4.4.0
+		 *
+		 * @param array   $pages Array of "pages" derived from the post content.
+		 *                       of `<!-- nextpage -->` tags..
+		 * @param WP_Post $post  Current post object.
+		 */
+		$pages = apply_filters( 'content_pagination', $pages, $post );
+
+		$numpages = count( $pages );
+
+		if ( $numpages > 1 ) {
+			if ( $page > 1 ) {
+				$more = 1;
+			}
+			$multipage = 1;
+		} else {
+	 		$multipage = 0;
+	 	}
+
+		/**
+		 * Fires once the post data has been setup.
+		 *
+		 * @since 2.8.0
+		 * @since 4.1.0 Introduced `$this` parameter.
+		 *
+		 * @param WP_Post  &$post The Post object (passed by reference).
+		 * @param WP_Query &$this The current Query object (passed by reference).
+		 */
+		do_action_ref_array( 'the_post', array( &$post, &$this ) );
+
+		return true;
+	}
+	/**
+	 * After looping through a nested query, this function
+	 * restores the $post global to the current post in this query.
+	 *
+	 * @since 3.7.0
+	 *
+	 * @global WP_Post $post
+	 */
+	public function reset_postdata() {
+		if ( ! empty( $this->post ) ) {
+			$GLOBALS['post'] = $this->post;
+			$this->setup_postdata( $this->post );
+		}
+	}
+
+	/**
+	 * Lazyload term meta for posts in the loop.
+	 *
+	 * @since 4.4.0
+	 * @deprecated 4.5.0 See wp_queue_posts_for_term_meta_lazyload().
+	 *
+	 * @param mixed $check
+	 * @param int   $term_id
+	 * @return mixed
+	 */
+	public function lazyload_term_meta( $check, $term_id ) {
+		_deprecated_function( __METHOD__, '4.5.0' );
+		return $check;
+	}
+
+	/**
+	 * Lazyload comment meta for comments in the loop.
+	 *
+	 * @since 4.4.0
+	 * @deprecated 4.5.0 See wp_queue_comments_for_comment_meta_lazyload().
+	 *
+	 * @param mixed $check
+	 * @param int   $comment_id
+	 * @return mixed
+	 */
+	public function lazyload_comment_meta( $check, $comment_id ) {
+		_deprecated_function( __METHOD__, '4.5.0' );
+		return $check;
+	}
+}
diff --git a/wp-includes/class-wp-rewrite.php b/wp-includes/class-wp-rewrite.php
index 2c5761566..17c58b90a 100644
--- a/wp-includes/class-wp-rewrite.php
+++ b/wp-includes/class-wp-rewrite.php
@@ -1413,7 +1413,7 @@ class WP_Rewrite {
 			 *
 			 * @param array $rules The rewrite rules generated for the current permastruct.
 			 */
-			$rules = apply_filters( $permastructname . '_rewrite_rules', $rules );
+			$rules = apply_filters( "{$permastructname}_rewrite_rules", $rules );
 			if ( 'post_tag' == $permastructname ) {
 
 				/**
@@ -1475,6 +1475,10 @@ class WP_Rewrite {
 		if ( empty($this->rules) ) {
 			$this->matches = 'matches';
 			$this->rewrite_rules();
+			if ( ! did_action( 'wp_loaded' ) ) {
+				add_action( 'wp_loaded', array( $this, 'flush_rules' ) );
+				return $this->rules;
+			}
 			update_option('rewrite_rules', $this->rules);
 		}
 
diff --git a/wp-includes/class-wp-roles.php b/wp-includes/class-wp-roles.php
index ff733e220..23e05d7b1 100644
--- a/wp-includes/class-wp-roles.php
+++ b/wp-includes/class-wp-roles.php
@@ -105,11 +105,11 @@ class WP_Roles {
 	 * @since 2.1.0
 	 * @access protected
 	 *
-	 * @global wpdb  $wpdb          WordPress database abstraction object.
 	 * @global array $wp_user_roles Used to set the 'roles' property value.
 	 */
 	protected function _init() {
-		global $wpdb, $wp_user_roles;
+		global $wp_user_roles, $wpdb;
+
 		$this->role_key = $wpdb->get_blog_prefix() . 'user_roles';
 		if ( ! empty( $wp_user_roles ) ) {
 			$this->roles = $wp_user_roles;
@@ -127,6 +127,15 @@ class WP_Roles {
 			$this->role_objects[$role] = new WP_Role( $role, $this->roles[$role]['capabilities'] );
 			$this->role_names[$role] = $this->roles[$role]['name'];
 		}
+
+		/**
+		 * After the roles have been initialized, allow plugins to add their own roles.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_Roles $this A reference to the WP_Roles object.
+		 */
+		do_action( 'wp_roles_init', $this );
 	}
 
 	/**
@@ -136,29 +145,12 @@ class WP_Roles {
 	 * after switching wpdb to a new site ID.
 	 *
 	 * @since 3.5.0
+	 * @deprecated 4.7.0 Use new WP_Roles()
 	 * @access public
-	 *
-	 * @global wpdb $wpdb WordPress database abstraction object.
 	 */
 	public function reinit() {
-		// There is no need to reinit if using the wp_user_roles global.
-		if ( ! $this->use_db )
-			return;
-
-		global $wpdb;
-
-		// Duplicated from _init() to avoid an extra function call.
-		$this->role_key = $wpdb->get_blog_prefix() . 'user_roles';
-		$this->roles = get_option( $this->role_key );
-		if ( empty( $this->roles ) )
-			return;
-
-		$this->role_objects = array();
-		$this->role_names =  array();
-		foreach ( array_keys( $this->roles ) as $role ) {
-			$this->role_objects[$role] = new WP_Role( $role, $this->roles[$role]['capabilities'] );
-			$this->role_names[$role] = $this->roles[$role]['name'];
-		}
+		_deprecated_function( __METHOD__, '4.7.0', 'new WP_Roles()' );
+		$this->_init();
 	}
 
 	/**
diff --git a/wp-includes/class-wp-session-tokens.php b/wp-includes/class-wp-session-tokens.php
new file mode 100644
index 000000000..2f498b84b
--- /dev/null
+++ b/wp-includes/class-wp-session-tokens.php
@@ -0,0 +1,317 @@
+<?php
+/**
+ * Session API: WP_Session_Tokens class
+ *
+ * @package WordPress
+ * @subpackage Session
+ * @since 4.7.0
+ */
+
+/**
+ * Abstract class for managing user session tokens.
+ *
+ * @since 4.0.0
+ */
+abstract class WP_Session_Tokens {
+
+	/**
+	 * User ID.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 * @var int User ID.
+	 */
+	protected $user_id;
+
+	/**
+	 * Protected constructor.
+	 *
+	 * @since 4.0.0
+	 *
+	 * @param int $user_id User whose session to manage.
+	 */
+	protected function __construct( $user_id ) {
+		$this->user_id = $user_id;
+	}
+
+	/**
+	 * Get a session token manager instance for a user.
+	 *
+	 * This method contains a filter that allows a plugin to swap out
+	 * the session manager for a subclass of WP_Session_Tokens.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 * @static
+	 *
+	 * @param int $user_id User whose session to manage.
+	 */
+	final public static function get_instance( $user_id ) {
+		/**
+		 * Filters the session token manager used.
+		 *
+		 * @since 4.0.0
+		 *
+		 * @param string $session Name of class to use as the manager.
+		 *                        Default 'WP_User_Meta_Session_Tokens'.
+		 */
+		$manager = apply_filters( 'session_token_manager', 'WP_User_Meta_Session_Tokens' );
+		return new $manager( $user_id );
+	}
+
+	/**
+	 * Hashes a session token for storage.
+	 *
+	 * @since 4.0.0
+	 * @access private
+	 *
+	 * @param string $token Session token to hash.
+	 * @return string A hash of the session token (a verifier).
+	 */
+	final private function hash_token( $token ) {
+		// If ext/hash is not present, use sha1() instead.
+		if ( function_exists( 'hash' ) ) {
+			return hash( 'sha256', $token );
+		} else {
+			return sha1( $token );
+		}
+	}
+
+	/**
+	 * Get a user's session.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $token Session token
+	 * @return array User session
+	 */
+	final public function get( $token ) {
+		$verifier = $this->hash_token( $token );
+		return $this->get_session( $verifier );
+	}
+
+	/**
+	 * Validate a user's session token as authentic.
+	 *
+	 * Checks that the given token is present and hasn't expired.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $token Token to verify.
+	 * @return bool Whether the token is valid for the user.
+	 */
+	final public function verify( $token ) {
+		$verifier = $this->hash_token( $token );
+		return (bool) $this->get_session( $verifier );
+	}
+
+	/**
+	 * Generate a session token and attach session information to it.
+	 *
+	 * A session token is a long, random string. It is used in a cookie
+	 * link that cookie to an expiration time and to ensure the cookie
+	 * becomes invalidated upon logout.
+	 *
+	 * This function generates a token and stores it with the associated
+	 * expiration time (and potentially other session information via the
+	 * {@see 'attach_session_information'} filter).
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param int $expiration Session expiration timestamp.
+	 * @return string Session token.
+	 */
+	final public function create( $expiration ) {
+		/**
+		 * Filters the information attached to the newly created session.
+		 *
+		 * Could be used in the future to attach information such as
+		 * IP address or user agent to a session.
+		 *
+		 * @since 4.0.0
+		 *
+		 * @param array $session Array of extra data.
+		 * @param int   $user_id User ID.
+		 */
+		$session = apply_filters( 'attach_session_information', array(), $this->user_id );
+		$session['expiration'] = $expiration;
+
+		// IP address.
+		if ( !empty( $_SERVER['REMOTE_ADDR'] ) ) {
+			$session['ip'] = $_SERVER['REMOTE_ADDR'];
+		}
+
+		// User-agent.
+		if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+			$session['ua'] = wp_unslash( $_SERVER['HTTP_USER_AGENT'] );
+		}
+
+		// Timestamp
+		$session['login'] = time();
+
+		$token = wp_generate_password( 43, false, false );
+
+		$this->update( $token, $session );
+
+		return $token;
+	}
+
+	/**
+	 * Update a session token.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $token Session token to update.
+	 * @param array  $session Session information.
+	 */
+	final public function update( $token, $session ) {
+		$verifier = $this->hash_token( $token );
+		$this->update_session( $verifier, $session );
+	}
+
+	/**
+	 * Destroy a session token.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $token Session token to destroy.
+	 */
+	final public function destroy( $token ) {
+		$verifier = $this->hash_token( $token );
+		$this->update_session( $verifier, null );
+	}
+
+	/**
+	 * Destroy all session tokens for this user,
+	 * except a single token, presumably the one in use.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $token_to_keep Session token to keep.
+	 */
+	final public function destroy_others( $token_to_keep ) {
+		$verifier = $this->hash_token( $token_to_keep );
+		$session = $this->get_session( $verifier );
+		if ( $session ) {
+			$this->destroy_other_sessions( $verifier );
+		} else {
+			$this->destroy_all_sessions();
+		}
+	}
+
+	/**
+	 * Determine whether a session token is still valid,
+	 * based on expiration.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param array $session Session to check.
+	 * @return bool Whether session is valid.
+	 */
+	final protected function is_still_valid( $session ) {
+		return $session['expiration'] >= time();
+	}
+
+	/**
+	 * Destroy all session tokens for a user.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 */
+	final public function destroy_all() {
+		$this->destroy_all_sessions();
+	}
+
+	/**
+	 * Destroy all session tokens for all users.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 * @static
+	 */
+	final public static function destroy_all_for_all_users() {
+		$manager = apply_filters( 'session_token_manager', 'WP_User_Meta_Session_Tokens' );
+		call_user_func( array( $manager, 'drop_sessions' ) );
+	}
+
+	/**
+	 * Retrieve all sessions of a user.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @return array Sessions of a user.
+	 */
+	final public function get_all() {
+		return array_values( $this->get_sessions() );
+	}
+
+	/**
+	 * This method should retrieve all sessions of a user, keyed by verifier.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @return array Sessions of a user, keyed by verifier.
+	 */
+	abstract protected function get_sessions();
+
+	/**
+	 * This method should look up a session by its verifier (token hash).
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param string $verifier Verifier of the session to retrieve.
+	 * @return array|null The session, or null if it does not exist.
+	 */
+	abstract protected function get_session( $verifier );
+
+	/**
+	 * This method should update a session by its verifier.
+	 *
+	 * Omitting the second argument should destroy the session.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param string $verifier Verifier of the session to update.
+	 * @param array  $session  Optional. Session. Omitting this argument destroys the session.
+	 */
+	abstract protected function update_session( $verifier, $session = null );
+
+	/**
+	 * This method should destroy all session tokens for this user,
+	 * except a single session passed.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param string $verifier Verifier of the session to keep.
+	 */
+	abstract protected function destroy_other_sessions( $verifier );
+
+	/**
+	 * This method should destroy all sessions for a user.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 */
+	abstract protected function destroy_all_sessions();
+
+	/**
+	 * This static method should destroy all session tokens for all users.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 * @static
+	 */
+	public static function drop_sessions() {}
+}
diff --git a/wp-includes/class-wp-simplepie-file.php b/wp-includes/class-wp-simplepie-file.php
new file mode 100644
index 000000000..b87df7d9c
--- /dev/null
+++ b/wp-includes/class-wp-simplepie-file.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Feed API: WP_SimplePie_File class
+ *
+ * @package WordPress
+ * @subpackage Feed
+ * @since 4.7.0
+ */
+
+/**
+ * Core class for fetching remote files and reading local files with SimplePie.
+ *
+ * @since 2.8.0
+ *
+ * @see SimplePie_File
+ */
+class WP_SimplePie_File extends SimplePie_File {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 2.8.0
+	 * @since 3.2.0 Updated to use a PHP5 constructor.
+	 * @access public
+	 *
+	 * @param string       $url             Remote file URL.
+	 * @param integer      $timeout         Optional. How long the connection should stay open in seconds.
+	 *                                      Default 10.
+	 * @param integer      $redirects       Optional. The number of allowed redirects. Default 5.
+	 * @param string|array $headers         Optional. Array or string of headers to send with the request.
+	 *                                      Default null.
+	 * @param string       $useragent       Optional. User-agent value sent. Default null.
+	 * @param boolean      $force_fsockopen Optional. Whether to force opening internet or unix domain socket
+	 *                                      connection or not. Default false.
+	 */
+	public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false) {
+		$this->url = $url;
+		$this->timeout = $timeout;
+		$this->redirects = $redirects;
+		$this->headers = $headers;
+		$this->useragent = $useragent;
+
+		$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE;
+
+		if ( preg_match('/^http(s)?:\/\//i', $url) ) {
+			$args = array(
+				'timeout' => $this->timeout,
+				'redirection' => $this->redirects,
+			);
+
+			if ( !empty($this->headers) )
+				$args['headers'] = $this->headers;
+
+			if ( SIMPLEPIE_USERAGENT != $this->useragent ) //Use default WP user agent unless custom has been specified
+				$args['user-agent'] = $this->useragent;
+
+			$res = wp_safe_remote_request($url, $args);
+
+			if ( is_wp_error($res) ) {
+				$this->error = 'WP HTTP Error: ' . $res->get_error_message();
+				$this->success = false;
+			} else {
+				$this->headers = wp_remote_retrieve_headers( $res );
+				$this->body = wp_remote_retrieve_body( $res );
+				$this->status_code = wp_remote_retrieve_response_code( $res );
+			}
+		} else {
+			$this->error = '';
+			$this->success = false;
+		}
+	}
+}
diff --git a/wp-includes/class-wp-simplepie-sanitize-kses.php b/wp-includes/class-wp-simplepie-sanitize-kses.php
new file mode 100644
index 000000000..dce5edce2
--- /dev/null
+++ b/wp-includes/class-wp-simplepie-sanitize-kses.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Feed API: WP_SimplePie_Sanitize_KSES class
+ *
+ * @package WordPress
+ * @subpackage Feed
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to implement SimpliePie feed sanitization.
+ *
+ * Extends the SimplePie_Sanitize class to use KSES, because
+ * we cannot universally count on DOMDocument being available.
+ *
+ * @since 3.5.0
+ *
+ * @see SimplePie_Sanitize
+ */
+class WP_SimplePie_Sanitize_KSES extends SimplePie_Sanitize {
+
+	/**
+	 * WordPress SimplePie sanitization using KSES.
+	 *
+	 * Sanitizes the incoming data, to ensure that it matches the type of data expected, using KSES.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param mixed   $data The data that needs to be sanitized.
+	 * @param integer $type The type of data that it's supposed to be.
+	 * @param string  $base Optional. The `xml:base` value to use when converting relative
+	 *                      URLs to absolute ones. Default empty.
+	 * @return mixed Sanitized data.
+	 */
+	public function sanitize( $data, $type, $base = '' ) {
+		$data = trim( $data );
+		if ( $type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML ) {
+			if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data)) {
+				$type |= SIMPLEPIE_CONSTRUCT_HTML;
+			}
+			else {
+				$type |= SIMPLEPIE_CONSTRUCT_TEXT;
+			}
+		}
+		if ( $type & SIMPLEPIE_CONSTRUCT_BASE64 ) {
+			$data = base64_decode( $data );
+		}
+		if ( $type & ( SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML ) ) {
+			$data = wp_kses_post( $data );
+			if ( $this->output_encoding !== 'UTF-8' ) {
+				$data = $this->registry->call( 'Misc', 'change_encoding', array( $data, 'UTF-8', $this->output_encoding ) );
+			}
+			return $data;
+		} else {
+			return parent::sanitize( $data, $type, $base );
+		}
+	}
+}
diff --git a/wp-includes/class-wp-site-query.php b/wp-includes/class-wp-site-query.php
index cbffd6649..8f52372d3 100644
--- a/wp-includes/class-wp-site-query.php
+++ b/wp-includes/class-wp-site-query.php
@@ -113,7 +113,7 @@ class WP_Site_Query {
 	 *     @type string       $fields            Site fields to return. Accepts 'ids' (returns an array of site IDs)
 	 *                                           or empty (returns an array of complete site objects). Default empty.
 	 *     @type int          $ID                A site ID to only return that site. Default empty.
-	 *     @type int          $number            Maximum number of sites to retrieve. Default null (no limit).
+	 *     @type int          $number            Maximum number of sites to retrieve. Default 100.
 	 *     @type int          $offset            Number of sites to offset the query. Used to build LIMIT clause.
 	 *                                           Default 0.
 	 *     @type bool         $no_found_rows     Whether to disable the `SQL_CALC_FOUND_ROWS` query. Default true.
@@ -127,12 +127,10 @@ class WP_Site_Query {
 	 *                                           include all networks. Default 0.
 	 *     @type array        $network__in       Array of network IDs to include affiliated sites for. Default empty.
 	 *     @type array        $network__not_in   Array of network IDs to exclude affiliated sites for. Default empty.
-	 *     @type string       $domain            Limit results to those affiliated with a given domain.
-	 *                                           Default empty.
+	 *     @type string       $domain            Limit results to those affiliated with a given domain. Default empty.
 	 *     @type array        $domain__in        Array of domains to include affiliated sites for. Default empty.
 	 *     @type array        $domain__not_in    Array of domains to exclude affiliated sites for. Default empty.
-	 *     @type string       $path              Limit results to those affiliated with a given path.
-	 *                                           Default empty.
+	 *     @type string       $path              Limit results to those affiliated with a given path. Default empty.
 	 *     @type array        $path__in          Array of paths to include affiliated sites for. Default empty.
 	 *     @type array        $path__not_in      Array of paths to exclude affiliated sites for. Default empty.
 	 *     @type int          $public            Limit results to public sites. Accepts '1' or '0'. Default empty.
@@ -247,11 +245,7 @@ class WP_Site_Query {
 
 		// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
 		$key = md5( serialize( wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) ) ) );
-		$last_changed = wp_cache_get( 'last_changed', 'sites' );
-		if ( ! $last_changed ) {
-			$last_changed = microtime();
-			wp_cache_set( 'last_changed', $last_changed, 'sites' );
-		}
+		$last_changed = wp_cache_get_last_changed( 'sites' );
 
 		$cache_key = "get_sites:$key:$last_changed";
 		$cache_value = wp_cache_get( $cache_key, 'sites' );
@@ -511,6 +505,8 @@ class WP_Site_Query {
 			$this->sql_clauses['where']['date_query'] = preg_replace( '/^\s*AND\s*/', '', $this->date_query->get_sql() );
 		}
 
+		$join = '';
+
 		$where = implode( ' AND ', $this->sql_clauses['where'] );
 
 		$pieces = array( 'fields', 'join', 'where', 'orderby', 'limits', 'groupby' );
diff --git a/wp-includes/class-wp-site.php b/wp-includes/class-wp-site.php
index a250c8d04..53529fe94 100644
--- a/wp-includes/class-wp-site.php
+++ b/wp-includes/class-wp-site.php
@@ -15,8 +15,12 @@
  *
  * @since 4.5.0
  *
- * @property int $id
- * @property int $network_id
+ * @property int    $id
+ * @property int    $network_id
+ * @property string $blogname
+ * @property string $siteurl
+ * @property int    $post_count
+ * @property string $home
  */
 final class WP_Site {
 
@@ -310,7 +314,7 @@ final class WP_Site {
 	 *
 	 * @see WP_Site::__get()
 	 *
-	 * @return object A raw site object with all details included.
+	 * @return stdClass A raw site object with all details included.
 	 */
 	private function get_details() {
 		$details = wp_cache_get( $this->blog_id, 'site-details' );
@@ -342,12 +346,15 @@ final class WP_Site {
 			}
 		}
 
+		/** This filter is documented in wp-includes/ms-blogs.php */
+		$details = apply_filters_deprecated( 'blog_details', array( $details ), '4.7.0', 'site_details' );
+
 		/**
 		 * Filters a site's extended properties.
 		 *
 		 * @since 4.6.0
 		 *
-		 * @param object $details The site details.
+		 * @param stdClass $details The site details.
 		 */
 		$details = apply_filters( 'site_details', $details );
 
diff --git a/wp-includes/class-wp-taxonomy.php b/wp-includes/class-wp-taxonomy.php
new file mode 100644
index 000000000..4611ce974
--- /dev/null
+++ b/wp-includes/class-wp-taxonomy.php
@@ -0,0 +1,416 @@
+<?php
+/**
+ * Taxonomy API: WP_Taxonomy class
+ *
+ * @package WordPress
+ * @subpackage Taxonomy
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used for interacting with taxonomies.
+ *
+ * @since 4.7.0
+ */
+final class WP_Taxonomy {
+	/**
+	 * Taxonomy key.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $name;
+
+	/**
+	 * Name of the taxonomy shown in the menu. Usually plural.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $label;
+
+	/**
+	 * An array of labels for this taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var object
+	 */
+	public $labels = array();
+
+	/**
+	 * A short descriptive summary of what the taxonomy is for.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $description = '';
+
+	/**
+	 * Whether a taxonomy is intended for use publicly either via the admin interface or by front-end users.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $public = true;
+
+	/**
+	 * Whether the taxonomy is publicly queryable.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $publicly_queryable = true;
+
+	/**
+	 * Whether the taxonomy is hierarchical.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $hierarchical = false;
+
+	/**
+	 * Whether to generate and allow a UI for managing terms in this taxonomy in the admin.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $show_ui = true;
+
+	/**
+	 * Whether to show the taxonomy in the admin menu.
+	 *
+	 * If true, the taxonomy is shown as a submenu of the object type menu. If false, no menu is shown.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $show_in_menu = true;
+
+	/**
+	 * Whether the taxonomy is available for selection in navigation menus.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $show_in_nav_menus = true;
+
+	/**
+	 * Whether to list the taxonomy in the tag cloud widget controls.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $show_tagcloud = true;
+
+	/**
+	 * Whether to show the taxonomy in the quick/bulk edit panel.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $show_in_quick_edit = true;
+
+	/**
+	 * Whether to display a column for the taxonomy on its post type listing screens.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $show_admin_column = false;
+
+	/**
+	 * The callback function for the meta box display.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool|callable
+	 */
+	public $meta_box_cb = null;
+
+	/**
+	 * An array of object types this taxonomy is registered for.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var array
+	 */
+	public $object_type = null;
+
+	/**
+	 * Capabilities for this taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var array
+	 */
+	public $cap;
+
+	/**
+	 * Rewrites information for this taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var array|false
+	 */
+	public $rewrite;
+
+	/**
+	 * Query var string for this taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string|false
+	 */
+	public $query_var;
+
+	/**
+	 * Function that will be called when the count is updated.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var callable
+	 */
+	public $update_count_callback;
+
+	/**
+	 * Whether it is a built-in taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var bool
+	 */
+	public $_builtin;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @global WP $wp WP instance.
+	 *
+	 * @param string       $taxonomy    Taxonomy key, must not exceed 32 characters.
+	 * @param array|string $object_type Name of the object type for the taxonomy object.
+	 * @param array|string $args        Optional. Array or query string of arguments for registering a taxonomy.
+	 *                                  Default empty array.
+	 */
+	public function __construct( $taxonomy, $object_type, $args = array() ) {
+		$this->name = $taxonomy;
+
+		$this->set_props( $object_type, $args );
+	}
+
+	/**
+	 * Sets taxonomy properties.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param array|string $object_type Name of the object type for the taxonomy object.
+	 * @param array|string $args        Array or query string of arguments for registering a taxonomy.
+	 */
+	public function set_props( $object_type, $args ) {
+		$args = wp_parse_args( $args );
+
+		/**
+		 * Filters the arguments for registering a taxonomy.
+		 *
+		 * @since 4.4.0
+		 *
+		 * @param array  $args        Array of arguments for registering a taxonomy.
+		 * @param string $taxonomy    Taxonomy key.
+		 * @param array  $object_type Array of names of object types for the taxonomy.
+		 */
+		$args = apply_filters( 'register_taxonomy_args', $args, $this->name, (array) $object_type );
+
+		$defaults = array(
+			'labels'                => array(),
+			'description'           => '',
+			'public'                => true,
+			'publicly_queryable'    => null,
+			'hierarchical'          => false,
+			'show_ui'               => null,
+			'show_in_menu'          => null,
+			'show_in_nav_menus'     => null,
+			'show_tagcloud'         => null,
+			'show_in_quick_edit'    => null,
+			'show_admin_column'     => false,
+			'meta_box_cb'           => null,
+			'capabilities'          => array(),
+			'rewrite'               => true,
+			'query_var'             => $this->name,
+			'update_count_callback' => '',
+			'_builtin'              => false,
+		);
+
+		$args = array_merge( $defaults, $args );
+
+		// If not set, default to the setting for public.
+		if ( null === $args['publicly_queryable'] ) {
+			$args['publicly_queryable'] = $args['public'];
+		}
+
+		if ( false !== $args['query_var'] && ( is_admin() || false !== $args['publicly_queryable'] ) ) {
+			if ( true === $args['query_var'] ) {
+				$args['query_var'] = $this->name;
+			} else {
+				$args['query_var'] = sanitize_title_with_dashes( $args['query_var'] );
+			}
+		} else {
+			// Force query_var to false for non-public taxonomies.
+			$args['query_var'] = false;
+		}
+
+		if ( false !== $args['rewrite'] && ( is_admin() || '' != get_option( 'permalink_structure' ) ) ) {
+			$args['rewrite'] = wp_parse_args( $args['rewrite'], array(
+				'with_front'   => true,
+				'hierarchical' => false,
+				'ep_mask'      => EP_NONE,
+			) );
+
+			if ( empty( $args['rewrite']['slug'] ) ) {
+				$args['rewrite']['slug'] = sanitize_title_with_dashes( $this->name );
+			}
+		}
+
+		// If not set, default to the setting for public.
+		if ( null === $args['show_ui'] ) {
+			$args['show_ui'] = $args['public'];
+		}
+
+		// If not set, default to the setting for show_ui.
+		if ( null === $args['show_in_menu'] || ! $args['show_ui'] ) {
+			$args['show_in_menu'] = $args['show_ui'];
+		}
+
+		// If not set, default to the setting for public.
+		if ( null === $args['show_in_nav_menus'] ) {
+			$args['show_in_nav_menus'] = $args['public'];
+		}
+
+		// If not set, default to the setting for show_ui.
+		if ( null === $args['show_tagcloud'] ) {
+			$args['show_tagcloud'] = $args['show_ui'];
+		}
+
+		// If not set, default to the setting for show_ui.
+		if ( null === $args['show_in_quick_edit'] ) {
+			$args['show_in_quick_edit'] = $args['show_ui'];
+		}
+
+		$default_caps = array(
+			'manage_terms' => 'manage_categories',
+			'edit_terms'   => 'manage_categories',
+			'delete_terms' => 'manage_categories',
+			'assign_terms' => 'edit_posts',
+		);
+
+		$args['cap'] = (object) array_merge( $default_caps, $args['capabilities'] );
+		unset( $args['capabilities'] );
+
+		$args['object_type'] = array_unique( (array) $object_type );
+
+		// If not set, use the default meta box
+		if ( null === $args['meta_box_cb'] ) {
+			if ( $args['hierarchical'] ) {
+				$args['meta_box_cb'] = 'post_categories_meta_box';
+			} else {
+				$args['meta_box_cb'] = 'post_tags_meta_box';
+			}
+		}
+
+		foreach ( $args as $property_name => $property_value ) {
+			$this->$property_name = $property_value;
+		}
+
+		$this->labels = get_taxonomy_labels( $this );
+		$this->label = $this->labels->name;
+	}
+
+	/**
+	 * Adds the necessary rewrite rules for the taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @global WP $wp Current WordPress environment instance.
+	 */
+	public function add_rewrite_rules() {
+		/* @var WP $wp */
+		global $wp;
+
+		// Non-publicly queryable taxonomies should not register query vars, except in the admin.
+		if ( false !== $this->query_var && $wp ) {
+			$wp->add_query_var( $this->query_var );
+		}
+
+		if ( false !== $this->rewrite && ( is_admin() || '' != get_option( 'permalink_structure' ) ) ) {
+			if ( $this->hierarchical && $this->rewrite['hierarchical'] ) {
+				$tag = '(.+?)';
+			} else {
+				$tag = '([^/]+)';
+			}
+
+			add_rewrite_tag( "%$this->name%", $tag, $this->query_var ? "{$this->query_var}=" : "taxonomy=$this->name&term=" );
+			add_permastruct( $this->name, "{$this->rewrite['slug']}/%$this->name%", $this->rewrite );
+		}
+	}
+
+	/**
+	 * Removes any rewrite rules, permastructs, and rules for the taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @global WP $wp Current WordPress environment instance.
+	 */
+	public function remove_rewrite_rules() {
+		/* @var WP $wp */
+		global $wp;
+
+		// Remove query var.
+		if ( false !== $this->query_var ) {
+			$wp->remove_query_var( $this->query_var );
+		}
+
+		// Remove rewrite tags and permastructs.
+		if ( false !== $this->rewrite ) {
+			remove_rewrite_tag( "%$this->name%" );
+			remove_permastruct( $this->name );
+		}
+	}
+
+	/**
+	 * Registers the ajax callback for the meta box.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function add_hooks() {
+		add_filter( 'wp_ajax_add-' . $this->name, '_wp_ajax_add_hierarchical_term' );
+	}
+
+	/**
+	 * Removes the ajax callback for the meta box.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function remove_hooks() {
+		remove_filter( 'wp_ajax_add-' . $this->name, '_wp_ajax_add_hierarchical_term' );
+	}
+}
diff --git a/wp-includes/class-wp-term-query.php b/wp-includes/class-wp-term-query.php
index 38977f451..434d810db 100644
--- a/wp-includes/class-wp-term-query.php
+++ b/wp-includes/class-wp-term-query.php
@@ -93,6 +93,7 @@ class WP_Term_Query {
 	 *
 	 * @since 4.6.0
 	 * @since 4.6.0 Introduced 'term_taxonomy_id' parameter.
+	 * @since 4.7.0 Introduced 'object_ids' parameter.
 	 * @access public
 	 *
 	 * @param string|array $query {
@@ -100,6 +101,8 @@ class WP_Term_Query {
 	 *
 	 *     @type string|array $taxonomy               Taxonomy name, or array of taxonomies, to which results should
 	 *                                                be limited.
+	 *     @type int|array    $object_ids             Optional. Object ID, or array of object IDs. Results will be
+	 *                                                limited to terms associated with these objects.
 	 *     @type string       $orderby                Field(s) to order terms by. Accepts term fields ('name',
 	 *                                                'slug', 'term_group', 'term_id', 'id', 'description'),
 	 *                                                'count' for term taxonomy count, 'include' to match the
@@ -123,13 +126,17 @@ class WP_Term_Query {
 	 *                                                positive number. Default ''|0 (all).
 	 *     @type int          $offset                 The number by which to offset the terms query. Default empty.
 	 *     @type string       $fields                 Term fields to query for. Accepts 'all' (returns an array of
-	 *                                                complete term objects), 'ids' (returns an array of ids),
-	 *                                                'id=>parent' (returns an associative array with ids as keys,
-	 *                                                parent term IDs as values), 'names' (returns an array of term
-	 *                                                names), 'count' (returns the number of matching terms),
-	 *                                                'id=>name' (returns an associative array with ids as keys,
-	 *                                                term names as values), or 'id=>slug' (returns an associative
-	 *                                                array with ids as keys, term slugs as values). Default 'all'.
+	 *                                                complete term objects), 'all_with_object_id' (returns an
+	 *                                                array of term objects with the 'object_id' param; only works
+	 *                                                when the `$fields` parameter is 'object_ids' ), 'ids'
+	 *                                                (returns an array of ids), 'tt_ids' (returns an array of
+	 *                                                term taxonomy ids), 'id=>parent' (returns an associative
+	 *                                                array with ids as keys, parent term IDs as values), 'names'
+	 *                                                (returns an array of term names), 'count' (returns the number
+	 *                                                of matching terms), 'id=>name' (returns an associative array
+	 *                                                with ids as keys, term names as values), or 'id=>slug'
+	 *                                                (returns an associative array with ids as keys, term slugs
+	 *                                                as values). Default 'all'.
 	 *     @type bool         $count                  Whether to return a term count (true) or array of term objects
 	 *                                                (false). Will take precedence over `$fields` if true.
 	 *                                                Default false.
@@ -174,6 +181,7 @@ class WP_Term_Query {
 	public function __construct( $query = '' ) {
 		$this->query_var_defaults = array(
 			'taxonomy'               => null,
+			'object_ids'             => null,
 			'orderby'                => 'name',
 			'order'                  => 'ASC',
 			'hide_empty'             => true,
@@ -199,6 +207,10 @@ class WP_Term_Query {
 			'cache_domain'           => 'core',
 			'update_term_meta_cache' => true,
 			'meta_query'             => '',
+			'meta_key'               => '',
+			'meta_value'             => '',
+			'meta_type'              => '',
+			'meta_compare'           => '',
 		);
 
 		if ( ! empty( $query ) ) {
@@ -253,15 +265,7 @@ class WP_Term_Query {
 
 		$query['taxonomy'] = $taxonomies;
 
-		/**
-		 * Filters the terms query arguments.
-		 *
-		 * @since 3.1.0
-		 *
-		 * @param array $args       An array of get_terms() arguments.
-		 * @param array $taxonomies An array of taxonomies.
-		 */
-		$this->query_vars = apply_filters( 'get_terms_args', $query, $taxonomies );
+		$this->query_vars = $query;
 
 		/**
 		 * Fires after term query vars have been parsed.
@@ -383,7 +387,13 @@ class WP_Term_Query {
 			}
 		}
 
-		$orderby = $this->parse_orderby( $this->query_vars['orderby'] );
+		// 'term_order' is a legal sort order only when joining the relationship table.
+		$_orderby = $this->query_vars['orderby'];
+		if ( 'term_order' === $_orderby && empty( $this->query_vars['object_ids'] ) ) {
+			$_orderby = 'term_id';
+		}
+		$orderby = $this->parse_orderby( $_orderby );
+
 		if ( $orderby ) {
 			$orderby = "ORDER BY $orderby";
 		}
@@ -498,6 +508,24 @@ class WP_Term_Query {
 			$this->sql_clauses['where']['description__like'] = $wpdb->prepare( "tt.description LIKE %s", '%' . $wpdb->esc_like( $args['description__like'] ) . '%' );
 		}
 
+		if ( ! empty( $args['object_ids'] ) ) {
+			$object_ids = $args['object_ids'];
+			if ( ! is_array( $object_ids ) ) {
+				$object_ids = array( $object_ids );
+			}
+
+			$object_ids = implode( ', ', array_map( 'intval', $object_ids ) );
+			$this->sql_clauses['where']['object_ids'] = "tr.object_id IN ($object_ids)";
+		}
+
+		/*
+		 * When querying for object relationships, the 'count > 0' check
+		 * added by 'hide_empty' is superfluous.
+		 */
+		if ( ! empty( $args['object_ids'] ) ) {
+			$args['hide_empty'] = false;
+		}
+
 		if ( '' !== $parent ) {
 			$parent = (int) $parent;
 			$this->sql_clauses['where']['parent'] = "tt.parent = '$parent'";
@@ -549,7 +577,13 @@ class WP_Term_Query {
 		$selects = array();
 		switch ( $args['fields'] ) {
 			case 'all':
+			case 'all_with_object_id' :
+			case 'tt_ids' :
+			case 'slugs' :
 				$selects = array( 't.*', 'tt.*' );
+				if ( 'all_with_object_id' === $args['fields'] && ! empty( $args['object_ids'] ) ) {
+					$selects[] = 'tr.object_id';
+				}
 				break;
 			case 'ids':
 			case 'id=>parent':
@@ -593,9 +627,11 @@ class WP_Term_Query {
 
 		$join .= " INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id";
 
-		$where = implode( ' AND ', $this->sql_clauses['where'] );
+		if ( ! empty( $this->query_vars['object_ids'] ) ) {
+			$join .= " INNER JOIN {$wpdb->term_relationships} AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id";
+		}
 
-		$pieces = array( 'fields', 'join', 'where', 'distinct', 'orderby', 'order', 'limits' );
+		$where = implode( ' AND ', $this->sql_clauses['where'] );
 
 		/**
 		 * Filters the terms query SQL clauses.
@@ -606,7 +642,7 @@ class WP_Term_Query {
 		 * @param array $taxonomies An array of taxonomies.
 		 * @param array $args       An array of terms query arguments.
 		 */
-		$clauses = apply_filters( 'terms_clauses', compact( $pieces ), $taxonomies, $args );
+		$clauses = apply_filters( 'terms_clauses', compact( 'fields', 'join', 'where', 'distinct', 'orderby', 'order', 'limits' ), $taxonomies, $args );
 
 		$fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
 		$join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
@@ -629,11 +665,7 @@ class WP_Term_Query {
 
 		// $args can be anything. Only use the args defined in defaults to compute the key.
 		$key = md5( serialize( wp_array_slice_assoc( $args, array_keys( $this->query_var_defaults ) ) ) . serialize( $taxonomies ) . $this->request );
-		$last_changed = wp_cache_get( 'last_changed', 'terms' );
-		if ( ! $last_changed ) {
-			$last_changed = microtime();
-			wp_cache_set( 'last_changed', $last_changed, 'terms' );
-		}
+		$last_changed = wp_cache_get_last_changed( 'terms' );
 		$cache_key = "get_terms:$key:$last_changed";
 		$cache = wp_cache_get( $cache_key, 'terms' );
 		if ( false !== $cache ) {
@@ -646,11 +678,13 @@ class WP_Term_Query {
 		}
 
 		if ( 'count' == $_fields ) {
-			return $wpdb->get_var( $this->request );
+			$count = $wpdb->get_var( $this->request );
+			wp_cache_set( $cache_key, $count, 'terms' );
+			return $count;
 		}
 
 		$terms = $wpdb->get_results( $this->request );
-		if ( 'all' == $_fields ) {
+		if ( 'all' == $_fields || 'all_with_object_id' === $_fields ) {
 			update_term_cache( $terms );
 		}
 
@@ -701,6 +735,26 @@ class WP_Term_Query {
 			}
 		}
 
+		/*
+		 * When querying for terms connected to objects, we may get
+		 * duplicate results. The duplicates should be preserved if
+		 * `$fields` is 'all_with_object_id', but should otherwise be
+		 * removed.
+		 */
+		if ( ! empty( $args['object_ids'] ) && 'all_with_object_id' != $_fields ) {
+			$_tt_ids = $_terms = array();
+			foreach ( $terms as $term ) {
+				if ( isset( $_tt_ids[ $term->term_id ] ) ) {
+					continue;
+				}
+
+				$_tt_ids[ $term->term_id ] = 1;
+				$_terms[] = $term;
+			}
+
+			$terms = $_terms;
+		}
+
 		$_terms = array();
 		if ( 'id=>parent' == $_fields ) {
 			foreach ( $terms as $term ) {
@@ -708,12 +762,20 @@ class WP_Term_Query {
 			}
 		} elseif ( 'ids' == $_fields ) {
 			foreach ( $terms as $term ) {
-				$_terms[] = $term->term_id;
+				$_terms[] = (int) $term->term_id;
+			}
+		} elseif ( 'tt_ids' == $_fields ) {
+			foreach ( $terms as $term ) {
+				$_terms[] = (int) $term->term_taxonomy_id;
 			}
 		} elseif ( 'names' == $_fields ) {
 			foreach ( $terms as $term ) {
 				$_terms[] = $term->name;
 			}
+		} elseif ( 'slugs' == $_fields ) {
+			foreach ( $terms as $term ) {
+				$_terms[] = $term->slug;
+			}
 		} elseif ( 'id=>name' == $_fields ) {
 			foreach ( $terms as $term ) {
 				$_terms[ $term->term_id ] = $term->name;
@@ -739,7 +801,7 @@ class WP_Term_Query {
 
 		wp_cache_add( $cache_key, $terms, 'terms', DAY_IN_SECONDS );
 
-		if ( 'all' === $_fields ) {
+		if ( 'all' === $_fields || 'all_with_object_id' === $_fields ) {
 			$terms = array_map( 'get_term', $terms );
 		}
 
@@ -761,19 +823,16 @@ class WP_Term_Query {
 	protected function parse_orderby( $orderby_raw ) {
 		$_orderby = strtolower( $orderby_raw );
 		$maybe_orderby_meta = false;
-		if ( 'count' == $_orderby ) {
-			$orderby = 'tt.count';
-		} elseif ( 'name' == $_orderby ) {
-			$orderby = 't.name';
-		} elseif ( 'slug' == $_orderby ) {
-			$orderby = 't.slug';
+
+		if ( in_array( $_orderby, array( 'term_id', 'name', 'slug', 'term_group' ), true ) ) {
+			$orderby = "t.$_orderby";
+		} elseif ( in_array( $_orderby, array( 'count', 'parent', 'taxonomy', 'term_taxonomy_id', 'description' ), true ) ) {
+			$orderby = "tt.$_orderby";
+		} elseif ( 'term_order' === $_orderby ) {
+			$orderby = 'tr.term_order';
 		} elseif ( 'include' == $_orderby && ! empty( $this->query_vars['include'] ) ) {
-			$include = implode( ',', array_map( 'absint', $this->query_vars['include'] ) );
+			$include = implode( ',', wp_parse_id_list( $this->query_vars['include'] ) );
 			$orderby = "FIELD( t.term_id, $include )";
-		} elseif ( 'term_group' == $_orderby ) {
-			$orderby = 't.term_group';
-		} elseif ( 'description' == $_orderby ) {
-			$orderby = 'tt.description';
 		} elseif ( 'none' == $_orderby ) {
 			$orderby = '';
 		} elseif ( empty( $_orderby ) || 'id' == $_orderby || 'term_id' === $_orderby ) {
diff --git a/wp-includes/class-wp-term.php b/wp-includes/class-wp-term.php
index 3b4931a04..6cb4a15bd 100644
--- a/wp-includes/class-wp-term.php
+++ b/wp-includes/class-wp-term.php
@@ -125,11 +125,12 @@ final class WP_Term {
 	public static function get_instance( $term_id, $taxonomy = null ) {
 		global $wpdb;
 
-		$term_id = (int) $term_id;
-		if ( ! $term_id ) {
+		if ( ! is_numeric( $term_id ) || $term_id != floor( $term_id ) || ! $term_id ) {
 			return false;
 		}
 
+		$term_id = (int) $term_id;
+
 		$_term = wp_cache_get( $term_id, 'terms' );
 
 		// If there isn't a cached version, hit the database.
@@ -250,7 +251,6 @@ final class WP_Term {
 				}
 
 				return sanitize_term( $data, $data->taxonomy, 'raw' );
-				break;
 		}
 	}
 }
diff --git a/wp-includes/class-wp-text-diff-renderer-inline.php b/wp-includes/class-wp-text-diff-renderer-inline.php
new file mode 100644
index 000000000..236e388be
--- /dev/null
+++ b/wp-includes/class-wp-text-diff-renderer-inline.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Diff API: WP_Text_Diff_Renderer_inline class
+ *
+ * @package WordPress
+ * @subpackage Diff
+ * @since 4.7.0
+ */
+
+/**
+ * Better word splitting than the PEAR package provides.
+ *
+ * @since 2.6.0
+ * @uses Text_Diff_Renderer_inline Extends
+ */
+class WP_Text_Diff_Renderer_inline extends Text_Diff_Renderer_inline {
+
+	/**
+	 * @ignore
+	 * @since 2.6.0
+	 *
+	 * @param string $string
+	 * @param string $newlineEscape
+	 * @return string
+	 */
+	public function _splitOnWords($string, $newlineEscape = "\n") {
+		$string = str_replace("\0", '', $string);
+		$words  = preg_split( '/([^\w])/u', $string, -1, PREG_SPLIT_DELIM_CAPTURE );
+		$words  = str_replace( "\n", $newlineEscape, $words );
+		return $words;
+	}
+
+}
diff --git a/wp-includes/class-wp-text-diff-renderer-table.php b/wp-includes/class-wp-text-diff-renderer-table.php
new file mode 100644
index 000000000..82131cffd
--- /dev/null
+++ b/wp-includes/class-wp-text-diff-renderer-table.php
@@ -0,0 +1,509 @@
+<?php
+/**
+ * Diff API: WP_Text_Diff_Renderer_Table class
+ *
+ * @package WordPress
+ * @subpackage Diff
+ * @since 4.7.0
+ */
+
+/**
+ * Table renderer to display the diff lines.
+ *
+ * @since 2.6.0
+ * @uses Text_Diff_Renderer Extends
+ */
+class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
+
+	/**
+	 * @see Text_Diff_Renderer::_leading_context_lines
+	 * @var int
+	 * @access public
+	 * @since 2.6.0
+	 */
+	public $_leading_context_lines  = 10000;
+
+	/**
+	 * @see Text_Diff_Renderer::_trailing_context_lines
+	 * @var int
+	 * @access public
+	 * @since 2.6.0
+	 */
+	public $_trailing_context_lines = 10000;
+
+	/**
+	 * Threshold for when a diff should be saved or omitted.
+	 *
+	 * @var float
+	 * @access protected
+	 * @since 2.6.0
+	 */
+	protected $_diff_threshold = 0.6;
+
+	/**
+	 * Inline display helper object name.
+	 *
+	 * @var string
+	 * @access protected
+	 * @since 2.6.0
+	 */
+	protected $inline_diff_renderer = 'WP_Text_Diff_Renderer_inline';
+
+	/**
+	 * Should we show the split view or not
+	 *
+	 * @var string
+	 * @access protected
+	 * @since 3.6.0
+	 */
+	protected $_show_split_view = true;
+
+	protected $compat_fields = array( '_show_split_view', 'inline_diff_renderer', '_diff_threshold' );
+
+	/**
+	 * Constructor - Call parent constructor with params array.
+	 *
+	 * This will set class properties based on the key value pairs in the array.
+	 *
+	 * @since 2.6.0
+	 *
+	 * @param array $params
+	 */
+	public function __construct( $params = array() ) {
+		parent::__construct( $params );
+		if ( isset( $params[ 'show_split_view' ] ) )
+			$this->_show_split_view = $params[ 'show_split_view' ];
+	}
+
+	/**
+	 * @ignore
+	 *
+	 * @param string $header
+	 * @return string
+	 */
+	public function _startBlock( $header ) {
+		return '';
+	}
+
+	/**
+	 * @ignore
+	 *
+	 * @param array $lines
+	 * @param string $prefix
+	 */
+	public function _lines( $lines, $prefix=' ' ) {
+	}
+
+	/**
+	 * @ignore
+	 *
+	 * @param string $line HTML-escape the value.
+	 * @return string
+	 */
+	public function addedLine( $line ) {
+		return "<td class='diff-addedline'>{$line}</td>";
+
+	}
+
+	/**
+	 * @ignore
+	 *
+	 * @param string $line HTML-escape the value.
+	 * @return string
+	 */
+	public function deletedLine( $line ) {
+		return "<td class='diff-deletedline'>{$line}</td>";
+	}
+
+	/**
+	 * @ignore
+	 *
+	 * @param string $line HTML-escape the value.
+	 * @return string
+	 */
+	public function contextLine( $line ) {
+		return "<td class='diff-context'>{$line}</td>";
+	}
+
+	/**
+	 * @ignore
+	 *
+	 * @return string
+	 */
+	public function emptyLine() {
+		return '<td>&nbsp;</td>';
+	}
+
+	/**
+	 * @ignore
+	 * @access public
+	 *
+	 * @param array $lines
+	 * @param bool $encode
+	 * @return string
+	 */
+	public function _added( $lines, $encode = true ) {
+		$r = '';
+		foreach ($lines as $line) {
+			if ( $encode ) {
+				$processed_line = htmlspecialchars( $line );
+
+				/**
+				 * Contextually filters a diffed line.
+				 *
+				 * Filters TextDiff processing of diffed line. By default, diffs are processed with
+				 * htmlspecialchars. Use this filter to remove or change the processing. Passes a context
+				 * indicating if the line is added, deleted or unchanged.
+				 *
+				 * @since 4.1.0
+				 *
+				 * @param String $processed_line The processed diffed line.
+				 * @param String $line           The unprocessed diffed line.
+		 		 * @param string null            The line context. Values are 'added', 'deleted' or 'unchanged'.
+				 */
+				$line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'added' );
+			}
+
+			if ( $this->_show_split_view ) {
+				$r .= '<tr>' . $this->emptyLine() . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n";
+			} else {
+				$r .= '<tr>' . $this->addedLine( $line ) . "</tr>\n";
+			}
+		}
+		return $r;
+	}
+
+	/**
+	 * @ignore
+	 * @access public
+	 *
+	 * @param array $lines
+	 * @param bool $encode
+	 * @return string
+	 */
+	public function _deleted( $lines, $encode = true ) {
+		$r = '';
+		foreach ($lines as $line) {
+			if ( $encode ) {
+				$processed_line = htmlspecialchars( $line );
+
+				/** This filter is documented in wp-includes/wp-diff.php */
+				$line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'deleted' );
+			}
+			if ( $this->_show_split_view ) {
+				$r .= '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . $this->emptyLine() . "</tr>\n";
+			} else {
+				$r .= '<tr>' . $this->deletedLine( $line ) . "</tr>\n";
+			}
+
+		}
+		return $r;
+	}
+
+	/**
+	 * @ignore
+	 * @access public
+	 *
+	 * @param array $lines
+	 * @param bool $encode
+	 * @return string
+	 */
+	public function _context( $lines, $encode = true ) {
+		$r = '';
+		foreach ($lines as $line) {
+			if ( $encode ) {
+				$processed_line = htmlspecialchars( $line );
+
+				/** This filter is documented in wp-includes/wp-diff.php */
+				$line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'unchanged' );
+			}
+			if (  $this->_show_split_view ) {
+				$r .= '<tr>' . $this->contextLine( $line ) . $this->emptyLine() . $this->contextLine( $line )  . "</tr>\n";
+			} else {
+				$r .= '<tr>' . $this->contextLine( $line ) . "</tr>\n";
+			}
+		}
+		return $r;
+	}
+
+	/**
+	 * Process changed lines to do word-by-word diffs for extra highlighting.
+	 *
+	 * (TRAC style) sometimes these lines can actually be deleted or added rows.
+	 * We do additional processing to figure that out
+	 *
+	 * @access public
+	 * @since 2.6.0
+	 *
+	 * @param array $orig
+	 * @param array $final
+	 * @return string
+	 */
+	public function _changed( $orig, $final ) {
+		$r = '';
+
+		// Does the aforementioned additional processing
+		// *_matches tell what rows are "the same" in orig and final. Those pairs will be diffed to get word changes
+		//	match is numeric: an index in other column
+		//	match is 'X': no match. It is a new row
+		// *_rows are column vectors for the orig column and the final column.
+		//	row >= 0: an indix of the $orig or $final array
+		//	row  < 0: a blank row for that column
+		list($orig_matches, $final_matches, $orig_rows, $final_rows) = $this->interleave_changed_lines( $orig, $final );
+
+		// These will hold the word changes as determined by an inline diff
+		$orig_diffs  = array();
+		$final_diffs = array();
+
+		// Compute word diffs for each matched pair using the inline diff
+		foreach ( $orig_matches as $o => $f ) {
+			if ( is_numeric($o) && is_numeric($f) ) {
+				$text_diff = new Text_Diff( 'auto', array( array($orig[$o]), array($final[$f]) ) );
+				$renderer = new $this->inline_diff_renderer;
+				$diff = $renderer->render( $text_diff );
+
+				// If they're too different, don't include any <ins> or <dels>
+				if ( preg_match_all( '!(<ins>.*?</ins>|<del>.*?</del>)!', $diff, $diff_matches ) ) {
+					// length of all text between <ins> or <del>
+					$stripped_matches = strlen(strip_tags( join(' ', $diff_matches[0]) ));
+					// since we count lengith of text between <ins> or <del> (instead of picking just one),
+					//	we double the length of chars not in those tags.
+					$stripped_diff = strlen(strip_tags( $diff )) * 2 - $stripped_matches;
+					$diff_ratio = $stripped_matches / $stripped_diff;
+					if ( $diff_ratio > $this->_diff_threshold )
+						continue; // Too different. Don't save diffs.
+				}
+
+				// Un-inline the diffs by removing del or ins
+				$orig_diffs[$o]  = preg_replace( '|<ins>.*?</ins>|', '', $diff );
+				$final_diffs[$f] = preg_replace( '|<del>.*?</del>|', '', $diff );
+			}
+		}
+
+		foreach ( array_keys($orig_rows) as $row ) {
+			// Both columns have blanks. Ignore them.
+			if ( $orig_rows[$row] < 0 && $final_rows[$row] < 0 )
+				continue;
+
+			// If we have a word based diff, use it. Otherwise, use the normal line.
+			if ( isset( $orig_diffs[$orig_rows[$row]] ) )
+				$orig_line = $orig_diffs[$orig_rows[$row]];
+			elseif ( isset( $orig[$orig_rows[$row]] ) )
+				$orig_line = htmlspecialchars($orig[$orig_rows[$row]]);
+			else
+				$orig_line = '';
+
+			if ( isset( $final_diffs[$final_rows[$row]] ) )
+				$final_line = $final_diffs[$final_rows[$row]];
+			elseif ( isset( $final[$final_rows[$row]] ) )
+				$final_line = htmlspecialchars($final[$final_rows[$row]]);
+			else
+				$final_line = '';
+
+			if ( $orig_rows[$row] < 0 ) { // Orig is blank. This is really an added row.
+				$r .= $this->_added( array($final_line), false );
+			} elseif ( $final_rows[$row] < 0 ) { // Final is blank. This is really a deleted row.
+				$r .= $this->_deleted( array($orig_line), false );
+			} else { // A true changed row.
+				if ( $this->_show_split_view ) {
+					$r .= '<tr>' . $this->deletedLine( $orig_line ) . $this->emptyLine() . $this->addedLine( $final_line ) . "</tr>\n";
+				} else {
+					$r .= '<tr>' . $this->deletedLine( $orig_line ) . "</tr><tr>" . $this->addedLine( $final_line ) . "</tr>\n";
+				}
+			}
+		}
+
+		return $r;
+	}
+
+	/**
+	 * Takes changed blocks and matches which rows in orig turned into which rows in final.
+	 *
+	 * Returns
+	 *	*_matches ( which rows match with which )
+	 *	*_rows ( order of rows in each column interleaved with blank rows as
+	 *		necessary )
+	 *
+	 * @since 2.6.0
+	 *
+	 * @param array $orig
+	 * @param array $final
+	 * @return array
+	 */
+	public function interleave_changed_lines( $orig, $final ) {
+
+		// Contains all pairwise string comparisons. Keys are such that this need only be a one dimensional array.
+		$matches = array();
+		foreach ( array_keys($orig) as $o ) {
+			foreach ( array_keys($final) as $f ) {
+				$matches["$o,$f"] = $this->compute_string_distance( $orig[$o], $final[$f] );
+			}
+		}
+		asort($matches); // Order by string distance.
+
+		$orig_matches  = array();
+		$final_matches = array();
+
+		foreach ( $matches as $keys => $difference ) {
+			list($o, $f) = explode(',', $keys);
+			$o = (int) $o;
+			$f = (int) $f;
+
+			// Already have better matches for these guys
+			if ( isset($orig_matches[$o]) && isset($final_matches[$f]) )
+				continue;
+
+			// First match for these guys. Must be best match
+			if ( !isset($orig_matches[$o]) && !isset($final_matches[$f]) ) {
+				$orig_matches[$o] = $f;
+				$final_matches[$f] = $o;
+				continue;
+			}
+
+			// Best match of this final is already taken?  Must mean this final is a new row.
+			if ( isset($orig_matches[$o]) )
+				$final_matches[$f] = 'x';
+
+			// Best match of this orig is already taken?  Must mean this orig is a deleted row.
+			elseif ( isset($final_matches[$f]) )
+				$orig_matches[$o] = 'x';
+		}
+
+		// We read the text in this order
+		ksort($orig_matches);
+		ksort($final_matches);
+
+		// Stores rows and blanks for each column.
+		$orig_rows = $orig_rows_copy = array_keys($orig_matches);
+		$final_rows = array_keys($final_matches);
+
+		// Interleaves rows with blanks to keep matches aligned.
+		// We may end up with some extraneous blank rows, but we'll just ignore them later.
+		foreach ( $orig_rows_copy as $orig_row ) {
+			$final_pos = array_search($orig_matches[$orig_row], $final_rows, true);
+			$orig_pos = (int) array_search($orig_row, $orig_rows, true);
+
+			if ( false === $final_pos ) { // This orig is paired with a blank final.
+				array_splice( $final_rows, $orig_pos, 0, -1 );
+			} elseif ( $final_pos < $orig_pos ) { // This orig's match is up a ways. Pad final with blank rows.
+				$diff_pos = $final_pos - $orig_pos;
+				while ( $diff_pos < 0 )
+					array_splice( $final_rows, $orig_pos, 0, $diff_pos++ );
+			} elseif ( $final_pos > $orig_pos ) { // This orig's match is down a ways. Pad orig with blank rows.
+				$diff_pos = $orig_pos - $final_pos;
+				while ( $diff_pos < 0 )
+					array_splice( $orig_rows, $orig_pos, 0, $diff_pos++ );
+			}
+		}
+
+		// Pad the ends with blank rows if the columns aren't the same length
+		$diff_count = count($orig_rows) - count($final_rows);
+		if ( $diff_count < 0 ) {
+			while ( $diff_count < 0 )
+				array_push($orig_rows, $diff_count++);
+		} elseif ( $diff_count > 0 ) {
+			$diff_count = -1 * $diff_count;
+			while ( $diff_count < 0 )
+				array_push($final_rows, $diff_count++);
+		}
+
+		return array($orig_matches, $final_matches, $orig_rows, $final_rows);
+	}
+
+	/**
+	 * Computes a number that is intended to reflect the "distance" between two strings.
+	 *
+	 * @since 2.6.0
+	 *
+	 * @param string $string1
+	 * @param string $string2
+	 * @return int
+	 */
+	public function compute_string_distance( $string1, $string2 ) {
+		// Vectors containing character frequency for all chars in each string
+		$chars1 = count_chars($string1);
+		$chars2 = count_chars($string2);
+
+		// L1-norm of difference vector.
+		$difference = array_sum( array_map( array($this, 'difference'), $chars1, $chars2 ) );
+
+		// $string1 has zero length? Odd. Give huge penalty by not dividing.
+		if ( !$string1 )
+			return $difference;
+
+		// Return distance per character (of string1).
+		return $difference / strlen($string1);
+	}
+
+	/**
+	 * @ignore
+	 * @since 2.6.0
+	 *
+	 * @param int $a
+	 * @param int $b
+	 * @return int
+	 */
+	public function difference( $a, $b ) {
+		return abs( $a - $b );
+	}
+
+	/**
+	 * Make private properties readable for backward compatibility.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $name Property to get.
+	 * @return mixed Property.
+	 */
+	public function __get( $name ) {
+		if ( in_array( $name, $this->compat_fields ) ) {
+			return $this->$name;
+		}
+	}
+
+	/**
+	 * Make private properties settable for backward compatibility.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $name  Property to check if set.
+	 * @param mixed  $value Property value.
+	 * @return mixed Newly-set property.
+	 */
+	public function __set( $name, $value ) {
+		if ( in_array( $name, $this->compat_fields ) ) {
+			return $this->$name = $value;
+		}
+	}
+
+	/**
+	 * Make private properties checkable for backward compatibility.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $name Property to check if set.
+	 * @return bool Whether the property is set.
+	 */
+	public function __isset( $name ) {
+		if ( in_array( $name, $this->compat_fields ) ) {
+			return isset( $this->$name );
+		}
+	}
+
+	/**
+	 * Make private properties un-settable for backward compatibility.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 *
+	 * @param string $name Property to unset.
+	 */
+	public function __unset( $name ) {
+		if ( in_array( $name, $this->compat_fields ) ) {
+			unset( $this->$name );
+		}
+	}
+}
diff --git a/wp-includes/class-wp-theme.php b/wp-includes/class-wp-theme.php
index 40af39df4..f161a6318 100644
--- a/wp-includes/class-wp-theme.php
+++ b/wp-includes/class-wp-theme.php
@@ -48,15 +48,16 @@ final class WP_Theme implements ArrayAccess {
 	 * @var array
 	 */
 	private static $default_themes = array(
-		'classic'        => 'WordPress Classic',
-		'default'        => 'WordPress Default',
-		'twentyten'      => 'Twenty Ten',
-		'twentyeleven'   => 'Twenty Eleven',
-		'twentytwelve'   => 'Twenty Twelve',
-		'twentythirteen' => 'Twenty Thirteen',
-		'twentyfourteen' => 'Twenty Fourteen',
-		'twentyfifteen'  => 'Twenty Fifteen',
-		'twentysixteen'  => 'Twenty Sixteen',
+		'classic'         => 'WordPress Classic',
+		'default'         => 'WordPress Default',
+		'twentyten'       => 'Twenty Ten',
+		'twentyeleven'    => 'Twenty Eleven',
+		'twentytwelve'    => 'Twenty Twelve',
+		'twentythirteen'  => 'Twenty Thirteen',
+		'twentyfourteen'  => 'Twenty Fourteen',
+		'twentyfifteen'   => 'Twenty Fifteen',
+		'twentysixteen'   => 'Twenty Sixteen',
+		'twentyseventeen' => 'Twenty Seventeen',
 	);
 
 	/**
@@ -537,7 +538,7 @@ final class WP_Theme implements ArrayAccess {
 	 * @since 3.4.0
 	 * @access private
 	 *
-	 * @param string $key Type of data to store (theme, screenshot, headers, page_templates)
+	 * @param string $key Type of data to store (theme, screenshot, headers, post_templates)
 	 * @param string $data Data to store
 	 * @return bool Return value from wp_cache_add()
 	 */
@@ -553,7 +554,7 @@ final class WP_Theme implements ArrayAccess {
 	 * @since 3.4.0
 	 * @access private
 	 *
-	 * @param string $key Type of data to retrieve (theme, screenshot, headers, page_templates)
+	 * @param string $key Type of data to retrieve (theme, screenshot, headers, post_templates)
 	 * @return mixed Retrieved data
 	 */
 	private function cache_get( $key ) {
@@ -567,7 +568,7 @@ final class WP_Theme implements ArrayAccess {
 	 * @access public
 	 */
 	public function cache_delete() {
-		foreach ( array( 'theme', 'screenshot', 'headers', 'page_templates' ) as $key )
+		foreach ( array( 'theme', 'screenshot', 'headers', 'post_templates' ) as $key )
 			wp_cache_delete( $key . '-' . $this->cache_hash, 'themes' );
 		$this->template = $this->textdomain_loaded = $this->theme_root_uri = $this->parent = $this->errors = $this->headers_sanitized = $this->name_translated = null;
 		$this->headers = array();
@@ -1005,56 +1006,101 @@ final class WP_Theme implements ArrayAccess {
 	}
 
 	/**
-	 * Returns the theme's page templates.
+	 * Returns the theme's post templates.
 	 *
-	 * @since 3.4.0
+	 * @since 4.7.0
 	 * @access public
 	 *
-	 * @param WP_Post|null $post Optional. The post being edited, provided for context.
-	 * @return array Array of page templates, keyed by filename, with the value of the translated header name.
+	 * @return array Array of page templates, keyed by filename and post type,
+	 *               with the value of the translated header name.
 	 */
-	public function get_page_templates( $post = null ) {
+	public function get_post_templates() {
 		// If you screw up your current theme and we invalidate your parent, most things still work. Let it slide.
-		if ( $this->errors() && $this->errors()->get_error_codes() !== array( 'theme_parent_invalid' ) )
+		if ( $this->errors() && $this->errors()->get_error_codes() !== array( 'theme_parent_invalid' ) ) {
 			return array();
+		}
 
-		$page_templates = $this->cache_get( 'page_templates' );
+		$post_templates = $this->cache_get( 'post_templates' );
 
-		if ( ! is_array( $page_templates ) ) {
-			$page_templates = array();
+		if ( ! is_array( $post_templates ) ) {
+			$post_templates = array();
 
 			$files = (array) $this->get_files( 'php', 1 );
 
 			foreach ( $files as $file => $full_path ) {
-				if ( ! preg_match( '|Template Name:(.*)$|mi', file_get_contents( $full_path ), $header ) )
+				if ( ! preg_match( '|Template Name:(.*)$|mi', file_get_contents( $full_path ), $header ) ) {
 					continue;
-				$page_templates[ $file ] = _cleanup_header_comment( $header[1] );
+				}
+
+				$types = array( 'page' );
+				if ( preg_match( '|Template Post Type:(.*)$|mi', file_get_contents( $full_path ), $type ) ) {
+					$types = explode( ',', _cleanup_header_comment( $type[1] ) );
+				}
+
+				foreach ( $types as $type ) {
+					$type = sanitize_key( $type );
+					if ( ! isset( $post_templates[ $type ] ) ) {
+						$post_templates[ $type ] = array();
+					}
+
+					$post_templates[ $type ][ $file ] = _cleanup_header_comment( $header[1] );
+				}
 			}
 
-			$this->cache_add( 'page_templates', $page_templates );
+			$this->cache_add( 'post_templates', $post_templates );
 		}
 
 		if ( $this->load_textdomain() ) {
-			foreach ( $page_templates as &$page_template ) {
-				$page_template = $this->translate_header( 'Template Name', $page_template );
+			foreach ( $post_templates as &$post_type ) {
+				foreach ( $post_type as &$post_template ) {
+					$post_template = $this->translate_header( 'Template Name', $post_template );
+				}
 			}
 		}
 
-		if ( $this->parent() )
-			$page_templates += $this->parent()->get_page_templates( $post );
+		return $post_templates;
+	}
+
+	/**
+	 * Returns the theme's post templates for a given post type.
+	 *
+	 * @since 3.4.0
+	 * @since 4.7.0 Added the `$post_type` parameter.
+	 * @access public
+	 *
+	 * @param WP_Post|null $post      Optional. The post being edited, provided for context.
+	 * @param string       $post_type Optional. Post type to get the templates for. Default 'page'.
+	 *                                If a post is provided, its post type is used.
+	 * @return array Array of page templates, keyed by filename, with the value of the translated header name.
+	 */
+	public function get_page_templates( $post = null, $post_type = 'page' ) {
+		if ( $post ) {
+			$post_type = get_post_type( $post );
+		}
+
+		$post_templates = $this->get_post_templates();
+		$post_templates = isset( $post_templates[ $post_type ] ) ? $post_templates[ $post_type ] : array();
+
+		if ( $this->parent() ) {
+			$post_templates += $this->parent()->get_page_templates( $post, $post_type );
+		}
 
 		/**
 		 * Filters list of page templates for a theme.
 		 *
+		 * The dynamic portion of the hook name, `$post_type`, refers to the post type.
+		 *
 		 * @since 3.9.0
 		 * @since 4.4.0 Converted to allow complete control over the `$page_templates` array.
+		 * @since 4.7.0 Added the `$post_type` parameter.
 		 *
-		 * @param array        $page_templates Array of page templates. Keys are filenames,
+		 * @param array        $post_templates Array of page templates. Keys are filenames,
 		 *                                     values are translated names.
 		 * @param WP_Theme     $this           The theme object.
 		 * @param WP_Post|null $post           The post being edited, provided for context, or null.
+		 * @param string       $post_type      Post type to get the templates for.
 		 */
-		return (array) apply_filters( 'theme_page_templates', $page_templates, $this, $post );
+		return (array) apply_filters( "theme_{$post_type}_templates", $post_templates, $this, $post, $post_type );
 	}
 
 	/**
@@ -1395,7 +1441,7 @@ final class WP_Theme implements ArrayAccess {
 	 * @param array $themes Array of themes to sort, passed by reference.
 	 */
 	public static function sort_by_name( &$themes ) {
-		if ( 0 === strpos( get_locale(), 'en_' ) ) {
+		if ( 0 === strpos( get_user_locale(), 'en_' ) ) {
 			uasort( $themes, array( 'WP_Theme', '_name_sort' ) );
 		} else {
 			uasort( $themes, array( 'WP_Theme', '_name_sort_i18n' ) );
diff --git a/wp-includes/class-wp-user-meta-session-tokens.php b/wp-includes/class-wp-user-meta-session-tokens.php
new file mode 100644
index 000000000..a01ebff68
--- /dev/null
+++ b/wp-includes/class-wp-user-meta-session-tokens.php
@@ -0,0 +1,139 @@
+<?php
+/**
+ * Session API: WP_User_Meta_Session_Tokens class
+ *
+ * @package WordPress
+ * @subpackage Session
+ * @since 4.7.0
+ */
+
+/**
+ * Meta-based user sessions token manager.
+ *
+ * @since 4.0.0
+ */
+class WP_User_Meta_Session_Tokens extends WP_Session_Tokens {
+
+	/**
+	 * Get all sessions of a user.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @return array Sessions of a user.
+	 */
+	protected function get_sessions() {
+		$sessions = get_user_meta( $this->user_id, 'session_tokens', true );
+
+		if ( ! is_array( $sessions ) ) {
+			return array();
+		}
+
+		$sessions = array_map( array( $this, 'prepare_session' ), $sessions );
+		return array_filter( $sessions, array( $this, 'is_still_valid' ) );
+	}
+
+	/**
+	 * Converts an expiration to an array of session information.
+	 *
+	 * @param mixed $session Session or expiration.
+	 * @return array Session.
+	 */
+	protected function prepare_session( $session ) {
+		if ( is_int( $session ) ) {
+			return array( 'expiration' => $session );
+		}
+
+		return $session;
+	}
+
+	/**
+	 * Retrieve a session by its verifier (token hash).
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param string $verifier Verifier of the session to retrieve.
+	 * @return array|null The session, or null if it does not exist
+	 */
+	protected function get_session( $verifier ) {
+		$sessions = $this->get_sessions();
+
+		if ( isset( $sessions[ $verifier ] ) ) {
+			return $sessions[ $verifier ];
+		}
+
+		return null;
+	}
+
+	/**
+	 * Update a session by its verifier.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param string $verifier Verifier of the session to update.
+	 * @param array  $session  Optional. Session. Omitting this argument destroys the session.
+	 */
+	protected function update_session( $verifier, $session = null ) {
+		$sessions = $this->get_sessions();
+
+		if ( $session ) {
+			$sessions[ $verifier ] = $session;
+		} else {
+			unset( $sessions[ $verifier ] );
+		}
+
+		$this->update_sessions( $sessions );
+	}
+
+	/**
+	 * Update a user's sessions in the usermeta table.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param array $sessions Sessions.
+	 */
+	protected function update_sessions( $sessions ) {
+		if ( $sessions ) {
+			update_user_meta( $this->user_id, 'session_tokens', $sessions );
+		} else {
+			delete_user_meta( $this->user_id, 'session_tokens' );
+		}
+	}
+
+	/**
+	 * Destroy all session tokens for a user, except a single session passed.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 *
+	 * @param string $verifier Verifier of the session to keep.
+	 */
+	protected function destroy_other_sessions( $verifier ) {
+		$session = $this->get_session( $verifier );
+		$this->update_sessions( array( $verifier => $session ) );
+	}
+
+	/**
+	 * Destroy all session tokens for a user.
+	 *
+	 * @since 4.0.0
+	 * @access protected
+	 */
+	protected function destroy_all_sessions() {
+		$this->update_sessions( array() );
+	}
+
+	/**
+	 * Destroy all session tokens for all users.
+	 *
+	 * @since 4.0.0
+	 * @access public
+	 * @static
+	 */
+	public static function drop_sessions() {
+		delete_metadata( 'user', 0, 'session_tokens', false, true );
+	}
+}
diff --git a/wp-includes/class-wp-user-query.php b/wp-includes/class-wp-user-query.php
index 84cdcf6b2..0c3e10527 100644
--- a/wp-includes/class-wp-user-query.php
+++ b/wp-includes/class-wp-user-query.php
@@ -95,7 +95,7 @@ class WP_User_Query {
 	 */
 	public static function fill_query_vars( $args ) {
 		$defaults = array(
-			'blog_id' => $GLOBALS['blog_id'],
+			'blog_id' => get_current_blog_id(),
 			'role' => '',
 			'role__in' => array(),
 			'role__not_in' => array(),
@@ -115,6 +115,12 @@ class WP_User_Query {
 			'fields' => 'all',
 			'who' => '',
 			'has_published_posts' => null,
+			'nicename' => '',
+			'nicename__in' => array(),
+			'nicename__not_in' => array(),
+			'login' => '',
+			'login__in' => array(),
+			'login__not_in' => array()
 		);
 
 		return wp_parse_args( $args, $defaults );
@@ -131,6 +137,8 @@ class WP_User_Query {
 	 * @since 4.4.0 Added 'paged', 'role__in', and 'role__not_in' parameters. The 'role' parameter was updated to
 	 *              permit an array or comma-separated list of values. The 'number' parameter was updated to support
 	 *              querying for all users with using -1.
+	 * @since 4.7.0 Added 'nicename', 'nicename__in', 'nicename__not_in', 'login', 'login__in',
+	 *              and 'login__not_in' parameters.
 	 *
 	 * @access public
 	 *
@@ -165,12 +173,12 @@ class WP_User_Query {
 	 *                                             an array of values, or a multi-dimensional array with fields as
 	 *                                             keys and orders ('ASC' or 'DESC') as values. Accepted values are
 	 *                                             'ID', 'display_name' (or 'name'), 'include', 'user_login'
-	 *                                             (or 'login'), 'user_nicename' (or 'nicename'), 'user_email'
-	 *                                             (or 'email'), 'user_url' (or 'url'), 'user_registered'
-	 *                                             or 'registered'), 'post_count', 'meta_value', 'meta_value_num',
-	 *                                             the value of `$meta_key`, or an array key of `$meta_query`. To use
-	 *                                             'meta_value' or 'meta_value_num', `$meta_key` must be also be
-	 *                                             defined. Default 'user_login'.
+	 *                                             (or 'login'), 'login__in', 'user_nicename' (or 'nicename'),
+	 *                                             'nicename__in', 'user_email (or 'email'), 'user_url' (or 'url'),
+	 *                                             'user_registered' (or 'registered'), 'post_count', 'meta_value',
+	 *                                             'meta_value_num', the value of `$meta_key`, or an array key of
+	 *                                             `$meta_query`. To use 'meta_value' or 'meta_value_num', `$meta_key`
+	 *                                             must be also be defined. Default 'user_login'.
 	 *     @type string       $order               Designates ascending or descending order of users. Order values
 	 *                                             passed as part of an `$orderby` array take precedence over this
 	 *                                             parameter. Accepts 'ASC', 'DESC'. Default 'ASC'.
@@ -195,6 +203,16 @@ class WP_User_Query {
 	 *     @type bool|array   $has_published_posts Pass an array of post types to filter results to users who have
 	 *                                             published posts in those post types. `true` is an alias for all
 	 *                                             public post types.
+	 *     @type string       $nicename            The user nicename. Default empty.
+	 *     @type array        $nicename__in        An array of nicenames to include. Users matching one of these
+	 *                                             nicenames will be included in results. Default empty array.
+	 *     @type array        $nicename__not_in    An array of nicenames to exclude. Users matching one of these
+	 *                                             nicenames will not be included in results. Default empty array.
+	 *     @type string       $login               The user login. Default empty.
+	 *     @type array        $login__in           An array of logins to include. Users matching one of these
+	 *                                             logins will be included in results. Default empty array.
+	 *     @type array        $login__not_in       An array of logins to exclude. Users matching one of these
+	 *                                             logins will not be included in results. Default empty array.
 	 * }
 	 */
 	public function prepare_query( $query = array() ) {
@@ -270,6 +288,40 @@ class WP_User_Query {
 			$this->query_where .= " AND $wpdb->users.ID IN ( SELECT DISTINCT $posts_table.post_author FROM $posts_table WHERE $posts_table.post_status = 'publish' AND $posts_table.post_type IN ( " . join( ", ", $post_types ) . " ) )";
 		}
 
+		// nicename
+		if ( '' !== $qv['nicename']) {
+			$this->query_where .= $wpdb->prepare( ' AND user_nicename = %s', $qv['nicename'] );
+		}
+
+		if ( ! empty( $qv['nicename__in'] ) ) {
+			$sanitized_nicename__in = array_map( 'esc_sql', $qv['nicename__in'] );
+			$nicename__in = implode( "','", $sanitized_nicename__in );
+			$this->query_where .= " AND user_nicename IN ( '$nicename__in' )";
+		}
+
+		if ( ! empty( $qv['nicename__not_in'] ) ) {
+			$sanitized_nicename__not_in = array_map( 'esc_sql', $qv['nicename__not_in'] );
+			$nicename__not_in = implode( "','", $sanitized_nicename__not_in );
+			$this->query_where .= " AND user_nicename NOT IN ( '$nicename__not_in' )";
+		}
+
+		// login
+		if ( '' !== $qv['login']) {
+			$this->query_where .= $wpdb->prepare( ' AND user_login = %s', $qv['login'] );
+		}
+
+		if ( ! empty( $qv['login__in'] ) ) {
+			$sanitized_login__in = array_map( 'esc_sql', $qv['login__in'] );
+			$login__in = implode( "','", $sanitized_login__in );
+			$this->query_where .= " AND user_login IN ( '$login__in' )";
+		}
+
+		if ( ! empty( $qv['login__not_in'] ) ) {
+			$sanitized_login__not_in = array_map( 'esc_sql', $qv['login__not_in'] );
+			$login__not_in = implode( "','", $sanitized_login__not_in );
+			$this->query_where .= " AND user_login NOT IN ( '$login__not_in' )";
+		}
+
 		// Meta query.
 		$this->meta_query = new WP_Meta_Query();
 		$this->meta_query->parse_query_vars( $qv );
@@ -428,7 +480,11 @@ class WP_User_Query {
 				continue;
 			}
 
-			$orderby_array[] = $parsed . ' ' . $this->parse_order( $_order );
+			if ( 'nicename__in' === $_orderby || 'login__in' === $_orderby ) {
+				$orderby_array[] = $parsed;
+			} else {
+				$orderby_array[] = $parsed . ' ' . $this->parse_order( $_order );
+			}
 		}
 
 		// If no valid clauses were found, order by user_login.
@@ -706,6 +762,14 @@ class WP_User_Query {
 			$include = wp_parse_id_list( $this->query_vars['include'] );
 			$include_sql = implode( ',', $include );
 			$_orderby = "FIELD( $wpdb->users.ID, $include_sql )";
+		} elseif ( 'nicename__in' === $orderby ) {
+			$sanitized_nicename__in = array_map( 'esc_sql', $this->query_vars['nicename__in'] );
+			$nicename__in = implode( "','", $sanitized_nicename__in );
+			$_orderby = "FIELD( user_nicename, '$nicename__in' )";
+		} elseif ( 'login__in' === $orderby ) {
+			$sanitized_login__in = array_map( 'esc_sql', $this->query_vars['login__in'] );
+			$login__in = implode( "','", $sanitized_login__in );
+			$_orderby = "FIELD( user_login, '$login__in' )";
 		} elseif ( isset( $meta_query_clauses[ $orderby ] ) ) {
 			$meta_clause = $meta_query_clauses[ $orderby ];
 			$_orderby = sprintf( "CAST(%s.meta_value AS %s)", esc_sql( $meta_clause['alias'] ), esc_sql( $meta_clause['cast'] ) );
diff --git a/wp-includes/class-wp-user.php b/wp-includes/class-wp-user.php
index 0f5ee1054..328fb6a52 100644
--- a/wp-includes/class-wp-user.php
+++ b/wp-includes/class-wp-user.php
@@ -27,9 +27,11 @@
  * @property string $user_registered
  * @property string $user_activation_key
  * @property string $user_status
+ * @property int    $user_level
  * @property string $display_name
  * @property string $spam
  * @property string $deleted
+ * @property string $locale
  */
 class WP_User {
 	/**
diff --git a/wp-includes/class-wp-widget.php b/wp-includes/class-wp-widget.php
index 44f3686dd..b69b219cd 100644
--- a/wp-includes/class-wp-widget.php
+++ b/wp-includes/class-wp-widget.php
@@ -10,7 +10,7 @@
 /**
  * Core base class extended to register widgets.
  *
- * This class must be extended for each widget, and WP_Widget::widget() must be overriden.
+ * This class must be extended for each widget, and WP_Widget::widget() must be overridden.
  *
  * If adding widget options, WP_Widget::update() and WP_Widget::form() should also be overridden.
  *
@@ -37,6 +37,24 @@ class WP_Widget {
 	 */
 	public $name;
 
+	/**
+	 * Option name for this widget type.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 * @var string
+	 */
+	public $option_name;
+
+	/**
+	 * Alt option name for this widget type.
+	 *
+	 * @since 2.8.0
+	 * @access public
+	 * @var string
+	 */
+	public $alt_option_name;
+
 	/**
 	 * Option array passed to wp_register_sidebar_widget().
 	 *
@@ -86,7 +104,7 @@ class WP_Widget {
 	public $updated = false;
 
 	//
-	// Member functions that must be overriden by subclasses.
+	// Member functions that must be overridden by subclasses.
 	//
 
 	/**
diff --git a/wp-includes/class-wp-xmlrpc-server.php b/wp-includes/class-wp-xmlrpc-server.php
index be2d3edb7..5084da65c 100644
--- a/wp-includes/class-wp-xmlrpc-server.php
+++ b/wp-includes/class-wp-xmlrpc-server.php
@@ -404,12 +404,8 @@ class wp_xmlrpc_server extends IXR_Server {
 	 * Passes property through {@see 'xmlrpc_blog_options'} filter.
 	 *
 	 * @since 2.6.0
-	 *
-	 * @global string $wp_version
 	 */
 	public function initialise_blog_option_info() {
-		global $wp_version;
-
 		$this->blog_options = array(
 			// Read only options
 			'software_name'     => array(
@@ -420,7 +416,7 @@ class wp_xmlrpc_server extends IXR_Server {
 			'software_version'  => array(
 				'desc'          => __( 'Software Version' ),
 				'readonly'      => true,
-				'value'         => $wp_version
+				'value'         => get_bloginfo( 'version' )
 			),
 			'blog_url'          => array(
 				'desc'          => __( 'WordPress Address (URL)' ),
@@ -591,6 +587,10 @@ class wp_xmlrpc_server extends IXR_Server {
 	 *  - 'xmlrpc' - url of xmlrpc endpoint
 	 */
 	public function wp_getUsersBlogs( $args ) {
+		if ( ! $this->minimum_args( $args, 2 ) ) {
+			return $this->error;
+		}
+
 		// If this isn't on WPMU then just use blogger_getUsersBlogs
 		if ( !is_multisite() ) {
 			array_unshift( $args, 1 );
@@ -628,7 +628,7 @@ class wp_xmlrpc_server extends IXR_Server {
 
 		foreach ( $blogs as $blog ) {
 			// Don't include blogs that aren't hosted at this site.
-			if ( $blog->site_id != get_current_site()->id )
+			if ( $blog->site_id != get_current_network_id() )
 				continue;
 
 			$blog_id = $blog->userblog_id;
@@ -708,9 +708,9 @@ class wp_xmlrpc_server extends IXR_Server {
 		 *
 		 * @since 3.4.0
 		 *
-		 * @param array  $_taxonomy An array of taxonomy data.
-		 * @param object $taxonomy  Taxonomy object.
-		 * @param array  $fields    The subset of taxonomy fields to return.
+		 * @param array       $_taxonomy An array of taxonomy data.
+		 * @param WP_Taxonomy $taxonomy  Taxonomy object.
+		 * @param array       $fields    The subset of taxonomy fields to return.
 		 */
 		return apply_filters( 'xmlrpc_prepare_taxonomy', $_taxonomy, $taxonomy, $fields );
 	}
@@ -1270,7 +1270,7 @@ class wp_xmlrpc_server extends IXR_Server {
 			}
 		} elseif ( isset( $post_data['sticky'] ) )  {
 			if ( ! current_user_can( $post_type->cap->edit_others_posts ) ) {
-				return new IXR_Error( 401, __( 'Sorry, you are not allowed to stick this post.' ) );
+				return new IXR_Error( 401, __( 'Sorry, you are not allowed to make posts sticky.' ) );
 			}
 
 			$sticky = wp_validate_boolean( $post_data['sticky'] );
@@ -1324,12 +1324,12 @@ class wp_xmlrpc_server extends IXR_Server {
 				break;
 			case 'private':
 				if ( ! current_user_can( $post_type->cap->publish_posts ) )
-					return new IXR_Error( 401, __( 'Sorry, you are not allowed to create private posts in this post type' ) );
+					return new IXR_Error( 401, __( 'Sorry, you are not allowed to create private posts in this post type.' ) );
 				break;
 			case 'publish':
 			case 'future':
 				if ( ! current_user_can( $post_type->cap->publish_posts ) )
-					return new IXR_Error( 401, __( 'Sorry, you are not allowed to publish posts in this post type' ) );
+					return new IXR_Error( 401, __( 'Sorry, you are not allowed to publish posts in this post type.' ) );
 				break;
 			default:
 				if ( ! get_post_status_object( $post_data['post_status'] ) )
@@ -1338,7 +1338,7 @@ class wp_xmlrpc_server extends IXR_Server {
 		}
 
 		if ( ! empty( $post_data['post_password'] ) && ! current_user_can( $post_type->cap->publish_posts ) )
-			return new IXR_Error( 401, __( 'Sorry, you are not allowed to create password protected posts in this post type' ) );
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to create password protected posts in this post type.' ) );
 
 		$post_data['post_author'] = absint( $post_data['post_author'] );
 		if ( ! empty( $post_data['post_author'] ) && $post_data['post_author'] != $user->ID ) {
@@ -1523,7 +1523,7 @@ class wp_xmlrpc_server extends IXR_Server {
 			return new IXR_Error( 500, $post_ID->get_error_message() );
 
 		if ( ! $post_ID )
-			return new IXR_Error( 401, __( 'Sorry, your entry could not be posted. Something wrong happened.' ) );
+			return new IXR_Error( 401, __( 'Sorry, your entry could not be posted.' ) );
 
 		return strval( $post_ID );
 	}
@@ -1789,13 +1789,13 @@ class wp_xmlrpc_server extends IXR_Server {
 		if ( isset( $filter['post_type'] ) ) {
 			$post_type = get_post_type_object( $filter['post_type'] );
 			if ( ! ( (bool) $post_type ) )
-				return new IXR_Error( 403, __( 'The post type specified is not valid' ) );
+				return new IXR_Error( 403, __( 'Invalid post type.' ) );
 		} else {
 			$post_type = get_post_type_object( 'post' );
 		}
 
 		if ( ! current_user_can( $post_type->cap->edit_posts ) )
-			return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit posts in this post type.' ));
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit posts in this post type.' ) );
 
 		$query['post_type'] = $post_type->name;
 
@@ -1877,8 +1877,9 @@ class wp_xmlrpc_server extends IXR_Server {
 
 		$taxonomy = get_taxonomy( $content_struct['taxonomy'] );
 
-		if ( ! current_user_can( $taxonomy->cap->manage_terms ) )
+		if ( ! current_user_can( $taxonomy->cap->edit_terms ) ) {
 			return new IXR_Error( 401, __( 'Sorry, you are not allowed to create terms in this taxonomy.' ) );
+		}
 
 		$taxonomy = (array) $taxonomy;
 
@@ -1917,7 +1918,7 @@ class wp_xmlrpc_server extends IXR_Server {
 			return new IXR_Error( 500, $term->get_error_message() );
 
 		if ( ! $term )
-			return new IXR_Error( 500, __( 'Sorry, your term could not be created. Something wrong happened.' ) );
+			return new IXR_Error( 500, __( 'Sorry, your term could not be created.' ) );
 
 		return strval( $term['term_id'] );
 	}
@@ -1964,9 +1965,6 @@ class wp_xmlrpc_server extends IXR_Server {
 
 		$taxonomy = get_taxonomy( $content_struct['taxonomy'] );
 
-		if ( ! current_user_can( $taxonomy->cap->edit_terms ) )
-			return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit terms in this taxonomy.' ) );
-
 		$taxonomy = (array) $taxonomy;
 
 		// hold the data of the term
@@ -1980,6 +1978,10 @@ class wp_xmlrpc_server extends IXR_Server {
 		if ( ! $term )
 			return new IXR_Error( 404, __( 'Invalid term ID.' ) );
 
+		if ( ! current_user_can( 'edit_term', $term_id ) ) {
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit this term.' ) );
+		}
+
 		if ( isset( $content_struct['name'] ) ) {
 			$term_data['name'] = trim( $content_struct['name'] );
 
@@ -2059,10 +2061,6 @@ class wp_xmlrpc_server extends IXR_Server {
 			return new IXR_Error( 403, __( 'Invalid taxonomy.' ) );
 
 		$taxonomy = get_taxonomy( $taxonomy );
-
-		if ( ! current_user_can( $taxonomy->cap->delete_terms ) )
-			return new IXR_Error( 401, __( 'Sorry, you are not allowed to delete terms in this taxonomy.' ) );
-
 		$term = get_term( $term_id, $taxonomy->name );
 
 		if ( is_wp_error( $term ) )
@@ -2071,6 +2069,10 @@ class wp_xmlrpc_server extends IXR_Server {
 		if ( ! $term )
 			return new IXR_Error( 404, __( 'Invalid term ID.' ) );
 
+		if ( ! current_user_can( 'delete_term', $term_id ) ) {
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to delete this term.' ) );
+		}
+
 		$result = wp_delete_term( $term_id, $taxonomy->name );
 
 		if ( is_wp_error( $result ) )
@@ -2131,9 +2133,6 @@ class wp_xmlrpc_server extends IXR_Server {
 
 		$taxonomy = get_taxonomy( $taxonomy );
 
-		if ( ! current_user_can( $taxonomy->cap->assign_terms ) )
-			return new IXR_Error( 401, __( 'Sorry, you are not allowed to assign terms in this taxonomy.' ) );
-
 		$term = get_term( $term_id , $taxonomy->name, ARRAY_A );
 
 		if ( is_wp_error( $term ) )
@@ -2142,6 +2141,10 @@ class wp_xmlrpc_server extends IXR_Server {
 		if ( ! $term )
 			return new IXR_Error( 404, __( 'Invalid term ID.' ) );
 
+		if ( ! current_user_can( 'assign_term', $term_id ) ) {
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to assign this term.' ) );
+		}
+
 		return $this->_prepare_term( $term );
 	}
 
@@ -2473,7 +2476,7 @@ class wp_xmlrpc_server extends IXR_Server {
 		do_action( 'xmlrpc_call', 'wp.getUsers' );
 
 		if ( ! current_user_can( 'list_users' ) )
-			return new IXR_Error( 401, __( 'Sorry, you are not allowed to browse users.' ) );
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to list users.' ) );
 
 		$query = array( 'fields' => 'all_with_meta' );
 
@@ -2489,7 +2492,7 @@ class wp_xmlrpc_server extends IXR_Server {
 
 		if ( isset( $filter['role'] ) ) {
 			if ( get_role( $filter['role'] ) === null )
-				return new IXR_Error( 403, __( 'The role specified is not valid' ) );
+				return new IXR_Error( 403, __( 'Invalid role.' ) );
 
 			$query['role'] = $filter['role'];
 		}
@@ -3471,7 +3474,7 @@ class wp_xmlrpc_server extends IXR_Server {
 			return new IXR_Error(500, $result->get_error_message());
 
 		if ( !$result )
-			return new IXR_Error(500, __('Sorry, the comment could not be edited. Something wrong happened.'));
+			return new IXR_Error(500, __('Sorry, the comment could not be edited.'));
 
 		/**
 		 * Fires after a comment has been successfully updated via XML-RPC.
@@ -3525,7 +3528,7 @@ class wp_xmlrpc_server extends IXR_Server {
 		if ( !$user ) {
 			$logged_in = false;
 			if ( $allow_anon && get_option('comment_registration') ) {
-				return new IXR_Error( 403, __( 'You must be registered to comment' ) );
+				return new IXR_Error( 403, __( 'You must be registered to comment.' ) );
 			} elseif ( ! $allow_anon ) {
 				return $this->error;
 			}
@@ -3550,8 +3553,14 @@ class wp_xmlrpc_server extends IXR_Server {
 			return new IXR_Error( 403, __( 'Sorry, comments are closed for this item.' ) );
 		}
 
-		$comment = array();
-		$comment['comment_post_ID'] = $post_id;
+		if ( empty( $content_struct['content'] ) ) {
+			return new IXR_Error( 403, __( 'Comment is required.' ) );
+		}
+
+		$comment = array(
+			'comment_post_ID' => $post_id,
+			'comment_content' => $content_struct['content'],
+		);
 
 		if ( $logged_in ) {
 			$display_name = $user->display_name;
@@ -3579,20 +3588,25 @@ class wp_xmlrpc_server extends IXR_Server {
 
 			if ( get_option('require_name_email') ) {
 				if ( 6 > strlen($comment['comment_author_email']) || '' == $comment['comment_author'] )
-					return new IXR_Error( 403, __( 'Comment author name and email are required' ) );
+					return new IXR_Error( 403, __( 'Comment author name and email are required.' ) );
 				elseif ( !is_email($comment['comment_author_email']) )
-					return new IXR_Error( 403, __( 'A valid email address is required' ) );
+					return new IXR_Error( 403, __( 'A valid email address is required.' ) );
 			}
 		}
 
 		$comment['comment_parent'] = isset($content_struct['comment_parent']) ? absint($content_struct['comment_parent']) : 0;
 
-		$comment['comment_content'] =  isset($content_struct['content']) ? $content_struct['content'] : null;
-
 		/** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
 		do_action( 'xmlrpc_call', 'wp.newComment' );
 
-		$comment_ID = wp_new_comment( $comment );
+		$comment_ID = wp_new_comment( $comment, true );
+		if ( is_wp_error( $comment_ID ) ) {
+			return new IXR_Error( 403, $comment_ID->get_error_message() );
+		}
+
+		if ( ! $comment_ID ) {
+			return new IXR_Error( 403, __( 'An unknown error occurred' ) );
+		}
 
 		/**
 		 * Fires after a new comment has been successfully created via XML-RPC.
@@ -4103,7 +4117,7 @@ class wp_xmlrpc_server extends IXR_Server {
 		$post_type = get_post_type_object( $post_type_name );
 
 		if ( ! current_user_can( $post_type->cap->edit_posts ) )
-			return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit this post type.' ) );
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit posts in this post type.' ) );
 
 		return $this->_prepare_post_type( $post_type, $fields );
 	}
@@ -4321,8 +4335,13 @@ class wp_xmlrpc_server extends IXR_Server {
 	 * @return array|IXR_Error
 	 */
 	public function blogger_getUsersBlogs($args) {
-		if ( is_multisite() )
+		if ( ! $this->minimum_args( $args, 3 ) ) {
+			return $this->error;
+		}
+
+		if ( is_multisite() ) {
 			return $this->_multisite_getUsersBlogs($args);
+		}
 
 		$this->escape($args);
 
@@ -4363,7 +4382,7 @@ class wp_xmlrpc_server extends IXR_Server {
 	 * @return array|IXR_Error
 	 */
 	protected function _multisite_getUsersBlogs( $args ) {
-		$current_blog = get_blog_details();
+		$current_blog = get_site();
 
 		$domain = $current_blog->domain;
 		$path = $current_blog->path . 'xmlrpc.php';
@@ -4625,7 +4644,7 @@ class wp_xmlrpc_server extends IXR_Server {
 			return new IXR_Error(500, $post_ID->get_error_message());
 
 		if ( !$post_ID )
-			return new IXR_Error(500, __('Sorry, your entry could not be posted. Something wrong happened.'));
+			return new IXR_Error(500, __('Sorry, your entry could not be posted.'));
 
 		$this->attach_uploads( $post_ID, $post_content );
 
@@ -4879,7 +4898,7 @@ class wp_xmlrpc_server extends IXR_Server {
 		if ( isset( $content_struct['wp_post_format'] ) ) {
 			$content_struct['wp_post_format'] = sanitize_key( $content_struct['wp_post_format'] );
 			if ( !array_key_exists( $content_struct['wp_post_format'], get_post_format_strings() ) ) {
-				return new IXR_Error( 404, __( 'Invalid post format' ) );
+				return new IXR_Error( 404, __( 'Invalid post format.' ) );
 			}
 		}
 
@@ -5084,7 +5103,7 @@ class wp_xmlrpc_server extends IXR_Server {
 			return new IXR_Error(500, $post_ID->get_error_message());
 
 		if ( !$post_ID )
-			return new IXR_Error(500, __('Sorry, your entry could not be posted. Something wrong happened.'));
+			return new IXR_Error(500, __('Sorry, your entry could not be posted.'));
 
 		/**
 		 * Fires after a new post has been successfully created via the XML-RPC MovableType API.
@@ -5203,7 +5222,7 @@ class wp_xmlrpc_server extends IXR_Server {
 		if ( isset( $content_struct['wp_post_format'] ) ) {
 			$content_struct['wp_post_format'] = sanitize_key( $content_struct['wp_post_format'] );
 			if ( !array_key_exists( $content_struct['wp_post_format'], get_post_format_strings() ) ) {
-				return new IXR_Error( 404, __( 'Invalid post format' ) );
+				return new IXR_Error( 404, __( 'Invalid post format.' ) );
 			}
 		}
 
@@ -5405,7 +5424,7 @@ class wp_xmlrpc_server extends IXR_Server {
 			return new IXR_Error(500, $result->get_error_message());
 
 		if ( !$result )
-			return new IXR_Error(500, __('Sorry, your entry could not be edited. Something wrong happened.'));
+			return new IXR_Error(500, __('Sorry, your entry could not be edited.'));
 
 		// Only posts can be sticky
 		if ( $post_type == 'post' && isset( $content_struct['sticky'] ) ) {
@@ -5818,8 +5837,9 @@ class wp_xmlrpc_server extends IXR_Server {
 
 		$upload = wp_upload_bits($name, null, $bits);
 		if ( ! empty($upload['error']) ) {
-			$errorString = sprintf(__('Could not write file %1$s (%2$s)'), $name, $upload['error']);
-			return new IXR_Error(500, $errorString);
+			/* translators: 1: file name, 2: error message */
+			$errorString = sprintf( __( 'Could not write file %1$s (%2$s).' ), $name, $upload['error'] );
+			return new IXR_Error( 500, $errorString );
 		}
 		// Construct the attachment array
 		$post_id = 0;
@@ -6192,9 +6212,6 @@ class wp_xmlrpc_server extends IXR_Server {
 	 *
 	 * @since 1.5.0
 	 *
-	 * @global wpdb $wpdb WordPress database abstraction object.
-	 * @global string $wp_version
-	 *
 	 * @param array  $args {
 	 *     Method arguments. Note: arguments must be ordered as documented.
 	 *
@@ -6204,7 +6221,7 @@ class wp_xmlrpc_server extends IXR_Server {
 	 * @return string|IXR_Error
 	 */
 	public function pingback_ping( $args ) {
-		global $wpdb, $wp_version;
+		global $wpdb;
 
 		/** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
 		do_action( 'xmlrpc_call', 'pingback.ping' );
@@ -6292,7 +6309,7 @@ class wp_xmlrpc_server extends IXR_Server {
 		$remote_ip = preg_replace( '/[^0-9a-fA-F:., ]/', '', $_SERVER['REMOTE_ADDR'] );
 
 		/** This filter is documented in wp-includes/class-http.php */
-		$user_agent = apply_filters( 'http_headers_useragent', 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ) );
+		$user_agent = apply_filters( 'http_headers_useragent', 'WordPress/' . get_bloginfo( 'version' ) . '; ' . get_bloginfo( 'url' ) );
 
 		// Let's check the remote site
 		$http_api_args = array(
@@ -6328,9 +6345,10 @@ class wp_xmlrpc_server extends IXR_Server {
 		$remote_source = preg_replace( "/<\/*(h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body)[^>]*>/", "\n\n", $remote_source );
 
 		preg_match( '|<title>([^<]*?)</title>|is', $remote_source, $matchtitle );
-		$title = $matchtitle[1];
-		if ( empty( $title ) )
-			return $this->pingback_error( 32, __('We cannot find a title on that page.' ) );
+		$title = isset( $matchtitle[1] ) ? $matchtitle[1] : '';
+		if ( empty( $title ) ) {
+			return $this->pingback_error( 32, __( 'We cannot find a title on that page.' ) );
+		}
 
 		$remote_source = strip_tags( $remote_source, '<a>' ); // just keep the tag we need
 
@@ -6398,7 +6416,8 @@ class wp_xmlrpc_server extends IXR_Server {
 		 */
 		do_action( 'pingback_post', $comment_ID );
 
-		return sprintf(__('Pingback from %1$s to %2$s registered. Keep the web talking! :-)'), $pagelinkedfrom, $pagelinkedto);
+		/* translators: 1: URL of the page linked from, 2: URL of the page linked to */
+		return sprintf( __( 'Pingback from %1$s to %2$s registered. Keep the web talking! :-)' ), $pagelinkedfrom, $pagelinkedto );
 	}
 
 	/**
diff --git a/wp-includes/class-wp.php b/wp-includes/class-wp.php
index 4a9718364..c62d79082 100644
--- a/wp-includes/class-wp.php
+++ b/wp-includes/class-wp.php
@@ -26,7 +26,7 @@ class WP {
 	 * @access public
 	 * @var array
 	 */
-	public $private_query_vars = array( 'offset', 'posts_per_page', 'posts_per_archive_page', 'showposts', 'nopaging', 'post_type', 'post_status', 'category__in', 'category__not_in', 'category__and', 'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and', 'tag_id', 'post_mime_type', 'perm', 'comments_per_page', 'post__in', 'post__not_in', 'post_parent', 'post_parent__in', 'post_parent__not_in', 'title' );
+	public $private_query_vars = array( 'offset', 'posts_per_page', 'posts_per_archive_page', 'showposts', 'nopaging', 'post_type', 'post_status', 'category__in', 'category__not_in', 'category__and', 'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and', 'tag_id', 'post_mime_type', 'perm', 'comments_per_page', 'post__in', 'post__not_in', 'post_parent', 'post_parent__in', 'post_parent__not_in', 'title', 'fields' );
 
 	/**
 	 * Extra query variables set by the user.
@@ -422,22 +422,30 @@ class WP {
 			}
 			$headers['Content-Type'] = feed_content_type( $type ) . '; charset=' . get_option( 'blog_charset' );
 
-			// We're showing a feed, so WP is indeed the only thing that last changed
-			if ( !empty($this->query_vars['withcomments'])
-				|| false !== strpos( $this->query_vars['feed'], 'comments-' )
-				|| ( empty($this->query_vars['withoutcomments'])
-					&& ( !empty($this->query_vars['p'])
-						|| !empty($this->query_vars['name'])
-						|| !empty($this->query_vars['page_id'])
-						|| !empty($this->query_vars['pagename'])
-						|| !empty($this->query_vars['attachment'])
-						|| !empty($this->query_vars['attachment_id'])
-					)
-				)
-			)
-				$wp_last_modified = mysql2date('D, d M Y H:i:s', get_lastcommentmodified('GMT'), 0).' GMT';
-			else
-				$wp_last_modified = mysql2date('D, d M Y H:i:s', get_lastpostmodified('GMT'), 0).' GMT';
+			// We're showing a feed, so WP is indeed the only thing that last changed.
+			if ( ! empty( $this->query_vars['withcomments'] )
+			     || false !== strpos( $this->query_vars['feed'], 'comments-' )
+			     || ( empty( $this->query_vars['withoutcomments'] )
+			          && ( ! empty( $this->query_vars['p'] )
+			               || ! empty( $this->query_vars['name'] )
+			               || ! empty( $this->query_vars['page_id'] )
+			               || ! empty( $this->query_vars['pagename'] )
+			               || ! empty( $this->query_vars['attachment'] )
+			               || ! empty( $this->query_vars['attachment_id'] )
+			          )
+			     )
+			) {
+				$wp_last_modified = mysql2date( 'D, d M Y H:i:s', get_lastcommentmodified( 'GMT' ), false );
+			} else {
+				$wp_last_modified = mysql2date( 'D, d M Y H:i:s', get_lastpostmodified( 'GMT' ), false );
+			}
+
+			if ( ! $wp_last_modified ) {
+				$wp_last_modified = date( 'D, d M Y H:i:s' );
+			}
+
+			$wp_last_modified .= ' GMT';
+
 			$wp_etag = '"' . md5($wp_last_modified) . '"';
 			$headers['Last-Modified'] = $wp_last_modified;
 			$headers['ETag'] = $wp_etag;
@@ -662,7 +670,7 @@ class WP {
 
 				// Only set X-Pingback for single posts that allow pings.
 				if ( $p && pings_open( $p ) ) {
-					@header( 'X-Pingback: ' . get_bloginfo( 'pingback_url' ) );
+					@header( 'X-Pingback: ' . get_bloginfo( 'pingback_url', 'display' ) );
 				}
 
 				// check for paged content that exceeds the max number of pages
@@ -738,93 +746,3 @@ class WP {
 		do_action_ref_array( 'wp', array( &$this ) );
 	}
 }
-
-/**
- * Helper class to remove the need to use eval to replace $matches[] in query strings.
- *
- * @since 2.9.0
- */
-class WP_MatchesMapRegex {
-	/**
-	 * store for matches
-	 *
-	 * @access private
-	 * @var array
-	 */
-	private $_matches;
-
-	/**
-	 * store for mapping result
-	 *
-	 * @access public
-	 * @var string
-	 */
-	public $output;
-
-	/**
-	 * subject to perform mapping on (query string containing $matches[] references
-	 *
-	 * @access private
-	 * @var string
-	 */
-	private $_subject;
-
-	/**
-	 * regexp pattern to match $matches[] references
-	 *
-	 * @var string
-	 */
-	public $_pattern = '(\$matches\[[1-9]+[0-9]*\])'; // magic number
-
-	/**
-	 * constructor
-	 *
-	 * @param string $subject subject if regex
-	 * @param array  $matches data to use in map
-	 */
-	public function __construct($subject, $matches) {
-		$this->_subject = $subject;
-		$this->_matches = $matches;
-		$this->output = $this->_map();
-	}
-
-	/**
-	 * Substitute substring matches in subject.
-	 *
-	 * static helper function to ease use
-	 *
-	 * @static
-	 * @access public
-	 *
-	 * @param string $subject subject
-	 * @param array  $matches data used for substitution
-	 * @return string
-	 */
-	public static function apply($subject, $matches) {
-		$oSelf = new WP_MatchesMapRegex($subject, $matches);
-		return $oSelf->output;
-	}
-
-	/**
-	 * do the actual mapping
-	 *
-	 * @access private
-	 * @return string
-	 */
-	private function _map() {
-		$callback = array($this, 'callback');
-		return preg_replace_callback($this->_pattern, $callback, $this->_subject);
-	}
-
-	/**
-	 * preg_replace_callback hook
-	 *
-	 * @access public
-	 * @param  array $matches preg_replace regexp matches
-	 * @return string
-	 */
-	public function callback($matches) {
-		$index = intval(substr($matches[0], 9, -1));
-		return ( isset( $this->_matches[$index] ) ? urlencode($this->_matches[$index]) : '' );
-	}
-}
diff --git a/wp-includes/class.wp-dependencies.php b/wp-includes/class.wp-dependencies.php
index 03484181c..13ff04fa5 100644
--- a/wp-includes/class.wp-dependencies.php
+++ b/wp-includes/class.wp-dependencies.php
@@ -211,7 +211,7 @@ class WP_Dependencies {
 	 *                                 as a query string for cache busting purposes. If version is set to false, a version
 	 *                                 number is automatically added equal to current installed WordPress version.
 	 *                                 If set to null, no version is added.
-	 * @param mixed            $args   Optional. Custom property of the item. NOT the class property $args. Examples: $media, $in_footer. 
+	 * @param mixed            $args   Optional. Custom property of the item. NOT the class property $args. Examples: $media, $in_footer.
 	 * @return bool Whether the item has been registered. True on success, false on failure.
 	 */
 	public function add( $handle, $src, $deps = array(), $ver = false, $args = null ) {
@@ -411,99 +411,4 @@ class WP_Dependencies {
 		return true;
 	}
 
-} // WP_Dependencies
-
-/**
- * Class _WP_Dependency
- *
- * Helper class to register a handle and associated data.
- *
- * @access private
- * @since 2.6.0
- */
-class _WP_Dependency {
-	/**
-	 * The handle name.
-	 *
-	 * @access public
-	 * @since 2.6.0
-	 * @var null
-	 */
-	public $handle;
-
-	/**
-	 * The handle source.
-	 *
-	 * @access public
-	 * @since 2.6.0
-	 * @var null
-	 */
-	public $src;
-
-	/**
-	 * An array of handle dependencies.
-	 *
-	 * @access public
-	 * @since 2.6.0
-	 * @var array
-	 */
-	public $deps = array();
-
-	/**
-	 * The handle version.
-	 *
-	 * Used for cache-busting.
-	 *
-	 * @access public
-	 * @since 2.6.0
-	 * @var bool|string
-	 */
-	public $ver = false;
-
-	/**
-	 * Additional arguments for the handle.
-	 *
-	 * @access public
-	 * @since 2.6.0
-	 * @var null
-	 */
-	public $args = null;  // Custom property, such as $in_footer or $media.
-
-	/**
-	 * Extra data to supply to the handle.
-	 *
-	 * @access public
-	 * @since 2.6.0
-	 * @var array
-	 */
-	public $extra = array();
-
-	/**
-	 * Setup dependencies.
-	 *
-	 * @since 2.6.0
-	 */
-	public function __construct() {
-		@list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args();
-		if ( ! is_array($this->deps) )
-			$this->deps = array();
-	}
-
-	/**
-	 * Add handle data.
-	 *
-	 * @access public
-	 * @since 2.6.0
-	 *
-	 * @param string $name The data key to add.
-	 * @param mixed  $data The data value to add.
-	 * @return bool False if not scalar, true otherwise.
-	 */
-	public function add_data( $name, $data ) {
-		if ( !is_scalar($name) )
-			return false;
-		$this->extra[$name] = $data;
-		return true;
-	}
-
-} // _WP_Dependencies
+}
diff --git a/wp-includes/comment-template.php b/wp-includes/comment-template.php
index 42ebd41e3..c914796c0 100644
--- a/wp-includes/comment-template.php
+++ b/wp-includes/comment-template.php
@@ -1576,7 +1576,8 @@ function comments_popup_link( $zero = false, $one = false, $more = false, $css_c
  *                              Default 'respond'.
  *     @type string $reply_text The text of the Reply link. Default 'Reply'.
  *     @type string $login_text The text of the link to reply if logged out. Default 'Log in to Reply'.
- *     @type int    $depth'     The depth of the new comment. Must be greater than 0 and less than the value
+ *     @type int    $max_depth  The max depth of the comment tree. Default 0.
+ *     @type int    $depth      The depth of the new comment. Must be greater than 0 and less than the value
  *                              of the 'thread_comments_depth' option set in Settings > Discussion. Default 0.
  *     @type string $before     The text or HTML to add before the reply link. Default empty.
  *     @type string $after      The text or HTML to add after the reply link. Default empty.
@@ -1591,8 +1592,10 @@ function get_comment_reply_link( $args = array(), $comment = null, $post = null
 		'add_below'     => 'comment',
 		'respond_id'    => 'respond',
 		'reply_text'    => __( 'Reply' ),
+		/* translators: Comment reply button text. 1: Comment author name */
 		'reply_to_text' => __( 'Reply to %s' ),
 		'login_text'    => __( 'Log in to Reply' ),
+		'max_depth'     => 0,
 		'depth'         => 0,
 		'before'        => '',
 		'after'         => ''
@@ -1908,7 +1911,7 @@ function comment_form_title( $noreplytext = false, $replytext = false, $linktopa
  *     @type int    $page              Page ID to list comments for. Default empty.
  *     @type int    $per_page          Number of comments to list per page. Default empty.
  *     @type int    $avatar_size       Height and width dimensions of the avatar size. Default 32.
- *     @type string $reverse_top_level Ordering of the listed comments. Default null. Accepts 'desc', 'asc'.
+ *     @type bool   $reverse_top_level Ordering of the listed comments. If true, will display newest comments first.
  *     @type bool   $reverse_children  Whether to reverse child comments in the list. Default null.
  *     @type string $format            How to format the comments list.
  *                                     Default 'html5' if the theme supports it. Accepts 'html5', 'xhtml'.
@@ -2165,6 +2168,18 @@ function comment_form( $args = array(), $post_id = null ) {
 	if ( null === $post_id )
 		$post_id = get_the_ID();
 
+	// Exit the function when comments for the post are closed.
+	if ( ! comments_open( $post_id ) ) {
+		/**
+		 * Fires after the comment form if comments are closed.
+		 *
+		 * @since 3.0.0
+		 */
+		do_action( 'comment_form_comments_closed' );
+
+		return;
+	}
+
 	$commenter = wp_get_current_commenter();
 	$user = wp_get_current_user();
 	$user_identity = $user->exists() ? $user->display_name : '';
@@ -2250,209 +2265,200 @@ function comment_form( $args = array(), $post_id = null ) {
 	// Ensure that the filtered args contain all required default values.
 	$args = array_merge( $defaults, $args );
 
-	if ( comments_open( $post_id ) ) : ?>
+	/**
+	 * Fires before the comment form.
+	 *
+	 * @since 3.0.0
+	 */
+	do_action( 'comment_form_before' );
+	?>
+	<div id="respond" class="comment-respond">
 		<?php
-		/**
-		 * Fires before the comment form.
-		 *
-		 * @since 3.0.0
-		 */
-		do_action( 'comment_form_before' );
-		?>
-		<div id="respond" class="comment-respond">
-			<?php
-			echo $args['title_reply_before'];
+		echo $args['title_reply_before'];
 
-			comment_form_title( $args['title_reply'], $args['title_reply_to'] );
+		comment_form_title( $args['title_reply'], $args['title_reply_to'] );
 
-			echo $args['cancel_reply_before'];
+		echo $args['cancel_reply_before'];
 
-			cancel_comment_reply_link( $args['cancel_reply_link'] );
+		cancel_comment_reply_link( $args['cancel_reply_link'] );
 
-			echo $args['cancel_reply_after'];
+		echo $args['cancel_reply_after'];
 
-			echo $args['title_reply_after'];
+		echo $args['title_reply_after'];
 
-			if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) :
-				echo $args['must_log_in'];
+		if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) :
+			echo $args['must_log_in'];
+			/**
+			 * Fires after the HTML-formatted 'must log in after' message in the comment form.
+			 *
+			 * @since 3.0.0
+			 */
+			do_action( 'comment_form_must_log_in_after' );
+		else : ?>
+			<form action="<?php echo esc_url( $args['action'] ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>" class="<?php echo esc_attr( $args['class_form'] ); ?>"<?php echo $html5 ? ' novalidate' : ''; ?>>
+				<?php
 				/**
-				 * Fires after the HTML-formatted 'must log in after' message in the comment form.
+				 * Fires at the top of the comment form, inside the form tag.
 				 *
 				 * @since 3.0.0
 				 */
-				do_action( 'comment_form_must_log_in_after' );
-			else : ?>
-				<form action="<?php echo esc_url( $args['action'] ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>" class="<?php echo esc_attr( $args['class_form'] ); ?>"<?php echo $html5 ? ' novalidate' : ''; ?>>
-					<?php
+				do_action( 'comment_form_top' );
+
+				if ( is_user_logged_in() ) :
 					/**
-					 * Fires at the top of the comment form, inside the form tag.
+					 * Filters the 'logged in' message for the comment form for display.
 					 *
 					 * @since 3.0.0
+					 *
+					 * @param string $args_logged_in The logged-in-as HTML-formatted message.
+					 * @param array  $commenter      An array containing the comment author's
+					 *                               username, email, and URL.
+					 * @param string $user_identity  If the commenter is a registered user,
+					 *                               the display name, blank otherwise.
 					 */
-					do_action( 'comment_form_top' );
+					echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity );
 
-					if ( is_user_logged_in() ) :
-						/**
-						 * Filters the 'logged in' message for the comment form for display.
-						 *
-						 * @since 3.0.0
-						 *
-						 * @param string $args_logged_in The logged-in-as HTML-formatted message.
-						 * @param array  $commenter      An array containing the comment author's
-						 *                               username, email, and URL.
-						 * @param string $user_identity  If the commenter is a registered user,
-						 *                               the display name, blank otherwise.
-						 */
-						echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity );
+					/**
+					 * Fires after the is_user_logged_in() check in the comment form.
+					 *
+					 * @since 3.0.0
+					 *
+					 * @param array  $commenter     An array containing the comment author's
+					 *                              username, email, and URL.
+					 * @param string $user_identity If the commenter is a registered user,
+					 *                              the display name, blank otherwise.
+					 */
+					do_action( 'comment_form_logged_in_after', $commenter, $user_identity );
 
-						/**
-						 * Fires after the is_user_logged_in() check in the comment form.
-						 *
-						 * @since 3.0.0
-						 *
-						 * @param array  $commenter     An array containing the comment author's
-						 *                              username, email, and URL.
-						 * @param string $user_identity If the commenter is a registered user,
-						 *                              the display name, blank otherwise.
-						 */
-						do_action( 'comment_form_logged_in_after', $commenter, $user_identity );
+				else :
 
-					else :
+					echo $args['comment_notes_before'];
 
-						echo $args['comment_notes_before'];
+				endif;
 
-					endif;
+				// Prepare an array of all fields, including the textarea
+				$comment_fields = array( 'comment' => $args['comment_field'] ) + (array) $args['fields'];
 
-					// Prepare an array of all fields, including the textarea
-					$comment_fields = array( 'comment' => $args['comment_field'] ) + (array) $args['fields'];
+				/**
+				 * Filters the comment form fields, including the textarea.
+				 *
+				 * @since 4.4.0
+				 *
+				 * @param array $comment_fields The comment fields.
+				 */
+				$comment_fields = apply_filters( 'comment_form_fields', $comment_fields );
 
-					/**
-					 * Filters the comment form fields, including the textarea.
-					 *
-					 * @since 4.4.0
-					 *
-					 * @param array $comment_fields The comment fields.
-					 */
-					$comment_fields = apply_filters( 'comment_form_fields', $comment_fields );
+				// Get an array of field names, excluding the textarea
+				$comment_field_keys = array_diff( array_keys( $comment_fields ), array( 'comment' ) );
 
-					// Get an array of field names, excluding the textarea
-					$comment_field_keys = array_diff( array_keys( $comment_fields ), array( 'comment' ) );
+				// Get the first and the last field name, excluding the textarea
+				$first_field = reset( $comment_field_keys );
+				$last_field  = end( $comment_field_keys );
 
-					// Get the first and the last field name, excluding the textarea
-					$first_field = reset( $comment_field_keys );
-					$last_field  = end( $comment_field_keys );
+				foreach ( $comment_fields as $name => $field ) {
 
-					foreach ( $comment_fields as $name => $field ) {
+					if ( 'comment' === $name ) {
 
-						if ( 'comment' === $name ) {
+						/**
+						 * Filters the content of the comment textarea field for display.
+						 *
+						 * @since 3.0.0
+						 *
+						 * @param string $args_comment_field The content of the comment textarea field.
+						 */
+						echo apply_filters( 'comment_form_field_comment', $field );
+
+						echo $args['comment_notes_after'];
+
+					} elseif ( ! is_user_logged_in() ) {
 
+						if ( $first_field === $name ) {
 							/**
-							 * Filters the content of the comment textarea field for display.
+							 * Fires before the comment fields in the comment form, excluding the textarea.
 							 *
 							 * @since 3.0.0
-							 *
-							 * @param string $args_comment_field The content of the comment textarea field.
 							 */
-							echo apply_filters( 'comment_form_field_comment', $field );
-
-							echo $args['comment_notes_after'];
-
-						} elseif ( ! is_user_logged_in() ) {
+							do_action( 'comment_form_before_fields' );
+						}
 
-							if ( $first_field === $name ) {
-								/**
-								 * Fires before the comment fields in the comment form, excluding the textarea.
-								 *
-								 * @since 3.0.0
-								 */
-								do_action( 'comment_form_before_fields' );
-							}
+						/**
+						 * Filters a comment form field for display.
+						 *
+						 * The dynamic portion of the filter hook, `$name`, refers to the name
+						 * of the comment form field. Such as 'author', 'email', or 'url'.
+						 *
+						 * @since 3.0.0
+						 *
+						 * @param string $field The HTML-formatted output of the comment form field.
+						 */
+						echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";
 
+						if ( $last_field === $name ) {
 							/**
-							 * Filters a comment form field for display.
-							 *
-							 * The dynamic portion of the filter hook, `$name`, refers to the name
-							 * of the comment form field. Such as 'author', 'email', or 'url'.
+							 * Fires after the comment fields in the comment form, excluding the textarea.
 							 *
 							 * @since 3.0.0
-							 *
-							 * @param string $field The HTML-formatted output of the comment form field.
 							 */
-							echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";
-
-							if ( $last_field === $name ) {
-								/**
-								 * Fires after the comment fields in the comment form, excluding the textarea.
-								 *
-								 * @since 3.0.0
-								 */
-								do_action( 'comment_form_after_fields' );
-							}
+							do_action( 'comment_form_after_fields' );
 						}
 					}
+				}
 
-					$submit_button = sprintf(
-						$args['submit_button'],
-						esc_attr( $args['name_submit'] ),
-						esc_attr( $args['id_submit'] ),
-						esc_attr( $args['class_submit'] ),
-						esc_attr( $args['label_submit'] )
-					);
+				$submit_button = sprintf(
+					$args['submit_button'],
+					esc_attr( $args['name_submit'] ),
+					esc_attr( $args['id_submit'] ),
+					esc_attr( $args['class_submit'] ),
+					esc_attr( $args['label_submit'] )
+				);
 
-					/**
-					 * Filters the submit button for the comment form to display.
-					 *
-					 * @since 4.2.0
-					 *
-					 * @param string $submit_button HTML markup for the submit button.
-					 * @param array  $args          Arguments passed to `comment_form()`.
-					 */
-					$submit_button = apply_filters( 'comment_form_submit_button', $submit_button, $args );
+				/**
+				 * Filters the submit button for the comment form to display.
+				 *
+				 * @since 4.2.0
+				 *
+				 * @param string $submit_button HTML markup for the submit button.
+				 * @param array  $args          Arguments passed to `comment_form()`.
+				 */
+				$submit_button = apply_filters( 'comment_form_submit_button', $submit_button, $args );
 
-					$submit_field = sprintf(
-						$args['submit_field'],
-						$submit_button,
-						get_comment_id_fields( $post_id )
-					);
+				$submit_field = sprintf(
+					$args['submit_field'],
+					$submit_button,
+					get_comment_id_fields( $post_id )
+				);
 
-					/**
-					 * Filters the submit field for the comment form to display.
-					 *
-					 * The submit field includes the submit button, hidden fields for the
-					 * comment form, and any wrapper markup.
-					 *
-					 * @since 4.2.0
-					 *
-					 * @param string $submit_field HTML markup for the submit field.
-					 * @param array  $args         Arguments passed to comment_form().
-					 */
-					echo apply_filters( 'comment_form_submit_field', $submit_field, $args );
+				/**
+				 * Filters the submit field for the comment form to display.
+				 *
+				 * The submit field includes the submit button, hidden fields for the
+				 * comment form, and any wrapper markup.
+				 *
+				 * @since 4.2.0
+				 *
+				 * @param string $submit_field HTML markup for the submit field.
+				 * @param array  $args         Arguments passed to comment_form().
+				 */
+				echo apply_filters( 'comment_form_submit_field', $submit_field, $args );
 
-					/**
-					 * Fires at the bottom of the comment form, inside the closing </form> tag.
-					 *
-					 * @since 1.5.0
-					 *
-					 * @param int $post_id The post ID.
-					 */
-					do_action( 'comment_form', $post_id );
-					?>
-				</form>
-			<?php endif; ?>
-		</div><!-- #respond -->
-		<?php
-		/**
-		 * Fires after the comment form.
-		 *
-		 * @since 3.0.0
-		 */
-		do_action( 'comment_form_after' );
-	else :
-		/**
-		 * Fires after the comment form if comments are closed.
-		 *
-		 * @since 3.0.0
-		 */
-		do_action( 'comment_form_comments_closed' );
-	endif;
+				/**
+				 * Fires at the bottom of the comment form, inside the closing </form> tag.
+				 *
+				 * @since 1.5.0
+				 *
+				 * @param int $post_id The post ID.
+				 */
+				do_action( 'comment_form', $post_id );
+				?>
+			</form>
+		<?php endif; ?>
+	</div><!-- #respond -->
+	<?php
+
+	/**
+	 * Fires after the comment form.
+	 *
+	 * @since 3.0.0
+	 */
+	do_action( 'comment_form_after' );
 }
diff --git a/wp-includes/comment.php b/wp-includes/comment.php
index dad3f7639..8bb2e9eb3 100644
--- a/wp-includes/comment.php
+++ b/wp-includes/comment.php
@@ -54,11 +54,13 @@ function check_comment($author, $email, $url, $comment, $user_ip, $user_agent, $
 		 * Filters the number of links found in a comment.
 		 *
 		 * @since 3.0.0
+		 * @since 4.7.0 Added the `$comment` parameter.
 		 *
 		 * @param int    $num_links The number of links found.
 		 * @param string $url       Comment author's URL. Included in allowed links total.
+		 * @param string $comment   Content of the comment.
 		 */
-		$num_links = apply_filters( 'comment_max_links_url', $num_links, $url );
+		$num_links = apply_filters( 'comment_max_links_url', $num_links, $url, $comment );
 
 		/*
 		 * If the number of links in the comment exceeds the allowed amount,
@@ -110,8 +112,13 @@ function check_comment($author, $email, $url, $comment, $user_ip, $user_agent, $
 	 */
 	if ( 1 == get_option('comment_whitelist')) {
 		if ( 'trackback' != $comment_type && 'pingback' != $comment_type && $author != '' && $email != '' ) {
-			// expected_slashed ($author, $email)
-			$ok_to_comment = $wpdb->get_var("SELECT comment_approved FROM $wpdb->comments WHERE comment_author = '$author' AND comment_author_email = '$email' and comment_approved = '1' LIMIT 1");
+			$comment_user = get_user_by( 'email', wp_unslash( $email ) );
+			if ( ! empty( $comment_user->ID ) ) {
+				$ok_to_comment = $wpdb->get_var( $wpdb->prepare( "SELECT comment_approved FROM $wpdb->comments WHERE user_id = %d AND comment_approved = '1' LIMIT 1", $comment_user->ID ) );
+			} else {
+				// expected_slashed ($author, $email)
+				$ok_to_comment = $wpdb->get_var( $wpdb->prepare( "SELECT comment_approved FROM $wpdb->comments WHERE comment_author = %s AND comment_author_email = %s and comment_approved = '1' LIMIT 1", $author, $email ) );
+			}
 			if ( ( 1 == $ok_to_comment ) &&
 				( empty($mod_keys) || false === strpos( $email, $mod_keys) ) )
 					return true;
@@ -163,7 +170,8 @@ function get_approved_comments( $post_id, $args = array() ) {
  * @global WP_Comment $comment
  *
  * @param WP_Comment|string|int $comment Comment to retrieve.
- * @param string $output Optional. OBJECT or ARRAY_A or ARRAY_N constants.
+ * @param string                $output  Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                                       a WP_Comment object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @return WP_Comment|array|null Depends on $output value.
  */
 function get_comment( &$comment = null, $output = OBJECT ) {
@@ -286,38 +294,46 @@ function get_default_comment_status( $post_type = 'post', $comment_type = 'comme
  * The date the last comment was modified.
  *
  * @since 1.5.0
+ * @since 4.7.0 Replaced caching the modified date in a local static variable
+ *              with the Object Cache API.
  *
  * @global wpdb $wpdb WordPress database abstraction object.
- * @staticvar array $cache_lastcommentmodified
  *
- * @param string $timezone Which timezone to use in reference to 'gmt', 'blog',
- *		or 'server' locations.
- * @return string Last comment modified date.
+ * @param string $timezone Which timezone to use in reference to 'gmt', 'blog', or 'server' locations.
+ * @return string|false Last comment modified date on success, false on failure.
  */
-function get_lastcommentmodified($timezone = 'server') {
+function get_lastcommentmodified( $timezone = 'server' ) {
 	global $wpdb;
-	static $cache_lastcommentmodified = array();
 
-	if ( isset($cache_lastcommentmodified[$timezone]) )
-		return $cache_lastcommentmodified[$timezone];
+	$timezone = strtolower( $timezone );
+	$key = "lastcommentmodified:$timezone";
 
-	$add_seconds_server = date('Z');
+	$comment_modified_date = wp_cache_get( $key, 'timeinfo' );
+	if ( false !== $comment_modified_date ) {
+		return $comment_modified_date;
+	}
 
-	switch ( strtolower($timezone)) {
+	switch ( $timezone ) {
 		case 'gmt':
-			$lastcommentmodified = $wpdb->get_var("SELECT comment_date_gmt FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 1");
+			$comment_modified_date = $wpdb->get_var( "SELECT comment_date_gmt FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 1" );
 			break;
 		case 'blog':
-			$lastcommentmodified = $wpdb->get_var("SELECT comment_date FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 1");
+			$comment_modified_date = $wpdb->get_var( "SELECT comment_date FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 1" );
 			break;
 		case 'server':
-			$lastcommentmodified = $wpdb->get_var($wpdb->prepare("SELECT DATE_ADD(comment_date_gmt, INTERVAL %s SECOND) FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 1", $add_seconds_server));
+			$add_seconds_server = date( 'Z' );
+
+			$comment_modified_date = $wpdb->get_var( $wpdb->prepare( "SELECT DATE_ADD(comment_date_gmt, INTERVAL %s SECOND) FROM $wpdb->comments WHERE comment_approved = '1' ORDER BY comment_date_gmt DESC LIMIT 1", $add_seconds_server ) );
 			break;
 	}
 
-	$cache_lastcommentmodified[$timezone] = $lastcommentmodified;
+	if ( $comment_modified_date ) {
+		wp_cache_set( $key, $comment_modified_date, 'timeinfo' );
 
-	return $lastcommentmodified;
+		return $comment_modified_date;
+	}
+
+	return false;
 }
 
 /**
@@ -581,13 +597,19 @@ function sanitize_comment_cookies() {
  * Validates whether this comment is allowed to be made.
  *
  * @since 2.0.0
+ * @since 4.7.0 The `$avoid_die` parameter was added, allowing the function to
+ *              return a WP_Error object instead of dying.
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
- * @param array $commentdata Contains information on the comment
- * @return int|string Signifies the approval status (0|1|'spam')
+ * @param array $commentdata Contains information on the comment.
+ * @param bool  $avoid_die   When true, a disallowed comment will result in the function
+ *                           returning a WP_Error object, rather than executing wp_die().
+ *                           Default false.
+ * @return int|string|WP_Error Allowed comments return the approval status (0|1|'spam').
+ *                             If `$avoid_die` is true, disallowed comments return a WP_Error.
  */
-function wp_allow_comment( $commentdata ) {
+function wp_allow_comment( $commentdata, $avoid_die = false ) {
 	global $wpdb;
 
 	// Simple duplicate check
@@ -632,10 +654,15 @@ function wp_allow_comment( $commentdata ) {
 		 * @param array $commentdata Comment data.
 		 */
 		do_action( 'comment_duplicate_trigger', $commentdata );
-		if ( defined( 'DOING_AJAX' ) ) {
-			die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
+		if ( true === $avoid_die ) {
+			return new WP_Error( 'comment_duplicate', __( 'Duplicate comment detected; it looks as though you&#8217;ve already said that!' ), 409 );
+		} else {
+			if ( wp_doing_ajax() ) {
+				die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
+			}
+
+			wp_die( __( 'Duplicate comment detected; it looks as though you&#8217;ve already said that!' ), 409 );
 		}
-		wp_die( __( 'Duplicate comment detected; it looks as though you&#8217;ve already said that!' ), 409 );
 	}
 
 	/**
@@ -644,18 +671,49 @@ function wp_allow_comment( $commentdata ) {
 	 * Allows checking for comment flooding.
 	 *
 	 * @since 2.3.0
+	 * @since 4.7.0 The `$avoid_die` parameter was added.
 	 *
 	 * @param string $comment_author_IP    Comment author's IP address.
 	 * @param string $comment_author_email Comment author's email.
 	 * @param string $comment_date_gmt     GMT date the comment was posted.
+	 * @param bool   $avoid_die            Whether to prevent executing wp_die()
+	 *                                     or die() if a comment flood is occurring.
 	 */
 	do_action(
 		'check_comment_flood',
 		$commentdata['comment_author_IP'],
 		$commentdata['comment_author_email'],
-		$commentdata['comment_date_gmt']
+		$commentdata['comment_date_gmt'],
+		$avoid_die
+	);
+
+	/**
+	 * Filters whether a comment is part of a comment flood.
+	 *
+	 * The default check is wp_check_comment_flood(). See check_comment_flood_db().
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param bool   $is_flood             Is a comment flooding occurring? Default false.
+	 * @param string $comment_author_IP    Comment author's IP address.
+	 * @param string $comment_author_email Comment author's email.
+	 * @param string $comment_date_gmt     GMT date the comment was posted.
+	 * @param bool   $avoid_die            Whether to prevent executing wp_die()
+	 *                                     or die() if a comment flood is occurring.
+	 */
+	$is_flood = apply_filters(
+		'wp_is_comment_flood',
+		false,
+		$commentdata['comment_author_IP'],
+		$commentdata['comment_author_email'],
+		$commentdata['comment_date_gmt'],
+		$avoid_die
 	);
 
+	if ( $is_flood ) {
+		return new WP_Error( 'comment_flood', __( 'You are posting comments too quickly. Slow down.' ), 429 );
+	}
+
 	if ( ! empty( $commentdata['user_id'] ) ) {
 		$user = get_userdata( $commentdata['user_id'] );
 		$post_author = $wpdb->get_var( $wpdb->prepare(
@@ -708,24 +766,50 @@ function wp_allow_comment( $commentdata ) {
 }
 
 /**
- * Check whether comment flooding is occurring.
+ * Hooks WP's native database-based comment-flood check.
+ *
+ * This wrapper maintains backward compatibility with plugins that expect to
+ * be able to unhook the legacy check_comment_flood_db() function from
+ * 'check_comment_flood' using remove_action().
+ *
+ * @since 2.3.0
+ * @since 4.7.0 Converted to be an add_filter() wrapper.
+ */
+function check_comment_flood_db() {
+	add_filter( 'wp_is_comment_flood', 'wp_check_comment_flood', 10, 5 );
+}
+
+/**
+ * Checks whether comment flooding is occurring.
  *
  * Won't run, if current user can manage options, so to not block
  * administrators.
  *
- * @since 2.3.0
+ * @since 4.7.0
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
- * @param string $ip Comment IP.
- * @param string $email Comment author email address.
- * @param string $date MySQL time string.
+ * @param bool   $is_flood  Is a comment flooding occurring?
+ * @param string $ip        Comment IP.
+ * @param string $email     Comment author email address.
+ * @param string $date      MySQL time string.
+ * @param bool   $avoid_die When true, a disallowed comment will result in the function
+ *                          returning a WP_Error object, rather than executing wp_die().
+ *                          Default false.
+ * @return bool Whether comment flooding is occurring.
  */
-function check_comment_flood_db( $ip, $email, $date ) {
+function wp_check_comment_flood( $is_flood, $ip, $email, $date, $avoid_die = false ) {
+
 	global $wpdb;
+
+	// Another callback has declared a flood. Trust it.
+	if ( true === $is_flood ) {
+		return $is_flood;
+	}
+
 	// don't throttle admins or moderators
 	if ( current_user_can( 'manage_options' ) || current_user_can( 'moderate_comments' ) ) {
-		return;
+		return false;
 	}
 	$hour_ago = gmdate( 'Y-m-d H:i:s', time() - HOUR_IN_SECONDS );
 
@@ -767,13 +851,19 @@ function check_comment_flood_db( $ip, $email, $date ) {
 			 * @param int $time_newcomment  Timestamp of when the new comment was posted.
 			 */
 			do_action( 'comment_flood_trigger', $time_lastcomment, $time_newcomment );
+			if ( true === $avoid_die ) {
+				return true;
+			} else {
+				if ( wp_doing_ajax() ) {
+					die( __('You are posting comments too quickly. Slow down.') );
+				}
 
-			if ( defined('DOING_AJAX') )
-				die( __('You are posting comments too quickly. Slow down.') );
-
-			wp_die( __( 'You are posting comments too quickly. Slow down.' ), 429 );
+				wp_die( __( 'You are posting comments too quickly. Slow down.' ), 429 );
+			}
 		}
 	}
+
+	return false;
 }
 
 /**
@@ -913,6 +1003,12 @@ function get_page_of_comment( $comment_ID, $args = array() ) {
 		if ( $args['max_depth'] > 1 && 0 != $comment->comment_parent )
 			return get_page_of_comment( $comment->comment_parent, $args );
 
+		if ( 'desc' === get_option( 'comment_order' ) ) {
+			$compare = 'after';
+		} else {
+			$compare = 'before';
+		}
+
 		$comment_args = array(
 			'type'       => $args['type'],
 			'post_id'    => $comment->comment_post_ID,
@@ -923,7 +1019,7 @@ function get_page_of_comment( $comment_ID, $args = array() ) {
 			'date_query' => array(
 				array(
 					'column' => "$wpdb->comments.comment_date_gmt",
-					'before' => $comment->comment_date_gmt,
+					$compare => $comment->comment_date_gmt,
 				)
 			),
 		);
@@ -945,6 +1041,7 @@ function get_page_of_comment( $comment_ID, $args = array() ) {
 	 * Filters the calculated page on which a comment appears.
 	 *
 	 * @since 4.4.0
+	 * @since 4.7.0 Introduced the `$comment_ID` parameter.
 	 *
 	 * @param int   $page          Comment page.
 	 * @param array $args {
@@ -965,8 +1062,9 @@ function get_page_of_comment( $comment_ID, $args = array() ) {
 	 *     @type int    $per_page  Number of comments per page.
 	 *     @type int    $max_depth Maximum comment threading depth allowed.
 	 * }
+	 * @param int $comment_ID ID of the comment.
 	 */
-	return apply_filters( 'get_page_of_comment', (int) $page, $args, $original_args );
+	return apply_filters( 'get_page_of_comment', (int) $page, $args, $original_args, $comment_ID );
 }
 
 /**
@@ -1024,6 +1122,37 @@ function wp_get_comment_fields_max_lengths() {
 	return apply_filters( 'wp_get_comment_fields_max_lengths', $lengths );
 }
 
+/**
+ * Compares the lengths of comment data against the maximum character limits.
+ *
+ * @since 4.7.0
+ *
+ * @param array $comment_data Array of arguments for inserting a comment.
+ * @return WP_Error|true WP_Error when a comment field exceeds the limit,
+ *                       otherwise true.
+ */
+function wp_check_comment_data_max_lengths( $comment_data ) {
+	$max_lengths = wp_get_comment_fields_max_lengths();
+
+	if ( isset( $comment_data['comment_author'] ) && mb_strlen( $comment_data['comment_author'], '8bit' ) > $max_lengths['comment_author'] ) {
+		return new WP_Error( 'comment_author_column_length', __( '<strong>ERROR</strong>: your name is too long.' ), 200 );
+	}
+
+	if ( isset( $comment_data['comment_author_email'] ) && strlen( $comment_data['comment_author_email'] ) > $max_lengths['comment_author_email'] ) {
+		return new WP_Error( 'comment_author_email_column_length', __( '<strong>ERROR</strong>: your email address is too long.' ), 200 );
+	}
+
+	if ( isset( $comment_data['comment_author_url'] ) && strlen( $comment_data['comment_author_url'] ) > $max_lengths['comment_author_url'] ) {
+		return new WP_Error( 'comment_author_url_column_length', __( '<strong>ERROR</strong>: your url is too long.' ), 200 );
+	}
+
+	if ( isset( $comment_data['comment_content'] ) && mb_strlen( $comment_data['comment_content'], '8bit' ) > $max_lengths['comment_content'] ) {
+		return new WP_Error( 'comment_content_column_length', __( '<strong>ERROR</strong>: your comment is too long.' ), 200 );
+	}
+
+	return true;
+}
+
 /**
  * Does comment contain blacklisted characters or words.
  *
@@ -1483,6 +1612,26 @@ function wp_transition_comment_status($new_status, $old_status, $comment) {
 	do_action( "comment_{$new_status}_{$comment->comment_type}", $comment->comment_ID, $comment );
 }
 
+/**
+ * Clear the lastcommentmodified cached value when a comment status is changed.
+ *
+ * Deletes the lastcommentmodified cache key when a comment enters or leaves
+ * 'approved' status.
+ *
+ * @since 4.7.0
+ * @access private
+ *
+ * @param string $new_status The new comment status.
+ * @param string $old_status The old comment status.
+ */
+function _clear_modified_cache_on_transition_comment_status( $new_status, $old_status ) {
+	if ( 'approved' === $new_status || 'approved' === $old_status ) {
+		foreach ( array( 'server', 'gmt', 'blog' ) as $timezone ) {
+			wp_cache_delete( "lastcommentmodified:$timezone", 'timeinfo' );
+		}
+	}
+}
+
 /**
  * Get current commenter's name, email, and URL.
  *
@@ -1592,6 +1741,10 @@ function wp_insert_comment( $commentdata ) {
 
 	if ( $comment_approved == 1 ) {
 		wp_update_comment_count( $comment_post_ID );
+
+		foreach ( array( 'server', 'gmt', 'blog' ) as $timezone ) {
+			wp_cache_delete( "lastcommentmodified:$timezone", 'timeinfo' );
+		}
 	}
 
 	clean_comment_cache( $id );
@@ -1715,6 +1868,8 @@ function wp_throttle_comment_flood($block, $time_lastcomment, $time_newcomment)
  *
  * @since 1.5.0
  * @since 4.3.0 'comment_agent' and 'comment_author_IP' can be set via `$commentdata`.
+ * @since 4.7.0 The `$avoid_die` parameter was added, allowing the function to
+ *              return a WP_Error object instead of dying.
  *
  * @see wp_insert_comment()
  * @global wpdb $wpdb WordPress database abstraction object.
@@ -1738,9 +1893,11 @@ function wp_throttle_comment_flood($block, $time_lastcomment, $time_newcomment)
  *     @type string $comment_author_IP    Comment author IP address in IPv4 format. Default is the value of
  *                                        'REMOTE_ADDR' in the `$_SERVER` superglobal sent in the original request.
  * }
- * @return int|false The ID of the comment on success, false on failure.
+ * @param bool $avoid_die Should errors be returned as WP_Error objects instead of
+ *                        executing wp_die()? Default false.
+ * @return int|false|WP_Error The ID of the comment on success, false or WP_Error on failure.
  */
-function wp_new_comment( $commentdata ) {
+function wp_new_comment( $commentdata, $avoid_die = false ) {
 	global $wpdb;
 
 	if ( isset( $commentdata['user_ID'] ) ) {
@@ -1789,7 +1946,10 @@ function wp_new_comment( $commentdata ) {
 
 	$commentdata = wp_filter_comment($commentdata);
 
-	$commentdata['comment_approved'] = wp_allow_comment($commentdata);
+	$commentdata['comment_approved'] = wp_allow_comment( $commentdata, $avoid_die );
+	if ( is_wp_error( $commentdata['comment_approved'] ) ) {
+		return $commentdata['comment_approved'];
+	}
 
 	$comment_ID = wp_insert_comment($commentdata);
 	if ( ! $comment_ID ) {
@@ -1803,7 +1963,10 @@ function wp_new_comment( $commentdata ) {
 
 		$commentdata = wp_filter_comment( $commentdata );
 
-		$commentdata['comment_approved'] = wp_allow_comment( $commentdata );
+		$commentdata['comment_approved'] = wp_allow_comment( $commentdata, $avoid_die );
+		if ( is_wp_error( $commentdata['comment_approved'] ) ) {
+			return $commentdata['comment_approved'];
+		}
 
 		$comment_ID = wp_insert_comment( $commentdata );
 		if ( ! $comment_ID ) {
@@ -2025,6 +2188,20 @@ function wp_update_comment($commentarr) {
 	$comment_post_ID = $data['comment_post_ID'];
 	$keys = array( 'comment_post_ID', 'comment_content', 'comment_author', 'comment_author_email', 'comment_approved', 'comment_karma', 'comment_author_url', 'comment_date', 'comment_date_gmt', 'comment_type', 'comment_parent', 'user_id', 'comment_agent', 'comment_author_IP' );
 	$data = wp_array_slice_assoc( $data, $keys );
+
+	/**
+	 * Filters the comment data immediately before it is updated in the database.
+	 *
+	 * Note: data being passed to the filter is already unslashed.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array $data       The new, processed comment data.
+	 * @param array $comment    The old, unslashed comment data.
+	 * @param array $commentarr The new, raw comment data.
+	 */
+	$data = apply_filters( 'wp_update_comment_data', $data, $comment, $commentarr );
+
 	$rval = $wpdb->update( $wpdb->comments, $data, compact( 'comment_ID' ) );
 
 	clean_comment_cache( $comment_ID );
@@ -2292,19 +2469,23 @@ function do_all_pings() {
  * Perform trackbacks.
  *
  * @since 1.5.0
+ * @since 4.7.0 $post_id can be a WP_Post object.
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
- * @param int $post_id Post ID to do trackbacks on.
+ * @param int|WP_Post $post_id Post object or ID to do trackbacks on.
  */
-function do_trackbacks($post_id) {
+function do_trackbacks( $post_id ) {
 	global $wpdb;
-
 	$post = get_post( $post_id );
-	$to_ping = get_to_ping($post_id);
-	$pinged  = get_pung($post_id);
-	if ( empty($to_ping) ) {
-		$wpdb->update($wpdb->posts, array('to_ping' => ''), array('ID' => $post_id) );
+	if ( ! $post ) {
+		return false;
+	}
+
+	$to_ping = get_to_ping( $post );
+	$pinged  = get_pung( $post );
+	if ( empty( $to_ping ) ) {
+		$wpdb->update($wpdb->posts, array( 'to_ping' => '' ), array( 'ID' => $post->ID ) );
 		return;
 	}
 
@@ -2327,10 +2508,11 @@ function do_trackbacks($post_id) {
 		foreach ( (array) $to_ping as $tb_ping ) {
 			$tb_ping = trim($tb_ping);
 			if ( !in_array($tb_ping, $pinged) ) {
-				trackback($tb_ping, $post_title, $excerpt, $post_id);
+				trackback( $tb_ping, $post_title, $excerpt, $post->ID );
 				$pinged[] = $tb_ping;
 			} else {
-				$wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, %s, '')) WHERE ID = %d", $tb_ping, $post_id) );
+				$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET to_ping = TRIM(REPLACE(to_ping, %s,
+					'')) WHERE ID = %d", $tb_ping, $post->ID ) );
 			}
 		}
 	}
@@ -2361,21 +2543,28 @@ function generic_ping( $post_id = 0 ) {
  * Pings back the links found in a post.
  *
  * @since 0.71
+ * @since 4.7.0 $post_id can be a WP_Post object.
  *
- * @global string $wp_version
- *
- * @param string $content Post content to check for links.
- * @param int $post_ID Post ID.
+ * @param string $content Post content to check for links. If empty will retrieve from post.
+ * @param int|WP_Post $post_id Post Object or ID.
  */
-function pingback($content, $post_ID) {
-	global $wp_version;
-	include_once(ABSPATH . WPINC . '/class-IXR.php');
-	include_once(ABSPATH . WPINC . '/class-wp-http-ixr-client.php');
+function pingback( $content, $post_id ) {
+	include_once( ABSPATH . WPINC . '/class-IXR.php' );
+	include_once( ABSPATH . WPINC . '/class-wp-http-ixr-client.php' );
 
 	// original code by Mort (http://mort.mine.nu:8080)
 	$post_links = array();
 
-	$pung = get_pung($post_ID);
+	$post = get_post( $post_id );
+	if ( ! $post ) {
+		return;
+	}
+
+	$pung = get_pung( $post );
+
+	if ( empty( $content ) ) {
+		$content = $post->post_content;
+	}
 
 	// Step 1
 	// Parsing the post, external links (if any) are stored in the $post_links array
@@ -2391,7 +2580,7 @@ function pingback($content, $post_ID) {
 	// We don't wanna ping first and second types, even if they have a valid <link/>
 
 	foreach ( (array) $post_links_temp as $link_test ) :
-		if ( !in_array($link_test, $pung) && (url_to_postid($link_test) != $post_ID) // If we haven't pung it already and it isn't a link to itself
+		if ( ! in_array( $link_test, $pung ) && ( url_to_postid( $link_test ) != $post->ID ) // If we haven't pung it already and it isn't a link to itself
 				&& !is_local_attachment($link_test) ) : // Also, let's never ping local attachments.
 			if ( $test = @parse_url($link_test) ) {
 				if ( isset($test['query']) )
@@ -2412,7 +2601,7 @@ function pingback($content, $post_ID) {
 	 * @param array &$pung       Whether a link has already been pinged, passed by reference.
 	 * @param int   $post_ID     The post ID.
 	 */
-	do_action_ref_array( 'pre_ping', array( &$post_links, &$pung, $post_ID ) );
+	do_action_ref_array( 'pre_ping', array( &$post_links, &$pung, $post->ID ) );
 
 	foreach ( (array) $post_links as $pagelinkedto ) {
 		$pingback_server_url = discover_pingback_server_uri( $pagelinkedto );
@@ -2420,7 +2609,7 @@ function pingback($content, $post_ID) {
 		if ( $pingback_server_url ) {
 			@ set_time_limit( 60 );
 			// Now, the RPC call
-			$pagelinkedfrom = get_permalink($post_ID);
+			$pagelinkedfrom = get_permalink( $post );
 
 			// using a timeout of 3 seconds should be enough to cover slow servers
 			$client = new WP_HTTP_IXR_Client($pingback_server_url);
@@ -2437,12 +2626,12 @@ function pingback($content, $post_ID) {
 			 * @param string $pagelinkedto        URL of page linked to.
 			 * @param string $pagelinkedfrom      URL of page linked from.
 			 */
-			$client->useragent = apply_filters( 'pingback_useragent', $client->useragent . ' -- WordPress/' . $wp_version, $client->useragent, $pingback_server_url, $pagelinkedto, $pagelinkedfrom );
+			$client->useragent = apply_filters( 'pingback_useragent', $client->useragent . ' -- WordPress/' . get_bloginfo( 'version' ), $client->useragent, $pingback_server_url, $pagelinkedto, $pagelinkedfrom );
 			// when set to true, this outputs debug messages by itself
 			$client->debug = false;
 
 			if ( $client->query('pingback.ping', $pagelinkedfrom, $pagelinkedto) || ( isset($client->error->code) && 48 == $client->error->code ) ) // Already registered
-				add_ping( $post_ID, $pagelinkedto );
+				add_ping( $post, $pagelinkedto );
 		}
 	}
 }
@@ -2506,20 +2695,17 @@ function trackback($trackback_url, $title, $excerpt, $ID) {
  *
  * @since 1.2.0
  *
- * @global string $wp_version
- *
  * @param string $server Host of blog to connect to.
  * @param string $path Path to send the ping.
  */
 function weblog_ping($server = '', $path = '') {
-	global $wp_version;
-	include_once(ABSPATH . WPINC . '/class-IXR.php');
-	include_once(ABSPATH . WPINC . '/class-wp-http-ixr-client.php');
+	include_once( ABSPATH . WPINC . '/class-IXR.php' );
+	include_once( ABSPATH . WPINC . '/class-wp-http-ixr-client.php' );
 
 	// using a timeout of 3 seconds should be enough to cover slow servers
 	$client = new WP_HTTP_IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path));
 	$client->timeout = 3;
-	$client->useragent .= ' -- WordPress/'.$wp_version;
+	$client->useragent .= ' -- WordPress/' . get_bloginfo( 'version' );
 
 	// when set to true, this outputs debug messages by itself
 	$client->debug = false;
@@ -2741,7 +2927,7 @@ function _close_comments_for_old_post( $open, $post_id ) {
 function wp_handle_comment_submission( $comment_data ) {
 
 	$comment_post_ID = $comment_parent = 0;
-	$comment_author = $comment_author_email = $comment_author_url = $comment_content = $_wp_unfiltered_html_comment = null;
+	$comment_author = $comment_author_email = $comment_author_url = $comment_content = null;
 
 	if ( isset( $comment_data['comment_post_ID'] ) ) {
 		$comment_post_ID = (int) $comment_data['comment_post_ID'];
@@ -2761,9 +2947,6 @@ function wp_handle_comment_submission( $comment_data ) {
 	if ( isset( $comment_data['comment_parent'] ) ) {
 		$comment_parent = absint( $comment_data['comment_parent'] );
 	}
-	if ( isset( $comment_data['_wp_unfiltered_html_comment'] ) && is_string( $comment_data['_wp_unfiltered_html_comment'] ) ) {
-		$_wp_unfiltered_html_comment = trim( $comment_data['_wp_unfiltered_html_comment'] );
-	}
 
 	$post = get_post( $comment_post_ID );
 
@@ -2876,12 +3059,11 @@ function wp_handle_comment_submission( $comment_data ) {
 		}
 	} else {
 		if ( get_option( 'comment_registration' ) ) {
-			return new WP_Error( 'not_logged_in', __( 'Sorry, you must be logged in to post a comment.' ), 403 );
+			return new WP_Error( 'not_logged_in', __( 'Sorry, you must be logged in to comment.' ), 403 );
 		}
 	}
 
 	$comment_type = '';
-	$max_lengths = wp_get_comment_fields_max_lengths();
 
 	if ( get_option( 'require_name_email' ) && ! $user->exists() ) {
 		if ( 6 > strlen( $comment_author_email ) || '' == $comment_author ) {
@@ -2891,22 +3073,8 @@ function wp_handle_comment_submission( $comment_data ) {
 		}
 	}
 
-	if ( isset( $comment_author ) && $max_lengths['comment_author'] < mb_strlen( $comment_author, '8bit' ) ) {
-		return new WP_Error( 'comment_author_column_length', __( '<strong>ERROR</strong>: your name is too long.' ), 200 );
-	}
-
-	if ( isset( $comment_author_email ) && $max_lengths['comment_author_email'] < strlen( $comment_author_email ) ) {
-		return new WP_Error( 'comment_author_email_column_length', __( '<strong>ERROR</strong>: your email address is too long.' ), 200 );
-	}
-
-	if ( isset( $comment_author_url ) && $max_lengths['comment_author_url'] < strlen( $comment_author_url ) ) {
-		return new WP_Error( 'comment_author_url_column_length', __( '<strong>ERROR</strong>: your url is too long.' ), 200 );
-	}
-
 	if ( '' == $comment_content ) {
 		return new WP_Error( 'require_valid_comment', __( '<strong>ERROR</strong>: please type a comment.' ), 200 );
-	} elseif ( $max_lengths['comment_content'] < mb_strlen( $comment_content, '8bit' ) ) {
-		return new WP_Error( 'comment_content_column_length', __( '<strong>ERROR</strong>: your comment is too long.' ), 200 );
 	}
 
 	$commentdata = compact(
@@ -2920,11 +3088,19 @@ function wp_handle_comment_submission( $comment_data ) {
 		'user_ID'
 	);
 
-	$comment_id = wp_new_comment( wp_slash( $commentdata ) );
+	$check_max_lengths = wp_check_comment_data_max_lengths( $commentdata );
+	if ( is_wp_error( $check_max_lengths ) ) {
+		return $check_max_lengths;
+	}
+
+	$comment_id = wp_new_comment( wp_slash( $commentdata ), true );
+	if ( is_wp_error( $comment_id ) ) {
+		return $comment_id;
+	}
+
 	if ( ! $comment_id ) {
 		return new WP_Error( 'comment_save_error', __( '<strong>ERROR</strong>: The comment could not be saved. Please try again later.' ), 500 );
 	}
 
 	return get_comment( $comment_id );
-
 }
diff --git a/wp-includes/compat.php b/wp-includes/compat.php
index 696e2b8ea..0ccee2d49 100644
--- a/wp-includes/compat.php
+++ b/wp-includes/compat.php
@@ -450,7 +450,7 @@ if ( ! function_exists( 'array_replace_recursive' ) ) :
 	 *
 	 * @since 4.5.3
 	 *
-	 * @see http://php.net/manual/en/function.array-replace-recursive.php#109390
+	 * @see https://secure.php.net/manual/en/function.array-replace-recursive.php#109390
 	 *
 	 * @param  array $base         Array with keys needing to be replaced.
 	 * @param  array $replacements Array with the replaced keys.
diff --git a/wp-includes/cron.php b/wp-includes/cron.php
index a4d160f70..f7e444b83 100644
--- a/wp-includes/cron.php
+++ b/wp-includes/cron.php
@@ -1,28 +1,28 @@
 <?php
 /**
- * WordPress CRON API
+ * WordPress Cron API
  *
  * @package WordPress
  */
 
 /**
- * Schedules a hook to run only once.
+ * Schedules an event to run only once.
  *
- * Schedules a hook which will be executed once by the WordPress actions core at
+ * Schedules an event which will execute once by the WordPress actions core at
  * a time which you specify. The action will fire off when someone visits your
  * WordPress site, if the schedule time has passed.
  *
  * Note that scheduling an event to occur within 10 minutes of an existing event
- * with the same action hook will be ignored, unless you pass unique `$args` values
+ * with the same action hook will be ignored unless you pass unique `$args` values
  * for each scheduled event.
  *
  * @since 2.1.0
  * @link https://codex.wordpress.org/Function_Reference/wp_schedule_single_event
  *
- * @param int $timestamp Timestamp for when to run the event.
- * @param string $hook Action hook to execute when cron is run.
+ * @param int $timestamp Unix timestamp (UTC) for when to run the event.
+ * @param string $hook Action hook to execute when event is run.
  * @param array $args Optional. Arguments to pass to the hook's callback function.
- * @return false|void False when an event is not scheduled.
+ * @return false|void False if the event does not get scheduled.
  */
 function wp_schedule_single_event( $timestamp, $hook, $args = array()) {
 	// Make sure timestamp is a positive integer
@@ -43,7 +43,14 @@ function wp_schedule_single_event( $timestamp, $hook, $args = array()) {
 	 *
 	 * @since 3.1.0
 	 *
-	 * @param object $event An object containing an event's data.
+	 * @param stdClass $event {
+	 *     An object containing an event's data.
+	 *
+	 *     @type string       $hook      Action hook to execute when event is run.
+	 *     @type int          $timestamp Unix timestamp (UTC) for when to run the event.
+	 *     @type string|false $schedule  How often the event should recur. See `wp_get_schedules()`.
+	 *     @type array        $args      Arguments to pass to the hook's callback function.
+	 * }
 	 */
 	$event = apply_filters( 'schedule_event', $event );
 
@@ -59,24 +66,24 @@ function wp_schedule_single_event( $timestamp, $hook, $args = array()) {
 }
 
 /**
- * Schedule a periodic event.
+ * Schedule a recurring event.
  *
  * Schedules a hook which will be executed by the WordPress actions core on a
  * specific interval, specified by you. The action will trigger when someone
  * visits your WordPress site, if the scheduled time has passed.
  *
- * Valid values for the recurrence are hourly, daily and twicedaily. These can
+ * Valid values for the recurrence are hourly, daily, and twicedaily. These can
  * be extended using the {@see 'cron_schedules'} filter in wp_get_schedules().
  *
  * Use wp_next_scheduled() to prevent duplicates
  *
  * @since 2.1.0
  *
- * @param int $timestamp Timestamp for when to run the event.
+ * @param int $timestamp Unix timestamp (UTC) for when to run the event.
  * @param string $recurrence How often the event should recur.
- * @param string $hook Action hook to execute when cron is run.
+ * @param string $hook Action hook to execute when event is run.
  * @param array $args Optional. Arguments to pass to the hook's callback function.
- * @return false|void False when an event is not scheduled.
+ * @return false|void False if the event does not get scheduled.
  */
 function wp_schedule_event( $timestamp, $recurrence, $hook, $args = array()) {
 	// Make sure timestamp is a positive integer
@@ -110,11 +117,11 @@ function wp_schedule_event( $timestamp, $recurrence, $hook, $args = array()) {
  *
  * @since 2.1.0
  *
- * @param int $timestamp Timestamp for when to run the event.
+ * @param int $timestamp Unix timestamp (UTC) for when to run the event.
  * @param string $recurrence How often the event should recur.
- * @param string $hook Action hook to execute when cron is run.
+ * @param string $hook Action hook to execute when event is run.
  * @param array $args Optional. Arguments to pass to the hook's callback function.
- * @return false|void False when an event is not scheduled.
+ * @return false|void False if the event does not get rescheduled.
  */
 function wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array() ) {
 	// Make sure timestamp is a positive integer
@@ -152,20 +159,20 @@ function wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array() )
 }
 
 /**
- * Unschedule a previously scheduled cron job.
+ * Unschedule a previously scheduled event.
  *
- * The $timestamp and $hook parameters are required, so that the event can be
+ * The $timestamp and $hook parameters are required so that the event can be
  * identified.
  *
  * @since 2.1.0
  *
- * @param int $timestamp Timestamp for when to run the event.
+ * @param int $timestamp Unix timestamp (UTC) for when to run the event.
  * @param string $hook Action hook, the execution of which will be unscheduled.
  * @param array $args Arguments to pass to the hook's callback function.
  * Although not passed to a callback function, these arguments are used
  * to uniquely identify the scheduled event, so they should be the same
  * as those used when originally scheduling the event.
- * @return false|void False when an event is not unscheduled.
+ * @return false|void False if the event does not get unscheduled.
  */
 function wp_unschedule_event( $timestamp, $hook, $args = array() ) {
 	// Make sure timestamp is a positive integer
@@ -184,12 +191,12 @@ function wp_unschedule_event( $timestamp, $hook, $args = array() ) {
 }
 
 /**
- * Unschedule all cron jobs attached to a specific hook.
+ * Unschedule all events attached to the specified hook.
  *
  * @since 2.1.0
  *
  * @param string $hook Action hook, the execution of which will be unscheduled.
- * @param array $args Optional. Arguments that were to be pass to the hook's callback function.
+ * @param array $args Optional. Arguments that were to be passed to the hook's callback function.
  */
 function wp_clear_scheduled_hook( $hook, $args = array() ) {
 	// Backward compatibility
@@ -215,13 +222,13 @@ function wp_clear_scheduled_hook( $hook, $args = array() ) {
 }
 
 /**
- * Retrieve the next timestamp for a cron event.
+ * Retrieve the next timestamp for an event.
  *
  * @since 2.1.0
  *
- * @param string $hook Action hook to execute when cron is run.
+ * @param string $hook Action hook to execute when event is run.
  * @param array $args Optional. Arguments to pass to the hook's callback function.
- * @return false|int The UNIX timestamp of the next time the scheduled event will occur.
+ * @return false|int The Unix timestamp of the next time the scheduled event will occur.
  */
 function wp_next_scheduled( $hook, $args = array() ) {
 	$crons = _get_cron_array();
@@ -240,7 +247,7 @@ function wp_next_scheduled( $hook, $args = array() ) {
  *
  * @since 2.1.0
  *
- * @param int $gmt_time Optional. Unix timestamp. Default 0 (current time is used).
+ * @param int $gmt_time Optional. Unix timestamp (UTC). Default 0 (current time is used).
  */
 function spawn_cron( $gmt_time = 0 ) {
 	if ( ! $gmt_time )
@@ -250,7 +257,7 @@ function spawn_cron( $gmt_time = 0 ) {
 		return;
 
 	/*
-	 * Get the cron lock, which is a unix timestamp of when the last cron was spawned
+	 * Get the cron lock, which is a Unix timestamp of when the last cron was spawned
 	 * and has not finished running.
 	 *
 	 * Multiple processes on multiple web servers can run this code concurrently,
@@ -364,11 +371,11 @@ function wp_cron() {
 }
 
 /**
- * Retrieve supported and filtered Cron recurrences.
+ * Retrieve supported event recurrence schedules.
  *
- * The supported recurrences are 'hourly' and 'daily'. A plugin may add more by
- * hooking into the {@see 'cron_schedules'} filter. The filter accepts an array of
- * arrays. The outer array has a key that is the name of the schedule or for
+ * The default supported recurrences are 'hourly', 'twicedaily', and 'daily'. A plugin may
+ * add more by hooking into the {@see 'cron_schedules'} filter. The filter accepts an array
+ * of arrays. The outer array has a key that is the name of the schedule or for
  * example 'weekly'. The value is an array with two keys, one is 'interval' and
  * the other is 'display'.
  *
@@ -410,13 +417,15 @@ function wp_get_schedules() {
 }
 
 /**
- * Retrieve Cron schedule for hook with arguments.
+ * Retrieve the recurrence schedule for an event.
+ *
+ * @see wp_get_schedules() for available schedules.
  *
  * @since 2.1.0
  *
- * @param string $hook Action hook to execute when cron is run.
- * @param array $args Optional. Arguments to pass to the hook's callback function.
- * @return string|false False, if no schedule. Schedule on success.
+ * @param string $hook Action hook to identify the event.
+ * @param array $args Optional. Arguments passed to the event's callback function.
+ * @return string|false False, if no schedule. Schedule name on success.
  */
 function wp_get_schedule($hook, $args = array()) {
 	$crons = _get_cron_array();
diff --git a/wp-includes/css/admin-bar-rtl.css b/wp-includes/css/admin-bar-rtl.css
index c02e1efc6..301459f5e 100644
--- a/wp-includes/css/admin-bar-rtl.css
+++ b/wp-includes/css/admin-bar-rtl.css
@@ -294,6 +294,7 @@ html:lang(he-il) .rtl #wpadminbar *  {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
diff --git a/wp-includes/css/admin-bar-rtl.min.css b/wp-includes/css/admin-bar-rtl.min.css
index 03cc3079c..985002f54 100644
--- a/wp-includes/css/admin-bar-rtl.min.css
+++ b/wp-includes/css/admin-bar-rtl.min.css
@@ -1 +1 @@
-#wpadminbar,#wpadminbar *{font-size:13px;font-weight:400;line-height:32px}#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-shadow:none;text-transform:none;letter-spacing:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:none;transition:none;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto}.rtl #wpadminbar *{font-family:Tahoma,sans-serif}html:lang(he-il) .rtl #wpadminbar *{font-family:Arial,sans-serif}#wpadminbar .ab-empty-item{cursor:default;outline:0}#wpadminbar .ab-empty-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpadminbar ul li:after,#wpadminbar ul li:before{content:normal}#wpadminbar a,#wpadminbar a img,#wpadminbar a img:hover,#wpadminbar a:hover{outline:0;border:none;text-decoration:none;background:0 0}#wpadminbar a:active,#wpadminbar a:focus,#wpadminbar div,#wpadminbar input[type=text],#wpadminbar input[type=password],#wpadminbar input[type=number],#wpadminbar input[type=search],#wpadminbar input[type=email],#wpadminbar input[type=url],#wpadminbar select,#wpadminbar textarea{-webkit-box-shadow:none;box-shadow:none;outline:0}#wpadminbar{direction:rtl;color:#ccc;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;height:32px;position:fixed;top:0;right:0;width:100%;min-width:600px;z-index:99999;background:#23282d}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0 0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar ul#wp-admin-bar-root-default>li{margin-left:0}#wpadminbar .quicklinks ul{text-align:right}#wpadminbar li{float:right}#wpadminbar .quicklinks .ab-top-secondary>li{float:left}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:32px;display:block;padding:0 10px;margin:0}#wpadminbar .quicklinks>ul>li>a{padding:0 7px 0 8px}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0;padding:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);background:#32373c;display:none;position:absolute;float:none}#wpadminbar .selected .shortlink-input,#wpadminbar li.hover>.ab-sub-wrapper,#wpadminbar.nojs li:hover>.ab-sub-wrapper{display:block}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:32px;right:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{left:0;right:auto}#wpadminbar .ab-submenu{padding:6px 0}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:600}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar .shortlink-input,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item{line-height:26px;height:26px;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-right:100%;margin-top:-32px}#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper{margin-right:0;right:inherit;left:100%}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{background:#32373c;color:#00b9eb}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label{color:#00b9eb}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{position:relative;float:right;font:400 20px/1 dashicons;speak:none;padding:4px 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important;margin-left:6px}#wpadminbar #adminbarsearch:before,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before{color:#a0a5aa;color:rgba(240,245,250,.6);position:relative;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#wpadminbar .ab-label{display:inline-block;height:32px}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#b4b9be;color:rgba(240,245,250,.7)}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li div[tabindex]:focus,#wpadminbar .quicklinks .menupop.hover ul li div[tabindex]:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#00b9eb}#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#b4b9be}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#00b9eb}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before,#wpadminbar .menupop .menupop>.ab-item:before{position:absolute;font:400 17px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar .menupop .menupop>.ab-item{display:block;padding-left:2em}#wpadminbar .menupop .menupop>.ab-item:before{top:1px;left:4px;content:"\f141";color:inherit}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{padding-right:2em;padding-left:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:1px;right:6px;content:"\f139"}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;left:auto;margin:0;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#464b50}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus a,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li>a:hover{color:#00b9eb}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#32373c;display:inline;padding:2px 5px;font-size:10px;font-weight:600;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:left}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account>.ab-item:before{content:"\f110";top:2px;float:left;margin-right:6px;margin-left:0}#wp-admin-bar-my-account.with-avatar>.ab-item:before{display:none;content:none}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar .ab-item{white-space:nowrap}#wpadminbar #wp-admin-bar-user-actions>li{margin-right:16px;margin-left:16px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:6px 0 12px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-right:88px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0 0}#wp-admin-bar-user-info .avatar{position:absolute;right:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0 0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0 0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{display:block}#wpadminbar #wp-admin-bar-user-info .username{color:#a0a5aa;font-size:11px}#wpadminbar #wp-admin-bar-my-account.with-avatar>.ab-empty-item img,#wpadminbar #wp-admin-bar-my-account.with-avatar>a img{width:auto;height:16px;padding:0;border:1px solid #82878c;background:#eee;line-height:24px;vertical-align:middle;margin:-4px 6px 0 0;float:none;display:inline}#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar>.ab-empty-item img,#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar>a img{width:auto}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{width:15px;height:20px;margin-left:0;padding:6px 0 5px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0 7px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{content:"\f120";top:2px}#wpadminbar .quicklinks li .blavatar{float:right;font:400 16px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#eee}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar{color:#00b9eb}#wpadminbar .quicklinks li .blavatar:before{content:"\f120";height:16px;width:16px;display:inline-block;margin:6px -2px 0 8px}#wpadminbar #wp-admin-bar-appearance{margin-top:-12px}#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f541";top:2px}#wpadminbar #wp-admin-bar-customize>.ab-item:before{content:"\f540";top:2px}#wpadminbar #wp-admin-bar-edit>.ab-item:before{content:"\f464";top:2px}#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f226"}.wp-admin #wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f102"}#wpadminbar #wp-admin-bar-comments .ab-icon{margin-left:6px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{content:"\f101";top:3px}#wpadminbar #wp-admin-bar-comments .count-0{opacity:.5}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{content:"\f132";top:4px}#wpadminbar #wp-admin-bar-updates .ab-icon:before{content:"\f463";top:2px}#wpadminbar.ie8 #wp-admin-bar-search{display:block;min-width:32px}#wpadminbar #wp-admin-bar-search .ab-item{padding:0;background:0 0}#wpadminbar #adminbarsearch{position:relative;height:32px;padding:0 2px;z-index:1}#wpadminbar #adminbarsearch:before{position:absolute;top:6px;right:5px;z-index:20;font:400 20px/1 dashicons!important;content:"\f179";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{position:relative;z-index:30;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:24px;height:24px;width:24px;max-width:none;padding:0 24px 0 3px;margin:0;color:#ccc;background-color:rgba(255,255,255,0);border:none;outline:0;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:width,background;transition-property:width,background;-webkit-transition-timing-function:ease;transition-timing-function:ease}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{z-index:10;color:#000;width:200px;background-color:rgba(255,255,255,.9);cursor:text;border:0}#wpadminbar.ie7>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:3px;width:120px}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBR‌​AA7) 100% 0}#wpadminbar.ie8 #adminbarsearch.adminbar-focused:before{content:"\f179 "}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{background:#fff;z-index:-1}#wpadminbar #adminbarsearch .adminbar-button,.customize-support #wpadminbar .hide-if-customize,.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support #wpadminbar .hide-if-no-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;right:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{right:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;text-decoration:none;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6)}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:right}* html #wpadminbar .menupop a span{background-image:none}.no-font-face #wpadminbar ul.ab-top-menu>li>a.ab-item{display:block;width:45px;text-align:center;overflow:hidden;margin:0 3px}.no-font-face #wpadminbar #wp-admin-bar-edit>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-my-sites>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:0}.no-font-face #wpadminbar #wp-admin-bar-wp-logo>.ab-item,.no-font-face #wpadminbar .ab-icon,.no-font-face #wpadminbar .ab-icon:before,.no-font-face #wpadminbar a.ab-item:before{display:none!important}.no-font-face #wpadminbar ul.ab-top-menu>li>a>span.ab-label{display:inline}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon{display:inline!important}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon:before{content:"Menu";font:14px/45px sans-serif!important;display:inline-block!important;color:#fff}.no-font-face #wpadminbar #wp-admin-bar-site-name a.ab-item{color:#fff}@media screen and (max-width:782px){#wpadminbar ul#wp-admin-bar-root-default>li,.network-admin #wpadminbar ul#wp-admin-bar-top-secondary>li#wp-admin-bar-my-account{margin-left:0}html #wpadminbar{height:46px;min-width:300px}#wpadminbar *{font-size:14px;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:32px}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks>ul>li>a{padding:0;height:46px;line-height:46px;width:auto}#wpadminbar .ab-icon{font:40px/1 dashicons!important;margin:0;padding:0;width:52px;height:46px;text-align:center}#wpadminbar .ab-icon:before{text-align:center}#wpadminbar .ab-submenu{padding:0}#wpadminbar #wp-admin-bar-my-account a.ab-item,#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{text-overflow:clip}#wpadminbar .ab-label{display:none}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-top:-46px}#wpadminbar #wp-admin-bar-comments .ab-icon,#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin:0}#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .menupop>.ab-item{padding-left:30px}#wpadminbar .menupop .menupop>.ab-item:before{top:10px;left:6px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper .ab-item{font-size:16px;padding:8px 16px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper a:empty{display:none}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{padding:0;width:52px;height:46px;text-align:center;vertical-align:top}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{font:28px/1 dashicons!important;top:-3px}#wpadminbar .ab-icon,#wpadminbar .ab-item:before{padding:0}#wpadminbar #wp-admin-bar-customize>.ab-item,#wpadminbar #wp-admin-bar-edit>.ab-item,#wpadminbar #wp-admin-bar-my-account>.ab-item,#wpadminbar #wp-admin-bar-my-sites>.ab-item,#wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:100%;white-space:nowrap;overflow:hidden;width:52px;padding:0;color:#a0a5aa;position:relative}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{padding:0;margin-left:0}#wpadminbar #wp-admin-bar-customize>.ab-item:before,#wpadminbar #wp-admin-bar-edit>.ab-item:before,#wpadminbar #wp-admin-bar-my-account>.ab-item:before,#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{display:block;text-indent:0;font:400 32px/1 dashicons;speak:none;top:7px;width:52px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar #wp-admin-bar-appearance{margin-top:0}#wpadminbar .quicklinks li .blavatar:before{display:none}#wpadminbar #wp-admin-bar-search{display:none}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{top:0;line-height:53px;height:46px!important;text-align:center;width:52px;display:block}#wpadminbar #wp-admin-bar-updates{text-align:center}#wpadminbar #wp-admin-bar-updates .ab-icon:before{top:3px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{display:block;font-size:34px;height:46px;line-height:47px;top:0}#wp-toolbar>ul>li,#wpadminbar #wp-admin-bar-user-actions.ab-submenu img.avatar{display:none}#wpadminbar #wp-admin-bar-my-account>a{position:relative;white-space:nowrap;text-indent:150%;width:28px;padding:0 10px;overflow:hidden}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{position:absolute;top:13px;left:10px;width:26px;height:26px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:0}#wpadminbar #wp-admin-bar-user-info .display-name{height:auto;font-size:16px;line-height:24px;color:#eee}#wpadminbar #wp-admin-bar-user-info a{padding-top:4px}#wpadminbar #wp-admin-bar-user-info .username{line-height:.8!important;margin-bottom:-2px}#wpadminbar li#wp-admin-bar-comments,#wpadminbar li#wp-admin-bar-customize,#wpadminbar li#wp-admin-bar-edit,#wpadminbar li#wp-admin-bar-menu-toggle,#wpadminbar li#wp-admin-bar-my-account,#wpadminbar li#wp-admin-bar-my-sites,#wpadminbar li#wp-admin-bar-new-content,#wpadminbar li#wp-admin-bar-site-name,#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:block}#wpadminbar li.hover ul li,#wpadminbar li:hover ul li,#wpadminbar li:hover ul li:hover ul li{display:list-item}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}#wpadminbar #wp-admin-bar-comments,#wpadminbar #wp-admin-bar-edit,#wpadminbar #wp-admin-bar-my-account,#wpadminbar #wp-admin-bar-my-sites,#wpadminbar #wp-admin-bar-new-content,#wpadminbar #wp-admin-bar-site-name,#wpadminbar #wp-admin-bar-updates,#wpadminbar #wp-admin-bar-wp-logo,#wpadminbar .ab-top-menu,#wpadminbar .ab-top-secondary{position:static}#wpadminbar #wp-admin-bar-my-account{float:left}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:10px;right:0}}@media screen and (max-width:600px){#wpadminbar{position:absolute}#wp-responsive-overlay{position:fixed;top:0;right:0;width:100%;height:100%;z-index:400}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{width:100%;right:0}#wpadminbar .menupop .menupop>.ab-item:before{display:none}#wpadminbar #wp-admin-bar-wp-logo.menupop .ab-sub-wrapper{margin-right:0}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{margin:0;width:100%;top:auto;right:auto;position:static;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 30px 19px 15px}#wpadminbar li:hover ul li ul li{display:list-item}#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:none}}@media screen and (max-width:400px){#wpadminbar li#wp-admin-bar-comments{display:none}}
\ No newline at end of file
+#wpadminbar,#wpadminbar *{font-size:13px;font-weight:400;line-height:32px}#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-shadow:none;text-transform:none;letter-spacing:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:none;transition:none;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto}.rtl #wpadminbar *{font-family:Tahoma,sans-serif}html:lang(he-il) .rtl #wpadminbar *{font-family:Arial,sans-serif}#wpadminbar .ab-empty-item{cursor:default;outline:0}#wpadminbar .ab-empty-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpadminbar ul li:after,#wpadminbar ul li:before{content:normal}#wpadminbar a,#wpadminbar a img,#wpadminbar a img:hover,#wpadminbar a:hover{outline:0;border:none;text-decoration:none;background:0 0}#wpadminbar a:active,#wpadminbar a:focus,#wpadminbar div,#wpadminbar input[type=text],#wpadminbar input[type=password],#wpadminbar input[type=number],#wpadminbar input[type=search],#wpadminbar input[type=email],#wpadminbar input[type=url],#wpadminbar select,#wpadminbar textarea{-webkit-box-shadow:none;box-shadow:none;outline:0}#wpadminbar{direction:rtl;color:#ccc;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;height:32px;position:fixed;top:0;right:0;width:100%;min-width:600px;z-index:99999;background:#23282d}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0 0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar ul#wp-admin-bar-root-default>li{margin-left:0}#wpadminbar .quicklinks ul{text-align:right}#wpadminbar li{float:right}#wpadminbar .quicklinks .ab-top-secondary>li{float:left}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:32px;display:block;padding:0 10px;margin:0}#wpadminbar .quicklinks>ul>li>a{padding:0 7px 0 8px}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0;padding:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);background:#32373c;display:none;position:absolute;float:none}#wpadminbar .selected .shortlink-input,#wpadminbar li.hover>.ab-sub-wrapper,#wpadminbar.nojs li:hover>.ab-sub-wrapper{display:block}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:32px;right:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{left:0;right:auto}#wpadminbar .ab-submenu{padding:6px 0}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:600}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar .shortlink-input,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item{line-height:26px;height:26px;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-right:100%;margin-top:-32px}#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper{margin-right:0;right:inherit;left:100%}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{background:#32373c;color:#00b9eb}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label{color:#00b9eb}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{position:relative;float:right;font:400 20px/1 dashicons;speak:none;padding:4px 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important;margin-left:6px}#wpadminbar #adminbarsearch:before,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before{color:#a0a5aa;color:rgba(240,245,250,.6);position:relative;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#wpadminbar .ab-label{display:inline-block;height:32px}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#b4b9be;color:rgba(240,245,250,.7)}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li div[tabindex]:focus,#wpadminbar .quicklinks .menupop.hover ul li div[tabindex]:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#00b9eb}#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#b4b9be}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#00b9eb}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before,#wpadminbar .menupop .menupop>.ab-item:before{position:absolute;font:400 17px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar .menupop .menupop>.ab-item{display:block;padding-left:2em}#wpadminbar .menupop .menupop>.ab-item:before{top:1px;left:4px;content:"\f141";color:inherit}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{padding-right:2em;padding-left:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:1px;right:6px;content:"\f139"}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;left:auto;margin:0;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#464b50}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus a,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li>a:hover{color:#00b9eb}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#32373c;display:inline;padding:2px 5px;font-size:10px;font-weight:600;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:left}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account>.ab-item:before{content:"\f110";top:2px;float:left;margin-right:6px;margin-left:0}#wp-admin-bar-my-account.with-avatar>.ab-item:before{display:none;content:none}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar .ab-item{white-space:nowrap}#wpadminbar #wp-admin-bar-user-actions>li{margin-right:16px;margin-left:16px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:6px 0 12px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-right:88px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0 0}#wp-admin-bar-user-info .avatar{position:absolute;right:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0 0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0 0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{display:block}#wpadminbar #wp-admin-bar-user-info .username{color:#a0a5aa;font-size:11px}#wpadminbar #wp-admin-bar-my-account.with-avatar>.ab-empty-item img,#wpadminbar #wp-admin-bar-my-account.with-avatar>a img{width:auto;height:16px;padding:0;border:1px solid #82878c;background:#eee;line-height:24px;vertical-align:middle;margin:-4px 6px 0 0;float:none;display:inline}#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar>.ab-empty-item img,#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar>a img{width:auto}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{width:15px;height:20px;margin-left:0;padding:6px 0 5px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0 7px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{content:"\f120";top:2px}#wpadminbar .quicklinks li .blavatar{float:right;font:400 16px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#eee}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar{color:#00b9eb}#wpadminbar .quicklinks li .blavatar:before{content:"\f120";height:16px;width:16px;display:inline-block;margin:6px -2px 0 8px}#wpadminbar #wp-admin-bar-appearance{margin-top:-12px}#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f541";top:2px}#wpadminbar #wp-admin-bar-customize>.ab-item:before{content:"\f540";top:2px}#wpadminbar #wp-admin-bar-edit>.ab-item:before{content:"\f464";top:2px}#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f226"}.wp-admin #wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f102"}#wpadminbar #wp-admin-bar-comments .ab-icon{margin-left:6px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{content:"\f101";top:3px}#wpadminbar #wp-admin-bar-comments .count-0{opacity:.5}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{content:"\f132";top:4px}#wpadminbar #wp-admin-bar-updates .ab-icon:before{content:"\f463";top:2px}#wpadminbar.ie8 #wp-admin-bar-search{display:block;min-width:32px}#wpadminbar #wp-admin-bar-search .ab-item{padding:0;background:0 0}#wpadminbar #adminbarsearch{position:relative;height:32px;padding:0 2px;z-index:1}#wpadminbar #adminbarsearch:before{position:absolute;top:6px;right:5px;z-index:20;font:400 20px/1 dashicons!important;content:"\f179";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{position:relative;z-index:30;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:24px;height:24px;width:24px;max-width:none;padding:0 24px 0 3px;margin:0;color:#ccc;background-color:rgba(255,255,255,0);border:none;outline:0;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:width,background;transition-property:width,background;-webkit-transition-timing-function:ease;transition-timing-function:ease}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{z-index:10;color:#000;width:200px;background-color:rgba(255,255,255,.9);cursor:text;border:0}#wpadminbar.ie7>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:3px;width:120px}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBR‌​AA7) 100% 0}#wpadminbar.ie8 #adminbarsearch.adminbar-focused:before{content:"\f179 "}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{background:#fff;z-index:-1}#wpadminbar #adminbarsearch .adminbar-button,.customize-support #wpadminbar .hide-if-customize,.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support #wpadminbar .hide-if-no-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;right:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{right:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;text-decoration:none;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6)}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:right}* html #wpadminbar .menupop a span{background-image:none}.no-font-face #wpadminbar ul.ab-top-menu>li>a.ab-item{display:block;width:45px;text-align:center;overflow:hidden;margin:0 3px}.no-font-face #wpadminbar #wp-admin-bar-edit>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-my-sites>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:0}.no-font-face #wpadminbar #wp-admin-bar-wp-logo>.ab-item,.no-font-face #wpadminbar .ab-icon,.no-font-face #wpadminbar .ab-icon:before,.no-font-face #wpadminbar a.ab-item:before{display:none!important}.no-font-face #wpadminbar ul.ab-top-menu>li>a>span.ab-label{display:inline}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon{display:inline!important}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon:before{content:"Menu";font:14px/45px sans-serif!important;display:inline-block!important;color:#fff}.no-font-face #wpadminbar #wp-admin-bar-site-name a.ab-item{color:#fff}@media screen and (max-width:782px){#wpadminbar ul#wp-admin-bar-root-default>li,.network-admin #wpadminbar ul#wp-admin-bar-top-secondary>li#wp-admin-bar-my-account{margin-left:0}html #wpadminbar{height:46px;min-width:300px}#wpadminbar *{font-size:14px;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:32px}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks>ul>li>a{padding:0;height:46px;line-height:46px;width:auto}#wpadminbar .ab-icon{font:40px/1 dashicons!important;margin:0;padding:0;width:52px;height:46px;text-align:center}#wpadminbar .ab-icon:before{text-align:center}#wpadminbar .ab-submenu{padding:0}#wpadminbar #wp-admin-bar-my-account a.ab-item,#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{text-overflow:clip}#wpadminbar .ab-label{display:none}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-top:-46px}#wpadminbar #wp-admin-bar-comments .ab-icon,#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin:0}#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .menupop>.ab-item{padding-left:30px}#wpadminbar .menupop .menupop>.ab-item:before{top:10px;left:6px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper .ab-item{font-size:16px;padding:8px 16px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper a:empty{display:none}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{padding:0;width:52px;height:46px;text-align:center;vertical-align:top}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{font:28px/1 dashicons!important;top:-3px}#wpadminbar .ab-icon,#wpadminbar .ab-item:before{padding:0}#wpadminbar #wp-admin-bar-customize>.ab-item,#wpadminbar #wp-admin-bar-edit>.ab-item,#wpadminbar #wp-admin-bar-my-account>.ab-item,#wpadminbar #wp-admin-bar-my-sites>.ab-item,#wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:100%;white-space:nowrap;overflow:hidden;width:52px;padding:0;color:#a0a5aa;position:relative}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{padding:0;margin-left:0}#wpadminbar #wp-admin-bar-customize>.ab-item:before,#wpadminbar #wp-admin-bar-edit>.ab-item:before,#wpadminbar #wp-admin-bar-my-account>.ab-item:before,#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{display:block;text-indent:0;font:400 32px/1 dashicons;speak:none;top:7px;width:52px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar #wp-admin-bar-appearance{margin-top:0}#wpadminbar .quicklinks li .blavatar:before{display:none}#wpadminbar #wp-admin-bar-search{display:none}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{top:0;line-height:53px;height:46px!important;text-align:center;width:52px;display:block}#wpadminbar #wp-admin-bar-updates{text-align:center}#wpadminbar #wp-admin-bar-updates .ab-icon:before{top:3px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{display:block;font-size:34px;height:46px;line-height:47px;top:0}#wp-toolbar>ul>li,#wpadminbar #wp-admin-bar-user-actions.ab-submenu img.avatar{display:none}#wpadminbar #wp-admin-bar-my-account>a{position:relative;white-space:nowrap;text-indent:150%;width:28px;padding:0 10px;overflow:hidden}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{position:absolute;top:13px;left:10px;width:26px;height:26px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:0}#wpadminbar #wp-admin-bar-user-info .display-name{height:auto;font-size:16px;line-height:24px;color:#eee}#wpadminbar #wp-admin-bar-user-info a{padding-top:4px}#wpadminbar #wp-admin-bar-user-info .username{line-height:.8!important;margin-bottom:-2px}#wpadminbar li#wp-admin-bar-comments,#wpadminbar li#wp-admin-bar-customize,#wpadminbar li#wp-admin-bar-edit,#wpadminbar li#wp-admin-bar-menu-toggle,#wpadminbar li#wp-admin-bar-my-account,#wpadminbar li#wp-admin-bar-my-sites,#wpadminbar li#wp-admin-bar-new-content,#wpadminbar li#wp-admin-bar-site-name,#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:block}#wpadminbar li.hover ul li,#wpadminbar li:hover ul li,#wpadminbar li:hover ul li:hover ul li{display:list-item}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}#wpadminbar #wp-admin-bar-comments,#wpadminbar #wp-admin-bar-edit,#wpadminbar #wp-admin-bar-my-account,#wpadminbar #wp-admin-bar-my-sites,#wpadminbar #wp-admin-bar-new-content,#wpadminbar #wp-admin-bar-site-name,#wpadminbar #wp-admin-bar-updates,#wpadminbar #wp-admin-bar-wp-logo,#wpadminbar .ab-top-menu,#wpadminbar .ab-top-secondary{position:static}#wpadminbar #wp-admin-bar-my-account{float:left}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:10px;right:0}}@media screen and (max-width:600px){#wpadminbar{position:absolute}#wp-responsive-overlay{position:fixed;top:0;right:0;width:100%;height:100%;z-index:400}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{width:100%;right:0}#wpadminbar .menupop .menupop>.ab-item:before{display:none}#wpadminbar #wp-admin-bar-wp-logo.menupop .ab-sub-wrapper{margin-right:0}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{margin:0;width:100%;top:auto;right:auto;position:static;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 30px 19px 15px}#wpadminbar li:hover ul li ul li{display:list-item}#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:none}}@media screen and (max-width:400px){#wpadminbar li#wp-admin-bar-comments{display:none}}
\ No newline at end of file
diff --git a/wp-includes/css/admin-bar.css b/wp-includes/css/admin-bar.css
index 573ff8d8a..e108a8e6b 100644
--- a/wp-includes/css/admin-bar.css
+++ b/wp-includes/css/admin-bar.css
@@ -294,6 +294,7 @@ html:lang(he-il) .rtl #wpadminbar *  {
 #wpadminbar li:hover .ab-item:before,
 #wpadminbar li a:focus .ab-icon:before,
 #wpadminbar li .ab-item:focus:before,
+#wpadminbar li .ab-item:focus .ab-icon:before,
 #wpadminbar li.hover .ab-icon:before,
 #wpadminbar li.hover .ab-item:before,
 #wpadminbar li:hover #adminbarsearch:before,
diff --git a/wp-includes/css/admin-bar.min.css b/wp-includes/css/admin-bar.min.css
index abb1b4d84..68665fc60 100644
--- a/wp-includes/css/admin-bar.min.css
+++ b/wp-includes/css/admin-bar.min.css
@@ -1 +1 @@
-#wpadminbar,#wpadminbar *{font-size:13px;font-weight:400;line-height:32px}#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-shadow:none;text-transform:none;letter-spacing:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:none;transition:none;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto}.rtl #wpadminbar *{font-family:Tahoma,sans-serif}html:lang(he-il) .rtl #wpadminbar *{font-family:Arial,sans-serif}#wpadminbar .ab-empty-item{cursor:default;outline:0}#wpadminbar .ab-empty-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpadminbar ul li:after,#wpadminbar ul li:before{content:normal}#wpadminbar a,#wpadminbar a img,#wpadminbar a img:hover,#wpadminbar a:hover{outline:0;border:none;text-decoration:none;background:0 0}#wpadminbar a:active,#wpadminbar a:focus,#wpadminbar div,#wpadminbar input[type=text],#wpadminbar input[type=password],#wpadminbar input[type=number],#wpadminbar input[type=search],#wpadminbar input[type=email],#wpadminbar input[type=url],#wpadminbar select,#wpadminbar textarea{-webkit-box-shadow:none;box-shadow:none;outline:0}#wpadminbar{direction:ltr;color:#ccc;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;height:32px;position:fixed;top:0;left:0;width:100%;min-width:600px;z-index:99999;background:#23282d}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0 0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar ul#wp-admin-bar-root-default>li{margin-right:0}#wpadminbar .quicklinks ul{text-align:left}#wpadminbar li{float:left}#wpadminbar .quicklinks .ab-top-secondary>li{float:right}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:32px;display:block;padding:0 10px;margin:0}#wpadminbar .quicklinks>ul>li>a{padding:0 8px 0 7px}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0;padding:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);background:#32373c;display:none;position:absolute;float:none}#wpadminbar .selected .shortlink-input,#wpadminbar li.hover>.ab-sub-wrapper,#wpadminbar.nojs li:hover>.ab-sub-wrapper{display:block}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:32px;left:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{right:0;left:auto}#wpadminbar .ab-submenu{padding:6px 0}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:600}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar .shortlink-input,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item{line-height:26px;height:26px;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-left:100%;margin-top:-32px}#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper{margin-left:0;left:inherit;right:100%}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{background:#32373c;color:#00b9eb}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label{color:#00b9eb}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{position:relative;float:left;font:400 20px/1 dashicons;speak:none;padding:4px 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important;margin-right:6px}#wpadminbar #adminbarsearch:before,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before{color:#a0a5aa;color:rgba(240,245,250,.6);position:relative;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#wpadminbar .ab-label{display:inline-block;height:32px}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#b4b9be;color:rgba(240,245,250,.7)}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li div[tabindex]:focus,#wpadminbar .quicklinks .menupop.hover ul li div[tabindex]:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#00b9eb}#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#b4b9be}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#00b9eb}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before,#wpadminbar .menupop .menupop>.ab-item:before{position:absolute;font:400 17px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar .menupop .menupop>.ab-item{display:block;padding-right:2em}#wpadminbar .menupop .menupop>.ab-item:before{top:1px;right:4px;content:"\f139";color:inherit}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{padding-left:2em;padding-right:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:1px;left:6px;content:"\f141"}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;right:auto;margin:0;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#464b50}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus a,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li>a:hover{color:#00b9eb}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#32373c;display:inline;padding:2px 5px;font-size:10px;font-weight:600;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:right}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account>.ab-item:before{content:"\f110";top:2px;float:right;margin-left:6px;margin-right:0}#wp-admin-bar-my-account.with-avatar>.ab-item:before{display:none;content:none}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar .ab-item{white-space:nowrap}#wpadminbar #wp-admin-bar-user-actions>li{margin-left:16px;margin-right:16px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:6px 0 12px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-left:88px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0 0}#wp-admin-bar-user-info .avatar{position:absolute;left:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0 0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0 0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{display:block}#wpadminbar #wp-admin-bar-user-info .username{color:#a0a5aa;font-size:11px}#wpadminbar #wp-admin-bar-my-account.with-avatar>.ab-empty-item img,#wpadminbar #wp-admin-bar-my-account.with-avatar>a img{width:auto;height:16px;padding:0;border:1px solid #82878c;background:#eee;line-height:24px;vertical-align:middle;margin:-4px 0 0 6px;float:none;display:inline}#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar>.ab-empty-item img,#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar>a img{width:auto}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{width:15px;height:20px;margin-right:0;padding:6px 0 5px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0 7px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{content:"\f120";top:2px}#wpadminbar .quicklinks li .blavatar{float:left;font:400 16px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#eee}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar{color:#00b9eb}#wpadminbar .quicklinks li .blavatar:before{content:"\f120";height:16px;width:16px;display:inline-block;margin:6px 8px 0 -2px}#wpadminbar #wp-admin-bar-appearance{margin-top:-12px}#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f541";top:2px}#wpadminbar #wp-admin-bar-customize>.ab-item:before{content:"\f540";top:2px}#wpadminbar #wp-admin-bar-edit>.ab-item:before{content:"\f464";top:2px}#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f226"}.wp-admin #wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f102"}#wpadminbar #wp-admin-bar-comments .ab-icon{margin-right:6px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{content:"\f101";top:3px}#wpadminbar #wp-admin-bar-comments .count-0{opacity:.5}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{content:"\f132";top:4px}#wpadminbar #wp-admin-bar-updates .ab-icon:before{content:"\f463";top:2px}#wpadminbar.ie8 #wp-admin-bar-search{display:block;min-width:32px}#wpadminbar #wp-admin-bar-search .ab-item{padding:0;background:0 0}#wpadminbar #adminbarsearch{position:relative;height:32px;padding:0 2px;z-index:1}#wpadminbar #adminbarsearch:before{position:absolute;top:6px;left:5px;z-index:20;font:400 20px/1 dashicons!important;content:"\f179";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{position:relative;z-index:30;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:24px;height:24px;width:24px;max-width:none;padding:0 3px 0 24px;margin:0;color:#ccc;background-color:rgba(255,255,255,0);border:none;outline:0;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:width,background;transition-property:width,background;-webkit-transition-timing-function:ease;transition-timing-function:ease}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{z-index:10;color:#000;width:200px;background-color:rgba(255,255,255,.9);cursor:text;border:0}#wpadminbar.ie7>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:3px;width:120px}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBR‌​AA7)}#wpadminbar.ie8 #adminbarsearch.adminbar-focused:before{content:"\f179 "}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{background:#fff;z-index:-1}#wpadminbar #adminbarsearch .adminbar-button,.customize-support #wpadminbar .hide-if-customize,.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support #wpadminbar .hide-if-no-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{left:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;text-decoration:none;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6)}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:left}* html #wpadminbar .menupop a span{background-image:none}.no-font-face #wpadminbar ul.ab-top-menu>li>a.ab-item{display:block;width:45px;text-align:center;overflow:hidden;margin:0 3px}.no-font-face #wpadminbar #wp-admin-bar-edit>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-my-sites>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:0}.no-font-face #wpadminbar #wp-admin-bar-wp-logo>.ab-item,.no-font-face #wpadminbar .ab-icon,.no-font-face #wpadminbar .ab-icon:before,.no-font-face #wpadminbar a.ab-item:before{display:none!important}.no-font-face #wpadminbar ul.ab-top-menu>li>a>span.ab-label{display:inline}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon{display:inline!important}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon:before{content:"Menu";font:14px/45px sans-serif!important;display:inline-block!important;color:#fff}.no-font-face #wpadminbar #wp-admin-bar-site-name a.ab-item{color:#fff}@media screen and (max-width:782px){#wpadminbar ul#wp-admin-bar-root-default>li,.network-admin #wpadminbar ul#wp-admin-bar-top-secondary>li#wp-admin-bar-my-account{margin-right:0}html #wpadminbar{height:46px;min-width:300px}#wpadminbar *{font-size:14px;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:32px}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks>ul>li>a{padding:0;height:46px;line-height:46px;width:auto}#wpadminbar .ab-icon{font:40px/1 dashicons!important;margin:0;padding:0;width:52px;height:46px;text-align:center}#wpadminbar .ab-icon:before{text-align:center}#wpadminbar .ab-submenu{padding:0}#wpadminbar #wp-admin-bar-my-account a.ab-item,#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{text-overflow:clip}#wpadminbar .ab-label{display:none}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-top:-46px}#wpadminbar #wp-admin-bar-comments .ab-icon,#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin:0}#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .menupop>.ab-item{padding-right:30px}#wpadminbar .menupop .menupop>.ab-item:before{top:10px;right:6px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper .ab-item{font-size:16px;padding:8px 16px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper a:empty{display:none}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{padding:0;width:52px;height:46px;text-align:center;vertical-align:top}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{font:28px/1 dashicons!important;top:-3px}#wpadminbar .ab-icon,#wpadminbar .ab-item:before{padding:0}#wpadminbar #wp-admin-bar-customize>.ab-item,#wpadminbar #wp-admin-bar-edit>.ab-item,#wpadminbar #wp-admin-bar-my-account>.ab-item,#wpadminbar #wp-admin-bar-my-sites>.ab-item,#wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:100%;white-space:nowrap;overflow:hidden;width:52px;padding:0;color:#a0a5aa;position:relative}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{padding:0;margin-right:0}#wpadminbar #wp-admin-bar-customize>.ab-item:before,#wpadminbar #wp-admin-bar-edit>.ab-item:before,#wpadminbar #wp-admin-bar-my-account>.ab-item:before,#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{display:block;text-indent:0;font:400 32px/1 dashicons;speak:none;top:7px;width:52px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar #wp-admin-bar-appearance{margin-top:0}#wpadminbar .quicklinks li .blavatar:before{display:none}#wpadminbar #wp-admin-bar-search{display:none}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{top:0;line-height:53px;height:46px!important;text-align:center;width:52px;display:block}#wpadminbar #wp-admin-bar-updates{text-align:center}#wpadminbar #wp-admin-bar-updates .ab-icon:before{top:3px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{display:block;font-size:34px;height:46px;line-height:47px;top:0}#wp-toolbar>ul>li,#wpadminbar #wp-admin-bar-user-actions.ab-submenu img.avatar{display:none}#wpadminbar #wp-admin-bar-my-account>a{position:relative;white-space:nowrap;text-indent:150%;width:28px;padding:0 10px;overflow:hidden}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{position:absolute;top:13px;right:10px;width:26px;height:26px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:0}#wpadminbar #wp-admin-bar-user-info .display-name{height:auto;font-size:16px;line-height:24px;color:#eee}#wpadminbar #wp-admin-bar-user-info a{padding-top:4px}#wpadminbar #wp-admin-bar-user-info .username{line-height:.8!important;margin-bottom:-2px}#wpadminbar li#wp-admin-bar-comments,#wpadminbar li#wp-admin-bar-customize,#wpadminbar li#wp-admin-bar-edit,#wpadminbar li#wp-admin-bar-menu-toggle,#wpadminbar li#wp-admin-bar-my-account,#wpadminbar li#wp-admin-bar-my-sites,#wpadminbar li#wp-admin-bar-new-content,#wpadminbar li#wp-admin-bar-site-name,#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:block}#wpadminbar li.hover ul li,#wpadminbar li:hover ul li,#wpadminbar li:hover ul li:hover ul li{display:list-item}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}#wpadminbar #wp-admin-bar-comments,#wpadminbar #wp-admin-bar-edit,#wpadminbar #wp-admin-bar-my-account,#wpadminbar #wp-admin-bar-my-sites,#wpadminbar #wp-admin-bar-new-content,#wpadminbar #wp-admin-bar-site-name,#wpadminbar #wp-admin-bar-updates,#wpadminbar #wp-admin-bar-wp-logo,#wpadminbar .ab-top-menu,#wpadminbar .ab-top-secondary{position:static}#wpadminbar #wp-admin-bar-my-account{float:right}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:10px;left:0}}@media screen and (max-width:600px){#wpadminbar{position:absolute}#wp-responsive-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:400}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{width:100%;left:0}#wpadminbar .menupop .menupop>.ab-item:before{display:none}#wpadminbar #wp-admin-bar-wp-logo.menupop .ab-sub-wrapper{margin-left:0}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{margin:0;width:100%;top:auto;left:auto;position:static;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 15px 19px 30px}#wpadminbar li:hover ul li ul li{display:list-item}#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:none}}@media screen and (max-width:400px){#wpadminbar li#wp-admin-bar-comments{display:none}}
\ No newline at end of file
+#wpadminbar,#wpadminbar *{font-size:13px;font-weight:400;line-height:32px}#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-shadow:none;text-transform:none;letter-spacing:normal;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;-webkit-border-radius:0;border-radius:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-transition:none;transition:none;-webkit-font-smoothing:subpixel-antialiased;-moz-osx-font-smoothing:auto}.rtl #wpadminbar *{font-family:Tahoma,sans-serif}html:lang(he-il) .rtl #wpadminbar *{font-family:Arial,sans-serif}#wpadminbar .ab-empty-item{cursor:default;outline:0}#wpadminbar .ab-empty-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wpadminbar ul li:after,#wpadminbar ul li:before{content:normal}#wpadminbar a,#wpadminbar a img,#wpadminbar a img:hover,#wpadminbar a:hover{outline:0;border:none;text-decoration:none;background:0 0}#wpadminbar a:active,#wpadminbar a:focus,#wpadminbar div,#wpadminbar input[type=text],#wpadminbar input[type=password],#wpadminbar input[type=number],#wpadminbar input[type=search],#wpadminbar input[type=email],#wpadminbar input[type=url],#wpadminbar select,#wpadminbar textarea{-webkit-box-shadow:none;box-shadow:none;outline:0}#wpadminbar{direction:ltr;color:#ccc;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;height:32px;position:fixed;top:0;left:0;width:100%;min-width:600px;z-index:99999;background:#23282d}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0 0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar ul#wp-admin-bar-root-default>li{margin-right:0}#wpadminbar .quicklinks ul{text-align:left}#wpadminbar li{float:left}#wpadminbar .quicklinks .ab-top-secondary>li{float:right}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks a,#wpadminbar .shortlink-input{height:32px;display:block;padding:0 10px;margin:0}#wpadminbar .quicklinks>ul>li>a{padding:0 8px 0 7px}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0;padding:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);background:#32373c;display:none;position:absolute;float:none}#wpadminbar .selected .shortlink-input,#wpadminbar li.hover>.ab-sub-wrapper,#wpadminbar.nojs li:hover>.ab-sub-wrapper{display:block}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:32px;left:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{right:0;left:auto}#wpadminbar .ab-submenu{padding:6px 0}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:600}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar .shortlink-input,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item{line-height:26px;height:26px;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-left:100%;margin-top:-32px}#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper{margin-left:0;left:inherit;right:100%}#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus{background:#32373c;color:#00b9eb}#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar>#wp-toolbar li.hover span.ab-label{color:#00b9eb}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{position:relative;float:left;font:400 20px/1 dashicons;speak:none;padding:4px 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:none!important;margin-right:6px}#wpadminbar #adminbarsearch:before,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before{color:#a0a5aa;color:rgba(240,245,250,.6);position:relative;-webkit-transition:all .1s ease-in-out;transition:all .1s ease-in-out}#wpadminbar .ab-label{display:inline-block;height:32px}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#b4b9be;color:rgba(240,245,250,.7)}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li div[tabindex]:focus,#wpadminbar .quicklinks .menupop.hover ul li div[tabindex]:hover,#wpadminbar li #adminbarsearch.adminbar-focused:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover{color:#00b9eb}#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#b4b9be}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#00b9eb}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before,#wpadminbar .menupop .menupop>.ab-item:before{position:absolute;font:400 17px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar .menupop .menupop>.ab-item{display:block;padding-right:2em}#wpadminbar .menupop .menupop>.ab-item:before{top:1px;right:4px;content:"\f139";color:inherit}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{padding-left:2em;padding-right:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:1px;left:6px;content:"\f141"}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;right:auto;margin:0;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#464b50}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus a,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li>a:hover{color:#00b9eb}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#32373c;display:inline;padding:2px 5px;font-size:10px;font-weight:600;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:right}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account>.ab-item:before{content:"\f110";top:2px;float:right;margin-left:6px;margin-right:0}#wp-admin-bar-my-account.with-avatar>.ab-item:before{display:none;content:none}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar .ab-item{white-space:nowrap}#wpadminbar #wp-admin-bar-user-actions>li{margin-left:16px;margin-right:16px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:6px 0 12px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-left:88px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0 0}#wp-admin-bar-user-info .avatar{position:absolute;left:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0 0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0 0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{display:block}#wpadminbar #wp-admin-bar-user-info .username{color:#a0a5aa;font-size:11px}#wpadminbar #wp-admin-bar-my-account.with-avatar>.ab-empty-item img,#wpadminbar #wp-admin-bar-my-account.with-avatar>a img{width:auto;height:16px;padding:0;border:1px solid #82878c;background:#eee;line-height:24px;vertical-align:middle;margin:-4px 0 0 6px;float:none;display:inline}#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar>.ab-empty-item img,#wpadminbar.ie8 #wp-admin-bar-my-account.with-avatar>a img{width:auto}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{width:15px;height:20px;margin-right:0;padding:6px 0 5px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0 7px}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{content:"\f120";top:2px}#wpadminbar .quicklinks li .blavatar{float:left;font:400 16px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#eee}#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks li a:hover .blavatar{color:#00b9eb}#wpadminbar .quicklinks li .blavatar:before{content:"\f120";height:16px;width:16px;display:inline-block;margin:6px 8px 0 -2px}#wpadminbar #wp-admin-bar-appearance{margin-top:-12px}#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f541";top:2px}#wpadminbar #wp-admin-bar-customize>.ab-item:before{content:"\f540";top:2px}#wpadminbar #wp-admin-bar-edit>.ab-item:before{content:"\f464";top:2px}#wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f226"}.wp-admin #wpadminbar #wp-admin-bar-site-name>.ab-item:before{content:"\f102"}#wpadminbar #wp-admin-bar-comments .ab-icon{margin-right:6px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{content:"\f101";top:3px}#wpadminbar #wp-admin-bar-comments .count-0{opacity:.5}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{content:"\f132";top:4px}#wpadminbar #wp-admin-bar-updates .ab-icon:before{content:"\f463";top:2px}#wpadminbar.ie8 #wp-admin-bar-search{display:block;min-width:32px}#wpadminbar #wp-admin-bar-search .ab-item{padding:0;background:0 0}#wpadminbar #adminbarsearch{position:relative;height:32px;padding:0 2px;z-index:1}#wpadminbar #adminbarsearch:before{position:absolute;top:6px;left:5px;z-index:20;font:400 20px/1 dashicons!important;content:"\f179";speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{position:relative;z-index:30;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:24px;height:24px;width:24px;max-width:none;padding:0 3px 0 24px;margin:0;color:#ccc;background-color:rgba(255,255,255,0);border:none;outline:0;cursor:pointer;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:.4s;transition-duration:.4s;-webkit-transition-property:width,background;transition-property:width,background;-webkit-transition-timing-function:ease;transition-timing-function:ease}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{z-index:10;color:#000;width:200px;background-color:rgba(255,255,255,.9);cursor:text;border:0}#wpadminbar.ie7>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{margin-top:3px;width:120px}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input{background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBR‌​AA7)}#wpadminbar.ie8 #adminbarsearch.adminbar-focused:before{content:"\f179 "}#wpadminbar.ie8>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{background:#fff;z-index:-1}#wpadminbar #adminbarsearch .adminbar-button,.customize-support #wpadminbar .hide-if-customize,.customize-support .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize,.customize-support.wp-core-ui .hide-if-customize,.no-customize-support #wpadminbar .hide-if-no-customize,.no-customize-support .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.no-customize-support.wp-core-ui .hide-if-no-customize{display:none}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{left:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;text-decoration:none;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6)}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:left}* html #wpadminbar .menupop a span{background-image:none}.no-font-face #wpadminbar ul.ab-top-menu>li>a.ab-item{display:block;width:45px;text-align:center;overflow:hidden;margin:0 3px}.no-font-face #wpadminbar #wp-admin-bar-edit>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-my-sites>.ab-item,.no-font-face #wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:0}.no-font-face #wpadminbar #wp-admin-bar-wp-logo>.ab-item,.no-font-face #wpadminbar .ab-icon,.no-font-face #wpadminbar .ab-icon:before,.no-font-face #wpadminbar a.ab-item:before{display:none!important}.no-font-face #wpadminbar ul.ab-top-menu>li>a>span.ab-label{display:inline}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon{display:inline!important}.no-font-face #wpadminbar #wp-admin-bar-menu-toggle span.ab-icon:before{content:"Menu";font:14px/45px sans-serif!important;display:inline-block!important;color:#fff}.no-font-face #wpadminbar #wp-admin-bar-site-name a.ab-item{color:#fff}@media screen and (max-width:782px){#wpadminbar ul#wp-admin-bar-root-default>li,.network-admin #wpadminbar ul#wp-admin-bar-top-secondary>li#wp-admin-bar-my-account{margin-right:0}html #wpadminbar{height:46px;min-width:300px}#wpadminbar *{font-size:14px;font-weight:400;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:32px}#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .quicklinks>ul>li>a{padding:0;height:46px;line-height:46px;width:auto}#wpadminbar .ab-icon{font:40px/1 dashicons!important;margin:0;padding:0;width:52px;height:46px;text-align:center}#wpadminbar .ab-icon:before{text-align:center}#wpadminbar .ab-submenu{padding:0}#wpadminbar #wp-admin-bar-my-account a.ab-item,#wpadminbar #wp-admin-bar-my-sites a.ab-item,#wpadminbar #wp-admin-bar-site-name a.ab-item{text-overflow:clip}#wpadminbar .ab-label{display:none}#wpadminbar .menupop li.hover>.ab-sub-wrapper,#wpadminbar .menupop li:hover>.ab-sub-wrapper{margin-top:-46px}#wpadminbar #wp-admin-bar-comments .ab-icon,#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin:0}#wpadminbar .ab-top-menu .menupop .ab-sub-wrapper .menupop>.ab-item{padding-right:30px}#wpadminbar .menupop .menupop>.ab-item:before{top:10px;right:6px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper .ab-item{font-size:16px;padding:8px 16px}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper a:empty{display:none}#wpadminbar #wp-admin-bar-wp-logo>.ab-item{padding:0}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon{padding:0;width:52px;height:46px;text-align:center;vertical-align:top}#wpadminbar #wp-admin-bar-wp-logo>.ab-item .ab-icon:before{font:28px/1 dashicons!important;top:-3px}#wpadminbar .ab-icon,#wpadminbar .ab-item:before{padding:0}#wpadminbar #wp-admin-bar-customize>.ab-item,#wpadminbar #wp-admin-bar-edit>.ab-item,#wpadminbar #wp-admin-bar-my-account>.ab-item,#wpadminbar #wp-admin-bar-my-sites>.ab-item,#wpadminbar #wp-admin-bar-site-name>.ab-item{text-indent:100%;white-space:nowrap;overflow:hidden;width:52px;padding:0;color:#a0a5aa;position:relative}#wpadminbar .ab-icon,#wpadminbar .ab-item:before,#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon{padding:0;margin-right:0}#wpadminbar #wp-admin-bar-customize>.ab-item:before,#wpadminbar #wp-admin-bar-edit>.ab-item:before,#wpadminbar #wp-admin-bar-my-account>.ab-item:before,#wpadminbar #wp-admin-bar-my-sites>.ab-item:before,#wpadminbar #wp-admin-bar-site-name>.ab-item:before{display:block;text-indent:0;font:400 32px/1 dashicons;speak:none;top:7px;width:52px;text-align:center;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#wpadminbar #wp-admin-bar-appearance{margin-top:0}#wpadminbar .quicklinks li .blavatar:before{display:none}#wpadminbar #wp-admin-bar-search{display:none}#wpadminbar #wp-admin-bar-new-content .ab-icon:before{top:0;line-height:53px;height:46px!important;text-align:center;width:52px;display:block}#wpadminbar #wp-admin-bar-updates{text-align:center}#wpadminbar #wp-admin-bar-updates .ab-icon:before{top:3px}#wpadminbar #wp-admin-bar-comments .ab-icon:before{display:block;font-size:34px;height:46px;line-height:47px;top:0}#wp-toolbar>ul>li,#wpadminbar #wp-admin-bar-user-actions.ab-submenu img.avatar{display:none}#wpadminbar #wp-admin-bar-my-account>a{position:relative;white-space:nowrap;text-indent:150%;width:28px;padding:0 10px;overflow:hidden}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{position:absolute;top:13px;right:10px;width:26px;height:26px}#wpadminbar #wp-admin-bar-user-actions.ab-submenu{padding:0}#wpadminbar #wp-admin-bar-user-info .display-name{height:auto;font-size:16px;line-height:24px;color:#eee}#wpadminbar #wp-admin-bar-user-info a{padding-top:4px}#wpadminbar #wp-admin-bar-user-info .username{line-height:.8!important;margin-bottom:-2px}#wpadminbar li#wp-admin-bar-comments,#wpadminbar li#wp-admin-bar-customize,#wpadminbar li#wp-admin-bar-edit,#wpadminbar li#wp-admin-bar-menu-toggle,#wpadminbar li#wp-admin-bar-my-account,#wpadminbar li#wp-admin-bar-my-sites,#wpadminbar li#wp-admin-bar-new-content,#wpadminbar li#wp-admin-bar-site-name,#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:block}#wpadminbar li.hover ul li,#wpadminbar li:hover ul li,#wpadminbar li:hover ul li:hover ul li{display:list-item}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}#wpadminbar #wp-admin-bar-comments,#wpadminbar #wp-admin-bar-edit,#wpadminbar #wp-admin-bar-my-account,#wpadminbar #wp-admin-bar-my-sites,#wpadminbar #wp-admin-bar-new-content,#wpadminbar #wp-admin-bar-site-name,#wpadminbar #wp-admin-bar-updates,#wpadminbar #wp-admin-bar-wp-logo,#wpadminbar .ab-top-menu,#wpadminbar .ab-top-secondary{position:static}#wpadminbar #wp-admin-bar-my-account{float:right}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item:before{top:10px;left:0}}@media screen and (max-width:600px){#wpadminbar{position:absolute}#wp-responsive-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:400}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{width:100%;left:0}#wpadminbar .menupop .menupop>.ab-item:before{display:none}#wpadminbar #wp-admin-bar-wp-logo.menupop .ab-sub-wrapper{margin-left:0}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper{margin:0;width:100%;top:auto;left:auto;position:static;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .ab-top-menu>.menupop li>.ab-sub-wrapper .ab-item{font-size:16px;padding:6px 15px 19px 30px}#wpadminbar li:hover ul li ul li{display:list-item}#wpadminbar li#wp-admin-bar-updates,#wpadminbar li#wp-admin-bar-wp-logo{display:none}}@media screen and (max-width:400px){#wpadminbar li#wp-admin-bar-comments{display:none}}
\ No newline at end of file
diff --git a/wp-includes/css/customize-preview-rtl.css b/wp-includes/css/customize-preview-rtl.css
new file mode 100644
index 000000000..cce4e4e1a
--- /dev/null
+++ b/wp-includes/css/customize-preview-rtl.css
@@ -0,0 +1,267 @@
+.customize-partial-refreshing {
+	opacity: 0.25;
+	-webkit-transition: opacity 0.25s;
+	transition: opacity 0.25s;
+	cursor: progress;
+}
+
+/* Override highlight when refreshing */
+.customize-partial-refreshing.widget-customizer-highlighted-widget {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+/* Make shortcut buttons essentially invisible */
+.widget .customize-partial-edit-shortcut,
+.customize-partial-edit-shortcut {
+	position: absolute;
+	float: right;
+	width: 1px; /* required to have a size to be focusable in Safari */
+	height: 1px;
+	padding: 0;
+	margin: -1px -1px 0 0;
+	border: 0;
+	background: transparent;
+	color: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	outline: none;
+	z-index: 5;
+}
+
+/**
+ * Styles for the actual shortcut
+ *
+ * Note that some properties are overly verbose to prevent theme interference.
+ */
+.widget .customize-partial-edit-shortcut button,
+.customize-partial-edit-shortcut button {
+	position: absolute;
+	right: -30px;
+	top: 2px;
+	color: #fff;
+	width: 30px;
+	height: 30px;
+	min-width: 30px;
+	min-height: 30px;
+	line-height: 1em !important;
+	font-size: 18px;
+	z-index: 5;
+	background: #0085ba !important;
+	-webkit-border-radius: 50%;
+	border-radius: 50%;
+	border: 2px solid #fff;
+	-webkit-box-shadow: 0 2px 1px rgba(46,68,83,0.15);
+	box-shadow: 0 2px 1px rgba(46,68,83,0.15);
+	text-align: center;
+	cursor: pointer;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	padding: 3px;
+	-webkit-animation-fill-mode: both;
+	animation-fill-mode: both;
+	-webkit-animation-duration: .4s;
+	animation-duration: .4s;
+	opacity: 0;
+	pointer-events: none;
+	text-shadow: 0 -1px 1px #006799,
+	             -1px 0 1px #006799,
+	             0 1px 1px #006799,
+	             1px 0 1px #006799;
+}
+.wp-custom-header .customize-partial-edit-shortcut button {
+	right: 2px
+}
+
+.customize-partial-edit-shortcut button svg {
+	fill: #fff;
+	min-width: 20px;
+	min-height: 20px;
+	width: 20px;
+	height: 20px;
+	margin: auto;
+}
+
+.customize-partial-edit-shortcut button:hover {
+	background: #008ec2 !important; /* matches primary buttons */
+}
+
+.customize-partial-edit-shortcut button:focus {
+	-webkit-box-shadow: 0 0 0 2px #008ec2;
+	box-shadow: 0 0 0 2px #008ec2;
+}
+
+body.customize-partial-edit-shortcuts-shown .customize-partial-edit-shortcut button {
+	-webkit-animation-name: customize-partial-edit-shortcut-bounce-appear;
+	animation-name: customize-partial-edit-shortcut-bounce-appear;
+	pointer-events: auto;
+}
+body.customize-partial-edit-shortcuts-hidden .customize-partial-edit-shortcut button {
+	-webkit-animation-name: customize-partial-edit-shortcut-bounce-disappear;
+	animation-name: customize-partial-edit-shortcut-bounce-disappear;
+	pointer-events: none;
+}
+
+.page-sidebar-collapsed .customize-partial-edit-shortcut button,
+.customize-partial-edit-shortcut-hidden .customize-partial-edit-shortcut button {
+	visibility: hidden;
+}
+
+@-webkit-keyframes customize-partial-edit-shortcut-bounce-appear {
+	from, 20%, 40%, 60%, 80%, to {
+		-webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+		animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+	}
+	0% {
+		opacity: 0;
+		-webkit-transform: scale3d(.3, .3, .3);
+		transform: scale3d(.3, .3, .3);
+	}
+	20% {
+		-webkit-transform: scale3d(1.1, 1.1, 1.1);
+		transform: scale3d(1.1, 1.1, 1.1);
+	}
+	40% {
+		-webkit-transform: scale3d(.9, .9, .9);
+		transform: scale3d(.9, .9, .9);
+	}
+	60% {
+		opacity: 1;
+		-webkit-transform: scale3d(1.03, 1.03, 1.03);
+		transform: scale3d(1.03, 1.03, 1.03);
+	}
+	80% {
+		-webkit-transform: scale3d(.97, .97, .97);
+		transform: scale3d(.97, .97, .97);
+	}
+	to {
+		opacity: 1;
+		-webkit-transform: scale3d(1, 1, 1);
+		transform: scale3d(1, 1, 1);
+	}
+}
+
+@keyframes customize-partial-edit-shortcut-bounce-appear {
+	from, 20%, 40%, 60%, 80%, to {
+		-webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+		animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+	}
+	0% {
+		opacity: 0;
+		-webkit-transform: scale3d(.3, .3, .3);
+		transform: scale3d(.3, .3, .3);
+	}
+	20% {
+		-webkit-transform: scale3d(1.1, 1.1, 1.1);
+		transform: scale3d(1.1, 1.1, 1.1);
+	}
+	40% {
+		-webkit-transform: scale3d(.9, .9, .9);
+		transform: scale3d(.9, .9, .9);
+	}
+	60% {
+		opacity: 1;
+		-webkit-transform: scale3d(1.03, 1.03, 1.03);
+		transform: scale3d(1.03, 1.03, 1.03);
+	}
+	80% {
+		-webkit-transform: scale3d(.97, .97, .97);
+		transform: scale3d(.97, .97, .97);
+	}
+	to {
+		opacity: 1;
+		-webkit-transform: scale3d(1, 1, 1);
+		transform: scale3d(1, 1, 1);
+	}
+}
+
+@-webkit-keyframes customize-partial-edit-shortcut-bounce-disappear {
+	from, 20%, 40%, 60%, 80%, to {
+		-webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+		animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+	}
+	0% {
+		opacity: 1;
+		-webkit-transform: scale3d(1, 1, 1);
+		transform: scale3d(1, 1, 1);
+	}
+	20% {
+		-webkit-transform: scale3d(.97, .97, .97);
+		transform: scale3d(.97, .97, .97);
+	}
+	40% {
+		opacity: 1;
+		-webkit-transform: scale3d(1.03, 1.03, 1.03);
+		transform: scale3d(1.03, 1.03, 1.03);
+	}
+	60% {
+		-webkit-transform: scale3d(.9, .9, .9);
+		transform: scale3d(.9, .9, .9);
+	}
+	80% {
+		-webkit-transform: scale3d(1.1, 1.1, 1.1);
+		transform: scale3d(1.1, 1.1, 1.1);
+	}
+	to {
+		opacity: 0;
+		-webkit-transform: scale3d(.3, .3, .3);
+		transform: scale3d(.3, .3, .3);
+	}
+}
+
+@keyframes customize-partial-edit-shortcut-bounce-disappear {
+	from, 20%, 40%, 60%, 80%, to {
+		-webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+		animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+	}
+	0% {
+		opacity: 1;
+		-webkit-transform: scale3d(1, 1, 1);
+		transform: scale3d(1, 1, 1);
+	}
+	20% {
+		-webkit-transform: scale3d(.97, .97, .97);
+		transform: scale3d(.97, .97, .97);
+	}
+	40% {
+		opacity: 1;
+		-webkit-transform: scale3d(1.03, 1.03, 1.03);
+		transform: scale3d(1.03, 1.03, 1.03);
+	}
+	60% {
+		-webkit-transform: scale3d(.9, .9, .9);
+		transform: scale3d(.9, .9, .9);
+	}
+	80% {
+		-webkit-transform: scale3d(1.1, 1.1, 1.1);
+		transform: scale3d(1.1, 1.1, 1.1);
+	}
+	to {
+		opacity: 0;
+		-webkit-transform: scale3d(.3, .3, .3);
+		transform: scale3d(.3, .3, .3);
+	}
+}
+
+@media screen and (max-width:800px) {
+	.widget .customize-partial-edit-shortcut button,
+	.customize-partial-edit-shortcut button {
+		right: -32px;
+	}
+}
+
+@media screen and (max-width:320px) {
+	body.customize-partial-edit-shortcuts-shown .site-title {
+		padding-right: 10px;
+	}
+
+	body.customize-partial-edit-shortcuts-shown .widget-area .widget {
+		padding-right: 10px;
+	}
+
+	.widget .customize-partial-edit-shortcut button,
+	.customize-partial-edit-shortcut button {
+		right: -30px;
+	}
+}
diff --git a/wp-includes/css/customize-preview-rtl.min.css b/wp-includes/css/customize-preview-rtl.min.css
new file mode 100644
index 000000000..8f8c4219b
--- /dev/null
+++ b/wp-includes/css/customize-preview-rtl.min.css
@@ -0,0 +1 @@
+.customize-partial-refreshing{opacity:.25;-webkit-transition:opacity .25s;transition:opacity .25s;cursor:progress}.customize-partial-refreshing.widget-customizer-highlighted-widget{-webkit-box-shadow:none;box-shadow:none}.customize-partial-edit-shortcut,.widget .customize-partial-edit-shortcut{position:absolute;float:right;width:1px;height:1px;padding:0;margin:-1px -1px 0 0;border:0;background:0 0;color:transparent;-webkit-box-shadow:none;box-shadow:none;outline:0;z-index:5}.customize-partial-edit-shortcut button,.widget .customize-partial-edit-shortcut button{position:absolute;right:-30px;top:2px;color:#fff;width:30px;height:30px;min-width:30px;min-height:30px;line-height:1em!important;font-size:18px;z-index:5;background:#0085ba!important;-webkit-border-radius:50%;border-radius:50%;border:2px solid #fff;-webkit-box-shadow:0 2px 1px rgba(46,68,83,.15);box-shadow:0 2px 1px rgba(46,68,83,.15);text-align:center;cursor:pointer;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:3px;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.4s;animation-duration:.4s;opacity:0;pointer-events:none;text-shadow:0 -1px 1px #006799,-1px 0 1px #006799,0 1px 1px #006799,1px 0 1px #006799}.wp-custom-header .customize-partial-edit-shortcut button{right:2px}.customize-partial-edit-shortcut button svg{fill:#fff;min-width:20px;min-height:20px;width:20px;height:20px;margin:auto}.customize-partial-edit-shortcut button:hover{background:#008ec2!important}.customize-partial-edit-shortcut button:focus{-webkit-box-shadow:0 0 0 2px #008ec2;box-shadow:0 0 0 2px #008ec2}body.customize-partial-edit-shortcuts-shown .customize-partial-edit-shortcut button{-webkit-animation-name:customize-partial-edit-shortcut-bounce-appear;animation-name:customize-partial-edit-shortcut-bounce-appear;pointer-events:auto}body.customize-partial-edit-shortcuts-hidden .customize-partial-edit-shortcut button{-webkit-animation-name:customize-partial-edit-shortcut-bounce-disappear;animation-name:customize-partial-edit-shortcut-bounce-disappear;pointer-events:none}.customize-partial-edit-shortcut-hidden .customize-partial-edit-shortcut button,.page-sidebar-collapsed .customize-partial-edit-shortcut button{visibility:hidden}@-webkit-keyframes customize-partial-edit-shortcut-bounce-appear{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes customize-partial-edit-shortcut-bounce-appear{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes customize-partial-edit-shortcut-bounce-disappear{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}20%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}40%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}60%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}80%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes customize-partial-edit-shortcut-bounce-disappear{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}20%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}40%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}60%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}80%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@media screen and (max-width:800px){.customize-partial-edit-shortcut button,.widget .customize-partial-edit-shortcut button{right:-32px}}@media screen and (max-width:320px){body.customize-partial-edit-shortcuts-shown .site-title,body.customize-partial-edit-shortcuts-shown .widget-area .widget{padding-right:10px}.customize-partial-edit-shortcut button,.widget .customize-partial-edit-shortcut button{right:-30px}}
\ No newline at end of file
diff --git a/wp-includes/css/customize-preview.css b/wp-includes/css/customize-preview.css
index 75251ea93..1a5067ff8 100644
--- a/wp-includes/css/customize-preview.css
+++ b/wp-includes/css/customize-preview.css
@@ -10,3 +10,258 @@
 	-webkit-box-shadow: none;
 	box-shadow: none;
 }
+
+/* Make shortcut buttons essentially invisible */
+.widget .customize-partial-edit-shortcut,
+.customize-partial-edit-shortcut {
+	position: absolute;
+	float: left;
+	width: 1px; /* required to have a size to be focusable in Safari */
+	height: 1px;
+	padding: 0;
+	margin: -1px 0 0 -1px;
+	border: 0;
+	background: transparent;
+	color: transparent;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+	outline: none;
+	z-index: 5;
+}
+
+/**
+ * Styles for the actual shortcut
+ *
+ * Note that some properties are overly verbose to prevent theme interference.
+ */
+.widget .customize-partial-edit-shortcut button,
+.customize-partial-edit-shortcut button {
+	position: absolute;
+	left: -30px;
+	top: 2px;
+	color: #fff;
+	width: 30px;
+	height: 30px;
+	min-width: 30px;
+	min-height: 30px;
+	line-height: 1em !important;
+	font-size: 18px;
+	z-index: 5;
+	background: #0085ba !important;
+	-webkit-border-radius: 50%;
+	border-radius: 50%;
+	border: 2px solid #fff;
+	-webkit-box-shadow: 0 2px 1px rgba(46,68,83,0.15);
+	box-shadow: 0 2px 1px rgba(46,68,83,0.15);
+	text-align: center;
+	cursor: pointer;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	padding: 3px;
+	-webkit-animation-fill-mode: both;
+	animation-fill-mode: both;
+	-webkit-animation-duration: .4s;
+	animation-duration: .4s;
+	opacity: 0;
+	pointer-events: none;
+	text-shadow: 0 -1px 1px #006799,
+	             1px 0 1px #006799,
+	             0 1px 1px #006799,
+	             -1px 0 1px #006799;
+}
+.wp-custom-header .customize-partial-edit-shortcut button {
+	left: 2px
+}
+
+.customize-partial-edit-shortcut button svg {
+	fill: #fff;
+	min-width: 20px;
+	min-height: 20px;
+	width: 20px;
+	height: 20px;
+	margin: auto;
+}
+
+.customize-partial-edit-shortcut button:hover {
+	background: #008ec2 !important; /* matches primary buttons */
+}
+
+.customize-partial-edit-shortcut button:focus {
+	-webkit-box-shadow: 0 0 0 2px #008ec2;
+	box-shadow: 0 0 0 2px #008ec2;
+}
+
+body.customize-partial-edit-shortcuts-shown .customize-partial-edit-shortcut button {
+	-webkit-animation-name: customize-partial-edit-shortcut-bounce-appear;
+	animation-name: customize-partial-edit-shortcut-bounce-appear;
+	pointer-events: auto;
+}
+body.customize-partial-edit-shortcuts-hidden .customize-partial-edit-shortcut button {
+	-webkit-animation-name: customize-partial-edit-shortcut-bounce-disappear;
+	animation-name: customize-partial-edit-shortcut-bounce-disappear;
+	pointer-events: none;
+}
+
+.page-sidebar-collapsed .customize-partial-edit-shortcut button,
+.customize-partial-edit-shortcut-hidden .customize-partial-edit-shortcut button {
+	visibility: hidden;
+}
+
+@-webkit-keyframes customize-partial-edit-shortcut-bounce-appear {
+	from, 20%, 40%, 60%, 80%, to {
+		-webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+		animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+	}
+	0% {
+		opacity: 0;
+		-webkit-transform: scale3d(.3, .3, .3);
+		transform: scale3d(.3, .3, .3);
+	}
+	20% {
+		-webkit-transform: scale3d(1.1, 1.1, 1.1);
+		transform: scale3d(1.1, 1.1, 1.1);
+	}
+	40% {
+		-webkit-transform: scale3d(.9, .9, .9);
+		transform: scale3d(.9, .9, .9);
+	}
+	60% {
+		opacity: 1;
+		-webkit-transform: scale3d(1.03, 1.03, 1.03);
+		transform: scale3d(1.03, 1.03, 1.03);
+	}
+	80% {
+		-webkit-transform: scale3d(.97, .97, .97);
+		transform: scale3d(.97, .97, .97);
+	}
+	to {
+		opacity: 1;
+		-webkit-transform: scale3d(1, 1, 1);
+		transform: scale3d(1, 1, 1);
+	}
+}
+
+@keyframes customize-partial-edit-shortcut-bounce-appear {
+	from, 20%, 40%, 60%, 80%, to {
+		-webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+		animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+	}
+	0% {
+		opacity: 0;
+		-webkit-transform: scale3d(.3, .3, .3);
+		transform: scale3d(.3, .3, .3);
+	}
+	20% {
+		-webkit-transform: scale3d(1.1, 1.1, 1.1);
+		transform: scale3d(1.1, 1.1, 1.1);
+	}
+	40% {
+		-webkit-transform: scale3d(.9, .9, .9);
+		transform: scale3d(.9, .9, .9);
+	}
+	60% {
+		opacity: 1;
+		-webkit-transform: scale3d(1.03, 1.03, 1.03);
+		transform: scale3d(1.03, 1.03, 1.03);
+	}
+	80% {
+		-webkit-transform: scale3d(.97, .97, .97);
+		transform: scale3d(.97, .97, .97);
+	}
+	to {
+		opacity: 1;
+		-webkit-transform: scale3d(1, 1, 1);
+		transform: scale3d(1, 1, 1);
+	}
+}
+
+@-webkit-keyframes customize-partial-edit-shortcut-bounce-disappear {
+	from, 20%, 40%, 60%, 80%, to {
+		-webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+		animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+	}
+	0% {
+		opacity: 1;
+		-webkit-transform: scale3d(1, 1, 1);
+		transform: scale3d(1, 1, 1);
+	}
+	20% {
+		-webkit-transform: scale3d(.97, .97, .97);
+		transform: scale3d(.97, .97, .97);
+	}
+	40% {
+		opacity: 1;
+		-webkit-transform: scale3d(1.03, 1.03, 1.03);
+		transform: scale3d(1.03, 1.03, 1.03);
+	}
+	60% {
+		-webkit-transform: scale3d(.9, .9, .9);
+		transform: scale3d(.9, .9, .9);
+	}
+	80% {
+		-webkit-transform: scale3d(1.1, 1.1, 1.1);
+		transform: scale3d(1.1, 1.1, 1.1);
+	}
+	to {
+		opacity: 0;
+		-webkit-transform: scale3d(.3, .3, .3);
+		transform: scale3d(.3, .3, .3);
+	}
+}
+
+@keyframes customize-partial-edit-shortcut-bounce-disappear {
+	from, 20%, 40%, 60%, 80%, to {
+		-webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+		animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+	}
+	0% {
+		opacity: 1;
+		-webkit-transform: scale3d(1, 1, 1);
+		transform: scale3d(1, 1, 1);
+	}
+	20% {
+		-webkit-transform: scale3d(.97, .97, .97);
+		transform: scale3d(.97, .97, .97);
+	}
+	40% {
+		opacity: 1;
+		-webkit-transform: scale3d(1.03, 1.03, 1.03);
+		transform: scale3d(1.03, 1.03, 1.03);
+	}
+	60% {
+		-webkit-transform: scale3d(.9, .9, .9);
+		transform: scale3d(.9, .9, .9);
+	}
+	80% {
+		-webkit-transform: scale3d(1.1, 1.1, 1.1);
+		transform: scale3d(1.1, 1.1, 1.1);
+	}
+	to {
+		opacity: 0;
+		-webkit-transform: scale3d(.3, .3, .3);
+		transform: scale3d(.3, .3, .3);
+	}
+}
+
+@media screen and (max-width:800px) {
+	.widget .customize-partial-edit-shortcut button,
+	.customize-partial-edit-shortcut button {
+		left: -32px;
+	}
+}
+
+@media screen and (max-width:320px) {
+	body.customize-partial-edit-shortcuts-shown .site-title {
+		padding-left: 10px;
+	}
+
+	body.customize-partial-edit-shortcuts-shown .widget-area .widget {
+		padding-left: 10px;
+	}
+
+	.widget .customize-partial-edit-shortcut button,
+	.customize-partial-edit-shortcut button {
+		left: -30px;
+	}
+}
diff --git a/wp-includes/css/customize-preview.min.css b/wp-includes/css/customize-preview.min.css
index f2613499e..529d443a2 100644
--- a/wp-includes/css/customize-preview.min.css
+++ b/wp-includes/css/customize-preview.min.css
@@ -1 +1 @@
-.customize-partial-refreshing{opacity:.25;-webkit-transition:opacity .25s;transition:opacity .25s;cursor:progress}.customize-partial-refreshing.widget-customizer-highlighted-widget{-webkit-box-shadow:none;box-shadow:none}
\ No newline at end of file
+.customize-partial-refreshing{opacity:.25;-webkit-transition:opacity .25s;transition:opacity .25s;cursor:progress}.customize-partial-refreshing.widget-customizer-highlighted-widget{-webkit-box-shadow:none;box-shadow:none}.customize-partial-edit-shortcut,.widget .customize-partial-edit-shortcut{position:absolute;float:left;width:1px;height:1px;padding:0;margin:-1px 0 0 -1px;border:0;background:0 0;color:transparent;-webkit-box-shadow:none;box-shadow:none;outline:0;z-index:5}.customize-partial-edit-shortcut button,.widget .customize-partial-edit-shortcut button{position:absolute;left:-30px;top:2px;color:#fff;width:30px;height:30px;min-width:30px;min-height:30px;line-height:1em!important;font-size:18px;z-index:5;background:#0085ba!important;-webkit-border-radius:50%;border-radius:50%;border:2px solid #fff;-webkit-box-shadow:0 2px 1px rgba(46,68,83,.15);box-shadow:0 2px 1px rgba(46,68,83,.15);text-align:center;cursor:pointer;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:3px;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.4s;animation-duration:.4s;opacity:0;pointer-events:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.wp-custom-header .customize-partial-edit-shortcut button{left:2px}.customize-partial-edit-shortcut button svg{fill:#fff;min-width:20px;min-height:20px;width:20px;height:20px;margin:auto}.customize-partial-edit-shortcut button:hover{background:#008ec2!important}.customize-partial-edit-shortcut button:focus{-webkit-box-shadow:0 0 0 2px #008ec2;box-shadow:0 0 0 2px #008ec2}body.customize-partial-edit-shortcuts-shown .customize-partial-edit-shortcut button{-webkit-animation-name:customize-partial-edit-shortcut-bounce-appear;animation-name:customize-partial-edit-shortcut-bounce-appear;pointer-events:auto}body.customize-partial-edit-shortcuts-hidden .customize-partial-edit-shortcut button{-webkit-animation-name:customize-partial-edit-shortcut-bounce-disappear;animation-name:customize-partial-edit-shortcut-bounce-disappear;pointer-events:none}.customize-partial-edit-shortcut-hidden .customize-partial-edit-shortcut button,.page-sidebar-collapsed .customize-partial-edit-shortcut button{visibility:hidden}@-webkit-keyframes customize-partial-edit-shortcut-bounce-appear{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes customize-partial-edit-shortcut-bounce-appear{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes customize-partial-edit-shortcut-bounce-disappear{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}20%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}40%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}60%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}80%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes customize-partial-edit-shortcut-bounce-disappear{20%,40%,60%,80%,from,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}20%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}40%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}60%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}80%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@media screen and (max-width:800px){.customize-partial-edit-shortcut button,.widget .customize-partial-edit-shortcut button{left:-32px}}@media screen and (max-width:320px){body.customize-partial-edit-shortcuts-shown .site-title,body.customize-partial-edit-shortcuts-shown .widget-area .widget{padding-left:10px}.customize-partial-edit-shortcut button,.widget .customize-partial-edit-shortcut button{left:-30px}}
\ No newline at end of file
diff --git a/wp-includes/css/editor-rtl.css b/wp-includes/css/editor-rtl.css
index e57805ff6..99dda5e7b 100644
--- a/wp-includes/css/editor-rtl.css
+++ b/wp-includes/css/editor-rtl.css
@@ -12,6 +12,13 @@
 	font-family: inherit;
 }
 
+.mce-container .mce-monospace,
+.mce-widget .mce-monospace {
+	font-family: Consolas, Monaco, monospace;
+	font-size: 13px;
+	line-height: 150%;
+}
+
 /* TinyMCE windows */
 #mce-modal-block,
 #mce-modal-block.mce-fade {
@@ -581,6 +588,7 @@ div.mce-path {
 .mce-menu .mce-menu-item-normal.mce-active,
 .mce-menu .mce-menu-item-preview.mce-active {
 	background: #0073aa; /* See color scheme. */
+	color: #fff;
 }
 
 .mce-menu .mce-menu-item-preview.mce-active {
@@ -643,6 +651,16 @@ div.mce-menu .mce-menu-item-sep,
 	margin-right: -2px;
 }
 
+/* Keyboard shortcuts position */
+.mce-menu.mce-menu-align .mce-menu-item-normal {
+	position: relative;
+}
+
+.mce-menu.mce-menu-align .mce-menu-shortcut {
+	bottom: 0.6em;
+	font-size: 0.9em;
+}
+
 /* Buttons in modals */
 .mce-primary button,
 .mce-primary button i {
@@ -840,6 +858,11 @@ div.mce-menu .mce-menu-item-sep,
 	border-right-color: #23282d;
 }
 
+div.mce-notification {
+	right: 10% !important;
+	left: 10%;
+}
+
 .mce-notification button.mce-close {
 	left: 6px;
 	top: 3px;
@@ -1147,7 +1170,7 @@ i.mce-i-wp_code:before {
 }
 
 .js .tmce-active .wp-editor-area {
-	color: white;
+	color: #fff;
 }
 
 .tmce-active .quicktags-toolbar {
@@ -1304,7 +1327,7 @@ i.mce-i-wp_code:before {
 
 @media screen and ( min-width: 782px ) {
 	.wp-core-ui .quicktags-toolbar input.button.button-small {
-		/* .button-small is normaly 11px, but a bit too small for these buttons. */
+		/* .button-small is normally 11px, but a bit too small for these buttons. */
 		font-size: 12px;
 		height: 26px;
 		line-height: 24px;
diff --git a/wp-includes/css/editor-rtl.min.css b/wp-includes/css/editor-rtl.min.css
index 0c84b6777..21b6a6efb 100644
--- a/wp-includes/css/editor-rtl.min.css
+++ b/wp-includes/css/editor-rtl.min.css
@@ -1 +1 @@
-#wp-link-wrap,.mce-window{-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3)}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;filter:alpha(opacity=70);-webkit-transition:none;transition:none}.mce-window{-webkit-border-radius:0;border-radius:0;box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased;-webkit-transition:none;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #ddd;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;left:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#00a0d2}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-window-head .mce-dragh{width:-webkit-calc(100% - 36px);width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #ddd}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);-webkit-transition:.05s all ease-in-out;transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 20px 0 10px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(even),.mce-window .wp-editor-help table.fixed th:nth-child(even){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#eaeaea;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #ddd;background:#f5f5f5;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a0a5aa;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:8px;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;right:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.quicktags-toolbar,.wp-editor-tools,.wp-editor-wrap,.wp-switch-editor{position:relative}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a0a5aa;border-width:0 9px 9px;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a0a5aa;border-width:9px 9px 0;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f5f5f5;border-width:0 8px 8px;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f5f5f5;border-width:8px 8px 0;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{right:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-full{left:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;-webkit-border-radius:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#fafafa;border-color:#555d66;color:#23282d;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#ebebeb;border-color:#555d66;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#23282d}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a0a5aa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;-webkit-box-shadow:none;box-shadow:none}.mce-menu .mce-menu-item-preview.mce-active .mce-text,.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#555d66}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:20px;padding-right:6px;padding-left:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-left:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;right:3px;height:3px;width:20px;background:#555d66}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#0085ba;border-color:#0073aa #006799 #006799;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{-webkit-box-shadow:0 0 1px 1px #33b3db;box-shadow:0 0 1px 1px #33b3db}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 0 #006799;box-shadow:inset 0 2px 0 #006799}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{-webkit-border-radius:0;border-radius:0;direction:rtl;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#b4b9be}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #555d66;margin-right:2px;margin-left:2px}.mce-listbox i.mce-caret{left:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#23282d}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #23282d;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-left-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item-normal.mce-active,.mce-menu .mce-menu-item-preview.mce-active,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#0073aa}.mce-menu .mce-menu-item-preview.mce-active{border-right:none}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn{margin:2px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}.mce-menubtn span{margin-left:0;padding-right:3px}.mce-menu-has-icons i.mce-ico:before{margin-right:-2px}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#23282d}.mce-window .mce-btn:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);-webkit-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a0a5aa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;-webkit-transform:none!important;-ms-transform:none!important;transform:none!important}.mce-window .mce-btn.mce-primary{background:#0085ba;border-color:#0073aa #006799 #006799;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,-1px 0 1px #006799,0 1px 1px #006799,1px 0 1px #006799}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-window .mce-btn.mce-primary:focus{-webkit-box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.mce-window .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 0 #006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#66c6e4!important;background:#008ec2!important;border-color:#007cb2!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-toolbar .mce-ico,.qt-dfw{text-shadow:none;text-align:center}.mce-menubtn.mce-fixed-width button{overflow-x:hidden;text-overflow:ellipsis;width:110px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#ddd;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-toolbar .mce-btn .mce-open,.qt-dfw{line-height:20px}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#555d66;line-height:20px;width:20px;height:20px;margin:0;padding:0}.qt-dfw{color:#555d66;width:28px;height:26px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-right-color:#23282d}.mce-notification button.mce-close{left:6px;top:3px;font-weight:400;color:#555d66}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 0 0 2px;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:-2px}.qt-dfw{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-tools{z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.wp-editor-tabs{float:left}.wp-switch-editor{float:right;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;top:1px;background:#ebebeb;color:#666;cursor:pointer;font-size:13px;line-height:19px;height:20px;margin:5px 5px 0 0;padding:3px 8px 4px;border:1px solid #e5e5e5}.wp-switch-editor:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);outline:0;color:#23282d}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{-webkit-box-shadow:none;box-shadow:none}.wp-switch-editor:active{background-color:#f5f5f5;-webkit-box-shadow:none;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;border-bottom-color:#f5f5f5}.wp-media-buttons{float:right}.wp-media-buttons .button{margin-left:5px;margin-bottom:4px;padding-right:7px;padding-left:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-right:5px}.wp-media-buttons a{text-decoration:none;color:#444;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f104"}.quicktags-toolbar{padding:3px;border-bottom:1px solid #ddd;background:#f5f5f5;min-height:30px}.has-dfw .quicktags-toolbar{padding-left:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;left:0;margin:5px 0 0 5px}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 0 0 4px}.mce-toolbar .mce-colorbutton .mce-preview{right:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;overflow:hidden;margin-right:-250px;position:fixed;top:50%;right:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s;height:500px;margin-top:-250px}#wp-link-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}#wp-link-close{color:#666;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#00a0d2}#wp-link-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:37px;right:0;left:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:left;padding-left:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{float:right;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:right;margin-top:4px}#wp-link .link-search-wrapper .spinner{margin-top:5px}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0 0 12px;background:#fff;overflow:auto;position:absolute;right:16px;left:16px;bottom:0;top:166px}.has-text-field #wp-link .query-results{top:200px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#32373c;padding:4px 10px 4px 6px;cursor:pointer;position:relative}#wp-link .query-notice,#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link .query-notice{padding:0;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-right:4px solid #00a0d2}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-right:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#32373c}#wp-link li.selected{background:#ddd;color:#32373c}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:-webkit-calc(100% - 68px);width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;left:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;right:0;left:0}#wp-link-cancel{line-height:25px;float:right}#wp-link-update{line-height:23px;float:left}#wp-link-submit{float:left}@media screen and (max-width:782px){#wp-link-wrap{margin-top:-140px}#wp-link-wrap .query-results{top:195px}#wp-link-wrap.has-text-field .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{-webkit-transition:none;transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}#search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:-webkit-calc(100% - 92px);height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}div.wp-link-preview{float:right;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#0073aa;text-decoration:underline;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#dc3232}div.wp-link-input{float:right;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-left:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:right}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:left}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:-webkit-calc(100% - 86px);max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 5px 8px 0}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}}
\ No newline at end of file
+#wp-link-wrap,.mce-window{-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3)}.mce-window .mce-wp-help *,div.mce-inline-toolbar-grp{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;filter:alpha(opacity=70);-webkit-transition:none;transition:none}.mce-window{-webkit-border-radius:0;border-radius:0;box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased;-webkit-transition:none;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #ddd;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;left:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#00a0d2}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-window-head .mce-dragh{width:-webkit-calc(100% - 36px);width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #ddd}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);-webkit-transition:.05s all ease-in-out;transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help *{box-sizing:border-box}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 20px 0 10px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(even),.mce-window .wp-editor-help table.fixed th:nth-child(even){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#eaeaea;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #ddd;background:#f5f5f5;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a0a5aa;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;right:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-menu.mce-menu-align .mce-menu-item-normal,.quicktags-toolbar,.wp-editor-tools,.wp-editor-wrap,.wp-switch-editor{position:relative}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a0a5aa;border-width:0 9px 9px;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a0a5aa;border-width:9px 9px 0;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f5f5f5;border-width:0 8px 8px;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f5f5f5;border-width:8px 8px 0;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{right:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-full{left:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;-webkit-border-radius:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#fafafa;border-color:#555d66;color:#23282d;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#ebebeb;border-color:#555d66;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#23282d}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a0a5aa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;-webkit-box-shadow:none;box-shadow:none}.mce-menu .mce-menu-item-preview.mce-active .mce-text,.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#555d66}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:20px;padding-right:6px;padding-left:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-left:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;right:3px;height:3px;width:20px;background:#555d66}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#0085ba;border-color:#0073aa #006799 #006799;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{-webkit-box-shadow:0 0 1px 1px #33b3db;box-shadow:0 0 1px 1px #33b3db}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 0 #006799;box-shadow:inset 0 2px 0 #006799}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{-webkit-border-radius:0;border-radius:0;direction:rtl;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#b4b9be}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #555d66;margin-right:2px;margin-left:2px}.mce-listbox i.mce-caret{left:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#23282d}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #23282d;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-left-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item-normal.mce-active,.mce-menu .mce-menu-item-preview.mce-active,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#0073aa;color:#fff}.mce-menu .mce-menu-item-preview.mce-active{border-right:none}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn{margin:2px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}.mce-menubtn span{margin-left:0;padding-right:3px}.mce-menu-has-icons i.mce-ico:before{margin-right:-2px}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#23282d}.mce-window .mce-btn:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);-webkit-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a0a5aa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;-webkit-transform:none!important;-ms-transform:none!important;transform:none!important}.mce-window .mce-btn.mce-primary{background:#0085ba;border-color:#0073aa #006799 #006799;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,-1px 0 1px #006799,0 1px 1px #006799,1px 0 1px #006799}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-window .mce-btn.mce-primary:focus{-webkit-box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.mce-window .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 0 #006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#66c6e4!important;background:#008ec2!important;border-color:#007cb2!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-toolbar .mce-ico,.qt-dfw{text-shadow:none;text-align:center}.mce-menubtn.mce-fixed-width button{overflow-x:hidden;text-overflow:ellipsis;width:110px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#ddd;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-toolbar .mce-btn .mce-open,.qt-dfw{line-height:20px}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#555d66;line-height:20px;width:20px;height:20px;margin:0;padding:0}.qt-dfw{color:#555d66;width:28px;height:26px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-right-color:#23282d}div.mce-notification{right:10%!important;left:10%}.mce-notification button.mce-close{left:6px;top:3px;font-weight:400;color:#555d66}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 0 0 2px;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:-2px}.qt-dfw{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-tools{z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.wp-editor-tabs{float:left}.wp-switch-editor{float:right;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;top:1px;background:#ebebeb;color:#666;cursor:pointer;font-size:13px;line-height:19px;height:20px;margin:5px 5px 0 0;padding:3px 8px 4px;border:1px solid #e5e5e5}.wp-switch-editor:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);outline:0;color:#23282d}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{-webkit-box-shadow:none;box-shadow:none}.wp-switch-editor:active{background-color:#f5f5f5;-webkit-box-shadow:none;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;border-bottom-color:#f5f5f5}.wp-media-buttons{float:right}.wp-media-buttons .button{margin-left:5px;margin-bottom:4px;padding-right:7px;padding-left:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-right:5px}.wp-media-buttons a{text-decoration:none;color:#444;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f104"}.quicktags-toolbar{padding:3px;border-bottom:1px solid #ddd;background:#f5f5f5;min-height:30px}.has-dfw .quicktags-toolbar{padding-left:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;left:0;margin:5px 0 0 5px}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 0 0 4px}.mce-toolbar .mce-colorbutton .mce-preview{right:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;overflow:hidden;margin-right:-250px;position:fixed;top:50%;right:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s;height:500px;margin-top:-250px}#wp-link-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}#wp-link-close{color:#666;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#00a0d2}#wp-link-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:37px;right:0;left:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:left;padding-left:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{float:right;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:right;margin-top:4px}#wp-link .link-search-wrapper .spinner{margin-top:5px}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0 0 12px;background:#fff;overflow:auto;position:absolute;right:16px;left:16px;bottom:0;top:166px}.has-text-field #wp-link .query-results{top:200px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#32373c;padding:4px 10px 4px 6px;cursor:pointer;position:relative}#wp-link .query-notice,#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link .query-notice{padding:0;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-right:4px solid #00a0d2}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-right:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#32373c}#wp-link li.selected{background:#ddd;color:#32373c}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:-webkit-calc(100% - 68px);width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;left:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;right:0;left:0}#wp-link-cancel{line-height:25px;float:right}#wp-link-update{line-height:23px;float:left}#wp-link-submit{float:left}@media screen and (max-width:782px){#wp-link-wrap{margin-top:-140px}#wp-link-wrap .query-results{top:195px}#wp-link-wrap.has-text-field .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{-webkit-transition:none;transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}#search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:-webkit-calc(100% - 92px);height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}div.wp-link-preview{float:right;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#0073aa;text-decoration:underline;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#dc3232}div.wp-link-input{float:right;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-left:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:right}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:left}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:-webkit-calc(100% - 86px);max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 5px 8px 0}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}}
\ No newline at end of file
diff --git a/wp-includes/css/editor.css b/wp-includes/css/editor.css
index fa5e71a74..e04317ec8 100644
--- a/wp-includes/css/editor.css
+++ b/wp-includes/css/editor.css
@@ -12,6 +12,13 @@
 	font-family: inherit;
 }
 
+.mce-container .mce-monospace,
+.mce-widget .mce-monospace {
+	font-family: Consolas, Monaco, monospace;
+	font-size: 13px;
+	line-height: 150%;
+}
+
 /* TinyMCE windows */
 #mce-modal-block,
 #mce-modal-block.mce-fade {
@@ -581,6 +588,7 @@ div.mce-path {
 .mce-menu .mce-menu-item-normal.mce-active,
 .mce-menu .mce-menu-item-preview.mce-active {
 	background: #0073aa; /* See color scheme. */
+	color: #fff;
 }
 
 .mce-menu .mce-menu-item-preview.mce-active {
@@ -643,6 +651,16 @@ div.mce-menu .mce-menu-item-sep,
 	margin-left: -2px;
 }
 
+/* Keyboard shortcuts position */
+.mce-menu.mce-menu-align .mce-menu-item-normal {
+	position: relative;
+}
+
+.mce-menu.mce-menu-align .mce-menu-shortcut {
+	bottom: 0.6em;
+	font-size: 0.9em;
+}
+
 /* Buttons in modals */
 .mce-primary button,
 .mce-primary button i {
@@ -840,6 +858,11 @@ div.mce-menu .mce-menu-item-sep,
 	border-left-color: #23282d;
 }
 
+div.mce-notification {
+	left: 10% !important;
+	right: 10%;
+}
+
 .mce-notification button.mce-close {
 	right: 6px;
 	top: 3px;
@@ -1147,7 +1170,7 @@ i.mce-i-wp_code:before {
 }
 
 .js .tmce-active .wp-editor-area {
-	color: white;
+	color: #fff;
 }
 
 .tmce-active .quicktags-toolbar {
@@ -1304,7 +1327,7 @@ i.mce-i-wp_code:before {
 
 @media screen and ( min-width: 782px ) {
 	.wp-core-ui .quicktags-toolbar input.button.button-small {
-		/* .button-small is normaly 11px, but a bit too small for these buttons. */
+		/* .button-small is normally 11px, but a bit too small for these buttons. */
 		font-size: 12px;
 		height: 26px;
 		line-height: 24px;
diff --git a/wp-includes/css/editor.min.css b/wp-includes/css/editor.min.css
index 40d0e1276..396001be0 100644
--- a/wp-includes/css/editor.min.css
+++ b/wp-includes/css/editor.min.css
@@ -1 +1 @@
-#wp-link-wrap,.mce-window{-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3)}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;filter:alpha(opacity=70);-webkit-transition:none;transition:none}.mce-window{-webkit-border-radius:0;border-radius:0;box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased;-webkit-transition:none;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #ddd;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;right:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#00a0d2}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-window-head .mce-dragh{width:-webkit-calc(100% - 36px);width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #ddd}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);-webkit-transition:.05s all ease-in-out;transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 10px 0 20px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(even),.mce-window .wp-editor-help table.fixed th:nth-child(even){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#eaeaea;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #ddd;background:#f5f5f5;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a0a5aa;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-bottom:8px;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.quicktags-toolbar,.wp-editor-tools,.wp-editor-wrap,.wp-switch-editor{position:relative}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a0a5aa;border-width:0 9px 9px;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a0a5aa;border-width:9px 9px 0;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f5f5f5;border-width:0 8px 8px;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f5f5f5;border-width:8px 8px 0;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{left:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-full{right:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;-webkit-border-radius:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#fafafa;border-color:#555d66;color:#23282d;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#ebebeb;border-color:#555d66;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#23282d}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a0a5aa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;-webkit-box-shadow:none;box-shadow:none}.mce-menu .mce-menu-item-preview.mce-active .mce-text,.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#555d66}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:20px;padding-left:6px;padding-right:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-right:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;left:3px;height:3px;width:20px;background:#555d66}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#0085ba;border-color:#0073aa #006799 #006799;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{-webkit-box-shadow:0 0 1px 1px #33b3db;box-shadow:0 0 1px 1px #33b3db}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 0 #006799;box-shadow:inset 0 2px 0 #006799}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{-webkit-border-radius:0;border-radius:0;direction:ltr;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#b4b9be}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #555d66;margin-left:2px;margin-right:2px}.mce-listbox i.mce-caret{right:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#23282d}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #23282d;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-right-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item-normal.mce-active,.mce-menu .mce-menu-item-preview.mce-active,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#0073aa}.mce-menu .mce-menu-item-preview.mce-active{border-left:none}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn{margin:2px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}.mce-menubtn span{margin-right:0;padding-left:3px}.mce-menu-has-icons i.mce-ico:before{margin-left:-2px}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#23282d}.mce-window .mce-btn:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);-webkit-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a0a5aa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;-webkit-transform:none!important;-ms-transform:none!important;transform:none!important}.mce-window .mce-btn.mce-primary{background:#0085ba;border-color:#0073aa #006799 #006799;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-window .mce-btn.mce-primary:focus{-webkit-box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.mce-window .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 0 #006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#66c6e4!important;background:#008ec2!important;border-color:#007cb2!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-toolbar .mce-ico,.qt-dfw{text-shadow:none;text-align:center}.mce-menubtn.mce-fixed-width button{overflow-x:hidden;text-overflow:ellipsis;width:110px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#ddd;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-toolbar .mce-btn .mce-open,.qt-dfw{line-height:20px}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#555d66;line-height:20px;width:20px;height:20px;margin:0;padding:0}.qt-dfw{color:#555d66;width:28px;height:26px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-left-color:#23282d}.mce-notification button.mce-close{right:6px;top:3px;font-weight:400;color:#555d66}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 2px 0 0;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-left:-2px}.qt-dfw{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-tools{z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.wp-editor-tabs{float:right}.wp-switch-editor{float:left;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;top:1px;background:#ebebeb;color:#666;cursor:pointer;font-size:13px;line-height:19px;height:20px;margin:5px 0 0 5px;padding:3px 8px 4px;border:1px solid #e5e5e5}.wp-switch-editor:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);outline:0;color:#23282d}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{-webkit-box-shadow:none;box-shadow:none}.wp-switch-editor:active{background-color:#f5f5f5;-webkit-box-shadow:none;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;border-bottom-color:#f5f5f5}.wp-media-buttons{float:left}.wp-media-buttons .button{margin-right:5px;margin-bottom:4px;padding-left:7px;padding-right:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-left:5px}.wp-media-buttons a{text-decoration:none;color:#444;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f104"}.quicktags-toolbar{padding:3px;border-bottom:1px solid #ddd;background:#f5f5f5;min-height:30px}.has-dfw .quicktags-toolbar{padding-right:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;right:0;margin:5px 5px 0 0}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 4px 0 0}.mce-toolbar .mce-colorbutton .mce-preview{left:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;overflow:hidden;margin-left:-250px;position:fixed;top:50%;left:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s;height:500px;margin-top:-250px}#wp-link-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}#wp-link-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#00a0d2}#wp-link-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:37px;left:0;right:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:right;padding-right:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{float:left;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:left;margin-top:4px}#wp-link .link-search-wrapper .spinner{margin-top:5px}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0 0 12px;background:#fff;overflow:auto;position:absolute;left:16px;right:16px;bottom:0;top:166px}.has-text-field #wp-link .query-results{top:200px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#32373c;padding:4px 6px 4px 10px;cursor:pointer;position:relative}#wp-link .query-notice,#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link .query-notice{padding:0;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-left:4px solid #00a0d2}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-left:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#32373c}#wp-link li.selected{background:#ddd;color:#32373c}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:-webkit-calc(100% - 68px);width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;right:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;left:0;right:0}#wp-link-cancel{line-height:25px;float:left}#wp-link-update{line-height:23px;float:right}#wp-link-submit{float:right}@media screen and (max-width:782px){#wp-link-wrap{margin-top:-140px}#wp-link-wrap .query-results{top:195px}#wp-link-wrap.has-text-field .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{-webkit-transition:none;transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}#search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:-webkit-calc(100% - 92px);height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}div.wp-link-preview{float:left;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#0073aa;text-decoration:underline;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#dc3232}div.wp-link-input{float:left;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-right:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:left}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:right}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:-webkit-calc(100% - 86px);max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 0 8px 5px}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}}
\ No newline at end of file
+#wp-link-wrap,.mce-window{-webkit-box-shadow:0 3px 6px rgba(0,0,0,.3)}.mce-window .mce-wp-help *,div.mce-inline-toolbar-grp{-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;filter:alpha(opacity=70);-webkit-transition:none;transition:none}.mce-window{-webkit-border-radius:0;border-radius:0;box-shadow:0 3px 6px rgba(0,0,0,.3);-webkit-font-smoothing:subpixel-antialiased;-webkit-transition:none;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #ddd;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;right:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#00a0d2}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-window-head .mce-dragh{width:-webkit-calc(100% - 36px);width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #ddd}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.07);box-shadow:inset 0 1px 2px rgba(0,0,0,.07);-webkit-transition:.05s all ease-in-out;transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help *{box-sizing:border-box}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 10px 0 20px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(even),.mce-window .wp-editor-help table.fixed th:nth-child(even){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#eaeaea;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);-webkit-border-radius:0;border-radius:0;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #ddd;background:#f5f5f5;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a0a5aa;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-menu.mce-menu-align .mce-menu-item-normal,.quicktags-toolbar,.wp-editor-tools,.wp-editor-wrap,.wp-switch-editor{position:relative}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a0a5aa;border-width:0 9px 9px;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a0a5aa;border-width:9px 9px 0;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f5f5f5;border-width:0 8px 8px;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f5f5f5;border-width:8px 8px 0;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{left:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-full{right:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;-webkit-box-shadow:none;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;-webkit-border-radius:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#fafafa;border-color:#555d66;color:#23282d;-webkit-box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#ebebeb;border-color:#555d66;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#23282d}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a0a5aa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;-webkit-box-shadow:none;box-shadow:none}.mce-menu .mce-menu-item-preview.mce-active .mce-text,.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#555d66}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:20px;padding-left:6px;padding-right:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-right:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;left:3px;height:3px;width:20px;background:#555d66}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#0085ba;border-color:#0073aa #006799 #006799;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{-webkit-box-shadow:0 0 1px 1px #33b3db;box-shadow:0 0 1px 1px #33b3db}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 0 #006799;box-shadow:inset 0 2px 0 #006799}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{-webkit-border-radius:0;border-radius:0;direction:ltr;background:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#b4b9be}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #555d66;margin-left:2px;margin-right:2px}.mce-listbox i.mce-caret{right:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#23282d}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #23282d;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-right-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item-normal.mce-active,.mce-menu .mce-menu-item-preview.mce-active,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#0073aa;color:#fff}.mce-menu .mce-menu-item-preview.mce-active{border-left:none}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn{margin:2px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#124964;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}.mce-menubtn span{margin-right:0;padding-left:3px}.mce-menu-has-icons i.mce-ico:before{margin-left:-2px}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;-webkit-border-radius:3px;border-radius:3px;white-space:nowrap;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#23282d}.mce-window .mce-btn:focus{border-color:#5b9dd9;-webkit-box-shadow:0 0 3px rgba(0,115,170,.8);box-shadow:0 0 3px rgba(0,115,170,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);-webkit-transform:translateY(1px);-ms-transform:translateY(1px);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a0a5aa!important;border-color:#ddd!important;background:#f7f7f7!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;-webkit-transform:none!important;-ms-transform:none!important;transform:none!important}.mce-window .mce-btn.mce-primary{background:#0085ba;border-color:#0073aa #006799 #006799;-webkit-box-shadow:0 1px 0 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-window .mce-btn.mce-primary:focus{-webkit-box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.mce-window .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;-webkit-box-shadow:inset 0 2px 0 #006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#66c6e4!important;background:#008ec2!important;border-color:#007cb2!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-toolbar .mce-ico,.qt-dfw{text-shadow:none;text-align:center}.mce-menubtn.mce-fixed-width button{overflow-x:hidden;text-overflow:ellipsis;width:110px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#ddd;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-toolbar .mce-btn .mce-open,.qt-dfw{line-height:20px}.mce-tooltip{margin-top:2px}.mce-tooltip-inner{-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#555d66;line-height:20px;width:20px;height:20px;margin:0;padding:0}.qt-dfw{color:#555d66;width:28px;height:26px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-left-color:#23282d}div.mce-notification{left:10%!important;right:10%}.mce-notification button.mce-close{right:6px;top:3px;font-weight:400;color:#555d66}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 2px 0 0;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-left:-2px}.qt-dfw{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-tools{z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.wp-editor-tabs{float:right}.wp-switch-editor{float:left;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;top:1px;background:#ebebeb;color:#666;cursor:pointer;font-size:13px;line-height:19px;height:20px;margin:5px 0 0 5px;padding:3px 8px 4px;border:1px solid #e5e5e5}.wp-switch-editor:focus{-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);outline:0;color:#23282d}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{-webkit-box-shadow:none;box-shadow:none}.wp-switch-editor:active{background-color:#f5f5f5;-webkit-box-shadow:none;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;border-bottom-color:#f5f5f5}.wp-media-buttons{float:left}.wp-media-buttons .button{margin-right:5px;margin-bottom:4px;padding-left:7px;padding-right:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-left:5px}.wp-media-buttons a{text-decoration:none;color:#444;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f104"}.quicktags-toolbar{padding:3px;border-bottom:1px solid #ddd;background:#f5f5f5;min-height:30px}.has-dfw .quicktags-toolbar{padding-right:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;right:0;margin:5px 5px 0 0}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 4px 0 0}.mce-toolbar .mce-colorbutton .mce-preview{left:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);width:500px;overflow:hidden;margin-left:-250px;position:fixed;top:50%;left:50%;z-index:100105;-webkit-transition:height .2s,margin-top .2s;transition:height .2s,margin-top .2s;height:500px;margin-top:-250px}#wp-link-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}#wp-link-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#00a0d2}#wp-link-close:focus{outline:0;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:37px;left:0;right:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:right;padding-right:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{float:left;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:left;margin-top:4px}#wp-link .link-search-wrapper .spinner{margin-top:5px}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0 0 12px;background:#fff;overflow:auto;position:absolute;left:16px;right:16px;bottom:0;top:166px}.has-text-field #wp-link .query-results{top:200px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#32373c;padding:4px 6px 4px 10px;cursor:pointer;position:relative}#wp-link .query-notice,#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link .query-notice{padding:0;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-left:4px solid #00a0d2}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-left:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#32373c}#wp-link li.selected{background:#ddd;color:#32373c}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:-webkit-calc(100% - 68px);width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;right:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;left:0;right:0}#wp-link-cancel{line-height:25px;float:left}#wp-link-update{line-height:23px;float:right}#wp-link-submit{float:right}@media screen and (max-width:782px){#wp-link-wrap{margin-top:-140px}#wp-link-wrap .query-results{top:195px}#wp-link-wrap.has-text-field .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{-webkit-transition:none;transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}#search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:-webkit-calc(100% - 92px);height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}div.wp-link-preview{float:left;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#0073aa;text-decoration:underline;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#dc3232}div.wp-link-input{float:left;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-right:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #5b9dd9;-webkit-box-shadow:0 1px 2px rgba(30,140,190,.8);box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:left}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:right}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:-webkit-calc(100% - 86px);max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 0 8px 5px}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}}
\ No newline at end of file
diff --git a/wp-includes/css/wp-embed-template.css b/wp-includes/css/wp-embed-template.css
index 10ff56ef5..28e437c41 100644
--- a/wp-includes/css/wp-embed-template.css
+++ b/wp-includes/css/wp-embed-template.css
@@ -64,7 +64,7 @@ body {
 	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
 	line-height: 1.5;
 	color: #82878c;
-	background: white;
+	background: #fff;
 	border: 1px solid #e5e5e5;
 	-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
 	box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
diff --git a/wp-includes/customize/class-wp-customize-background-image-control.php b/wp-includes/customize/class-wp-customize-background-image-control.php
index 588e32a9c..50956f852 100644
--- a/wp-includes/customize/class-wp-customize-background-image-control.php
+++ b/wp-includes/customize/class-wp-customize-background-image-control.php
@@ -40,7 +40,9 @@ class WP_Customize_Background_Image_Control extends WP_Customize_Image_Control {
 	public function enqueue() {
 		parent::enqueue();
 
+		$custom_background = get_theme_support( 'custom-background' );
 		wp_localize_script( 'customize-controls', '_wpCustomizeBackground', array(
+			'defaults' => ! empty( $custom_background[0] ) ? $custom_background[0] : array(),
 			'nonces' => array(
 				'add' => wp_create_nonce( 'background-add' ),
 			),
diff --git a/wp-includes/customize/class-wp-customize-background-position-control.php b/wp-includes/customize/class-wp-customize-background-position-control.php
new file mode 100644
index 000000000..475a01a54
--- /dev/null
+++ b/wp-includes/customize/class-wp-customize-background-position-control.php
@@ -0,0 +1,87 @@
+<?php
+/**
+ * Customize API: WP_Customize_Background_Position_Control class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 4.7.0
+ */
+
+/**
+ * Customize Background Position Control class.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_Customize_Control
+ */
+class WP_Customize_Background_Position_Control extends WP_Customize_Control {
+
+	/**
+	 * Type.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $type = 'background_position';
+
+	/**
+	 * Don't render the control content from PHP, as it's rendered via JS on load.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function render_content() {}
+
+	/**
+	 * Render a JS template for the content of the position control.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function content_template() {
+		$options = array(
+			array(
+				'left top'   => array( 'label' => __( 'Top Left' ), 'icon' => 'dashicons dashicons-arrow-left-alt' ),
+				'center top' => array( 'label' => __( 'Top' ), 'icon' => 'dashicons dashicons-arrow-up-alt' ),
+				'right top'  => array( 'label' => __( 'Top Right' ), 'icon' => 'dashicons dashicons-arrow-right-alt' ),
+			),
+			array(
+				'left center'   => array( 'label' => __( 'Left' ), 'icon' => 'dashicons dashicons-arrow-left-alt' ),
+				'center center' => array( 'label' => __( 'Center' ), 'icon' => 'background-position-center-icon' ),
+				'right center'  => array( 'label' => __( 'Right' ), 'icon' => 'dashicons dashicons-arrow-right-alt' ),
+			),
+			array(
+				'left bottom'   => array( 'label' => __( 'Bottom Left' ), 'icon' => 'dashicons dashicons-arrow-left-alt' ),
+				'center bottom' => array( 'label' => __( 'Bottom' ), 'icon' => 'dashicons dashicons-arrow-down-alt' ),
+				'right bottom'  => array( 'label' => __( 'Bottom Right' ), 'icon' => 'dashicons dashicons-arrow-right-alt' ),
+			),
+		);
+		?>
+		<# if ( data.label ) { #>
+			<span class="customize-control-title">{{{ data.label }}}</span>
+		<# } #>
+		<# if ( data.description ) { #>
+			<span class="description customize-control-description">{{{ data.description }}}</span>
+		<# } #>
+		<div class="customize-control-content">
+			<fieldset>
+				<legend class="screen-reader-text"><span><?php _e( 'Image Position' ); ?></span></legend>
+				<div class="background-position-control">
+				<?php foreach ( $options as $group ) : ?>
+					<div class="button-group">
+					<?php foreach ( $group as $value => $input ) : ?>
+						<label>
+							<input class="screen-reader-text" name="background-position" type="radio" value="<?php echo esc_attr( $value ); ?>">
+							<span class="button display-options position"><span class="<?php echo esc_attr( $input['icon'] ); ?>" aria-hidden="true"></span></span>
+							<span class="screen-reader-text"><?php echo $input['label']; ?></span>
+						</label>
+					<?php endforeach; ?>
+					</div>
+				<?php endforeach; ?>
+				</div>
+			</fieldset>
+		</div>
+		<?php
+	}
+}
diff --git a/wp-includes/customize/class-wp-customize-color-control.php b/wp-includes/customize/class-wp-customize-color-control.php
index fac9a7d5c..7f6a9b5a8 100644
--- a/wp-includes/customize/class-wp-customize-color-control.php
+++ b/wp-includes/customize/class-wp-customize-color-control.php
@@ -16,17 +16,30 @@
  */
 class WP_Customize_Color_Control extends WP_Customize_Control {
 	/**
+	 * Type.
+	 *
 	 * @access public
 	 * @var string
 	 */
 	public $type = 'color';
 
 	/**
+	 * Statuses.
+	 *
 	 * @access public
 	 * @var array
 	 */
 	public $statuses;
 
+	/**
+	 * Mode.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $mode = 'full';
+
 	/**
 	 * Constructor.
 	 *
@@ -62,6 +75,7 @@ class WP_Customize_Color_Control extends WP_Customize_Control {
 		parent::to_json();
 		$this->json['statuses'] = $this->statuses;
 		$this->json['defaultValue'] = $this->setting->default;
+		$this->json['mode'] = $this->mode;
 	}
 
 	/**
@@ -78,8 +92,10 @@ class WP_Customize_Color_Control extends WP_Customize_Control {
 	 */
 	public function content_template() {
 		?>
-		<# var defaultValue = '';
-		if ( data.defaultValue ) {
+		<# var defaultValue = '',
+			isHueSlider = data.mode === 'hue';
+
+		if ( data.defaultValue && ! isHueSlider ) {
 			if ( '#' !== data.defaultValue.substring( 0, 1 ) ) {
 				defaultValue = '#' + data.defaultValue;
 			} else {
@@ -95,7 +111,11 @@ class WP_Customize_Color_Control extends WP_Customize_Control {
 				<span class="description customize-control-description">{{{ data.description }}}</span>
 			<# } #>
 			<div class="customize-control-content">
-				<input class="color-picker-hex" type="text" maxlength="7" placeholder="<?php esc_attr_e( 'Hex Value' ); ?>" {{ defaultValue }} />
+				<# if ( isHueSlider ) { #>
+					<input class="color-picker-hue" type="text" data-type="hue" />
+				<# } else { #>
+					<input class="color-picker-hex" type="text" maxlength="7" placeholder="<?php esc_attr_e( 'Hex Value' ); ?>" {{ defaultValue }} />
+				<# } #>
 			</div>
 		</label>
 		<?php
diff --git a/wp-includes/customize/class-wp-customize-custom-css-setting.php b/wp-includes/customize/class-wp-customize-custom-css-setting.php
new file mode 100644
index 000000000..cb0f151ae
--- /dev/null
+++ b/wp-includes/customize/class-wp-customize-custom-css-setting.php
@@ -0,0 +1,373 @@
+<?php
+/**
+ * Customize API: WP_Customize_Custom_CSS_Setting class
+ *
+ * This handles validation, sanitization and saving of the value.
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 4.7.0
+ */
+
+/**
+ * Custom Setting to handle WP Custom CSS.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_Customize_Setting
+ */
+final class WP_Customize_Custom_CSS_Setting extends WP_Customize_Setting {
+
+	/**
+	 * The setting type.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $type = 'custom_css';
+
+	/**
+	 * Setting Transport
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $transport = 'postMessage';
+
+	/**
+	 * Capability required to edit this setting.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $capability = 'edit_css';
+
+	/**
+	 * Stylesheet
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @var string
+	 */
+	public $stylesheet = '';
+
+	/**
+	 * WP_Customize_Custom_CSS_Setting constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @throws Exception If the setting ID does not match the pattern `custom_css[$stylesheet]`.
+	 *
+	 * @param WP_Customize_Manager $manager The Customize Manager class.
+	 * @param string               $id      An specific ID of the setting. Can be a
+	 *                                      theme mod or option name.
+	 * @param array                $args    Setting arguments.
+	 */
+	public function __construct( $manager, $id, $args = array() ) {
+		parent::__construct( $manager, $id, $args );
+		if ( 'custom_css' !== $this->id_data['base'] ) {
+			throw new Exception( 'Expected custom_css id_base.' );
+		}
+		if ( 1 !== count( $this->id_data['keys'] ) || empty( $this->id_data['keys'][0] ) ) {
+			throw new Exception( 'Expected single stylesheet key.' );
+		}
+		$this->stylesheet = $this->id_data['keys'][0];
+	}
+
+	/**
+	 * Add filter to preview post value.
+	 *
+	 * @since 4.7.9
+	 * @access public
+	 *
+	 * @return bool False when preview short-circuits due no change needing to be previewed.
+	 */
+	public function preview() {
+		if ( $this->is_previewed ) {
+			return false;
+		}
+		$this->is_previewed = true;
+		add_filter( 'wp_get_custom_css', array( $this, 'filter_previewed_wp_get_custom_css' ), 9, 2 );
+		return true;
+	}
+
+	/**
+	 * Filter `wp_get_custom_css` for applying the customized value.
+	 *
+	 * This is used in the preview when `wp_get_custom_css()` is called for rendering the styles.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @see wp_get_custom_css()
+	 *
+	 * @param string $css        Original CSS.
+	 * @param string $stylesheet Current stylesheet.
+	 * @return string CSS.
+	 */
+	public function filter_previewed_wp_get_custom_css( $css, $stylesheet ) {
+		if ( $stylesheet === $this->stylesheet ) {
+			$customized_value = $this->post_value( null );
+			if ( ! is_null( $customized_value ) ) {
+				$css = $customized_value;
+			}
+		}
+		return $css;
+	}
+
+	/**
+	 * Fetch the value of the setting. Will return the previewed value when `preview()` is called.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 * @see WP_Customize_Setting::value()
+	 *
+	 * @return string
+	 */
+	public function value() {
+		if ( $this->is_previewed ) {
+			$post_value = $this->post_value( null );
+			if ( null !== $post_value ) {
+				return $post_value;
+			}
+		}
+		$id_base = $this->id_data['base'];
+		$value = '';
+		$post = wp_get_custom_css_post( $this->stylesheet );
+		if ( $post ) {
+			$value = $post->post_content;
+		}
+		if ( empty( $value ) ) {
+			$value = $this->default;
+		}
+
+		/** This filter is documented in wp-includes/class-wp-customize-setting.php */
+		$value = apply_filters( "customize_value_{$id_base}", $value, $this );
+
+		return $value;
+	}
+
+	/**
+	 * Validate CSS.
+	 *
+	 * Checks for imbalanced braces, brackets, and comments.
+	 * Notifications are rendered when the customizer state is saved.
+	 *
+	 * @todo There are cases where valid CSS can be incorrectly marked as invalid when strings or comments include balancing characters. To fix, CSS tokenization needs to be used.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string $css The input string.
+	 * @return true|WP_Error True if the input was validated, otherwise WP_Error.
+	 */
+	public function validate( $css ) {
+		$validity = new WP_Error();
+
+		if ( preg_match( '#</?\w+#', $css ) ) {
+			$validity->add( 'illegal_markup', __( 'Markup is not allowed in CSS.' ) );
+		}
+
+		$imbalanced = false;
+
+		// Make sure that there is a closing brace for each opening brace.
+		if ( ! $this->validate_balanced_characters( '{', '}', $css ) ) {
+			$validity->add( 'imbalanced_curly_brackets', __( 'Your curly brackets <code>{}</code> are imbalanced. Make sure there is a closing <code>}</code> for every opening <code>{</code>.' ) );
+			$imbalanced = true;
+		}
+
+		// Ensure brackets are balanced.
+		if ( ! $this->validate_balanced_characters( '[', ']', $css ) ) {
+			$validity->add( 'imbalanced_braces', __( 'Your brackets <code>[]</code> are imbalanced. Make sure there is a closing <code>]</code> for every opening <code>[</code>.' ) );
+			$imbalanced = true;
+		}
+
+		// Ensure parentheses are balanced.
+		if ( ! $this->validate_balanced_characters( '(', ')', $css ) ) {
+			$validity->add( 'imbalanced_parentheses', __( 'Your parentheses <code>()</code> are imbalanced. Make sure there is a closing <code>)</code> for every opening <code>(</code>.' ) );
+			$imbalanced = true;
+		}
+
+		// Ensure single quotes are equal.
+		if ( ! $this->validate_equal_characters( '\'', $css ) ) {
+			$validity->add( 'unequal_single_quotes', __( 'Your single quotes <code>\'</code> are uneven. Make sure there is a closing <code>\'</code> for every opening <code>\'</code>.' ) );
+			$imbalanced = true;
+		}
+
+		// Ensure single quotes are equal.
+		if ( ! $this->validate_equal_characters( '"', $css ) ) {
+			$validity->add( 'unequal_double_quotes', __( 'Your double quotes <code>"</code> are uneven. Make sure there is a closing <code>"</code> for every opening <code>"</code>.' ) );
+			$imbalanced = true;
+		}
+
+		/*
+		 * Make sure any code comments are closed properly.
+		 *
+		 * The first check could miss stray an unpaired comment closing figure, so if
+		 * The number appears to be balanced, then check for equal numbers
+		 * of opening/closing comment figures.
+		 *
+		 * Although it may initially appear redundant, we use the first method
+		 * to give more specific feedback to the user.
+		 */
+		$unclosed_comment_count = $this->validate_count_unclosed_comments( $css );
+		if ( 0 < $unclosed_comment_count ) {
+			$validity->add( 'unclosed_comment', sprintf( _n( 'There is %s unclosed code comment. Close each comment with <code>*/</code>.', 'There are %s unclosed code comments. Close each comment with <code>*/</code>.', $unclosed_comment_count ), $unclosed_comment_count ) );
+			$imbalanced = true;
+		} elseif ( ! $this->validate_balanced_characters( '/*', '*/', $css ) ) {
+			$validity->add( 'imbalanced_comments', __( 'There is an extra <code>*/</code>, indicating an end to a comment.  Be sure that there is an opening <code>/*</code> for every closing <code>*/</code>.' ) );
+			$imbalanced = true;
+		}
+		if ( $imbalanced && $this->is_possible_content_error( $css ) ) {
+			$validity->add( 'possible_false_positive', __( 'Imbalanced/unclosed character errors can be caused by <code>content: "";</code> declarations. You may need to remove this or add it to a custom CSS file.' ) );
+		}
+
+		if ( empty( $validity->errors ) ) {
+			$validity = parent::validate( $css );
+		}
+		return $validity;
+	}
+
+	/**
+	 * Store the CSS setting value in the custom_css custom post type for the stylesheet.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string $css The input value.
+	 * @return int|false The post ID or false if the value could not be saved.
+	 */
+	public function update( $css ) {
+		if ( empty( $css ) ) {
+			$css = '';
+		}
+
+		$r = wp_update_custom_css_post( $css, array(
+			'stylesheet' => $this->stylesheet,
+		) );
+
+		if ( $r instanceof WP_Error ) {
+			return false;
+		}
+		$post_id = $r->ID;
+
+		// Cache post ID in theme mod for performance to avoid additional DB query.
+		if ( $this->manager->get_stylesheet() === $this->stylesheet ) {
+			set_theme_mod( 'custom_css_post_id', $post_id );
+		}
+
+		return $post_id;
+	}
+
+	/**
+	 * Ensure there are a balanced number of paired characters.
+	 *
+	 * This is used to check that the number of opening and closing
+	 * characters is equal.
+	 *
+	 * For instance, there should be an equal number of braces ("{", "}")
+	 * in the CSS.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param string $opening_char The opening character.
+	 * @param string $closing_char The closing character.
+	 * @param string $css The CSS input string.
+	 *
+	 * @return bool
+	 */
+	private function validate_balanced_characters( $opening_char, $closing_char, $css ) {
+		return substr_count( $css, $opening_char ) === substr_count( $css, $closing_char );
+	}
+
+	/**
+	 * Ensure there are an even number of paired characters.
+	 *
+	 * This is used to check that the number of a specific
+	 * character is even.
+	 *
+	 * For instance, there should be an even number of double quotes
+	 * in the CSS.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param string $char A character.
+	 * @param string $css The CSS input string.
+	 * @return bool Equality.
+	 */
+	private function validate_equal_characters( $char, $css ) {
+		$char_count = substr_count( $css, $char );
+		return ( 0 === $char_count % 2 );
+	}
+
+	/**
+	 * Count unclosed CSS Comments.
+	 *
+	 * Used during validation.
+	 *
+	 * @see self::validate()
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param string $css The CSS input string.
+	 * @return int Count.
+	 */
+	private function validate_count_unclosed_comments( $css ) {
+		$count = 0;
+		$comments = explode( '/*', $css );
+
+		if ( ! is_array( $comments ) || ( 1 >= count( $comments ) ) ) {
+			return $count;
+		}
+
+		unset( $comments[0] ); // The first item is before the first comment.
+		foreach ( $comments as $comment ) {
+			if ( false === strpos( $comment, '*/' ) ) {
+				$count++;
+			}
+		}
+		return $count;
+	}
+
+	/**
+	 * Find "content:" within a string.
+	 *
+	 * Imbalanced/Unclosed validation errors may be caused
+	 * when a character is used in a "content:" declaration.
+	 *
+	 * This function is used to detect if this is a possible
+	 * cause of the validation error, so that if it is,
+	 * a notification may be added to the Validation Errors.
+	 *
+	 * Example:
+	 * .element::before {
+	 *   content: "(\"";
+	 * }
+	 * .element::after {
+	 *   content: "\")";
+	 * }
+	 *
+	 * Using ! empty() because strpos() may return non-boolean values
+	 * that evaluate to false. This would be problematic when
+	 * using a strict "false === strpos()" comparison.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 *
+	 * @param string $css The CSS input string.
+	 * @return bool
+	 */
+	private function is_possible_content_error( $css ) {
+		$found = preg_match( '/\bcontent\s*:/', $css );
+		if ( ! empty( $found ) ) {
+			return true;
+		}
+		return false;
+	}
+}
diff --git a/wp-includes/customize/class-wp-customize-header-image-control.php b/wp-includes/customize/class-wp-customize-header-image-control.php
index 9852de6dd..b87a7bb35 100644
--- a/wp-includes/customize/class-wp-customize-header-image-control.php
+++ b/wp-includes/customize/class-wp-customize-header-image-control.php
@@ -102,10 +102,6 @@ class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
 
 			<# } else { #>
 
-			<# if (data.type === 'uploaded') { #>
-				<button type="button" class="dashicons dashicons-no close"><span class="screen-reader-text"><?php _e( 'Remove image' ); ?></span></button>
-			<# } #>
-
 			<button type="button" class="choice thumbnail"
 				data-customize-image-value="{{{data.header.url}}}"
 				data-customize-header-image-data="{{JSON.stringify(data.header)}}">
@@ -113,6 +109,10 @@ class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
 				<img src="{{{data.header.thumbnail_url}}}" alt="{{{data.header.alt_text || data.header.description}}}">
 			</button>
 
+			<# if ( data.type === 'uploaded' ) { #>
+				<button type="button" class="dashicons dashicons-no close"><span class="screen-reader-text"><?php _e( 'Remove image' ); ?></span></button>
+			<# } #>
+
 			<# } #>
 		</script>
 
@@ -131,7 +131,7 @@ class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
 
 				<# } else { #>
 
-			<img src="{{{data.header.thumbnail_url}}}" alt="{{{data.header.alt_text || data.header.description}}}" tabindex="0"/>
+			<img src="{{{data.header.thumbnail_url}}}" alt="{{{data.header.alt_text || data.header.description}}}" />
 
 				<# } #>
 			<# } else { #>
@@ -166,9 +166,15 @@ class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
 		$height = absint( get_theme_support( 'custom-header', 'height' ) );
 		?>
 		<div class="customize-control-content">
-			<p class="customizer-section-intro">
+			<?php if ( current_theme_supports( 'custom-header', 'video' ) ) {
+				echo '<span class="customize-control-title">' . $this->label . '</span>';
+			} ?>
+			<div class="customize-control-notifications-container"></div>
+			<p class="customizer-section-intro customize-control-description">
 				<?php
-				if ( $width && $height ) {
+				if ( current_theme_supports( 'custom-header', 'video' ) ) {
+					_e( 'While you can crop images to your liking after clicking <strong>Add new image</strong>, we recommend matching the size of your video.' );
+				} elseif ( $width && $height ) {
 					/* translators: %s: header size in pixels */
 					printf( __( 'While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header size of %s pixels.' ),
 						sprintf( '<strong>%s &times; %s</strong>', $width, $height )
diff --git a/wp-includes/customize/class-wp-customize-header-image-setting.php b/wp-includes/customize/class-wp-customize-header-image-setting.php
index 98b79aed5..af5c51624 100644
--- a/wp-includes/customize/class-wp-customize-header-image-setting.php
+++ b/wp-includes/customize/class-wp-customize-header-image-setting.php
@@ -29,6 +29,15 @@ final class WP_Customize_Header_Image_Setting extends WP_Customize_Setting {
 	public function update( $value ) {
 		global $custom_image_header;
 
+		// If _custom_header_background_just_in_time() fails to initialize $custom_image_header when not is_admin().
+		if ( empty( $custom_image_header ) ) {
+			require_once( ABSPATH . 'wp-admin/custom-header.php' );
+			$args = get_theme_support( 'custom-header' );
+			$admin_head_callback = isset( $args[0]['admin-head-callback'] ) ? $args[0]['admin-head-callback'] : null;
+			$admin_preview_callback = isset( $args[0]['admin-preview-callback'] ) ? $args[0]['admin-preview-callback'] : null;
+			$custom_image_header = new Custom_Image_Header( $admin_head_callback, $admin_preview_callback );
+		}
+
 		// If the value doesn't exist (removed or random),
 		// use the header_image value.
 		if ( ! $value )
diff --git a/wp-includes/customize/class-wp-customize-nav-menu-control.php b/wp-includes/customize/class-wp-customize-nav-menu-control.php
index 7dfd18721..6b00a9156 100644
--- a/wp-includes/customize/class-wp-customize-nav-menu-control.php
+++ b/wp-includes/customize/class-wp-customize-nav-menu-control.php
@@ -48,7 +48,7 @@ class WP_Customize_Nav_Menu_Control extends WP_Customize_Control {
 	 */
 	public function content_template() {
 		?>
-		<button type="button" class="button-secondary add-new-menu-item" aria-label="<?php esc_attr_e( 'Add or remove menu items' ); ?>" aria-expanded="false" aria-controls="available-menu-items">
+		<button type="button" class="button add-new-menu-item" aria-label="<?php esc_attr_e( 'Add or remove menu items' ); ?>" aria-expanded="false" aria-controls="available-menu-items">
 			<?php _e( 'Add Items' ); ?>
 		</button>
 		<button type="button" class="button-link reorder-toggle" aria-label="<?php esc_attr_e( 'Reorder menu items' ); ?>" aria-describedby="reorder-items-desc-{{ data.menu_id }}">
@@ -64,7 +64,7 @@ class WP_Customize_Nav_Menu_Control extends WP_Customize_Control {
 		<?php if ( current_theme_supports( 'menus' ) ) : ?>
 		<ul class="menu-settings">
 			<li class="customize-control">
-				<span class="customize-control-title"><?php _e( 'Menu Locations' ); ?></span>
+				<span class="customize-control-title"><?php _e( 'Display Location' ); ?></span>
 			</li>
 
 			<?php foreach ( get_registered_nav_menus() as $location => $description ) : ?>
diff --git a/wp-includes/customize/class-wp-customize-nav-menu-item-control.php b/wp-includes/customize/class-wp-customize-nav-menu-item-control.php
index 95e7b54df..941dad4c3 100644
--- a/wp-includes/customize/class-wp-customize-nav-menu-item-control.php
+++ b/wp-includes/customize/class-wp-customize-nav-menu-item-control.php
@@ -69,7 +69,7 @@ class WP_Customize_Nav_Menu_Item_Control extends WP_Customize_Control {
 				<span class="item-type" aria-hidden="true">{{ data.item_type_label }}</span>
 				<span class="item-title" aria-hidden="true">
 					<span class="spinner"></span>
-					<span class="menu-item-title<# if ( ! data.title ) { #> no-title<# } #>">{{ data.title || wp.customize.Menus.data.l10n.untitled }}</span>
+					<span class="menu-item-title<# if ( ! data.title && ! data.original_title ) { #> no-title<# } #>">{{ data.title || data.original_title || wp.customize.Menus.data.l10n.untitled }}</span>
 				</span>
 				<span class="item-controls">
 					<button type="button" class="button-link item-edit" aria-expanded="false"><span class="screen-reader-text"><?php
@@ -96,7 +96,7 @@ class WP_Customize_Nav_Menu_Item_Control extends WP_Customize_Control {
 			<p class="description description-thin">
 				<label for="edit-menu-item-title-{{ data.menu_item_id }}">
 					<?php _e( 'Navigation Label' ); ?><br />
-					<input type="text" id="edit-menu-item-title-{{ data.menu_item_id }}" class="widefat edit-menu-item-title" name="menu-item-title" />
+					<input type="text" id="edit-menu-item-title-{{ data.menu_item_id }}" placeholder="{{ data.original_title }}" class="widefat edit-menu-item-title" name="menu-item-title" />
 				</label>
 			</p>
 			<p class="field-link-target description description-thin">
@@ -134,7 +134,10 @@ class WP_Customize_Nav_Menu_Item_Control extends WP_Customize_Control {
 			<div class="menu-item-actions description-thin submitbox">
 				<# if ( ( 'post_type' === data.item_type || 'taxonomy' === data.item_type ) && '' !== data.original_title ) { #>
 				<p class="link-to-original">
-					<?php printf( __( 'Original: %s' ), '<a class="original-link" href="{{ data.url }}">{{ data.original_title }}</a>' ); ?>
+					<?php
+						/* translators: Nav menu item original title. 1: Original title */
+						printf( __( 'Original: %s' ), '<a class="original-link" href="{{ data.url }}">{{ data.original_title }}</a>' );
+					?>
 				</p>
 				<# } #>
 
diff --git a/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php b/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php
index c71ab0975..11b5cd6d5 100644
--- a/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php
+++ b/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php
@@ -233,7 +233,10 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
 			} else {
 				$value = $post_value;
 			}
-		} else if ( isset( $this->value ) ) {
+			if ( ! empty( $value ) && empty( $value['original_title'] ) ) {
+				$value['original_title'] = $this->get_original_title( (object) $value );
+			}
+		} elseif ( isset( $this->value ) ) {
 			$value = $this->value;
 		} else {
 			$value = false;
@@ -242,7 +245,11 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
 			if ( $this->post_id > 0 ) {
 				$post = get_post( $this->post_id );
 				if ( $post && self::POST_TYPE === $post->post_type ) {
+					$is_title_empty = empty( $post->post_title );
 					$value = (array) wp_setup_nav_menu_item( $post );
+					if ( $is_title_empty ) {
+						$value['title'] = '';
+					}
 				}
 			}
 
@@ -256,9 +263,82 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
 			$value = $this->value;
 		}
 
+		if ( ! empty( $value ) && empty( $value['type_label'] ) ) {
+			$value['type_label'] = $this->get_type_label( (object) $value );
+		}
+
 		return $value;
 	}
 
+	/**
+	 * Get original title.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object $item Nav menu item.
+	 * @return string The original title.
+	 */
+	protected function get_original_title( $item ) {
+		$original_title = '';
+		if ( 'post_type' === $item->type && ! empty( $item->object_id ) ) {
+			$original_object = get_post( $item->object_id );
+			if ( $original_object ) {
+				/** This filter is documented in wp-includes/post-template.php */
+				$original_title = apply_filters( 'the_title', $original_object->post_title, $original_object->ID );
+
+				if ( '' === $original_title ) {
+					/* translators: %d: ID of a post */
+					$original_title = sprintf( __( '#%d (no title)' ), $original_object->ID );
+				}
+			}
+		} elseif ( 'taxonomy' === $item->type && ! empty( $item->object_id ) ) {
+			$original_term_title = get_term_field( 'name', $item->object_id, $item->object, 'raw' );
+			if ( ! is_wp_error( $original_term_title ) ) {
+				$original_title = $original_term_title;
+			}
+		} elseif ( 'post_type_archive' === $item->type ) {
+			$original_object = get_post_type_object( $item->object );
+			if ( $original_object ) {
+				$original_title = $original_object->labels->archives;
+			}
+		}
+		$original_title = html_entity_decode( $original_title, ENT_QUOTES, get_bloginfo( 'charset' ) );
+		return $original_title;
+	}
+
+	/**
+	 * Get type label.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object $item Nav menu item.
+	 * @returns string The type label.
+	 */
+	protected function get_type_label( $item ) {
+		if ( 'post_type' === $item->type ) {
+			$object = get_post_type_object( $item->object );
+			if ( $object ) {
+				$type_label = $object->labels->singular_name;
+			} else {
+				$type_label = $item->object;
+			}
+		} elseif ( 'taxonomy' === $item->type ) {
+			$object = get_taxonomy( $item->object );
+			if ( $object ) {
+				$type_label = $object->labels->singular_name;
+			} else {
+				$type_label = $item->object;
+			}
+		} elseif ( 'post_type_archive' === $item->type ) {
+			$type_label = __( 'Post Type Archive' );
+		} else {
+			$type_label = __( 'Custom Link' );
+		}
+		return $type_label;
+	}
+
 	/**
 	 * Ensure that the value is fully populated with the necessary properties.
 	 *
@@ -284,16 +364,7 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
 		}
 
 		if ( ! isset( $this->value['original_title'] ) ) {
-			$original_title = '';
-			if ( 'post_type' === $this->value['type'] ) {
-				$original_title = get_the_title( $this->value['object_id'] );
-			} elseif ( 'taxonomy' === $this->value['type'] ) {
-				$original_title = get_term_field( 'name', $this->value['object_id'], $this->value['object'], 'raw' );
-				if ( is_wp_error( $original_title ) ) {
-					$original_title = '';
-				}
-			}
-			$this->value['original_title'] = html_entity_decode( $original_title, ENT_QUOTES, get_bloginfo( 'charset' ) );
+			$this->value['original_title'] = $this->get_original_title( (object) $this->value );
 		}
 
 		if ( ! isset( $this->value['nav_menu_term_id'] ) && $this->post_id > 0 ) {
@@ -503,8 +574,9 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
 		}
 
 		if ( ARRAY_A === $args['output'] ) {
-			$GLOBALS['_menu_item_sort_prop'] = $args['output_key'];
-			usort( $items, '_sort_nav_menu_items' );
+			$items = wp_list_sort( $items, array(
+				$args['output_key'] => 'ASC',
+			) );
 			$i = 1;
 
 			foreach ( $items as $k => $item ) {
@@ -534,6 +606,12 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
 		$item->menu_order = $item->position;
 		unset( $item->position );
 
+		if ( empty( $item->original_title ) ) {
+			$item->original_title = $this->get_original_title( $item );
+		}
+		if ( empty( $item->title ) && ! empty( $item->original_title ) ) {
+			$item->title = $item->original_title;
+		}
 		if ( $item->title ) {
 			$item->post_title = $item->title;
 		}
@@ -547,23 +625,19 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting {
 		}
 
 		if ( ! isset( $post->type_label ) ) {
-			if ( 'post_type' === $post->type ) {
-				$object = get_post_type_object( $post->object );
-				if ( $object ) {
-					$post->type_label = $object->labels->singular_name;
-				} else {
-					$post->type_label = $post->object;
-				}
-			} elseif ( 'taxonomy' == $post->type ) {
-				$object = get_taxonomy( $post->object );
-				if ( $object ) {
-					$post->type_label = $object->labels->singular_name;
-				} else {
-					$post->type_label = $post->object;
-				}
-			} else {
-				$post->type_label = __( 'Custom Link' );
-			}
+			$post->type_label = $this->get_type_label( $post );
+		}
+
+		// Ensure nav menu item URL is set according to linked object.
+		if ( 'post_type' === $post->type && ! empty( $post->object_id ) ) {
+			$post->url = get_permalink( $post->object_id );
+		} elseif ( 'taxonomy' === $post->type && ! empty( $post->object ) && ! empty( $post->object_id ) ) {
+			$post->url = get_term_link( (int) $post->object_id, $post->object );
+		} elseif ( 'post_type_archive' === $post->type && ! empty( $post->object ) ) {
+			$post->url = get_post_type_archive_link( $post->object );
+		}
+		if ( is_wp_error( $post->url ) ) {
+			$post->url = '';
 		}
 
 		/** This filter is documented in wp-includes/nav-menu.php */
diff --git a/wp-includes/customize/class-wp-customize-nav-menu-setting.php b/wp-includes/customize/class-wp-customize-nav-menu-setting.php
index 0275c79a0..4d65cc4c7 100644
--- a/wp-includes/customize/class-wp-customize-nav-menu-setting.php
+++ b/wp-includes/customize/class-wp-customize-nav-menu-setting.php
@@ -287,8 +287,9 @@ class WP_Customize_Nav_Menu_Setting extends WP_Customize_Setting {
 
 		// Make sure the menu objects get re-sorted after an update/insert.
 		if ( ! $is_delete && ! empty( $args['orderby'] ) ) {
-			$this->_current_menus_sort_orderby = $args['orderby'];
-			usort( $menus, array( $this, '_sort_menus_by_orderby' ) );
+			$menus = wp_list_sort( $menus, array(
+				$args['orderby'] => 'ASC',
+			) );
 		}
 		// @todo add support for $args['hide_empty'] === true
 
@@ -313,7 +314,9 @@ class WP_Customize_Nav_Menu_Setting extends WP_Customize_Setting {
 	 * This is a workaround for a lack of closures.
 	 *
 	 * @since 4.3.0
+	 * @deprecated 4.7.0 Use wp_list_sort()
 	 * @access protected
+	 *
 	 * @param object $menu1
 	 * @param object $menu2
 	 * @return int
@@ -321,6 +324,8 @@ class WP_Customize_Nav_Menu_Setting extends WP_Customize_Setting {
 	 * @see WP_Customize_Nav_Menu_Setting::filter_wp_get_nav_menus()
 	 */
 	protected function _sort_menus_by_orderby( $menu1, $menu2 ) {
+		_deprecated_function( __METHOD__, '4.7.0', 'wp_list_sort' );
+
 		$key = $this->_current_menus_sort_orderby;
 		return strcmp( $menu1->$key, $menu2->$key );
 	}
diff --git a/wp-includes/customize/class-wp-customize-new-menu-section.php b/wp-includes/customize/class-wp-customize-new-menu-section.php
index 0495264a0..ba75928f8 100644
--- a/wp-includes/customize/class-wp-customize-new-menu-section.php
+++ b/wp-includes/customize/class-wp-customize-new-menu-section.php
@@ -36,7 +36,7 @@ class WP_Customize_New_Menu_Section extends WP_Customize_Section {
 	protected function render() {
 		?>
 		<li id="accordion-section-<?php echo esc_attr( $this->id ); ?>" class="accordion-section-new-menu">
-			<button type="button" class="button-secondary add-new-menu-item add-menu-toggle" aria-expanded="false">
+			<button type="button" class="button add-new-menu-item add-menu-toggle" aria-expanded="false">
 				<?php echo esc_html( $this->title ); ?>
 			</button>
 			<ul class="new-menu-section-content"></ul>
diff --git a/wp-includes/customize/class-wp-customize-selective-refresh.php b/wp-includes/customize/class-wp-customize-selective-refresh.php
index 245d32a27..2342aef9b 100644
--- a/wp-includes/customize/class-wp-customize-selective-refresh.php
+++ b/wp-includes/customize/class-wp-customize-selective-refresh.php
@@ -184,6 +184,10 @@ final class WP_Customize_Selective_Refresh {
 			'renderQueryVar' => self::RENDER_QUERY_VAR,
 			'l10n'           => array(
 				'shiftClickToEdit' => __( 'Shift-click to edit this element.' ),
+				'clickEditMenu' => __( 'Click to edit this menu.' ),
+				'clickEditWidget' => __( 'Click to edit this widget.' ),
+				'clickEditTitle' => __( 'Click to edit the site title.' ),
+				'clickEditMisc' => __( 'Click to edit this element.' ),
 				/* translators: %s: document.write() */
 				'badDocumentWrite' => sprintf( __( '%s is forbidden' ), 'document.write()' ),
 			),
@@ -307,19 +311,15 @@ final class WP_Customize_Selective_Refresh {
 			return;
 		}
 
-		$this->manager->remove_preview_signature();
-
 		/*
 		 * Note that is_customize_preview() returning true will entail that the
 		 * user passed the 'customize' capability check and the nonce check, since
 		 * WP_Customize_Manager::setup_theme() is where the previewing flag is set.
 		 */
 		if ( ! is_customize_preview() ) {
-			status_header( 403 );
-			wp_send_json_error( 'expected_customize_preview' );
+			wp_send_json_error( 'expected_customize_preview', 403 );
 		} else if ( ! isset( $_POST['partials'] ) ) {
-			status_header( 400 );
-			wp_send_json_error( 'missing_partials' );
+			wp_send_json_error( 'missing_partials', 400 );
 		}
 
 		$partials = json_decode( wp_unslash( $_POST['partials'] ), true );
diff --git a/wp-includes/customize/class-wp-customize-theme-control.php b/wp-includes/customize/class-wp-customize-theme-control.php
index e69668729..5187d022c 100644
--- a/wp-includes/customize/class-wp-customize-theme-control.php
+++ b/wp-includes/customize/class-wp-customize-theme-control.php
@@ -63,8 +63,8 @@ class WP_Customize_Theme_Control extends WP_Customize_Control {
 	 */
 	public function content_template() {
 		$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
-		$active_url  = esc_url( remove_query_arg( 'theme', $current_url ) );
-		$preview_url = esc_url( add_query_arg( 'theme', '__THEME__', $current_url ) ); // Token because esc_url() strips curly braces.
+		$active_url  = esc_url( remove_query_arg( 'customize_theme', $current_url ) );
+		$preview_url = esc_url( add_query_arg( 'customize_theme', '__THEME__', $current_url ) ); // Token because esc_url() strips curly braces.
 		$preview_url = str_replace( '__THEME__', '{{ data.theme.id }}', $preview_url );
 		?>
 		<# if ( data.theme.isActiveTheme ) { #>
@@ -87,7 +87,10 @@ class WP_Customize_Theme_Control extends WP_Customize_Control {
 				<span class="more-details" id="{{ data.theme.id }}-action"><?php _e( 'Live Preview' ); ?></span>
 			<# } #>
 
-			<div class="theme-author"><?php printf( __( 'By %s' ), '{{ data.theme.author }}' ); ?></div>
+			<div class="theme-author"><?php
+				/* translators: Theme author name */
+				printf( _x( 'By %s', 'theme author' ), '{{ data.theme.author }}' );
+			?></div>
 
 			<# if ( data.theme.isActiveTheme ) { #>
 				<h3 class="theme-name" id="{{ data.theme.id }}-name">
diff --git a/wp-includes/customize/class-wp-widget-area-customize-control.php b/wp-includes/customize/class-wp-widget-area-customize-control.php
index 298aece9b..8f76169c9 100644
--- a/wp-includes/customize/class-wp-widget-area-customize-control.php
+++ b/wp-includes/customize/class-wp-widget-area-customize-control.php
@@ -57,7 +57,7 @@ class WP_Widget_Area_Customize_Control extends WP_Customize_Control {
 	public function render_content() {
 		$id = 'reorder-widgets-desc-' . str_replace( array( '[', ']' ), array( '-', '' ), $this->id );
 		?>
-		<button type="button" class="button-secondary add-new-widget" aria-expanded="false" aria-controls="available-widgets">
+		<button type="button" class="button add-new-widget" aria-expanded="false" aria-controls="available-widgets">
 			<?php _e( 'Add a Widget' ); ?>
 		</button>
 		<button type="button" class="button-link reorder-toggle" aria-label="<?php esc_attr_e( 'Reorder widgets' ); ?>" aria-describedby="<?php echo esc_attr( $id ); ?>">
diff --git a/wp-includes/date.php b/wp-includes/date.php
index d1f85f8c0..c7d6b0409 100644
--- a/wp-includes/date.php
+++ b/wp-includes/date.php
@@ -151,7 +151,6 @@ class WP_Date_Query {
 	 *                              'comment_date', 'comment_date_gmt'.
 	 */
 	public function __construct( $date_query, $default_column = 'post_date' ) {
-
 		if ( isset( $date_query['relation'] ) && 'OR' === strtoupper( $date_query['relation'] ) ) {
 			$this->relation = 'OR';
 		} else {
@@ -740,12 +739,12 @@ class WP_Date_Query {
 		}
 
 		// Range queries.
-		if ( ! empty( $query['after'] ) )
+		if ( ! empty( $query['after'] ) ) {
 			$where_parts[] = $wpdb->prepare( "$column $gt %s", $this->build_mysql_datetime( $query['after'], ! $inclusive ) );
-
-		if ( ! empty( $query['before'] ) )
+		}
+		if ( ! empty( $query['before'] ) ) {
 			$where_parts[] = $wpdb->prepare( "$column $lt %s", $this->build_mysql_datetime( $query['before'], $inclusive ) );
-
+		}
 		// Specific value queries.
 
 		if ( isset( $query['year'] ) && $value = $this->build_value( $compare, $query['year'] ) )
diff --git a/wp-includes/default-constants.php b/wp-includes/default-constants.php
index 2aa3430ec..b8a73bc0d 100644
--- a/wp-includes/default-constants.php
+++ b/wp-includes/default-constants.php
@@ -205,7 +205,7 @@ function wp_cookie_constants() {
 		if ( $siteurl )
 			define( 'COOKIEHASH', md5( $siteurl ) );
 		else
-			define( 'COOKIEHASH', '' );
+			define( 'COOKIEHASH', md5( wp_guess_url() ) );
 	}
 
 	/**
@@ -357,6 +357,6 @@ function wp_templating_constants() {
 	 * @see WP_Theme::get_core_default_theme()
 	 */
 	if ( !defined('WP_DEFAULT_THEME') )
-		define( 'WP_DEFAULT_THEME', 'twentysixteen' );
+		define( 'WP_DEFAULT_THEME', 'twentyseventeen' );
 
 }
diff --git a/wp-includes/default-filters.php b/wp-includes/default-filters.php
index 3402e48ef..5a739754b 100644
--- a/wp-includes/default-filters.php
+++ b/wp-includes/default-filters.php
@@ -75,6 +75,7 @@ foreach ( array( 'user_url', 'link_url', 'link_image', 'link_rss', 'comment_url'
 
 // Slugs
 add_filter( 'pre_term_slug', 'sanitize_title' );
+add_filter( 'wp_insert_post_data', '_wp_customize_changeset_filter_insert_post_data', 10, 2 );
 
 // Keys
 foreach ( array( 'pre_post_type', 'pre_post_status', 'pre_post_comment_status', 'pre_post_ping_status' ) as $filter ) {
@@ -187,6 +188,11 @@ add_filter( 'the_guid',           'esc_url'                       );
 // Email filters
 add_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
 
+// Mark site as no longer fresh
+foreach ( array( 'publish_post', 'publish_page', 'wp_ajax_save-widget', 'wp_ajax_widgets-order', 'customize_save_after' ) as $action ) {
+	add_action( $action, '_delete_option_fresh_site' );
+}
+
 // Misc filters
 add_filter( 'option_ping_sites',        'privacy_ping_filter'                 );
 add_filter( 'option_blog_charset',      '_wp_specialchars'                    ); // IMPORTANT: This must not be wp_specialchars() or esc_html() or it'll cause an infinite loop
@@ -197,7 +203,7 @@ add_filter( 'tiny_mce_before_init',     '_mce_set_direction'                  );
 add_filter( 'teeny_mce_before_init',    '_mce_set_direction'                  );
 add_filter( 'pre_kses',                 'wp_pre_kses_less_than'               );
 add_filter( 'sanitize_title',           'sanitize_title_with_dashes',   10, 3 );
-add_action( 'check_comment_flood',      'check_comment_flood_db',       10, 3 );
+add_action( 'check_comment_flood',      'check_comment_flood_db',       10, 4 );
 add_filter( 'comment_flood_filter',     'wp_throttle_comment_flood',    10, 3 );
 add_filter( 'pre_comment_content',      'wp_rel_nofollow',              15    );
 add_filter( 'comment_email',            'antispambot'                         );
@@ -213,6 +219,8 @@ add_filter( 'pingback_ping_source_uri', 'pingback_ping_source_uri'            );
 add_filter( 'xmlrpc_pingback_error',    'xmlrpc_pingback_error'               );
 add_filter( 'title_save_pre',           'trim'                                );
 
+add_action( 'transition_comment_status', '_clear_modified_cache_on_transition_comment_status', 10, 2 );
+
 add_filter( 'http_request_host_is_external',    'allowed_http_request_hosts', 10, 2 );
 
 // REST API filters.
@@ -244,6 +252,7 @@ add_action( 'wp_head',             'wp_print_head_scripts',            9    );
 add_action( 'wp_head',             'wp_generator'                           );
 add_action( 'wp_head',             'rel_canonical'                          );
 add_action( 'wp_head',             'wp_shortlink_wp_head',            10, 0 );
+add_action( 'wp_head',             'wp_custom_css_cb',                11    );
 add_action( 'wp_head',             'wp_site_icon',                    99    );
 add_action( 'wp_footer',           'wp_print_footer_scripts',         20    );
 add_action( 'template_redirect',   'wp_shortlink_header',             11, 0 );
@@ -372,7 +381,9 @@ add_action( 'edit_user_created_user', 'wp_send_new_user_notifications', 10, 2 );
 
 // REST API actions.
 add_action( 'init',          'rest_api_init' );
-add_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
+add_action( 'rest_api_init', 'rest_api_default_filters',   10, 1 );
+add_action( 'rest_api_init', 'register_initial_settings',  10 );
+add_action( 'rest_api_init', 'create_initial_rest_routes', 99 );
 add_action( 'parse_request', 'rest_api_loaded' );
 
 /**
@@ -382,6 +393,7 @@ add_action( 'parse_request', 'rest_api_loaded' );
 add_action( 'wp_loaded', '_custom_header_background_just_in_time' );
 add_action( 'wp_head', '_custom_logo_header_styles' );
 add_action( 'plugins_loaded', '_wp_customize_include' );
+add_action( 'transition_post_status', '_wp_customize_publish_changeset', 10, 3 );
 add_action( 'admin_enqueue_scripts', '_wp_customize_loader_settings' );
 add_action( 'delete_attachment', '_delete_attachment_theme_mod' );
 
@@ -399,6 +411,7 @@ add_action( 'init', 'create_initial_post_types', 0 ); // highest priority
 add_action( 'admin_menu', '_add_post_type_submenus' );
 add_action( 'before_delete_post', '_reset_front_page_settings_for_post' );
 add_action( 'wp_trash_post',      '_reset_front_page_settings_for_post' );
+add_action( 'change_locale', 'create_initial_post_types' );
 
 // Post Formats
 add_filter( 'request', '_post_format_request' );
@@ -424,6 +437,7 @@ add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 );
 
 // Taxonomy
 add_action( 'init', 'create_initial_taxonomies', 0 ); // highest priority
+add_action( 'change_locale', 'create_initial_taxonomies' );
 
 // Canonical
 add_action( 'template_redirect', 'redirect_canonical' );
diff --git a/wp-includes/deprecated.php b/wp-includes/deprecated.php
index 0d30113b2..f35ea0ce9 100644
--- a/wp-includes/deprecated.php
+++ b/wp-includes/deprecated.php
@@ -2015,7 +2015,7 @@ function sanitize_url( $url, $protocols = null ) {
  *
  * @since 1.2.0
  * @deprecated 3.0.0 Use esc_url()
- * @see Alias for esc_url()
+ * @see esc_url()
  *
  * @param string $url The URL to be cleaned.
  * @param array $protocols Optional. An array of acceptable protocols.
@@ -2357,7 +2357,6 @@ function update_usermeta( $user_id, $meta_key, $meta_value ) {
  * @see get_users()
  *
  * @global wpdb $wpdb    WordPress database abstraction object.
- * @global int  $blog_id The site ID of the site for those that use more than one site.
  *
  * @param int $id Site ID.
  * @return array List of users that are part of that site ID
@@ -2365,9 +2364,10 @@ function update_usermeta( $user_id, $meta_key, $meta_value ) {
 function get_users_of_blog( $id = '' ) {
 	_deprecated_function( __FUNCTION__, '3.1.0', 'get_users()' );
 
-	global $wpdb, $blog_id;
-	if ( empty($id) )
-		$id = (int) $blog_id;
+	global $wpdb;
+	if ( empty( $id ) ) {
+		$id = get_current_blog_id();
+	}
 	$blog_prefix = $wpdb->get_blog_prefix($id);
 	$users = $wpdb->get_results( "SELECT user_id, user_id AS ID, user_login, display_name, user_email, meta_value FROM $wpdb->users, $wpdb->usermeta WHERE {$wpdb->users}.ID = {$wpdb->usermeta}.user_id AND meta_key = '{$blog_prefix}capabilities' ORDER BY {$wpdb->usermeta}.user_id" );
 	return $users;
@@ -3169,8 +3169,10 @@ function wp_load_image( $file ) {
 	if ( is_numeric( $file ) )
 		$file = get_attached_file( $file );
 
-	if ( ! is_file( $file ) )
-		return sprintf(__('File &#8220;%s&#8221; doesn&#8217;t exist?'), $file);
+	if ( ! is_file( $file ) ) {
+		/* translators: %s: file name */
+		return sprintf( __( 'File &#8220;%s&#8221; doesn&#8217;t exist?' ), $file );
+	}
 
 	if ( ! function_exists('imagecreatefromstring') )
 		return __('The GD image library is not installed.');
@@ -3180,8 +3182,10 @@ function wp_load_image( $file ) {
 
 	$image = imagecreatefromstring( file_get_contents( $file ) );
 
-	if ( !is_resource( $image ) )
-		return sprintf(__('File &#8220;%s&#8221; is not an image.'), $file);
+	if ( ! is_resource( $image ) ) {
+		/* translators: %s: file name */
+		return sprintf( __( 'File &#8220;%s&#8221; is not an image.' ), $file );
+	}
 
 	return $image;
 }
@@ -3754,3 +3758,123 @@ function wp_embed_handler_googlevideo( $matches, $attr, $url, $rawattr ) {
 
 	return '';
 }
+
+/**
+ * Retrieve path of paged template in current or parent template.
+ *
+ * @since 1.5.0
+ * @deprecated 4.7.0 The paged.php template is no longer part of the theme template hierarchy.
+ *
+ * @return string Full path to paged template file.
+ */
+function get_paged_template() {
+	_deprecated_function( __FUNCTION__, '4.7.0' );
+
+	return get_query_template( 'paged' );
+}
+
+/**
+ * Removes the HTML JavaScript entities found in early versions of Netscape 4.
+ *
+ * Previously, this function was pulled in from the original
+ * import of kses and removed a specific vulnerability only
+ * existent in early version of Netscape 4. However, this
+ * vulnerability never affected any other browsers and can
+ * be considered safe for the modern web.
+ *
+ * The regular expression which sanitized this vulnerability
+ * has been removed in consideration of the performance and
+ * energy demands it placed, now merely passing through its
+ * input to the return.
+ *
+ * @since 1.0.0
+ * @deprecated deprecated since 4.7
+ *
+ * @param string $string
+ * @return string
+ */
+function wp_kses_js_entities( $string ) {
+	_deprecated_function( __FUNCTION__, '4.7.0' );
+
+	return preg_replace( '%&\s*\{[^}]*(\}\s*;?|$)%', '', $string );
+}
+
+/**
+ * Sort categories by ID.
+ *
+ * Used by usort() as a callback, should not be used directly. Can actually be
+ * used to sort any term object.
+ *
+ * @since 2.3.0
+ * @deprecated 4.7.0 Use wp_list_sort()
+ * @access private
+ *
+ * @param object $a
+ * @param object $b
+ * @return int
+ */
+function _usort_terms_by_ID( $a, $b ) {
+	_deprecated_function( __FUNCTION__, '4.7.0', 'wp_list_sort' );
+
+	if ( $a->term_id > $b->term_id )
+		return 1;
+	elseif ( $a->term_id < $b->term_id )
+		return -1;
+	else
+		return 0;
+}
+
+/**
+ * Sort categories by name.
+ *
+ * Used by usort() as a callback, should not be used directly. Can actually be
+ * used to sort any term object.
+ *
+ * @since 2.3.0
+ * @deprecated 4.7.0 Use wp_list_sort()
+ * @access private
+ *
+ * @param object $a
+ * @param object $b
+ * @return int
+ */
+function _usort_terms_by_name( $a, $b ) {
+	_deprecated_function( __FUNCTION__, '4.7.0', 'wp_list_sort' );
+
+	return strcmp( $a->name, $b->name );
+}
+
+/**
+ * Sort menu items by the desired key.
+ *
+ * @since 3.0.0
+ * @deprecated 4.7.0 Use wp_list_sort()
+ * @access private
+ *
+ * @global string $_menu_item_sort_prop
+ *
+ * @param object $a The first object to compare
+ * @param object $b The second object to compare
+ * @return int -1, 0, or 1 if $a is considered to be respectively less than, equal to, or greater than $b.
+ */
+function _sort_nav_menu_items( $a, $b ) {
+	global $_menu_item_sort_prop;
+
+	_deprecated_function( __FUNCTION__, '4.7.0', 'wp_list_sort' );
+
+	if ( empty( $_menu_item_sort_prop ) )
+		return 0;
+
+	if ( ! isset( $a->$_menu_item_sort_prop ) || ! isset( $b->$_menu_item_sort_prop ) )
+		return 0;
+
+	$_a = (int) $a->$_menu_item_sort_prop;
+	$_b = (int) $b->$_menu_item_sort_prop;
+
+	if ( $a->$_menu_item_sort_prop == $b->$_menu_item_sort_prop )
+		return 0;
+	elseif ( $_a == $a->$_menu_item_sort_prop && $_b == $b->$_menu_item_sort_prop )
+		return $_a < $_b ? -1 : 1;
+	else
+		return strcmp( $a->$_menu_item_sort_prop, $b->$_menu_item_sort_prop );
+}
diff --git a/wp-includes/embed.php b/wp-includes/embed.php
index 1287c4e5f..ddd5dd988 100644
--- a/wp-includes/embed.php
+++ b/wp-includes/embed.php
@@ -94,11 +94,29 @@ function wp_embed_defaults( $url = '' ) {
  * @return false|string False on failure or the embed HTML on success.
  */
 function wp_oembed_get( $url, $args = '' ) {
-	require_once( ABSPATH . WPINC . '/class-oembed.php' );
 	$oembed = _wp_oembed_get_object();
 	return $oembed->get_html( $url, $args );
 }
 
+/**
+ * Returns the initialized WP_oEmbed object.
+ *
+ * @since 2.9.0
+ * @access private
+ *
+ * @staticvar WP_oEmbed $wp_oembed
+ *
+ * @return WP_oEmbed object.
+ */
+function _wp_oembed_get_object() {
+	static $wp_oembed = null;
+
+	if ( is_null( $wp_oembed ) ) {
+		$wp_oembed = new WP_oEmbed();
+	}
+	return $wp_oembed;
+}
+
 /**
  * Adds a URL format and oEmbed provider URL pair.
  *
@@ -112,8 +130,6 @@ function wp_oembed_get( $url, $args = '' ) {
  * @param boolean $regex    Optional. Whether the `$format` parameter is in a RegEx format. Default false.
  */
 function wp_oembed_add_provider( $format, $provider, $regex = false ) {
-	require_once( ABSPATH . WPINC . '/class-oembed.php' );
-
 	if ( did_action( 'plugins_loaded' ) ) {
 		$oembed = _wp_oembed_get_object();
 		$oembed->providers[$format] = array( $provider, $regex );
@@ -133,8 +149,6 @@ function wp_oembed_add_provider( $format, $provider, $regex = false ) {
  * @return bool Was the provider removed successfully?
  */
 function wp_oembed_remove_provider( $format ) {
-	require_once( ABSPATH . WPINC . '/class-oembed.php' );
-
 	if ( did_action( 'plugins_loaded' ) ) {
 		$oembed = _wp_oembed_get_object();
 
@@ -380,14 +394,10 @@ function get_post_embed_url( $post = null ) {
 function get_oembed_endpoint_url( $permalink = '', $format = 'json' ) {
 	$url = rest_url( 'oembed/1.0/embed' );
 
-	if ( 'json' === $format ) {
-		$format = false;
-	}
-
 	if ( '' !== $permalink ) {
 		$url = add_query_arg( array(
 			'url'    => urlencode( $permalink ),
-			'format' => $format,
+			'format' => ( 'json' !== $format ) ? $format : false,
 		), $url );
 	}
 
@@ -440,7 +450,7 @@ function get_post_embed_html( $width, $height, $post = null ) {
 		 * and edit wp-embed.js directly.
 		 */
 		$output .=<<<JS
-		!function(a,b){"use strict";function c(){if(!e){e=!0;var a,c,d,f,g=-1!==navigator.appVersion.indexOf("MSIE 10"),h=!!navigator.userAgent.match(/Trident.*rv:11\./),i=b.querySelectorAll("iframe.wp-embedded-content");for(c=0;c<i.length;c++)if(d=i[c],!d.getAttribute("data-secret")){if(f=Math.random().toString(36).substr(2,10),d.src+="#?secret="+f,d.setAttribute("data-secret",f),g||h)a=d.cloneNode(!0),a.removeAttribute("security"),d.parentNode.replaceChild(a,d)}else;}}var d=!1,e=!1;if(b.querySelector)if(a.addEventListener)d=!0;if(a.wp=a.wp||{},!a.wp.receiveEmbedMessage)if(a.wp.receiveEmbedMessage=function(c){var d=c.data;if(d.secret||d.message||d.value)if(!/[^a-zA-Z0-9]/.test(d.secret)){var e,f,g,h,i,j=b.querySelectorAll('iframe[data-secret="'+d.secret+'"]'),k=b.querySelectorAll('blockquote[data-secret="'+d.secret+'"]');for(e=0;e<k.length;e++)k[e].style.display="none";for(e=0;e<j.length;e++)if(f=j[e],c.source===f.contentWindow){if(f.removeAttribute("style"),"height"===d.message){if(g=parseInt(d.value,10),g>1e3)g=1e3;else if(~~g<200)g=200;f.height=g}if("link"===d.message)if(h=b.createElement("a"),i=b.createElement("a"),h.href=f.getAttribute("src"),i.href=d.value,i.host===h.host)if(b.activeElement===f)a.top.location.href=d.value}else;}},d)a.addEventListener("message",a.wp.receiveEmbedMessage,!1),b.addEventListener("DOMContentLoaded",c,!1),a.addEventListener("load",c,!1)}(window,document);
+		!function(a,b){"use strict";function c(){if(!e){e=!0;var a,c,d,f,g=-1!==navigator.appVersion.indexOf("MSIE 10"),h=!!navigator.userAgent.match(/Trident.*rv:11\./),i=b.querySelectorAll("iframe.wp-embedded-content");for(c=0;c<i.length;c++){if(d=i[c],!d.getAttribute("data-secret"))f=Math.random().toString(36).substr(2,10),d.src+="#?secret="+f,d.setAttribute("data-secret",f);if(g||h)a=d.cloneNode(!0),a.removeAttribute("security"),d.parentNode.replaceChild(a,d)}}}var d=!1,e=!1;if(b.querySelector)if(a.addEventListener)d=!0;if(a.wp=a.wp||{},!a.wp.receiveEmbedMessage)if(a.wp.receiveEmbedMessage=function(c){var d=c.data;if(d.secret||d.message||d.value)if(!/[^a-zA-Z0-9]/.test(d.secret)){var e,f,g,h,i,j=b.querySelectorAll('iframe[data-secret="'+d.secret+'"]'),k=b.querySelectorAll('blockquote[data-secret="'+d.secret+'"]');for(e=0;e<k.length;e++)k[e].style.display="none";for(e=0;e<j.length;e++)if(f=j[e],c.source===f.contentWindow){if(f.removeAttribute("style"),"height"===d.message){if(g=parseInt(d.value,10),g>1e3)g=1e3;else if(~~g<200)g=200;f.height=g}if("link"===d.message)if(h=b.createElement("a"),i=b.createElement("a"),h.href=f.getAttribute("src"),i.href=d.value,i.host===h.host)if(b.activeElement===f)a.top.location.href=d.value}else;}},d)a.addEventListener("message",a.wp.receiveEmbedMessage,!1),b.addEventListener("DOMContentLoaded",c,!1),a.addEventListener("load",c,!1)}(window,document);
 JS;
 	}
 	$output .= "\n//--><!]]>";
@@ -710,7 +720,6 @@ function wp_filter_oembed_result( $result, $data, $url ) {
 		return $result;
 	}
 
-	require_once( ABSPATH . WPINC . '/class-oembed.php' );
 	$wp_oembed = _wp_oembed_get_object();
 
 	// Don't modify the HTML for trusted providers.
diff --git a/wp-includes/feed-atom-comments.php b/wp-includes/feed-atom-comments.php
index e5c708916..9e62f20ad 100644
--- a/wp-includes/feed-atom-comments.php
+++ b/wp-includes/feed-atom-comments.php
@@ -28,16 +28,23 @@ do_action( 'rss_tag_pre', 'atom-comments' );
 	?>
 >
 	<title type="text"><?php
-		if ( is_singular() )
+		if ( is_singular() ) {
+			/* translators: Comments feed title. 1: Post title */
 			printf( ent2ncr( __( 'Comments on %s' ) ), get_the_title_rss() );
-		elseif ( is_search() )
+		} elseif ( is_search() ) {
+			/* translators: Comments feed title. 1: Site name, 2: Search query */
 			printf( ent2ncr( __( 'Comments for %1$s searching on %2$s' ) ), get_bloginfo_rss( 'name' ), get_search_query() );
-		else
+		} else {
+			/* translators: Comments feed title. 1: Site name */
 			printf( ent2ncr( __( 'Comments for %s' ) ), get_wp_title_rss() );
+		}
 	?></title>
 	<subtitle type="text"><?php bloginfo_rss('description'); ?></subtitle>
 
-	<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastcommentmodified('GMT'), false); ?></updated>
+	<updated><?php
+		$date = get_lastcommentmodified( 'GMT' );
+		echo $date ? mysql2date( 'Y-m-d\TH:i:s\Z', $date ) : date( 'Y-m-d\TH:i:s\Z' );
+	?></updated>
 
 <?php if ( is_singular() ) { ?>
 	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php comments_link_feed(); ?>" />
@@ -70,8 +77,10 @@ if ( have_comments() ) : while ( have_comments() ) : the_comment();
 				$title = get_the_title($comment_post->ID);
 				/** This filter is documented in wp-includes/feed.php */
 				$title = apply_filters( 'the_title_rss', $title );
+				/* translators: Individual comment title. 1: Post title, 2: Comment author name */
 				printf(ent2ncr(__('Comment on %1$s by %2$s')), $title, get_comment_author_rss());
 			} else {
+				/* translators: Comment author title. 1: Comment author name */
 				printf(ent2ncr(__('By: %s')), get_comment_author_rss());
 			}
 		?></title>
diff --git a/wp-includes/feed-atom.php b/wp-includes/feed-atom.php
index a4a62f74b..09cb7c016 100644
--- a/wp-includes/feed-atom.php
+++ b/wp-includes/feed-atom.php
@@ -30,7 +30,10 @@ do_action( 'rss_tag_pre', 'atom' );
 	<title type="text"><?php wp_title_rss(); ?></title>
 	<subtitle type="text"><?php bloginfo_rss("description") ?></subtitle>
 
-	<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT'), false); ?></updated>
+	<updated><?php
+		$date = get_lastpostmodified( 'GMT' );
+		echo $date ? mysql2date( 'Y-m-d\TH:i:s\Z', $date ) : date( 'Y-m-d\TH:i:s\Z' );
+	?></updated>
 
 	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php bloginfo_rss('url') ?>" />
 	<id><?php bloginfo('atom_url'); ?></id>
diff --git a/wp-includes/feed-rdf.php b/wp-includes/feed-rdf.php
index 830288150..b74840003 100644
--- a/wp-includes/feed-rdf.php
+++ b/wp-includes/feed-rdf.php
@@ -33,7 +33,10 @@ do_action( 'rss_tag_pre', 'rdf' );
 	<title><?php wp_title_rss(); ?></title>
 	<link><?php bloginfo_rss('url') ?></link>
 	<description><?php bloginfo_rss('description') ?></description>
-	<dc:date><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT'), false); ?></dc:date>
+	<dc:date><?php
+		$date = get_lastpostmodified( 'GMT' );
+		echo $date ? mysql2date( 'Y-m-d\TH:i:s\Z', $date ) : date( 'Y-m-d\TH:i:s\Z' );
+	?></dc:date>
 	<sy:updatePeriod><?php
 		/** This filter is documented in wp-includes/feed-rss2.php */
 		echo apply_filters( 'rss_update_period', 'hourly' );
diff --git a/wp-includes/feed-rss.php b/wp-includes/feed-rss.php
index df231968b..39202b83b 100644
--- a/wp-includes/feed-rss.php
+++ b/wp-includes/feed-rss.php
@@ -14,7 +14,10 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>
 	<title><?php wp_title_rss(); ?></title>
 	<link><?php bloginfo_rss('url') ?></link>
 	<description><?php bloginfo_rss('description') ?></description>
-	<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
+	<lastBuildDate><?php
+		$date = get_lastpostmodified( 'GMT' );
+		echo $date ? mysql2date( 'D, d M Y H:i:s +0000', $date ) : date( 'D, d M Y H:i:s +0000' );
+	?></lastBuildDate>
 	<docs>http://backend.userland.com/rss092</docs>
 	<language><?php bloginfo_rss( 'language' ); ?></language>
 
diff --git a/wp-includes/feed-rss2-comments.php b/wp-includes/feed-rss2-comments.php
index f05bb8f71..d6ed5ae2b 100644
--- a/wp-includes/feed-rss2-comments.php
+++ b/wp-includes/feed-rss2-comments.php
@@ -33,17 +33,24 @@ do_action( 'rss_tag_pre', 'rss2-comments' );
 >
 <channel>
 	<title><?php
-		if ( is_singular() )
+		if ( is_singular() ) {
+			/* translators: Comments feed title. 1: Post title */
 			printf( ent2ncr( __( 'Comments on: %s' ) ), get_the_title_rss() );
-		elseif ( is_search() )
+		} elseif ( is_search() ) {
+			/* translators: Comments feed title. 1: Site name, 2: Search query */
 			printf( ent2ncr( __( 'Comments for %1$s searching on %2$s' ) ), get_bloginfo_rss( 'name' ), get_search_query() );
-		else
+		} else {
+			/* translators: Comments feed title. 1: Site name */
 			printf( ent2ncr( __( 'Comments for %s' ) ), get_wp_title_rss() );
+		}
 	?></title>
 	<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
 	<link><?php (is_single()) ? the_permalink_rss() : bloginfo_rss("url") ?></link>
 	<description><?php bloginfo_rss("description") ?></description>
-	<lastBuildDate><?php echo mysql2date('r', get_lastcommentmodified('GMT')); ?></lastBuildDate>
+	<lastBuildDate><?php
+		$date = get_lastcommentmodified( 'GMT' );
+		echo $date ? mysql2date( 'r', $date ) : date( 'r' );
+	?></lastBuildDate>
 	<sy:updatePeriod><?php
 		/** This filter is documented in wp-includes/feed-rss2.php */
 		echo apply_filters( 'rss_update_period', 'hourly' );
@@ -69,8 +76,10 @@ do_action( 'rss_tag_pre', 'rss2-comments' );
 				$title = get_the_title($comment_post->ID);
 				/** This filter is documented in wp-includes/feed.php */
 				$title = apply_filters( 'the_title_rss', $title );
+				/* translators: Individual comment title. 1: Post title, 2: Comment author name */
 				printf(ent2ncr(__('Comment on %1$s by %2$s')), $title, get_comment_author_rss());
 			} else {
+				/* translators: Comment author title. 1: Comment author name */
 				printf(ent2ncr(__('By: %s')), get_comment_author_rss());
 			}
 		?></title>
diff --git a/wp-includes/feed-rss2.php b/wp-includes/feed-rss2.php
index b5f3d781b..a7b9ac7ec 100644
--- a/wp-includes/feed-rss2.php
+++ b/wp-includes/feed-rss2.php
@@ -42,7 +42,10 @@ do_action( 'rss_tag_pre', 'rss2' );
 	<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
 	<link><?php bloginfo_rss('url') ?></link>
 	<description><?php bloginfo_rss("description") ?></description>
-	<lastBuildDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_lastpostmodified('GMT'), false); ?></lastBuildDate>
+	<lastBuildDate><?php
+		$date = get_lastpostmodified( 'GMT' );
+		echo $date ? mysql2date( 'D, d M Y H:i:s +0000', $date ) : date( 'D, d M Y H:i:s +0000' );
+	?></lastBuildDate>
 	<language><?php bloginfo_rss( 'language' ); ?></language>
 	<sy:updatePeriod><?php
 		$duration = 'hourly';
diff --git a/wp-includes/feed.php b/wp-includes/feed.php
index f673e91d8..e6686c040 100644
--- a/wp-includes/feed.php
+++ b/wp-includes/feed.php
@@ -538,6 +538,12 @@ function prep_atom_text_construct($data) {
 		return array('text', $data);
 	}
 
+	if ( ! function_exists( 'xml_parser_create' ) ) {
+		trigger_error( __( "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." ) );
+
+		return array( 'html', "<![CDATA[$data]]>" );
+	}
+
 	$parser = xml_parser_create();
 	xml_parse($parser, '<div>' . $data . '</div>', true);
 	$code = xml_get_error_code($parser);
@@ -663,7 +669,14 @@ function feed_content_type( $type = '' ) {
  * @return WP_Error|SimplePie WP_Error object on failure or SimplePie object on success
  */
 function fetch_feed( $url ) {
-	require_once( ABSPATH . WPINC . '/class-feed.php' );
+	if ( ! class_exists( 'SimplePie', false ) ) {
+		require_once( ABSPATH . WPINC . '/class-simplepie.php' );
+	}
+
+	require_once( ABSPATH . WPINC . '/class-wp-feed-cache.php' );
+	require_once( ABSPATH . WPINC . '/class-wp-feed-cache-transient.php' );
+	require_once( ABSPATH . WPINC . '/class-wp-simplepie-file.php' );
+	require_once( ABSPATH . WPINC . '/class-wp-simplepie-sanitize-kses.php' );
 
 	$feed = new SimplePie();
 
@@ -676,7 +689,7 @@ function fetch_feed( $url ) {
 	$feed->set_file_class( 'WP_SimplePie_File' );
 
 	$feed->set_feed_url( $url );
-	/** This filter is documented in wp-includes/class-feed.php */
+	/** This filter is documented in wp-includes/class-wp-feed-cache-transient.php */
 	$feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $url ) );
 	/**
 	 * Fires just before processing the SimplePie feed object.
diff --git a/wp-includes/formatting.php b/wp-includes/formatting.php
index 2701c1a1a..85d4e7e43 100644
--- a/wp-includes/formatting.php
+++ b/wp-includes/formatting.php
@@ -468,8 +468,8 @@ function wpautop( $pee, $br = true ) {
 
 	$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
 
-	// Add a single line break above block-level opening tags.
-	$pee = preg_replace('!(<' . $allblocks . '[\s/>])!', "\n$1", $pee);
+	// Add a double line break above block-level opening tags.
+	$pee = preg_replace('!(<' . $allblocks . '[\s/>])!', "\n\n$1", $pee);
 
 	// Add a double line break below block-level closing tags.
 	$pee = preg_replace('!(</' . $allblocks . '>)!', "$1\n\n", $pee);
@@ -1279,9 +1279,9 @@ function utf8_uri_encode( $utf8_string, $length = 0 ) {
  * | U+0146  | ņ     | n           | Latin small letter n with cedilla                 |
  * | U+0147  | Ň     | N           | Latin capital letter N with caron                 |
  * | U+0148  | ň     | n           | Latin small letter n with caron                   |
- * | U+0149  | ʼn     | N           | Latin small letter n preceded by apostrophe       |
- * | U+014A  | Ŋ     | n           | Latin capital letter Eng                          |
- * | U+014B  | ŋ     | N           | Latin small letter Eng                            |
+ * | U+0149  | ʼn     | n           | Latin small letter n preceded by apostrophe       |
+ * | U+014A  | Ŋ     | N           | Latin capital letter Eng                          |
+ * | U+014B  | ŋ     | n           | Latin small letter Eng                            |
  * | U+014C  | Ō     | O           | Latin capital letter O with macron                |
  * | U+014D  | ō     | o           | Latin small letter o with macron                  |
  * | U+014E  | Ŏ     | O           | Latin capital letter O with breve                 |
@@ -1490,8 +1490,16 @@ function utf8_uri_encode( $utf8_string, $length = 0 ) {
  * | -------- | ----- | ----------- | --------------------------------------- |
  * | U+00B7   | l·l   | ll          | Flown dot (between two Ls)              |
  *
+ * Serbian (`sr_RS`) locale:
+ *
+ * |   Code   | Glyph | Replacement |               Description               |
+ * | -------- | ----- | ----------- | --------------------------------------- |
+ * | U+0110   | Đ     | DJ          | Latin capital letter D with stroke      |
+ * | U+0111   | đ     | dj          | Latin small letter d with stroke        |
+ *
  * @since 1.2.1
  * @since 4.6.0 Added locale support for `de_CH`, `de_CH_informal`, and `ca`.
+ * @since 4.7.0 Added locale support for `sr_RS`.
  *
  * @param string $string Text that might have accent characters
  * @return string Filtered string with replaced "nice" characters.
@@ -1503,222 +1511,225 @@ function remove_accents( $string ) {
 	if (seems_utf8($string)) {
 		$chars = array(
 		// Decompositions for Latin-1 Supplement
-		chr(194).chr(170) => 'a', chr(194).chr(186) => 'o',
-		chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
-		chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
-		chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
-		chr(195).chr(134) => 'AE',chr(195).chr(135) => 'C',
-		chr(195).chr(136) => 'E', chr(195).chr(137) => 'E',
-		chr(195).chr(138) => 'E', chr(195).chr(139) => 'E',
-		chr(195).chr(140) => 'I', chr(195).chr(141) => 'I',
-		chr(195).chr(142) => 'I', chr(195).chr(143) => 'I',
-		chr(195).chr(144) => 'D', chr(195).chr(145) => 'N',
-		chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
-		chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
-		chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
-		chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
-		chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
-		chr(195).chr(158) => 'TH',chr(195).chr(159) => 's',
-		chr(195).chr(160) => 'a', chr(195).chr(161) => 'a',
-		chr(195).chr(162) => 'a', chr(195).chr(163) => 'a',
-		chr(195).chr(164) => 'a', chr(195).chr(165) => 'a',
-		chr(195).chr(166) => 'ae',chr(195).chr(167) => 'c',
-		chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
-		chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
-		chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
-		chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
-		chr(195).chr(176) => 'd', chr(195).chr(177) => 'n',
-		chr(195).chr(178) => 'o', chr(195).chr(179) => 'o',
-		chr(195).chr(180) => 'o', chr(195).chr(181) => 'o',
-		chr(195).chr(182) => 'o', chr(195).chr(184) => 'o',
-		chr(195).chr(185) => 'u', chr(195).chr(186) => 'u',
-		chr(195).chr(187) => 'u', chr(195).chr(188) => 'u',
-		chr(195).chr(189) => 'y', chr(195).chr(190) => 'th',
-		chr(195).chr(191) => 'y', chr(195).chr(152) => 'O',
+		'ª' => 'a', 'º' => 'o',
+		'À' => 'A', 'Á' => 'A',
+		'Â' => 'A', 'Ã' => 'A',
+		'Ä' => 'A', 'Å' => 'A',
+		'Æ' => 'AE','Ç' => 'C',
+		'È' => 'E', 'É' => 'E',
+		'Ê' => 'E', 'Ë' => 'E',
+		'Ì' => 'I', 'Í' => 'I',
+		'Î' => 'I', 'Ï' => 'I',
+		'Ð' => 'D', 'Ñ' => 'N',
+		'Ò' => 'O', 'Ó' => 'O',
+		'Ô' => 'O', 'Õ' => 'O',
+		'Ö' => 'O', 'Ù' => 'U',
+		'Ú' => 'U', 'Û' => 'U',
+		'Ü' => 'U', 'Ý' => 'Y',
+		'Þ' => 'TH','ß' => 's',
+		'à' => 'a', 'á' => 'a',
+		'â' => 'a', 'ã' => 'a',
+		'ä' => 'a', 'å' => 'a',
+		'æ' => 'ae','ç' => 'c',
+		'è' => 'e', 'é' => 'e',
+		'ê' => 'e', 'ë' => 'e',
+		'ì' => 'i', 'í' => 'i',
+		'î' => 'i', 'ï' => 'i',
+		'ð' => 'd', 'ñ' => 'n',
+		'ò' => 'o', 'ó' => 'o',
+		'ô' => 'o', 'õ' => 'o',
+		'ö' => 'o', 'ø' => 'o',
+		'ù' => 'u', 'ú' => 'u',
+		'û' => 'u', 'ü' => 'u',
+		'ý' => 'y', 'þ' => 'th',
+		'ÿ' => 'y', 'Ø' => 'O',
 		// Decompositions for Latin Extended-A
-		chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
-		chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
-		chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
-		chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
-		chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
-		chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
-		chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
-		chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
-		chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
-		chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
-		chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
-		chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
-		chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
-		chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
-		chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
-		chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
-		chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
-		chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
-		chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
-		chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
-		chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
-		chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
-		chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
-		chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
-		chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
-		chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
-		chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
-		chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
-		chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
-		chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
-		chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
-		chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
-		chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
-		chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
-		chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
-		chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
-		chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
-		chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
-		chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
-		chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
-		chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
-		chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
-		chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
-		chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
-		chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
-		chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
-		chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
-		chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
-		chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
-		chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
-		chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
-		chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
-		chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
-		chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
-		chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
-		chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
-		chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
-		chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
-		chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
-		chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
-		chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
-		chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
-		chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
-		chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
+		'Ā' => 'A', 'ā' => 'a',
+		'Ă' => 'A', 'ă' => 'a',
+		'Ą' => 'A', 'ą' => 'a',
+		'Ć' => 'C', 'ć' => 'c',
+		'Ĉ' => 'C', 'ĉ' => 'c',
+		'Ċ' => 'C', 'ċ' => 'c',
+		'Č' => 'C', 'č' => 'c',
+		'Ď' => 'D', 'ď' => 'd',
+		'Đ' => 'D', 'đ' => 'd',
+		'Ē' => 'E', 'ē' => 'e',
+		'Ĕ' => 'E', 'ĕ' => 'e',
+		'Ė' => 'E', 'ė' => 'e',
+		'Ę' => 'E', 'ę' => 'e',
+		'Ě' => 'E', 'ě' => 'e',
+		'Ĝ' => 'G', 'ĝ' => 'g',
+		'Ğ' => 'G', 'ğ' => 'g',
+		'Ġ' => 'G', 'ġ' => 'g',
+		'Ģ' => 'G', 'ģ' => 'g',
+		'Ĥ' => 'H', 'ĥ' => 'h',
+		'Ħ' => 'H', 'ħ' => 'h',
+		'Ĩ' => 'I', 'ĩ' => 'i',
+		'Ī' => 'I', 'ī' => 'i',
+		'Ĭ' => 'I', 'ĭ' => 'i',
+		'Į' => 'I', 'į' => 'i',
+		'İ' => 'I', 'ı' => 'i',
+		'IJ' => 'IJ','ij' => 'ij',
+		'Ĵ' => 'J', 'ĵ' => 'j',
+		'Ķ' => 'K', 'ķ' => 'k',
+		'ĸ' => 'k', 'Ĺ' => 'L',
+		'ĺ' => 'l', 'Ļ' => 'L',
+		'ļ' => 'l', 'Ľ' => 'L',
+		'ľ' => 'l', 'Ŀ' => 'L',
+		'ŀ' => 'l', 'Ł' => 'L',
+		'ł' => 'l', 'Ń' => 'N',
+		'ń' => 'n', 'Ņ' => 'N',
+		'ņ' => 'n', 'Ň' => 'N',
+		'ň' => 'n', 'ʼn' => 'n',
+		'Ŋ' => 'N', 'ŋ' => 'n',
+		'Ō' => 'O', 'ō' => 'o',
+		'Ŏ' => 'O', 'ŏ' => 'o',
+		'Ő' => 'O', 'ő' => 'o',
+		'Œ' => 'OE','œ' => 'oe',
+		'Ŕ' => 'R','ŕ' => 'r',
+		'Ŗ' => 'R','ŗ' => 'r',
+		'Ř' => 'R','ř' => 'r',
+		'Ś' => 'S','ś' => 's',
+		'Ŝ' => 'S','ŝ' => 's',
+		'Ş' => 'S','ş' => 's',
+		'Š' => 'S', 'š' => 's',
+		'Ţ' => 'T', 'ţ' => 't',
+		'Ť' => 'T', 'ť' => 't',
+		'Ŧ' => 'T', 'ŧ' => 't',
+		'Ũ' => 'U', 'ũ' => 'u',
+		'Ū' => 'U', 'ū' => 'u',
+		'Ŭ' => 'U', 'ŭ' => 'u',
+		'Ů' => 'U', 'ů' => 'u',
+		'Ű' => 'U', 'ű' => 'u',
+		'Ų' => 'U', 'ų' => 'u',
+		'Ŵ' => 'W', 'ŵ' => 'w',
+		'Ŷ' => 'Y', 'ŷ' => 'y',
+		'Ÿ' => 'Y', 'Ź' => 'Z',
+		'ź' => 'z', 'Ż' => 'Z',
+		'ż' => 'z', 'Ž' => 'Z',
+		'ž' => 'z', 'ſ' => 's',
 		// Decompositions for Latin Extended-B
-		chr(200).chr(152) => 'S', chr(200).chr(153) => 's',
-		chr(200).chr(154) => 'T', chr(200).chr(155) => 't',
+		'Ș' => 'S', 'ș' => 's',
+		'Ț' => 'T', 'ț' => 't',
 		// Euro Sign
-		chr(226).chr(130).chr(172) => 'E',
+		'€' => 'E',
 		// GBP (Pound) Sign
-		chr(194).chr(163) => '',
+		'£' => '',
 		// Vowels with diacritic (Vietnamese)
 		// unmarked
-		chr(198).chr(160) => 'O', chr(198).chr(161) => 'o',
-		chr(198).chr(175) => 'U', chr(198).chr(176) => 'u',
+		'Ơ' => 'O', 'ơ' => 'o',
+		'Ư' => 'U', 'ư' => 'u',
 		// grave accent
-		chr(225).chr(186).chr(166) => 'A', chr(225).chr(186).chr(167) => 'a',
-		chr(225).chr(186).chr(176) => 'A', chr(225).chr(186).chr(177) => 'a',
-		chr(225).chr(187).chr(128) => 'E', chr(225).chr(187).chr(129) => 'e',
-		chr(225).chr(187).chr(146) => 'O', chr(225).chr(187).chr(147) => 'o',
-		chr(225).chr(187).chr(156) => 'O', chr(225).chr(187).chr(157) => 'o',
-		chr(225).chr(187).chr(170) => 'U', chr(225).chr(187).chr(171) => 'u',
-		chr(225).chr(187).chr(178) => 'Y', chr(225).chr(187).chr(179) => 'y',
+		'Ầ' => 'A', 'ầ' => 'a',
+		'Ằ' => 'A', 'ằ' => 'a',
+		'Ề' => 'E', 'ề' => 'e',
+		'Ồ' => 'O', 'ồ' => 'o',
+		'Ờ' => 'O', 'ờ' => 'o',
+		'Ừ' => 'U', 'ừ' => 'u',
+		'Ỳ' => 'Y', 'ỳ' => 'y',
 		// hook
-		chr(225).chr(186).chr(162) => 'A', chr(225).chr(186).chr(163) => 'a',
-		chr(225).chr(186).chr(168) => 'A', chr(225).chr(186).chr(169) => 'a',
-		chr(225).chr(186).chr(178) => 'A', chr(225).chr(186).chr(179) => 'a',
-		chr(225).chr(186).chr(186) => 'E', chr(225).chr(186).chr(187) => 'e',
-		chr(225).chr(187).chr(130) => 'E', chr(225).chr(187).chr(131) => 'e',
-		chr(225).chr(187).chr(136) => 'I', chr(225).chr(187).chr(137) => 'i',
-		chr(225).chr(187).chr(142) => 'O', chr(225).chr(187).chr(143) => 'o',
-		chr(225).chr(187).chr(148) => 'O', chr(225).chr(187).chr(149) => 'o',
-		chr(225).chr(187).chr(158) => 'O', chr(225).chr(187).chr(159) => 'o',
-		chr(225).chr(187).chr(166) => 'U', chr(225).chr(187).chr(167) => 'u',
-		chr(225).chr(187).chr(172) => 'U', chr(225).chr(187).chr(173) => 'u',
-		chr(225).chr(187).chr(182) => 'Y', chr(225).chr(187).chr(183) => 'y',
+		'Ả' => 'A', 'ả' => 'a',
+		'Ẩ' => 'A', 'ẩ' => 'a',
+		'Ẳ' => 'A', 'ẳ' => 'a',
+		'Ẻ' => 'E', 'ẻ' => 'e',
+		'Ể' => 'E', 'ể' => 'e',
+		'Ỉ' => 'I', 'ỉ' => 'i',
+		'Ỏ' => 'O', 'ỏ' => 'o',
+		'Ổ' => 'O', 'ổ' => 'o',
+		'Ở' => 'O', 'ở' => 'o',
+		'Ủ' => 'U', 'ủ' => 'u',
+		'Ử' => 'U', 'ử' => 'u',
+		'Ỷ' => 'Y', 'ỷ' => 'y',
 		// tilde
-		chr(225).chr(186).chr(170) => 'A', chr(225).chr(186).chr(171) => 'a',
-		chr(225).chr(186).chr(180) => 'A', chr(225).chr(186).chr(181) => 'a',
-		chr(225).chr(186).chr(188) => 'E', chr(225).chr(186).chr(189) => 'e',
-		chr(225).chr(187).chr(132) => 'E', chr(225).chr(187).chr(133) => 'e',
-		chr(225).chr(187).chr(150) => 'O', chr(225).chr(187).chr(151) => 'o',
-		chr(225).chr(187).chr(160) => 'O', chr(225).chr(187).chr(161) => 'o',
-		chr(225).chr(187).chr(174) => 'U', chr(225).chr(187).chr(175) => 'u',
-		chr(225).chr(187).chr(184) => 'Y', chr(225).chr(187).chr(185) => 'y',
+		'Ẫ' => 'A', 'ẫ' => 'a',
+		'Ẵ' => 'A', 'ẵ' => 'a',
+		'Ẽ' => 'E', 'ẽ' => 'e',
+		'Ễ' => 'E', 'ễ' => 'e',
+		'Ỗ' => 'O', 'ỗ' => 'o',
+		'Ỡ' => 'O', 'ỡ' => 'o',
+		'Ữ' => 'U', 'ữ' => 'u',
+		'Ỹ' => 'Y', 'ỹ' => 'y',
 		// acute accent
-		chr(225).chr(186).chr(164) => 'A', chr(225).chr(186).chr(165) => 'a',
-		chr(225).chr(186).chr(174) => 'A', chr(225).chr(186).chr(175) => 'a',
-		chr(225).chr(186).chr(190) => 'E', chr(225).chr(186).chr(191) => 'e',
-		chr(225).chr(187).chr(144) => 'O', chr(225).chr(187).chr(145) => 'o',
-		chr(225).chr(187).chr(154) => 'O', chr(225).chr(187).chr(155) => 'o',
-		chr(225).chr(187).chr(168) => 'U', chr(225).chr(187).chr(169) => 'u',
+		'Ấ' => 'A', 'ấ' => 'a',
+		'Ắ' => 'A', 'ắ' => 'a',
+		'Ế' => 'E', 'ế' => 'e',
+		'Ố' => 'O', 'ố' => 'o',
+		'Ớ' => 'O', 'ớ' => 'o',
+		'Ứ' => 'U', 'ứ' => 'u',
 		// dot below
-		chr(225).chr(186).chr(160) => 'A', chr(225).chr(186).chr(161) => 'a',
-		chr(225).chr(186).chr(172) => 'A', chr(225).chr(186).chr(173) => 'a',
-		chr(225).chr(186).chr(182) => 'A', chr(225).chr(186).chr(183) => 'a',
-		chr(225).chr(186).chr(184) => 'E', chr(225).chr(186).chr(185) => 'e',
-		chr(225).chr(187).chr(134) => 'E', chr(225).chr(187).chr(135) => 'e',
-		chr(225).chr(187).chr(138) => 'I', chr(225).chr(187).chr(139) => 'i',
-		chr(225).chr(187).chr(140) => 'O', chr(225).chr(187).chr(141) => 'o',
-		chr(225).chr(187).chr(152) => 'O', chr(225).chr(187).chr(153) => 'o',
-		chr(225).chr(187).chr(162) => 'O', chr(225).chr(187).chr(163) => 'o',
-		chr(225).chr(187).chr(164) => 'U', chr(225).chr(187).chr(165) => 'u',
-		chr(225).chr(187).chr(176) => 'U', chr(225).chr(187).chr(177) => 'u',
-		chr(225).chr(187).chr(180) => 'Y', chr(225).chr(187).chr(181) => 'y',
+		'Ạ' => 'A', 'ạ' => 'a',
+		'Ậ' => 'A', 'ậ' => 'a',
+		'Ặ' => 'A', 'ặ' => 'a',
+		'Ẹ' => 'E', 'ẹ' => 'e',
+		'Ệ' => 'E', 'ệ' => 'e',
+		'Ị' => 'I', 'ị' => 'i',
+		'Ọ' => 'O', 'ọ' => 'o',
+		'Ộ' => 'O', 'ộ' => 'o',
+		'Ợ' => 'O', 'ợ' => 'o',
+		'Ụ' => 'U', 'ụ' => 'u',
+		'Ự' => 'U', 'ự' => 'u',
+		'Ỵ' => 'Y', 'ỵ' => 'y',
 		// Vowels with diacritic (Chinese, Hanyu Pinyin)
-		chr(201).chr(145) => 'a',
+		'ɑ' => 'a',
 		// macron
-		chr(199).chr(149) => 'U', chr(199).chr(150) => 'u',
+		'Ǖ' => 'U', 'ǖ' => 'u',
 		// acute accent
-		chr(199).chr(151) => 'U', chr(199).chr(152) => 'u',
+		'Ǘ' => 'U', 'ǘ' => 'u',
 		// caron
-		chr(199).chr(141) => 'A', chr(199).chr(142) => 'a',
-		chr(199).chr(143) => 'I', chr(199).chr(144) => 'i',
-		chr(199).chr(145) => 'O', chr(199).chr(146) => 'o',
-		chr(199).chr(147) => 'U', chr(199).chr(148) => 'u',
-		chr(199).chr(153) => 'U', chr(199).chr(154) => 'u',
+		'Ǎ' => 'A', 'ǎ' => 'a',
+		'Ǐ' => 'I', 'ǐ' => 'i',
+		'Ǒ' => 'O', 'ǒ' => 'o',
+		'Ǔ' => 'U', 'ǔ' => 'u',
+		'Ǚ' => 'U', 'ǚ' => 'u',
 		// grave accent
-		chr(199).chr(155) => 'U', chr(199).chr(156) => 'u',
+		'Ǜ' => 'U', 'ǜ' => 'u',
 		);
 
 		// Used for locale-specific rules
 		$locale = get_locale();
 
 		if ( 'de_DE' == $locale || 'de_DE_formal' == $locale || 'de_CH' == $locale || 'de_CH_informal' == $locale ) {
-			$chars[ chr(195).chr(132) ] = 'Ae';
-			$chars[ chr(195).chr(164) ] = 'ae';
-			$chars[ chr(195).chr(150) ] = 'Oe';
-			$chars[ chr(195).chr(182) ] = 'oe';
-			$chars[ chr(195).chr(156) ] = 'Ue';
-			$chars[ chr(195).chr(188) ] = 'ue';
-			$chars[ chr(195).chr(159) ] = 'ss';
+			$chars[ 'Ä' ] = 'Ae';
+			$chars[ 'ä' ] = 'ae';
+			$chars[ 'Ö' ] = 'Oe';
+			$chars[ 'ö' ] = 'oe';
+			$chars[ 'Ü' ] = 'Ue';
+			$chars[ 'ü' ] = 'ue';
+			$chars[ 'ß' ] = 'ss';
 		} elseif ( 'da_DK' === $locale ) {
-			$chars[ chr(195).chr(134) ] = 'Ae';
- 			$chars[ chr(195).chr(166) ] = 'ae';
-			$chars[ chr(195).chr(152) ] = 'Oe';
-			$chars[ chr(195).chr(184) ] = 'oe';
-			$chars[ chr(195).chr(133) ] = 'Aa';
-			$chars[ chr(195).chr(165) ] = 'aa';
+			$chars[ 'Æ' ] = 'Ae';
+ 			$chars[ 'æ' ] = 'ae';
+			$chars[ 'Ø' ] = 'Oe';
+			$chars[ 'ø' ] = 'oe';
+			$chars[ 'Å' ] = 'Aa';
+			$chars[ 'å' ] = 'aa';
 		} elseif ( 'ca' === $locale ) {
-			$chars[ chr(108).chr(194).chr(183).chr(108) ] = 'll';
+			$chars[ 'l·l' ] = 'll';
+		} elseif ( 'sr_RS' === $locale ) {
+			$chars[ 'Đ' ] = 'DJ';
+			$chars[ 'đ' ] = 'dj';
 		}
 
 		$string = strtr($string, $chars);
 	} else {
 		$chars = array();
 		// Assume ISO-8859-1 if not UTF-8
-		$chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)
-			.chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)
-			.chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)
-			.chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)
-			.chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)
-			.chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)
-			.chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)
-			.chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)
-			.chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)
-			.chr(252).chr(253).chr(255);
+		$chars['in'] = "\x80\x83\x8a\x8e\x9a\x9e"
+			."\x9f\xa2\xa5\xb5\xc0\xc1\xc2"
+			."\xc3\xc4\xc5\xc7\xc8\xc9\xca"
+			."\xcb\xcc\xcd\xce\xcf\xd1\xd2"
+			."\xd3\xd4\xd5\xd6\xd8\xd9\xda"
+			."\xdb\xdc\xdd\xe0\xe1\xe2\xe3"
+			."\xe4\xe5\xe7\xe8\xe9\xea\xeb"
+			."\xec\xed\xee\xef\xf1\xf2\xf3"
+			."\xf4\xf5\xf6\xf8\xf9\xfa\xfb"
+			."\xfc\xfd\xff";
 
 		$chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
 
 		$string = strtr($string, $chars['in'], $chars['out']);
 		$double_chars = array();
-		$double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
+		$double_chars['in'] = array("\x8c", "\x9c", "\xc6", "\xd0", "\xde", "\xdf", "\xe6", "\xf0", "\xfe");
 		$double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
 		$string = str_replace($double_chars['in'], $double_chars['out'], $string);
 	}
@@ -3206,32 +3217,37 @@ function human_time_diff( $from, $to = '' ) {
 		$mins = round( $diff / MINUTE_IN_SECONDS );
 		if ( $mins <= 1 )
 			$mins = 1;
-		/* translators: min=minute */
+		/* translators: Time difference between two dates, in minutes (min=minute). 1: Number of minutes */
 		$since = sprintf( _n( '%s min', '%s mins', $mins ), $mins );
 	} elseif ( $diff < DAY_IN_SECONDS && $diff >= HOUR_IN_SECONDS ) {
 		$hours = round( $diff / HOUR_IN_SECONDS );
 		if ( $hours <= 1 )
 			$hours = 1;
+		/* translators: Time difference between two dates, in hours. 1: Number of hours */
 		$since = sprintf( _n( '%s hour', '%s hours', $hours ), $hours );
 	} elseif ( $diff < WEEK_IN_SECONDS && $diff >= DAY_IN_SECONDS ) {
 		$days = round( $diff / DAY_IN_SECONDS );
 		if ( $days <= 1 )
 			$days = 1;
+		/* translators: Time difference between two dates, in days. 1: Number of days */
 		$since = sprintf( _n( '%s day', '%s days', $days ), $days );
 	} elseif ( $diff < MONTH_IN_SECONDS && $diff >= WEEK_IN_SECONDS ) {
 		$weeks = round( $diff / WEEK_IN_SECONDS );
 		if ( $weeks <= 1 )
 			$weeks = 1;
+		/* translators: Time difference between two dates, in weeks. 1: Number of weeks */
 		$since = sprintf( _n( '%s week', '%s weeks', $weeks ), $weeks );
 	} elseif ( $diff < YEAR_IN_SECONDS && $diff >= MONTH_IN_SECONDS ) {
 		$months = round( $diff / MONTH_IN_SECONDS );
 		if ( $months <= 1 )
 			$months = 1;
+		/* translators: Time difference between two dates, in months. 1: Number of months */
 		$since = sprintf( _n( '%s month', '%s months', $months ), $months );
 	} elseif ( $diff >= YEAR_IN_SECONDS ) {
 		$years = round( $diff / YEAR_IN_SECONDS );
 		if ( $years <= 1 )
 			$years = 1;
+		/* translators: Time difference between two dates, in years. 1: Number of years */
 		$since = sprintf( _n( '%s year', '%s years', $years ), $years );
 	}
 
@@ -4642,6 +4658,7 @@ function wp_strip_all_tags($string, $remove_breaks = false) {
  *
  * @since 2.9.0
  *
+ * @see sanitize_textarea_field()
  * @see wp_check_invalid_utf8()
  * @see wp_strip_all_tags()
  *
@@ -4649,16 +4666,75 @@ function wp_strip_all_tags($string, $remove_breaks = false) {
  * @return string Sanitized string.
  */
 function sanitize_text_field( $str ) {
+	$filtered = _sanitize_text_fields( $str, false );
+
+	/**
+	 * Filters a sanitized text field string.
+	 *
+	 * @since 2.9.0
+	 *
+	 * @param string $filtered The sanitized string.
+	 * @param string $str      The string prior to being sanitized.
+	 */
+	return apply_filters( 'sanitize_text_field', $filtered, $str );
+}
+
+/**
+ * Sanitizes a multiline string from user input or from the database.
+ *
+ * The function is like sanitize_text_field(), but preserves
+ * new lines (\n) and other whitespace, which are legitimate
+ * input in textarea elements.
+ *
+ * @see sanitize_text_field()
+ *
+ * @since 4.7.0
+ *
+ * @param string $str String to sanitize.
+ * @return string Sanitized string.
+ */
+function sanitize_textarea_field( $str ) {
+	$filtered = _sanitize_text_fields( $str, true );
+
+	/**
+	 * Filters a sanitized textarea field string.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $filtered The sanitized string.
+	 * @param string $str      The string prior to being sanitized.
+	 */
+	return apply_filters( 'sanitize_textarea_field', $filtered, $str );
+}
+
+/**
+ * Internal helper function to sanitize a string from user input or from the db
+ *
+ * @since 4.7.0
+ * @access private
+ *
+ * @param string $str String to sanitize.
+ * @param bool $keep_newlines optional Whether to keep newlines. Default: false.
+ * @return string Sanitized string.
+ */
+function _sanitize_text_fields( $str, $keep_newlines = false ) {
 	$filtered = wp_check_invalid_utf8( $str );
 
 	if ( strpos($filtered, '<') !== false ) {
 		$filtered = wp_pre_kses_less_than( $filtered );
 		// This will strip extra whitespace for us.
-		$filtered = wp_strip_all_tags( $filtered, true );
-	} else {
-		$filtered = trim( preg_replace('/[\r\n\t ]+/', ' ', $filtered) );
+		$filtered = wp_strip_all_tags( $filtered, false );
+
+		// Use html entities in a special case to make sure no later
+		// newline stripping stage could lead to a functional tag
+		$filtered = str_replace("<\n", "&lt;\n", $filtered);
 	}
 
+	if ( ! $keep_newlines ) {
+		$filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered );
+	}
+	$filtered = trim( $filtered );
+
 	$found = false;
 	while ( preg_match('/%[a-f0-9]{2}/i', $filtered, $match) ) {
 		$filtered = str_replace($match[0], '', $filtered);
@@ -4670,15 +4746,7 @@ function sanitize_text_field( $str ) {
 		$filtered = trim( preg_replace('/ +/', ' ', $filtered) );
 	}
 
-	/**
-	 * Filters a sanitized text field string.
-	 *
-	 * @since 2.9.0
-	 *
-	 * @param string $filtered The sanitized string.
-	 * @param string $str      The string prior to being sanitized.
-	 */
-	return apply_filters( 'sanitize_text_field', $filtered, $str );
+	return $filtered;
 }
 
 /**
@@ -4927,12 +4995,8 @@ function print_emoji_detection_script() {
  * @ignore
  * @since 4.6.0
  * @access private
- *
- * @global string $wp_version WordPress version string.
  */
 function _print_emoji_detection_script() {
-	global $wp_version;
-
 	$settings = array(
 		/**
 		 * Filters the URL where emoji png images are hosted.
@@ -4941,7 +5005,7 @@ function _print_emoji_detection_script() {
 		 *
 		 * @param string The emoji base URL for png images.
 		 */
-		'baseUrl' => apply_filters( 'emoji_url', 'https://s.w.org/images/core/emoji/2/72x72/' ),
+		'baseUrl' => apply_filters( 'emoji_url', 'https://s.w.org/images/core/emoji/2.2.1/72x72/' ),
 
 		/**
 		 * Filters the extension of the emoji png files.
@@ -4959,7 +5023,7 @@ function _print_emoji_detection_script() {
 		 *
 		 * @param string The emoji base URL for svg images.
 		 */
-		'svgUrl' => apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' ),
+		'svgUrl' => apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2.2.1/svg/' ),
 
 		/**
 		 * Filters the extension of the emoji SVG files.
@@ -4971,7 +5035,7 @@ function _print_emoji_detection_script() {
 		'svgExt' => apply_filters( 'emoji_svg_ext', '.svg' ),
 	);
 
-	$version = 'ver=' . $wp_version;
+	$version = 'ver=' . get_bloginfo( 'version' );
 
 	if ( SCRIPT_DEBUG ) {
 		$settings['source'] = array(
@@ -5006,7 +5070,7 @@ function _print_emoji_detection_script() {
 		?>
 		<script type="text/javascript">
 			window._wpemojiSettings = <?php echo wp_json_encode( $settings ); ?>;
-			!function(a,b,c){function d(a){var c,d,e,f,g,h=b.createElement("canvas"),i=h.getContext&&h.getContext("2d"),j=String.fromCharCode;if(!i||!i.fillText)return!1;switch(i.textBaseline="top",i.font="600 32px Arial",a){case"flag":return i.fillText(j(55356,56806,55356,56826),0,0),!(h.toDataURL().length<3e3)&&(i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,65039,8205,55356,57096),0,0),c=h.toDataURL(),i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,55356,57096),0,0),d=h.toDataURL(),c!==d);case"diversity":return i.fillText(j(55356,57221),0,0),e=i.getImageData(16,16,1,1).data,f=e[0]+","+e[1]+","+e[2]+","+e[3],i.fillText(j(55356,57221,55356,57343),0,0),e=i.getImageData(16,16,1,1).data,g=e[0]+","+e[1]+","+e[2]+","+e[3],f!==g;case"simple":return i.fillText(j(55357,56835),0,0),0!==i.getImageData(16,16,1,1).data[0];case"unicode8":return i.fillText(j(55356,57135),0,0),0!==i.getImageData(16,16,1,1).data[0];case"unicode9":return i.fillText(j(55358,56631),0,0),0!==i.getImageData(16,16,1,1).data[0]}return!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i;for(i=Array("simple","flag","unicode8","diversity","unicode9"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
+			!function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),!(j.toDataURL().length<3e3)&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,65039,8205,55356,57096),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,55356,57096),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55357,56425,55356,57341,8205,55357,56507),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55357,56425,55356,57341,55357,56507),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
 		</script>
 		<?php
 	}
@@ -5071,7 +5135,7 @@ function wp_staticize_emoji( $text ) {
 	$text = wp_encode_emoji( $text );
 
 	/** This filter is documented in wp-includes/formatting.php */
-	$cdn_url = apply_filters( 'emoji_url', 'https://s.w.org/images/core/emoji/2/72x72/' );
+	$cdn_url = apply_filters( 'emoji_url', 'https://s.w.org/images/core/emoji/2.2.1/72x72/' );
 
 	/** This filter is documented in wp-includes/formatting.php */
 	$ext = apply_filters( 'emoji_ext', '.png' );
diff --git a/wp-includes/functions.php b/wp-includes/functions.php
index ff09f3459..8593e8c92 100644
--- a/wp-includes/functions.php
+++ b/wp-includes/functions.php
@@ -91,13 +91,7 @@ function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) {
 	$i = $unixtimestamp;
 
 	if ( false === $i ) {
-		if ( ! $gmt )
-			$i = current_time( 'timestamp' );
-		else
-			$i = time();
-		// we should not let date() interfere with our
-		// specially computed timestamp
-		$gmt = true;
+		$i = current_time( 'timestamp', $gmt );
 	}
 
 	/*
@@ -106,15 +100,13 @@ function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) {
 	 */
 	$req_format = $dateformatstring;
 
-	$datefunc = $gmt? 'gmdate' : 'date';
-
 	if ( ( !empty( $wp_locale->month ) ) && ( !empty( $wp_locale->weekday ) ) ) {
-		$datemonth = $wp_locale->get_month( $datefunc( 'm', $i ) );
+		$datemonth = $wp_locale->get_month( date( 'm', $i ) );
 		$datemonth_abbrev = $wp_locale->get_month_abbrev( $datemonth );
-		$dateweekday = $wp_locale->get_weekday( $datefunc( 'w', $i ) );
+		$dateweekday = $wp_locale->get_weekday( date( 'w', $i ) );
 		$dateweekday_abbrev = $wp_locale->get_weekday_abbrev( $dateweekday );
-		$datemeridiem = $wp_locale->get_meridiem( $datefunc( 'a', $i ) );
-		$datemeridiem_capital = $wp_locale->get_meridiem( $datefunc( 'A', $i ) );
+		$datemeridiem = $wp_locale->get_meridiem( date( 'a', $i ) );
+		$datemeridiem_capital = $wp_locale->get_meridiem( date( 'A', $i ) );
 		$dateformatstring = ' '.$dateformatstring;
 		$dateformatstring = preg_replace( "/([^\\\])D/", "\\1" . backslashit( $dateweekday_abbrev ), $dateformatstring );
 		$dateformatstring = preg_replace( "/([^\\\])F/", "\\1" . backslashit( $datemonth ), $dateformatstring );
@@ -142,7 +134,7 @@ function date_i18n( $dateformatstring, $unixtimestamp = false, $gmt = false ) {
 			}
 		}
 	}
-	$j = @$datefunc( $dateformatstring, $i );
+	$j = @date( $dateformatstring, $i );
 
 	/**
 	 * Filters the date formatted based on the locale.
@@ -1221,6 +1213,18 @@ function bool_from_yn( $yn ) {
 function do_feed() {
 	global $wp_query;
 
+	// Determine if we are looking at the main comment feed
+	$is_main_comments_feed = ( $wp_query->is_comment_feed() && ! $wp_query->is_singular() );
+
+	/*
+	 * Check the queried object for the existence of posts if it is not a feed for an archive,
+	 * search result, or main comments. By checking for the absense of posts we can prevent rendering the feed
+	 * templates at invalid endpoints. e.g.) /wp-content/plugins/feed/
+	 */
+	if ( ! $wp_query->have_posts() && ! ( $wp_query->is_archive() || $wp_query->is_search() || $is_main_comments_feed ) ) {
+		wp_die( __( 'ERROR: This is not a valid feed.' ), '', array( 'response' => 404 ) );
+	}
+
 	$feed = get_query_var( 'feed' );
 
 	// Remove the pad, if present.
@@ -1411,7 +1415,12 @@ function is_blog_installed() {
 		wp_load_translations_early();
 
 		// Die with a DB error.
-		$wpdb->error = sprintf( __( 'One or more database tables are unavailable. The database may need to be <a href="%s">repaired</a>.' ), 'maint/repair.php?referrer=is_blog_installed' );
+		$wpdb->error = sprintf(
+			/* translators: %s: database repair URL */
+			__( 'One or more database tables are unavailable. The database may need to be <a href="%s">repaired</a>.' ),
+			'maint/repair.php?referrer=is_blog_installed'
+		);
+
 		dead_db();
 	}
 
@@ -1895,7 +1904,11 @@ function wp_upload_dir( $time = null, $create_dir = true, $refresh_cache = false
 					$error_path = basename( $uploads['basedir'] ) . $uploads['subdir'];
 				}
 
-				$uploads['error'] = sprintf( __( 'Unable to create directory %s. Is its parent directory writable by the server?' ), esc_html( $error_path ) );
+				$uploads['error'] = sprintf(
+					/* translators: %s: directory path */
+					__( 'Unable to create directory %s. Is its parent directory writable by the server?' ),
+					esc_html( $error_path )
+				);
 			}
 
 			$tested_paths[ $path ] = $uploads['error'];
@@ -2034,13 +2047,16 @@ function wp_unique_filename( $dir, $filename, $unique_filename_callback = null )
 	$filename = sanitize_file_name($filename);
 
 	// Separate the filename into a name and extension.
-	$info = pathinfo($filename);
-	$ext = !empty($info['extension']) ? '.' . $info['extension'] : '';
-	$name = basename($filename, $ext);
+	$ext = pathinfo( $filename, PATHINFO_EXTENSION );
+	$name = pathinfo( $filename, PATHINFO_BASENAME );
+	if ( $ext ) {
+		$ext = '.' . $ext;
+	}
 
 	// Edge case: if file is named '.ext', treat as an empty name.
-	if ( $name === $ext )
+	if ( $name === $ext ) {
 		$name = '';
+	}
 
 	/*
 	 * Increment the file number until we have a unique file to save in $dir.
@@ -2154,7 +2170,11 @@ function wp_upload_bits( $name, $deprecated, $bits, $time = null ) {
 		else
 			$error_path = basename( $upload['basedir'] ) . $upload['subdir'];
 
-		$message = sprintf( __( 'Unable to create directory %s. Is its parent directory writable by the server?' ), $error_path );
+		$message = sprintf(
+			/* translators: %s: directory path */
+			__( 'Unable to create directory %s. Is its parent directory writable by the server?' ),
+			$error_path
+		);
 		return array( 'error' => $message );
 	}
 
@@ -2513,13 +2533,27 @@ function get_allowed_mime_types( $user = null ) {
  */
 function wp_nonce_ays( $action ) {
 	if ( 'log-out' == $action ) {
-		$html = sprintf( __( 'You are attempting to log out of %s' ), get_bloginfo( 'name' ) ) . '</p><p>';
+		$html = sprintf(
+			/* translators: %s: site name */
+			__( 'You are attempting to log out of %s' ),
+			get_bloginfo( 'name' )
+		);
+		$html .= '</p><p>';
 		$redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : '';
-		$html .= sprintf( __( "Do you really want to <a href='%s'>log out</a>?"), wp_logout_url( $redirect_to ) );
+		$html .= sprintf(
+			/* translators: %s: logout URL */
+			__( 'Do you really want to <a href="%s">log out</a>?' ),
+			wp_logout_url( $redirect_to )
+		);
 	} else {
 		$html = __( 'Are you sure you want to do this?' );
-		if ( wp_get_referer() )
-			$html .= "</p><p><a href='" . esc_url( remove_query_arg( 'updated', wp_get_referer() ) ) . "'>" . __( 'Please try again.' ) . "</a>";
+		if ( wp_get_referer() ) {
+			$html .= '</p><p>';
+			$html .= sprintf( '<a href="%s">%s</a>',
+				esc_url( remove_query_arg( 'updated', wp_get_referer() ) ),
+				__( 'Please try again.' )
+			);
+		}
 	}
 
 	wp_die( $html, __( 'WordPress Failure Notice' ), 403 );
@@ -2542,7 +2576,8 @@ function wp_nonce_ays( $action ) {
  *              an integer to be used as the response code.
  *
  * @param string|WP_Error  $message Optional. Error message. If this is a WP_Error object,
- *                                  the error's messages are used. Default empty.
+ *                                  and not an Ajax or XML-RPC request, the error's messages are used.
+ *                                  Default empty.
  * @param string|int       $title   Optional. Error title. If `$message` is a `WP_Error` object,
  *                                  error data with the key 'title' may be used to specify the title.
  *                                  If `$title` is an integer, then it is treated as the response
@@ -2551,7 +2586,7 @@ function wp_nonce_ays( $action ) {
  *     Optional. Arguments to control behavior. If `$args` is an integer, then it is treated
  *     as the response code. Default empty array.
  *
- *     @type int    $response       The HTTP response code. Default 500.
+ *     @type int    $response       The HTTP response code. Default 200 for Ajax requests, 500 otherwise.
  *     @type bool   $back_link      Whether to include a link to go back. Default false.
  *     @type string $text_direction The text direction. This is only useful internally, when WordPress
  *                                  is still loading and the site's locale is not set up yet. Accepts 'rtl'.
@@ -2567,7 +2602,7 @@ function wp_die( $message = '', $title = '', $args = array() ) {
 		$title = '';
 	}
 
-	if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
+	if ( wp_doing_ajax() ) {
 		/**
 		 * Filters the callback for killing WordPress execution for Ajax requests.
 		 *
@@ -2608,9 +2643,9 @@ function wp_die( $message = '', $title = '', $args = array() ) {
  * @since 3.0.0
  * @access private
  *
- * @param string       $message Error message.
- * @param string       $title   Optional. Error title. Default empty.
- * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
+ * @param string|WP_Error $message Error message or WP_Error object.
+ * @param string          $title   Optional. Error title. Default empty.
+ * @param string|array    $args    Optional. Arguments to control behavior. Default empty array.
  */
 function _default_wp_die_handler( $message, $title = '', $args = array() ) {
 	$defaults = array( 'response' => 500 );
@@ -2835,9 +2870,20 @@ function _xmlrpc_wp_die_handler( $message, $title = '', $args = array() ) {
  * @since 3.4.0
  * @access private
  *
- * @param string $message Optional. Response to print. Default empty.
+ * @param string       $message Error message.
+ * @param string       $title   Optional. Error title (unused). Default empty.
+ * @param string|array $args    Optional. Arguments to control behavior. Default empty array.
  */
-function _ajax_wp_die_handler( $message = '' ) {
+function _ajax_wp_die_handler( $message, $title = '', $args = array() ) {
+	$defaults = array(
+		'response' => 200,
+	);
+	$r = wp_parse_args( $args, $defaults );
+
+	if ( ! headers_sent() && null !== $r['response'] ) {
+		status_header( $r['response'] );
+	}
+
 	if ( is_scalar( $message ) )
 		die( (string) $message );
 	die( '0' );
@@ -3054,33 +3100,44 @@ function _wp_json_prepare_data( $data ) {
  * Send a JSON response back to an Ajax request.
  *
  * @since 3.5.0
+ * @since 4.7.0 The `$status_code` parameter was added.
  *
- * @param mixed $response Variable (usually an array or object) to encode as JSON,
- *                        then print and die.
+ * @param mixed $response    Variable (usually an array or object) to encode as JSON,
+ *                           then print and die.
+ * @param int   $status_code The HTTP status code to output.
  */
-function wp_send_json( $response ) {
+function wp_send_json( $response, $status_code = null ) {
 	@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
+	if ( null !== $status_code ) {
+		status_header( $status_code );
+	}
 	echo wp_json_encode( $response );
-	if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
-		wp_die();
-	else
+
+	if ( wp_doing_ajax() ) {
+		wp_die( '', '', array(
+			'response' => null,
+		) );
+	} else {
 		die;
+	}
 }
 
 /**
  * Send a JSON response back to an Ajax request, indicating success.
  *
  * @since 3.5.0
+ * @since 4.7.0 The `$status_code` parameter was added.
  *
- * @param mixed $data Data to encode as JSON, then print and die.
+ * @param mixed $data        Data to encode as JSON, then print and die.
+ * @param int   $status_code The HTTP status code to output.
  */
-function wp_send_json_success( $data = null ) {
+function wp_send_json_success( $data = null, $status_code = null ) {
 	$response = array( 'success' => true );
 
 	if ( isset( $data ) )
 		$response['data'] = $data;
 
-	wp_send_json( $response );
+	wp_send_json( $response, $status_code );
 }
 
 /**
@@ -3093,10 +3150,12 @@ function wp_send_json_success( $data = null ) {
  *
  * @since 3.5.0
  * @since 4.1.0 The `$data` parameter is now processed if a WP_Error object is passed in.
+ * @since 4.7.0 The `$status_code` parameter was added.
  *
- * @param mixed $data Data to encode as JSON, then print and die.
+ * @param mixed $data        Data to encode as JSON, then print and die.
+ * @param int   $status_code The HTTP status code to output.
  */
-function wp_send_json_error( $data = null ) {
+function wp_send_json_error( $data = null, $status_code = null ) {
 	$response = array( 'success' => false );
 
 	if ( isset( $data ) ) {
@@ -3114,7 +3173,7 @@ function wp_send_json_error( $data = null ) {
 		}
 	}
 
-	wp_send_json( $response );
+	wp_send_json( $response, $status_code );
 }
 
 /**
@@ -3134,7 +3193,7 @@ function wp_check_jsonp_callback( $callback ) {
 		return false;
 	}
 
-	$jsonp_callback = preg_replace( '/[^\w\.]/', '', $callback, -1, $illegal_char_count );
+	preg_replace( '/[^\w\.]/', '', $callback, -1, $illegal_char_count );
 
 	return 0 === $illegal_char_count;
 }
@@ -3181,6 +3240,16 @@ function _config_wp_siteurl( $url = '' ) {
 	return $url;
 }
 
+/**
+ * Delete the fresh site option.
+ *
+ * @since 4.7.0
+ * @access private
+ */
+function _delete_option_fresh_site() {
+	update_option( 'fresh_site', 0 );
+}
+
 /**
  * Set the localized direction for MCE plugin.
  *
@@ -3295,6 +3364,18 @@ function smilies_init() {
 		);
 	}
 
+	/**
+	 * Filters all the smilies.
+	 *
+	 * This filter must be added before `smilies_init` is run, as
+	 * it is normally only run once to setup the smilies regex.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array $wpsmiliestrans List of the smilies.
+	 */
+	$wpsmiliestrans = apply_filters('smilies', $wpsmiliestrans);
+
 	if (count($wpsmiliestrans) == 0) {
 		return;
 	}
@@ -3341,9 +3422,10 @@ function smilies_init() {
  * to be merged into another array.
  *
  * @since 2.2.0
+ * @since 2.3.0 `$args` can now also be an object.
  *
- * @param string|array $args     Value to merge with $defaults
- * @param array        $defaults Optional. Array that serves as the defaults. Default empty.
+ * @param string|array|object $args     Value to merge with $defaults.
+ * @param array               $defaults Optional. Array that serves as the defaults. Default empty.
  * @return array Merged user defined values with defaults.
  */
 function wp_parse_args( $args, $defaults = '' ) {
@@ -3374,6 +3456,26 @@ function wp_parse_id_list( $list ) {
 	return array_unique(array_map('absint', $list));
 }
 
+/**
+ * Clean up an array, comma- or space-separated list of slugs.
+ *
+ * @since 4.7.0
+ *
+ * @param  array|string $list List of slugs.
+ * @return array Sanitized array of slugs.
+ */
+function wp_parse_slug_list( $list ) {
+	if ( ! is_array( $list ) ) {
+		$list = preg_split( '/[\s,]+/', $list );
+	}
+
+	foreach ( $list as $key => $value ) {
+		$list[ $key ] = sanitize_title( $value );
+	}
+
+	return array_unique( $list );
+}
+
 /**
  * Extract a slice of an array, given a list of keys.
  *
@@ -3414,6 +3516,7 @@ function wp_is_numeric_array( $data ) {
  * Filters a list of objects, based on a set of key => value arguments.
  *
  * @since 3.0.0
+ * @since 4.7.0 Uses WP_List_Util class.
  *
  * @param array       $list     An array of objects to filter
  * @param array       $args     Optional. An array of key => value arguments to match
@@ -3427,21 +3530,26 @@ function wp_is_numeric_array( $data ) {
  * @return array A list of objects or object fields.
  */
 function wp_filter_object_list( $list, $args = array(), $operator = 'and', $field = false ) {
-	if ( ! is_array( $list ) )
+	if ( ! is_array( $list ) ) {
 		return array();
+	}
 
-	$list = wp_list_filter( $list, $args, $operator );
+	$util = new WP_List_Util( $list );
 
-	if ( $field )
-		$list = wp_list_pluck( $list, $field );
+	$util->filter( $args, $operator );
+
+	if ( $field ) {
+		$util->pluck( $field );
+	}
 
-	return $list;
+	return $util->get_output();
 }
 
 /**
  * Filters a list of objects, based on a set of key => value arguments.
  *
  * @since 3.1.0
+ * @since 4.7.0 Uses WP_List_Util class.
  *
  * @param array  $list     An array of objects to filter.
  * @param array  $args     Optional. An array of key => value arguments to match
@@ -3453,33 +3561,12 @@ function wp_filter_object_list( $list, $args = array(), $operator = 'and', $fiel
  * @return array Array of found values.
  */
 function wp_list_filter( $list, $args = array(), $operator = 'AND' ) {
-	if ( ! is_array( $list ) )
+	if ( ! is_array( $list ) ) {
 		return array();
-
-	if ( empty( $args ) )
-		return $list;
-
-	$operator = strtoupper( $operator );
-	$count = count( $args );
-	$filtered = array();
-
-	foreach ( $list as $key => $obj ) {
-		$to_match = (array) $obj;
-
-		$matched = 0;
-		foreach ( $args as $m_key => $m_value ) {
-			if ( array_key_exists( $m_key, $to_match ) && $m_value == $to_match[ $m_key ] )
-				$matched++;
-		}
-
-		if ( ( 'AND' == $operator && $matched == $count )
-		  || ( 'OR' == $operator && $matched > 0 )
-		  || ( 'NOT' == $operator && 0 == $matched ) ) {
-			$filtered[$key] = $obj;
-		}
 	}
 
-	return $filtered;
+	$util = new WP_List_Util( $list );
+	return $util->filter( $args, $operator );
 }
 
 /**
@@ -3490,6 +3577,7 @@ function wp_list_filter( $list, $args = array(), $operator = 'AND' ) {
  *
  * @since 3.1.0
  * @since 4.0.0 $index_key parameter added.
+ * @since 4.7.0 Uses WP_List_Util class.
  *
  * @param array      $list      List of objects or arrays
  * @param int|string $field     Field from the object to place instead of the entire object
@@ -3500,43 +3588,30 @@ function wp_list_filter( $list, $args = array(), $operator = 'AND' ) {
  *               `$list` will be preserved in the results.
  */
 function wp_list_pluck( $list, $field, $index_key = null ) {
-	if ( ! $index_key ) {
-		/*
-		 * This is simple. Could at some point wrap array_column()
-		 * if we knew we had an array of arrays.
-		 */
-		foreach ( $list as $key => $value ) {
-			if ( is_object( $value ) ) {
-				$list[ $key ] = $value->$field;
-			} else {
-				$list[ $key ] = $value[ $field ];
-			}
-		}
-		return $list;
-	}
+	$util = new WP_List_Util( $list );
+	return $util->pluck( $field, $index_key );
+}
 
-	/*
-	 * When index_key is not set for a particular item, push the value
-	 * to the end of the stack. This is how array_column() behaves.
-	 */
-	$newlist = array();
-	foreach ( $list as $value ) {
-		if ( is_object( $value ) ) {
-			if ( isset( $value->$index_key ) ) {
-				$newlist[ $value->$index_key ] = $value->$field;
-			} else {
-				$newlist[] = $value->$field;
-			}
-		} else {
-			if ( isset( $value[ $index_key ] ) ) {
-				$newlist[ $value[ $index_key ] ] = $value[ $field ];
-			} else {
-				$newlist[] = $value[ $field ];
-			}
-		}
+/**
+ * Sorts a list of objects, based on one or more orderby arguments.
+ *
+ * @since 4.7.0
+ *
+ * @param array        $list          An array of objects to filter.
+ * @param string|array $orderby       Optional. Either the field name to order by or an array
+ *                                    of multiple orderby fields as $orderby => $order.
+ * @param string       $order         Optional. Either 'ASC' or 'DESC'. Only used if $orderby
+ *                                    is a string.
+ * @param bool         $preserve_keys Optional. Whether to preserve keys. Default false.
+ * @return array The sorted array.
+ */
+function wp_list_sort( $list, $orderby = array(), $order = 'ASC', $preserve_keys = false ) {
+	if ( ! is_array( $list ) ) {
+		return array();
 	}
 
-	return $newlist;
+	$util = new WP_List_Util( $list );
+	return $util->sort( $orderby, $order, $preserve_keys );
 }
 
 /**
@@ -3703,15 +3778,19 @@ function _deprecated_function( $function, $version, $replacement = null ) {
 	 */
 	if ( WP_DEBUG && apply_filters( 'deprecated_function_trigger_error', true ) ) {
 		if ( function_exists( '__' ) ) {
-			if ( ! is_null( $replacement ) )
+			if ( ! is_null( $replacement ) ) {
+				/* translators: 1: PHP function name, 2: version number, 3: alternative function name */
 				trigger_error( sprintf( __('%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.'), $function, $version, $replacement ) );
-			else
+			} else {
+				/* translators: 1: PHP function name, 2: version number */
 				trigger_error( sprintf( __('%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.'), $function, $version ) );
+			}
 		} else {
-			if ( ! is_null( $replacement ) )
+			if ( ! is_null( $replacement ) ) {
 				trigger_error( sprintf( '%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.', $function, $version, $replacement ) );
-			else
+			} else {
 				trigger_error( sprintf( '%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.', $function, $version ) );
+			}
 		}
 	}
 }
@@ -3827,15 +3906,19 @@ function _deprecated_file( $file, $version, $replacement = null, $message = '' )
 	if ( WP_DEBUG && apply_filters( 'deprecated_file_trigger_error', true ) ) {
 		$message = empty( $message ) ? '' : ' ' . $message;
 		if ( function_exists( '__' ) ) {
-			if ( ! is_null( $replacement ) )
+			if ( ! is_null( $replacement ) ) {
+				/* translators: 1: PHP file name, 2: version number, 3: alternative file name */
 				trigger_error( sprintf( __('%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.'), $file, $version, $replacement ) . $message );
-			else
+			} else {
+				/* translators: 1: PHP file name, 2: version number */
 				trigger_error( sprintf( __('%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.'), $file, $version ) . $message );
+			}
 		} else {
-			if ( ! is_null( $replacement ) )
+			if ( ! is_null( $replacement ) ) {
 				trigger_error( sprintf( '%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.', $file, $version, $replacement ) . $message );
-			else
+			} else {
 				trigger_error( sprintf( '%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.', $file, $version ) . $message );
+			}
 		}
 	}
 }
@@ -3887,15 +3970,19 @@ function _deprecated_argument( $function, $version, $message = null ) {
 	 */
 	if ( WP_DEBUG && apply_filters( 'deprecated_argument_trigger_error', true ) ) {
 		if ( function_exists( '__' ) ) {
-			if ( ! is_null( $message ) )
+			if ( ! is_null( $message ) ) {
+				/* translators: 1: PHP function name, 2: version number, 3: optional message regarding the change */
 				trigger_error( sprintf( __('%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s'), $function, $version, $message ) );
-			else
+			} else {
+				/* translators: 1: PHP function name, 2: version number */
 				trigger_error( sprintf( __('%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available.'), $function, $version ) );
+			}
 		} else {
-			if ( ! is_null( $message ) )
+			if ( ! is_null( $message ) ) {
 				trigger_error( sprintf( '%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s', $function, $version, $message ) );
-			else
+			} else {
 				trigger_error( sprintf( '%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available.', $function, $version ) );
+			}
 		}
 	}
 }
@@ -3943,8 +4030,10 @@ function _deprecated_hook( $hook, $version, $replacement = null, $message = null
 	if ( WP_DEBUG && apply_filters( 'deprecated_hook_trigger_error', true ) ) {
 		$message = empty( $message ) ? '' : ' ' . $message;
 		if ( ! is_null( $replacement ) ) {
+			/* translators: 1: WordPress hook name, 2: version number, 3: alternative hook name */
 			trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.' ), $hook, $version, $replacement ) . $message );
 		} else {
+			/* translators: 1: WordPress hook name, 2: version number */
 			trigger_error( sprintf( __( '%1$s is <strong>deprecated</strong> since version %2$s with no alternative available.' ), $hook, $version ) . $message );
 		}
 	}
@@ -3988,14 +4077,24 @@ function _doing_it_wrong( $function, $message, $version ) {
 	 */
 	if ( WP_DEBUG && apply_filters( 'doing_it_wrong_trigger_error', true ) ) {
 		if ( function_exists( '__' ) ) {
-			$version = is_null( $version ) ? '' : sprintf( __( '(This message was added in version %s.)' ), $version );
+			if ( is_null( $version ) ) {
+				$version = '';
+			} else {
+				/* translators: %s: version number */
+				$version = sprintf( __( '(This message was added in version %s.)' ), $version );
+			}
 			/* translators: %s: Codex URL */
 			$message .= ' ' . sprintf( __( 'Please see <a href="%s">Debugging in WordPress</a> for more information.' ),
 				__( 'https://codex.wordpress.org/Debugging_in_WordPress' )
 			);
+			/* translators: Developer debugging message. 1: PHP function name, 2: Explanatory message, 3: Version information message */
 			trigger_error( sprintf( __( '%1$s was called <strong>incorrectly</strong>. %2$s %3$s' ), $function, $message, $version ) );
 		} else {
-			$version = is_null( $version ) ? '' : sprintf( '(This message was added in version %s.)', $version );
+			if ( is_null( $version ) ) {
+				$version = '';
+			} else {
+				$version = sprintf( '(This message was added in version %s.)', $version );
+			}
 			$message .= sprintf( ' Please see <a href="%s">Debugging in WordPress</a> for more information.',
 				'https://codex.wordpress.org/Debugging_in_WordPress'
 			);
@@ -4238,23 +4337,18 @@ function wp_suspend_cache_invalidation( $suspend = true ) {
  *
  * @since 3.0.0
  *
- * @global object $current_site
- *
  * @param int $site_id Optional. Site ID to test. Defaults to current site.
  * @return bool True if $site_id is the main site of the network, or if not
  *              running Multisite.
  */
 function is_main_site( $site_id = null ) {
-	// This is the current network's information; 'site' is old terminology.
-	global $current_site;
-
 	if ( ! is_multisite() )
 		return true;
 
 	if ( ! $site_id )
 		$site_id = get_current_blog_id();
 
-	return (int) $site_id === (int) $current_site->blog_id;
+	return (int) $site_id === (int) get_network()->site_id;
 }
 
 /**
@@ -4270,10 +4364,8 @@ function is_main_network( $network_id = null ) {
 		return true;
 	}
 
-	$current_network_id = (int) get_current_site()->id;
-
 	if ( null === $network_id ) {
-		$network_id = $current_network_id;
+		$network_id = get_current_network_id();
 	}
 
 	$network_id = (int) $network_id;
@@ -4286,31 +4378,23 @@ function is_main_network( $network_id = null ) {
  *
  * @since 4.3.0
  *
- * @global wpdb $wpdb WordPress database abstraction object.
- *
  * @return int The ID of the main network.
  */
 function get_main_network_id() {
-	global $wpdb;
-
 	if ( ! is_multisite() ) {
 		return 1;
 	}
 
-	$current_site = get_current_site();
+	$current_network = get_network();
 
 	if ( defined( 'PRIMARY_NETWORK_ID' ) ) {
 		$main_network_id = PRIMARY_NETWORK_ID;
-	} elseif ( isset( $current_site->id ) && 1 === (int) $current_site->id ) {
+	} elseif ( isset( $current_network->id ) && 1 === (int) $current_network->id ) {
 		// If the current network has an ID of 1, assume it is the main network.
 		$main_network_id = 1;
 	} else {
-		$main_network_id = wp_cache_get( 'primary_network_id', 'site-options' );
-
-		if ( false === $main_network_id ) {
-			$main_network_id = (int) $wpdb->get_var( "SELECT id FROM {$wpdb->site} ORDER BY id LIMIT 1" );
-			wp_cache_add( 'primary_network_id', $main_network_id, 'site-options' );
-		}
+		$_networks = get_networks( array( 'fields' => 'ids', 'number' => 1 ) );
+		$main_network_id = array_shift( $_networks );
 	}
 
 	/**
@@ -4432,21 +4516,25 @@ function _wp_timezone_choice_usort_callback( $a, $b ) {
  * Gives a nicely-formatted list of timezone strings.
  *
  * @since 2.9.0
+ * @since 4.7.0 Added the `$locale` parameter.
  *
  * @staticvar bool $mo_loaded
+ * @staticvar string $locale_loaded
  *
  * @param string $selected_zone Selected timezone.
+ * @param string $locale        Optional. Locale to load the timezones in. Default current site locale.
  * @return string
  */
-function wp_timezone_choice( $selected_zone ) {
-	static $mo_loaded = false;
+function wp_timezone_choice( $selected_zone, $locale = null ) {
+	static $mo_loaded = false, $locale_loaded = null;
 
 	$continents = array( 'Africa', 'America', 'Antarctica', 'Arctic', 'Asia', 'Atlantic', 'Australia', 'Europe', 'Indian', 'Pacific');
 
-	// Load translations for continents and cities
-	if ( !$mo_loaded ) {
-		$locale = get_locale();
-		$mofile = WP_LANG_DIR . '/continents-cities-' . $locale . '.mo';
+	// Load translations for continents and cities.
+	if ( ! $mo_loaded || $locale !== $locale_loaded ) {
+		$locale_loaded = $locale ? $locale : get_locale();
+		$mofile = WP_LANG_DIR . '/continents-cities-' . $locale_loaded . '.mo';
+		unload_textdomain( 'continents-cities' );
 		load_textdomain( 'continents-cities', $mofile );
 		$mo_loaded = true;
 	}
@@ -4890,6 +4978,7 @@ function send_frame_options_header() {
  *
  * @since 3.3.0
  * @since 4.3.0 Added 'webcal' to the protocols array.
+ * @since 4.7.0 Added 'urn' to the protocols array.
  *
  * @see wp_kses()
  * @see esc_url()
@@ -4898,13 +4987,13 @@ function send_frame_options_header() {
  *
  * @return array Array of allowed protocols. Defaults to an array containing 'http', 'https',
  *               'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet',
- *               'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp', and 'webcal'.
+ *               'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp', 'webcal', and 'urn'.
  */
 function wp_allowed_protocols() {
 	static $protocols = array();
 
 	if ( empty( $protocols ) ) {
-		$protocols = array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp', 'webcal' );
+		$protocols = array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp', 'webcal', 'urn' );
 
 		/**
 		 * Filters the list of protocols allowed in HTML attributes.
@@ -5193,13 +5282,15 @@ function get_tag_regex( $tag ) {
  * @return string The canonical form of the charset.
  */
 function _canonical_charset( $charset ) {
-	if ( 'UTF-8' === $charset || 'utf-8' === $charset || 'utf8' === $charset ||
-		'UTF8' === $charset )
+	if ( 'utf-8' === strtolower( $charset ) || 'utf8' === strtolower( $charset) ) {
+
 		return 'UTF-8';
+	}
+
+	if ( 'iso-8859-1' === strtolower( $charset ) || 'iso8859-1' === strtolower( $charset ) ) {
 
-	if ( 'ISO-8859-1' === $charset || 'iso-8859-1' === $charset ||
-		'iso8859-1' === $charset || 'ISO8859-1' === $charset )
 		return 'ISO-8859-1';
+	}
 
 	return $charset;
 }
@@ -5464,3 +5555,40 @@ function wp_raise_memory_limit( $context = 'admin' ) {
 
 	return false;
 }
+
+/**
+ * Generate a random UUID (version 4).
+ *
+ * @since 4.7.0
+ *
+ * @return string UUID.
+ */
+function wp_generate_uuid4() {
+	return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
+		mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
+		mt_rand( 0, 0xffff ),
+		mt_rand( 0, 0x0fff ) | 0x4000,
+		mt_rand( 0, 0x3fff ) | 0x8000,
+		mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
+	);
+}
+
+/**
+ * Get last changed date for the specified cache group.
+ *
+ * @since 4.7.0
+ *
+ * @param $group Where the cache contents are grouped.
+ *
+ * @return string $last_changed UNIX timestamp with microseconds representing when the group was last changed.
+ */
+function wp_cache_get_last_changed( $group ) {
+	$last_changed = wp_cache_get( 'last_changed', $group );
+
+	if ( ! $last_changed ) {
+		$last_changed = microtime();
+		wp_cache_set( 'last_changed', $last_changed, $group );
+	}
+
+	return $last_changed;
+}
diff --git a/wp-includes/functions.wp-scripts.php b/wp-includes/functions.wp-scripts.php
index 767d995d6..dccaaf262 100644
--- a/wp-includes/functions.wp-scripts.php
+++ b/wp-includes/functions.wp-scripts.php
@@ -34,11 +34,12 @@ function wp_scripts() {
  * @param string $function Function name.
  */
 function _wp_scripts_maybe_doing_it_wrong( $function ) {
-	if ( did_action( 'init' ) ) {
+	if ( did_action( 'init' ) || did_action( 'admin_enqueue_scripts' ) || did_action( 'wp_enqueue_scripts' ) || did_action( 'login_enqueue_scripts' ) ) {
 		return;
 	}
 
 	_doing_it_wrong( $function, sprintf(
+		/* translators: 1: wp_enqueue_scripts, 2: admin_enqueue_scripts, 3: login_enqueue_scripts */
 		__( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
 		'<code>wp_enqueue_scripts</code>',
 		'<code>admin_enqueue_scripts</code>',
@@ -224,8 +225,12 @@ function wp_deregister_script( $handle ) {
 		);
 
 		if ( in_array( $handle, $no ) ) {
-			$message = sprintf( __( 'Do not deregister the %1$s script in the administration area. To target the front-end theme, use the %2$s hook.' ),
-				"<code>$handle</code>", '<code>wp_enqueue_scripts</code>' );
+			$message = sprintf(
+				/* translators: 1: script name, 2: wp_enqueue_scripts */
+				__( 'Do not deregister the %1$s script in the administration area. To target the front-end theme, use the %2$s hook.' ),
+				"<code>$handle</code>",
+				'<code>wp_enqueue_scripts</code>'
+			);
 			_doing_it_wrong( __FUNCTION__, $message, '3.6.0' );
 			return;
 		}
@@ -247,6 +252,7 @@ function wp_deregister_script( $handle ) {
  *
  * @param string           $handle    Name of the script. Should be unique.
  * @param string           $src       Full URL of the script, or path of the script relative to the WordPress root directory.
+ *                                    Default empty.
  * @param array            $deps      Optional. An array of registered script handles this script depends on. Default empty array.
  * @param string|bool|null $ver       Optional. String specifying script version number, if it has one, which is added to the URL
  *                                    as a query string for cache busting purposes. If version is set to false, a version
@@ -255,7 +261,7 @@ function wp_deregister_script( $handle ) {
  * @param bool             $in_footer Optional. Whether to enqueue the script before </body> instead of in the <head>.
  *                                    Default 'false'.
  */
-function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) {
+function wp_enqueue_script( $handle, $src = '', $deps = array(), $ver = false, $in_footer = false ) {
 	$wp_scripts = wp_scripts();
 
 	_wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
diff --git a/wp-includes/functions.wp-styles.php b/wp-includes/functions.wp-styles.php
index 5312f8233..db2603a93 100644
--- a/wp-includes/functions.wp-styles.php
+++ b/wp-includes/functions.wp-styles.php
@@ -151,6 +151,7 @@ function wp_deregister_style( $handle ) {
  *
  * @param string           $handle Name of the stylesheet. Should be unique.
  * @param string           $src    Full URL of the stylesheet, or path of the stylesheet relative to the WordPress root directory.
+ *                                 Default empty.
  * @param array            $deps   Optional. An array of registered stylesheet handles this stylesheet depends on. Default empty array.
  * @param string|bool|null $ver    Optional. String specifying stylesheet version number, if it has one, which is added to the URL
  *                                 as a query string for cache busting purposes. If version is set to false, a version
@@ -160,7 +161,7 @@ function wp_deregister_style( $handle ) {
  *                                 Default 'all'. Accepts media types like 'all', 'print' and 'screen', or media queries like
  *                                 '(orientation: portrait)' and '(max-width: 640px)'.
  */
-function wp_enqueue_style( $handle, $src = false, $deps = array(), $ver = false, $media = 'all' ) {
+function wp_enqueue_style( $handle, $src = '', $deps = array(), $ver = false, $media = 'all' ) {
 	_wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
 
 	$wp_styles = wp_styles();
diff --git a/wp-includes/general-template.php b/wp-includes/general-template.php
index a5d5ea7db..ed91e5bd1 100644
--- a/wp-includes/general-template.php
+++ b/wp-includes/general-template.php
@@ -30,7 +30,7 @@ function get_header( $name = null ) {
 	 * @since 2.1.0
 	 * @since 2.8.0 $name parameter added.
 	 *
-	 * @param string $name Name of the specific header file to use.
+	 * @param string|null $name Name of the specific header file to use. null for the default header.
 	 */
 	do_action( 'get_header', $name );
 
@@ -69,7 +69,7 @@ function get_footer( $name = null ) {
 	 * @since 2.1.0
 	 * @since 2.8.0 $name parameter added.
 	 *
-	 * @param string $name Name of the specific footer file to use.
+	 * @param string|null $name Name of the specific footer file to use. null for the default footer.
 	 */
 	do_action( 'get_footer', $name );
 
@@ -108,7 +108,7 @@ function get_sidebar( $name = null ) {
 	 * @since 2.2.0
 	 * @since 2.8.0 $name parameter added.
 	 *
-	 * @param string $name Name of the specific sidebar file to use.
+	 * @param string|null $name Name of the specific sidebar file to use. null for the default sidebar.
 	 */
 	do_action( 'get_sidebar', $name );
 
@@ -152,8 +152,8 @@ function get_template_part( $slug, $name = null ) {
 	 *
 	 * @since 3.0.0
 	 *
-	 * @param string $slug The slug name for the generic template.
-	 * @param string $name The name of the specialized template.
+	 * @param string      $slug The slug name for the generic template.
+	 * @param string|null $name The name of the specialized template.
 	 */
 	do_action( "get_template_part_{$slug}", $slug, $name );
 
@@ -383,7 +383,7 @@ function wp_registration_url() {
  *     @type string $redirect       URL to redirect to. Must be absolute, as in "https://example.com/mypage/".
  *                                  Default is to redirect back to the request URI.
  *     @type string $form_id        ID attribute value for the form. Default 'loginform'.
- *     @type string $label_username Label for the username or email address field. Default 'Username or Email'.
+ *     @type string $label_username Label for the username or email address field. Default 'Username or Email Address'.
  *     @type string $label_password Label for the password field. Default 'Password'.
  *     @type string $label_remember Label for the remember field. Default 'Remember Me'.
  *     @type string $label_log_in   Label for the submit button. Default 'Log In'.
@@ -405,7 +405,7 @@ function wp_login_form( $args = array() ) {
 		// Default 'redirect' value takes the user back to the request URI.
 		'redirect' => ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
 		'form_id' => 'loginform',
-		'label_username' => __( 'Username or Email' ),
+		'label_username' => __( 'Username or Email Address' ),
 		'label_password' => __( 'Password' ),
 		'label_remember' => __( 'Remember Me' ),
 		'label_log_in' => __( 'Log In' ),
@@ -481,7 +481,7 @@ function wp_login_form( $args = array() ) {
 			' . $login_form_middle . '
 			' . ( $args['remember'] ? '<p class="login-remember"><label><input name="rememberme" type="checkbox" id="' . esc_attr( $args['id_remember'] ) . '" value="forever"' . ( $args['value_remember'] ? ' checked="checked"' : '' ) . ' /> ' . esc_html( $args['label_remember'] ) . '</label></p>' : '' ) . '
 			<p class="login-submit">
-				<input type="submit" name="wp-submit" id="' . esc_attr( $args['id_submit'] ) . '" class="button-primary" value="' . esc_attr( $args['label_log_in'] ) . '" />
+				<input type="submit" name="wp-submit" id="' . esc_attr( $args['id_submit'] ) . '" class="button button-primary" value="' . esc_attr( $args['label_log_in'] ) . '" />
 				<input type="hidden" name="redirect_to" value="' . esc_url( $args['redirect'] ) . '" />
 			</p>
 			' . $login_form_bottom . '
@@ -783,8 +783,11 @@ function get_bloginfo( $show = '', $filter = 'raw' ) {
  * @return string Site Icon URL.
  */
 function get_site_icon_url( $size = 512, $url = '', $blog_id = 0 ) {
-	if ( is_multisite() && (int) $blog_id !== get_current_blog_id() ) {
+	$switched_blog = false;
+
+	if ( is_multisite() && ! empty( $blog_id ) && (int) $blog_id !== get_current_blog_id() ) {
 		switch_to_blog( $blog_id );
+		$switched_blog = true;
 	}
 
 	$site_icon_id = get_option( 'site_icon' );
@@ -798,7 +801,7 @@ function get_site_icon_url( $size = 512, $url = '', $blog_id = 0 ) {
 		$url = wp_get_attachment_image_url( $site_icon_id, $size_data );
 	}
 
-	if ( is_multisite() && ms_is_switched() ) {
+	if ( $switched_blog ) {
 		restore_current_blog();
 	}
 
@@ -848,13 +851,16 @@ function has_site_icon( $blog_id = 0 ) {
  * @return bool Whether the site has a custom logo or not.
  */
 function has_custom_logo( $blog_id = 0 ) {
-	if ( is_multisite() && (int) $blog_id !== get_current_blog_id() ) {
+	$switched_blog = false;
+
+	if ( is_multisite() && ! empty( $blog_id ) && (int) $blog_id !== get_current_blog_id() ) {
 		switch_to_blog( $blog_id );
+		$switched_blog = true;
 	}
 
 	$custom_logo_id = get_theme_mod( 'custom_logo' );
 
-	if ( is_multisite() && ms_is_switched() ) {
+	if ( $switched_blog ) {
 		restore_current_blog();
 	}
 
@@ -871,9 +877,11 @@ function has_custom_logo( $blog_id = 0 ) {
  */
 function get_custom_logo( $blog_id = 0 ) {
 	$html = '';
+	$switched_blog = false;
 
-	if ( is_multisite() && (int) $blog_id !== get_current_blog_id() ) {
+	if ( is_multisite() && ! empty( $blog_id ) && (int) $blog_id !== get_current_blog_id() ) {
 		switch_to_blog( $blog_id );
+		$switched_blog = true;
 	}
 
 	$custom_logo_id = get_theme_mod( 'custom_logo' );
@@ -896,7 +904,7 @@ function get_custom_logo( $blog_id = 0 ) {
 		);
 	}
 
-	if ( is_multisite() && ms_is_switched() ) {
+	if ( $switched_blog ) {
 		restore_current_blog();
 	}
 
@@ -1453,16 +1461,22 @@ function the_archive_title( $before = '', $after = '' ) {
  */
 function get_the_archive_title() {
 	if ( is_category() ) {
+		/* translators: Category archive title. 1: Category name */
 		$title = sprintf( __( 'Category: %s' ), single_cat_title( '', false ) );
 	} elseif ( is_tag() ) {
+		/* translators: Tag archive title. 1: Tag name */
 		$title = sprintf( __( 'Tag: %s' ), single_tag_title( '', false ) );
 	} elseif ( is_author() ) {
+		/* translators: Author archive title. 1: Author name */
 		$title = sprintf( __( 'Author: %s' ), '<span class="vcard">' . get_the_author() . '</span>' );
 	} elseif ( is_year() ) {
+		/* translators: Yearly archive title. 1: Year */
 		$title = sprintf( __( 'Year: %s' ), get_the_date( _x( 'Y', 'yearly archives date format' ) ) );
 	} elseif ( is_month() ) {
+		/* translators: Monthly archive title. 1: Month name and year */
 		$title = sprintf( __( 'Month: %s' ), get_the_date( _x( 'F Y', 'monthly archives date format' ) ) );
 	} elseif ( is_day() ) {
+		/* translators: Daily archive title. 1: Date */
 		$title = sprintf( __( 'Day: %s' ), get_the_date( _x( 'F j, Y', 'daily archives date format' ) ) );
 	} elseif ( is_tax( 'post_format' ) ) {
 		if ( is_tax( 'post_format', 'post-format-aside' ) ) {
@@ -1485,10 +1499,11 @@ function get_the_archive_title() {
 			$title = _x( 'Chats', 'post format archive title' );
 		}
 	} elseif ( is_post_type_archive() ) {
+		/* translators: Post type archive title. 1: Post type name */
 		$title = sprintf( __( 'Archives: %s' ), post_type_archive_title( '', false ) );
 	} elseif ( is_tax() ) {
 		$tax = get_taxonomy( get_queried_object()->taxonomy );
-		/* translators: 1: Taxonomy singular name, 2: Current taxonomy term */
+		/* translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: Current taxonomy term */
 		$title = sprintf( __( '%1$s: %2$s' ), $tax->labels->singular_name, single_term_title( '', false ) );
 	} else {
 		$title = __( 'Archives' );
@@ -1505,7 +1520,7 @@ function get_the_archive_title() {
 }
 
 /**
- * Display category, tag, or term description.
+ * Display category, tag, term, or author description.
  *
  * @since 4.1.0
  *
@@ -1522,23 +1537,30 @@ function the_archive_description( $before = '', $after = '' ) {
 }
 
 /**
- * Retrieve category, tag, or term description.
+ * Retrieve category, tag, term, or author description.
  *
  * @since 4.1.0
+ * @since 4.7.0 Added support for author archives.
+ *
+ * @see term_description()
  *
  * @return string Archive description.
  */
 function get_the_archive_description() {
+	if ( is_author() ) {
+		$description = get_the_author_meta( 'description' );
+	} else {
+		$description = term_description();
+	}
+
 	/**
 	 * Filters the archive description.
 	 *
 	 * @since 4.1.0
 	 *
-	 * @see term_description()
-	 *
 	 * @param string $description Archive description to be displayed.
 	 */
-	return apply_filters( 'get_the_archive_description', term_description() );
+	return apply_filters( 'get_the_archive_description', $description );
 }
 
 /**
@@ -1698,11 +1720,7 @@ function wp_get_archives( $args = '' ) {
 
 	$output = '';
 
-	$last_changed = wp_cache_get( 'last_changed', 'posts' );
-	if ( ! $last_changed ) {
-		$last_changed = microtime();
-		wp_cache_set( 'last_changed', $last_changed, 'posts' );
-	}
+	$last_changed = wp_cache_get_last_changed( 'posts' );
 
 	$limit = $r['limit'];
 
@@ -2040,6 +2058,7 @@ function get_calendar( $initial = true, $echo = true ) {
 		if ( in_array( $day, $daywithpost ) ) {
 			// any posts today?
 			$date_format = date( _x( 'F j, Y', 'daily archives date format' ), strtotime( "{$thisyear}-{$thismonth}-{$day}" ) );
+			/* translators: Post calendar label. 1: Date */
 			$label = sprintf( __( 'Posts published on %s' ), $date_format );
 			$calendar_output .= sprintf(
 				'<a href="%s" aria-label="%s">%s</a>',
@@ -2765,12 +2784,26 @@ function wp_site_icon() {
 		return;
 	}
 
-	$meta_tags = array(
-		sprintf( '<link rel="icon" href="%s" sizes="32x32" />', esc_url( get_site_icon_url( 32 ) ) ),
-		sprintf( '<link rel="icon" href="%s" sizes="192x192" />', esc_url( get_site_icon_url( 192 ) ) ),
-		sprintf( '<link rel="apple-touch-icon-precomposed" href="%s" />', esc_url( get_site_icon_url( 180 ) ) ),
-		sprintf( '<meta name="msapplication-TileImage" content="%s" />', esc_url( get_site_icon_url( 270 ) ) ),
-	);
+	$meta_tags = array();
+	$icon_32 = get_site_icon_url( 32 );
+	if ( empty( $icon_32 ) && is_customize_preview() ) {
+		$icon_32 = '/favicon.ico'; // Serve default favicon URL in customizer so element can be updated for preview.
+	}
+	if ( $icon_32 ) {
+		$meta_tags[] = sprintf( '<link rel="icon" href="%s" sizes="32x32" />', esc_url( $icon_32 ) );
+	}
+	$icon_192 = get_site_icon_url( 192 );
+	if ( $icon_192 ) {
+		$meta_tags[] = sprintf( '<link rel="icon" href="%s" sizes="192x192" />', esc_url( $icon_192 ) );
+	}
+	$icon_180 = get_site_icon_url( 180 );
+	if ( $icon_180 ) {
+		$meta_tags[] = sprintf( '<link rel="apple-touch-icon-precomposed" href="%s" />', esc_url( $icon_180 ) );
+	}
+	$icon_270 = get_site_icon_url( 270 );
+	if ( $icon_270 ) {
+		$meta_tags[] = sprintf( '<meta name="msapplication-TileImage" content="%s" />', esc_url( $icon_270 ) );
+	}
 
 	/**
 	 * Filters the site icon meta tags, so Plugins can add their own.
@@ -2812,9 +2845,11 @@ function wp_resource_hints() {
 	 * The path is removed in the foreach loop below.
 	 */
 	/** This filter is documented in wp-includes/formatting.php */
-	$hints['dns-prefetch'][] = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );
+	$hints['dns-prefetch'][] = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2.2.1/svg/' );
 
 	foreach ( $hints as $relation_type => $urls ) {
+		$unique_urls = array();
+
 		/**
 		 * Filters domains and URLs for resource hints of relation type.
 		 *
@@ -2826,16 +2861,31 @@ function wp_resource_hints() {
 		$urls = apply_filters( 'wp_resource_hints', $urls, $relation_type );
 
 		foreach ( $urls as $key => $url ) {
+			$atts = array();
+
+			if ( is_array( $url ) ) {
+				if ( isset( $url['href'] ) ) {
+					$atts = $url;
+					$url  = $url['href'];
+				} else {
+					continue;
+				}
+			}
+
 			$url = esc_url( $url, array( 'http', 'https' ) );
+
 			if ( ! $url ) {
-				unset( $urls[ $key ] );
+				continue;
+			}
+
+			if ( isset( $unique_urls[ $url ] ) ) {
 				continue;
 			}
 
 			if ( in_array( $relation_type, array( 'preconnect', 'dns-prefetch' ) ) ) {
 				$parsed = wp_parse_url( $url );
+
 				if ( empty( $parsed['host'] ) ) {
-					unset( $urls[ $key ] );
 					continue;
 				}
 
@@ -2847,13 +2897,34 @@ function wp_resource_hints() {
 				}
 			}
 
-			$urls[ $key ] = $url;
+			$atts['rel'] = $relation_type;
+			$atts['href'] = $url;
+
+			$unique_urls[ $url ] = $atts;
 		}
 
-		$urls = array_unique( $urls );
+		foreach ( $unique_urls as $atts ) {
+			$html = '';
+
+			foreach ( $atts as $attr => $value ) {
+				if ( ! is_scalar( $value ) ||
+				     ( ! in_array( $attr, array( 'as', 'crossorigin', 'href', 'pr', 'rel', 'type' ), true ) && ! is_numeric( $attr ))
+				) {
+					continue;
+				}
+
+				$value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
+
+				if ( ! is_string( $attr ) ) {
+					$html .= " $value";
+				} else {
+					$html .= " $attr='$value'";
+				}
+			}
+
+			$html = trim( $html );
 
-		foreach ( $urls as $url ) {
-			printf( "<link rel='%s' href='%s' />\n", $relation_type, $url );
+			echo "<link $html />\n";
 		}
 	}
 }
@@ -2892,21 +2963,21 @@ function wp_dependencies_unique_hosts() {
 }
 
 /**
- * Whether the user should have a WYSIWIG editor.
+ * Whether the user can access the visual editor.
  *
- * Checks that the user requires a WYSIWIG editor and that the editor is
- * supported in the users browser.
+ * Checks if the user can access the visual editor and that it's supported by the user's browser.
  *
  * @since 2.0.0
  *
- * @global bool $wp_rich_edit
- * @global bool $is_gecko
- * @global bool $is_opera
- * @global bool $is_safari
- * @global bool $is_chrome
- * @global bool $is_IE
+ * @global bool $wp_rich_edit Whether the user can access the visual editor.
+ * @global bool $is_gecko     Whether the browser is Gecko-based.
+ * @global bool $is_opera     Whether the browser is Opera.
+ * @global bool $is_safari    Whether the browser is Safari.
+ * @global bool $is_chrome    Whether the browser is Chrome.
+ * @global bool $is_IE        Whether the browser is Internet Explorer.
+ * @global bool $is_edge      Whether the browser is Microsoft Edge.
  *
- * @return bool
+ * @return bool True if the user can access the visual editor, false otherwise.
  */
 function user_can_richedit() {
 	global $wp_rich_edit, $is_gecko, $is_opera, $is_safari, $is_chrome, $is_IE, $is_edge;
@@ -2924,11 +2995,11 @@ function user_can_richedit() {
 	}
 
 	/**
-	 * Filters whether the user can access the rich (Visual) editor.
+	 * Filters whether the user can access the visual editor.
 	 *
 	 * @since 2.1.0
 	 *
-	 * @param bool $wp_rich_edit Whether the user can access to the rich (Visual) editor.
+	 * @param bool $wp_rich_edit Whether the user can access the visual editor.
 	 */
 	return apply_filters( 'user_can_richedit', $wp_rich_edit );
 }
@@ -2955,7 +3026,7 @@ function wp_default_editor() {
 	 *
 	 * @since 2.5.0
 	 *
-	 * @param array $r An array of editors. Accepts 'tinymce', 'html', 'test'.
+	 * @param string $r Which editor should be displayed by default. Either 'tinymce', 'html', or 'test'.
 	 */
 	return apply_filters( 'wp_default_editor', $r );
 }
@@ -2982,7 +3053,6 @@ function wp_default_editor() {
 function wp_editor( $content, $editor_id, $settings = array() ) {
 	if ( ! class_exists( '_WP_Editors', false ) )
 		require( ABSPATH . WPINC . '/class-wp-editor.php' );
-
 	_WP_Editors::editor($content, $editor_id, $settings);
 }
 
@@ -3149,8 +3219,8 @@ function language_attributes( $doctype = 'html' ) {
  *                                      Default 1.
  *     @type int    $mid_size           How many numbers to either side of the current pages. Default 2.
  *     @type bool   $prev_next          Whether to include the previous and next links in the list. Default true.
- *     @type bool   $prev_text          The previous page text. Default '« Previous'.
- *     @type bool   $next_text          The next page text. Default '« Previous'.
+ *     @type bool   $prev_text          The previous page text. Default '&laquo; Previous'.
+ *     @type bool   $next_text          The next page text. Default 'Next &raquo;'.
  *     @type string $type               Controls format of the returned value. Possible values are 'plain',
  *                                      'array' and 'list'. Default is 'plain'.
  *     @type array  $add_args           An array of query args to add. Default false.
@@ -3276,7 +3346,7 @@ function paginate_links( $args = '' ) {
 			endif;
 		endif;
 	endfor;
-	if ( $args['prev_next'] && $current && ( $current < $total || -1 == $total ) ) :
+	if ( $args['prev_next'] && $current && $current < $total ) :
 		$link = str_replace( '%_%', $args['format'], $args['base'] );
 		$link = str_replace( '%#%', $current + 1, $link );
 		if ( $add_args )
@@ -3347,8 +3417,6 @@ function wp_admin_css_color( $key, $name, $url, $colors = array(), $icons = arra
  * Registers the default Admin color schemes
  *
  * @since 3.0.0
- *
- * @global string $wp_version
  */
 function register_admin_color_schemes() {
 	$suffix = is_rtl() ? '-rtl' : '';
@@ -3361,8 +3429,9 @@ function register_admin_color_schemes() {
 	);
 
 	// Other color schemes are not available when running out of src
-	if ( false !== strpos( $GLOBALS['wp_version'], '-src' ) )
+	if ( false !== strpos( get_bloginfo( 'version' ), '-src' ) ) {
 		return;
+	}
 
 	wp_admin_css_color( 'light', _x( 'Light', 'admin color scheme' ),
 		admin_url( "css/colors/light/colors$suffix.css" ),
diff --git a/wp-includes/http.php b/wp-includes/http.php
index 130eae3c3..862e456ae 100644
--- a/wp-includes/http.php
+++ b/wp-includes/http.php
@@ -208,9 +208,12 @@ function wp_remote_head($url, $args = array()) {
  * Retrieve only the headers from the raw response.
  *
  * @since 2.7.0
+ * @since 4.6.0 Return value changed from an array to an Requests_Utility_CaseInsensitiveDictionary instance.
+ *
+ * @see \Requests_Utility_CaseInsensitiveDictionary
  *
  * @param array $response HTTP response.
- * @return array The headers of the response. Empty array if incorrect parameter given.
+ * @return array|\Requests_Utility_CaseInsensitiveDictionary The headers of the response. Empty array if incorrect parameter given.
  */
 function wp_remote_retrieve_headers( $response ) {
 	if ( is_wp_error( $response ) || ! isset( $response['headers'] ) ) {
@@ -614,7 +617,7 @@ function ms_allowed_http_request_hosts( $is_external, $host ) {
 	static $queried = array();
 	if ( $is_external )
 		return $is_external;
-	if ( $host === get_current_site()->domain )
+	if ( $host === get_network()->domain )
 		return true;
 	if ( isset( $queried[ $host ] ) )
 		return $queried[ $host ];
@@ -623,47 +626,118 @@ function ms_allowed_http_request_hosts( $is_external, $host ) {
 }
 
 /**
- * A wrapper for PHP's parse_url() function that handles edgecases in < PHP 5.4.7
+ * A wrapper for PHP's parse_url() function that handles consistency in the return
+ * values across PHP versions.
  *
  * PHP 5.4.7 expanded parse_url()'s ability to handle non-absolute url's, including
- * schemeless and relative url's with :// in the path, this works around those
- * limitations providing a standard output on PHP 5.2~5.4+.
+ * schemeless and relative url's with :// in the path. This function works around
+ * those limitations providing a standard output on PHP 5.2~5.4+.
+ *
+ * Secondly, across various PHP versions, schemeless URLs starting containing a ":"
+ * in the query are being handled inconsistently. This function works around those
+ * differences as well.
  *
  * Error suppression is used as prior to PHP 5.3.3, an E_WARNING would be generated
  * when URL parsing failed.
  *
  * @since 4.4.0
- *
- * @param string $url The URL to parse.
- * @return bool|array False on failure; Array of URL components on success;
- *                    See parse_url()'s return values.
+ * @since 4.7.0 The $component parameter was added for parity with PHP's parse_url().
+ *
+ * @param string $url       The URL to parse.
+ * @param int    $component The specific component to retrieve. Use one of the PHP
+ *                          predefined constants to specify which one.
+ *                          Defaults to -1 (= return all parts as an array).
+ *                          @see http://php.net/manual/en/function.parse-url.php
+ * @return mixed False on parse failure; Array of URL components on success;
+ *               When a specific component has been requested: null if the component
+ *               doesn't exist in the given URL; a sting or - in the case of
+ *               PHP_URL_PORT - integer when it does. See parse_url()'s return values.
  */
-function wp_parse_url( $url ) {
+function wp_parse_url( $url, $component = -1 ) {
+	$to_unset = array();
+	$url = strval( $url );
+
+	if ( '//' === substr( $url, 0, 2 ) ) {
+		$to_unset[] = 'scheme';
+		$url = 'placeholder:' . $url;
+	} elseif ( '/' === substr( $url, 0, 1 ) ) {
+		$to_unset[] = 'scheme';
+		$to_unset[] = 'host';
+		$url = 'placeholder://placeholder' . $url;
+	}
+
 	$parts = @parse_url( $url );
-	if ( ! $parts ) {
-		// < PHP 5.4.7 compat, trouble with relative paths including a scheme break in the path
-		if ( '/' == $url[0] && false !== strpos( $url, '://' ) ) {
-			// Since we know it's a relative path, prefix with a scheme/host placeholder and try again
-			if ( ! $parts = @parse_url( 'placeholder://placeholder' . $url ) ) {
-				return $parts;
-			}
-			// Remove the placeholder values
-			unset( $parts['scheme'], $parts['host'] );
-		} else {
-			return $parts;
-		}
+
+	if ( false === $parts ) {
+		// Parsing failure.
+		return $parts;
 	}
 
-	// < PHP 5.4.7 compat, doesn't detect schemeless URL's host field
-	if ( '//' == substr( $url, 0, 2 ) && ! isset( $parts['host'] ) ) {
-		$path_parts = explode( '/', substr( $parts['path'], 2 ), 2 );
-		$parts['host'] = $path_parts[0];
-		if ( isset( $path_parts[1] ) ) {
-			$parts['path'] = '/' . $path_parts[1];
-		} else {
-			unset( $parts['path'] );
-		}
+	// Remove the placeholder values.
+	foreach ( $to_unset as $key ) {
+		unset( $parts[ $key ] );
 	}
 
-	return $parts;
+	return _get_component_from_parsed_url_array( $parts, $component );
+}
+
+/**
+ * Retrieve a specific component from a parsed URL array.
+ *
+ * @internal
+ *
+ * @since 4.7.0
+ *
+ * @param array|false $url_parts The parsed URL. Can be false if the URL failed to parse.
+ * @param int    $component The specific component to retrieve. Use one of the PHP
+ *                          predefined constants to specify which one.
+ *                          Defaults to -1 (= return all parts as an array).
+ *                          @see http://php.net/manual/en/function.parse-url.php
+ * @return mixed False on parse failure; Array of URL components on success;
+ *               When a specific component has been requested: null if the component
+ *               doesn't exist in the given URL; a sting or - in the case of
+ *               PHP_URL_PORT - integer when it does. See parse_url()'s return values.
+ */
+function _get_component_from_parsed_url_array( $url_parts, $component = -1 ) {
+	if ( -1 === $component ) {
+		return $url_parts;
+	}
+
+	$key = _wp_translate_php_url_constant_to_key( $component );
+	if ( false !== $key && is_array( $url_parts ) && isset( $url_parts[ $key ] ) ) {
+		return $url_parts[ $key ];
+	} else {
+		return null;
+	}
+}
+
+/**
+ * Translate a PHP_URL_* constant to the named array keys PHP uses.
+ *
+ * @internal
+ *
+ * @since 4.7.0
+ *
+ * @see   http://php.net/manual/en/url.constants.php
+ *
+ * @param int $constant PHP_URL_* constant.
+ * @return string|bool The named key or false.
+ */
+function _wp_translate_php_url_constant_to_key( $constant ) {
+	$translation = array(
+		PHP_URL_SCHEME   => 'scheme',
+		PHP_URL_HOST     => 'host',
+		PHP_URL_PORT     => 'port',
+		PHP_URL_USER     => 'user',
+		PHP_URL_PASS     => 'pass',
+		PHP_URL_PATH     => 'path',
+		PHP_URL_QUERY    => 'query',
+		PHP_URL_FRAGMENT => 'fragment',
+	);
+
+	if ( isset( $translation[ $constant ] ) ) {
+		return $translation[ $constant ];
+	} else {
+		return false;
+	}
 }
diff --git a/wp-includes/js/autosave.js b/wp-includes/js/autosave.js
index b5a8c6c0e..e88943d6d 100644
--- a/wp-includes/js/autosave.js
+++ b/wp-includes/js/autosave.js
@@ -315,7 +315,8 @@ window.autosave = function() {
 				var content, post_title, excerpt, $notice,
 					postData = getSavedPostData(),
 					cookie = wpCookies.get( 'wp-saving-post' ),
-					$newerAutosaveNotice = $( '#has-newer-autosave' ).parent( '.notice' );
+					$newerAutosaveNotice = $( '#has-newer-autosave' ).parent( '.notice' ),
+					$headerEnd = $( '.wp-header-end' );
 
 				if ( cookie === post_id + '-saved' ) {
 					wpCookies.remove( 'wp-saving-post' );
@@ -338,8 +339,16 @@ window.autosave = function() {
 					return;
 				}
 
+				/*
+				 * If '.wp-header-end' is found, append the notices after it otherwise
+				 * after the first h1 or h2 heading found within the main content.
+				 */
+				if ( ! $headerEnd.length ) {
+					$headerEnd = $( '.wrap h1, .wrap h2' ).first();
+				}
+
 				$notice = $( '#local-storage-notice' )
-					.insertAfter( $( '.wrap h1, .wrap h2' ).first() )
+					.insertAfter( $headerEnd )
 					.addClass( 'notice-warning' );
 
 				if ( $newerAutosaveNotice.length ) {
diff --git a/wp-includes/js/autosave.min.js b/wp-includes/js/autosave.min.js
index f4a01657e..f88edf4bf 100644
--- a/wp-includes/js/autosave.min.js
+++ b/wp-includes/js/autosave.min.js
@@ -1 +1 @@
-window.autosave=function(){return!0},function(a,b){function c(){function c(b){var c,d,e,f=(new Date).getTime(),h=[],i=g();return i&&i.isDirty()&&!i.isHidden()&&f-3e3>k&&(i.save(),k=f),e={post_id:a("#post_ID").val()||0,post_type:a("#post_type").val()||"",post_author:a("#post_author").val()||"",post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""},"local"===b?e:(a('input[id^="in-category-"]:checked').each(function(){h.push(this.value)}),e.catslist=h.join(","),(c=a("#post_name").val())&&(e.post_name=c),(d=a("#parent_id").val())&&(e.parent_id=d),a("#comment_status").prop("checked")&&(e.comment_status="open"),a("#ping_status").prop("checked")&&(e.ping_status="open"),"1"===a("#auto_draft").val()&&(e.auto_draft="1"),e)}function d(b){return"object"==typeof b?(b.post_title||"")+"::"+(b.content||"")+"::"+(b.excerpt||""):(a("#title").val()||"")+"::"+(a("#content").val()||"")+"::"+(a("#excerpt").val()||"")}function e(){l.trigger("autosave-disable-buttons"),setTimeout(f,5e3)}function f(){l.trigger("autosave-enable-buttons")}function g(){return"undefined"!=typeof tinymce&&tinymce.get("content")}function h(){function e(){var a=Math.random().toString(),c=!1;try{b.sessionStorage.setItem("wp-test",a),c=b.sessionStorage.getItem("wp-test")===a,b.sessionStorage.removeItem("wp-test")}catch(d){}return v=c,c}function f(){var a=!1;return v&&t&&(a=sessionStorage.getItem("wp-autosave-"+t),a=a?JSON.parse(a):{}),a}function h(a){var b;return!(!v||!t)&&(b="wp-autosave-"+t,sessionStorage.setItem(b,JSON.stringify(a)),null!==sessionStorage.getItem(b))}function i(){var a=f();return!(!a||!u)&&(a["post_"+u]||!1)}function k(a){var b=f();if(!b||!u)return!1;if(a)b["post_"+u]=a;else{if(!b.hasOwnProperty("post_"+u))return!1;delete b["post_"+u]}return h(b)}function m(){y=!0}function n(){y=!1}function o(b){var e,f,g=!1;return!(y||!v)&&(b?(e=i()||{},a.extend(e,b)):e=c("local"),f=d(e),"undefined"==typeof x&&(x=j),f!==x&&(e.save_time=(new Date).getTime(),e.status=a("#post_status").val()||"",g=k(e),g&&(x=f),g))}function p(){u=a("#post_ID").val()||0,a("#wp-content-wrap").hasClass("tmce-active")?l.on("tinymce-editor-init.autosave",function(){b.setTimeout(function(){r()},1500)}):r(),w=b.setInterval(o,15e3),a("form#post").on("submit.autosave-local",function(){var c=g(),d=a("#post_ID").val()||0;c&&!c.isHidden()?c.on("submit",function(){o({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""})}):o({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""});var e="https:"===b.location.protocol;wpCookies.set("wp-saving-post",d+"-check",86400,!1,!1,e)})}function q(a,b){function c(a){return a.toString().replace(/[\x20\t\r\n\f]+/g,"")}return c(a||"")===c(b||"")}function r(){var b,c,d,e,f=i(),g=wpCookies.get("wp-saving-post"),h=a("#has-newer-autosave").parent(".notice");return g===u+"-saved"?(wpCookies.remove("wp-saving-post"),void k(!1)):void(f&&(b=a("#content").val()||"",c=a("#title").val()||"",d=a("#excerpt").val()||"",q(b,f.content)&&q(c,f.post_title)&&q(d,f.excerpt)||(e=a("#local-storage-notice").insertAfter(a(".wrap h1, .wrap h2").first()).addClass("notice-warning"),h.length?h.slideUp(150,function(){e.slideDown(150)}):e.slideDown(200),e.find(".restore-backup").on("click.autosave-local",function(){s(f),e.fadeTo(250,0,function(){e.slideUp(150)})}))))}function s(b){var c;return!!b&&(x=d(b),a("#title").val()!==b.post_title&&a("#title").focus().val(b.post_title||""),a("#excerpt").val(b.excerpt||""),c=g(),c&&!c.isHidden()&&"undefined"!=typeof switchEditors?(c.settings.wpautop&&b.content&&(b.content=switchEditors.wpautop(b.content)),c.undoManager.transact(function(){c.setContent(b.content||""),c.nodeChanged()})):(a("#content-html").click(),a("#content").focus(),document.execCommand("selectAll"),document.execCommand("insertText",!1,b.content||"")),!0)}var t,u,v,w,x,y=!1;return t="undefined"!=typeof b.autosaveL10n&&b.autosaveL10n.blog_id,e()&&t&&(a("#content").length||a("#excerpt").length)&&l.ready(p),{hasStorage:v,getSavedPostData:i,save:o,suspend:m,resume:n}}function i(){function g(){q=!0,b.clearTimeout(r),r=b.setTimeout(function(){q=!1},1e4)}function h(){v=!0}function i(){v=!1}function k(b){p(),q=!1,t=s,s="",l.trigger("after-autosave",[b]),f(),b.success&&a("#auto_draft").val("")}function m(){u=0,wp.heartbeat.connectNow()}function n(){return d()!==j}function o(){var f,h;return!(v||q||!b.autosave())&&(!((new Date).getTime()<u)&&(f=c(),h=d(f),"undefined"==typeof t&&(t=j),h!==t&&(s=h,g(),e(),l.trigger("wpcountwords",[f.content]).trigger("before-autosave",[f]),f._wpnonce=a("#_wpnonce").val()||"",f)))}function p(){u=(new Date).getTime()+1e3*autosaveL10n.autosaveInterval||6e4}var q,r,s,t,u=0,v=!1;return l.on("heartbeat-send.autosave",function(a,b){var c=o();c&&(b.wp_autosave=c)}).on("heartbeat-tick.autosave",function(a,b){b.wp_autosave&&k(b.wp_autosave)}).on("heartbeat-connection-lost.autosave",function(b,c,d){if("timeout"===c||603===d){var f=a("#lost-connection-notice");wp.autosave.local.hasStorage||f.find(".hide-if-no-sessionstorage").hide(),f.show(),e()}}).on("heartbeat-connection-restored.autosave",function(){a("#lost-connection-notice").hide(),f()}).ready(function(){p()}),{tempBlockSave:g,triggerSave:m,postChanged:n,suspend:h,resume:i}}var j,k=0,l=a(document);return l.on("tinymce-editor-init.autosave",function(a,c){"content"===c.id&&b.setTimeout(function(){c.save(),j=d()},1e3)}).ready(function(){j=d()}),{getPostData:c,getCompareString:d,disableButtons:e,enableButtons:f,local:h(),server:i()}}b.wp=b.wp||{},b.wp.autosave=c()}(jQuery,window);
\ No newline at end of file
+window.autosave=function(){return!0},function(a,b){function c(){function c(b){var c,d,e,f=(new Date).getTime(),h=[],i=g();return i&&i.isDirty()&&!i.isHidden()&&f-3e3>k&&(i.save(),k=f),e={post_id:a("#post_ID").val()||0,post_type:a("#post_type").val()||"",post_author:a("#post_author").val()||"",post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""},"local"===b?e:(a('input[id^="in-category-"]:checked').each(function(){h.push(this.value)}),e.catslist=h.join(","),(c=a("#post_name").val())&&(e.post_name=c),(d=a("#parent_id").val())&&(e.parent_id=d),a("#comment_status").prop("checked")&&(e.comment_status="open"),a("#ping_status").prop("checked")&&(e.ping_status="open"),"1"===a("#auto_draft").val()&&(e.auto_draft="1"),e)}function d(b){return"object"==typeof b?(b.post_title||"")+"::"+(b.content||"")+"::"+(b.excerpt||""):(a("#title").val()||"")+"::"+(a("#content").val()||"")+"::"+(a("#excerpt").val()||"")}function e(){l.trigger("autosave-disable-buttons"),setTimeout(f,5e3)}function f(){l.trigger("autosave-enable-buttons")}function g(){return"undefined"!=typeof tinymce&&tinymce.get("content")}function h(){function e(){var a=Math.random().toString(),c=!1;try{b.sessionStorage.setItem("wp-test",a),c=b.sessionStorage.getItem("wp-test")===a,b.sessionStorage.removeItem("wp-test")}catch(d){}return v=c,c}function f(){var a=!1;return v&&t&&(a=sessionStorage.getItem("wp-autosave-"+t),a=a?JSON.parse(a):{}),a}function h(a){var b;return!(!v||!t)&&(b="wp-autosave-"+t,sessionStorage.setItem(b,JSON.stringify(a)),null!==sessionStorage.getItem(b))}function i(){var a=f();return!(!a||!u)&&(a["post_"+u]||!1)}function k(a){var b=f();if(!b||!u)return!1;if(a)b["post_"+u]=a;else{if(!b.hasOwnProperty("post_"+u))return!1;delete b["post_"+u]}return h(b)}function m(){y=!0}function n(){y=!1}function o(b){var e,f,g=!1;return!(y||!v)&&(b?(e=i()||{},a.extend(e,b)):e=c("local"),f=d(e),"undefined"==typeof x&&(x=j),f!==x&&(e.save_time=(new Date).getTime(),e.status=a("#post_status").val()||"",g=k(e),g&&(x=f),g))}function p(){u=a("#post_ID").val()||0,a("#wp-content-wrap").hasClass("tmce-active")?l.on("tinymce-editor-init.autosave",function(){b.setTimeout(function(){r()},1500)}):r(),w=b.setInterval(o,15e3),a("form#post").on("submit.autosave-local",function(){var c=g(),d=a("#post_ID").val()||0;c&&!c.isHidden()?c.on("submit",function(){o({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""})}):o({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""});var e="https:"===b.location.protocol;wpCookies.set("wp-saving-post",d+"-check",86400,!1,!1,e)})}function q(a,b){function c(a){return a.toString().replace(/[\x20\t\r\n\f]+/g,"")}return c(a||"")===c(b||"")}function r(){var b,c,d,e,f=i(),g=wpCookies.get("wp-saving-post"),h=a("#has-newer-autosave").parent(".notice"),j=a(".wp-header-end");return g===u+"-saved"?(wpCookies.remove("wp-saving-post"),void k(!1)):void(f&&(b=a("#content").val()||"",c=a("#title").val()||"",d=a("#excerpt").val()||"",q(b,f.content)&&q(c,f.post_title)&&q(d,f.excerpt)||(j.length||(j=a(".wrap h1, .wrap h2").first()),e=a("#local-storage-notice").insertAfter(j).addClass("notice-warning"),h.length?h.slideUp(150,function(){e.slideDown(150)}):e.slideDown(200),e.find(".restore-backup").on("click.autosave-local",function(){s(f),e.fadeTo(250,0,function(){e.slideUp(150)})}))))}function s(b){var c;return!!b&&(x=d(b),a("#title").val()!==b.post_title&&a("#title").focus().val(b.post_title||""),a("#excerpt").val(b.excerpt||""),c=g(),c&&!c.isHidden()&&"undefined"!=typeof switchEditors?(c.settings.wpautop&&b.content&&(b.content=switchEditors.wpautop(b.content)),c.undoManager.transact(function(){c.setContent(b.content||""),c.nodeChanged()})):(a("#content-html").click(),a("#content").focus(),document.execCommand("selectAll"),document.execCommand("insertText",!1,b.content||"")),!0)}var t,u,v,w,x,y=!1;return t="undefined"!=typeof b.autosaveL10n&&b.autosaveL10n.blog_id,e()&&t&&(a("#content").length||a("#excerpt").length)&&l.ready(p),{hasStorage:v,getSavedPostData:i,save:o,suspend:m,resume:n}}function i(){function g(){q=!0,b.clearTimeout(r),r=b.setTimeout(function(){q=!1},1e4)}function h(){v=!0}function i(){v=!1}function k(b){p(),q=!1,t=s,s="",l.trigger("after-autosave",[b]),f(),b.success&&a("#auto_draft").val("")}function m(){u=0,wp.heartbeat.connectNow()}function n(){return d()!==j}function o(){var f,h;return!(v||q||!b.autosave())&&(!((new Date).getTime()<u)&&(f=c(),h=d(f),"undefined"==typeof t&&(t=j),h!==t&&(s=h,g(),e(),l.trigger("wpcountwords",[f.content]).trigger("before-autosave",[f]),f._wpnonce=a("#_wpnonce").val()||"",f)))}function p(){u=(new Date).getTime()+1e3*autosaveL10n.autosaveInterval||6e4}var q,r,s,t,u=0,v=!1;return l.on("heartbeat-send.autosave",function(a,b){var c=o();c&&(b.wp_autosave=c)}).on("heartbeat-tick.autosave",function(a,b){b.wp_autosave&&k(b.wp_autosave)}).on("heartbeat-connection-lost.autosave",function(b,c,d){if("timeout"===c||603===d){var f=a("#lost-connection-notice");wp.autosave.local.hasStorage||f.find(".hide-if-no-sessionstorage").hide(),f.show(),e()}}).on("heartbeat-connection-restored.autosave",function(){a("#lost-connection-notice").hide(),f()}).ready(function(){p()}),{tempBlockSave:g,triggerSave:m,postChanged:n,suspend:h,resume:i}}var j,k=0,l=a(document);return l.on("tinymce-editor-init.autosave",function(a,c){"content"===c.id&&b.setTimeout(function(){c.save(),j=d()},1e3)}).ready(function(){j=d()}),{getPostData:c,getCompareString:d,disableButtons:e,enableButtons:f,local:h(),server:i()}}b.wp=b.wp||{},b.wp.autosave=c()}(jQuery,window);
\ No newline at end of file
diff --git a/wp-includes/js/customize-base.js b/wp-includes/js/customize-base.js
index e59f92659..a1528de4f 100644
--- a/wp-includes/js/customize-base.js
+++ b/wp-includes/js/customize-base.js
@@ -165,7 +165,7 @@ window.wp = window.wp || {};
 	/**
 	 * Observable values that support two-way binding.
 	 *
-	 * @constuctor
+	 * @constructor
 	 */
 	api.Value = api.Class.extend({
 		/**
@@ -304,7 +304,7 @@ window.wp = window.wp || {};
 	/**
 	 * A collection of observable values.
 	 *
-	 * @constuctor
+	 * @constructor
 	 * @augments wp.customize.Class
 	 * @mixes wp.customize.Events
 	 */
@@ -520,7 +520,7 @@ window.wp = window.wp || {};
 	 *
 	 * Handles inputs, selects, and textareas by default.
 	 *
-	 * @constuctor
+	 * @constructor
 	 * @augments wp.customize.Value
 	 * @augments wp.customize.Class
 	 */
@@ -617,7 +617,7 @@ window.wp = window.wp || {};
 	/**
 	 * A communicator for sending data from one window to another over postMessage.
 	 *
-	 * @constuctor
+	 * @constructor
 	 * @augments wp.customize.Class
 	 * @mixes wp.customize.Events
 	 */
@@ -637,22 +637,25 @@ window.wp = window.wp || {};
 		/**
 		 * Initialize Messenger.
 		 *
-		 * @param  {object} params        Parameters to configure the messenger.
-		 *         {string} .url          The URL to communicate with.
-		 *         {window} .targetWindow The window instance to communicate with. Default window.parent.
-		 *         {string} .channel      If provided, will send the channel with each message and only accept messages a matching channel.
-		 * @param  {object} options       Extend any instance parameter or method with this object.
+		 * @param  {object} params - Parameters to configure the messenger.
+		 *         {string} params.url - The URL to communicate with.
+		 *         {window} params.targetWindow - The window instance to communicate with. Default window.parent.
+		 *         {string} params.channel - If provided, will send the channel with each message and only accept messages a matching channel.
+		 * @param  {object} options - Extend any instance parameter or method with this object.
 		 */
 		initialize: function( params, options ) {
 			// Target the parent frame by default, but only if a parent frame exists.
-			var defaultTarget = window.parent == window ? null : window.parent;
+			var defaultTarget = window.parent === window ? null : window.parent;
 
 			$.extend( this, options || {} );
 
 			this.add( 'channel', params.channel );
 			this.add( 'url', params.url || '' );
 			this.add( 'origin', this.url() ).link( this.url ).setter( function( to ) {
-				return to.replace( /([^:]+:\/\/[^\/]+).*/, '$1' );
+				var urlParser = document.createElement( 'a' );
+				urlParser.href = to;
+				// Port stripping needed by IE since it adds to host but not to event.origin.
+				return urlParser.protocol + '//' + urlParser.host.replace( /:80$/, '' );
 			});
 
 			// first add with no value
@@ -762,18 +765,30 @@ window.wp = window.wp || {};
 	 * @augments wp.customize.Class
 	 * @since 4.6.0
 	 *
-	 * @param {string} code                The error code.
-	 * @param {object} params              Params.
-	 * @param {string} params.message      The error message.
-	 * @param {string} [params.type=error] The notification type.
-	 * @param {*}      [params.data]       Any additional data.
+	 * @param {string}  code - The error code.
+	 * @param {object}  params - Params.
+	 * @param {string}  params.message=null - The error message.
+	 * @param {string}  [params.type=error] - The notification type.
+	 * @param {boolean} [params.fromServer=false] - Whether the notification was server-sent.
+	 * @param {string}  [params.setting=null] - The setting ID that the notification is related to.
+	 * @param {*}       [params.data=null] - Any additional data.
 	 */
 	api.Notification = api.Class.extend({
 		initialize: function( code, params ) {
+			var _params;
 			this.code = code;
-			this.message = params.message;
-			this.type = params.type || 'error';
-			this.data = params.data || null;
+			_params = _.extend(
+				{
+					message: null,
+					type: 'error',
+					fromServer: false,
+					data: null,
+					setting: null
+				},
+				params
+			);
+			delete _params.code;
+			_.extend( this, _params );
 		}
 	});
 
@@ -795,6 +810,40 @@ window.wp = window.wp || {};
 		return result;
 	};
 
+	/**
+	 * Utility function namespace
+	 */
+	api.utils = {};
+
+	/**
+	 * Parse query string.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param {string} queryString Query string.
+	 * @returns {object} Parsed query string.
+	 */
+	api.utils.parseQueryString = function parseQueryString( queryString ) {
+		var queryParams = {};
+		_.each( queryString.split( '&' ), function( pair ) {
+			var parts, key, value;
+			parts = pair.split( '=', 2 );
+			if ( ! parts[0] ) {
+				return;
+			}
+			key = decodeURIComponent( parts[0].replace( /\+/g, ' ' ) );
+			key = key.replace( / /g, '_' ); // What PHP does.
+			if ( _.isUndefined( parts[1] ) ) {
+				value = null;
+			} else {
+				value = decodeURIComponent( parts[1].replace( /\+/g, ' ' ) );
+			}
+			queryParams[ key ] = value;
+		} );
+		return queryParams;
+	};
+
 	// Expose the API publicly on window.wp.customize
 	exports.customize = api;
 })( wp, jQuery );
diff --git a/wp-includes/js/customize-base.min.js b/wp-includes/js/customize-base.min.js
index ba6e4acb1..0a2ce9ff0 100644
--- a/wp-includes/js/customize-base.min.js
+++ b/wp-includes/js/customize-base.min.js
@@ -1 +1 @@
-window.wp=window.wp||{},function(a,b){var c,d,e={},f=Array.prototype.slice;c=function(){},d=function(a,d,e){var f;return f=d&&d.hasOwnProperty("constructor")?d.constructor:function(){var b=a.apply(this,arguments);return b},b.extend(f,a),c.prototype=a.prototype,f.prototype=new c,d&&b.extend(f.prototype,d),e&&b.extend(f,e),f.prototype.constructor=f,f.__super__=a.prototype,f},e.Class=function(a,c,d){var f,g=arguments;return a&&c&&e.Class.applicator===a&&(g=c,b.extend(this,d||{})),f=this,this.instance&&(f=function(){return f.instance.apply(f,arguments)},b.extend(f,this)),f.initialize.apply(f,g),f},e.Class.extend=function(a,b){var c=d(this,a,b);return c.extend=this.extend,c},e.Class.applicator={},e.Class.prototype.initialize=function(){},e.Class.prototype.extended=function(a){for(var b=this;"undefined"!=typeof b.constructor;){if(b.constructor===a)return!0;if("undefined"==typeof b.constructor.__super__)return!1;b=b.constructor.__super__}return!1},e.Events={trigger:function(a){return this.topics&&this.topics[a]&&this.topics[a].fireWith(this,f.call(arguments,1)),this},bind:function(a){return this.topics=this.topics||{},this.topics[a]=this.topics[a]||b.Callbacks(),this.topics[a].add.apply(this.topics[a],f.call(arguments,1)),this},unbind:function(a){return this.topics&&this.topics[a]&&this.topics[a].remove.apply(this.topics[a],f.call(arguments,1)),this}},e.Value=e.Class.extend({initialize:function(a,c){this._value=a,this.callbacks=b.Callbacks(),this._dirty=!1,b.extend(this,c||{}),this.set=b.proxy(this.set,this)},instance:function(){return arguments.length?this.set.apply(this,arguments):this.get()},get:function(){return this._value},set:function(a){var b=this._value;return a=this._setter.apply(this,arguments),a=this.validate(a),null===a||_.isEqual(b,a)?this:(this._value=a,this._dirty=!0,this.callbacks.fireWith(this,[a,b]),this)},_setter:function(a){return a},setter:function(a){var b=this.get();return this._setter=a,this._value=null,this.set(b),this},resetSetter:function(){return this._setter=this.constructor.prototype._setter,this.set(this.get()),this},validate:function(a){return a},bind:function(){return this.callbacks.add.apply(this.callbacks,arguments),this},unbind:function(){return this.callbacks.remove.apply(this.callbacks,arguments),this},link:function(){var a=this.set;return b.each(arguments,function(){this.bind(a)}),this},unlink:function(){var a=this.set;return b.each(arguments,function(){this.unbind(a)}),this},sync:function(){var a=this;return b.each(arguments,function(){a.link(this),this.link(a)}),this},unsync:function(){var a=this;return b.each(arguments,function(){a.unlink(this),this.unlink(a)}),this}}),e.Values=e.Class.extend({defaultConstructor:e.Value,initialize:function(a){b.extend(this,a||{}),this._value={},this._deferreds={}},instance:function(a){return 1===arguments.length?this.value(a):this.when.apply(this,arguments)},value:function(a){return this._value[a]},has:function(a){return"undefined"!=typeof this._value[a]},add:function(a,b){return this.has(a)?this.value(a):(this._value[a]=b,b.parent=this,b.extended(e.Value)&&b.bind(this._change),this.trigger("add",b),this._deferreds[a]&&this._deferreds[a].resolve(),this._value[a])},create:function(a){return this.add(a,new this.defaultConstructor(e.Class.applicator,f.call(arguments,1)))},each:function(a,c){c="undefined"==typeof c?this:c,b.each(this._value,function(b,d){a.call(c,d,b)})},remove:function(a){var b;this.has(a)&&(b=this.value(a),this.trigger("remove",b),b.extended(e.Value)&&b.unbind(this._change),delete b.parent),delete this._value[a],delete this._deferreds[a]},when:function(){var a=this,c=f.call(arguments),d=b.Deferred();return b.isFunction(c[c.length-1])&&d.done(c.pop()),b.when.apply(b,b.map(c,function(c){if(!a.has(c))return a._deferreds[c]=a._deferreds[c]||b.Deferred()})).done(function(){var e=b.map(c,function(b){return a(b)});return e.length!==c.length?void a.when.apply(a,c).done(function(){d.resolveWith(a,e)}):void d.resolveWith(a,e)}),d.promise()},_change:function(){this.parent.trigger("change",this)}}),b.extend(e.Values.prototype,e.Events),e.ensure=function(a){return"string"==typeof a?b(a):a},e.Element=e.Value.extend({initialize:function(a,c){var d,f,g,h=this,i=e.Element.synchronizer.html;this.element=e.ensure(a),this.events="",this.element.is("input, select, textarea")&&(this.events+="change",i=e.Element.synchronizer.val,this.element.is("input")?(d=this.element.prop("type"),e.Element.synchronizer[d]&&(i=e.Element.synchronizer[d]),"text"===d||"password"===d?this.events+=" keyup":"range"===d&&(this.events+=" input propertychange")):this.element.is("textarea")&&(this.events+=" keyup")),e.Value.prototype.initialize.call(this,null,b.extend(c||{},i)),this._value=this.get(),f=this.update,g=this.refresh,this.update=function(a){a!==g.call(h)&&f.apply(this,arguments)},this.refresh=function(){h.set(g.call(h))},this.bind(this.update),this.element.bind(this.events,this.refresh)},find:function(a){return b(a,this.element)},refresh:function(){},update:function(){}}),e.Element.synchronizer={},b.each(["html","val"],function(a,b){e.Element.synchronizer[b]={update:function(a){this.element[b](a)},refresh:function(){return this.element[b]()}}}),e.Element.synchronizer.checkbox={update:function(a){this.element.prop("checked",a)},refresh:function(){return this.element.prop("checked")}},e.Element.synchronizer.radio={update:function(a){this.element.filter(function(){return this.value===a}).prop("checked",!0)},refresh:function(){return this.element.filter(":checked").val()}},b.support.postMessage=!!window.postMessage,e.Messenger=e.Class.extend({add:function(a,b,c){return this[a]=new e.Value(b,c)},initialize:function(a,c){var d=window.parent==window?null:window.parent;b.extend(this,c||{}),this.add("channel",a.channel),this.add("url",a.url||""),this.add("origin",this.url()).link(this.url).setter(function(a){return a.replace(/([^:]+:\/\/[^\/]+).*/,"$1")}),this.add("targetWindow",null),this.targetWindow.set=function(a){var b=this._value;return a=this._setter.apply(this,arguments),a=this.validate(a),null===a||b===a?this:(this._value=a,this._dirty=!0,this.callbacks.fireWith(this,[a,b]),this)},this.targetWindow(a.targetWindow||d),this.receive=b.proxy(this.receive,this),this.receive.guid=b.guid++,b(window).on("message",this.receive)},destroy:function(){b(window).off("message",this.receive)},receive:function(a){var b;a=a.originalEvent,this.targetWindow&&this.targetWindow()&&(this.origin()&&a.origin!==this.origin()||"string"==typeof a.data&&"{"===a.data[0]&&(b=JSON.parse(a.data),b&&b.id&&"undefined"!=typeof b.data&&((b.channel||this.channel())&&this.channel()!==b.channel||this.trigger(b.id,b.data))))},send:function(a,b){var c;b="undefined"==typeof b?null:b,this.url()&&this.targetWindow()&&(c={id:a,data:b},this.channel()&&(c.channel=this.channel()),this.targetWindow().postMessage(JSON.stringify(c),this.origin()))}}),b.extend(e.Messenger.prototype,e.Events),e.Notification=e.Class.extend({initialize:function(a,b){this.code=a,this.message=b.message,this.type=b.type||"error",this.data=b.data||null}}),e=b.extend(new e.Values,e),e.get=function(){var a={};return this.each(function(b,c){a[c]=b.get()}),a},a.customize=e}(wp,jQuery);
\ No newline at end of file
+window.wp=window.wp||{},function(a,b){var c,d,e={},f=Array.prototype.slice;c=function(){},d=function(a,d,e){var f;return f=d&&d.hasOwnProperty("constructor")?d.constructor:function(){var b=a.apply(this,arguments);return b},b.extend(f,a),c.prototype=a.prototype,f.prototype=new c,d&&b.extend(f.prototype,d),e&&b.extend(f,e),f.prototype.constructor=f,f.__super__=a.prototype,f},e.Class=function(a,c,d){var f,g=arguments;return a&&c&&e.Class.applicator===a&&(g=c,b.extend(this,d||{})),f=this,this.instance&&(f=function(){return f.instance.apply(f,arguments)},b.extend(f,this)),f.initialize.apply(f,g),f},e.Class.extend=function(a,b){var c=d(this,a,b);return c.extend=this.extend,c},e.Class.applicator={},e.Class.prototype.initialize=function(){},e.Class.prototype.extended=function(a){for(var b=this;"undefined"!=typeof b.constructor;){if(b.constructor===a)return!0;if("undefined"==typeof b.constructor.__super__)return!1;b=b.constructor.__super__}return!1},e.Events={trigger:function(a){return this.topics&&this.topics[a]&&this.topics[a].fireWith(this,f.call(arguments,1)),this},bind:function(a){return this.topics=this.topics||{},this.topics[a]=this.topics[a]||b.Callbacks(),this.topics[a].add.apply(this.topics[a],f.call(arguments,1)),this},unbind:function(a){return this.topics&&this.topics[a]&&this.topics[a].remove.apply(this.topics[a],f.call(arguments,1)),this}},e.Value=e.Class.extend({initialize:function(a,c){this._value=a,this.callbacks=b.Callbacks(),this._dirty=!1,b.extend(this,c||{}),this.set=b.proxy(this.set,this)},instance:function(){return arguments.length?this.set.apply(this,arguments):this.get()},get:function(){return this._value},set:function(a){var b=this._value;return a=this._setter.apply(this,arguments),a=this.validate(a),null===a||_.isEqual(b,a)?this:(this._value=a,this._dirty=!0,this.callbacks.fireWith(this,[a,b]),this)},_setter:function(a){return a},setter:function(a){var b=this.get();return this._setter=a,this._value=null,this.set(b),this},resetSetter:function(){return this._setter=this.constructor.prototype._setter,this.set(this.get()),this},validate:function(a){return a},bind:function(){return this.callbacks.add.apply(this.callbacks,arguments),this},unbind:function(){return this.callbacks.remove.apply(this.callbacks,arguments),this},link:function(){var a=this.set;return b.each(arguments,function(){this.bind(a)}),this},unlink:function(){var a=this.set;return b.each(arguments,function(){this.unbind(a)}),this},sync:function(){var a=this;return b.each(arguments,function(){a.link(this),this.link(a)}),this},unsync:function(){var a=this;return b.each(arguments,function(){a.unlink(this),this.unlink(a)}),this}}),e.Values=e.Class.extend({defaultConstructor:e.Value,initialize:function(a){b.extend(this,a||{}),this._value={},this._deferreds={}},instance:function(a){return 1===arguments.length?this.value(a):this.when.apply(this,arguments)},value:function(a){return this._value[a]},has:function(a){return"undefined"!=typeof this._value[a]},add:function(a,b){return this.has(a)?this.value(a):(this._value[a]=b,b.parent=this,b.extended(e.Value)&&b.bind(this._change),this.trigger("add",b),this._deferreds[a]&&this._deferreds[a].resolve(),this._value[a])},create:function(a){return this.add(a,new this.defaultConstructor(e.Class.applicator,f.call(arguments,1)))},each:function(a,c){c="undefined"==typeof c?this:c,b.each(this._value,function(b,d){a.call(c,d,b)})},remove:function(a){var b;this.has(a)&&(b=this.value(a),this.trigger("remove",b),b.extended(e.Value)&&b.unbind(this._change),delete b.parent),delete this._value[a],delete this._deferreds[a]},when:function(){var a=this,c=f.call(arguments),d=b.Deferred();return b.isFunction(c[c.length-1])&&d.done(c.pop()),b.when.apply(b,b.map(c,function(c){if(!a.has(c))return a._deferreds[c]=a._deferreds[c]||b.Deferred()})).done(function(){var e=b.map(c,function(b){return a(b)});return e.length!==c.length?void a.when.apply(a,c).done(function(){d.resolveWith(a,e)}):void d.resolveWith(a,e)}),d.promise()},_change:function(){this.parent.trigger("change",this)}}),b.extend(e.Values.prototype,e.Events),e.ensure=function(a){return"string"==typeof a?b(a):a},e.Element=e.Value.extend({initialize:function(a,c){var d,f,g,h=this,i=e.Element.synchronizer.html;this.element=e.ensure(a),this.events="",this.element.is("input, select, textarea")&&(this.events+="change",i=e.Element.synchronizer.val,this.element.is("input")?(d=this.element.prop("type"),e.Element.synchronizer[d]&&(i=e.Element.synchronizer[d]),"text"===d||"password"===d?this.events+=" keyup":"range"===d&&(this.events+=" input propertychange")):this.element.is("textarea")&&(this.events+=" keyup")),e.Value.prototype.initialize.call(this,null,b.extend(c||{},i)),this._value=this.get(),f=this.update,g=this.refresh,this.update=function(a){a!==g.call(h)&&f.apply(this,arguments)},this.refresh=function(){h.set(g.call(h))},this.bind(this.update),this.element.bind(this.events,this.refresh)},find:function(a){return b(a,this.element)},refresh:function(){},update:function(){}}),e.Element.synchronizer={},b.each(["html","val"],function(a,b){e.Element.synchronizer[b]={update:function(a){this.element[b](a)},refresh:function(){return this.element[b]()}}}),e.Element.synchronizer.checkbox={update:function(a){this.element.prop("checked",a)},refresh:function(){return this.element.prop("checked")}},e.Element.synchronizer.radio={update:function(a){this.element.filter(function(){return this.value===a}).prop("checked",!0)},refresh:function(){return this.element.filter(":checked").val()}},b.support.postMessage=!!window.postMessage,e.Messenger=e.Class.extend({add:function(a,b,c){return this[a]=new e.Value(b,c)},initialize:function(a,c){var d=window.parent===window?null:window.parent;b.extend(this,c||{}),this.add("channel",a.channel),this.add("url",a.url||""),this.add("origin",this.url()).link(this.url).setter(function(a){var b=document.createElement("a");return b.href=a,b.protocol+"//"+b.host.replace(/:80$/,"")}),this.add("targetWindow",null),this.targetWindow.set=function(a){var b=this._value;return a=this._setter.apply(this,arguments),a=this.validate(a),null===a||b===a?this:(this._value=a,this._dirty=!0,this.callbacks.fireWith(this,[a,b]),this)},this.targetWindow(a.targetWindow||d),this.receive=b.proxy(this.receive,this),this.receive.guid=b.guid++,b(window).on("message",this.receive)},destroy:function(){b(window).off("message",this.receive)},receive:function(a){var b;a=a.originalEvent,this.targetWindow&&this.targetWindow()&&(this.origin()&&a.origin!==this.origin()||"string"==typeof a.data&&"{"===a.data[0]&&(b=JSON.parse(a.data),b&&b.id&&"undefined"!=typeof b.data&&((b.channel||this.channel())&&this.channel()!==b.channel||this.trigger(b.id,b.data))))},send:function(a,b){var c;b="undefined"==typeof b?null:b,this.url()&&this.targetWindow()&&(c={id:a,data:b},this.channel()&&(c.channel=this.channel()),this.targetWindow().postMessage(JSON.stringify(c),this.origin()))}}),b.extend(e.Messenger.prototype,e.Events),e.Notification=e.Class.extend({initialize:function(a,b){var c;this.code=a,c=_.extend({message:null,type:"error",fromServer:!1,data:null,setting:null},b),delete c.code,_.extend(this,c)}}),e=b.extend(new e.Values,e),e.get=function(){var a={};return this.each(function(b,c){a[c]=b.get()}),a},e.utils={},e.utils.parseQueryString=function(a){var b={};return _.each(a.split("&"),function(a){var c,d,e;c=a.split("=",2),c[0]&&(d=decodeURIComponent(c[0].replace(/\+/g," ")),d=d.replace(/ /g,"_"),e=_.isUndefined(c[1])?null:decodeURIComponent(c[1].replace(/\+/g," ")),b[d]=e)}),b},a.customize=e}(wp,jQuery);
\ No newline at end of file
diff --git a/wp-includes/js/customize-loader.js b/wp-includes/js/customize-loader.js
index e7b411df3..1990d1a24 100644
--- a/wp-includes/js/customize-loader.js
+++ b/wp-includes/js/customize-loader.js
@@ -132,6 +132,19 @@ window.wp = window.wp || {};
 				targetWindow: this.iframe[0].contentWindow
 			});
 
+			// Expose the changeset UUID on the parent window's URL so that the customized state can survive a refresh.
+			if ( history.replaceState ) {
+				this.messenger.bind( 'changeset-uuid', function( changesetUuid ) {
+					var urlParser = document.createElement( 'a' );
+					urlParser.href = location.href;
+					urlParser.search = $.param( _.extend(
+						api.utils.parseQueryString( urlParser.search.substr( 1 ) ),
+						{ changeset_uuid: changesetUuid }
+					) );
+					history.replaceState( { customize: urlParser.href }, '', urlParser.href );
+				} );
+			}
+
 			// Wait for the connection from the iframe before sending any postMessage events.
 			this.messenger.bind( 'ready', function() {
 				Loader.messenger.send( 'back' );
@@ -183,11 +196,11 @@ window.wp = window.wp || {};
 		 * Callback after the Customizer has been opened.
 		 */
 		opened: function() {
-			Loader.body.addClass( 'customize-active full-overlay-active' );
+			Loader.body.addClass( 'customize-active full-overlay-active' ).attr( 'aria-busy', 'true' );
 		},
 
 		/**
-		 * Close the Customizer overlay and return focus to the link that opened it.
+		 * Close the Customizer overlay.
 		 */
 		close: function() {
 			if ( ! this.active ) {
@@ -209,11 +222,6 @@ window.wp = window.wp || {};
 			if ( this.originalDocumentTitle ) {
 				document.title = this.originalDocumentTitle;
 			}
-
-			// Return focus to link that was originally clicked.
-			if ( this.link ) {
-				this.link.focus();
-			}
 		},
 
 		/**
@@ -227,13 +235,20 @@ window.wp = window.wp || {};
 			Loader.saved     = null;
 			Loader.body.removeClass( 'customize-active full-overlay-active' ).removeClass( 'customize-loading' );
 			$( window ).off( 'beforeunload', Loader.beforeunload );
+			/*
+			 * Return focus to the link that opened the Customizer overlay after
+			 * the body element visibility is restored.
+			 */
+			if ( Loader.link ) {
+				Loader.link.focus();
+			}
 		},
 
 		/**
 		 * Callback for the `load` event on the Customizer iframe.
 		 */
 		loaded: function() {
-			Loader.body.removeClass('customize-loading');
+			Loader.body.removeClass( 'customize-loading' ).attr( 'aria-busy', 'false' );
 		},
 
 		/**
diff --git a/wp-includes/js/customize-loader.min.js b/wp-includes/js/customize-loader.min.js
index c4a05134c..1f09e05a2 100644
--- a/wp-includes/js/customize-loader.min.js
+++ b/wp-includes/js/customize-loader.min.js
@@ -1 +1 @@
-window.wp=window.wp||{},function(a,b){var c,d=wp.customize;b.extend(b.support,{history:!(!window.history||!history.pushState),hashchange:"onhashchange"in window&&(void 0===document.documentMode||document.documentMode>7)}),c=b.extend({},d.Events,{initialize:function(){this.body=b(document.body),c.settings&&b.support.postMessage&&(b.support.cors||!c.settings.isCrossDomain)&&(this.window=b(window),this.element=b('<div id="customize-container" />').appendTo(this.body),this.bind("open",this.overlay.show),this.bind("close",this.overlay.hide),b("#wpbody").on("click",".load-customize",function(a){a.preventDefault(),c.link=b(this),c.open(c.link.attr("href"))}),b.support.history&&this.window.on("popstate",c.popstate),b.support.hashchange&&(this.window.on("hashchange",c.hashchange),this.window.triggerHandler("hashchange")))},popstate:function(a){var b=a.originalEvent.state;b&&b.customize?c.open(b.customize):c.active&&c.close()},hashchange:function(){var a=window.location.toString().split("#")[1];a&&0===a.indexOf("wp_customize=on")&&c.open(c.settings.url+"?"+a),a||b.support.history||c.close()},beforeunload:function(){if(!c.saved())return c.settings.l10n.saveAlert},open:function(a){if(!this.active){if(c.settings.browser.mobile)return window.location=a;this.originalDocumentTitle=document.title,this.active=!0,this.body.addClass("customize-loading"),this.saved=new d.Value((!0)),this.iframe=b("<iframe />",{src:a,title:c.settings.l10n.mainIframeTitle}).appendTo(this.element),this.iframe.one("load",this.loaded),this.messenger=new d.Messenger({url:a,channel:"loader",targetWindow:this.iframe[0].contentWindow}),this.messenger.bind("ready",function(){c.messenger.send("back")}),this.messenger.bind("close",function(){b.support.history?history.back():b.support.hashchange?window.location.hash="":c.close()}),b(window).on("beforeunload",this.beforeunload),this.messenger.bind("saved",function(){c.saved(!0)}),this.messenger.bind("change",function(){c.saved(!1)}),this.messenger.bind("title",function(a){window.document.title=a}),this.pushState(a),this.trigger("open")}},pushState:function(a){var c=a.split("?")[1];b.support.history&&window.location.href!==a?history.pushState({customize:a},"",a):!b.support.history&&b.support.hashchange&&c&&(window.location.hash="wp_customize=on&"+c),this.trigger("open")},opened:function(){c.body.addClass("customize-active full-overlay-active")},close:function(){if(this.active){if(!this.saved()&&!confirm(c.settings.l10n.saveAlert))return void history.forward();this.active=!1,this.trigger("close"),this.originalDocumentTitle&&(document.title=this.originalDocumentTitle),this.link&&this.link.focus()}},closed:function(){c.iframe.remove(),c.messenger.destroy(),c.iframe=null,c.messenger=null,c.saved=null,c.body.removeClass("customize-active full-overlay-active").removeClass("customize-loading"),b(window).off("beforeunload",c.beforeunload)},loaded:function(){c.body.removeClass("customize-loading")},overlay:{show:function(){this.element.fadeIn(200,c.opened)},hide:function(){this.element.fadeOut(200,c.closed)}}}),b(function(){c.settings=_wpCustomizeLoaderSettings,c.initialize()}),d.Loader=c}(wp,jQuery);
\ No newline at end of file
+window.wp=window.wp||{},function(a,b){var c,d=wp.customize;b.extend(b.support,{history:!(!window.history||!history.pushState),hashchange:"onhashchange"in window&&(void 0===document.documentMode||document.documentMode>7)}),c=b.extend({},d.Events,{initialize:function(){this.body=b(document.body),c.settings&&b.support.postMessage&&(b.support.cors||!c.settings.isCrossDomain)&&(this.window=b(window),this.element=b('<div id="customize-container" />').appendTo(this.body),this.bind("open",this.overlay.show),this.bind("close",this.overlay.hide),b("#wpbody").on("click",".load-customize",function(a){a.preventDefault(),c.link=b(this),c.open(c.link.attr("href"))}),b.support.history&&this.window.on("popstate",c.popstate),b.support.hashchange&&(this.window.on("hashchange",c.hashchange),this.window.triggerHandler("hashchange")))},popstate:function(a){var b=a.originalEvent.state;b&&b.customize?c.open(b.customize):c.active&&c.close()},hashchange:function(){var a=window.location.toString().split("#")[1];a&&0===a.indexOf("wp_customize=on")&&c.open(c.settings.url+"?"+a),a||b.support.history||c.close()},beforeunload:function(){if(!c.saved())return c.settings.l10n.saveAlert},open:function(a){if(!this.active){if(c.settings.browser.mobile)return window.location=a;this.originalDocumentTitle=document.title,this.active=!0,this.body.addClass("customize-loading"),this.saved=new d.Value(!0),this.iframe=b("<iframe />",{src:a,title:c.settings.l10n.mainIframeTitle}).appendTo(this.element),this.iframe.one("load",this.loaded),this.messenger=new d.Messenger({url:a,channel:"loader",targetWindow:this.iframe[0].contentWindow}),history.replaceState&&this.messenger.bind("changeset-uuid",function(a){var c=document.createElement("a");c.href=location.href,c.search=b.param(_.extend(d.utils.parseQueryString(c.search.substr(1)),{changeset_uuid:a})),history.replaceState({customize:c.href},"",c.href)}),this.messenger.bind("ready",function(){c.messenger.send("back")}),this.messenger.bind("close",function(){b.support.history?history.back():b.support.hashchange?window.location.hash="":c.close()}),b(window).on("beforeunload",this.beforeunload),this.messenger.bind("saved",function(){c.saved(!0)}),this.messenger.bind("change",function(){c.saved(!1)}),this.messenger.bind("title",function(a){window.document.title=a}),this.pushState(a),this.trigger("open")}},pushState:function(a){var c=a.split("?")[1];b.support.history&&window.location.href!==a?history.pushState({customize:a},"",a):!b.support.history&&b.support.hashchange&&c&&(window.location.hash="wp_customize=on&"+c),this.trigger("open")},opened:function(){c.body.addClass("customize-active full-overlay-active").attr("aria-busy","true")},close:function(){if(this.active){if(!this.saved()&&!confirm(c.settings.l10n.saveAlert))return void history.forward();this.active=!1,this.trigger("close"),this.originalDocumentTitle&&(document.title=this.originalDocumentTitle)}},closed:function(){c.iframe.remove(),c.messenger.destroy(),c.iframe=null,c.messenger=null,c.saved=null,c.body.removeClass("customize-active full-overlay-active").removeClass("customize-loading"),b(window).off("beforeunload",c.beforeunload),c.link&&c.link.focus()},loaded:function(){c.body.removeClass("customize-loading").attr("aria-busy","false")},overlay:{show:function(){this.element.fadeIn(200,c.opened)},hide:function(){this.element.fadeOut(200,c.closed)}}}),b(function(){c.settings=_wpCustomizeLoaderSettings,c.initialize()}),d.Loader=c}(wp,jQuery);
\ No newline at end of file
diff --git a/wp-includes/js/customize-preview-nav-menus.js b/wp-includes/js/customize-preview-nav-menus.js
index bd42f5e08..27c525107 100644
--- a/wp-includes/js/customize-preview-nav-menus.js
+++ b/wp-includes/js/customize-preview-nav-menus.js
@@ -15,7 +15,19 @@ wp.customize.navMenusPreview = wp.customize.MenusCustomizerPreview = ( function(
 	 * Initialize nav menus preview.
 	 */
 	self.init = function() {
-		var self = this;
+		var self = this, synced = false;
+
+		/*
+		 * Keep track of whether we synced to determine whether or not bindSettingListener
+		 * should also initially fire the listener. This initial firing needs to wait until
+		 * after all of the settings have been synced from the pane in order to prevent
+		 * an infinite selective fallback-refresh. Note that this sync handler will be
+		 * added after the sync handler in customize-preview.js, so it will be triggered
+		 * after all of the settings are added.
+		 */
+		api.preview.bind( 'sync', function() {
+			synced = true;
+		} );
 
 		if ( api.selectiveRefresh ) {
 			// Listen for changes to settings related to nav menus.
@@ -23,7 +35,17 @@ wp.customize.navMenusPreview = wp.customize.MenusCustomizerPreview = ( function(
 				self.bindSettingListener( setting );
 			} );
 			api.bind( 'add', function( setting ) {
-				self.bindSettingListener( setting, { fire: true } );
+
+				/*
+				 * Handle case where an invalid nav menu item (one for which its associated object has been deleted)
+				 * is synced from the controls into the preview. Since invalid nav menu items are filtered out from
+				 * being exported to the frontend by the _is_valid_nav_menu_item filter in wp_get_nav_menu_items(),
+				 * the customizer controls will have a nav_menu_item setting where the preview will have none, and
+				 * this can trigger an infinite fallback refresh when the nav menu item lacks any valid items.
+				 */
+				if ( setting.get() && ! setting.get()._invalid ) {
+					self.bindSettingListener( setting, { fire: synced } );
+				}
 			} );
 			api.bind( 'remove', function( setting ) {
 				self.unbindSettingListener( setting );
@@ -106,7 +128,7 @@ wp.customize.navMenusPreview = wp.customize.MenusCustomizerPreview = ( function(
 			 * @returns {boolean}
 			 */
 			isRelatedSetting: function( setting, newValue, oldValue ) {
-				var partial = this, navMenuLocationSetting, navMenuId, isNavMenuItemSetting;
+				var partial = this, navMenuLocationSetting, navMenuId, isNavMenuItemSetting, _newValue, _oldValue, urlParser;
 				if ( _.isString( setting ) ) {
 					setting = api( setting );
 				}
@@ -123,9 +145,29 @@ wp.customize.navMenusPreview = wp.customize.MenusCustomizerPreview = ( function(
 				 */
 				isNavMenuItemSetting = /^nav_menu_item\[/.test( setting.id );
 				if ( isNavMenuItemSetting && _.isObject( newValue ) && _.isObject( oldValue ) ) {
-					delete newValue.type_label;
-					delete oldValue.type_label;
-					if ( _.isEqual( oldValue, newValue ) ) {
+					_newValue = _.clone( newValue );
+					_oldValue = _.clone( oldValue );
+					delete _newValue.type_label;
+					delete _oldValue.type_label;
+
+					// Normalize URL scheme when parent frame is HTTPS to prevent selective refresh upon initial page load.
+					if ( 'https' === api.preview.scheme.get() ) {
+						urlParser = document.createElement( 'a' );
+						urlParser.href = _newValue.url;
+						urlParser.protocol = 'https:';
+						_newValue.url = urlParser.href;
+						urlParser.href = _oldValue.url;
+						urlParser.protocol = 'https:';
+						_oldValue.url = urlParser.href;
+					}
+
+					// Prevent original_title differences from causing refreshes if title is present.
+					if ( newValue.title ) {
+						delete _oldValue.original_title;
+						delete _newValue.original_title;
+					}
+
+					if ( _.isEqual( _oldValue, _newValue ) ) {
 						return false;
 					}
 				}
@@ -365,6 +407,11 @@ wp.customize.navMenusPreview = wp.customize.MenusCustomizerPreview = ( function(
 	self.highlightControls = function() {
 		var selector = '.menu-item';
 
+		// Skip adding highlights if not in the customizer preview iframe.
+		if ( ! api.settings.channel ) {
+			return;
+		}
+
 		// Focus on the menu item control when shift+clicking the menu item.
 		$( document ).on( 'click', selector, function( e ) {
 			var navMenuItemParts;
diff --git a/wp-includes/js/customize-preview-nav-menus.min.js b/wp-includes/js/customize-preview-nav-menus.min.js
index e321da166..6cbdd0ea4 100644
--- a/wp-includes/js/customize-preview-nav-menus.min.js
+++ b/wp-includes/js/customize-preview-nav-menus.min.js
@@ -1 +1 @@
-wp.customize.navMenusPreview=wp.customize.MenusCustomizerPreview=function(a,b,c,d){"use strict";var e={data:{navMenuInstanceArgs:{}}};return"undefined"!=typeof _wpCustomizePreviewNavMenusExports&&b.extend(e.data,_wpCustomizePreviewNavMenusExports),e.init=function(){var a=this;d.selectiveRefresh&&(d.each(function(b){a.bindSettingListener(b)}),d.bind("add",function(b){a.bindSettingListener(b,{fire:!0})}),d.bind("remove",function(b){a.unbindSettingListener(b)}),d.selectiveRefresh.bind("render-partials-response",function(c){c.nav_menu_instance_args&&b.extend(a.data.navMenuInstanceArgs,c.nav_menu_instance_args)})),d.preview.bind("active",function(){a.highlightControls()})},d.selectiveRefresh&&(e.NavMenuInstancePartial=d.selectiveRefresh.Partial.extend({initialize:function(a,c){var e,f,g=this;if(e=a.match(/^nav_menu_instance\[([0-9a-f]{32})]$/),!e)throw new Error("Illegal id for nav_menu_instance partial. The key corresponds with the args HMAC.");if(f=e[1],c=c||{},c.params=b.extend({selector:'[data-customize-partial-id="'+a+'"]',navMenuArgs:c.constructingContainerContext||{},containerInclusive:!0},c.params||{}),d.selectiveRefresh.Partial.prototype.initialize.call(g,a,c),!b.isObject(g.params.navMenuArgs))throw new Error("Missing navMenuArgs");if(g.params.navMenuArgs.args_hmac!==f)throw new Error("args_hmac mismatch with id")},isRelatedSetting:function(a,c,e){var f,g,h,i=this;if(b.isString(a)&&(a=d(a)),h=/^nav_menu_item\[/.test(a.id),h&&b.isObject(c)&&b.isObject(e)&&(delete c.type_label,delete e.type_label,b.isEqual(e,c)))return!1;if(i.params.navMenuArgs.theme_location){if("nav_menu_locations["+i.params.navMenuArgs.theme_location+"]"===a.id)return!0;f=d("nav_menu_locations["+i.params.navMenuArgs.theme_location+"]")}return g=i.params.navMenuArgs.menu,!g&&f&&(g=f()),!!g&&("nav_menu["+g+"]"===a.id||h&&(c&&c.nav_menu_term_id===g||e&&e.nav_menu_term_id===g))},refresh:function(){var c,e=this,f=a.Deferred();return b.isNumber(e.params.navMenuArgs.menu)?c=e.params.navMenuArgs.menu:e.params.navMenuArgs.theme_location&&d.has("nav_menu_locations["+e.params.navMenuArgs.theme_location+"]")&&(c=d("nav_menu_locations["+e.params.navMenuArgs.theme_location+"]").get()),c?d.selectiveRefresh.Partial.prototype.refresh.call(e):(e.fallback(),f.reject(),f.promise())},renderContent:function(b){var c=this,e=b.container;""===b.addedContent&&b.partial.fallback(),d.selectiveRefresh.Partial.prototype.renderContent.call(c,b)&&a(document).trigger("customize-preview-menu-refreshed",[{instanceNumber:null,wpNavArgs:b.context,wpNavMenuArgs:b.context,oldContainer:e,newContainer:b.container}])}}),d.selectiveRefresh.partialConstructor.nav_menu_instance=e.NavMenuInstancePartial,e.handleUnplacedNavMenuInstances=function(a){var c;return c=b.filter(b.values(e.data.navMenuInstanceArgs),function(a){return!d.selectiveRefresh.partial.has("nav_menu_instance["+a.args_hmac+"]")}),!!b.findWhere(c,a)&&(d.selectiveRefresh.requestFullRefresh(),!0)},e.bindSettingListener=function(a,b){var c;return b=b||{},(c=a.id.match(/^nav_menu\[(-?\d+)]$/))?(a._navMenuId=parseInt(c[1],10),a.bind(this.onChangeNavMenuSetting),b.fire&&this.onChangeNavMenuSetting.call(a,a(),!1),!0):(c=a.id.match(/^nav_menu_item\[(-?\d+)]$/))?(a._navMenuItemId=parseInt(c[1],10),a.bind(this.onChangeNavMenuItemSetting),b.fire&&this.onChangeNavMenuItemSetting.call(a,a(),!1),!0):(c=a.id.match(/^nav_menu_locations\[(.+?)]/),!!c&&(a._navMenuThemeLocation=c[1],a.bind(this.onChangeNavMenuLocationsSetting),b.fire&&this.onChangeNavMenuLocationsSetting.call(a,a(),!1),!0))},e.unbindSettingListener=function(a){a.unbind(this.onChangeNavMenuSetting),a.unbind(this.onChangeNavMenuItemSetting),a.unbind(this.onChangeNavMenuLocationsSetting)},e.onChangeNavMenuSetting=function(){var a=this;e.handleUnplacedNavMenuInstances({menu:a._navMenuId}),d.each(function(b){b._navMenuThemeLocation&&a._navMenuId===b()&&e.handleUnplacedNavMenuInstances({theme_location:b._navMenuThemeLocation})})},e.onChangeNavMenuItemSetting=function(a,b){var c,f=a||b;c=d("nav_menu["+String(f.nav_menu_term_id)+"]"),c&&e.onChangeNavMenuSetting.call(c)},e.onChangeNavMenuLocationsSetting=function(){var a,c=this;e.handleUnplacedNavMenuInstances({theme_location:c._navMenuThemeLocation}),a=!!b.findWhere(b.values(e.data.navMenuInstanceArgs),{theme_location:c._navMenuThemeLocation}),a||d.selectiveRefresh.requestFullRefresh()}),e.highlightControls=function(){var b=".menu-item";a(document).on("click",b,function(b){var c;b.shiftKey&&(c=a(this).attr("class").match(/(?:^|\s)menu-item-(\d+)(?:\s|$)/),c&&(b.preventDefault(),b.stopPropagation(),d.preview.send("focus-nav-menu-item-control",parseInt(c[1],10))))})},d.bind("preview-ready",function(){e.init()}),e}(jQuery,_,wp,wp.customize);
\ No newline at end of file
+wp.customize.navMenusPreview=wp.customize.MenusCustomizerPreview=function(a,b,c,d){"use strict";var e={data:{navMenuInstanceArgs:{}}};return"undefined"!=typeof _wpCustomizePreviewNavMenusExports&&b.extend(e.data,_wpCustomizePreviewNavMenusExports),e.init=function(){var a=this,c=!1;d.preview.bind("sync",function(){c=!0}),d.selectiveRefresh&&(d.each(function(b){a.bindSettingListener(b)}),d.bind("add",function(b){b.get()&&!b.get()._invalid&&a.bindSettingListener(b,{fire:c})}),d.bind("remove",function(b){a.unbindSettingListener(b)}),d.selectiveRefresh.bind("render-partials-response",function(c){c.nav_menu_instance_args&&b.extend(a.data.navMenuInstanceArgs,c.nav_menu_instance_args)})),d.preview.bind("active",function(){a.highlightControls()})},d.selectiveRefresh&&(e.NavMenuInstancePartial=d.selectiveRefresh.Partial.extend({initialize:function(a,c){var e,f,g=this;if(e=a.match(/^nav_menu_instance\[([0-9a-f]{32})]$/),!e)throw new Error("Illegal id for nav_menu_instance partial. The key corresponds with the args HMAC.");if(f=e[1],c=c||{},c.params=b.extend({selector:'[data-customize-partial-id="'+a+'"]',navMenuArgs:c.constructingContainerContext||{},containerInclusive:!0},c.params||{}),d.selectiveRefresh.Partial.prototype.initialize.call(g,a,c),!b.isObject(g.params.navMenuArgs))throw new Error("Missing navMenuArgs");if(g.params.navMenuArgs.args_hmac!==f)throw new Error("args_hmac mismatch with id")},isRelatedSetting:function(a,c,e){var f,g,h,i,j,k,l=this;if(b.isString(a)&&(a=d(a)),h=/^nav_menu_item\[/.test(a.id),h&&b.isObject(c)&&b.isObject(e)&&(i=b.clone(c),j=b.clone(e),delete i.type_label,delete j.type_label,"https"===d.preview.scheme.get()&&(k=document.createElement("a"),k.href=i.url,k.protocol="https:",i.url=k.href,k.href=j.url,k.protocol="https:",j.url=k.href),c.title&&(delete j.original_title,delete i.original_title),b.isEqual(j,i)))return!1;if(l.params.navMenuArgs.theme_location){if("nav_menu_locations["+l.params.navMenuArgs.theme_location+"]"===a.id)return!0;f=d("nav_menu_locations["+l.params.navMenuArgs.theme_location+"]")}return g=l.params.navMenuArgs.menu,!g&&f&&(g=f()),!!g&&("nav_menu["+g+"]"===a.id||h&&(c&&c.nav_menu_term_id===g||e&&e.nav_menu_term_id===g))},refresh:function(){var c,e=this,f=a.Deferred();return b.isNumber(e.params.navMenuArgs.menu)?c=e.params.navMenuArgs.menu:e.params.navMenuArgs.theme_location&&d.has("nav_menu_locations["+e.params.navMenuArgs.theme_location+"]")&&(c=d("nav_menu_locations["+e.params.navMenuArgs.theme_location+"]").get()),c?d.selectiveRefresh.Partial.prototype.refresh.call(e):(e.fallback(),f.reject(),f.promise())},renderContent:function(b){var c=this,e=b.container;""===b.addedContent&&b.partial.fallback(),d.selectiveRefresh.Partial.prototype.renderContent.call(c,b)&&a(document).trigger("customize-preview-menu-refreshed",[{instanceNumber:null,wpNavArgs:b.context,wpNavMenuArgs:b.context,oldContainer:e,newContainer:b.container}])}}),d.selectiveRefresh.partialConstructor.nav_menu_instance=e.NavMenuInstancePartial,e.handleUnplacedNavMenuInstances=function(a){var c;return c=b.filter(b.values(e.data.navMenuInstanceArgs),function(a){return!d.selectiveRefresh.partial.has("nav_menu_instance["+a.args_hmac+"]")}),!!b.findWhere(c,a)&&(d.selectiveRefresh.requestFullRefresh(),!0)},e.bindSettingListener=function(a,b){var c;return b=b||{},(c=a.id.match(/^nav_menu\[(-?\d+)]$/))?(a._navMenuId=parseInt(c[1],10),a.bind(this.onChangeNavMenuSetting),b.fire&&this.onChangeNavMenuSetting.call(a,a(),!1),!0):(c=a.id.match(/^nav_menu_item\[(-?\d+)]$/))?(a._navMenuItemId=parseInt(c[1],10),a.bind(this.onChangeNavMenuItemSetting),b.fire&&this.onChangeNavMenuItemSetting.call(a,a(),!1),!0):(c=a.id.match(/^nav_menu_locations\[(.+?)]/),!!c&&(a._navMenuThemeLocation=c[1],a.bind(this.onChangeNavMenuLocationsSetting),b.fire&&this.onChangeNavMenuLocationsSetting.call(a,a(),!1),!0))},e.unbindSettingListener=function(a){a.unbind(this.onChangeNavMenuSetting),a.unbind(this.onChangeNavMenuItemSetting),a.unbind(this.onChangeNavMenuLocationsSetting)},e.onChangeNavMenuSetting=function(){var a=this;e.handleUnplacedNavMenuInstances({menu:a._navMenuId}),d.each(function(b){b._navMenuThemeLocation&&a._navMenuId===b()&&e.handleUnplacedNavMenuInstances({theme_location:b._navMenuThemeLocation})})},e.onChangeNavMenuItemSetting=function(a,b){var c,f=a||b;c=d("nav_menu["+String(f.nav_menu_term_id)+"]"),c&&e.onChangeNavMenuSetting.call(c)},e.onChangeNavMenuLocationsSetting=function(){var a,c=this;e.handleUnplacedNavMenuInstances({theme_location:c._navMenuThemeLocation}),a=!!b.findWhere(b.values(e.data.navMenuInstanceArgs),{theme_location:c._navMenuThemeLocation}),a||d.selectiveRefresh.requestFullRefresh()}),e.highlightControls=function(){var b=".menu-item";d.settings.channel&&a(document).on("click",b,function(b){var c;b.shiftKey&&(c=a(this).attr("class").match(/(?:^|\s)menu-item-(\d+)(?:\s|$)/),c&&(b.preventDefault(),b.stopPropagation(),d.preview.send("focus-nav-menu-item-control",parseInt(c[1],10))))})},d.bind("preview-ready",function(){e.init()}),e}(jQuery,_,wp,wp.customize);
\ No newline at end of file
diff --git a/wp-includes/js/customize-preview-widgets.js b/wp-includes/js/customize-preview-widgets.js
index 47972784f..6c05e8943 100644
--- a/wp-includes/js/customize-preview-widgets.js
+++ b/wp-includes/js/customize-preview-widgets.js
@@ -357,7 +357,6 @@ wp.customize.widgetsPreview = wp.customize.WidgetCustomizerPreview = (function(
 				widgetPartial = new self.WidgetPartial( partialId, {
 					params: {}
 				} );
-				api.selectiveRefresh.partial.add( widgetPartial.id, widgetPartial );
 			}
 
 			// Make sure that there is a container element for the widget in the sidebar, if at least a placeholder.
@@ -400,6 +399,8 @@ wp.customize.widgetsPreview = wp.customize.WidgetCustomizerPreview = (function(
 				wasInserted = true;
 			} );
 
+			api.selectiveRefresh.partial.add( widgetPartial.id, widgetPartial );
+
 			if ( wasInserted ) {
 				sidebarPartial.reflowWidgets();
 			}
@@ -537,7 +538,9 @@ wp.customize.widgetsPreview = wp.customize.WidgetCustomizerPreview = (function(
 			// Remove class names that incorporate the string formatting placeholders %1$s and %2$s.
 			widgetClasses = widgetClasses.replace( /\S*%[12]\$s\S*/g, '' );
 			widgetClasses = widgetClasses.replace( /^\s+|\s+$/g, '' );
-			widgetSelector += '.' + widgetClasses.split( /\s+/ ).join( '.' );
+			if ( widgetClasses ) {
+				widgetSelector += '.' + widgetClasses.split( /\s+/ ).join( '.' );
+			}
 			self.widgetSelectors.push( widgetSelector );
 		});
 	};
@@ -570,6 +573,11 @@ wp.customize.widgetsPreview = wp.customize.WidgetCustomizerPreview = (function(
 		var self = this,
 			selector = this.widgetSelectors.join( ',' );
 
+		// Skip adding highlights if not in the customizer preview iframe.
+		if ( ! api.settings.channel ) {
+			return;
+		}
+
 		$( selector ).attr( 'title', this.l10n.widgetTooltip );
 
 		$( document ).on( 'mouseenter', selector, function() {
diff --git a/wp-includes/js/customize-preview-widgets.min.js b/wp-includes/js/customize-preview-widgets.min.js
index 8a8e2bb7d..567dafc72 100644
--- a/wp-includes/js/customize-preview-widgets.min.js
+++ b/wp-includes/js/customize-preview-widgets.min.js
@@ -1 +1 @@
-wp.customize.widgetsPreview=wp.customize.WidgetCustomizerPreview=function(a,b,c,d){var e;return e={renderedSidebars:{},renderedWidgets:{},registeredSidebars:[],registeredWidgets:{},widgetSelectors:[],preview:null,l10n:{widgetTooltip:""},selectiveRefreshableWidgets:{}},e.init=function(){var a=this;a.preview=d.preview,b.isEmpty(a.selectiveRefreshableWidgets)||a.addPartials(),a.buildWidgetSelectors(),a.highlightControls(),a.preview.bind("highlight-widget",a.highlightWidget),d.preview.bind("active",function(){a.highlightControls()})},e.WidgetPartial=d.selectiveRefresh.Partial.extend({initialize:function(a,c){var f,g=this;if(f=a.match(/^widget\[(.+)]$/),!f)throw new Error("Illegal id for widget partial.");g.widgetId=f[1],g.widgetIdParts=e.parseWidgetId(g.widgetId),c=c||{},c.params=b.extend({settings:[e.getWidgetSettingId(g.widgetId)],containerInclusive:!0},c.params||{}),d.selectiveRefresh.Partial.prototype.initialize.call(g,a,c)},refresh:function(){var b,c=this;return e.selectiveRefreshableWidgets[c.widgetIdParts.idBase]?d.selectiveRefresh.Partial.prototype.refresh.call(c):(b=a.Deferred(),b.reject(),c.fallback(),b.promise())},renderContent:function(a){var b=this;d.selectiveRefresh.Partial.prototype.renderContent.call(b,a)&&(d.preview.send("widget-updated",b.widgetId),d.selectiveRefresh.trigger("widget-updated",b))}}),e.SidebarPartial=d.selectiveRefresh.Partial.extend({initialize:function(a,c){var e,f=this;if(e=a.match(/^sidebar\[(.+)]$/),!e)throw new Error("Illegal id for sidebar partial.");if(f.sidebarId=e[1],c=c||{},c.params=b.extend({settings:["sidebars_widgets["+f.sidebarId+"]"]},c.params||{}),d.selectiveRefresh.Partial.prototype.initialize.call(f,a,c),!f.params.sidebarArgs)throw new Error("The sidebarArgs param was not provided.");if(f.params.settings.length>1)throw new Error("Expected SidebarPartial to only have one associated setting")},ready:function(){var a=this;b.each(a.settings(),function(c){d(c).bind(b.bind(a.handleSettingChange,a))}),d.selectiveRefresh.bind("partial-content-rendered",function(c){var f=c.partial.extended(e.WidgetPartial)&&-1!==b.indexOf(a.getWidgetIds(),c.partial.widgetId);f&&d.selectiveRefresh.trigger("sidebar-updated",a)}),d.bind("change",function(c){var d,f;f=e.parseWidgetSettingId(c.id),f&&(d=f.idBase,f.number&&(d+="-"+String(f.number)),-1!==b.indexOf(a.getWidgetIds(),d)&&a.ensureWidgetPlacementContainers(d))})},findDynamicSidebarBoundaryNodes:function(){var a,c,d=this,e={};return a=/^(dynamic_sidebar_before|dynamic_sidebar_after):(.+):(\d+)$/,c=function(f){b.each(f,function(f){var g;if(8===f.nodeType){if(g=f.nodeValue.match(a),!g||g[2]!==d.sidebarId)return;b.isUndefined(e[g[3]])&&(e[g[3]]={before:null,after:null,instanceNumber:parseInt(g[3],10)}),"dynamic_sidebar_before"===g[1]?e[g[3]].before=f:e[g[3]].after=f}else 1===f.nodeType&&c(f.childNodes)})},c(document.body.childNodes),b.values(e)},placements:function(){var a=this;return b.map(a.findDynamicSidebarBoundaryNodes(),function(b){return new d.selectiveRefresh.Placement({partial:a,container:null,startNode:b.before,endNode:b.after,context:{instanceNumber:b.instanceNumber}})})},getWidgetIds:function(){var a,c,e=this;if(a=e.settings()[0],!a)throw new Error("Missing associated setting.");if(!d.has(a))throw new Error("Setting does not exist.");if(c=d(a).get(),!b.isArray(c))throw new Error("Expected setting to be array of widget IDs");return c.slice(0)},reflowWidgets:function(){var a,c,e,f=this,g=[];return c=f.getWidgetIds(),a=f.placements(),e={},b.each(c,function(a){var b=d.selectiveRefresh.partial("widget["+a+"]");b&&(e[a]=b)}),b.each(a,function(a){var c,f=[],h=!1,i=-1;b.each(e,function(d){b.each(d.placements(),function(b){a.context.instanceNumber===b.context.sidebar_instance_number&&(c=b.container.index(),f.push({partial:d,placement:b,position:c}),c<i&&(h=!0),i=c)})}),h&&(b.each(f,function(b){a.endNode.parentNode.insertBefore(b.placement.container[0],a.endNode),d.selectiveRefresh.trigger("partial-content-moved",b.placement)}),g.push(a))}),g.length>0&&d.selectiveRefresh.trigger("sidebar-updated",f),g},ensureWidgetPlacementContainers:function(c){var f,g=this,h=!1,i="widget["+c+"]";return f=d.selectiveRefresh.partial(i),f||(f=new e.WidgetPartial(i,{params:{}}),d.selectiveRefresh.partial.add(f.id,f)),b.each(g.placements(),function(d){var e,i;e=b.find(f.placements(),function(a){return a.context.sidebar_instance_number===d.context.instanceNumber}),e||(i=a(g.params.sidebarArgs.before_widget.replace(/%1\$s/g,c).replace(/%2\$s/g,"widget")+g.params.sidebarArgs.after_widget),i[0]&&(i.attr("data-customize-partial-id",f.id),i.attr("data-customize-partial-type","widget"),i.attr("data-customize-widget-id",c),i.data("customize-partial-placement-context",{sidebar_id:g.sidebarId,sidebar_instance_number:d.context.instanceNumber}),d.endNode.parentNode.insertBefore(i[0],d.endNode),h=!0))}),h&&g.reflowWidgets(),f},handleSettingChange:function(a,c){var e,f,g,h=this,i=[];return(e=c.length>0&&0===a.length||a.length>0&&0===c.length)?void h.fallback():(f=b.difference(c,a),b.each(f,function(a){var c=d.selectiveRefresh.partial("widget["+a+"]");c&&b.each(c.placements(),function(a){var b=a.context.sidebar_id===h.sidebarId||a.context.sidebar_args&&a.context.sidebar_args.id===h.sidebarId;b&&a.container.remove()})}),g=b.difference(a,c),b.each(g,function(a){var b=h.ensureWidgetPlacementContainers(a);i.push(b)}),b.each(i,function(a){a.refresh()}),void d.selectiveRefresh.trigger("sidebar-updated",h))},refresh:function(){var c=this,e=a.Deferred();return e.fail(function(){c.fallback()}),0===c.placements().length?e.reject():(b.each(c.reflowWidgets(),function(a){d.selectiveRefresh.trigger("partial-content-rendered",a)}),e.resolve()),e.promise()}}),d.selectiveRefresh.partialConstructor.sidebar=e.SidebarPartial,d.selectiveRefresh.partialConstructor.widget=e.WidgetPartial,e.addPartials=function(){b.each(e.registeredSidebars,function(a){var b,c="sidebar["+a.id+"]";b=d.selectiveRefresh.partial(c),b||(b=new e.SidebarPartial(c,{params:{sidebarArgs:a}}),d.selectiveRefresh.partial.add(b.id,b))})},e.buildWidgetSelectors=function(){var b=this;a.each(b.registeredSidebars,function(c,d){var e,f,g,h=[d.before_widget,d.before_title,d.after_title,d.after_widget].join("");e=a(h),f=e.prop("tagName")||"",g=e.prop("className")||"",g&&(g=g.replace(/\S*%[12]\$s\S*/g,""),g=g.replace(/^\s+|\s+$/g,""),f+="."+g.split(/\s+/).join("."),b.widgetSelectors.push(f))})},e.highlightWidget=function(b){var c=a(document.body),d=a("#"+b);c.find(".widget-customizer-highlighted-widget").removeClass("widget-customizer-highlighted-widget"),d.addClass("widget-customizer-highlighted-widget"),setTimeout(function(){d.removeClass("widget-customizer-highlighted-widget")},500)},e.highlightControls=function(){var b=this,c=this.widgetSelectors.join(",");a(c).attr("title",this.l10n.widgetTooltip),a(document).on("mouseenter",c,function(){b.preview.send("highlight-widget-control",a(this).prop("id"))}),a(document).on("click",c,function(c){c.shiftKey&&(c.preventDefault(),b.preview.send("focus-widget-control",a(this).prop("id")))})},e.parseWidgetId=function(a){var b,c={idBase:"",number:null};return b=a.match(/^(.+)-(\d+)$/),b?(c.idBase=b[1],c.number=parseInt(b[2],10)):c.idBase=a,c},e.parseWidgetSettingId=function(a){var b,c={idBase:"",number:null};return(b=a.match(/^widget_([^\[]+?)(?:\[(\d+)])?$/))?(c.idBase=b[1],b[2]&&(c.number=parseInt(b[2],10)),c):null},e.getWidgetSettingId=function(a){var b,c=this.parseWidgetId(a);return b="widget_"+c.idBase,c.number&&(b+="["+String(c.number)+"]"),b},d.bind("preview-ready",function(){a.extend(e,_wpWidgetCustomizerPreviewSettings),e.init()}),e}(jQuery,_,wp,wp.customize);
\ No newline at end of file
+wp.customize.widgetsPreview=wp.customize.WidgetCustomizerPreview=function(a,b,c,d){var e;return e={renderedSidebars:{},renderedWidgets:{},registeredSidebars:[],registeredWidgets:{},widgetSelectors:[],preview:null,l10n:{widgetTooltip:""},selectiveRefreshableWidgets:{}},e.init=function(){var a=this;a.preview=d.preview,b.isEmpty(a.selectiveRefreshableWidgets)||a.addPartials(),a.buildWidgetSelectors(),a.highlightControls(),a.preview.bind("highlight-widget",a.highlightWidget),d.preview.bind("active",function(){a.highlightControls()})},e.WidgetPartial=d.selectiveRefresh.Partial.extend({initialize:function(a,c){var f,g=this;if(f=a.match(/^widget\[(.+)]$/),!f)throw new Error("Illegal id for widget partial.");g.widgetId=f[1],g.widgetIdParts=e.parseWidgetId(g.widgetId),c=c||{},c.params=b.extend({settings:[e.getWidgetSettingId(g.widgetId)],containerInclusive:!0},c.params||{}),d.selectiveRefresh.Partial.prototype.initialize.call(g,a,c)},refresh:function(){var b,c=this;return e.selectiveRefreshableWidgets[c.widgetIdParts.idBase]?d.selectiveRefresh.Partial.prototype.refresh.call(c):(b=a.Deferred(),b.reject(),c.fallback(),b.promise())},renderContent:function(a){var b=this;d.selectiveRefresh.Partial.prototype.renderContent.call(b,a)&&(d.preview.send("widget-updated",b.widgetId),d.selectiveRefresh.trigger("widget-updated",b))}}),e.SidebarPartial=d.selectiveRefresh.Partial.extend({initialize:function(a,c){var e,f=this;if(e=a.match(/^sidebar\[(.+)]$/),!e)throw new Error("Illegal id for sidebar partial.");if(f.sidebarId=e[1],c=c||{},c.params=b.extend({settings:["sidebars_widgets["+f.sidebarId+"]"]},c.params||{}),d.selectiveRefresh.Partial.prototype.initialize.call(f,a,c),!f.params.sidebarArgs)throw new Error("The sidebarArgs param was not provided.");if(f.params.settings.length>1)throw new Error("Expected SidebarPartial to only have one associated setting")},ready:function(){var a=this;b.each(a.settings(),function(c){d(c).bind(b.bind(a.handleSettingChange,a))}),d.selectiveRefresh.bind("partial-content-rendered",function(c){var f=c.partial.extended(e.WidgetPartial)&&-1!==b.indexOf(a.getWidgetIds(),c.partial.widgetId);f&&d.selectiveRefresh.trigger("sidebar-updated",a)}),d.bind("change",function(c){var d,f;f=e.parseWidgetSettingId(c.id),f&&(d=f.idBase,f.number&&(d+="-"+String(f.number)),-1!==b.indexOf(a.getWidgetIds(),d)&&a.ensureWidgetPlacementContainers(d))})},findDynamicSidebarBoundaryNodes:function(){var a,c,d=this,e={};return a=/^(dynamic_sidebar_before|dynamic_sidebar_after):(.+):(\d+)$/,c=function(f){b.each(f,function(f){var g;if(8===f.nodeType){if(g=f.nodeValue.match(a),!g||g[2]!==d.sidebarId)return;b.isUndefined(e[g[3]])&&(e[g[3]]={before:null,after:null,instanceNumber:parseInt(g[3],10)}),"dynamic_sidebar_before"===g[1]?e[g[3]].before=f:e[g[3]].after=f}else 1===f.nodeType&&c(f.childNodes)})},c(document.body.childNodes),b.values(e)},placements:function(){var a=this;return b.map(a.findDynamicSidebarBoundaryNodes(),function(b){return new d.selectiveRefresh.Placement({partial:a,container:null,startNode:b.before,endNode:b.after,context:{instanceNumber:b.instanceNumber}})})},getWidgetIds:function(){var a,c,e=this;if(a=e.settings()[0],!a)throw new Error("Missing associated setting.");if(!d.has(a))throw new Error("Setting does not exist.");if(c=d(a).get(),!b.isArray(c))throw new Error("Expected setting to be array of widget IDs");return c.slice(0)},reflowWidgets:function(){var a,c,e,f=this,g=[];return c=f.getWidgetIds(),a=f.placements(),e={},b.each(c,function(a){var b=d.selectiveRefresh.partial("widget["+a+"]");b&&(e[a]=b)}),b.each(a,function(a){var c,f=[],h=!1,i=-1;b.each(e,function(d){b.each(d.placements(),function(b){a.context.instanceNumber===b.context.sidebar_instance_number&&(c=b.container.index(),f.push({partial:d,placement:b,position:c}),c<i&&(h=!0),i=c)})}),h&&(b.each(f,function(b){a.endNode.parentNode.insertBefore(b.placement.container[0],a.endNode),d.selectiveRefresh.trigger("partial-content-moved",b.placement)}),g.push(a))}),g.length>0&&d.selectiveRefresh.trigger("sidebar-updated",f),g},ensureWidgetPlacementContainers:function(c){var f,g=this,h=!1,i="widget["+c+"]";return f=d.selectiveRefresh.partial(i),f||(f=new e.WidgetPartial(i,{params:{}})),b.each(g.placements(),function(d){var e,i;e=b.find(f.placements(),function(a){return a.context.sidebar_instance_number===d.context.instanceNumber}),e||(i=a(g.params.sidebarArgs.before_widget.replace(/%1\$s/g,c).replace(/%2\$s/g,"widget")+g.params.sidebarArgs.after_widget),i[0]&&(i.attr("data-customize-partial-id",f.id),i.attr("data-customize-partial-type","widget"),i.attr("data-customize-widget-id",c),i.data("customize-partial-placement-context",{sidebar_id:g.sidebarId,sidebar_instance_number:d.context.instanceNumber}),d.endNode.parentNode.insertBefore(i[0],d.endNode),h=!0))}),d.selectiveRefresh.partial.add(f.id,f),h&&g.reflowWidgets(),f},handleSettingChange:function(a,c){var e,f,g,h=this,i=[];return(e=c.length>0&&0===a.length||a.length>0&&0===c.length)?void h.fallback():(f=b.difference(c,a),b.each(f,function(a){var c=d.selectiveRefresh.partial("widget["+a+"]");c&&b.each(c.placements(),function(a){var b=a.context.sidebar_id===h.sidebarId||a.context.sidebar_args&&a.context.sidebar_args.id===h.sidebarId;b&&a.container.remove()})}),g=b.difference(a,c),b.each(g,function(a){var b=h.ensureWidgetPlacementContainers(a);i.push(b)}),b.each(i,function(a){a.refresh()}),void d.selectiveRefresh.trigger("sidebar-updated",h))},refresh:function(){var c=this,e=a.Deferred();return e.fail(function(){c.fallback()}),0===c.placements().length?e.reject():(b.each(c.reflowWidgets(),function(a){d.selectiveRefresh.trigger("partial-content-rendered",a)}),e.resolve()),e.promise()}}),d.selectiveRefresh.partialConstructor.sidebar=e.SidebarPartial,d.selectiveRefresh.partialConstructor.widget=e.WidgetPartial,e.addPartials=function(){b.each(e.registeredSidebars,function(a){var b,c="sidebar["+a.id+"]";b=d.selectiveRefresh.partial(c),b||(b=new e.SidebarPartial(c,{params:{sidebarArgs:a}}),d.selectiveRefresh.partial.add(b.id,b))})},e.buildWidgetSelectors=function(){var b=this;a.each(b.registeredSidebars,function(c,d){var e,f,g,h=[d.before_widget,d.before_title,d.after_title,d.after_widget].join("");e=a(h),f=e.prop("tagName")||"",g=e.prop("className")||"",g&&(g=g.replace(/\S*%[12]\$s\S*/g,""),g=g.replace(/^\s+|\s+$/g,""),g&&(f+="."+g.split(/\s+/).join(".")),b.widgetSelectors.push(f))})},e.highlightWidget=function(b){var c=a(document.body),d=a("#"+b);c.find(".widget-customizer-highlighted-widget").removeClass("widget-customizer-highlighted-widget"),d.addClass("widget-customizer-highlighted-widget"),setTimeout(function(){d.removeClass("widget-customizer-highlighted-widget")},500)},e.highlightControls=function(){var b=this,c=this.widgetSelectors.join(",");d.settings.channel&&(a(c).attr("title",this.l10n.widgetTooltip),a(document).on("mouseenter",c,function(){b.preview.send("highlight-widget-control",a(this).prop("id"))}),a(document).on("click",c,function(c){c.shiftKey&&(c.preventDefault(),b.preview.send("focus-widget-control",a(this).prop("id")))}))},e.parseWidgetId=function(a){var b,c={idBase:"",number:null};return b=a.match(/^(.+)-(\d+)$/),b?(c.idBase=b[1],c.number=parseInt(b[2],10)):c.idBase=a,c},e.parseWidgetSettingId=function(a){var b,c={idBase:"",number:null};return(b=a.match(/^widget_([^\[]+?)(?:\[(\d+)])?$/))?(c.idBase=b[1],b[2]&&(c.number=parseInt(b[2],10)),c):null},e.getWidgetSettingId=function(a){var b,c=this.parseWidgetId(a);return b="widget_"+c.idBase,c.number&&(b+="["+String(c.number)+"]"),b},d.bind("preview-ready",function(){a.extend(e,_wpWidgetCustomizerPreviewSettings),e.init()}),e}(jQuery,_,wp,wp.customize);
\ No newline at end of file
diff --git a/wp-includes/js/customize-preview.js b/wp-includes/js/customize-preview.js
index f5569ed13..a4cb196dc 100644
--- a/wp-includes/js/customize-preview.js
+++ b/wp-includes/js/customize-preview.js
@@ -3,7 +3,68 @@
  */
 (function( exports, $ ){
 	var api = wp.customize,
-		debounce;
+		debounce,
+		currentHistoryState = {};
+
+	/*
+	 * Capture the state that is passed into history.replaceState() and history.pushState()
+	 * and also which is returned in the popstate event so that when the changeset_uuid
+	 * gets updated when transitioning to a new changeset there the current state will
+	 * be supplied in the call to history.replaceState().
+	 */
+	( function( history ) {
+		var injectUrlWithState;
+
+		if ( ! history.replaceState ) {
+			return;
+		}
+
+		/**
+		 * Amend the supplied URL with the customized state.
+		 *
+		 * @since 4.7.0
+		 * @access private
+		 *
+		 * @param {string} url URL.
+		 * @returns {string} URL with customized state.
+		 */
+		injectUrlWithState = function( url ) {
+			var urlParser, oldQueryParams, newQueryParams;
+			urlParser = document.createElement( 'a' );
+			urlParser.href = url;
+			oldQueryParams = api.utils.parseQueryString( location.search.substr( 1 ) );
+			newQueryParams = api.utils.parseQueryString( urlParser.search.substr( 1 ) );
+
+			newQueryParams.customize_changeset_uuid = oldQueryParams.customize_changeset_uuid;
+			if ( oldQueryParams.customize_theme ) {
+				newQueryParams.customize_theme = oldQueryParams.customize_theme;
+			}
+			if ( oldQueryParams.customize_messenger_channel ) {
+				newQueryParams.customize_messenger_channel = oldQueryParams.customize_messenger_channel;
+			}
+			urlParser.search = $.param( newQueryParams );
+			return urlParser.href;
+		};
+
+		history.replaceState = ( function( nativeReplaceState ) {
+			return function historyReplaceState( data, title, url ) {
+				currentHistoryState = data;
+				return nativeReplaceState.call( history, data, title, injectUrlWithState( url ) );
+			};
+		} )( history.replaceState );
+
+		history.pushState = ( function( nativePushState ) {
+			return function historyPushState( data, title, url ) {
+				currentHistoryState = data;
+				return nativePushState.call( history, data, title, injectUrlWithState( url ) );
+			};
+		} )( history.pushState );
+
+		window.addEventListener( 'popstate', function( event ) {
+			currentHistoryState = event.state;
+		} );
+
+	}( history ) );
 
 	/**
 	 * Returns a debounced version of the function.
@@ -37,51 +98,558 @@
 		 * @param {object} options - Extend any instance parameter or method with this object.
 		 */
 		initialize: function( params, options ) {
-			var self = this;
+			var preview = this, urlParser = document.createElement( 'a' );
+
+			api.Messenger.prototype.initialize.call( preview, params, options );
+
+			urlParser.href = preview.origin();
+			preview.add( 'scheme', urlParser.protocol.replace( /:$/, '' ) );
+
+			preview.body = $( document.body );
+			preview.window = $( window );
+
+			if ( api.settings.channel ) {
+
+				// If in an iframe, then intercept the link clicks and form submissions.
+				preview.body.on( 'click.preview', 'a', function( event ) {
+					preview.handleLinkClick( event );
+				} );
+				preview.body.on( 'submit.preview', 'form', function( event ) {
+					preview.handleFormSubmit( event );
+				} );
+
+				preview.window.on( 'scroll.preview', debounce( function() {
+					preview.send( 'scroll', preview.window.scrollTop() );
+				}, 200 ) );
+
+				preview.bind( 'scroll', function( distance ) {
+					preview.window.scrollTop( distance );
+				});
+			}
+		},
+
+		/**
+		 * Handle link clicks in preview.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @param {jQuery.Event} event Event.
+		 */
+		handleLinkClick: function( event ) {
+			var preview = this, link, isInternalJumpLink;
+			link = $( event.target );
+
+			// No-op if the anchor is not a link.
+			if ( _.isUndefined( link.attr( 'href' ) ) ) {
+				return;
+			}
+
+			isInternalJumpLink = ( '#' === link.attr( 'href' ).substr( 0, 1 ) );
 
-			api.Messenger.prototype.initialize.call( this, params, options );
+			// Allow internal jump links to behave normally without preventing default.
+			if ( isInternalJumpLink ) {
+				return;
+			}
 
-			this.body = $( document.body );
-			this.body.on( 'click.preview', 'a', function( event ) {
-				var link, isInternalJumpLink;
-				link = $( this );
-				isInternalJumpLink = ( '#' === link.attr( 'href' ).substr( 0, 1 ) );
+			// If the link is not previewable, prevent the browser from navigating to it.
+			if ( ! api.isLinkPreviewable( link[0] ) ) {
+				wp.a11y.speak( api.settings.l10n.linkUnpreviewable );
 				event.preventDefault();
+				return;
+			}
+
+			// Prevent initiating navigating from click and instead rely on sending url message to pane.
+			event.preventDefault();
+
+			/*
+			 * Note the shift key is checked so shift+click on widgets or
+			 * nav menu items can just result on focusing on the corresponding
+			 * control instead of also navigating to the URL linked to.
+			 */
+			if ( event.shiftKey ) {
+				return;
+			}
+
+			// Note: It's not relevant to send scroll because sending url message will have the same effect.
+			preview.send( 'url', link.prop( 'href' ) );
+		},
+
+		/**
+		 * Handle form submit.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @param {jQuery.Event} event Event.
+		 */
+		handleFormSubmit: function( event ) {
+			var preview = this, urlParser, form;
+			urlParser = document.createElement( 'a' );
+			form = $( event.target );
+			urlParser.href = form.prop( 'action' );
+
+			// If the link is not previewable, prevent the browser from navigating to it.
+			if ( 'GET' !== form.prop( 'method' ).toUpperCase() || ! api.isLinkPreviewable( urlParser ) ) {
+				wp.a11y.speak( api.settings.l10n.formUnpreviewable );
+				event.preventDefault();
+				return;
+			}
+
+			/*
+			 * If the default wasn't prevented already (in which case the form
+			 * submission is already being handled by JS), and if it has a GET
+			 * request method, then take the serialized form data and add it as
+			 * a query string to the action URL and send this in a url message
+			 * to the customizer pane so that it will be loaded. If the form's
+			 * action points to a non-previewable URL, the customizer pane's
+			 * previewUrl setter will reject it so that the form submission is
+			 * a no-op, which is the same behavior as when clicking a link to an
+			 * external site in the preview.
+			 */
+			if ( ! event.isDefaultPrevented() ) {
+				if ( urlParser.search.length > 1 ) {
+					urlParser.search += '&';
+				}
+				urlParser.search += form.serialize();
+				preview.send( 'url', urlParser.href );
+			}
+
+			// Prevent default since navigation should be done via sending url message or via JS submit handler.
+			event.preventDefault();
+		}
+	});
+
+	/**
+	 * Inject the changeset UUID into links in the document.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @access private
+	 * @returns {void}
+	 */
+	api.addLinkPreviewing = function addLinkPreviewing() {
+		var linkSelectors = 'a[href], area';
+
+		// Inject links into initial document.
+		$( document.body ).find( linkSelectors ).each( function() {
+			api.prepareLinkPreview( this );
+		} );
 
-				if ( isInternalJumpLink && '#' !== link.attr( 'href' ) ) {
-					$( link.attr( 'href' ) ).each( function() {
-						this.scrollIntoView();
+		// Inject links for new elements added to the page.
+		if ( 'undefined' !== typeof MutationObserver ) {
+			api.mutationObserver = new MutationObserver( function( mutations ) {
+				_.each( mutations, function( mutation ) {
+					$( mutation.target ).find( linkSelectors ).each( function() {
+						api.prepareLinkPreview( this );
 					} );
+				} );
+			} );
+			api.mutationObserver.observe( document.documentElement, {
+				childList: true,
+				subtree: true
+			} );
+		} else {
+
+			// If mutation observers aren't available, fallback to just-in-time injection.
+			$( document.documentElement ).on( 'click focus mouseover', linkSelectors, function() {
+				api.prepareLinkPreview( this );
+			} );
+		}
+	};
+
+	/**
+	 * Should the supplied link is previewable.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param {HTMLAnchorElement|HTMLAreaElement} element Link element.
+	 * @param {string} element.search Query string.
+	 * @param {string} element.pathname Path.
+	 * @param {string} element.host Host.
+	 * @param {object} [options]
+	 * @param {object} [options.allowAdminAjax=false] Allow admin-ajax.php requests.
+	 * @returns {boolean} Is appropriate for changeset link.
+	 */
+	api.isLinkPreviewable = function isLinkPreviewable( element, options ) {
+		var matchesAllowedUrl, parsedAllowedUrl, args;
+
+		args = _.extend( {}, { allowAdminAjax: false }, options || {} );
+
+		if ( 'javascript:' === element.protocol ) { // jshint ignore:line
+			return true;
+		}
+
+		// Only web URLs can be previewed.
+		if ( 'https:' !== element.protocol && 'http:' !== element.protocol ) {
+			return false;
+		}
+
+		parsedAllowedUrl = document.createElement( 'a' );
+		matchesAllowedUrl = ! _.isUndefined( _.find( api.settings.url.allowed, function( allowedUrl ) {
+			parsedAllowedUrl.href = allowedUrl;
+			return parsedAllowedUrl.protocol === element.protocol && parsedAllowedUrl.host === element.host && 0 === element.pathname.indexOf( parsedAllowedUrl.pathname.replace( /\/$/, '' ) );
+		} ) );
+		if ( ! matchesAllowedUrl ) {
+			return false;
+		}
+
+		// Skip wp login and signup pages.
+		if ( /\/wp-(login|signup)\.php$/.test( element.pathname ) ) {
+			return false;
+		}
+
+		// Allow links to admin ajax as faux frontend URLs.
+		if ( /\/wp-admin\/admin-ajax\.php$/.test( element.pathname ) ) {
+			return args.allowAdminAjax;
+		}
+
+		// Disallow links to admin, includes, and content.
+		if ( /\/wp-(admin|includes|content)(\/|$)/.test( element.pathname ) ) {
+			return false;
+		}
+
+		return true;
+	};
+
+	/**
+	 * Inject the customize_changeset_uuid query param into links on the frontend.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param {HTMLAnchorElement|HTMLAreaElement} element Link element.
+	 * @param {string} element.search Query string.
+	 * @param {string} element.host Host.
+	 * @param {string} element.protocol Protocol.
+	 * @returns {void}
+	 */
+	api.prepareLinkPreview = function prepareLinkPreview( element ) {
+		var queryParams;
+
+		// Skip links in admin bar.
+		if ( $( element ).closest( '#wpadminbar' ).length ) {
+			return;
+		}
+
+		// Ignore links with href="#" or href="#id".
+		if ( '#' === $( element ).attr( 'href' ).substr( 0, 1 ) ) {
+			return;
+		}
+
+		// Make sure links in preview use HTTPS if parent frame uses HTTPS.
+		if ( api.settings.channel && 'https' === api.preview.scheme.get() && 'http:' === element.protocol && -1 !== api.settings.url.allowedHosts.indexOf( element.host ) ) {
+			element.protocol = 'https:';
+		}
+
+		if ( ! api.isLinkPreviewable( element ) ) {
+
+			// Style link as unpreviewable only if previewing in iframe; if previewing on frontend, links will be allowed to work normally.
+			if ( api.settings.channel ) {
+				$( element ).addClass( 'customize-unpreviewable' );
+			}
+			return;
+		}
+		$( element ).removeClass( 'customize-unpreviewable' );
+
+		queryParams = api.utils.parseQueryString( element.search.substring( 1 ) );
+		queryParams.customize_changeset_uuid = api.settings.changeset.uuid;
+		if ( ! api.settings.theme.active ) {
+			queryParams.customize_theme = api.settings.theme.stylesheet;
+		}
+		if ( api.settings.channel ) {
+			queryParams.customize_messenger_channel = api.settings.channel;
+		}
+		element.search = $.param( queryParams );
+
+		// Prevent links from breaking out of preview iframe.
+		if ( api.settings.channel ) {
+			element.target = '_self';
+		}
+	};
+
+	/**
+	 * Inject the changeset UUID into Ajax requests.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return {void}
+	 */
+	api.addRequestPreviewing = function addRequestPreviewing() {
+
+		/**
+		 * Rewrite Ajax requests to inject customizer state.
+		 *
+		 * @param {object} options Options.
+		 * @param {string} options.type Type.
+		 * @param {string} options.url URL.
+		 * @param {object} originalOptions Original options.
+		 * @param {XMLHttpRequest} xhr XHR.
+		 * @returns {void}
+		 */
+		var prefilterAjax = function( options, originalOptions, xhr ) {
+			var urlParser, queryParams, requestMethod, dirtyValues = {};
+			urlParser = document.createElement( 'a' );
+			urlParser.href = options.url;
+
+			// Abort if the request is not for this site.
+			if ( ! api.isLinkPreviewable( urlParser, { allowAdminAjax: true } ) ) {
+				return;
+			}
+			queryParams = api.utils.parseQueryString( urlParser.search.substring( 1 ) );
+
+			// Note that _dirty flag will be cleared with changeset updates.
+			api.each( function( setting ) {
+				if ( setting._dirty ) {
+					dirtyValues[ setting.id ] = setting.get();
 				}
+			} );
 
-				/*
-				 * Note the shift key is checked so shift+click on widgets or
-				 * nav menu items can just result on focusing on the corresponding
-				 * control instead of also navigating to the URL linked to.
-				 */
-				if ( event.shiftKey || isInternalJumpLink ) {
-					return;
+			if ( ! _.isEmpty( dirtyValues ) ) {
+				requestMethod = options.type.toUpperCase();
+
+				// Override underlying request method to ensure unsaved changes to changeset can be included (force Backbone.emulateHTTP).
+				if ( 'POST' !== requestMethod ) {
+					xhr.setRequestHeader( 'X-HTTP-Method-Override', requestMethod );
+					queryParams._method = requestMethod;
+					options.type = 'POST';
 				}
-				self.send( 'scroll', 0 );
-				self.send( 'url', link.prop( 'href' ) );
-			});
 
-			// You cannot submit forms.
-			// @todo: Allow form submissions by mixing $_POST data with the customize setting $_POST data.
-			this.body.on( 'submit.preview', 'form', function( event ) {
-				event.preventDefault();
-			});
+				// Amend the post data with the customized values.
+				if ( options.data ) {
+					options.data += '&';
+				} else {
+					options.data = '';
+				}
+				options.data += $.param( {
+					customized: JSON.stringify( dirtyValues )
+				} );
+			}
 
-			this.window = $( window );
-			this.window.on( 'scroll.preview', debounce( function() {
-				self.send( 'scroll', self.window.scrollTop() );
-			}, 200 ));
+			// Include customized state query params in URL.
+			queryParams.customize_changeset_uuid = api.settings.changeset.uuid;
+			if ( ! api.settings.theme.active ) {
+				queryParams.customize_theme = api.settings.theme.stylesheet;
+			}
+			urlParser.search = $.param( queryParams );
+			options.url = urlParser.href;
+		};
 
-			this.bind( 'scroll', function( distance ) {
-				self.window.scrollTop( distance );
-			});
+		$.ajaxPrefilter( prefilterAjax );
+	};
+
+	/**
+	 * Inject changeset UUID into forms, allowing preview to persist through submissions.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @returns {void}
+	 */
+	api.addFormPreviewing = function addFormPreviewing() {
+
+		// Inject inputs for forms in initial document.
+		$( document.body ).find( 'form' ).each( function() {
+			api.prepareFormPreview( this );
+		} );
+
+		// Inject inputs for new forms added to the page.
+		if ( 'undefined' !== typeof MutationObserver ) {
+			api.mutationObserver = new MutationObserver( function( mutations ) {
+				_.each( mutations, function( mutation ) {
+					$( mutation.target ).find( 'form' ).each( function() {
+						api.prepareFormPreview( this );
+					} );
+				} );
+			} );
+			api.mutationObserver.observe( document.documentElement, {
+				childList: true,
+				subtree: true
+			} );
 		}
-	});
+	};
+
+	/**
+	 * Inject changeset into form inputs.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param {HTMLFormElement} form Form.
+	 * @returns {void}
+	 */
+	api.prepareFormPreview = function prepareFormPreview( form ) {
+		var urlParser, stateParams = {};
+
+		if ( ! form.action ) {
+			form.action = location.href;
+		}
+
+		urlParser = document.createElement( 'a' );
+		urlParser.href = form.action;
+
+		// Make sure forms in preview use HTTPS if parent frame uses HTTPS.
+		if ( api.settings.channel && 'https' === api.preview.scheme.get() && 'http:' === urlParser.protocol && -1 !== api.settings.url.allowedHosts.indexOf( urlParser.host ) ) {
+			urlParser.protocol = 'https:';
+			form.action = urlParser.href;
+		}
+
+		if ( 'GET' !== form.method.toUpperCase() || ! api.isLinkPreviewable( urlParser ) ) {
+
+			// Style form as unpreviewable only if previewing in iframe; if previewing on frontend, all forms will be allowed to work normally.
+			if ( api.settings.channel ) {
+				$( form ).addClass( 'customize-unpreviewable' );
+			}
+			return;
+		}
+		$( form ).removeClass( 'customize-unpreviewable' );
+
+		stateParams.customize_changeset_uuid = api.settings.changeset.uuid;
+		if ( ! api.settings.theme.active ) {
+			stateParams.customize_theme = api.settings.theme.stylesheet;
+		}
+		if ( api.settings.channel ) {
+			stateParams.customize_messenger_channel = api.settings.channel;
+		}
+
+		_.each( stateParams, function( value, name ) {
+			var input = $( form ).find( 'input[name="' + name + '"]' );
+			if ( input.length ) {
+				input.val( value );
+			} else {
+				$( form ).prepend( $( '<input>', {
+					type: 'hidden',
+					name: name,
+					value: value
+				} ) );
+			}
+		} );
+
+		// Prevent links from breaking out of preview iframe.
+		if ( api.settings.channel ) {
+			form.target = '_self';
+		}
+	};
+
+	/**
+	 * Watch current URL and send keep-alive (heartbeat) messages to the parent.
+	 *
+	 * Keep the customizer pane notified that the preview is still alive
+	 * and that the user hasn't navigated to a non-customized URL.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 */
+	api.keepAliveCurrentUrl = ( function() {
+		var previousPathName = location.pathname,
+			previousQueryString = location.search.substr( 1 ),
+			previousQueryParams = null,
+			stateQueryParams = [ 'customize_theme', 'customize_changeset_uuid', 'customize_messenger_channel' ];
+
+		return function keepAliveCurrentUrl() {
+			var urlParser, currentQueryParams;
+
+			// Short-circuit with keep-alive if previous URL is identical (as is normal case).
+			if ( previousQueryString === location.search.substr( 1 ) && previousPathName === location.pathname ) {
+				api.preview.send( 'keep-alive' );
+				return;
+			}
+
+			urlParser = document.createElement( 'a' );
+			if ( null === previousQueryParams ) {
+				urlParser.search = previousQueryString;
+				previousQueryParams = api.utils.parseQueryString( previousQueryString );
+				_.each( stateQueryParams, function( name ) {
+					delete previousQueryParams[ name ];
+				} );
+			}
+
+			// Determine if current URL minus customized state params and URL hash.
+			urlParser.href = location.href;
+			currentQueryParams = api.utils.parseQueryString( urlParser.search.substr( 1 ) );
+			_.each( stateQueryParams, function( name ) {
+				delete currentQueryParams[ name ];
+			} );
+
+			if ( previousPathName !== location.pathname || ! _.isEqual( previousQueryParams, currentQueryParams ) ) {
+				urlParser.search = $.param( currentQueryParams );
+				urlParser.hash = '';
+				api.settings.url.self = urlParser.href;
+				api.preview.send( 'ready', {
+					currentUrl: api.settings.url.self,
+					activePanels: api.settings.activePanels,
+					activeSections: api.settings.activeSections,
+					activeControls: api.settings.activeControls,
+					settingValidities: api.settings.settingValidities
+				} );
+			} else {
+				api.preview.send( 'keep-alive' );
+			}
+			previousQueryParams = currentQueryParams;
+			previousQueryString = location.search.substr( 1 );
+			previousPathName = location.pathname;
+		};
+	} )();
+
+	api.settingPreviewHandlers = {
+
+		/**
+		 * Preview changes to custom logo.
+		 *
+		 * @param {number} attachmentId Attachment ID for custom logo.
+		 * @returns {void}
+		 */
+		custom_logo: function( attachmentId ) {
+			$( 'body' ).toggleClass( 'wp-custom-logo', !! attachmentId );
+		},
+
+		/**
+		 * Preview changes to custom css.
+		 *
+		 * @param {string} value Custom CSS..
+		 * @returns {void}
+		 */
+		custom_css: function( value ) {
+			$( '#wp-custom-css' ).text( value );
+		},
+
+		/**
+		 * Preview changes to any of the background settings.
+		 *
+		 * @returns {void}
+		 */
+		background: function() {
+			var css = '', settings = {};
+
+			_.each( ['color', 'image', 'preset', 'position_x', 'position_y', 'size', 'repeat', 'attachment'], function( prop ) {
+				settings[ prop ] = api( 'background_' + prop );
+			} );
+
+			/*
+			 * The body will support custom backgrounds if either the color or image are set.
+			 *
+			 * See get_body_class() in /wp-includes/post-template.php
+			 */
+			$( document.body ).toggleClass( 'custom-background', !! ( settings.color() || settings.image() ) );
+
+			if ( settings.color() ) {
+				css += 'background-color: ' + settings.color() + ';';
+			}
+
+			if ( settings.image() ) {
+				css += 'background-image: url("' + settings.image() + '");';
+				css += 'background-size: ' + settings.size() + ';';
+				css += 'background-position: ' + settings.position_x() + ' ' + settings.position_y() + ';';
+				css += 'background-repeat: ' + settings.repeat() + ';';
+				css += 'background-attachment: ' + settings.attachment() + ';';
+			}
+
+			$( '#custom-background-css' ).text( 'body.custom-background { ' + css + ' }' );
+		}
+	};
 
 	$( function() {
 		var bg, setValue;
@@ -96,6 +664,10 @@
 			channel: api.settings.channel
 		});
 
+		api.addLinkPreviewing();
+		api.addRequestPreviewing();
+		api.addFormPreviewing();
+
 		/**
 		 * Create/update a setting value.
 		 *
@@ -139,6 +711,25 @@
 		});
 
 		api.preview.bind( 'sync', function( events ) {
+
+			/*
+			 * Delete any settings that already exist locally which haven't been
+			 * modified in the controls while the preview was loading. This prevents
+			 * situations where the JS value being synced from the pane may differ
+			 * from the PHP-sanitized JS value in the preview which causes the
+			 * non-sanitized JS value to clobber the PHP-sanitized value. This
+			 * is particularly important for selective refresh partials that
+			 * have a fallback refresh behavior since infinite refreshing would
+			 * result.
+			 */
+			if ( events.settings && events['settings-modified-while-loading'] ) {
+				_.each( _.keys( events.settings ), function( syncedSettingId ) {
+					if ( api.has( syncedSettingId ) && ! events['settings-modified-while-loading'][ syncedSettingId ] ) {
+						delete events.settings[ syncedSettingId ];
+					}
+				} );
+			}
+
 			$.each( events, function( event, args ) {
 				api.preview.trigger( event, args );
 			});
@@ -149,15 +740,47 @@
 			api.preview.send( 'nonce', api.settings.nonce );
 
 			api.preview.send( 'documentTitle', document.title );
+
+			// Send scroll in case of loading via non-refresh.
+			api.preview.send( 'scroll', $( window ).scrollTop() );
 		});
 
 		api.preview.bind( 'saved', function( response ) {
+
+			if ( response.next_changeset_uuid ) {
+				api.settings.changeset.uuid = response.next_changeset_uuid;
+
+				// Update UUIDs in links and forms.
+				$( document.body ).find( 'a[href], area' ).each( function() {
+					api.prepareLinkPreview( this );
+				} );
+				$( document.body ).find( 'form' ).each( function() {
+					api.prepareFormPreview( this );
+				} );
+
+				/*
+				 * Replace the UUID in the URL. Note that the wrapped history.replaceState()
+				 * will handle injecting the current api.settings.changeset.uuid into the URL,
+				 * so this is merely to trigger that logic.
+				 */
+				if ( history.replaceState ) {
+					history.replaceState( currentHistoryState, '', location.href );
+				}
+			}
+
 			api.trigger( 'saved', response );
 		} );
 
-		api.bind( 'saved', function() {
-			api.each( function( setting ) {
-				setting._dirty = false;
+		/*
+		 * Clear dirty flag for settings when saved to changeset so that they
+		 * won't be needlessly included in selective refresh or ajax requests.
+		 */
+		api.preview.bind( 'changeset-saved', function( data ) {
+			_.each( data.saved_changeset_values, function( value, settingId ) {
+				var setting = api( settingId );
+				if ( setting && _.isEqual( setting.get(), value ) ) {
+					setting._dirty = false;
+				}
 			} );
 		} );
 
@@ -170,12 +793,16 @@
 		 * containers and controls are active.
 		 */
 		api.preview.send( 'ready', {
+			currentUrl: api.settings.url.self,
 			activePanels: api.settings.activePanels,
 			activeSections: api.settings.activeSections,
 			activeControls: api.settings.activeControls,
 			settingValidities: api.settings.settingValidities
 		} );
 
+		// Send ready when URL changes via JS.
+		setInterval( api.keepAliveCurrentUrl, api.settings.timeouts.keepAliveSend );
+
 		// Display a loading indicator when preview is reloading, and remove on failure.
 		api.preview.bind( 'loading-initiated', function () {
 			$( 'body' ).addClass( 'wp-customizer-unloading' );
@@ -185,42 +812,13 @@
 		});
 
 		/* Custom Backgrounds */
-		bg = $.map(['color', 'image', 'position_x', 'repeat', 'attachment'], function( prop ) {
+		bg = $.map( ['color', 'image', 'preset', 'position_x', 'position_y', 'size', 'repeat', 'attachment'], function( prop ) {
 			return 'background_' + prop;
-		});
-
-		api.when.apply( api, bg ).done( function( color, image, position_x, repeat, attachment ) {
-			var body = $(document.body),
-				head = $('head'),
-				style = $('#custom-background-css'),
-				update;
-
-			update = function() {
-				var css = '';
-
-				// The body will support custom backgrounds if either
-				// the color or image are set.
-				//
-				// See get_body_class() in /wp-includes/post-template.php
-				body.toggleClass( 'custom-background', !! ( color() || image() ) );
-
-				if ( color() )
-					css += 'background-color: ' + color() + ';';
-
-				if ( image() ) {
-					css += 'background-image: url("' + image() + '");';
-					css += 'background-position: top ' + position_x() + ';';
-					css += 'background-repeat: ' + repeat() + ';';
-					css += 'background-attachment: ' + attachment() + ';';
-				}
-
-				// Refresh the stylesheet by removing and recreating it.
-				style.remove();
-				style = $('<style type="text/css" id="custom-background-css">body.custom-background { ' + css + ' }</style>').appendTo( head );
-			};
+		} );
 
+		api.when.apply( api, bg ).done( function() {
 			$.each( arguments, function() {
-				this.bind( update );
+				this.bind( api.settingPreviewHandlers.background );
 			});
 		});
 
@@ -231,11 +829,13 @@
 		 *
 		 * @since 4.5.0
 		 */
-		api( 'custom_logo', function( setting ) {
-			$( 'body' ).toggleClass( 'wp-custom-logo', !! setting.get() );
-			setting.bind( function( attachmentId ) {
-				$( 'body' ).toggleClass( 'wp-custom-logo', !! attachmentId );
-			} );
+		api( 'custom_logo', function ( setting ) {
+			api.settingPreviewHandlers.custom_logo.call( setting, setting.get() );
+			setting.bind( api.settingPreviewHandlers.custom_logo );
+		} );
+
+		api( 'custom_css[' + api.settings.theme.stylesheet + ']', function( setting ) {
+			setting.bind( api.settingPreviewHandlers.custom_css );
 		} );
 
 		api.trigger( 'preview-ready' );
diff --git a/wp-includes/js/customize-preview.min.js b/wp-includes/js/customize-preview.min.js
index e8413394e..964a7a808 100644
--- a/wp-includes/js/customize-preview.min.js
+++ b/wp-includes/js/customize-preview.min.js
@@ -1 +1 @@
-!function(a,b){var c,d=wp.customize;c=function(a,b,c){var d;return function(){var e=arguments;c=c||this,clearTimeout(d),d=setTimeout(function(){d=null,a.apply(c,e)},b)}},d.Preview=d.Messenger.extend({initialize:function(a,e){var f=this;d.Messenger.prototype.initialize.call(this,a,e),this.body=b(document.body),this.body.on("click.preview","a",function(a){var c,d;c=b(this),d="#"===c.attr("href").substr(0,1),a.preventDefault(),d&&"#"!==c.attr("href")&&b(c.attr("href")).each(function(){this.scrollIntoView()}),a.shiftKey||d||(f.send("scroll",0),f.send("url",c.prop("href")))}),this.body.on("submit.preview","form",function(a){a.preventDefault()}),this.window=b(window),this.window.on("scroll.preview",c(function(){f.send("scroll",f.window.scrollTop())},200)),this.bind("scroll",function(a){f.window.scrollTop(a)})}}),b(function(){var a,c;d.settings=window._wpCustomizeSettings,d.settings&&(d.preview=new d.Preview({url:window.location.href,channel:d.settings.channel}),c=function(a,b,c){var e=d(a);e?e.set(b):(c=c||!1,e=d.create(a,b,{id:a}),c&&(e._dirty=!0))},d.preview.bind("settings",function(a){b.each(a,c)}),d.preview.trigger("settings",d.settings.values),b.each(d.settings._dirty,function(a,b){var c=d(b);c&&(c._dirty=!0)}),d.preview.bind("setting",function(a){var b=!0;c.apply(null,a.concat(b))}),d.preview.bind("sync",function(a){b.each(a,function(a,b){d.preview.trigger(a,b)}),d.preview.send("synced")}),d.preview.bind("active",function(){d.preview.send("nonce",d.settings.nonce),d.preview.send("documentTitle",document.title)}),d.preview.bind("saved",function(a){d.trigger("saved",a)}),d.bind("saved",function(){d.each(function(a){a._dirty=!1})}),d.preview.bind("nonce-refresh",function(a){b.extend(d.settings.nonce,a)}),d.preview.send("ready",{activePanels:d.settings.activePanels,activeSections:d.settings.activeSections,activeControls:d.settings.activeControls,settingValidities:d.settings.settingValidities}),d.preview.bind("loading-initiated",function(){b("body").addClass("wp-customizer-unloading")}),d.preview.bind("loading-failed",function(){b("body").removeClass("wp-customizer-unloading")}),a=b.map(["color","image","position_x","repeat","attachment"],function(a){return"background_"+a}),d.when.apply(d,a).done(function(a,c,d,e,f){var g,h=b(document.body),i=b("head"),j=b("#custom-background-css");g=function(){var g="";h.toggleClass("custom-background",!(!a()&&!c())),a()&&(g+="background-color: "+a()+";"),c()&&(g+='background-image: url("'+c()+'");',g+="background-position: top "+d()+";",g+="background-repeat: "+e()+";",g+="background-attachment: "+f()+";"),j.remove(),j=b('<style type="text/css" id="custom-background-css">body.custom-background { '+g+" }</style>").appendTo(i)},b.each(arguments,function(){this.bind(g)})}),d("custom_logo",function(a){b("body").toggleClass("wp-custom-logo",!!a.get()),a.bind(function(a){b("body").toggleClass("wp-custom-logo",!!a)})}),d.trigger("preview-ready"))})}(wp,jQuery);
\ No newline at end of file
+!function(a,b){var c,d=wp.customize,e={};!function(a){var c;a.replaceState&&(c=function(a){var c,e,f;return c=document.createElement("a"),c.href=a,e=d.utils.parseQueryString(location.search.substr(1)),f=d.utils.parseQueryString(c.search.substr(1)),f.customize_changeset_uuid=e.customize_changeset_uuid,e.customize_theme&&(f.customize_theme=e.customize_theme),e.customize_messenger_channel&&(f.customize_messenger_channel=e.customize_messenger_channel),c.search=b.param(f),c.href},a.replaceState=function(b){return function(d,f,g){return e=d,b.call(a,d,f,c(g))}}(a.replaceState),a.pushState=function(b){return function(d,f,g){return e=d,b.call(a,d,f,c(g))}}(a.pushState),window.addEventListener("popstate",function(a){e=a.state}))}(history),c=function(a,b,c){var d;return function(){var e=arguments;c=c||this,clearTimeout(d),d=setTimeout(function(){d=null,a.apply(c,e)},b)}},d.Preview=d.Messenger.extend({initialize:function(a,e){var f=this,g=document.createElement("a");d.Messenger.prototype.initialize.call(f,a,e),g.href=f.origin(),f.add("scheme",g.protocol.replace(/:$/,"")),f.body=b(document.body),f.window=b(window),d.settings.channel&&(f.body.on("click.preview","a",function(a){f.handleLinkClick(a)}),f.body.on("submit.preview","form",function(a){f.handleFormSubmit(a)}),f.window.on("scroll.preview",c(function(){f.send("scroll",f.window.scrollTop())},200)),f.bind("scroll",function(a){f.window.scrollTop(a)}))},handleLinkClick:function(a){var c,e,f=this;if(c=b(a.target),!_.isUndefined(c.attr("href"))&&(e="#"===c.attr("href").substr(0,1),!e)){if(!d.isLinkPreviewable(c[0]))return wp.a11y.speak(d.settings.l10n.linkUnpreviewable),void a.preventDefault();a.preventDefault(),a.shiftKey||f.send("url",c.prop("href"))}},handleFormSubmit:function(a){var c,e,f=this;return c=document.createElement("a"),e=b(a.target),c.href=e.prop("action"),"GET"===e.prop("method").toUpperCase()&&d.isLinkPreviewable(c)?(a.isDefaultPrevented()||(c.search.length>1&&(c.search+="&"),c.search+=e.serialize(),f.send("url",c.href)),void a.preventDefault()):(wp.a11y.speak(d.settings.l10n.formUnpreviewable),void a.preventDefault())}}),d.addLinkPreviewing=function(){var a="a[href], area";b(document.body).find(a).each(function(){d.prepareLinkPreview(this)}),"undefined"!=typeof MutationObserver?(d.mutationObserver=new MutationObserver(function(c){_.each(c,function(c){b(c.target).find(a).each(function(){d.prepareLinkPreview(this)})})}),d.mutationObserver.observe(document.documentElement,{childList:!0,subtree:!0})):b(document.documentElement).on("click focus mouseover",a,function(){d.prepareLinkPreview(this)})},d.isLinkPreviewable=function(a,b){var c,e,f;return f=_.extend({},{allowAdminAjax:!1},b||{}),"javascript:"===a.protocol||("https:"===a.protocol||"http:"===a.protocol)&&(e=document.createElement("a"),c=!_.isUndefined(_.find(d.settings.url.allowed,function(b){return e.href=b,e.protocol===a.protocol&&e.host===a.host&&0===a.pathname.indexOf(e.pathname.replace(/\/$/,""))})),!!c&&(!/\/wp-(login|signup)\.php$/.test(a.pathname)&&(/\/wp-admin\/admin-ajax\.php$/.test(a.pathname)?f.allowAdminAjax:!/\/wp-(admin|includes|content)(\/|$)/.test(a.pathname))))},d.prepareLinkPreview=function(a){var c;if(!b(a).closest("#wpadminbar").length&&"#"!==b(a).attr("href").substr(0,1)){if(d.settings.channel&&"https"===d.preview.scheme.get()&&"http:"===a.protocol&&-1!==d.settings.url.allowedHosts.indexOf(a.host)&&(a.protocol="https:"),!d.isLinkPreviewable(a))return void(d.settings.channel&&b(a).addClass("customize-unpreviewable"));b(a).removeClass("customize-unpreviewable"),c=d.utils.parseQueryString(a.search.substring(1)),c.customize_changeset_uuid=d.settings.changeset.uuid,d.settings.theme.active||(c.customize_theme=d.settings.theme.stylesheet),d.settings.channel&&(c.customize_messenger_channel=d.settings.channel),a.search=b.param(c),d.settings.channel&&(a.target="_self")}},d.addRequestPreviewing=function(){var a=function(a,c,e){var f,g,h,i={};f=document.createElement("a"),f.href=a.url,d.isLinkPreviewable(f,{allowAdminAjax:!0})&&(g=d.utils.parseQueryString(f.search.substring(1)),d.each(function(a){a._dirty&&(i[a.id]=a.get())}),_.isEmpty(i)||(h=a.type.toUpperCase(),"POST"!==h&&(e.setRequestHeader("X-HTTP-Method-Override",h),g._method=h,a.type="POST"),a.data?a.data+="&":a.data="",a.data+=b.param({customized:JSON.stringify(i)})),g.customize_changeset_uuid=d.settings.changeset.uuid,d.settings.theme.active||(g.customize_theme=d.settings.theme.stylesheet),f.search=b.param(g),a.url=f.href)};b.ajaxPrefilter(a)},d.addFormPreviewing=function(){b(document.body).find("form").each(function(){d.prepareFormPreview(this)}),"undefined"!=typeof MutationObserver&&(d.mutationObserver=new MutationObserver(function(a){_.each(a,function(a){b(a.target).find("form").each(function(){d.prepareFormPreview(this)})})}),d.mutationObserver.observe(document.documentElement,{childList:!0,subtree:!0}))},d.prepareFormPreview=function(a){var c,e={};return a.action||(a.action=location.href),c=document.createElement("a"),c.href=a.action,d.settings.channel&&"https"===d.preview.scheme.get()&&"http:"===c.protocol&&-1!==d.settings.url.allowedHosts.indexOf(c.host)&&(c.protocol="https:",a.action=c.href),"GET"===a.method.toUpperCase()&&d.isLinkPreviewable(c)?(b(a).removeClass("customize-unpreviewable"),e.customize_changeset_uuid=d.settings.changeset.uuid,d.settings.theme.active||(e.customize_theme=d.settings.theme.stylesheet),d.settings.channel&&(e.customize_messenger_channel=d.settings.channel),_.each(e,function(c,d){var e=b(a).find('input[name="'+d+'"]');e.length?e.val(c):b(a).prepend(b("<input>",{type:"hidden",name:d,value:c}))}),void(d.settings.channel&&(a.target="_self"))):void(d.settings.channel&&b(a).addClass("customize-unpreviewable"))},d.keepAliveCurrentUrl=function(){var a=location.pathname,c=location.search.substr(1),e=null,f=["customize_theme","customize_changeset_uuid","customize_messenger_channel"];return function(){var g,h;return c===location.search.substr(1)&&a===location.pathname?void d.preview.send("keep-alive"):(g=document.createElement("a"),null===e&&(g.search=c,e=d.utils.parseQueryString(c),_.each(f,function(a){delete e[a]})),g.href=location.href,h=d.utils.parseQueryString(g.search.substr(1)),_.each(f,function(a){delete h[a]}),a===location.pathname&&_.isEqual(e,h)?d.preview.send("keep-alive"):(g.search=b.param(h),g.hash="",d.settings.url.self=g.href,d.preview.send("ready",{currentUrl:d.settings.url.self,activePanels:d.settings.activePanels,activeSections:d.settings.activeSections,activeControls:d.settings.activeControls,settingValidities:d.settings.settingValidities})),e=h,c=location.search.substr(1),void(a=location.pathname))}}(),d.settingPreviewHandlers={custom_logo:function(a){b("body").toggleClass("wp-custom-logo",!!a)},custom_css:function(a){b("#wp-custom-css").text(a)},background:function(){var a="",c={};_.each(["color","image","preset","position_x","position_y","size","repeat","attachment"],function(a){c[a]=d("background_"+a)}),b(document.body).toggleClass("custom-background",!(!c.color()&&!c.image())),c.color()&&(a+="background-color: "+c.color()+";"),c.image()&&(a+='background-image: url("'+c.image()+'");',a+="background-size: "+c.size()+";",a+="background-position: "+c.position_x()+" "+c.position_y()+";",a+="background-repeat: "+c.repeat()+";",a+="background-attachment: "+c.attachment()+";"),b("#custom-background-css").text("body.custom-background { "+a+" }")}},b(function(){var a,c;d.settings=window._wpCustomizeSettings,d.settings&&(d.preview=new d.Preview({url:window.location.href,channel:d.settings.channel}),d.addLinkPreviewing(),d.addRequestPreviewing(),d.addFormPreviewing(),c=function(a,b,c){var e=d(a);e?e.set(b):(c=c||!1,e=d.create(a,b,{id:a}),c&&(e._dirty=!0))},d.preview.bind("settings",function(a){b.each(a,c)}),d.preview.trigger("settings",d.settings.values),b.each(d.settings._dirty,function(a,b){var c=d(b);c&&(c._dirty=!0)}),d.preview.bind("setting",function(a){var b=!0;c.apply(null,a.concat(b))}),d.preview.bind("sync",function(a){a.settings&&a["settings-modified-while-loading"]&&_.each(_.keys(a.settings),function(b){d.has(b)&&!a["settings-modified-while-loading"][b]&&delete a.settings[b]}),b.each(a,function(a,b){d.preview.trigger(a,b)}),d.preview.send("synced")}),d.preview.bind("active",function(){d.preview.send("nonce",d.settings.nonce),d.preview.send("documentTitle",document.title),d.preview.send("scroll",b(window).scrollTop())}),d.preview.bind("saved",function(a){a.next_changeset_uuid&&(d.settings.changeset.uuid=a.next_changeset_uuid,b(document.body).find("a[href], area").each(function(){d.prepareLinkPreview(this)}),b(document.body).find("form").each(function(){d.prepareFormPreview(this)}),history.replaceState&&history.replaceState(e,"",location.href)),d.trigger("saved",a)}),d.preview.bind("changeset-saved",function(a){_.each(a.saved_changeset_values,function(a,b){var c=d(b);c&&_.isEqual(c.get(),a)&&(c._dirty=!1)})}),d.preview.bind("nonce-refresh",function(a){b.extend(d.settings.nonce,a)}),d.preview.send("ready",{currentUrl:d.settings.url.self,activePanels:d.settings.activePanels,activeSections:d.settings.activeSections,activeControls:d.settings.activeControls,settingValidities:d.settings.settingValidities}),setInterval(d.keepAliveCurrentUrl,d.settings.timeouts.keepAliveSend),d.preview.bind("loading-initiated",function(){b("body").addClass("wp-customizer-unloading")}),d.preview.bind("loading-failed",function(){b("body").removeClass("wp-customizer-unloading")}),a=b.map(["color","image","preset","position_x","position_y","size","repeat","attachment"],function(a){return"background_"+a}),d.when.apply(d,a).done(function(){b.each(arguments,function(){this.bind(d.settingPreviewHandlers.background)})}),d("custom_logo",function(a){d.settingPreviewHandlers.custom_logo.call(a,a.get()),a.bind(d.settingPreviewHandlers.custom_logo)}),d("custom_css["+d.settings.theme.stylesheet+"]",function(a){a.bind(d.settingPreviewHandlers.custom_css)}),d.trigger("preview-ready"))})}(wp,jQuery);
\ No newline at end of file
diff --git a/wp-includes/js/customize-selective-refresh.js b/wp-includes/js/customize-selective-refresh.js
index ec51058ec..f6dfa0b9d 100644
--- a/wp-includes/js/customize-selective-refresh.js
+++ b/wp-includes/js/customize-selective-refresh.js
@@ -6,13 +6,13 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 
 	self = {
 		ready: $.Deferred(),
+		editShortcutVisibility: new api.Value(),
 		data: {
 			partials: {},
 			renderQueryVar: '',
 			l10n: {
 				shiftClickToEdit: ''
-			},
-			refreshBuffer: 250
+			}
 		},
 		currentRequest: null
 	};
@@ -43,7 +43,7 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 
 		id: null,
 
-		 /**
+		/**
 		 * Constructor.
 		 *
 		 * @since 4.5.0
@@ -83,8 +83,9 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 		 */
 		ready: function() {
 			var partial = this;
-			_.each( _.pluck( partial.placements(), 'container' ), function( container ) {
-				$( container ).attr( 'title', self.data.l10n.shiftClickToEdit );
+			_.each( partial.placements(), function( placement ) {
+				$( placement.container ).attr( 'title', self.data.l10n.shiftClickToEdit );
+				partial.createEditShortcutForPlacement( placement );
 			} );
 			$( document ).on( 'click', partial.params.selector, function( e ) {
 				if ( ! e.shiftKey ) {
@@ -99,6 +100,141 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 			} );
 		},
 
+		/**
+		 * Create and show the edit shortcut for a given partial placement container.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @param {Placement} placement The placement container element.
+		 * @returns {void}
+		 */
+		createEditShortcutForPlacement: function( placement ) {
+			var partial = this, $shortcut, $placementContainer, illegalAncestorSelector, illegalContainerSelector;
+			if ( ! placement.container ) {
+				return;
+			}
+			$placementContainer = $( placement.container );
+			illegalAncestorSelector = 'head';
+			illegalContainerSelector = 'area, audio, base, bdi, bdo, br, button, canvas, col, colgroup, command, datalist, embed, head, hr, html, iframe, img, input, keygen, label, link, map, math, menu, meta, noscript, object, optgroup, option, param, progress, rp, rt, ruby, script, select, source, style, svg, table, tbody, textarea, tfoot, thead, title, tr, track, video, wbr';
+			if ( ! $placementContainer.length || $placementContainer.is( illegalContainerSelector ) || $placementContainer.closest( illegalAncestorSelector ).length ) {
+				return;
+			}
+			$shortcut = partial.createEditShortcut();
+			partial.addEditShortcutToPlacement( placement, $shortcut );
+			$shortcut.on( 'click', function( event ) {
+				event.preventDefault();
+				event.stopPropagation();
+				partial.showControl();
+			} );
+		},
+
+		/**
+		 * Add an edit shortcut to the placement container.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @param {Placement} placement The placement for the partial.
+		 * @param {jQuery} $editShortcut The shortcut element as a jQuery object.
+		 * @returns {void}
+		 */
+		addEditShortcutToPlacement: function( placement, $editShortcut ) {
+			var $placementContainer = $( placement.container );
+			$placementContainer.prepend( $editShortcut );
+			if ( ! $placementContainer.is( ':visible' ) || 'none' === $placementContainer.css( 'display' ) ) {
+				$editShortcut.addClass( 'customize-partial-edit-shortcut-hidden' );
+			}
+		},
+
+		/**
+		 * Return the unique class name for the edit shortcut button for this partial.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @return {string} Partial ID converted into a class name for use in shortcut.
+		 */
+		getEditShortcutClassName: function() {
+			var partial = this, cleanId;
+			cleanId = partial.id.replace( /]/g, '' ).replace( /\[/g, '-' );
+			return 'customize-partial-edit-shortcut-' + cleanId;
+		},
+
+		/**
+		 * Return the appropriate translated string for the edit shortcut button.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @return {string} Tooltip for edit shortcut.
+		 */
+		getEditShortcutTitle: function() {
+			var partial = this, l10n = self.data.l10n;
+			switch ( partial.getType() ) {
+				case 'widget':
+					return l10n.clickEditWidget;
+				case 'blogname':
+					return l10n.clickEditTitle;
+				case 'blogdescription':
+					return l10n.clickEditTitle;
+				case 'nav_menu':
+					return l10n.clickEditMenu;
+				default:
+					return l10n.clickEditMisc;
+			}
+		},
+
+		/**
+		 * Return the type of this partial
+		 *
+		 * Will use `params.type` if set, but otherwise will try to infer type from settingId.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @return {string} Type of partial derived from type param or the related setting ID.
+		 */
+		getType: function() {
+			var partial = this, settingId;
+			settingId = partial.params.primarySetting || _.first( partial.settings() ) || 'unknown';
+			if ( partial.params.type ) {
+				return partial.params.type;
+			}
+			if ( settingId.match( /^nav_menu_instance\[/ ) ) {
+				return 'nav_menu';
+			}
+			if ( settingId.match( /^widget_.+\[\d+]$/ ) ) {
+				return 'widget';
+			}
+			return settingId;
+		},
+
+		/**
+		 * Create an edit shortcut button for this partial.
+		 *
+		 * @since 4.7.0
+		 * @access public
+		 *
+		 * @return {jQuery} The edit shortcut button element.
+		 */
+		createEditShortcut: function() {
+			var partial = this, shortcutTitle, $buttonContainer, $button, $image;
+			shortcutTitle = partial.getEditShortcutTitle();
+			$buttonContainer = $( '<span>', {
+				'class': 'customize-partial-edit-shortcut ' + partial.getEditShortcutClassName()
+			} );
+			$button = $( '<button>', {
+				'aria-label': shortcutTitle,
+				'title': shortcutTitle,
+				'class': 'customize-partial-edit-shortcut-button'
+			} );
+			$image = $( '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z"/></svg>' );
+			$button.append( $image );
+			$buttonContainer.append( $button );
+			return $buttonContainer;
+		},
+
 		/**
 		 * Find all placements for this partial int he document.
 		 *
@@ -176,10 +312,16 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 		 * @since 4.5.0
 		 */
 		showControl: function() {
-			var partial = this, settingId = partial.params.primarySetting;
+			var partial = this, settingId = partial.params.primarySetting, menuSlug;
 			if ( ! settingId ) {
 				settingId = _.first( partial.settings() );
 			}
+			if ( partial.getType() === 'nav_menu' ) {
+				menuSlug = partial.params.navMenuArgs.theme_location;
+				if ( menuSlug ) {
+					settingId = 'nav_menu_locations[' + menuSlug + ']';
+				}
+			}
 			api.preview.send( 'focus-control-for-setting', settingId );
 		},
 
@@ -320,6 +462,7 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 			self.orginalDocumentWrite = null;
 			/* jshint ignore:end */
 
+			partial.createEditShortcutForPlacement( placement );
 			placement.container.removeClass( 'customize-partial-refreshing' );
 
 			// Prevent placement container from being being re-triggered as being rendered among nested partials.
@@ -485,8 +628,9 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 		return {
 			wp_customize: 'on',
 			nonce: api.settings.nonce.preview,
-			theme: api.settings.theme.stylesheet,
-			customized: JSON.stringify( dirtyCustomized )
+			customize_theme: api.settings.theme.stylesheet,
+			customized: JSON.stringify( dirtyCustomized ),
+			customize_changeset_uuid: api.settings.changeset.uuid
 		};
 	};
 
@@ -668,7 +812,7 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 					self._pendingPartialRequests = {};
 				} );
 			},
-			self.data.refreshBuffer
+			api.settings.timeouts.selectiveRefresh
 		);
 
 		return partialRequest.deferred.promise();
@@ -745,11 +889,6 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 	api.bind( 'preview-ready', function() {
 		var handleSettingChange, watchSettingChange, unwatchSettingChange;
 
-		// Polyfill for IE8 to support the document.head attribute.
-		if ( ! document.head ) {
-			document.head = $( 'head:first' )[0];
-		}
-
 		_.extend( self.data, _customizePartialRefreshExports );
 
 		// Create the partial JS models.
@@ -859,6 +998,17 @@ wp.customize.selectiveRefresh = ( function( $, api ) {
 			}
 		} );
 
+		api.preview.bind( 'edit-shortcut-visibility', function( visibility ) {
+			api.selectiveRefresh.editShortcutVisibility.set( visibility );
+		} );
+		api.selectiveRefresh.editShortcutVisibility.bind( function( visibility ) {
+			var body = $( document.body ), shouldAnimateHide;
+
+			shouldAnimateHide = ( 'hidden' === visibility && body.hasClass( 'customize-partial-edit-shortcuts-shown' ) && ! body.hasClass( 'customize-partial-edit-shortcuts-hidden' ) );
+			body.toggleClass( 'customize-partial-edit-shortcuts-hidden', shouldAnimateHide );
+			body.toggleClass( 'customize-partial-edit-shortcuts-shown', 'visible' === visibility );
+		} );
+
 		api.preview.bind( 'active', function() {
 
 			// Make all partials ready.
diff --git a/wp-includes/js/customize-selective-refresh.min.js b/wp-includes/js/customize-selective-refresh.min.js
index d84e66fb7..599120ce7 100644
--- a/wp-includes/js/customize-selective-refresh.min.js
+++ b/wp-includes/js/customize-selective-refresh.min.js
@@ -1 +1 @@
-wp.customize.selectiveRefresh=function(a,b){"use strict";var c,d,e;return c={ready:a.Deferred(),data:{partials:{},renderQueryVar:"",l10n:{shiftClickToEdit:""},refreshBuffer:250},currentRequest:null},_.extend(c,b.Events),d=c.Partial=b.Class.extend({id:null,initialize:function(b,c){var d=this;c=c||{},d.id=b,d.params=_.extend({selector:null,settings:[],primarySetting:null,containerInclusive:!1,fallbackRefresh:!0},c.params||{}),d.deferred={},d.deferred.ready=a.Deferred(),d.deferred.ready.done(function(){d.ready()})},ready:function(){var b=this;_.each(_.pluck(b.placements(),"container"),function(b){a(b).attr("title",c.data.l10n.shiftClickToEdit)}),a(document).on("click",b.params.selector,function(c){c.shiftKey&&(c.preventDefault(),_.each(b.placements(),function(d){a(d.container).is(c.currentTarget)&&b.showControl()}))})},placements:function(){var b,c=this;return b=c.params.selector||"",b&&(b+=", "),b+='[data-customize-partial-id="'+c.id+'"]',a(b).map(function(){var b,d=a(this);if(b=d.data("customize-partial-placement-context"),_.isString(b)&&"{"===b.substr(0,1))throw new Error("context JSON parse error");return new e({partial:c,container:d,context:b})}).get()},settings:function(){var a=this;return a.params.settings&&0!==a.params.settings.length?a.params.settings:a.params.primarySetting?[a.params.primarySetting]:[a.id]},isRelatedSetting:function(a){var c=this;return _.isString(a)&&(a=b(a)),!!a&&-1!==_.indexOf(c.settings(),a.id)},showControl:function(){var a=this,c=a.params.primarySetting;c||(c=_.first(a.settings())),b.preview.send("focus-control-for-setting",c)},preparePlacement:function(b){a(b.container).addClass("customize-partial-refreshing")},_pendingRefreshPromise:null,refresh:function(){var a,b=this;return a=c.requestPartial(b),b._pendingRefreshPromise||(_.each(b.placements(),function(a){b.preparePlacement(a)}),a.done(function(a){_.each(a,function(a){b.renderContent(a)})}),a.fail(function(a,c){b.fallback(a,c)}),b._pendingRefreshPromise=a,a.always(function(){b._pendingRefreshPromise=null})),a},renderContent:function(b){var d,e,f=this;if(!b.container)return f.fallback(new Error("no_container"),[b]),!1;if(b.container=a(b.container),!1===b.addedContent)return f.fallback(new Error("missing_render"),[b]),!1;if(!_.isString(b.addedContent))return f.fallback(new Error("non_string_content"),[b]),!1;c.orginalDocumentWrite=document.write,document.write=function(){throw new Error(c.data.l10n.badDocumentWrite)};try{if(d=b.addedContent,wp.emoji&&wp.emoji.parse&&!a.contains(document.head,b.container[0])&&(d=wp.emoji.parse(d)),f.params.containerInclusive)e=a(d),b.context=_.extend(b.context,e.data("customize-partial-placement-context")||{}),e.data("customize-partial-placement-context",b.context),b.removedNodes=b.container,b.container=e,b.removedNodes.replaceWith(b.container),b.container.attr("title",c.data.l10n.shiftClickToEdit);else{for(b.removedNodes=document.createDocumentFragment();b.container[0].firstChild;)b.removedNodes.appendChild(b.container[0].firstChild);b.container.html(d)}b.container.removeClass("customize-render-content-error")}catch(g){"undefined"!=typeof console&&console.error&&console.error(f.id,g)}return document.write=c.orginalDocumentWrite,c.orginalDocumentWrite=null,b.container.removeClass("customize-partial-refreshing"),b.container.data("customize-partial-content-rendered",!0),c.trigger("partial-content-rendered",b),!0},fallback:function(){var a=this;a.params.fallbackRefresh&&c.requestFullRefresh()}}),c.Placement=e=b.Class.extend({partial:null,container:null,startNode:null,endNode:null,context:null,addedContent:null,removedNodes:null,initialize:function(b){var c=this;if(b=_.extend({},b||{}),!b.partial||!b.partial.extended(d))throw new Error("Missing partial");b.context=b.context||{},b.container&&(b.container=a(b.container)),_.extend(c,b)}}),c.partialConstructor={},c.partial=new b.Values({defaultConstructor:d}),c.getCustomizeQuery=function(){var a={};return b.each(function(b,c){b._dirty&&(a[c]=b())}),{wp_customize:"on",nonce:b.settings.nonce.preview,theme:b.settings.theme.stylesheet,customized:JSON.stringify(a)}},c._pendingPartialRequests={},c._debouncedTimeoutId=null,c._currentRequest=null,c.requestFullRefresh=function(){b.preview.send("refresh")},c.requestPartial=function(d){var f;return c._debouncedTimeoutId&&(clearTimeout(c._debouncedTimeoutId),c._debouncedTimeoutId=null),c._currentRequest&&(c._currentRequest.abort(),c._currentRequest=null),f=c._pendingPartialRequests[d.id],f&&"pending"===f.deferred.state()||(f={deferred:a.Deferred(),partial:d},c._pendingPartialRequests[d.id]=f),d=null,c._debouncedTimeoutId=setTimeout(function(){var a,d,f,g;c._debouncedTimeoutId=null,a=c.getCustomizeQuery(),f={},d={},_.each(c._pendingPartialRequests,function(a,b){f[b]=a.partial.placements(),c.partial.has(b)?d[b]=_.map(f[b],function(a){return a.context||{}}):a.deferred.rejectWith(a.partial,[new Error("partial_removed"),f[b]])}),a.partials=JSON.stringify(d),a[c.data.renderQueryVar]="1",g=c._currentRequest=wp.ajax.send(null,{data:a,url:b.settings.url.self}),g.done(function(a){c.trigger("render-partials-response",a),a.errors&&"undefined"!=typeof console&&console.warn&&_.each(a.errors,function(a){console.warn(a)}),_.each(c._pendingPartialRequests,function(b,c){var d;_.isArray(a.contents[c])?(d=_.map(a.contents[c],function(a,d){var g=f[c][d];return g?g.addedContent=a:g=new e({partial:b.partial,addedContent:a}),g}),b.deferred.resolveWith(b.partial,[d])):b.deferred.rejectWith(b.partial,[new Error("unrecognized_partial"),f[c]])}),c._pendingPartialRequests={}}),g.fail(function(a,b){"abort"!==b&&(_.each(c._pendingPartialRequests,function(b,c){b.deferred.rejectWith(b.partial,[a,f[c]])}),c._pendingPartialRequests={})})},c.data.refreshBuffer),f.deferred.promise()},c.addPartials=function(b,d){var f;b||(b=document.documentElement),b=a(b),d=_.extend({triggerRendered:!0},d||{}),f=b.find("[data-customize-partial-id]"),b.is("[data-customize-partial-id]")&&(f=f.add(b)),f.each(function(){var b,f,g,h,i,j=a(this);f=j.data("customize-partial-id"),f&&(i=j.data("customize-partial-placement-context")||{},b=c.partial(f),b||(h=j.data("customize-partial-options")||{},h.constructingContainerContext=j.data("customize-partial-placement-context")||{},g=c.partialConstructor[j.data("customize-partial-type")]||c.Partial,b=new g(f,h),c.partial.add(b.id,b)),d.triggerRendered&&!j.data("customize-partial-content-rendered")&&c.trigger("partial-content-rendered",new e({partial:b,context:i,container:j})),j.data("customize-partial-content-rendered",!0))})},b.bind("preview-ready",function(){var d,e,f;document.head||(document.head=a("head:first")[0]),_.extend(c.data,_customizePartialRefreshExports),_.each(c.data.partials,function(a,b){var d,e=c.partial(b);e?_.extend(e.params,a):(d=c.partialConstructor[a.type]||c.Partial,e=new d(b,{params:a}),c.partial.add(b,e))}),d=function(a,b){var d=this;c.partial.each(function(c){c.isRelatedSetting(d,a,b)&&c.refresh()})},e=function(a){d.call(a,a(),null),a.bind(d)},f=function(a){d.call(a,null,a()),a.unbind(d)},b.bind("add",e),b.bind("remove",f),b.each(function(a){a.bind(d)}),c.addPartials(document.documentElement,{triggerRendered:!1}),"undefined"!=typeof MutationObserver&&(c.mutationObserver=new MutationObserver(function(b){_.each(b,function(b){c.addPartials(a(b.target))})}),c.mutationObserver.observe(document.documentElement,{childList:!0,subtree:!0})),b.selectiveRefresh.bind("partial-content-rendered",function(a){a.container&&c.addPartials(a.container)}),b.selectiveRefresh.bind("render-partials-response",function(a){a.setting_validities&&b.preview.send("selective-refresh-setting-validities",a.setting_validities)}),b.preview.bind("active",function(){c.partial.each(function(a){a.deferred.ready.resolve()}),c.partial.bind("add",function(a){a.deferred.ready.resolve()})})}),c}(jQuery,wp.customize);
\ No newline at end of file
+wp.customize.selectiveRefresh=function(a,b){"use strict";var c,d,e;return c={ready:a.Deferred(),editShortcutVisibility:new b.Value,data:{partials:{},renderQueryVar:"",l10n:{shiftClickToEdit:""}},currentRequest:null},_.extend(c,b.Events),d=c.Partial=b.Class.extend({id:null,initialize:function(b,c){var d=this;c=c||{},d.id=b,d.params=_.extend({selector:null,settings:[],primarySetting:null,containerInclusive:!1,fallbackRefresh:!0},c.params||{}),d.deferred={},d.deferred.ready=a.Deferred(),d.deferred.ready.done(function(){d.ready()})},ready:function(){var b=this;_.each(b.placements(),function(d){a(d.container).attr("title",c.data.l10n.shiftClickToEdit),b.createEditShortcutForPlacement(d)}),a(document).on("click",b.params.selector,function(c){c.shiftKey&&(c.preventDefault(),_.each(b.placements(),function(d){a(d.container).is(c.currentTarget)&&b.showControl()}))})},createEditShortcutForPlacement:function(b){var c,d,e,f,g=this;b.container&&(d=a(b.container),e="head",f="area, audio, base, bdi, bdo, br, button, canvas, col, colgroup, command, datalist, embed, head, hr, html, iframe, img, input, keygen, label, link, map, math, menu, meta, noscript, object, optgroup, option, param, progress, rp, rt, ruby, script, select, source, style, svg, table, tbody, textarea, tfoot, thead, title, tr, track, video, wbr",!d.length||d.is(f)||d.closest(e).length||(c=g.createEditShortcut(),g.addEditShortcutToPlacement(b,c),c.on("click",function(a){a.preventDefault(),a.stopPropagation(),g.showControl()})))},addEditShortcutToPlacement:function(b,c){var d=a(b.container);d.prepend(c),d.is(":visible")&&"none"!==d.css("display")||c.addClass("customize-partial-edit-shortcut-hidden")},getEditShortcutClassName:function(){var a,b=this;return a=b.id.replace(/]/g,"").replace(/\[/g,"-"),"customize-partial-edit-shortcut-"+a},getEditShortcutTitle:function(){var a=this,b=c.data.l10n;switch(a.getType()){case"widget":return b.clickEditWidget;case"blogname":return b.clickEditTitle;case"blogdescription":return b.clickEditTitle;case"nav_menu":return b.clickEditMenu;default:return b.clickEditMisc}},getType:function(){var a,b=this;return a=b.params.primarySetting||_.first(b.settings())||"unknown",b.params.type?b.params.type:a.match(/^nav_menu_instance\[/)?"nav_menu":a.match(/^widget_.+\[\d+]$/)?"widget":a},createEditShortcut:function(){var b,c,d,e,f=this;return b=f.getEditShortcutTitle(),c=a("<span>",{"class":"customize-partial-edit-shortcut "+f.getEditShortcutClassName()}),d=a("<button>",{"aria-label":b,title:b,"class":"customize-partial-edit-shortcut-button"}),e=a('<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M13.89 3.39l2.71 2.72c.46.46.42 1.24.03 1.64l-8.01 8.02-5.56 1.16 1.16-5.58s7.6-7.63 7.99-8.03c.39-.39 1.22-.39 1.68.07zm-2.73 2.79l-5.59 5.61 1.11 1.11 5.54-5.65zm-2.97 8.23l5.58-5.6-1.07-1.08-5.59 5.6z"/></svg>'),d.append(e),c.append(d),c},placements:function(){var b,c=this;return b=c.params.selector||"",b&&(b+=", "),b+='[data-customize-partial-id="'+c.id+'"]',a(b).map(function(){var b,d=a(this);if(b=d.data("customize-partial-placement-context"),_.isString(b)&&"{"===b.substr(0,1))throw new Error("context JSON parse error");return new e({partial:c,container:d,context:b})}).get()},settings:function(){var a=this;return a.params.settings&&0!==a.params.settings.length?a.params.settings:a.params.primarySetting?[a.params.primarySetting]:[a.id]},isRelatedSetting:function(a){var c=this;return _.isString(a)&&(a=b(a)),!!a&&-1!==_.indexOf(c.settings(),a.id)},showControl:function(){var a,c=this,d=c.params.primarySetting;d||(d=_.first(c.settings())),"nav_menu"===c.getType()&&(a=c.params.navMenuArgs.theme_location,a&&(d="nav_menu_locations["+a+"]")),b.preview.send("focus-control-for-setting",d)},preparePlacement:function(b){a(b.container).addClass("customize-partial-refreshing")},_pendingRefreshPromise:null,refresh:function(){var a,b=this;return a=c.requestPartial(b),b._pendingRefreshPromise||(_.each(b.placements(),function(a){b.preparePlacement(a)}),a.done(function(a){_.each(a,function(a){b.renderContent(a)})}),a.fail(function(a,c){b.fallback(a,c)}),b._pendingRefreshPromise=a,a.always(function(){b._pendingRefreshPromise=null})),a},renderContent:function(b){var d,e,f=this;if(!b.container)return f.fallback(new Error("no_container"),[b]),!1;if(b.container=a(b.container),!1===b.addedContent)return f.fallback(new Error("missing_render"),[b]),!1;if(!_.isString(b.addedContent))return f.fallback(new Error("non_string_content"),[b]),!1;c.orginalDocumentWrite=document.write,document.write=function(){throw new Error(c.data.l10n.badDocumentWrite)};try{if(d=b.addedContent,wp.emoji&&wp.emoji.parse&&!a.contains(document.head,b.container[0])&&(d=wp.emoji.parse(d)),f.params.containerInclusive)e=a(d),b.context=_.extend(b.context,e.data("customize-partial-placement-context")||{}),e.data("customize-partial-placement-context",b.context),b.removedNodes=b.container,b.container=e,b.removedNodes.replaceWith(b.container),b.container.attr("title",c.data.l10n.shiftClickToEdit);else{for(b.removedNodes=document.createDocumentFragment();b.container[0].firstChild;)b.removedNodes.appendChild(b.container[0].firstChild);b.container.html(d)}b.container.removeClass("customize-render-content-error")}catch(g){"undefined"!=typeof console&&console.error&&console.error(f.id,g)}return document.write=c.orginalDocumentWrite,c.orginalDocumentWrite=null,f.createEditShortcutForPlacement(b),b.container.removeClass("customize-partial-refreshing"),b.container.data("customize-partial-content-rendered",!0),c.trigger("partial-content-rendered",b),!0},fallback:function(){var a=this;a.params.fallbackRefresh&&c.requestFullRefresh()}}),c.Placement=e=b.Class.extend({partial:null,container:null,startNode:null,endNode:null,context:null,addedContent:null,removedNodes:null,initialize:function(b){var c=this;if(b=_.extend({},b||{}),!b.partial||!b.partial.extended(d))throw new Error("Missing partial");b.context=b.context||{},b.container&&(b.container=a(b.container)),_.extend(c,b)}}),c.partialConstructor={},c.partial=new b.Values({defaultConstructor:d}),c.getCustomizeQuery=function(){var a={};return b.each(function(b,c){b._dirty&&(a[c]=b())}),{wp_customize:"on",nonce:b.settings.nonce.preview,customize_theme:b.settings.theme.stylesheet,customized:JSON.stringify(a),customize_changeset_uuid:b.settings.changeset.uuid}},c._pendingPartialRequests={},c._debouncedTimeoutId=null,c._currentRequest=null,c.requestFullRefresh=function(){b.preview.send("refresh")},c.requestPartial=function(d){var f;return c._debouncedTimeoutId&&(clearTimeout(c._debouncedTimeoutId),c._debouncedTimeoutId=null),c._currentRequest&&(c._currentRequest.abort(),c._currentRequest=null),f=c._pendingPartialRequests[d.id],f&&"pending"===f.deferred.state()||(f={deferred:a.Deferred(),partial:d},c._pendingPartialRequests[d.id]=f),d=null,c._debouncedTimeoutId=setTimeout(function(){var a,d,f,g;c._debouncedTimeoutId=null,a=c.getCustomizeQuery(),f={},d={},_.each(c._pendingPartialRequests,function(a,b){f[b]=a.partial.placements(),c.partial.has(b)?d[b]=_.map(f[b],function(a){return a.context||{}}):a.deferred.rejectWith(a.partial,[new Error("partial_removed"),f[b]])}),a.partials=JSON.stringify(d),a[c.data.renderQueryVar]="1",g=c._currentRequest=wp.ajax.send(null,{data:a,url:b.settings.url.self}),g.done(function(a){c.trigger("render-partials-response",a),a.errors&&"undefined"!=typeof console&&console.warn&&_.each(a.errors,function(a){console.warn(a)}),_.each(c._pendingPartialRequests,function(b,c){var d;_.isArray(a.contents[c])?(d=_.map(a.contents[c],function(a,d){var g=f[c][d];return g?g.addedContent=a:g=new e({partial:b.partial,addedContent:a}),g}),b.deferred.resolveWith(b.partial,[d])):b.deferred.rejectWith(b.partial,[new Error("unrecognized_partial"),f[c]])}),c._pendingPartialRequests={}}),g.fail(function(a,b){"abort"!==b&&(_.each(c._pendingPartialRequests,function(b,c){b.deferred.rejectWith(b.partial,[a,f[c]])}),c._pendingPartialRequests={})})},b.settings.timeouts.selectiveRefresh),f.deferred.promise()},c.addPartials=function(b,d){var f;b||(b=document.documentElement),b=a(b),d=_.extend({triggerRendered:!0},d||{}),f=b.find("[data-customize-partial-id]"),b.is("[data-customize-partial-id]")&&(f=f.add(b)),f.each(function(){var b,f,g,h,i,j=a(this);f=j.data("customize-partial-id"),f&&(i=j.data("customize-partial-placement-context")||{},b=c.partial(f),b||(h=j.data("customize-partial-options")||{},h.constructingContainerContext=j.data("customize-partial-placement-context")||{},g=c.partialConstructor[j.data("customize-partial-type")]||c.Partial,b=new g(f,h),c.partial.add(b.id,b)),d.triggerRendered&&!j.data("customize-partial-content-rendered")&&c.trigger("partial-content-rendered",new e({partial:b,context:i,container:j})),j.data("customize-partial-content-rendered",!0))})},b.bind("preview-ready",function(){var d,e,f;_.extend(c.data,_customizePartialRefreshExports),_.each(c.data.partials,function(a,b){var d,e=c.partial(b);e?_.extend(e.params,a):(d=c.partialConstructor[a.type]||c.Partial,e=new d(b,{params:a}),c.partial.add(b,e))}),d=function(a,b){var d=this;c.partial.each(function(c){c.isRelatedSetting(d,a,b)&&c.refresh()})},e=function(a){d.call(a,a(),null),a.bind(d)},f=function(a){d.call(a,null,a()),a.unbind(d)},b.bind("add",e),b.bind("remove",f),b.each(function(a){a.bind(d)}),c.addPartials(document.documentElement,{triggerRendered:!1}),"undefined"!=typeof MutationObserver&&(c.mutationObserver=new MutationObserver(function(b){_.each(b,function(b){c.addPartials(a(b.target))})}),c.mutationObserver.observe(document.documentElement,{childList:!0,subtree:!0})),b.selectiveRefresh.bind("partial-content-rendered",function(a){a.container&&c.addPartials(a.container)}),b.selectiveRefresh.bind("render-partials-response",function(a){a.setting_validities&&b.preview.send("selective-refresh-setting-validities",a.setting_validities)}),b.preview.bind("edit-shortcut-visibility",function(a){b.selectiveRefresh.editShortcutVisibility.set(a)}),b.selectiveRefresh.editShortcutVisibility.bind(function(b){var c,d=a(document.body);c="hidden"===b&&d.hasClass("customize-partial-edit-shortcuts-shown")&&!d.hasClass("customize-partial-edit-shortcuts-hidden"),d.toggleClass("customize-partial-edit-shortcuts-hidden",c),d.toggleClass("customize-partial-edit-shortcuts-shown","visible"===b)}),b.preview.bind("active",function(){c.partial.each(function(a){a.deferred.ready.resolve()}),c.partial.bind("add",function(a){a.deferred.ready.resolve()})})}),c}(jQuery,wp.customize);
\ No newline at end of file
diff --git a/wp-includes/js/heartbeat.js b/wp-includes/js/heartbeat.js
index 9867ceb1d..6c5e8d151 100644
--- a/wp-includes/js/heartbeat.js
+++ b/wp-includes/js/heartbeat.js
@@ -131,7 +131,7 @@
 				// Needed for some hosts that cannot handle frequent requests and the user may exceed the allocated server CPU time, etc.
 				// The minimal interval can be up to 600 sec. however setting it to longer than 120 sec. will limit or disable
 				// some of the functionality (like post locks).
-				// Once set at initialization, minimalInterval cannot be changed/overriden.
+				// Once set at initialization, minimalInterval cannot be changed/overridden.
 				if ( options.minimalInterval ) {
 					options.minimalInterval = parseInt( options.minimalInterval, 10 );
 					settings.minimalInterval = options.minimalInterval > 0 && options.minimalInterval <= 600 ? options.minimalInterval * 1000 : 0;
diff --git a/wp-includes/js/mce-view.js b/wp-includes/js/mce-view.js
index 3d2616d78..8c8de56a0 100644
--- a/wp-includes/js/mce-view.js
+++ b/wp-includes/js/mce-view.js
@@ -157,6 +157,14 @@
 
 			text = tinymce.DOM.decode( text );
 
+			if ( text.indexOf( '[' ) !== -1 && text.indexOf( ']' ) !== -1 ) {
+				// Looks like a shortcode? Remove any line breaks from inside of shortcodes
+				// or autop will replace them with <p> and <br> later and the string won't match.
+				text = text.replace( /\[[^\]]+\]/g, function( match ) {
+					return match.replace( /[\r\n]/g, '' );
+				});
+			}
+
 			if ( ! force ) {
 				instance = this.getInstance( text );
 
@@ -208,7 +216,7 @@
 		 */
 		render: function( force ) {
 			_.each( instances, function( instance ) {
-				instance.render( force );
+				instance.render( null, force );
 			} );
 		},
 
@@ -294,7 +302,7 @@
 		initialize: function() {},
 
 		/**
-		 * Retuns the content to render in the view node.
+		 * Returns the content to render in the view node.
 		 *
 		 * @return {*}
 		 */
@@ -490,7 +498,8 @@
 				var dom = editor.dom,
 					styles = '',
 					bodyClasses = editor.getBody().className || '',
-					editorHead = editor.getDoc().getElementsByTagName( 'head' )[0];
+					editorHead = editor.getDoc().getElementsByTagName( 'head' )[0],
+					iframe, iframeWin, iframeDoc, MutationObserver, observer, i, block;
 
 				tinymce.each( dom.$( 'link[rel="stylesheet"]', editorHead ), function( link ) {
 					if ( link.href && link.href.indexOf( 'skins/lightgray/content.min.css' ) === -1 &&
@@ -511,135 +520,137 @@
 					}, '\u200B' );
 				}
 
-				// Seems the browsers need a bit of time to insert/set the view nodes,
-				// or the iframe will fail especially when switching Text => Visual.
-				setTimeout( function() {
-					var iframe, iframeWin, iframeDoc, MutationObserver, observer, i, block;
+				editor.undoManager.transact( function() {
+					node.innerHTML = '';
 
-					editor.undoManager.transact( function() {
-						node.innerHTML = '';
+					iframe = dom.add( node, 'iframe', {
+						/* jshint scripturl: true */
+						src: tinymce.Env.ie ? 'javascript:""' : '',
+						frameBorder: '0',
+						allowTransparency: 'true',
+						scrolling: 'no',
+						'class': 'wpview-sandbox',
+						style: {
+							width: '100%',
+							display: 'block'
+						},
+						height: self.iframeHeight
+					} );
 
-						iframe = dom.add( node, 'iframe', {
-							/* jshint scripturl: true */
-							src: tinymce.Env.ie ? 'javascript:""' : '',
-							frameBorder: '0',
-							allowTransparency: 'true',
-							scrolling: 'no',
-							'class': 'wpview-sandbox',
-							style: {
-								width: '100%',
-								display: 'block'
-							},
-							height: self.iframeHeight
-						} );
+					dom.add( node, 'span', { 'class': 'mce-shim' } );
+					dom.add( node, 'span', { 'class': 'wpview-end' } );
+				} );
 
-						dom.add( node, 'span', { 'class': 'mce-shim' } );
-						dom.add( node, 'span', { 'class': 'wpview-end' } );
-					} );
+				// Bail if the iframe node is not attached to the DOM.
+				// Happens when the view is dragged in the editor.
+				// There is a browser restriction when iframes are moved in the DOM. They get emptied.
+				// The iframe will be rerendered after dropping the view node at the new location.
+				if ( ! iframe.contentWindow ) {
+					return;
+				}
+
+				iframeWin = iframe.contentWindow;
+				iframeDoc = iframeWin.document;
+				iframeDoc.open();
+
+				iframeDoc.write(
+					'<!DOCTYPE html>' +
+					'<html>' +
+						'<head>' +
+							'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' +
+							head +
+							styles +
+							'<style>' +
+								'html {' +
+									'background: transparent;' +
+									'padding: 0;' +
+									'margin: 0;' +
+								'}' +
+								'body#wpview-iframe-sandbox {' +
+									'background: transparent;' +
+									'padding: 1px 0 !important;' +
+									'margin: -1px 0 0 !important;' +
+								'}' +
+								'body#wpview-iframe-sandbox:before,' +
+								'body#wpview-iframe-sandbox:after {' +
+									'display: none;' +
+									'content: "";' +
+								'}' +
+							'</style>' +
+						'</head>' +
+						'<body id="wpview-iframe-sandbox" class="' + bodyClasses + '">' +
+							body +
+						'</body>' +
+					'</html>'
+				);
+
+				iframeDoc.close();
 
-					// Bail if the iframe node is not attached to the DOM.
-					// Happens when the view is dragged in the editor.
-					// There is a browser restriction when iframes are moved in the DOM. They get emptied.
-					// The iframe will be rerendered after dropping the view node at the new location.
-					if ( ! iframe.contentWindow ) {
+				function resize() {
+					var $iframe;
+
+					if ( block ) {
 						return;
 					}
 
-					iframeWin = iframe.contentWindow;
-					iframeDoc = iframeWin.document;
-					iframeDoc.open();
-
-					iframeDoc.write(
-						'<!DOCTYPE html>' +
-						'<html>' +
-							'<head>' +
-								'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' +
-								head +
-								styles +
-								'<style>' +
-									'html {' +
-										'background: transparent;' +
-										'padding: 0;' +
-										'margin: 0;' +
-									'}' +
-									'body#wpview-iframe-sandbox {' +
-										'background: transparent;' +
-										'padding: 1px 0 !important;' +
-										'margin: -1px 0 0 !important;' +
-									'}' +
-									'body#wpview-iframe-sandbox:before,' +
-									'body#wpview-iframe-sandbox:after {' +
-										'display: none;' +
-										'content: "";' +
-									'}' +
-								'</style>' +
-							'</head>' +
-							'<body id="wpview-iframe-sandbox" class="' + bodyClasses + '">' +
-								body +
-							'</body>' +
-						'</html>'
-					);
-
-					iframeDoc.close();
-
-					function resize() {
-						var $iframe;
-
-						if ( block ) {
-							return;
-						}
-
-						// Make sure the iframe still exists.
-						if ( iframe.contentWindow ) {
-							$iframe = $( iframe );
-							self.iframeHeight = $( iframeDoc.body ).height();
+					// Make sure the iframe still exists.
+					if ( iframe.contentWindow ) {
+						$iframe = $( iframe );
+						self.iframeHeight = $( iframeDoc.body ).height();
 
-							if ( $iframe.height() !== self.iframeHeight ) {
-								$iframe.height( self.iframeHeight );
-								editor.nodeChanged();
-							}
+						if ( $iframe.height() !== self.iframeHeight ) {
+							$iframe.height( self.iframeHeight );
+							editor.nodeChanged();
 						}
 					}
+				}
 
-					if ( self.iframeHeight ) {
-						block = true;
+				if ( self.iframeHeight ) {
+					block = true;
 
-						setTimeout( function() {
-							block = false;
-							resize();
-						}, 3000 );
-					}
+					setTimeout( function() {
+						block = false;
+						resize();
+					}, 3000 );
+				}
+
+				function reload() {
+					$( node ).data( 'rendered', null );
 
-					$( iframeWin ).on( 'load', resize );
+					setTimeout( function() {
+						wp.mce.views.render();
+					} );
+				}
 
-					MutationObserver = iframeWin.MutationObserver || iframeWin.WebKitMutationObserver || iframeWin.MozMutationObserver;
+				$( iframeWin ).on( 'load', resize ).on( 'unload', reload );
 
-					if ( MutationObserver ) {
-						observer = new MutationObserver( _.debounce( resize, 100 ) );
+				MutationObserver = iframeWin.MutationObserver || iframeWin.WebKitMutationObserver || iframeWin.MozMutationObserver;
 
-						observer.observe( iframeDoc.body, {
-							attributes: true,
-							childList: true,
-							subtree: true
-						} );
-					} else {
-						for ( i = 1; i < 6; i++ ) {
-							setTimeout( resize, i * 700 );
-						}
+				if ( MutationObserver ) {
+					observer = new MutationObserver( _.debounce( resize, 100 ) );
+
+					observer.observe( iframeDoc.body, {
+						attributes: true,
+						childList: true,
+						subtree: true
+					} );
+				} else {
+					for ( i = 1; i < 6; i++ ) {
+						setTimeout( resize, i * 700 );
 					}
+				}
 
-					callback && callback.call( self, editor, node );
-				}, 50 );
+				callback && callback.call( self, editor, node );
 			}, rendered );
 		},
 
 		/**
 		 * Sets a loader for all view nodes tied to this view instance.
 		 */
-		setLoader: function() {
+		setLoader: function( dashicon ) {
 			this.setContent(
 				'<div class="loading-placeholder">' +
-					'<div class="dashicons dashicons-admin-media"></div>' +
+					'<div class="dashicons dashicons-' + ( dashicon || 'admin-media' ) + '"></div>' +
 					'<div class="wpview-loading"><ins></ins></div>' +
 				'</div>'
 			);
diff --git a/wp-includes/js/mce-view.min.js b/wp-includes/js/mce-view.min.js
index 055253af0..ac22c1c66 100644
--- a/wp-includes/js/mce-view.min.js
+++ b/wp-includes/js/mce-view.min.js
@@ -1 +1 @@
-!function(a,b,c,d){"use strict";var e={},f={};b.mce=b.mce||{},b.mce.views={register:function(a,c){e[a]=b.mce.View.extend(_.extend(c,{type:a}))},unregister:function(a){delete e[a]},get:function(a){return e[a]},unbind:function(){_.each(f,function(a){a.unbind()})},setMarkers:function(a){var b,c,d=[{content:a}],f=this;return _.each(e,function(a,e){c=d.slice(),d=[],_.each(c,function(c){var g,h,i=c.content;if(c.processed)return void d.push(c);for(;i&&(g=a.prototype.match(i));)g.index&&d.push({content:i.substring(0,g.index)}),b=f.createInstance(e,g.content,g.options),h=b.loader?".":b.text,d.push({content:b.ignore?h:'<p data-wpview-marker="'+b.encodedText+'">'+h+"</p>",processed:!0}),i=i.slice(g.index+g.content.length);i&&d.push({content:i})})}),a=_.pluck(d,"content").join(""),a.replace(/<p>\s*<p data-wpview-marker=/g,"<p data-wpview-marker=").replace(/<\/p>\s*<\/p>/g,"</p>")},createInstance:function(a,b,c,d){var e,g,h=this.get(a);return b=tinymce.DOM.decode(b),!d&&(g=this.getInstance(b))?g:(e=encodeURIComponent(b),c=_.extend(c||{},{text:b,encodedText:e}),f[e]=new h(c))},getInstance:function(a){return"string"==typeof a?f[encodeURIComponent(a)]:f[d(a).attr("data-wpview-text")]},getText:function(a){return decodeURIComponent(d(a).attr("data-wpview-text")||"")},render:function(a){_.each(f,function(b){b.render(a)})},update:function(a,b,c,d){var e=this.getInstance(c);e&&e.update(a,b,c,d)},edit:function(a,b){var c=this.getInstance(b);c&&c.edit&&c.edit(c.text,function(d,e){c.update(d,a,b,e)})},remove:function(a,b){var c=this.getInstance(b);c&&c.remove(a,b)}},b.mce.View=function(a){_.extend(this,a),this.initialize()},b.mce.View.extend=Backbone.View.extend,_.extend(b.mce.View.prototype,{content:null,loader:!0,initialize:function(){},getContent:function(){return this.content},render:function(a,b){null!=a&&(this.content=a),a=this.getContent(),(this.loader||a)&&(b&&this.unbind(),this.replaceMarkers(),a?this.setContent(a,function(a,b){d(b).data("rendered",!0),this.bindNode.call(this,a,b)},!!b&&null):this.setLoader())},bindNode:function(){},unbindNode:function(){},unbind:function(){this.getNodes(function(a,b){this.unbindNode.call(this,a,b)},!0)},getEditors:function(a){_.each(tinymce.editors,function(b){b.plugins.wpview&&a.call(this,b)},this)},getNodes:function(a,b){this.getEditors(function(c){var e=this;d(c.getBody()).find('[data-wpview-text="'+e.encodedText+'"]').filter(function(){var a;return null==b||(a=d(this).data("rendered")===!0,b?a:!a)}).each(function(){a.call(e,c,this,this)})})},getMarkers:function(a){this.getEditors(function(b){var c=this;d(b.getBody()).find('[data-wpview-marker="'+this.encodedText+'"]').each(function(){a.call(c,b,this)})})},replaceMarkers:function(){this.getMarkers(function(a,b){var c;return this.loader||d(b).text()===this.text?(c=a.$('<div class="wpview wpview-wrap" data-wpview-text="'+this.encodedText+'" data-wpview-type="'+this.type+'" contenteditable="false"></div>'),void a.$(b).replaceWith(c)):void a.dom.setAttrib(b,"data-wpview-marker",null)})},removeMarkers:function(){this.getMarkers(function(a,b){a.dom.setAttrib(b,"data-wpview-marker",null)})},setContent:function(a,b,c){_.isObject(a)&&a.body.indexOf("<script")!==-1?this.setIframes(a.head||"",a.body,b,c):_.isString(a)&&a.indexOf("<script")!==-1?this.setIframes("",a,b,c):this.getNodes(function(c,d){a=a.body||a,a.indexOf("<iframe")!==-1&&(a+='<span class="mce-shim"></span>'),c.undoManager.transact(function(){d.innerHTML="",d.appendChild(_.isString(a)?c.dom.createFragment(a):a),c.dom.add(d,"span",{"class":"wpview-end"})}),b&&b.call(this,c,d)},c)},setIframes:function(a,b,c,e){var f=this;this.getNodes(function(e,g){var h=e.dom,i="",j=e.getBody().className||"",k=e.getDoc().getElementsByTagName("head")[0];tinymce.each(h.$('link[rel="stylesheet"]',k),function(a){a.href&&a.href.indexOf("skins/lightgray/content.min.css")===-1&&a.href.indexOf("skins/wordpress/wp-content.css")===-1&&(i+=h.getOuterHTML(a))}),f.iframeHeight&&h.add(g,"span",{"data-mce-bogus":1,style:{display:"block",width:"100%",height:f.iframeHeight}},"\u200b"),setTimeout(function(){function k(){var a;r||l.contentWindow&&(a=d(l),f.iframeHeight=d(n.body).height(),a.height()!==f.iframeHeight&&(a.height(f.iframeHeight),e.nodeChanged()))}var l,m,n,o,p,q,r;if(e.undoManager.transact(function(){g.innerHTML="",l=h.add(g,"iframe",{src:tinymce.Env.ie?'javascript:""':"",frameBorder:"0",allowTransparency:"true",scrolling:"no","class":"wpview-sandbox",style:{width:"100%",display:"block"},height:f.iframeHeight}),h.add(g,"span",{"class":"mce-shim"}),h.add(g,"span",{"class":"wpview-end"})}),l.contentWindow){if(m=l.contentWindow,n=m.document,n.open(),n.write('<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'+a+i+'<style>html {background: transparent;padding: 0;margin: 0;}body#wpview-iframe-sandbox {background: transparent;padding: 1px 0 !important;margin: -1px 0 0 !important;}body#wpview-iframe-sandbox:before,body#wpview-iframe-sandbox:after {display: none;content: "";}</style></head><body id="wpview-iframe-sandbox" class="'+j+'">'+b+"</body></html>"),n.close(),f.iframeHeight&&(r=!0,setTimeout(function(){r=!1,k()},3e3)),d(m).on("load",k),o=m.MutationObserver||m.WebKitMutationObserver||m.MozMutationObserver)p=new o(_.debounce(k,100)),p.observe(n.body,{attributes:!0,childList:!0,subtree:!0});else for(q=1;q<6;q++)setTimeout(k,700*q);c&&c.call(f,e,g)}},50)},e)},setLoader:function(){this.setContent('<div class="loading-placeholder"><div class="dashicons dashicons-admin-media"></div><div class="wpview-loading"><ins></ins></div></div>')},setError:function(a,b){this.setContent('<div class="wpview-error"><div class="dashicons dashicons-'+(b||"no")+'"></div><p>'+a+"</p></div>")},match:function(a){var b=c.next(this.type,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}},update:function(a,c,f,g){_.find(e,function(e,h){var i=e.prototype.match(a);if(i)return d(f).data("rendered",!1),c.dom.setAttrib(f,"data-wpview-text",encodeURIComponent(a)),b.mce.views.createInstance(h,a,i.options,g).render(),c.focus(),!0})},remove:function(a,b){this.unbindNode.call(this,a,b),a.dom.remove(b),a.focus()}})}(window,window.wp,window.wp.shortcode,window.jQuery),function(a,b,c,d){function e(b){var c={};return a.tinymce?!b||b.indexOf("<")===-1&&b.indexOf(">")===-1?b:(j=j||new a.tinymce.html.Schema(c),k=k||new a.tinymce.html.DomParser(c,j),l=l||new a.tinymce.html.Serializer(c,j),l.serialize(k.parse(b,{forced_root_block:!1}))):b.replace(/<[^>]+>/g,"")}var f,g,h,i,j,k,l;f={state:[],edit:function(a,b){var d=this.type,e=c[d].edit(a);this.pausePlayers&&this.pausePlayers(),_.each(this.state,function(a){e.state(a).on("update",function(a){b(c[d].shortcode(a).string(),"gallery"===d)})}),e.on("close",function(){e.detach()}),e.open()}},g=_.extend({},f,{state:["gallery-edit"],template:c.template("editor-gallery"),initialize:function(){var a=c.gallery.attachments(this.shortcode,c.view.settings.post.id),b=this.shortcode.attrs.named,d=this;a.more().done(function(){a=a.toJSON(),_.each(a,function(a){a.sizes&&(b.size&&a.sizes[b.size]?a.thumbnail=a.sizes[b.size]:a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))}),d.render(d.template({verifyHTML:e,attachments:a,columns:b.columns?parseInt(b.columns,10):c.galleryDefaults.columns}))}).fail(function(a,b){d.setError(b)})}}),h=_.extend({},f,{action:"parse-media-shortcode",initialize:function(){var a=this;this.url&&(this.loader=!1,this.shortcode=c.embed.shortcode({url:this.text})),wp.ajax.post(this.action,{post_ID:c.view.settings.post.id,type:this.shortcode.tag,shortcode:this.shortcode.string()}).done(function(b){a.render(b)}).fail(function(b){a.url?(a.ignore=!0,a.removeMarkers()):a.setError(b.message||b.statusText,"admin-media")}),this.getEditors(function(b){b.on("wpview-selected",function(){a.pausePlayers()})})},pausePlayers:function(){this.getNodes(function(a,b,c){var e=d("iframe.wpview-sandbox",c).get(0);e&&(e=e.contentWindow)&&e.mejs&&_.each(e.mejs.players,function(a){try{a.pause()}catch(b){}})})}}),i=_.extend({},h,{action:"parse-embed",edit:function(a,b){var d=c.embed.edit(a,this.url),e=this;this.pausePlayers(),d.state("embed").props.on("change:url",function(a,b){b&&a.get("url")&&(d.state("embed").metadata=a.toJSON())}),d.state("embed").on("select",function(){var a=d.state("embed").metadata;b(e.url?a.url:c.embed.shortcode(a).string())}),d.on("close",function(){d.detach()}),d.open()}}),b.register("gallery",_.extend({},g)),b.register("audio",_.extend({},h,{state:["audio-details"]})),b.register("video",_.extend({},h,{state:["video-details"]})),b.register("playlist",_.extend({},h,{state:["playlist-edit","video-playlist-edit"]})),b.register("embed",_.extend({},i)),b.register("embedURL",_.extend({},i,{match:function(a){var b=/(^|<p>)(https?:\/\/[^\s"]+?)(<\/p>\s*|$)/gi,c=b.exec(a);if(c)return{index:c.index+c[1].length,content:c[2],options:{url:!0}}}}))}(window,window.wp.mce.views,window.wp.media,window.jQuery);
\ No newline at end of file
+!function(a,b,c,d){"use strict";var e={},f={};b.mce=b.mce||{},b.mce.views={register:function(a,c){e[a]=b.mce.View.extend(_.extend(c,{type:a}))},unregister:function(a){delete e[a]},get:function(a){return e[a]},unbind:function(){_.each(f,function(a){a.unbind()})},setMarkers:function(a){var b,c,d=[{content:a}],f=this;return _.each(e,function(a,e){c=d.slice(),d=[],_.each(c,function(c){var g,h,i=c.content;if(c.processed)return void d.push(c);for(;i&&(g=a.prototype.match(i));)g.index&&d.push({content:i.substring(0,g.index)}),b=f.createInstance(e,g.content,g.options),h=b.loader?".":b.text,d.push({content:b.ignore?h:'<p data-wpview-marker="'+b.encodedText+'">'+h+"</p>",processed:!0}),i=i.slice(g.index+g.content.length);i&&d.push({content:i})})}),a=_.pluck(d,"content").join(""),a.replace(/<p>\s*<p data-wpview-marker=/g,"<p data-wpview-marker=").replace(/<\/p>\s*<\/p>/g,"</p>")},createInstance:function(a,b,c,d){var e,g,h=this.get(a);return b=tinymce.DOM.decode(b),b.indexOf("[")!==-1&&b.indexOf("]")!==-1&&(b=b.replace(/\[[^\]]+\]/g,function(a){return a.replace(/[\r\n]/g,"")})),!d&&(g=this.getInstance(b))?g:(e=encodeURIComponent(b),c=_.extend(c||{},{text:b,encodedText:e}),f[e]=new h(c))},getInstance:function(a){return"string"==typeof a?f[encodeURIComponent(a)]:f[d(a).attr("data-wpview-text")]},getText:function(a){return decodeURIComponent(d(a).attr("data-wpview-text")||"")},render:function(a){_.each(f,function(b){b.render(null,a)})},update:function(a,b,c,d){var e=this.getInstance(c);e&&e.update(a,b,c,d)},edit:function(a,b){var c=this.getInstance(b);c&&c.edit&&c.edit(c.text,function(d,e){c.update(d,a,b,e)})},remove:function(a,b){var c=this.getInstance(b);c&&c.remove(a,b)}},b.mce.View=function(a){_.extend(this,a),this.initialize()},b.mce.View.extend=Backbone.View.extend,_.extend(b.mce.View.prototype,{content:null,loader:!0,initialize:function(){},getContent:function(){return this.content},render:function(a,b){null!=a&&(this.content=a),a=this.getContent(),(this.loader||a)&&(b&&this.unbind(),this.replaceMarkers(),a?this.setContent(a,function(a,b){d(b).data("rendered",!0),this.bindNode.call(this,a,b)},!!b&&null):this.setLoader())},bindNode:function(){},unbindNode:function(){},unbind:function(){this.getNodes(function(a,b){this.unbindNode.call(this,a,b)},!0)},getEditors:function(a){_.each(tinymce.editors,function(b){b.plugins.wpview&&a.call(this,b)},this)},getNodes:function(a,b){this.getEditors(function(c){var e=this;d(c.getBody()).find('[data-wpview-text="'+e.encodedText+'"]').filter(function(){var a;return null==b||(a=d(this).data("rendered")===!0,b?a:!a)}).each(function(){a.call(e,c,this,this)})})},getMarkers:function(a){this.getEditors(function(b){var c=this;d(b.getBody()).find('[data-wpview-marker="'+this.encodedText+'"]').each(function(){a.call(c,b,this)})})},replaceMarkers:function(){this.getMarkers(function(a,b){var c;return this.loader||d(b).text()===this.text?(c=a.$('<div class="wpview wpview-wrap" data-wpview-text="'+this.encodedText+'" data-wpview-type="'+this.type+'" contenteditable="false"></div>'),void a.$(b).replaceWith(c)):void a.dom.setAttrib(b,"data-wpview-marker",null)})},removeMarkers:function(){this.getMarkers(function(a,b){a.dom.setAttrib(b,"data-wpview-marker",null)})},setContent:function(a,b,c){_.isObject(a)&&a.body.indexOf("<script")!==-1?this.setIframes(a.head||"",a.body,b,c):_.isString(a)&&a.indexOf("<script")!==-1?this.setIframes("",a,b,c):this.getNodes(function(c,d){a=a.body||a,a.indexOf("<iframe")!==-1&&(a+='<span class="mce-shim"></span>'),c.undoManager.transact(function(){d.innerHTML="",d.appendChild(_.isString(a)?c.dom.createFragment(a):a),c.dom.add(d,"span",{"class":"wpview-end"})}),b&&b.call(this,c,d)},c)},setIframes:function(a,c,e,f){var g=this;this.getNodes(function(f,h){function i(){var a;q||k.contentWindow&&(a=d(k),g.iframeHeight=d(m.body).height(),a.height()!==g.iframeHeight&&(a.height(g.iframeHeight),f.nodeChanged()))}function j(){d(h).data("rendered",null),setTimeout(function(){b.mce.views.render()})}var k,l,m,n,o,p,q,r=f.dom,s="",t=f.getBody().className||"",u=f.getDoc().getElementsByTagName("head")[0];if(tinymce.each(r.$('link[rel="stylesheet"]',u),function(a){a.href&&a.href.indexOf("skins/lightgray/content.min.css")===-1&&a.href.indexOf("skins/wordpress/wp-content.css")===-1&&(s+=r.getOuterHTML(a))}),g.iframeHeight&&r.add(h,"span",{"data-mce-bogus":1,style:{display:"block",width:"100%",height:g.iframeHeight}},"\u200b"),f.undoManager.transact(function(){h.innerHTML="",k=r.add(h,"iframe",{src:tinymce.Env.ie?'javascript:""':"",frameBorder:"0",allowTransparency:"true",scrolling:"no","class":"wpview-sandbox",style:{width:"100%",display:"block"},height:g.iframeHeight}),r.add(h,"span",{"class":"mce-shim"}),r.add(h,"span",{"class":"wpview-end"})}),k.contentWindow){if(l=k.contentWindow,m=l.document,m.open(),m.write('<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />'+a+s+'<style>html {background: transparent;padding: 0;margin: 0;}body#wpview-iframe-sandbox {background: transparent;padding: 1px 0 !important;margin: -1px 0 0 !important;}body#wpview-iframe-sandbox:before,body#wpview-iframe-sandbox:after {display: none;content: "";}</style></head><body id="wpview-iframe-sandbox" class="'+t+'">'+c+"</body></html>"),m.close(),g.iframeHeight&&(q=!0,setTimeout(function(){q=!1,i()},3e3)),d(l).on("load",i).on("unload",j),n=l.MutationObserver||l.WebKitMutationObserver||l.MozMutationObserver)o=new n(_.debounce(i,100)),o.observe(m.body,{attributes:!0,childList:!0,subtree:!0});else for(p=1;p<6;p++)setTimeout(i,700*p);e&&e.call(g,f,h)}},f)},setLoader:function(a){this.setContent('<div class="loading-placeholder"><div class="dashicons dashicons-'+(a||"admin-media")+'"></div><div class="wpview-loading"><ins></ins></div></div>')},setError:function(a,b){this.setContent('<div class="wpview-error"><div class="dashicons dashicons-'+(b||"no")+'"></div><p>'+a+"</p></div>")},match:function(a){var b=c.next(this.type,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}},update:function(a,c,f,g){_.find(e,function(e,h){var i=e.prototype.match(a);if(i)return d(f).data("rendered",!1),c.dom.setAttrib(f,"data-wpview-text",encodeURIComponent(a)),b.mce.views.createInstance(h,a,i.options,g).render(),c.focus(),!0})},remove:function(a,b){this.unbindNode.call(this,a,b),a.dom.remove(b),a.focus()}})}(window,window.wp,window.wp.shortcode,window.jQuery),function(a,b,c,d){function e(b){var c={};return a.tinymce?!b||b.indexOf("<")===-1&&b.indexOf(">")===-1?b:(j=j||new a.tinymce.html.Schema(c),k=k||new a.tinymce.html.DomParser(c,j),l=l||new a.tinymce.html.Serializer(c,j),l.serialize(k.parse(b,{forced_root_block:!1}))):b.replace(/<[^>]+>/g,"")}var f,g,h,i,j,k,l;f={state:[],edit:function(a,b){var d=this.type,e=c[d].edit(a);this.pausePlayers&&this.pausePlayers(),_.each(this.state,function(a){e.state(a).on("update",function(a){b(c[d].shortcode(a).string(),"gallery"===d)})}),e.on("close",function(){e.detach()}),e.open()}},g=_.extend({},f,{state:["gallery-edit"],template:c.template("editor-gallery"),initialize:function(){var a=c.gallery.attachments(this.shortcode,c.view.settings.post.id),b=this.shortcode.attrs.named,d=this;a.more().done(function(){a=a.toJSON(),_.each(a,function(a){a.sizes&&(b.size&&a.sizes[b.size]?a.thumbnail=a.sizes[b.size]:a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))}),d.render(d.template({verifyHTML:e,attachments:a,columns:b.columns?parseInt(b.columns,10):c.galleryDefaults.columns}))}).fail(function(a,b){d.setError(b)})}}),h=_.extend({},f,{action:"parse-media-shortcode",initialize:function(){var a=this;this.url&&(this.loader=!1,this.shortcode=c.embed.shortcode({url:this.text})),wp.ajax.post(this.action,{post_ID:c.view.settings.post.id,type:this.shortcode.tag,shortcode:this.shortcode.string()}).done(function(b){a.render(b)}).fail(function(b){a.url?(a.ignore=!0,a.removeMarkers()):a.setError(b.message||b.statusText,"admin-media")}),this.getEditors(function(b){b.on("wpview-selected",function(){a.pausePlayers()})})},pausePlayers:function(){this.getNodes(function(a,b,c){var e=d("iframe.wpview-sandbox",c).get(0);e&&(e=e.contentWindow)&&e.mejs&&_.each(e.mejs.players,function(a){try{a.pause()}catch(b){}})})}}),i=_.extend({},h,{action:"parse-embed",edit:function(a,b){var d=c.embed.edit(a,this.url),e=this;this.pausePlayers(),d.state("embed").props.on("change:url",function(a,b){b&&a.get("url")&&(d.state("embed").metadata=a.toJSON())}),d.state("embed").on("select",function(){var a=d.state("embed").metadata;b(e.url?a.url:c.embed.shortcode(a).string())}),d.on("close",function(){d.detach()}),d.open()}}),b.register("gallery",_.extend({},g)),b.register("audio",_.extend({},h,{state:["audio-details"]})),b.register("video",_.extend({},h,{state:["video-details"]})),b.register("playlist",_.extend({},h,{state:["playlist-edit","video-playlist-edit"]})),b.register("embed",_.extend({},i)),b.register("embedURL",_.extend({},i,{match:function(a){var b=/(^|<p>)(https?:\/\/[^\s"]+?)(<\/p>\s*|$)/gi,c=b.exec(a);if(c)return{index:c.index+c[1].length,content:c[2],options:{url:!0}}}}))}(window,window.wp.mce.views,window.wp.media,window.jQuery);
\ No newline at end of file
diff --git a/wp-includes/js/media-editor.js b/wp-includes/js/media-editor.js
index aa407466d..3852543aa 100644
--- a/wp-includes/js/media-editor.js
+++ b/wp-includes/js/media-editor.js
@@ -48,28 +48,9 @@
 		 * @returns {Object} Joined props
 		 */
 		props: function( props, attachment ) {
-			var link, linkUrl, size, sizes, fallbacks,
+			var link, linkUrl, size, sizes,
 				defaultProps = wp.media.view.settings.defaultProps;
 
-			// Final fallbacks run after all processing has been completed.
-			fallbacks = function( props ) {
-				// Generate alt fallbacks and strip tags.
-				if ( 'image' === props.type && ! props.alt ) {
-					if ( props.caption ) {
-						props.alt = props.caption;
-					} else if ( props.title !== props.url ) {
-						props.alt = props.title;
-					} else {
-						props.alt = '';
-					}
-
-					props.alt = props.alt.replace( /<\/?[^>]+>/g, '' );
-					props.alt = props.alt.replace( /[\r\n]+/g, ' ' );
-				}
-
-				return props;
-			};
-
 			props = props ? _.clone( props ) : {};
 
 			if ( attachment && attachment.type ) {
@@ -87,7 +68,7 @@
 
 			// All attachment-specific settings follow.
 			if ( ! attachment ) {
-				return fallbacks( props );
+				return props;
 			}
 
 			props.title = props.title || attachment.title;
@@ -123,7 +104,7 @@
 				props.rel = props.rel || 'attachment wp-att-' + attachment.id;
 			}
 
-			return fallbacks( props );
+			return props;
 		},
 		/**
 		 * Create link markup that is suitable for passing to the editor
@@ -1111,13 +1092,6 @@
 
 					event.preventDefault();
 
-					// Remove focus from the `.insert-media` button.
-					// Prevents Opera from showing the outline of the button
-					// above the modal.
-					//
-					// See: https://core.trac.wordpress.org/ticket/22445
-					elem.blur();
-
 					if ( elem.hasClass( 'gallery' ) ) {
 						options.state = 'gallery';
 						options.title = wp.media.view.l10n.createGalleryTitle;
diff --git a/wp-includes/js/media-editor.min.js b/wp-includes/js/media-editor.min.js
index 1d5c1ce3b..8dabed61a 100644
--- a/wp-includes/js/media-editor.min.js
+++ b/wp-includes/js/media-editor.min.js
@@ -1 +1 @@
-!function(a,b){var c={};wp.media.coerce=function(a,c){return b.isUndefined(a[c])&&!b.isUndefined(this.defaults[c])?a[c]=this.defaults[c]:"true"===a[c]?a[c]=!0:"false"===a[c]&&(a[c]=!1),a[c]},wp.media.string={props:function(a,c){var d,e,f,g,h,i=wp.media.view.settings.defaultProps;return h=function(a){return"image"!==a.type||a.alt||(a.caption?a.alt=a.caption:a.title!==a.url?a.alt=a.title:a.alt="",a.alt=a.alt.replace(/<\/?[^>]+>/g,""),a.alt=a.alt.replace(/[\r\n]+/g," ")),a},a=a?b.clone(a):{},c&&c.type&&(a.type=c.type),"image"===a.type&&(a=b.defaults(a||{},{align:i.align||getUserSetting("align","none"),size:i.size||getUserSetting("imgsize","medium"),url:"",classes:[]})),c?(a.title=a.title||c.title,d=a.link||i.link||getUserSetting("urlbutton","file"),"file"===d||"embed"===d?e=c.url:"post"===d?e=c.link:"custom"===d&&(e=a.linkUrl),a.linkUrl=e||"","image"===c.type?(a.classes.push("wp-image-"+c.id),g=c.sizes,f=g&&g[a.size]?g[a.size]:c,b.extend(a,b.pick(c,"align","caption","alt"),{width:f.width,height:f.height,src:f.url,captionId:"attachment_"+c.id})):"video"===c.type||"audio"===c.type?b.extend(a,b.pick(c,"title","type","icon","mime")):(a.title=a.title||c.filename,a.rel=a.rel||"attachment wp-att-"+c.id),h(a)):h(a)},link:function(a,b){var c;return a=wp.media.string.props(a,b),c={tag:"a",content:a.title,attrs:{href:a.linkUrl}},a.rel&&(c.attrs.rel=a.rel),wp.html.string(c)},audio:function(a,b){return wp.media.string._audioVideo("audio",a,b)},video:function(a,b){return wp.media.string._audioVideo("video",a,b)},_audioVideo:function(a,c,d){var e,f,g;return c=wp.media.string.props(c,d),"embed"!==c.link?wp.media.string.link(c):(e={},"video"===a&&(d.image&&-1===d.image.src.indexOf(d.icon)&&(e.poster=d.image.src),d.width&&(e.width=d.width),d.height&&(e.height=d.height)),g=d.filename.split(".").pop(),b.contains(wp.media.view.settings.embedExts,g)?(e[g]=d.url,f=wp.shortcode.string({tag:a,attrs:e})):wp.media.string.link(c))},image:function(a,c){var d,e,f,g,h={};return a.type="image",a=wp.media.string.props(a,c),e=a.classes||[],h.src=b.isUndefined(c)?a.url:c.url,b.extend(h,b.pick(a,"width","height","alt")),a.align&&!a.caption&&e.push("align"+a.align),a.size&&e.push("size-"+a.size),h["class"]=b.compact(e).join(" "),d={tag:"img",attrs:h,single:!0},a.linkUrl&&(d={tag:"a",attrs:{href:a.linkUrl},content:d}),g=wp.html.string(d),a.caption&&(f={},h.width&&(f.width=h.width),a.captionId&&(f.id=a.captionId),a.align&&(f.align="align"+a.align),g=wp.shortcode.string({tag:"caption",attrs:f,content:g+" "+a.caption})),g}},wp.media.embed={coerce:wp.media.coerce,defaults:{url:"",width:"",height:""},edit:function(a,c){var d,e,f={};return c?f.url=a.replace(/<[^>]+>/g,""):(e=wp.shortcode.next("embed",a).shortcode,f=b.defaults(e.attrs.named,this.defaults),e.content&&(f.url=e.content)),d=wp.media({frame:"post",state:"embed",metadata:f})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.url,delete a.url,new wp.shortcode({tag:"embed",attrs:a,content:c})}},wp.media.collection=function(a){var c={};return b.extend({coerce:wp.media.coerce,attachments:function(a){var d,e,f,g,h=a.string(),i=c[h],j=this;return delete c[h],i?i:(d=b.defaults(a.attrs.named,this.defaults),e=b.pick(d,"orderby","order"),e.type=this.type,e.perPage=-1,void 0!==d.orderby&&(d._orderByField=d.orderby),"rand"===d.orderby&&(d._orderbyRandom=!0),d.orderby&&!/^menu_order(?: ID)?$/i.test(d.orderby)||(e.orderby="menuOrder"),d.ids?(e.post__in=d.ids.split(","),e.orderby="post__in"):d.include&&(e.post__in=d.include.split(",")),d.exclude&&(e.post__not_in=d.exclude.split(",")),e.post__in||(e.uploadedTo=d.id),g=b.omit(d,"id","ids","include","exclude","orderby","order"),b.each(this.defaults,function(a,b){g[b]=j.coerce(g,b)}),f=wp.media.query(e),f[this.tag]=new Backbone.Model(g),f)},shortcode:function(a){var d,e,f=a.props.toJSON(),g=b.pick(f,"orderby","order");return a.type&&(g.type=a.type,delete a.type),a[this.tag]&&b.extend(g,a[this.tag].toJSON()),g.ids=a.pluck("id"),f.uploadedTo&&(g.id=f.uploadedTo),delete g.orderby,g._orderbyRandom?g.orderby="rand":g._orderByField&&"rand"!=g._orderByField&&(g.orderby=g._orderByField),delete g._orderbyRandom,delete g._orderByField,g.ids&&"post__in"===g.orderby&&delete g.orderby,g=this.setDefaults(g),d=new wp.shortcode({tag:this.tag,attrs:g,type:"single"}),e=new wp.media.model.Attachments(a.models,{props:f}),e[this.tag]=a[this.tag],c[d.string()]=e,d},edit:function(a){var c,d,e,f=wp.shortcode.next(this.tag,a),g=this.defaults.id;if(f&&f.content===a)return f=f.shortcode,b.isUndefined(f.get("id"))&&!b.isUndefined(g)&&f.set("id",g),c=this.attachments(f),d=new wp.media.model.Selection(c.models,{props:c.props.toJSON(),multiple:!0}),d[this.tag]=c[this.tag],d.more().done(function(){d.props.set({query:!1}),d.unmirror(),d.props.unset("orderby")}),this.frame&&this.frame.dispose(),e=f.attrs.named.type&&"video"===f.attrs.named.type?"video-"+this.tag+"-edit":this.tag+"-edit",this.frame=wp.media({frame:"post",state:e,title:this.editTitle,editing:!0,multiple:!0,selection:d}).open(),this.frame},setDefaults:function(a){var c=this;return b.each(this.defaults,function(b,d){a[d]=c.coerce(a,d),b===a[d]&&delete a[d]}),a}},a)},wp.media._galleryDefaults={itemtag:"dl",icontag:"dt",captiontag:"dd",columns:"3",link:"post",size:"thumbnail",order:"ASC",id:wp.media.view.settings.post&&wp.media.view.settings.post.id,orderby:"menu_order ID"},wp.media.view.settings.galleryDefaults?wp.media.galleryDefaults=b.extend({},wp.media._galleryDefaults,wp.media.view.settings.galleryDefaults):wp.media.galleryDefaults=wp.media._galleryDefaults,wp.media.gallery=new wp.media.collection({tag:"gallery",type:"image",editTitle:wp.media.view.l10n.editGalleryTitle,defaults:wp.media.galleryDefaults,setDefaults:function(a){var c=this,d=!b.isEqual(wp.media.galleryDefaults,wp.media._galleryDefaults);return b.each(this.defaults,function(b,e){a[e]=c.coerce(a,e),b!==a[e]||d&&b!==wp.media._galleryDefaults[e]||delete a[e]}),a}}),wp.media.featuredImage={get:function(){return wp.media.view.settings.post.featuredImageId},set:function(b){var c=wp.media.view.settings;c.post.featuredImageId=b,wp.media.post("get-post-thumbnail-html",{post_id:c.post.id,thumbnail_id:c.post.featuredImageId,_wpnonce:c.post.nonce}).done(function(b){return"0"==b?void window.alert(window.setPostThumbnailL10n.error):void a(".inside","#postimagediv").html(b)})},remove:function(){wp.media.featuredImage.set(-1)},frame:function(){return this._frame?(wp.media.frame=this._frame,this._frame):(this._frame=wp.media({state:"featured-image",states:[new wp.media.controller.FeaturedImage,new wp.media.controller.EditImage]}),this._frame.on("toolbar:create:featured-image",function(a){this.createSelectToolbar(a,{text:wp.media.view.l10n.setFeaturedImage})},this._frame),this._frame.on("content:render:edit-image",function(){var a=this.state("featured-image").get("selection"),b=new wp.media.view.EditImage({model:a.single(),controller:this}).render();this.content.set(b),b.loadEditor()},this._frame),this._frame.state("featured-image").on("select",this.select),this._frame)},select:function(){var a=this.get("selection").single();wp.media.view.settings.post.featuredImageId&&wp.media.featuredImage.set(a?a.id:-1)},init:function(){a("#postimagediv").on("click","#set-post-thumbnail",function(a){a.preventDefault(),a.stopPropagation(),wp.media.featuredImage.frame().open()}).on("click","#remove-post-thumbnail",function(){return wp.media.featuredImage.remove(),!1})}},a(wp.media.featuredImage.init),wp.media.editor={insert:function(a){var c,d,e=!b.isUndefined(window.tinymce),f=!b.isUndefined(window.QTags);if(d=this.activeEditor?window.wpActiveEditor=this.activeEditor:window.wpActiveEditor,window.send_to_editor)return window.send_to_editor.apply(this,arguments);if(d)e&&(c=tinymce.get(d));else if(e&&tinymce.activeEditor)c=tinymce.activeEditor,d=window.wpActiveEditor=c.id;else if(!f)return!1;if(c&&!c.isHidden()?c.execCommand("mceInsertContent",!1,a):f?QTags.insertContent(a):document.getElementById(d).value+=a,window.tb_remove)try{window.tb_remove()}catch(g){}},add:function(d,e){var f=this.get(d);return f?f:(f=c[d]=wp.media(b.defaults(e||{},{frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0})),f.on("insert",function(c){var d=f.state();c=c||d.get("selection"),c&&a.when.apply(a,c.map(function(a){var b=d.display(a).toJSON();return this.send.attachment(b,a.toJSON())},this)).done(function(){wp.media.editor.insert(b.toArray(arguments).join("\n\n"))})},this),f.state("gallery-edit").on("update",function(a){this.insert(wp.media.gallery.shortcode(a).string())},this),f.state("playlist-edit").on("update",function(a){this.insert(wp.media.playlist.shortcode(a).string())},this),f.state("video-playlist-edit").on("update",function(a){this.insert(wp.media.playlist.shortcode(a).string())},this),f.state("embed").on("select",function(){var a=f.state(),c=a.get("type"),d=a.props.toJSON();d.url=d.url||"","link"===c?(b.defaults(d,{linkText:d.url,linkUrl:d.url}),this.send.link(d).done(function(a){wp.media.editor.insert(a)})):"image"===c&&(b.defaults(d,{title:d.url,linkUrl:"",align:"none",link:"none"}),"none"===d.link?d.linkUrl="":"file"===d.link&&(d.linkUrl=d.url),this.insert(wp.media.string.image(d)))},this),f.state("featured-image").on("select",wp.media.featuredImage.select),f.setState(f.options.state),f)},id:function(a){return a?a:(a=window.wpActiveEditor,a||b.isUndefined(window.tinymce)||!tinymce.activeEditor||(a=tinymce.activeEditor.id),a=a||"")},get:function(a){return a=this.id(a),c[a]},remove:function(a){a=this.id(a),delete c[a]},send:{attachment:function(a,c){var d,e,f=c.caption;return wp.media.view.settings.captions||delete c.caption,a=wp.media.string.props(a,c),d={id:c.id,post_content:c.description,post_excerpt:f},a.linkUrl&&(d.url=a.linkUrl),"image"===c.type?(e=wp.media.string.image(a),b.each({align:"align",size:"image-size",alt:"image_alt"},function(b,c){a[c]&&(d[b]=a[c])})):"video"===c.type?e=wp.media.string.video(a,c):"audio"===c.type?e=wp.media.string.audio(a,c):(e=wp.media.string.link(a),d.post_title=a.title),wp.media.post("send-attachment-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,attachment:d,html:e,post_id:wp.media.view.settings.post.id})},link:function(a){return wp.media.post("send-link-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,src:a.linkUrl,link_text:a.linkText,html:wp.media.string.link(a),post_id:wp.media.view.settings.post.id})}},open:function(a,b){var c;return b=b||{},a=this.id(a),this.activeEditor=a,c=this.get(a),(!c||c.options&&b.state!==c.options.state)&&(c=this.add(a,b)),wp.media.frame=c,c.open()},init:function(){a(document.body).on("click.add-media-button",".insert-media",function(b){var c=a(b.currentTarget),d=c.data("editor"),e={frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0};b.preventDefault(),c.blur(),c.hasClass("gallery")&&(e.state="gallery",e.title=wp.media.view.l10n.createGalleryTitle),wp.media.editor.open(d,e)}),(new wp.media.view.EditorUploader).render()}},b.bindAll(wp.media.editor,"open"),a(wp.media.editor.init)}(jQuery,_);
\ No newline at end of file
+!function(a,b){var c={};wp.media.coerce=function(a,c){return b.isUndefined(a[c])&&!b.isUndefined(this.defaults[c])?a[c]=this.defaults[c]:"true"===a[c]?a[c]=!0:"false"===a[c]&&(a[c]=!1),a[c]},wp.media.string={props:function(a,c){var d,e,f,g,h=wp.media.view.settings.defaultProps;return a=a?b.clone(a):{},c&&c.type&&(a.type=c.type),"image"===a.type&&(a=b.defaults(a||{},{align:h.align||getUserSetting("align","none"),size:h.size||getUserSetting("imgsize","medium"),url:"",classes:[]})),c?(a.title=a.title||c.title,d=a.link||h.link||getUserSetting("urlbutton","file"),"file"===d||"embed"===d?e=c.url:"post"===d?e=c.link:"custom"===d&&(e=a.linkUrl),a.linkUrl=e||"","image"===c.type?(a.classes.push("wp-image-"+c.id),g=c.sizes,f=g&&g[a.size]?g[a.size]:c,b.extend(a,b.pick(c,"align","caption","alt"),{width:f.width,height:f.height,src:f.url,captionId:"attachment_"+c.id})):"video"===c.type||"audio"===c.type?b.extend(a,b.pick(c,"title","type","icon","mime")):(a.title=a.title||c.filename,a.rel=a.rel||"attachment wp-att-"+c.id),a):a},link:function(a,b){var c;return a=wp.media.string.props(a,b),c={tag:"a",content:a.title,attrs:{href:a.linkUrl}},a.rel&&(c.attrs.rel=a.rel),wp.html.string(c)},audio:function(a,b){return wp.media.string._audioVideo("audio",a,b)},video:function(a,b){return wp.media.string._audioVideo("video",a,b)},_audioVideo:function(a,c,d){var e,f,g;return c=wp.media.string.props(c,d),"embed"!==c.link?wp.media.string.link(c):(e={},"video"===a&&(d.image&&-1===d.image.src.indexOf(d.icon)&&(e.poster=d.image.src),d.width&&(e.width=d.width),d.height&&(e.height=d.height)),g=d.filename.split(".").pop(),b.contains(wp.media.view.settings.embedExts,g)?(e[g]=d.url,f=wp.shortcode.string({tag:a,attrs:e})):wp.media.string.link(c))},image:function(a,c){var d,e,f,g,h={};return a.type="image",a=wp.media.string.props(a,c),e=a.classes||[],h.src=b.isUndefined(c)?a.url:c.url,b.extend(h,b.pick(a,"width","height","alt")),a.align&&!a.caption&&e.push("align"+a.align),a.size&&e.push("size-"+a.size),h["class"]=b.compact(e).join(" "),d={tag:"img",attrs:h,single:!0},a.linkUrl&&(d={tag:"a",attrs:{href:a.linkUrl},content:d}),g=wp.html.string(d),a.caption&&(f={},h.width&&(f.width=h.width),a.captionId&&(f.id=a.captionId),a.align&&(f.align="align"+a.align),g=wp.shortcode.string({tag:"caption",attrs:f,content:g+" "+a.caption})),g}},wp.media.embed={coerce:wp.media.coerce,defaults:{url:"",width:"",height:""},edit:function(a,c){var d,e,f={};return c?f.url=a.replace(/<[^>]+>/g,""):(e=wp.shortcode.next("embed",a).shortcode,f=b.defaults(e.attrs.named,this.defaults),e.content&&(f.url=e.content)),d=wp.media({frame:"post",state:"embed",metadata:f})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.url,delete a.url,new wp.shortcode({tag:"embed",attrs:a,content:c})}},wp.media.collection=function(a){var c={};return b.extend({coerce:wp.media.coerce,attachments:function(a){var d,e,f,g,h=a.string(),i=c[h],j=this;return delete c[h],i?i:(d=b.defaults(a.attrs.named,this.defaults),e=b.pick(d,"orderby","order"),e.type=this.type,e.perPage=-1,void 0!==d.orderby&&(d._orderByField=d.orderby),"rand"===d.orderby&&(d._orderbyRandom=!0),d.orderby&&!/^menu_order(?: ID)?$/i.test(d.orderby)||(e.orderby="menuOrder"),d.ids?(e.post__in=d.ids.split(","),e.orderby="post__in"):d.include&&(e.post__in=d.include.split(",")),d.exclude&&(e.post__not_in=d.exclude.split(",")),e.post__in||(e.uploadedTo=d.id),g=b.omit(d,"id","ids","include","exclude","orderby","order"),b.each(this.defaults,function(a,b){g[b]=j.coerce(g,b)}),f=wp.media.query(e),f[this.tag]=new Backbone.Model(g),f)},shortcode:function(a){var d,e,f=a.props.toJSON(),g=b.pick(f,"orderby","order");return a.type&&(g.type=a.type,delete a.type),a[this.tag]&&b.extend(g,a[this.tag].toJSON()),g.ids=a.pluck("id"),f.uploadedTo&&(g.id=f.uploadedTo),delete g.orderby,g._orderbyRandom?g.orderby="rand":g._orderByField&&"rand"!=g._orderByField&&(g.orderby=g._orderByField),delete g._orderbyRandom,delete g._orderByField,g.ids&&"post__in"===g.orderby&&delete g.orderby,g=this.setDefaults(g),d=new wp.shortcode({tag:this.tag,attrs:g,type:"single"}),e=new wp.media.model.Attachments(a.models,{props:f}),e[this.tag]=a[this.tag],c[d.string()]=e,d},edit:function(a){var c,d,e,f=wp.shortcode.next(this.tag,a),g=this.defaults.id;if(f&&f.content===a)return f=f.shortcode,b.isUndefined(f.get("id"))&&!b.isUndefined(g)&&f.set("id",g),c=this.attachments(f),d=new wp.media.model.Selection(c.models,{props:c.props.toJSON(),multiple:!0}),d[this.tag]=c[this.tag],d.more().done(function(){d.props.set({query:!1}),d.unmirror(),d.props.unset("orderby")}),this.frame&&this.frame.dispose(),e=f.attrs.named.type&&"video"===f.attrs.named.type?"video-"+this.tag+"-edit":this.tag+"-edit",this.frame=wp.media({frame:"post",state:e,title:this.editTitle,editing:!0,multiple:!0,selection:d}).open(),this.frame},setDefaults:function(a){var c=this;return b.each(this.defaults,function(b,d){a[d]=c.coerce(a,d),b===a[d]&&delete a[d]}),a}},a)},wp.media._galleryDefaults={itemtag:"dl",icontag:"dt",captiontag:"dd",columns:"3",link:"post",size:"thumbnail",order:"ASC",id:wp.media.view.settings.post&&wp.media.view.settings.post.id,orderby:"menu_order ID"},wp.media.view.settings.galleryDefaults?wp.media.galleryDefaults=b.extend({},wp.media._galleryDefaults,wp.media.view.settings.galleryDefaults):wp.media.galleryDefaults=wp.media._galleryDefaults,wp.media.gallery=new wp.media.collection({tag:"gallery",type:"image",editTitle:wp.media.view.l10n.editGalleryTitle,defaults:wp.media.galleryDefaults,setDefaults:function(a){var c=this,d=!b.isEqual(wp.media.galleryDefaults,wp.media._galleryDefaults);return b.each(this.defaults,function(b,e){a[e]=c.coerce(a,e),b!==a[e]||d&&b!==wp.media._galleryDefaults[e]||delete a[e]}),a}}),wp.media.featuredImage={get:function(){return wp.media.view.settings.post.featuredImageId},set:function(b){var c=wp.media.view.settings;c.post.featuredImageId=b,wp.media.post("get-post-thumbnail-html",{post_id:c.post.id,thumbnail_id:c.post.featuredImageId,_wpnonce:c.post.nonce}).done(function(b){return"0"==b?void window.alert(window.setPostThumbnailL10n.error):void a(".inside","#postimagediv").html(b)})},remove:function(){wp.media.featuredImage.set(-1)},frame:function(){return this._frame?(wp.media.frame=this._frame,this._frame):(this._frame=wp.media({state:"featured-image",states:[new wp.media.controller.FeaturedImage,new wp.media.controller.EditImage]}),this._frame.on("toolbar:create:featured-image",function(a){this.createSelectToolbar(a,{text:wp.media.view.l10n.setFeaturedImage})},this._frame),this._frame.on("content:render:edit-image",function(){var a=this.state("featured-image").get("selection"),b=new wp.media.view.EditImage({model:a.single(),controller:this}).render();this.content.set(b),b.loadEditor()},this._frame),this._frame.state("featured-image").on("select",this.select),this._frame)},select:function(){var a=this.get("selection").single();wp.media.view.settings.post.featuredImageId&&wp.media.featuredImage.set(a?a.id:-1)},init:function(){a("#postimagediv").on("click","#set-post-thumbnail",function(a){a.preventDefault(),a.stopPropagation(),wp.media.featuredImage.frame().open()}).on("click","#remove-post-thumbnail",function(){return wp.media.featuredImage.remove(),!1})}},a(wp.media.featuredImage.init),wp.media.editor={insert:function(a){var c,d,e=!b.isUndefined(window.tinymce),f=!b.isUndefined(window.QTags);if(d=this.activeEditor?window.wpActiveEditor=this.activeEditor:window.wpActiveEditor,window.send_to_editor)return window.send_to_editor.apply(this,arguments);if(d)e&&(c=tinymce.get(d));else if(e&&tinymce.activeEditor)c=tinymce.activeEditor,d=window.wpActiveEditor=c.id;else if(!f)return!1;if(c&&!c.isHidden()?c.execCommand("mceInsertContent",!1,a):f?QTags.insertContent(a):document.getElementById(d).value+=a,window.tb_remove)try{window.tb_remove()}catch(g){}},add:function(d,e){var f=this.get(d);return f?f:(f=c[d]=wp.media(b.defaults(e||{},{frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0})),f.on("insert",function(c){var d=f.state();c=c||d.get("selection"),c&&a.when.apply(a,c.map(function(a){var b=d.display(a).toJSON();return this.send.attachment(b,a.toJSON())},this)).done(function(){wp.media.editor.insert(b.toArray(arguments).join("\n\n"))})},this),f.state("gallery-edit").on("update",function(a){this.insert(wp.media.gallery.shortcode(a).string())},this),f.state("playlist-edit").on("update",function(a){this.insert(wp.media.playlist.shortcode(a).string())},this),f.state("video-playlist-edit").on("update",function(a){this.insert(wp.media.playlist.shortcode(a).string())},this),f.state("embed").on("select",function(){var a=f.state(),c=a.get("type"),d=a.props.toJSON();d.url=d.url||"","link"===c?(b.defaults(d,{linkText:d.url,linkUrl:d.url}),this.send.link(d).done(function(a){wp.media.editor.insert(a)})):"image"===c&&(b.defaults(d,{title:d.url,linkUrl:"",align:"none",link:"none"}),"none"===d.link?d.linkUrl="":"file"===d.link&&(d.linkUrl=d.url),this.insert(wp.media.string.image(d)))},this),f.state("featured-image").on("select",wp.media.featuredImage.select),f.setState(f.options.state),f)},id:function(a){return a?a:(a=window.wpActiveEditor,a||b.isUndefined(window.tinymce)||!tinymce.activeEditor||(a=tinymce.activeEditor.id),a=a||"")},get:function(a){return a=this.id(a),c[a]},remove:function(a){a=this.id(a),delete c[a]},send:{attachment:function(a,c){var d,e,f=c.caption;return wp.media.view.settings.captions||delete c.caption,a=wp.media.string.props(a,c),d={id:c.id,post_content:c.description,post_excerpt:f},a.linkUrl&&(d.url=a.linkUrl),"image"===c.type?(e=wp.media.string.image(a),b.each({align:"align",size:"image-size",alt:"image_alt"},function(b,c){a[c]&&(d[b]=a[c])})):"video"===c.type?e=wp.media.string.video(a,c):"audio"===c.type?e=wp.media.string.audio(a,c):(e=wp.media.string.link(a),d.post_title=a.title),wp.media.post("send-attachment-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,attachment:d,html:e,post_id:wp.media.view.settings.post.id})},link:function(a){return wp.media.post("send-link-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,src:a.linkUrl,link_text:a.linkText,html:wp.media.string.link(a),post_id:wp.media.view.settings.post.id})}},open:function(a,b){var c;return b=b||{},a=this.id(a),this.activeEditor=a,c=this.get(a),(!c||c.options&&b.state!==c.options.state)&&(c=this.add(a,b)),wp.media.frame=c,c.open()},init:function(){a(document.body).on("click.add-media-button",".insert-media",function(b){var c=a(b.currentTarget),d=c.data("editor"),e={frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:!0};b.preventDefault(),c.hasClass("gallery")&&(e.state="gallery",e.title=wp.media.view.l10n.createGalleryTitle),wp.media.editor.open(d,e)}),(new wp.media.view.EditorUploader).render()}},b.bindAll(wp.media.editor,"open"),a(wp.media.editor.init)}(jQuery,_);
\ No newline at end of file
diff --git a/wp-includes/js/media-models.js b/wp-includes/js/media-models.js
index 5cc759787..f5683a939 100644
--- a/wp-includes/js/media-models.js
+++ b/wp-includes/js/media-models.js
@@ -696,7 +696,7 @@ var Attachments = Backbone.Collection.extend({
 		delete this.mirroring;
 	},
 	/**
-	 * Retrive more attachments from the server for the collection.
+	 * Retrieve more attachments from the server for the collection.
 	 *
 	 * Only works if the collection is mirroring a Query Attachments collection,
 	 * and forwards to its `more` method. This collection class doesn't have
diff --git a/wp-includes/js/media-views.js b/wp-includes/js/media-views.js
index e8a8202d5..b421158fc 100644
--- a/wp-includes/js/media-views.js
+++ b/wp-includes/js/media-views.js
@@ -3588,7 +3588,7 @@ Attachments = View.extend({
 	initSortable: function() {
 		var collection = this.collection;
 
-		if ( wp.media.isTouchDevice || ! this.options.sortable || ! $.fn.sortable ) {
+		if ( ! this.options.sortable || ! $.fn.sortable ) {
 			return;
 		}
 
@@ -3647,7 +3647,7 @@ Attachments = View.extend({
 	},
 
 	refreshSortable: function() {
-		if ( wp.media.isTouchDevice || ! this.options.sortable || ! $.fn.sortable ) {
+		if ( ! this.options.sortable || ! $.fn.sortable ) {
 			return;
 		}
 
@@ -6698,6 +6698,8 @@ Modal = wp.media.View.extend({
 		'keydown': 'keydown'
 	},
 
+	clickedOpenerEl: null,
+
 	initialize: function() {
 		_.defaults( this.options, {
 			container: document.body,
@@ -6765,6 +6767,8 @@ Modal = wp.media.View.extend({
 			return this;
 		}
 
+		this.clickedOpenerEl = document.activeElement;
+
 		if ( ! this.views.attached ) {
 			this.attach();
 		}
@@ -6815,8 +6819,12 @@ Modal = wp.media.View.extend({
 		// Hide modal and remove restricted media modal tab focus once it's closed
 		this.$el.hide().undelegate( 'keydown' );
 
-		// Put focus back in useful location once modal is closed
-		$('#wpbody-content').focus();
+		// Put focus back in useful location once modal is closed.
+		if ( null !== this.clickedOpenerEl ) {
+			this.clickedOpenerEl.focus();
+		} else {
+			$( '#wpbody-content' ).focus();
+		}
 
 		this.propagate('close');
 
@@ -7061,7 +7069,7 @@ Search = wp.media.View.extend({
 
 	attributes: {
 		type:        'search',
-		placeholder: l10n.search
+		placeholder: l10n.searchMediaPlaceholder
 	},
 
 	events: {
diff --git a/wp-includes/js/media-views.min.js b/wp-includes/js/media-views.min.js
index f0fdbefca..8e3da4a5f 100644
--- a/wp-includes/js/media-views.min.js
+++ b/wp-includes/js/media-views.min.js
@@ -1,4 +1,4 @@
 !function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){var d,e=wp.media.model.Selection,f=wp.media.controller.Library;d=f.extend({defaults:_.defaults({multiple:"add",filterable:"uploaded",priority:100,syncSelection:!1},f.prototype.defaults),initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-library"),this.set("toolbar",a+"-add"),this.set("menu",a),this.get("library")||this.set("library",wp.media.query({type:this.get("type")})),f.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.get("editLibrary"),c=this.frame.state(this.get("collectionType")+"-edit").get("library");b&&b!==c&&a.unobserve(b),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!c.get(a.cid)&&e.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(c),this.set("editLibrary",c),f.prototype.activate.apply(this,arguments)}}),b.exports=d},{}],2:[function(a,b,c){var d,e=wp.media.controller.Library,f=wp.media.view.l10n,g=jQuery;d=e.extend({defaults:{multiple:!1,sortable:!0,date:!1,searchable:!1,content:"browse",describe:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,SettingsView:!1,syncSelection:!1},initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-edit"),this.set("toolbar",a+"-edit"),this.get("library")||this.set("library",new wp.media.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",wp.media.view.Attachment.EditLibrary),e.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type",this.get("type")),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.renderSettings,this),e.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.renderSettings,this),e.prototype.deactivate.apply(this,arguments)},renderSettings:function(a){var b=this.get("library"),c=this.get("collectionType"),d=this.get("dragInfoText"),e=this.get("SettingsView"),h={};b&&a&&(b[c]=b[c]||new Backbone.Model,h[c]=new e({controller:this,model:b[c],priority:40}),a.sidebar.set(h),d&&a.toolbar.set("dragInfo",new wp.media.View({el:g('<div class="instructions">'+d+"</div>")[0],priority:-40})),a.toolbar.set("reverse",{text:f.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}),b.exports=d},{}],3:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.controller.State.extend({defaults:{id:"cropper",title:e.cropImage,toolbar:"crop",content:"crop",router:!1,canSkipCrop:!1,doCropArgs:{}},activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},deactivate:function(){this.frame.toolbar.mode("browse")},createCropContent:function(){this.cropperView=new wp.media.view.Cropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},removeCropper:function(){this.imgSelect.cancelSelection(),this.imgSelect.setOptions({remove:!0}),this.imgSelect.update(),this.cropperView.remove()},createCropToolbar:function(){var a,b;a=this.get("canSkipCrop")||!1,b={controller:this.frame,items:{insert:{style:"primary",text:e.cropImage,priority:80,requires:{library:!1,selection:!1},click:function(){var a,b=this.controller;a=b.state().get("selection").first(),a.set({cropDetails:b.state().imgSelect.getSelection()}),this.$el.text(e.cropping),this.$el.attr("disabled",!0),b.state().doCrop(a).done(function(a){b.trigger("cropped",a),b.close()}).fail(function(){b.trigger("content:error:crop")})}}}},a&&_.extend(b.items,{skip:{style:"secondary",text:e.skipCropping,priority:70,requires:{library:!1,selection:!1},click:function(){var a=this.controller.state().get("selection").first();this.controller.state().cropperView.remove(),this.controller.trigger("skippedcrop",a),this.controller.close()}}}),this.frame.toolbar.set(new wp.media.view.Toolbar(b))},doCrop:function(a){return wp.ajax.post("custom-header-crop",_.extend({},this.defaults.doCropArgs,{nonce:a.get("nonces").edit,id:a.get("id"),cropDetails:a.get("cropDetails")}))}}),b.exports=d},{}],4:[function(a,b,c){var d,e=wp.media.controller;d=e.Cropper.extend({doCrop:function(a){var b=a.get("cropDetails"),c=this.get("control"),d=b.width/b.height;return c.params.flex_width&&c.params.flex_height?(b.dst_width=b.width,b.dst_height=b.height):(b.dst_width=c.params.flex_width?c.params.height*d:c.params.width,b.dst_height=c.params.flex_height?c.params.width/d:c.params.height),wp.ajax.post("crop-image",{wp_customize:"on",nonce:a.get("nonces").edit,id:a.get("id"),context:c.id,cropDetails:b})}}),b.exports=d},{}],5:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.controller.State.extend({defaults:{id:"edit-image",title:e.editImage,menu:!1,toolbar:"edit-image",content:"edit-image",url:""},activate:function(){this.frame.on("toolbar:render:edit-image",_.bind(this.toolbar,this))},deactivate:function(){this.frame.off("toolbar:render:edit-image")},toolbar:function(){var a=this.frame,b=a.lastState(),c=b&&b.id;a.toolbar.set(new wp.media.view.Toolbar({controller:a,items:{back:{style:"primary",text:e.back,priority:20,click:function(){c?a.setState(c):a.close()}}}}))}}),b.exports=d},{}],6:[function(a,b,c){var d,e=wp.media.view.l10n,f=Backbone.$;d=wp.media.controller.State.extend({defaults:{id:"embed",title:e.insertFromUrlTitle,content:"embed",menu:"default",toolbar:"main-embed",priority:120,type:"link",url:"",metadata:{}},sensitivity:400,initialize:function(a){this.metadata=a.metadata,this.debouncedScan=_.debounce(_.bind(this.scan,this),this.sensitivity),this.props=new Backbone.Model(this.metadata||{url:""}),this.props.on("change:url",this.debouncedScan,this),this.props.on("change:url",this.refresh,this),this.on("scan",this.scanImage,this)},scan:function(){var a,b=this,c={type:"link",scanners:[]};this.props.get("url")&&this.trigger("scan",c),c.scanners.length?(a=c.scanners=f.when.apply(f,c.scanners),a.always(function(){b.get("scanners")===a&&b.set("loading",!1)})):c.scanners=null,c.loading=!!c.scanners,this.set(c)},scanImage:function(a){var b=this.frame,c=this,d=this.props.get("url"),e=new Image,g=f.Deferred();a.scanners.push(g.promise()),e.onload=function(){g.resolve(),c===b.state()&&d===c.props.get("url")&&(c.set({type:"image"}),c.props.set({width:e.width,height:e.height}))},e.onerror=g.reject,e.src=d},refresh:function(){this.frame.toolbar.get().refresh()},reset:function(){this.props.clear().set({url:""}),this.active&&this.refresh()}}),b.exports=d},{}],7:[function(a,b,c){var d,e=wp.media.model.Attachment,f=wp.media.controller.Library,g=wp.media.view.l10n;d=f.extend({defaults:_.defaults({id:"featured-image",title:g.setFeaturedImageTitle,multiple:!1,filterable:"uploaded",toolbar:"featured-image",priority:60,syncSelection:!0},f.prototype.defaults),initialize:function(){var a,b;this.get("library")||this.set("library",wp.media.query({type:"image"})),f.prototype.initialize.apply(this,arguments),a=this.get("library"),b=a.comparator,a.comparator=function(a,c){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(c.cid);return!d&&e?-1:d&&!e?1:b.apply(this,arguments)},a.observe(this.get("selection"))},activate:function(){this.updateSelection(),this.frame.on("open",this.updateSelection,this),f.prototype.activate.apply(this,arguments)},deactivate:function(){this.frame.off("open",this.updateSelection,this),f.prototype.deactivate.apply(this,arguments)},updateSelection:function(){var a,b=this.get("selection"),c=wp.media.view.settings.post.featuredImageId;""!==c&&-1!==c&&(a=e.get(c),a.fetch()),b.reset(a?[a]:[])}}),b.exports=d},{}],8:[function(a,b,c){var d,e=wp.media.model.Selection,f=wp.media.controller.Library,g=wp.media.view.l10n;d=f.extend({defaults:_.defaults({id:"gallery-library",title:g.addToGalleryTitle,multiple:"add",filterable:"uploaded",menu:"gallery",toolbar:"gallery-add",priority:100,syncSelection:!1},f.prototype.defaults),initialize:function(){this.get("library")||this.set("library",wp.media.query({type:"image"})),f.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.frame.state("gallery-edit").get("library");this.editLibrary&&this.editLibrary!==b&&a.unobserve(this.editLibrary),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!b.get(a.cid)&&e.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(b),this.editLibrary=b,f.prototype.activate.apply(this,arguments)}}),b.exports=d},{}],9:[function(a,b,c){var d,e=wp.media.controller.Library,f=wp.media.view.l10n;d=e.extend({defaults:{id:"gallery-edit",title:f.editGalleryTitle,multiple:!1,searchable:!1,sortable:!0,date:!1,display:!1,content:"browse",toolbar:"gallery-edit",describe:!0,displaySettings:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,syncSelection:!1},initialize:function(){this.get("library")||this.set("library",new wp.media.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",wp.media.view.Attachment.EditLibrary),e.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type","image"),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.gallerySettings,this),e.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.gallerySettings,this),e.prototype.deactivate.apply(this,arguments)},gallerySettings:function(a){if(this.get("displaySettings")){var b=this.get("library");b&&a&&(b.gallery=b.gallery||new Backbone.Model,a.sidebar.set({gallery:new wp.media.view.Settings.Gallery({controller:this,model:b.gallery,priority:40})}),a.toolbar.set("reverse",{text:f.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}}),b.exports=d},{}],10:[function(a,b,c){var d,e=wp.media.controller.State,f=wp.media.controller.Library,g=wp.media.view.l10n;d=e.extend({defaults:_.defaults({id:"image-details",title:g.imageDetailsTitle,content:"image-details",menu:!1,router:!1,toolbar:"image-details",editing:!1,priority:60},f.prototype.defaults),initialize:function(a){this.image=a.image,e.prototype.initialize.apply(this,arguments)},activate:function(){this.frame.modal.$el.addClass("image-details")}}),b.exports=d},{}],11:[function(a,b,c){var d,e=wp.media.view.l10n,f=window.getUserSetting,g=window.setUserSetting;d=wp.media.controller.State.extend({defaults:{id:"library",title:e.mediaLibraryTitle,multiple:!1,content:"upload",menu:"default",router:"browse",toolbar:"select",searchable:!0,filterable:!1,sortable:!0,autoSelect:!0,describe:!1,contentUserSetting:!0,syncSelection:!0},initialize:function(){var a,b=this.get("selection");this.get("library")||this.set("library",wp.media.query()),b instanceof wp.media.model.Selection||(a=b,a||(a=this.get("library").props.toJSON(),a=_.omit(a,"orderby","query")),this.set("selection",new wp.media.model.Selection(null,{multiple:this.get("multiple"),props:a}))),this.resetDisplays()},activate:function(){this.syncSelection(),wp.Uploader.queue.on("add",this.uploading,this),this.get("selection").on("add remove reset",this.refreshContent,this),this.get("router")&&this.get("contentUserSetting")&&(this.frame.on("content:activate",this.saveContentMode,this),this.set("content",f("libraryContent",this.get("content"))))},deactivate:function(){this.recordSelection(),this.frame.off("content:activate",this.saveContentMode,this),this.get("selection").off(null,null,this),wp.Uploader.queue.off(null,null,this)},reset:function(){this.get("selection").reset(),this.resetDisplays(),this.refreshContent()},resetDisplays:function(){var a=wp.media.view.settings.defaultProps;this._displays=[],this._defaultDisplaySettings={align:f("align",a.align)||"none",size:f("imgsize",a.size)||"medium",link:f("urlbutton",a.link)||"none"}},display:function(a){var b=this._displays;return b[a.cid]||(b[a.cid]=new Backbone.Model(this.defaultDisplaySettings(a))),b[a.cid]},defaultDisplaySettings:function(a){var b=_.clone(this._defaultDisplaySettings);return(b.canEmbed=this.canEmbed(a))?b.link="embed":this.isImageAttachment(a)||"none"!==b.link||(b.link="file"),b},isImageAttachment:function(a){return a.get("uploading")?/\.(jpe?g|png|gif)$/i.test(a.get("filename")):"image"===a.get("type")},canEmbed:function(a){if(!a.get("uploading")){var b=a.get("type");if("audio"!==b&&"video"!==b)return!1}return _.contains(wp.media.view.settings.embedExts,a.get("filename").split(".").pop())},refreshContent:function(){var a=this.get("selection"),b=this.frame,c=b.router.get(),d=b.content.mode();this.active&&!a.length&&c&&!c.get(d)&&this.frame.content.render(this.get("content"))},uploading:function(a){var b=this.frame.content;"upload"===b.mode()&&this.frame.content.mode("browse"),this.get("autoSelect")&&(this.get("selection").add(a),this.frame.trigger("library:selection:add"))},saveContentMode:function(){if("browse"===this.get("router")){var a=this.frame.content.mode(),b=this.frame.router.get();b&&b.get(a)&&g("libraryContent",a)}}}),_.extend(d.prototype,wp.media.selectionSync),b.exports=d},{}],12:[function(a,b,c){var d,e=wp.media.controller.Library;d=e.extend({defaults:_.defaults({filterable:"uploaded",displaySettings:!1,priority:80,syncSelection:!1},e.prototype.defaults),initialize:function(a){this.media=a.media,this.type=a.type,this.set("library",wp.media.query({type:this.type})),e.prototype.initialize.apply(this,arguments)},activate:function(){wp.media.frame.lastMime&&(this.set("library",wp.media.query({type:wp.media.frame.lastMime})),delete wp.media.frame.lastMime),e.prototype.activate.apply(this,arguments)}}),b.exports=d},{}],13:[function(a,b,c){var d=function(a){_.extend(this,_.pick(a||{},"id","view","selector"))};d.extend=Backbone.Model.extend,_.extend(d.prototype,{mode:function(a){return a?a===this._mode?this:(this.trigger("deactivate"),this._mode=a,this.render(a),this.trigger("activate"),this):this._mode},render:function(a){if(a&&a!==this._mode)return this.mode(a);var b,c={view:null};return this.trigger("create",c),b=c.view,this.trigger("render",b),b&&this.set(b),this},get:function(){return this.view.views.first(this.selector)},set:function(a,b){return b&&(b.add=!1),this.view.views.set(this.selector,a,b)},trigger:function(a){var b,c;if(this._mode)return c=_.toArray(arguments),b=this.id+":"+a,c[0]=b+":"+this._mode,this.view.trigger.apply(this.view,c),c[0]=b,this.view.trigger.apply(this.view,c),this}}),b.exports=d},{}],14:[function(a,b,c){var d,e=wp.media.controller.Library,f=wp.media.view.l10n;d=e.extend({defaults:_.defaults({id:"replace-image",title:f.replaceImageTitle,multiple:!1,filterable:"uploaded",toolbar:"replace",menu:!1,priority:60,syncSelection:!0},e.prototype.defaults),initialize:function(a){var b,c;this.image=a.image,this.get("library")||this.set("library",wp.media.query({type:"image"})),e.prototype.initialize.apply(this,arguments),b=this.get("library"),c=b.comparator,b.comparator=function(a,b){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(b.cid);return!d&&e?-1:d&&!e?1:c.apply(this,arguments)},b.observe(this.get("selection"))},activate:function(){this.updateSelection(),e.prototype.activate.apply(this,arguments)},updateSelection:function(){var a=this.get("selection"),b=this.image.attachment;a.reset(b?[b]:[])}}),b.exports=d},{}],15:[function(a,b,c){var d,e=wp.media.controller;d=e.Cropper.extend({activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},createCropContent:function(){this.cropperView=new wp.media.view.SiteIconCropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},doCrop:function(a){var b=a.get("cropDetails"),c=this.get("control");return b.dst_width=c.params.width,b.dst_height=c.params.height,wp.ajax.post("crop-image",{nonce:a.get("nonces").edit,id:a.get("id"),context:"site-icon",cropDetails:b})}}),b.exports=d},{}],16:[function(a,b,c){var d=function(a){this.states=new Backbone.Collection(a)};d.extend=Backbone.Model.extend,_.extend(d.prototype,Backbone.Events,{state:function(a){return this.states=this.states||new Backbone.Collection,a=a||this._state,a&&!this.states.get(a)&&this.states.add({id:a}),this.states.get(a)},setState:function(a){var b=this.state();return b&&a===b.id||!this.states||!this.states.get(a)?this:(b&&(b.trigger("deactivate"),this._lastState=b.id),this._state=a,this.state().trigger("activate"),this)},lastState:function(){if(this._lastState)return this.state(this._lastState)}}),_.each(["on","off","trigger"],function(a){d.prototype[a]=function(){return this.states=this.states||new Backbone.Collection,this.states[a].apply(this.states,arguments),this}}),b.exports=d},{}],17:[function(a,b,c){var d=Backbone.Model.extend({constructor:function(){this.on("activate",this._preActivate,this),this.on("activate",this.activate,this),this.on("activate",this._postActivate,this),this.on("deactivate",this._deactivate,this),this.on("deactivate",this.deactivate,this),this.on("reset",this.reset,this),this.on("ready",this._ready,this),this.on("ready",this.ready,this),Backbone.Model.apply(this,arguments),this.on("change:menu",this._updateMenu,this)},ready:function(){},activate:function(){},deactivate:function(){},reset:function(){},_ready:function(){this._updateMenu()},_preActivate:function(){this.active=!0},_postActivate:function(){this.on("change:menu",this._menu,this),this.on("change:titleMode",this._title,this),this.on("change:content",this._content,this),this.on("change:toolbar",this._toolbar,this),this.frame.on("title:render:default",this._renderTitle,this),this._title(),this._menu(),this._toolbar(),this._content(),this._router()},_deactivate:function(){this.active=!1,this.frame.off("title:render:default",this._renderTitle,this),this.off("change:menu",this._menu,this),this.off("change:titleMode",this._title,this),this.off("change:content",this._content,this),this.off("change:toolbar",this._toolbar,this)},_title:function(){this.frame.title.render(this.get("titleMode")||"default")},_renderTitle:function(a){a.$el.text(this.get("title")||"")},_router:function(){var a,b=this.frame.router,c=this.get("router");this.frame.$el.toggleClass("hide-router",!c),c&&(this.frame.router.render(c),a=b.get(),a&&a.select&&a.select(this.frame.content.mode()))},_menu:function(){var a,b=this.frame.menu,c=this.get("menu");this.frame.$el.toggleClass("hide-menu",!c),c&&(b.mode(c),a=b.get(),a&&a.select&&a.select(this.id))},_updateMenu:function(){var a=this.previous("menu"),b=this.get("menu");a&&this.frame.off("menu:render:"+a,this._renderMenu,this),b&&this.frame.on("menu:render:"+b,this._renderMenu,this)},_renderMenu:function(a){var b=this.get("menuItem"),c=this.get("title"),d=this.get("priority");!b&&c&&(b={text:c},d&&(b.priority=d)),b&&a.set(this.id,b)}});_.each(["toolbar","content"],function(a){d.prototype["_"+a]=function(){var b=this.get(a);b&&this.frame[a].render(b)}}),b.exports=d},{}],18:[function(a,b,c){var d={syncSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple&&(a.reset([],{silent:!0}),a.validateAll(b.attachments),b.difference=_.difference(b.attachments.models,a.models)),a.single(b.single))},recordSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple?(b.attachments.reset(a.toArray().concat(b.difference)),b.difference=[]):b.attachments.add(a.toArray()),b.single=a._single)}};b.exports=d},{}],19:[function(a,b,c){var d,e=wp.media,f=jQuery;e.isTouchDevice="ontouchend"in document,d=e.view.l10n=window._wpMediaViewsL10n||{},e.view.settings=d.settings||{},delete d.settings,e.model.settings.post=e.view.settings.post,f.support.transition=function(){var a,b=document.documentElement.style,c={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};return a=_.find(_.keys(c),function(a){return!_.isUndefined(b[a])}),a&&{end:c[a]}}(),e.events=_.extend({},Backbone.Events),e.transition=function(a,b){var c=f.Deferred();return b=b||2e3,f.support.transition?(a instanceof f||(a=f(a)),a.first().one(f.support.transition.end,c.resolve),_.delay(c.resolve,b)):c.resolve(),c.promise()},e.controller.Region=a("./controllers/region.js"),e.controller.StateMachine=a("./controllers/state-machine.js"),e.controller.State=a("./controllers/state.js"),e.selectionSync=a("./utils/selection-sync.js"),e.controller.Library=a("./controllers/library.js"),e.controller.ImageDetails=a("./controllers/image-details.js"),e.controller.GalleryEdit=a("./controllers/gallery-edit.js"),e.controller.GalleryAdd=a("./controllers/gallery-add.js"),e.controller.CollectionEdit=a("./controllers/collection-edit.js"),e.controller.CollectionAdd=a("./controllers/collection-add.js"),e.controller.FeaturedImage=a("./controllers/featured-image.js"),e.controller.ReplaceImage=a("./controllers/replace-image.js"),e.controller.EditImage=a("./controllers/edit-image.js"),e.controller.MediaLibrary=a("./controllers/media-library.js"),e.controller.Embed=a("./controllers/embed.js"),e.controller.Cropper=a("./controllers/cropper.js"),e.controller.CustomizeImageCropper=a("./controllers/customize-image-cropper.js"),e.controller.SiteIconCropper=a("./controllers/site-icon-cropper.js"),e.View=a("./views/view.js"),e.view.Frame=a("./views/frame.js"),e.view.MediaFrame=a("./views/media-frame.js"),e.view.MediaFrame.Select=a("./views/frame/select.js"),e.view.MediaFrame.Post=a("./views/frame/post.js"),e.view.MediaFrame.ImageDetails=a("./views/frame/image-details.js"),e.view.Modal=a("./views/modal.js"),e.view.FocusManager=a("./views/focus-manager.js"),e.view.UploaderWindow=a("./views/uploader/window.js"),e.view.EditorUploader=a("./views/uploader/editor.js"),e.view.UploaderInline=a("./views/uploader/inline.js"),e.view.UploaderStatus=a("./views/uploader/status.js"),e.view.UploaderStatusError=a("./views/uploader/status-error.js"),e.view.Toolbar=a("./views/toolbar.js"),e.view.Toolbar.Select=a("./views/toolbar/select.js"),e.view.Toolbar.Embed=a("./views/toolbar/embed.js"),e.view.Button=a("./views/button.js"),e.view.ButtonGroup=a("./views/button-group.js"),e.view.PriorityList=a("./views/priority-list.js"),e.view.MenuItem=a("./views/menu-item.js"),e.view.Menu=a("./views/menu.js"),e.view.RouterItem=a("./views/router-item.js"),e.view.Router=a("./views/router.js"),e.view.Sidebar=a("./views/sidebar.js"),e.view.Attachment=a("./views/attachment.js"),e.view.Attachment.Library=a("./views/attachment/library.js"),e.view.Attachment.EditLibrary=a("./views/attachment/edit-library.js"),e.view.Attachments=a("./views/attachments.js"),e.view.Search=a("./views/search.js"),e.view.AttachmentFilters=a("./views/attachment-filters.js"),e.view.DateFilter=a("./views/attachment-filters/date.js"),e.view.AttachmentFilters.Uploaded=a("./views/attachment-filters/uploaded.js"),e.view.AttachmentFilters.All=a("./views/attachment-filters/all.js"),e.view.AttachmentsBrowser=a("./views/attachments/browser.js"),e.view.Selection=a("./views/selection.js"),e.view.Attachment.Selection=a("./views/attachment/selection.js"),e.view.Attachments.Selection=a("./views/attachments/selection.js"),e.view.Attachment.EditSelection=a("./views/attachment/edit-selection.js"),e.view.Settings=a("./views/settings.js"),e.view.Settings.AttachmentDisplay=a("./views/settings/attachment-display.js"),e.view.Settings.Gallery=a("./views/settings/gallery.js"),e.view.Settings.Playlist=a("./views/settings/playlist.js"),e.view.Attachment.Details=a("./views/attachment/details.js"),e.view.AttachmentCompat=a("./views/attachment-compat.js"),e.view.Iframe=a("./views/iframe.js"),e.view.Embed=a("./views/embed.js"),e.view.Label=a("./views/label.js"),e.view.EmbedUrl=a("./views/embed/url.js"),e.view.EmbedLink=a("./views/embed/link.js"),e.view.EmbedImage=a("./views/embed/image.js"),e.view.ImageDetails=a("./views/image-details.js"),e.view.Cropper=a("./views/cropper.js"),e.view.SiteIconCropper=a("./views/site-icon-cropper.js"),e.view.SiteIconPreview=a("./views/site-icon-preview.js"),e.view.EditImage=a("./views/edit-image.js"),e.view.Spinner=a("./views/spinner.js")},{"./controllers/collection-add.js":1,"./controllers/collection-edit.js":2,"./controllers/cropper.js":3,"./controllers/customize-image-cropper.js":4,"./controllers/edit-image.js":5,"./controllers/embed.js":6,"./controllers/featured-image.js":7,"./controllers/gallery-add.js":8,"./controllers/gallery-edit.js":9,"./controllers/image-details.js":10,"./controllers/library.js":11,"./controllers/media-library.js":12,"./controllers/region.js":13,"./controllers/replace-image.js":14,"./controllers/site-icon-cropper.js":15,"./controllers/state-machine.js":16,"./controllers/state.js":17,"./utils/selection-sync.js":18,"./views/attachment-compat.js":20,"./views/attachment-filters.js":21,"./views/attachment-filters/all.js":22,"./views/attachment-filters/date.js":23,"./views/attachment-filters/uploaded.js":24,"./views/attachment.js":25,"./views/attachment/details.js":26,"./views/attachment/edit-library.js":27,"./views/attachment/edit-selection.js":28,"./views/attachment/library.js":29,"./views/attachment/selection.js":30,"./views/attachments.js":31,"./views/attachments/browser.js":32,"./views/attachments/selection.js":33,"./views/button-group.js":34,"./views/button.js":35,"./views/cropper.js":36,"./views/edit-image.js":37,"./views/embed.js":38,"./views/embed/image.js":39,"./views/embed/link.js":40,"./views/embed/url.js":41,"./views/focus-manager.js":42,"./views/frame.js":43,"./views/frame/image-details.js":44,"./views/frame/post.js":45,"./views/frame/select.js":46,"./views/iframe.js":47,"./views/image-details.js":48,"./views/label.js":49,"./views/media-frame.js":50,"./views/menu-item.js":51,"./views/menu.js":52,"./views/modal.js":53,"./views/priority-list.js":54,"./views/router-item.js":55,"./views/router.js":56,"./views/search.js":57,"./views/selection.js":58,"./views/settings.js":59,"./views/settings/attachment-display.js":60,"./views/settings/gallery.js":61,"./views/settings/playlist.js":62,"./views/sidebar.js":63,"./views/site-icon-cropper.js":64,"./views/site-icon-preview.js":65,"./views/spinner.js":66,"./views/toolbar.js":67,"./views/toolbar/embed.js":68,"./views/toolbar/select.js":69,"./views/uploader/editor.js":70,"./views/uploader/inline.js":71,"./views/uploader/status-error.js":72,"./views/uploader/status.js":73,"./views/uploader/window.js":74,"./views/view.js":75}],20:[function(a,b,c){var d,e=wp.media.View;d=e.extend({tagName:"form",className:"compat-item",events:{submit:"preventDefault","change input":"save","change select":"save","change textarea":"save"},initialize:function(){this.listenTo(this.model,"change:compat",this.render)},dispose:function(){return this.$(":focus").length&&this.save(),e.prototype.dispose.apply(this,arguments)},render:function(){var a=this.model.get("compat");if(a&&a.item)return this.views.detach(),this.$el.html(a.item),this.views.render(),this},preventDefault:function(a){a.preventDefault()},save:function(a){var b={};a&&a.preventDefault(),_.each(this.$el.serializeArray(),function(a){b[a.name]=a.value}),this.controller.trigger("attachment:compat:waiting",["waiting"]),this.model.saveCompat(b).always(_.bind(this.postSave,this))},postSave:function(){this.controller.trigger("attachment:compat:ready",["ready"])}}),b.exports=d},{}],21:[function(a,b,c){var d,e=jQuery;d=wp.media.View.extend({tagName:"select",className:"attachment-filters",id:"media-attachment-filters",events:{change:"change"},keys:[],initialize:function(){this.createFilters(),_.extend(this.filters,this.options.filters),this.$el.html(_.chain(this.filters).map(function(a,b){return{el:e("<option></option>").val(b).html(a.text)[0],priority:a.priority||50}},this).sortBy("priority").pluck("el").value()),this.listenTo(this.model,"change",this.select),this.select()},createFilters:function(){this.filters={}},change:function(){var a=this.filters[this.el.value];a&&this.model.set(a.props)},select:function(){var a=this.model,b="all",c=a.toJSON();_.find(this.filters,function(a,d){var e=_.all(a.props,function(a,b){return a===(_.isUndefined(c[b])?null:c[b])});if(e)return b=d}),this.$el.val(b)}}),b.exports=d},{}],22:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.view.AttachmentFilters.extend({createFilters:function(){var a={};_.each(wp.media.view.settings.mimeTypes||{},function(b,c){a[c]={text:b,props:{status:null,type:c,uploadedTo:null,orderby:"date",order:"DESC"}}}),a.all={text:e.allMediaItems,props:{status:null,type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10},wp.media.view.settings.post.id&&(a.uploaded={text:e.uploadedToThisPost,props:{status:null,type:null,uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}),a.unattached={text:e.unattached,props:{status:null,uploadedTo:0,type:null,orderby:"menuOrder",order:"ASC"},priority:50},wp.media.view.settings.mediaTrash&&this.controller.isModeActive("grid")&&(a.trash={text:e.trash,props:{uploadedTo:null,status:"trash",type:null,orderby:"date",order:"DESC"},priority:50}),this.filters=a}}),b.exports=d},{}],23:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.view.AttachmentFilters.extend({id:"media-attachment-date-filters",createFilters:function(){var a={};_.each(wp.media.view.settings.months||{},function(b,c){a[c]={text:b.text,props:{year:b.year,monthnum:b.month}}}),a.all={text:e.allDates,props:{monthnum:!1,year:!1},priority:10},this.filters=a}}),b.exports=d},{}],24:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.view.AttachmentFilters.extend({createFilters:function(){var a,b=this.model.get("type"),c=wp.media.view.settings.mimeTypes;c&&b&&(a=c[b]),this.filters={all:{text:a||e.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10},uploaded:{text:e.uploadedToThisPost,props:{uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20},unattached:{text:e.unattached,props:{uploadedTo:0,orderby:"menuOrder",order:"ASC"},priority:50}}}}),b.exports=d},{}],25:[function(a,b,c){var d,e=wp.media.View,f=jQuery;d=e.extend({tagName:"li",className:"attachment",template:wp.template("attachment"),attributes:function(){return{tabIndex:0,role:"checkbox","aria-label":this.model.get("title"),"aria-checked":!1,"data-id":this.model.get("id")}},events:{"click .js--select-attachment":"toggleSelectionHandler","change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .attachment-close":"removeFromLibrary","click .check":"checkClickHandler",keydown:"toggleSelectionHandler"},buttons:{},initialize:function(){var a=this.options.selection,b=_.defaults(this.options,{rerenderOnModelChange:!0});b.rerenderOnModelChange?this.listenTo(this.model,"change",this.render):this.listenTo(this.model,"change:percent",this.progress),this.listenTo(this.model,"change:title",this._syncTitle),this.listenTo(this.model,"change:caption",this._syncCaption),this.listenTo(this.model,"change:artist",this._syncArtist),this.listenTo(this.model,"change:album",this._syncAlbum),this.listenTo(this.model,"add",this.select),
-this.listenTo(this.model,"remove",this.deselect),a&&(a.on("reset",this.updateSelect,this),this.listenTo(this.model,"selection:single selection:unsingle",this.details),this.details(this.model,this.controller.state().get("selection"))),this.listenTo(this.controller,"attachment:compat:waiting attachment:compat:ready",this.updateSave)},dispose:function(){var a=this.options.selection;return this.updateAll(),a&&a.off(null,null,this),e.prototype.dispose.apply(this,arguments),this},render:function(){var a=_.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""},this.options);return a.buttons=this.buttons,a.describe=this.controller.state().get("describe"),"image"===a.type&&(a.size=this.imageSize()),a.can={},a.nonces&&(a.can.remove=!!a.nonces["delete"],a.can.save=!!a.nonces.update),this.controller.state().get("allowLocalEdits")&&(a.allowLocalEdits=!0),a.uploading&&!a.percent&&(a.percent=0),this.views.detach(),this.$el.html(this.template(a)),this.$el.toggleClass("uploading",a.uploading),a.uploading?this.$bar=this.$(".media-progress-bar div"):delete this.$bar,this.updateSelect(),this.updateSave(),this.views.render(),this},progress:function(){this.$bar&&this.$bar.length&&this.$bar.width(this.model.get("percent")+"%")},toggleSelectionHandler:function(a){var b;if("INPUT"!==a.target.nodeName&&"BUTTON"!==a.target.nodeName){if(37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode)return void this.controller.trigger("attachment:keydown:arrow",a);if("keydown"!==a.type||13===a.keyCode||32===a.keyCode){if(a.preventDefault(),this.controller.isModeActive("grid")){if(this.controller.isModeActive("edit"))return void this.controller.trigger("edit:attachment",this.model,a.currentTarget);this.controller.isModeActive("select")&&(b="toggle")}a.shiftKey?b="between":(a.ctrlKey||a.metaKey)&&(b="toggle"),this.toggleSelection({method:b}),this.controller.trigger("selection:toggle")}}},toggleSelection:function(a){var b,c,d,e,f=this.collection,g=this.options.selection,h=this.model,i=a&&a.method;if(g){if(b=g.single(),i=_.isUndefined(i)?g.multiple:i,"between"===i&&b&&g.multiple){if(b===h)return;return d=f.indexOf(b),e=f.indexOf(this.model),c=d<e?f.models.slice(d,e+1):f.models.slice(e,d+1),g.add(c),void g.single(h)}if("toggle"===i)return g[this.selected()?"remove":"add"](h),void g.single(h);if("add"===i)return g.add(h),void g.single(h);i||(i="add"),"add"!==i&&(i="reset"),this.selected()?g[b===h?"remove":"single"](h):(g[i](h),g.single(h))}},updateSelect:function(){this[this.selected()?"select":"deselect"]()},selected:function(){var a=this.options.selection;if(a)return!!a.get(this.model.cid)},select:function(a,b){var c=this.options.selection,d=this.controller;!c||b&&b!==c||this.$el.hasClass("selected")||(this.$el.addClass("selected").attr("aria-checked",!0),d.isModeActive("grid")&&d.isModeActive("select")||this.$(".check").attr("tabindex","0"))},deselect:function(a,b){var c=this.options.selection;!c||b&&b!==c||this.$el.removeClass("selected").attr("aria-checked",!1).find(".check").attr("tabindex","-1")},details:function(a,b){var c,d=this.options.selection;d===b&&(c=d.single(),this.$el.toggleClass("details",c===this.model))},imageSize:function(a){var b=this.model.get("sizes"),c=!1;return a=a||"medium",b&&(b[a]?c=b[a]:b.large?c=b.large:b.thumbnail?c=b.thumbnail:b.full&&(c=b.full),c)?_.clone(c):{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}},updateSetting:function(a){var b,c,d=f(a.target).closest("[data-setting]");d.length&&(b=d.data("setting"),c=a.target.value,this.model.get(b)!==c&&this.save(b,c))},save:function(){var a=this,b=this._save=this._save||{status:"ready"},c=this.model.save.apply(this.model,arguments),d=b.requests?f.when(c,b.requests):c;b.savedTimer&&clearTimeout(b.savedTimer),this.updateSave("waiting"),b.requests=d,d.always(function(){b.requests===d&&(a.updateSave("resolved"===d.state()?"complete":"error"),b.savedTimer=setTimeout(function(){a.updateSave("ready"),delete b.savedTimer},2e3))})},updateSave:function(a){var b=this._save=this._save||{status:"ready"};return a&&a!==b.status&&(this.$el.removeClass("save-"+b.status),b.status=a),this.$el.addClass("save-"+b.status),this},updateAll:function(){var a,b=this.$("[data-setting]"),c=this.model;a=_.chain(b).map(function(a){var b,d,e=f("input, textarea, select, [value]",a);if(e.length)return b=f(a).data("setting"),d=e.val(),c.get(b)!==d?[b,d]:void 0}).compact().object().value(),_.isEmpty(a)||c.save(a)},removeFromLibrary:function(a){"keydown"===a.type&&13!==a.keyCode&&32!==a.keyCode||(a.stopPropagation(),this.collection.remove(this.model))},checkClickHandler:function(a){var b=this.options.selection;b&&(a.stopPropagation(),b.where({id:this.model.get("id")}).length?(b.remove(this.model),this.$el.focus()):b.add(this.model))}}),_.each({caption:"_syncCaption",title:"_syncTitle",artist:"_syncArtist",album:"_syncAlbum"},function(a,b){d.prototype[a]=function(a,c){var d=this.$('[data-setting="'+b+'"]');return d.length?c===d.find("input, textarea, select, [value]").val()?this:this.render():this}}),b.exports=d},{}],26:[function(a,b,c){var d,e=wp.media.view.Attachment,f=wp.media.view.l10n;d=e.extend({tagName:"div",className:"attachment-details",template:wp.template("attachment-details"),attributes:function(){return{tabIndex:0,"data-id":this.model.get("id")}},events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment","click .trash-attachment":"trashAttachment","click .untrash-attachment":"untrashAttachment","click .edit-attachment":"editAttachment",keydown:"toggleSelectionHandler"},initialize:function(){this.options=_.defaults(this.options,{rerenderOnModelChange:!1}),this.on("ready",this.initialFocus),e.prototype.initialize.apply(this,arguments)},initialFocus:function(){wp.media.isTouchDevice||this.$('input[type="text"]').eq(0).focus()},deleteAttachment:function(a){a.preventDefault(),window.confirm(f.warnDelete)&&(this.model.destroy(),this.controller.modal.focusManager.focus())},trashAttachment:function(a){var b=this.controller.library;a.preventDefault(),wp.media.view.settings.mediaTrash&&"edit-metadata"===this.controller.content.mode()?(this.model.set("status","trash"),this.model.save().done(function(){b._requery(!0)})):this.model.destroy()},untrashAttachment:function(a){var b=this.controller.library;a.preventDefault(),this.model.set("status","inherit"),this.model.save().done(function(){b._requery(!0)})},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b?(a.preventDefault(),b.set("image",this.model),this.controller.setState("edit-image")):this.$el.addClass("needs-refresh")},toggleSelectionHandler:function(a){return"keydown"===a.type&&9===a.keyCode&&a.shiftKey&&a.target===this.$(":tabbable").get(0)?(this.controller.trigger("attachment:details:shift-tab",a),!1):37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode?void this.controller.trigger("attachment:keydown:arrow",a):void 0}}),b.exports=d},{}],27:[function(a,b,c){var d=wp.media.view.Attachment.extend({buttons:{close:!0}});b.exports=d},{}],28:[function(a,b,c){var d=wp.media.view.Attachment.Selection.extend({buttons:{close:!0}});b.exports=d},{}],29:[function(a,b,c){var d=wp.media.view.Attachment.extend({buttons:{check:!0}});b.exports=d},{}],30:[function(a,b,c){var d=wp.media.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}});b.exports=d},{}],31:[function(a,b,c){var d,e=wp.media.View,f=jQuery;d=e.extend({tagName:"ul",className:"attachments",attributes:{tabIndex:-1},initialize:function(){this.el.id=_.uniqueId("__attachments-view-"),_.defaults(this.options,{refreshSensitivity:wp.media.isTouchDevice?300:200,refreshThreshold:3,AttachmentView:wp.media.view.Attachment,sortable:!1,resize:!0,idealColumnWidth:f(window).width()<640?135:150}),this._viewsByCid={},this.$window=f(window),this.resizeEvent="resize.media-modal-columns",this.collection.on("add",function(a){this.views.add(this.createAttachmentView(a),{at:this.collection.indexOf(a)})},this),this.collection.on("remove",function(a){var b=this._viewsByCid[a.cid];delete this._viewsByCid[a.cid],b&&b.remove()},this),this.collection.on("reset",this.render,this),this.listenTo(this.controller,"library:selection:add",this.attachmentFocus),this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,f(this.options.scrollElement).on("scroll",this.scroll),this.initSortable(),_.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),this.controller.on("open",this.setColumns),_.defer(this.setColumns,this))},bindEvents:function(){this.$window.off(this.resizeEvent).on(this.resizeEvent,_.debounce(this.setColumns,50))},attachmentFocus:function(){this.$("li:first").focus()},restoreFocus:function(){this.$("li.selected:first").focus()},arrowEvent:function(a){var b=this.$el.children("li"),c=this.columns,d=b.filter(":focus").index(),e=d+1<=c?1:Math.ceil((d+1)/c);if(d!==-1){if(37===a.keyCode){if(0===d)return;b.eq(d-1).focus()}if(38===a.keyCode){if(1===e)return;b.eq(d-c).focus()}if(39===a.keyCode){if(b.length===d)return;b.eq(d+1).focus()}if(40===a.keyCode){if(Math.ceil(b.length/c)===e)return;b.eq(d+c).focus()}}},dispose:function(){this.collection.props.off(null,null,this),this.options.resize&&this.$window.off(this.resizeEvent),e.prototype.dispose.apply(this,arguments)},setColumns:function(){var a=this.columns,b=this.$el.width();b&&(this.columns=Math.min(Math.round(b/this.options.idealColumnWidth),12)||1,a&&a===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},initSortable:function(){var a=this.collection;!wp.media.isTouchDevice&&this.options.sortable&&f.fn.sortable&&(this.$el.sortable(_.extend({disabled:!!a.comparator,tolerance:"pointer",start:function(a,b){b.item.data("sortableIndexStart",b.item.index())},update:function(b,c){var d=a.at(c.item.data("sortableIndexStart")),e=a.comparator;delete a.comparator,a.remove(d,{silent:!0}),a.add(d,{silent:!0,at:c.item.index()}),a.comparator=e,a.trigger("reset",a),a.saveMenuOrder()}},this.options.sortable)),a.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!a.comparator)},this),this.collection.props.on("change:orderby",this.refreshSortable,this),this.refreshSortable())},refreshSortable:function(){if(!wp.media.isTouchDevice&&this.options.sortable&&f.fn.sortable){var a=this.collection,b=a.props.get("orderby"),c="menuOrder"===b||!a.comparator;this.$el.sortable("option","disabled",!c)}},createAttachmentView:function(a){var b=new this.options.AttachmentView({controller:this.controller,model:a,collection:this.collection,selection:this.options.selection});return this._viewsByCid[a.cid]=b},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createAttachmentView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var a,b=this,c=this.options.scrollElement,d=c.scrollTop;c===document&&(c=document.body,d=f(document).scrollTop()),f(c).is(":visible")&&this.collection.hasMore()&&(a=this.views.parent.toolbar,c.scrollHeight-(d+c.clientHeight)<c.clientHeight/3&&a.get("spinner").show(),c.scrollHeight<d+c.clientHeight*this.options.refreshThreshold&&this.collection.more().done(function(){b.scroll(),a.get("spinner").hide()}))}}),b.exports=d},{}],32:[function(a,b,c){var d,e=wp.media.View,f=wp.media.view.settings.mediaTrash,g=wp.media.view.l10n,h=jQuery;d=e.extend({tagName:"div",className:"attachments-browser",initialize:function(){_.defaults(this.options,{filters:!1,search:!0,date:!0,display:!1,sidebar:!0,AttachmentView:wp.media.view.Attachment.Library}),this.controller.on("toggle:upload:attachment",this.toggleUploader,this),this.controller.on("edit:selection",this.editSelection),this.createToolbar(),this.createUploader(),this.createAttachments(),this.options.sidebar&&this.createSidebar(),this.updateContent(),this.options.sidebar&&"errors"!==this.options.sidebar||(this.$el.addClass("hide-sidebar"),"errors"===this.options.sidebar&&this.$el.addClass("sidebar-for-errors")),this.collection.on("add remove reset",this.updateContent,this)},editSelection:function(a){a.$(".media-button-backToLibrary").focus()},dispose:function(){return this.options.selection.off(null,null,this),e.prototype.dispose.apply(this,arguments),this},createToolbar:function(){var a,b,c;c={controller:this.controller},this.controller.isModeActive("grid")&&(c.className="media-toolbar wp-filter"),this.toolbar=new wp.media.view.Toolbar(c),this.views.add(this.toolbar),this.toolbar.set("spinner",new wp.media.view.Spinner({priority:-60})),-1!==h.inArray(this.options.filters,["uploaded","all"])&&(this.toolbar.set("filtersLabel",new wp.media.view.Label({value:g.filterByType,attributes:{"for":"media-attachment-filters"},priority:-80}).render()),"uploaded"===this.options.filters?this.toolbar.set("filters",new wp.media.view.AttachmentFilters.Uploaded({controller:this.controller,model:this.collection.props,priority:-80}).render()):(b=new wp.media.view.AttachmentFilters.All({controller:this.controller,model:this.collection.props,priority:-80}),this.toolbar.set("filters",b.render()))),this.controller.isModeActive("grid")?(a=e.extend({className:"view-switch media-grid-view-switch",template:wp.template("media-library-view-switcher")}),this.toolbar.set("libraryViewSwitcher",new a({controller:this.controller,priority:-90}).render()),this.toolbar.set("dateFilterLabel",new wp.media.view.Label({value:g.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new wp.media.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render()),this.toolbar.set("selectModeToggleButton",new wp.media.view.SelectModeToggleButton({text:g.bulkSelect,controller:this.controller,priority:-70}).render()),this.toolbar.set("deleteSelectedButton",new wp.media.view.DeleteSelectedButton({filters:b,style:"primary",disabled:!0,text:f?g.trashSelected:g.deleteSelected,controller:this.controller,priority:-60,click:function(){var a=[],b=[],c=this.controller.state().get("selection"),d=this.controller.state().get("library");c.length&&(f||window.confirm(g.warnBulkDelete))&&(f&&"trash"!==c.at(0).get("status")&&!window.confirm(g.warnBulkTrash)||(c.each(function(c){return c.get("nonces")["delete"]?void(f&&"trash"===c.get("status")?(c.set("status","inherit"),a.push(c.save()),b.push(c)):f?(c.set("status","trash"),a.push(c.save()),b.push(c)):c.destroy({wait:!0})):void b.push(c)}),a.length?(c.remove(b),h.when.apply(null,a).then(_.bind(function(){d._requery(!0),this.controller.trigger("selection:action:done")},this))):this.controller.trigger("selection:action:done")))}}).render()),f&&this.toolbar.set("deleteSelectedPermanentlyButton",new wp.media.view.DeleteSelectedPermanentlyButton({filters:b,style:"primary",disabled:!0,text:g.deleteSelected,controller:this.controller,priority:-55,click:function(){var a=[],b=this.controller.state().get("selection");b.length&&window.confirm(g.warnBulkDelete)&&(b.each(function(b){return b.get("nonces")["delete"]?void b.destroy():void a.push(b)}),b.remove(a),this.controller.trigger("selection:action:done"))}}).render())):this.options.date&&(this.toolbar.set("dateFilterLabel",new wp.media.view.Label({value:g.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new wp.media.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render())),this.options.search&&(this.toolbar.set("searchLabel",new wp.media.view.Label({value:g.searchMediaLabel,attributes:{"for":"media-search-input"},priority:60}).render()),this.toolbar.set("search",new wp.media.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render())),this.options.dragInfo&&this.toolbar.set("dragInfo",new e({el:h('<div class="instructions">'+g.dragInfo+"</div>")[0],priority:-40})),this.options.suggestedWidth&&this.options.suggestedHeight&&this.toolbar.set("suggestedDimensions",new e({el:h('<div class="instructions">'+g.suggestedDimensions+" "+this.options.suggestedWidth+" &times; "+this.options.suggestedHeight+"</div>")[0],priority:-40}))},updateContent:function(){var a,b=this;a=this.controller.isModeActive("grid")?b.attachmentsNoResults:b.uploader,this.collection.length?(a.$el.addClass("hidden"),b.toolbar.get("spinner").hide()):(this.toolbar.get("spinner").show(),this.dfd=this.collection.more().done(function(){b.collection.length?a.$el.addClass("hidden"):a.$el.removeClass("hidden"),b.toolbar.get("spinner").hide()}))},createUploader:function(){this.uploader=new wp.media.view.UploaderInline({controller:this.controller,status:!1,message:this.controller.isModeActive("grid")?"":g.noItemsFound,canClose:this.controller.isModeActive("grid")}),this.uploader.hide(),this.views.add(this.uploader)},toggleUploader:function(){this.uploader.$el.hasClass("hidden")?this.uploader.show():this.uploader.hide()},createAttachments:function(){this.attachments=new wp.media.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,scrollElement:this.options.scrollElement,idealColumnWidth:this.options.idealColumnWidth,AttachmentView:this.options.AttachmentView}),this.controller.on("attachment:keydown:arrow",_.bind(this.attachments.arrowEvent,this.attachments)),this.controller.on("attachment:details:shift-tab",_.bind(this.attachments.restoreFocus,this.attachments)),this.views.add(this.attachments),this.controller.isModeActive("grid")&&(this.attachmentsNoResults=new e({controller:this.controller,tagName:"p"}),this.attachmentsNoResults.$el.addClass("hidden no-media"),this.attachmentsNoResults.$el.html(g.noMedia),this.views.add(this.attachmentsNoResults))},createSidebar:function(){var a=this.options,b=a.selection,c=this.sidebar=new wp.media.view.Sidebar({controller:this.controller});this.views.add(c),this.controller.uploader&&c.set("uploads",new wp.media.view.UploaderStatus({controller:this.controller,priority:40})),b.on("selection:single",this.createSingle,this),b.on("selection:unsingle",this.disposeSingle,this),b.single()&&this.createSingle()},createSingle:function(){var a=this.sidebar,b=this.options.selection.single();a.set("details",new wp.media.view.Attachment.Details({controller:this.controller,model:b,priority:80})),a.set("compat",new wp.media.view.AttachmentCompat({controller:this.controller,model:b,priority:120})),this.options.display&&a.set("display",new wp.media.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(b),attachment:b,priority:160,userSettings:this.model.get("displayUserSettings")})),"insert"===this.model.id&&a.$el.addClass("visible")},disposeSingle:function(){var a=this.sidebar;a.unset("details"),a.unset("compat"),a.unset("display"),a.$el.removeClass("visible")}}),b.exports=d},{}],33:[function(a,b,c){var d,e=wp.media.view.Attachments;d=e.extend({events:{},initialize:function(){return _.defaults(this.options,{sortable:!1,resize:!1,AttachmentView:wp.media.view.Attachment.Selection}),e.prototype.initialize.apply(this,arguments)}}),b.exports=d},{}],34:[function(a,b,c){var d,e=Backbone.$;d=wp.media.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=_.map(this.options.buttons||[],function(a){return a instanceof Backbone.View?a:new wp.media.view.Button(a).render()}),delete this.options.buttons,this.options.classes&&this.$el.addClass(this.options.classes)},render:function(){return this.$el.html(e(_.pluck(this.buttons,"el")).detach()),this}}),b.exports=d},{}],35:[function(a,b,c){var d=wp.media.View.extend({tagName:"button",className:"media-button",attributes:{type:"button"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:!1},initialize:function(){this.model=new Backbone.Model(this.defaults),_.each(this.defaults,function(a,b){var c=this.options[b];_.isUndefined(c)||(this.model.set(b,c),delete this.options[b])},this),this.listenTo(this.model,"change",this.render)},render:function(){var a=["button",this.className],b=this.model.toJSON();return b.style&&a.push("button-"+b.style),b.size&&a.push("button-"+b.size),a=_.uniq(a.concat(this.options.classes)),this.el.className=a.join(" "),this.$el.attr("disabled",b.disabled),this.$el.text(this.model.get("text")),this},click:function(a){"#"===this.attributes.href&&a.preventDefault(),this.options.click&&!this.model.get("disabled")&&this.options.click.apply(this,arguments)}});b.exports=d},{}],36:[function(a,b,c){var d,e=wp.media.View,f=wp.media.view.UploaderStatus,g=wp.media.view.l10n,h=jQuery;d=e.extend({className:"crop-content",template:wp.template("crop-content"),initialize:function(){_.bindAll(this,"onImageLoad")},ready:function(){this.controller.frame.on("content:error:crop",this.onError,this),this.$image=this.$el.find(".crop-image"),this.$image.on("load",this.onImageLoad),h(window).on("resize.cropper",_.debounce(this.onImageLoad,250))},remove:function(){h(window).off("resize.cropper"),this.$el.remove(),this.$el.off(),e.prototype.remove.apply(this,arguments)},prepare:function(){return{title:g.cropYourImage,url:this.options.attachment.get("url")}},onImageLoad:function(){var a=this.controller.get("imgSelectOptions");"function"==typeof a&&(a=a(this.options.attachment,this.controller)),a=_.extend(a,{parent:this.$el}),this.trigger("image-loaded"),this.controller.imgSelect=this.$image.imgAreaSelect(a)},onError:function(){var a=this.options.attachment.get("filename");this.views.add(".upload-errors",new wp.media.view.UploaderStatusError({filename:f.prototype.filename(a),message:window._wpMediaViewsL10n.cropError}),{at:0})}}),b.exports=d},{}],37:[function(a,b,c){var d,e=wp.media.View;d=e.extend({className:"image-editor",template:wp.template("image-editor"),initialize:function(a){this.editor=window.imageEdit,this.controller=a.controller,e.prototype.initialize.apply(this,arguments)},prepare:function(){return this.model.toJSON()},loadEditor:function(){var a=this.editor.open(this.model.get("id"),this.model.get("nonces").edit,this);a.done(_.bind(this.focus,this))},focus:function(){this.$(".imgedit-submit .button").eq(0).focus()},back:function(){var a=this.controller.lastState();this.controller.setState(a)},refresh:function(){this.model.fetch()},save:function(){var a=this.controller.lastState();this.model.fetch().done(_.bind(function(){this.controller.setState(a)},this))}}),b.exports=d},{}],38:[function(a,b,c){var d=wp.media.View.extend({className:"media-embed",initialize:function(){this.url=new wp.media.view.EmbedUrl({controller:this.controller,model:this.model.props}).render(),this.views.set([this.url]),this.refresh(),this.listenTo(this.model,"change:type",this.refresh),this.listenTo(this.model,"change:loading",this.loading)},settings:function(a){this._settings&&this._settings.remove(),this._settings=a,this.views.add(a)},refresh:function(){var a,b=this.model.get("type");if("image"===b)a=wp.media.view.EmbedImage;else{if("link"!==b)return;a=wp.media.view.EmbedLink}this.settings(new a({controller:this.controller,model:this.model.props,priority:40}))},loading:function(){this.$el.toggleClass("embed-loading",this.model.get("loading"))}});b.exports=d},{}],39:[function(a,b,c){var d,e=wp.media.view.Settings.AttachmentDisplay;d=e.extend({className:"embed-media-settings",template:wp.template("embed-image-settings"),initialize:function(){e.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:url",this.updateImage)},updateImage:function(){this.$("img").attr("src",this.model.get("url"))}}),b.exports=d},{}],40:[function(a,b,c){var d,e=jQuery;d=wp.media.view.Settings.extend({className:"embed-link-settings",template:wp.template("embed-link-settings"),initialize:function(){this.listenTo(this.model,"change:url",this.updateoEmbed)},updateoEmbed:_.debounce(function(){var a=this.model.get("url");this.$(".embed-container").hide().find(".embed-preview").empty(),this.$(".setting").hide(),a&&(a.length<11||!a.match(/^http(s)?:\/\//))||this.fetch()},wp.media.controller.Embed.sensitivity),fetch:function(){var a;e("#embed-url-field").val()===this.model.get("url")&&(this.dfd&&"pending"===this.dfd.state()&&this.dfd.abort(),a=new wp.shortcode({tag:"embed",attrs:_.pick(this.model.attributes,["width","height","src"]),content:this.model.get("url")}),this.dfd=e.ajax({type:"POST",url:wp.ajax.settings.url,context:this,data:{action:"parse-embed",post_ID:wp.media.view.settings.post.id,shortcode:a.string()}}).done(this.renderoEmbed).fail(this.renderFail))},renderFail:function(a,b){"abort"!==b&&this.$(".link-text").show()},renderoEmbed:function(a){var b=a&&a.data&&a.data.body||"";b?this.$(".embed-container").show().find(".embed-preview").html(b):this.renderFail()}}),b.exports=d},{}],41:[function(a,b,c){var d,e=wp.media.View,f=jQuery;d=e.extend({tagName:"label",className:"embed-url",events:{input:"url",keyup:"url",change:"url"},initialize:function(){this.$input=f('<input id="embed-url-field" type="url" />').val(this.model.get("url")),this.input=this.$input[0],this.spinner=f('<span class="spinner" />')[0],this.$el.append([this.input,this.spinner]),this.listenTo(this.model,"change:url",this.render),this.model.get("url")&&_.delay(_.bind(function(){this.model.trigger("change:url")},this),500)},render:function(){var a=this.$input;if(!a.is(":focus"))return this.input.value=this.model.get("url")||"http://",e.prototype.render.apply(this,arguments),this},ready:function(){wp.media.isTouchDevice||this.focus()},url:function(a){this.model.set("url",a.target.value)},focus:function(){var a=this.$input;a.is(":visible")&&a.focus()[0].select()}}),b.exports=d},{}],42:[function(a,b,c){var d=wp.media.View.extend({events:{keydown:"constrainTabbing"},focus:function(){this.$(".media-menu-item").first().focus()},constrainTabbing:function(a){var b;if(9===a.keyCode)return b=this.$(":tabbable").not('.moxie-shim input[type="file"]'),b.last()[0]!==a.target||a.shiftKey?b.first()[0]===a.target&&a.shiftKey?(b.last().focus(),!1):void 0:(b.first().focus(),!1)}});b.exports=d},{}],43:[function(a,b,c){var d=wp.media.View.extend({initialize:function(){_.defaults(this.options,{mode:["select"]}),this._createRegions(),this._createStates(),this._createModes()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[],_.each(this.regions,function(a){this[a]=new wp.media.controller.Region({view:this,id:a,selector:".media-frame-"+a})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:wp.media.controller.State}),this.states.on("add",function(a){a.frame=this,a.trigger("ready")},this),this.options.states&&this.states.add(this.options.states)},_createModes:function(){this.activeModes=new Backbone.Collection,this.activeModes.on("add remove reset",_.bind(this.triggerModeEvents,this)),_.each(this.options.mode,function(a){this.activateMode(a)},this)},reset:function(){return this.states.invoke("trigger","reset"),this},triggerModeEvents:function(a,b,c){var d,e,f={add:"activate",remove:"deactivate"};_.each(c,function(a,b){a&&(d=b)}),_.has(f,d)&&(e=a.get("id")+":"+f[d],this.trigger(e))},activateMode:function(a){if(!this.isModeActive(a))return this.activeModes.add([{id:a}]),this.$el.addClass("mode-"+a),this},deactivateMode:function(a){return this.isModeActive(a)?(this.activeModes.remove(this.activeModes.where({id:a})),this.$el.removeClass("mode-"+a),this.trigger(a+":deactivate"),this):this},isModeActive:function(a){return Boolean(this.activeModes.where({id:a}).length)}});_.extend(d.prototype,wp.media.controller.StateMachine.prototype),b.exports=d},{}],44:[function(a,b,c){var d,e=wp.media.view.MediaFrame.Select,f=wp.media.view.l10n;d=e.extend({defaults:{id:"image",url:"",menu:"image-details",content:"image-details",toolbar:"image-details",type:"link",title:f.imageDetailsTitle,priority:120},initialize:function(a){this.image=new wp.media.model.PostImage(a.metadata),this.options.selection=new wp.media.model.Selection(this.image.attachment,{multiple:!1}),e.prototype.initialize.apply(this,arguments)},bindHandlers:function(){e.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:image-details",this.createMenu,this),this.on("content:create:image-details",this.imageDetailsContent,this),this.on("content:render:edit-image",this.editImageContent,this),this.on("toolbar:render:image-details",this.renderImageDetailsToolbar,this),this.on("toolbar:render:replace",this.renderReplaceImageToolbar,this)},createStates:function(){this.states.add([new wp.media.controller.ImageDetails({image:this.image,editable:!1}),new wp.media.controller.ReplaceImage({id:"replace-image",library:wp.media.query({type:"image"}),image:this.image,multiple:!1,title:f.imageReplaceTitle,toolbar:"replace",priority:80,displaySettings:!0}),new wp.media.controller.EditImage({image:this.image,selection:this.options.selection})])},imageDetailsContent:function(a){a.view=new wp.media.view.ImageDetails({controller:this,model:this.state().image,attachment:this.state().image.attachment})},editImageContent:function(){var a,b=this.state(),c=b.get("image");c&&(a=new wp.media.view.EditImage({model:c,controller:this}).render(),this.content.set(a),a.loadEditor())},renderImageDetailsToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{select:{style:"primary",text:f.update,priority:80,click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))},renderReplaceImageToolbar:function(){var a=this,b=a.lastState(),c=b&&b.id;this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{back:{text:f.back,priority:20,click:function(){c?a.setState(c):a.close()}},replace:{style:"primary",text:f.replace,priority:80,click:function(){var a=this.controller,b=a.state(),c=b.get("selection"),d=c.single();a.close(),a.image.changeAttachment(d,b.display(d)),b.trigger("replace",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))}}),b.exports=d},{}],45:[function(a,b,c){var d,e=wp.media.view.MediaFrame.Select,f=wp.media.controller.Library,g=wp.media.view.l10n;d=e.extend({initialize:function(){this.counts={audio:{count:wp.media.view.settings.attachmentCounts.audio,state:"playlist"},video:{count:wp.media.view.settings.attachmentCounts.video,state:"video-playlist"}},_.defaults(this.options,{multiple:!0,editing:!1,state:"insert",metadata:{}}),e.prototype.initialize.apply(this,arguments),this.createIframeStates()},createStates:function(){var a=this.options;this.states.add([new f({id:"insert",title:g.insertMediaTitle,priority:20,toolbar:"main-insert",filterable:"all",library:wp.media.query(a.library),multiple:!!a.multiple&&"reset",editable:!0,allowLocalEdits:!0,displaySettings:!0,displayUserSettings:!0}),new f({id:"gallery",title:g.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"image"},a.library))}),new wp.media.controller.Embed({metadata:a.metadata}),new wp.media.controller.EditImage({model:a.editImage}),new wp.media.controller.GalleryEdit({library:a.selection,editing:a.editing,menu:"gallery"}),new wp.media.controller.GalleryAdd,new f({id:"playlist",title:g.createPlaylistTitle,priority:60,toolbar:"main-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"audio"},a.library))}),new wp.media.controller.CollectionEdit({type:"audio",collectionType:"playlist",title:g.editPlaylistTitle,SettingsView:wp.media.view.Settings.Playlist,
-library:a.selection,editing:a.editing,menu:"playlist",dragInfoText:g.playlistDragInfo,dragInfo:!1}),new wp.media.controller.CollectionAdd({type:"audio",collectionType:"playlist",title:g.addToPlaylistTitle}),new f({id:"video-playlist",title:g.createVideoPlaylistTitle,priority:60,toolbar:"main-video-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"video"},a.library))}),new wp.media.controller.CollectionEdit({type:"video",collectionType:"playlist",title:g.editVideoPlaylistTitle,SettingsView:wp.media.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"video-playlist",dragInfoText:g.videoPlaylistDragInfo,dragInfo:!1}),new wp.media.controller.CollectionAdd({type:"video",collectionType:"playlist",title:g.addToVideoPlaylistTitle})]),wp.media.view.settings.post.featuredImageId&&this.states.add(new wp.media.controller.FeaturedImage)},bindHandlers:function(){var a,b;e.prototype.bindHandlers.apply(this,arguments),this.on("activate",this.activate,this),b=_.find(this.counts,function(a){return 0===a.count}),"undefined"!=typeof b&&this.listenTo(wp.media.model.Attachments.all,"change:type",this.mediaTypeCounts),this.on("menu:create:gallery",this.createMenu,this),this.on("menu:create:playlist",this.createMenu,this),this.on("menu:create:video-playlist",this.createMenu,this),this.on("toolbar:create:main-insert",this.createToolbar,this),this.on("toolbar:create:main-gallery",this.createToolbar,this),this.on("toolbar:create:main-playlist",this.createToolbar,this),this.on("toolbar:create:main-video-playlist",this.createToolbar,this),this.on("toolbar:create:featured-image",this.featuredImageToolbar,this),this.on("toolbar:create:main-embed",this.mainEmbedToolbar,this),a={menu:{"default":"mainMenu",gallery:"galleryMenu",playlist:"playlistMenu","video-playlist":"videoPlaylistMenu"},content:{embed:"embedContent","edit-image":"editImageContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar","main-gallery":"mainGalleryToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar","main-playlist":"mainPlaylistToolbar","playlist-edit":"playlistEditToolbar","playlist-add":"playlistAddToolbar","main-video-playlist":"mainVideoPlaylistToolbar","video-playlist-edit":"videoPlaylistEditToolbar","video-playlist-add":"videoPlaylistAddToolbar"}},_.each(a,function(a,b){_.each(a,function(a,c){this.on(b+":render:"+c,this[a],this)},this)},this)},activate:function(){_.each(this.counts,function(a){a.count<1&&this.menuItemVisibility(a.state,"hide")},this)},mediaTypeCounts:function(a,b){"undefined"!=typeof this.counts[b]&&this.counts[b].count<1&&(this.counts[b].count++,this.menuItemVisibility(this.counts[b].state,"show"))},mainMenu:function(a){a.set({"library-separator":new wp.media.View({className:"separator",priority:100})})},menuItemVisibility:function(a,b){var c=this.menu.get();"hide"===b?c.hide(a):"show"===b&&c.show(a)},galleryMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:g.cancelGalleryTitle,priority:20,click:function(){c?d.setState(c):d.close(),this.controller.modal.focusManager.focus()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},playlistMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:g.cancelPlaylistTitle,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},videoPlaylistMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:g.cancelVideoPlaylistTitle,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},embedContent:function(){var a=new wp.media.view.Embed({controller:this,model:this.state()}).render();this.content.set(a),wp.media.isTouchDevice||a.url.focus()},editSelectionContent:function(){var a,b=this.state(),c=b.get("selection");a=new wp.media.view.AttachmentsBrowser({controller:this,collection:c,selection:c,model:b,sortable:!0,search:!1,date:!1,dragInfo:!0,AttachmentView:wp.media.view.Attachments.EditSelection}).render(),a.toolbar.set("backToLibrary",{text:g.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}}),this.content.set(a),this.trigger("edit:selection",this)},editImageContent:function(){var a=this.state().get("image"),b=new wp.media.view.EditImage({model:a,controller:this}).render();this.content.set(b),b.loadEditor()},selectionStatusToolbar:function(a){var b=this.state().get("editable");a.set("selection",new wp.media.view.Selection({controller:this,collection:this.state().get("selection"),priority:-40,editable:b&&function(){this.controller.content.mode("edit-selection")}}).render())},mainInsertToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("insert",{style:"primary",priority:80,text:g.insertIntoPost,requires:{selection:!0},click:function(){var a=b.state(),c=a.get("selection");b.close(),a.trigger("insert",c).reset()}})},mainGalleryToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("gallery",{style:"primary",text:g.createNewGallery,priority:60,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("gallery-edit"),d=a.where({type:"image"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("gallery-edit"),this.controller.modal.focusManager.focus()}})},mainPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("playlist",{style:"primary",text:g.createNewPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("playlist-edit"),d=a.where({type:"audio"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("playlist-edit"),this.controller.modal.focusManager.focus()}})},mainVideoPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("video-playlist",{style:"primary",text:g.createNewVideoPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("video-playlist-edit"),d=a.where({type:"video"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("video-playlist-edit"),this.controller.modal.focusManager.focus()}})},featuredImageToolbar:function(a){this.createSelectToolbar(a,{text:g.setFeaturedImage,state:this.options.state})},mainEmbedToolbar:function(a){a.view=new wp.media.view.Toolbar.Embed({controller:this})},galleryEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?g.updateGallery:g.insertGallery,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},galleryAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:g.addToGallery,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("gallery-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("gallery-edit")}}}}))},playlistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?g.updatePlaylist:g.insertPlaylist,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},playlistAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:g.addToPlaylist,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("playlist-edit")}}}}))},videoPlaylistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?g.updateVideoPlaylist:g.insertVideoPlaylist,priority:140,requires:{library:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("library");c.type="video",a.close(),b.trigger("update",c),a.setState(a.options.state),a.reset()}}}}))},videoPlaylistAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:g.addToVideoPlaylist,priority:140,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("video-playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("video-playlist-edit")}}}}))}}),b.exports=d},{}],46:[function(a,b,c){var d,e=wp.media.view.MediaFrame,f=wp.media.view.l10n;d=e.extend({initialize:function(){e.prototype.initialize.apply(this,arguments),_.defaults(this.options,{selection:[],library:{},multiple:!1,state:"library"}),this.createSelection(),this.createStates(),this.bindHandlers()},createSelection:function(){var a=this.options.selection;a instanceof wp.media.model.Selection||(this.options.selection=new wp.media.model.Selection(a,{multiple:this.options.multiple})),this._selection={attachments:new wp.media.model.Attachments,difference:[]}},createStates:function(){var a=this.options;this.options.states||this.states.add([new wp.media.controller.Library({library:wp.media.query(a.library),multiple:a.multiple,title:a.title,priority:20})])},bindHandlers:function(){this.on("router:create:browse",this.createRouter,this),this.on("router:render:browse",this.browseRouter,this),this.on("content:create:browse",this.browseContent,this),this.on("content:render:upload",this.uploadContent,this),this.on("toolbar:create:select",this.createSelectToolbar,this)},browseRouter:function(a){a.set({upload:{text:f.uploadFilesTitle,priority:20},browse:{text:f.mediaLibraryTitle,priority:40}})},browseContent:function(a){var b=this.state();this.$el.removeClass("hide-toolbar"),a.view=new wp.media.view.AttachmentsBrowser({controller:this,collection:b.get("library"),selection:b.get("selection"),model:b,sortable:b.get("sortable"),search:b.get("searchable"),filters:b.get("filterable"),date:b.get("date"),display:b.has("display")?b.get("display"):b.get("displaySettings"),dragInfo:b.get("dragInfo"),idealColumnWidth:b.get("idealColumnWidth"),suggestedWidth:b.get("suggestedWidth"),suggestedHeight:b.get("suggestedHeight"),AttachmentView:b.get("AttachmentView")})},uploadContent:function(){this.$el.removeClass("hide-toolbar"),this.content.set(new wp.media.view.UploaderInline({controller:this}))},createSelectToolbar:function(a,b){b=b||this.options.button||{},b.controller=this,a.view=new wp.media.view.Toolbar.Select(b)}}),b.exports=d},{}],47:[function(a,b,c){var d=wp.media.View.extend({className:"media-iframe",render:function(){return this.views.detach(),this.$el.html('<iframe src="'+this.controller.state().get("src")+'" />'),this.views.render(),this}});b.exports=d},{}],48:[function(a,b,c){var d,e=wp.media.view.Settings.AttachmentDisplay,f=jQuery;d=e.extend({className:"image-details",template:wp.template("image-details"),events:_.defaults(e.prototype.events,{"click .edit-attachment":"editAttachment","click .replace-attachment":"replaceAttachment","click .advanced-toggle":"onToggleAdvanced",'change [data-setting="customWidth"]':"onCustomSize",'change [data-setting="customHeight"]':"onCustomSize",'keyup [data-setting="customWidth"]':"onCustomSize",'keyup [data-setting="customHeight"]':"onCustomSize"}),initialize:function(){this.options.attachment=this.model.attachment,this.listenTo(this.model,"change:url",this.updateUrl),this.listenTo(this.model,"change:link",this.toggleLinkSettings),this.listenTo(this.model,"change:size",this.toggleCustomSize),e.prototype.initialize.apply(this,arguments)},prepare:function(){var a=!1;return this.model.attachment&&(a=this.model.attachment.toJSON()),_.defaults({model:this.model.toJSON(),attachment:a},this.options)},render:function(){var a=arguments;return this.model.attachment&&"pending"===this.model.dfd.state()?this.model.dfd.done(_.bind(function(){e.prototype.render.apply(this,a),this.postRender()},this)).fail(_.bind(function(){this.model.attachment=!1,e.prototype.render.apply(this,a),this.postRender()},this)):(e.prototype.render.apply(this,arguments),this.postRender()),this},postRender:function(){setTimeout(_.bind(this.resetFocus,this),10),this.toggleLinkSettings(),"show"===window.getUserSetting("advImgDetails")&&this.toggleAdvanced(!0),this.trigger("post-render")},resetFocus:function(){this.$(".link-to-custom").blur(),this.$(".embed-media-settings").scrollTop(0)},updateUrl:function(){this.$(".image img").attr("src",this.model.get("url")),this.$(".url").val(this.model.get("url"))},toggleLinkSettings:function(){"none"===this.model.get("link")?this.$(".link-settings").addClass("hidden"):this.$(".link-settings").removeClass("hidden")},toggleCustomSize:function(){"custom"!==this.model.get("size")?this.$(".custom-size").addClass("hidden"):this.$(".custom-size").removeClass("hidden")},onCustomSize:function(a){var b,c=f(a.target).data("setting"),d=f(a.target).val();return!/^\d+/.test(d)||parseInt(d,10)<1?void a.preventDefault():void("customWidth"===c?(b=Math.round(1/this.model.get("aspectRatio")*d),this.model.set("customHeight",b,{silent:!0}),this.$('[data-setting="customHeight"]').val(b)):(b=Math.round(this.model.get("aspectRatio")*d),this.model.set("customWidth",b,{silent:!0}),this.$('[data-setting="customWidth"]').val(b)))},onToggleAdvanced:function(a){a.preventDefault(),this.toggleAdvanced()},toggleAdvanced:function(a){var b,c=this.$el.find(".advanced-section");c.hasClass("advanced-visible")||a===!1?(c.removeClass("advanced-visible"),c.find(".advanced-settings").addClass("hidden"),b="hide"):(c.addClass("advanced-visible"),c.find(".advanced-settings").removeClass("hidden"),b="show"),window.setUserSetting("advImgDetails",b)},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b&&(a.preventDefault(),b.set("image",this.model.attachment),this.controller.setState("edit-image"))},replaceAttachment:function(a){a.preventDefault(),this.controller.setState("replace-image")}}),b.exports=d},{}],49:[function(a,b,c){var d=wp.media.View.extend({tagName:"label",className:"screen-reader-text",initialize:function(){this.value=this.options.value},render:function(){return this.$el.html(this.value),this}});b.exports=d},{}],50:[function(a,b,c){var d,e=wp.media.view.Frame,f=jQuery;d=e.extend({className:"media-frame",template:wp.template("media-frame"),regions:["menu","title","content","toolbar","router"],events:{"click div.media-frame-title h1":"toggleMenu"},initialize:function(){e.prototype.initialize.apply(this,arguments),_.defaults(this.options,{title:"",modal:!0,uploader:!0}),this.$el.addClass("wp-core-ui"),this.options.modal&&(this.modal=new wp.media.view.Modal({controller:this,title:this.options.title}),this.modal.content(this)),!wp.Uploader.limitExceeded&&wp.Uploader.browser.supported||(this.options.uploader=!1),this.options.uploader&&(this.uploader=new wp.media.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}}),this.views.set(".media-frame-uploader",this.uploader)),this.on("attach",_.bind(this.views.ready,this.views),this),this.on("title:create:default",this.createTitle,this),this.title.mode("default"),this.on("title:render",function(a){a.$el.append('<span class="dashicons dashicons-arrow-down"></span>')}),this.on("menu:create:default",this.createMenu,this)},render:function(){return!this.state()&&this.options.state&&this.setState(this.options.state),e.prototype.render.apply(this,arguments)},createTitle:function(a){a.view=new wp.media.View({controller:this,tagName:"h1"})},createMenu:function(a){a.view=new wp.media.view.Menu({controller:this})},toggleMenu:function(){this.$el.find(".media-menu").toggleClass("visible")},createToolbar:function(a){a.view=new wp.media.view.Toolbar({controller:this})},createRouter:function(a){a.view=new wp.media.view.Router({controller:this})},createIframeStates:function(a){var b,c=wp.media.view.settings,d=c.tabs,e=c.tabUrl;d&&e&&(b=f("#post_ID"),b.length&&(e+="&post_id="+b.val()),_.each(d,function(b,c){this.state("iframe:"+c).set(_.defaults({tab:c,src:e+"&tab="+c,title:b,content:"iframe",menu:"default"},a))},this),this.on("content:create:iframe",this.iframeContent,this),this.on("content:deactivate:iframe",this.iframeContentCleanup,this),this.on("menu:render:default",this.iframeMenu,this),this.on("open",this.hijackThickbox,this),this.on("close",this.restoreThickbox,this))},iframeContent:function(a){this.$el.addClass("hide-toolbar"),a.view=new wp.media.view.Iframe({controller:this})},iframeContentCleanup:function(){this.$el.removeClass("hide-toolbar")},iframeMenu:function(a){var b={};a&&(_.each(wp.media.view.settings.tabs,function(a,c){b["iframe:"+c]={text:this.state("iframe:"+c).get("title"),priority:200}},this),a.set(b))},hijackThickbox:function(){var a=this;window.tb_remove&&!this._tb_remove&&(this._tb_remove=window.tb_remove,window.tb_remove=function(){a.close(),a.reset(),a.setState(a.options.state),a._tb_remove.call(window)})},restoreThickbox:function(){this._tb_remove&&(window.tb_remove=this._tb_remove,delete this._tb_remove)}}),_.each(["open","close","attach","detach","escape"],function(a){d.prototype[a]=function(){return this.modal&&this.modal[a].apply(this.modal,arguments),this}}),b.exports=d},{}],51:[function(a,b,c){var d,e=jQuery;d=wp.media.View.extend({tagName:"a",className:"media-menu-item",attributes:{href:"#"},events:{click:"_click"},_click:function(a){var b=this.options.click;a&&a.preventDefault(),b?b.call(this):this.click(),wp.media.isTouchDevice||e(".media-frame-content input").first().focus()},click:function(){var a=this.options.state;a&&(this.controller.setState(a),this.views.parent.$el.removeClass("visible"))},render:function(){var a=this.options;return a.text?this.$el.text(a.text):a.html&&this.$el.html(a.html),this}}),b.exports=d},{}],52:[function(a,b,c){var d,e=wp.media.view.MenuItem,f=wp.media.view.PriorityList;d=f.extend({tagName:"div",className:"media-menu",property:"state",ItemView:e,region:"menu",toView:function(a,b){return a=a||{},a[this.property]=a[this.property]||b,new this.ItemView(a).render()},ready:function(){f.prototype.ready.apply(this,arguments),this.visibility()},set:function(){f.prototype.set.apply(this,arguments),this.visibility()},unset:function(){f.prototype.unset.apply(this,arguments),this.visibility()},visibility:function(){var a=this.region,b=this.controller[a].get(),c=this.views.get(),d=!c||c.length<2;this===b&&this.controller.$el.toggleClass("hide-"+a,d)},select:function(a){var b=this.get(a);b&&(this.deselect(),b.$el.addClass("active"))},deselect:function(){this.$el.children().removeClass("active")},hide:function(a){var b=this.get(a);b&&b.$el.addClass("hidden")},show:function(a){var b=this.get(a);b&&b.$el.removeClass("hidden")}}),b.exports=d},{}],53:[function(a,b,c){var d,e=jQuery;d=wp.media.View.extend({tagName:"div",template:wp.template("media-modal"),attributes:{tabindex:0},events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler",keydown:"keydown"},initialize:function(){_.defaults(this.options,{container:document.body,title:"",propagate:!0,freeze:!0}),this.focusManager=new wp.media.view.FocusManager({el:this.el})},prepare:function(){return{title:this.options.title}},attach:function(){return this.views.attached?this:(this.views.rendered||this.render(),this.$el.appendTo(this.options.container),this.views.attached=!0,this.views.ready(),this.propagate("attach"))},detach:function(){return this.$el.is(":visible")&&this.close(),this.$el.detach(),this.views.attached=!1,this.propagate("detach")},open:function(){var a,b=this.$el,c=this.options;return b.is(":visible")?this:(this.views.attached||this.attach(),c.freeze&&(this._freeze={scrollTop:e(window).scrollTop()}),e("body").addClass("modal-open"),b.show(),"ontouchend"in document&&(a=window.tinymce&&window.tinymce.activeEditor)&&!a.isHidden()&&a.iframeElement&&(a.iframeElement.focus(),a.iframeElement.blur(),setTimeout(function(){a.iframeElement.blur()},100)),this.$el.focus(),this.propagate("open"))},close:function(a){var b=this._freeze;return this.views.attached&&this.$el.is(":visible")?(e("body").removeClass("modal-open"),this.$el.hide().undelegate("keydown"),e("#wpbody-content").focus(),this.propagate("close"),b&&e(window).scrollTop(b.scrollTop),a&&a.escape&&this.propagate("escape"),this):this},escape:function(){return this.close({escape:!0})},escapeHandler:function(a){a.preventDefault(),this.escape()},content:function(a){return this.views.set(".media-modal-content",a),this},propagate:function(a){return this.trigger(a),this.options.propagate&&this.controller.trigger(a),this},keydown:function(a){27===a.which&&this.$el.is(":visible")&&(this.escape(),a.stopImmediatePropagation())}}),b.exports=d},{}],54:[function(a,b,c){var d=wp.media.View.extend({tagName:"div",initialize:function(){this._views={},this.set(_.extend({},this._views,this.options.views),{silent:!0}),delete this.options.views,this.options.silent||this.render()},set:function(a,b,c){var d,e,f;return c=c||{},_.isObject(a)?(_.each(a,function(a,b){this.set(b,a)},this),this):(b instanceof Backbone.View||(b=this.toView(b,a,c)),b.controller=b.controller||this.controller,this.unset(a),d=b.options.priority||10,e=this.views.get()||[],_.find(e,function(a,b){if(a.options.priority>d)return f=b,!0}),this._views[a]=b,this.views.add(b,{at:_.isNumber(f)?f:e.length||0}),this)},get:function(a){return this._views[a]},unset:function(a){var b=this.get(a);return b&&b.remove(),delete this._views[a],this},toView:function(a){return new wp.media.View(a)}});b.exports=d},{}],55:[function(a,b,c){var d=wp.media.view.MenuItem.extend({click:function(){var a=this.options.contentMode;a&&this.controller.content.mode(a)}});b.exports=d},{}],56:[function(a,b,c){var d,e=wp.media.view.Menu;d=e.extend({tagName:"div",className:"media-router",property:"contentMode",ItemView:wp.media.view.RouterItem,region:"router",initialize:function(){this.controller.on("content:render",this.update,this),e.prototype.initialize.apply(this,arguments)},update:function(){var a=this.controller.content.mode();a&&this.select(a)}}),b.exports=d},{}],57:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.View.extend({tagName:"input",className:"search",id:"media-search-input",attributes:{type:"search",placeholder:e.search},events:{input:"search",keyup:"search",change:"search",search:"search"},render:function(){return this.el.value=this.model.escape("search"),this},search:function(a){a.target.value?this.model.set("search",a.target.value):this.model.unset("search")}}),b.exports=d},{}],58:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.View.extend({tagName:"div",className:"media-selection",template:wp.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){_.defaults(this.options,{editable:!1,clearable:!0}),this.attachments=new wp.media.view.Attachments.Selection({controller:this.controller,collection:this.collection,selection:this.collection,model:new Backbone.Model}),this.views.set(".selection-view",this.attachments),this.collection.on("add remove reset",this.refresh,this),this.controller.on("content:activate",this.refresh,this)},ready:function(){this.refresh()},refresh:function(){if(this.$el.children().length){var a=this.collection,b="edit-selection"===this.controller.content.mode();this.$el.toggleClass("empty",!a.length),this.$el.toggleClass("one",1===a.length),this.$el.toggleClass("editing",b),this.$(".count").text(e.selected.replace("%d",a.length))}},edit:function(a){a.preventDefault(),this.options.editable&&this.options.editable.call(this,this.collection)},clear:function(a){a.preventDefault(),this.collection.reset(),this.controller.modal.focusManager.focus()}}),b.exports=d},{}],59:[function(a,b,c){var d,e=wp.media.View,f=Backbone.$;d=e.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model,this.listenTo(this.model,"change",this.updateChanges)},prepare:function(){return _.defaults({model:this.model.toJSON()},this.options)},render:function(){return e.prototype.render.apply(this,arguments),_(this.model.attributes).chain().keys().each(this.update,this),this},update:function(a){var b,c,d=this.model.get(a),e=this.$('[data-setting="'+a+'"]');e.length&&(e.is("select")?(c=e.find('[value="'+d+'"]'),c.length?(e.find("option").prop("selected",!1),c.prop("selected",!0)):this.model.set(a,e.find(":selected").val())):e.hasClass("button-group")?(b=e.find("button").removeClass("active"),b.filter('[value="'+d+'"]').addClass("active")):e.is('input[type="text"], textarea')?e.is(":focus")||e.val(d):e.is('input[type="checkbox"]')&&e.prop("checked",!!d&&"false"!==d))},updateHandler:function(a){var b,c=f(a.target).closest("[data-setting]"),d=a.target.value;a.preventDefault(),c.length&&(c.is('input[type="checkbox"]')&&(d=c[0].checked),this.model.set(c.data("setting"),d),(b=c.data("userSetting"))&&window.setUserSetting(b,d))},updateChanges:function(a){a.hasChanged()&&_(a.changed).chain().keys().each(this.update,this)}}),b.exports=d},{}],60:[function(a,b,c){var d,e=wp.media.view.Settings;d=e.extend({className:"attachment-display-settings",template:wp.template("attachment-display-settings"),initialize:function(){var a=this.options.attachment;_.defaults(this.options,{userSettings:!1}),e.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:link",this.updateLinkTo),a&&a.on("change:uploading",this.render,this)},dispose:function(){var a=this.options.attachment;a&&a.off(null,null,this),e.prototype.dispose.apply(this,arguments)},render:function(){var a=this.options.attachment;return a&&_.extend(this.options,{sizes:a.get("sizes"),type:a.get("type")}),e.prototype.render.call(this),this.updateLinkTo(),this},updateLinkTo:function(){var a=this.model.get("link"),b=this.$(".link-to-custom"),c=this.options.attachment;return"none"===a||"embed"===a||!c&&"custom"!==a?void b.addClass("hidden"):(c&&("post"===a?b.val(c.get("link")):"file"===a?b.val(c.get("url")):this.model.get("linkUrl")||b.val("http://"),b.prop("readonly","custom"!==a)),b.removeClass("hidden"),void(!wp.media.isTouchDevice&&b.is(":visible")&&b.focus()[0].select()))}}),b.exports=d},{}],61:[function(a,b,c){var d=wp.media.view.Settings.extend({className:"collection-settings gallery-settings",template:wp.template("gallery-settings")});b.exports=d},{}],62:[function(a,b,c){var d=wp.media.view.Settings.extend({className:"collection-settings playlist-settings",template:wp.template("playlist-settings")});b.exports=d},{}],63:[function(a,b,c){var d=wp.media.view.PriorityList.extend({className:"media-sidebar"});b.exports=d},{}],64:[function(a,b,c){var d,e=wp.media.view;d=e.Cropper.extend({className:"crop-content site-icon",ready:function(){e.Cropper.prototype.ready.apply(this,arguments),this.$(".crop-image").on("load",_.bind(this.addSidebar,this))},addSidebar:function(){this.sidebar=new wp.media.view.Sidebar({controller:this.controller}),this.sidebar.set("preview",new wp.media.view.SiteIconPreview({controller:this.controller,attachment:this.options.attachment})),this.controller.cropperView.views.add(this.sidebar)}}),b.exports=d},{}],65:[function(a,b,c){var d,e=wp.media.View,f=jQuery;d=e.extend({className:"site-icon-preview",template:wp.template("site-icon-preview"),ready:function(){this.controller.imgSelect.setOptions({onInit:this.updatePreview,onSelectChange:this.updatePreview})},prepare:function(){return{url:this.options.attachment.get("url")}},updatePreview:function(a,b){var c=64/b.width,d=64/b.height,e=16/b.width,g=16/b.height;f("#preview-app-icon").css({width:Math.round(c*this.imageWidth)+"px",height:Math.round(d*this.imageHeight)+"px",marginLeft:"-"+Math.round(c*b.x1)+"px",marginTop:"-"+Math.round(d*b.y1)+"px"}),f("#preview-favicon").css({width:Math.round(e*this.imageWidth)+"px",height:Math.round(g*this.imageHeight)+"px",marginLeft:"-"+Math.round(e*b.x1)+"px",marginTop:"-"+Math.floor(g*b.y1)+"px"})}}),b.exports=d},{}],66:[function(a,b,c){var d=wp.media.View.extend({tagName:"span",className:"spinner",spinnerTimeout:!1,delay:400,show:function(){return this.spinnerTimeout||(this.spinnerTimeout=_.delay(function(a){a.addClass("is-active")},this.delay,this.$el)),this},hide:function(){return this.$el.removeClass("is-active"),this.spinnerTimeout=clearTimeout(this.spinnerTimeout),this}});b.exports=d},{}],67:[function(a,b,c){var d,e=wp.media.View;d=e.extend({tagName:"div",className:"media-toolbar",initialize:function(){var a=this.controller.state(),b=this.selection=a.get("selection"),c=this.library=a.get("library");this._views={},this.primary=new wp.media.view.PriorityList,this.secondary=new wp.media.view.PriorityList,this.primary.$el.addClass("media-toolbar-primary search-form"),this.secondary.$el.addClass("media-toolbar-secondary"),this.views.set([this.secondary,this.primary]),this.options.items&&this.set(this.options.items,{silent:!0}),this.options.silent||this.render(),b&&b.on("add remove reset",this.refresh,this),c&&c.on("add remove reset",this.refresh,this)},dispose:function(){return this.selection&&this.selection.off(null,null,this),this.library&&this.library.off(null,null,this),e.prototype.dispose.apply(this,arguments)},ready:function(){this.refresh()},set:function(a,b,c){var d;return c=c||{},_.isObject(a)?_.each(a,function(a,b){this.set(b,a,{silent:!0})},this):(b instanceof Backbone.View||(b.classes=["media-button-"+a].concat(b.classes||[]),b=new wp.media.view.Button(b).render()),b.controller=b.controller||this.controller,this._views[a]=b,d=b.options.priority<0?"secondary":"primary",this[d].set(a,b,c)),c.silent||this.refresh(),this},get:function(a){return this._views[a]},unset:function(a,b){return delete this._views[a],this.primary.unset(a,b),this.secondary.unset(a,b),b&&b.silent||this.refresh(),this},refresh:function(){var a=this.controller.state(),b=a.get("library"),c=a.get("selection");_.each(this._views,function(a){if(a.model&&a.options&&a.options.requires){var d=a.options.requires,e=!1;e=_.some(c.models,function(a){return a.get("uploading")===!0}),d.selection&&c&&!c.length?e=!0:d.library&&b&&!b.length&&(e=!0),a.model.set("disabled",e)}})}}),b.exports=d},{}],68:[function(a,b,c){var d,e=wp.media.view.Toolbar.Select,f=wp.media.view.l10n;d=e.extend({initialize:function(){_.defaults(this.options,{text:f.insertIntoPost,requires:!1}),e.prototype.initialize.apply(this,arguments)},refresh:function(){var a=this.controller.state().props.get("url");this.get("select").model.set("disabled",!a||"http://"===a),e.prototype.refresh.apply(this,arguments)}}),b.exports=d},{}],69:[function(a,b,c){var d,e=wp.media.view.Toolbar,f=wp.media.view.l10n;d=e.extend({initialize:function(){var a=this.options;_.bindAll(this,"clickSelect"),_.defaults(a,{event:"select",state:!1,reset:!0,close:!0,text:f.select,requires:{selection:!0}}),a.items=_.defaults(a.items||{},{select:{style:"primary",text:a.text,priority:80,click:this.clickSelect,requires:a.requires}}),e.prototype.initialize.apply(this,arguments)},clickSelect:function(){var a=this.options,b=this.controller;a.close&&b.close(),a.event&&b.state().trigger(a.event),a.state&&b.setState(a.state),a.reset&&b.reset()}}),b.exports=d},{}],70:[function(a,b,c){var d,e=wp.media.View,f=wp.media.view.l10n,g=jQuery;d=e.extend({tagName:"div",className:"uploader-editor",template:wp.template("uploader-editor"),localDrag:!1,overContainer:!1,overDropzone:!1,draggingFile:null,initialize:function(){return this.initialized=!1,window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&this.browserSupport()?(this.$document=g(document),this.dropzones=[],
-this.files=[],this.$document.on("drop",".uploader-editor",_.bind(this.drop,this)),this.$document.on("dragover",".uploader-editor",_.bind(this.dropzoneDragover,this)),this.$document.on("dragleave",".uploader-editor",_.bind(this.dropzoneDragleave,this)),this.$document.on("click",".uploader-editor",_.bind(this.click,this)),this.$document.on("dragover",_.bind(this.containerDragover,this)),this.$document.on("dragleave",_.bind(this.containerDragleave,this)),this.$document.on("dragstart dragend drop",_.bind(function(a){this.localDrag="dragstart"===a.type,"drop"===a.type&&this.containerDragleave()},this)),this.initialized=!0,this):this},browserSupport:function(){var a=!1,b=document.createElement("div");return a="draggable"in b||"ondragstart"in b&&"ondrop"in b,a=a&&!!(window.File&&window.FileList&&window.FileReader)},isDraggingFile:function(a){return null!==this.draggingFile?this.draggingFile:!_.isUndefined(a.originalEvent)&&!_.isUndefined(a.originalEvent.dataTransfer)&&(this.draggingFile=_.indexOf(a.originalEvent.dataTransfer.types,"Files")>-1&&_.indexOf(a.originalEvent.dataTransfer.types,"text/plain")===-1,this.draggingFile)},refresh:function(a){var b;for(b in this.dropzones)this.dropzones[b].toggle(this.overContainer||this.overDropzone);return _.isUndefined(a)||g(a.target).closest(".uploader-editor").toggleClass("droppable",this.overDropzone),this.overContainer||this.overDropzone||(this.draggingFile=null),this},render:function(){return this.initialized?(e.prototype.render.apply(this,arguments),g(".wp-editor-wrap").each(_.bind(this.attach,this)),this):this},attach:function(a,b){var c=this.$el.clone();return this.dropzones.push(c),g(b).append(c),this},drop:function(a){var b,c;if(this.containerDragleave(a),this.dropzoneDragleave(a),this.files=a.originalEvent.dataTransfer.files,!(this.files.length<1))return b=g(a.target).parents(".wp-editor-wrap"),b.length>0&&b[0].id&&(window.wpActiveEditor=b[0].id.slice(3,-5)),this.workflow?(this.workflow.state().reset(),this.addFiles.apply(this),this.workflow.open()):(this.workflow=wp.media.editor.open(window.wpActiveEditor,{frame:"post",state:"insert",title:f.addMedia,multiple:!0}),c=this.workflow.uploader,c.uploader&&c.uploader.ready?this.addFiles.apply(this):this.workflow.on("uploader:ready",this.addFiles,this)),!1},addFiles:function(){return this.files.length&&(this.workflow.uploader.uploader.uploader.addFile(_.toArray(this.files)),this.files=[]),this},containerDragover:function(a){!this.localDrag&&this.isDraggingFile(a)&&(this.overContainer=!0,this.refresh())},containerDragleave:function(){this.overContainer=!1,_.delay(_.bind(this.refresh,this),50)},dropzoneDragover:function(a){if(!this.localDrag&&this.isDraggingFile(a))return this.overDropzone=!0,this.refresh(a),!1},dropzoneDragleave:function(a){this.overDropzone=!1,_.delay(_.bind(this.refresh,this,a),50)},click:function(a){this.containerDragleave(a),this.dropzoneDragleave(a),this.localDrag=!1}}),b.exports=d},{}],71:[function(a,b,c){var d,e=wp.media.View;d=e.extend({tagName:"div",className:"uploader-inline",template:wp.template("uploader-inline"),events:{"click .close":"hide"},initialize:function(){_.defaults(this.options,{message:"",status:!0,canClose:!1}),!this.options.$browser&&this.controller.uploader&&(this.options.$browser=this.controller.uploader.$browser),_.isUndefined(this.options.postId)&&(this.options.postId=wp.media.view.settings.post.id),this.options.status&&this.views.set(".upload-inline-status",new wp.media.view.UploaderStatus({controller:this.controller}))},prepare:function(){var a=this.controller.state().get("suggestedWidth"),b=this.controller.state().get("suggestedHeight"),c={};return c.message=this.options.message,c.canClose=this.options.canClose,a&&b&&(c.suggestedWidth=a,c.suggestedHeight=b),c},dispose:function(){return this.disposing?e.prototype.dispose.apply(this,arguments):(this.disposing=!0,this.remove())},remove:function(){var a=e.prototype.remove.apply(this,arguments);return _.defer(_.bind(this.refresh,this)),a},refresh:function(){var a=this.controller.uploader;a&&a.refresh()},ready:function(){var a,b=this.options.$browser;if(this.controller.uploader){if(a=this.$(".browser"),a[0]===b[0])return;b.detach().text(a.text()),b[0].className=a[0].className,a.replaceWith(b.show())}return this.refresh(),this},show:function(){this.$el.removeClass("hidden")},hide:function(){this.$el.addClass("hidden")}}),b.exports=d},{}],72:[function(a,b,c){var d=wp.media.View.extend({className:"upload-error",template:wp.template("uploader-status-error")});b.exports=d},{}],73:[function(a,b,c){var d,e=wp.media.View;d=e.extend({className:"media-uploader-status",template:wp.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.queue=wp.Uploader.queue,this.queue.on("add remove reset",this.visibility,this),this.queue.on("add remove reset change:percent",this.progress,this),this.queue.on("add remove reset change:uploading",this.info,this),this.errors=wp.Uploader.errors,this.errors.reset(),this.errors.on("add remove reset",this.visibility,this),this.errors.on("add",this.error,this)},dispose:function(){return wp.Uploader.queue.off(null,null,this),e.prototype.dispose.apply(this,arguments),this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length),this.$el.toggleClass("errors",!!this.errors.length),this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){_.each({$bar:".media-progress-bar div",$index:".upload-index",$total:".upload-total",$filename:".upload-filename"},function(a,b){this[b]=this.$(a)},this),this.visibility(),this.progress(),this.info()},progress:function(){var a=this.queue,b=this.$bar;b&&a.length&&b.width(a.reduce(function(a,b){if(!b.get("uploading"))return a+100;var c=b.get("percent");return a+(_.isNumber(c)?c:100)},0)/a.length+"%")},info:function(){var a,b=this.queue,c=0;b.length&&(a=this.queue.find(function(a,b){return c=b,a.get("uploading")}),this.$index.text(c+1),this.$total.text(b.length),this.$filename.html(a?this.filename(a.get("filename")):""))},filename:function(a){return _.escape(a)},error:function(a){this.views.add(".upload-errors",new wp.media.view.UploaderStatusError({filename:this.filename(a.get("file").name),message:a.get("message")}),{at:0})},dismiss:function(a){var b=this.views.get(".upload-errors");a.preventDefault(),b&&_.invoke(b,"remove"),wp.Uploader.errors.reset()}}),b.exports=d},{}],74:[function(a,b,c){var d,e=jQuery;d=wp.media.View.extend({tagName:"div",className:"uploader-window",template:wp.template("uploader-window"),initialize:function(){var a;this.$browser=e('<a href="#" class="browser" />').hide().appendTo("body"),a=this.options.uploader=_.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}}),!a.dropzone||a.dropzone instanceof e||(a.dropzone=e(a.dropzone)),this.controller.on("activate",this.refresh,this),this.controller.on("detach",function(){this.$browser.remove()},this)},refresh:function(){this.uploader&&this.uploader.refresh()},ready:function(){var a,b=wp.media.view.settings.post.id;this.uploader||(b&&(this.options.uploader.params.post_id=b),this.uploader=new wp.Uploader(this.options.uploader),a=this.uploader.dropzone,a.on("dropzone:enter",_.bind(this.show,this)),a.on("dropzone:leave",_.bind(this.hide,this)),e(this.uploader).on("uploader:ready",_.bind(this._ready,this)))},_ready:function(){this.controller.trigger("uploader:ready")},show:function(){var a=this.$el.show();_.defer(function(){a.css({opacity:1})})},hide:function(){var a=this.$el.css({opacity:0});wp.media.transition(a).done(function(){"0"===a.css("opacity")&&a.hide()}),_.delay(function(){"0"===a.css("opacity")&&a.is(":visible")&&a.hide()},500)}}),b.exports=d},{}],75:[function(a,b,c){var d=wp.Backbone.View.extend({constructor:function(a){a&&a.controller&&(this.controller=a.controller),wp.Backbone.View.apply(this,arguments)},dispose:function(){return this.undelegateEvents(),this.model&&this.model.off&&this.model.off(null,null,this),this.collection&&this.collection.off&&this.collection.off(null,null,this),this.controller&&this.controller.off&&this.controller.off(null,null,this),this},remove:function(){return this.dispose(),wp.Backbone.View.prototype.remove.apply(this,arguments)}});b.exports=d},{}]},{},[19]);
\ No newline at end of file
+this.listenTo(this.model,"remove",this.deselect),a&&(a.on("reset",this.updateSelect,this),this.listenTo(this.model,"selection:single selection:unsingle",this.details),this.details(this.model,this.controller.state().get("selection"))),this.listenTo(this.controller,"attachment:compat:waiting attachment:compat:ready",this.updateSave)},dispose:function(){var a=this.options.selection;return this.updateAll(),a&&a.off(null,null,this),e.prototype.dispose.apply(this,arguments),this},render:function(){var a=_.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""},this.options);return a.buttons=this.buttons,a.describe=this.controller.state().get("describe"),"image"===a.type&&(a.size=this.imageSize()),a.can={},a.nonces&&(a.can.remove=!!a.nonces["delete"],a.can.save=!!a.nonces.update),this.controller.state().get("allowLocalEdits")&&(a.allowLocalEdits=!0),a.uploading&&!a.percent&&(a.percent=0),this.views.detach(),this.$el.html(this.template(a)),this.$el.toggleClass("uploading",a.uploading),a.uploading?this.$bar=this.$(".media-progress-bar div"):delete this.$bar,this.updateSelect(),this.updateSave(),this.views.render(),this},progress:function(){this.$bar&&this.$bar.length&&this.$bar.width(this.model.get("percent")+"%")},toggleSelectionHandler:function(a){var b;if("INPUT"!==a.target.nodeName&&"BUTTON"!==a.target.nodeName){if(37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode)return void this.controller.trigger("attachment:keydown:arrow",a);if("keydown"!==a.type||13===a.keyCode||32===a.keyCode){if(a.preventDefault(),this.controller.isModeActive("grid")){if(this.controller.isModeActive("edit"))return void this.controller.trigger("edit:attachment",this.model,a.currentTarget);this.controller.isModeActive("select")&&(b="toggle")}a.shiftKey?b="between":(a.ctrlKey||a.metaKey)&&(b="toggle"),this.toggleSelection({method:b}),this.controller.trigger("selection:toggle")}}},toggleSelection:function(a){var b,c,d,e,f=this.collection,g=this.options.selection,h=this.model,i=a&&a.method;if(g){if(b=g.single(),i=_.isUndefined(i)?g.multiple:i,"between"===i&&b&&g.multiple){if(b===h)return;return d=f.indexOf(b),e=f.indexOf(this.model),c=d<e?f.models.slice(d,e+1):f.models.slice(e,d+1),g.add(c),void g.single(h)}if("toggle"===i)return g[this.selected()?"remove":"add"](h),void g.single(h);if("add"===i)return g.add(h),void g.single(h);i||(i="add"),"add"!==i&&(i="reset"),this.selected()?g[b===h?"remove":"single"](h):(g[i](h),g.single(h))}},updateSelect:function(){this[this.selected()?"select":"deselect"]()},selected:function(){var a=this.options.selection;if(a)return!!a.get(this.model.cid)},select:function(a,b){var c=this.options.selection,d=this.controller;!c||b&&b!==c||this.$el.hasClass("selected")||(this.$el.addClass("selected").attr("aria-checked",!0),d.isModeActive("grid")&&d.isModeActive("select")||this.$(".check").attr("tabindex","0"))},deselect:function(a,b){var c=this.options.selection;!c||b&&b!==c||this.$el.removeClass("selected").attr("aria-checked",!1).find(".check").attr("tabindex","-1")},details:function(a,b){var c,d=this.options.selection;d===b&&(c=d.single(),this.$el.toggleClass("details",c===this.model))},imageSize:function(a){var b=this.model.get("sizes"),c=!1;return a=a||"medium",b&&(b[a]?c=b[a]:b.large?c=b.large:b.thumbnail?c=b.thumbnail:b.full&&(c=b.full),c)?_.clone(c):{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}},updateSetting:function(a){var b,c,d=f(a.target).closest("[data-setting]");d.length&&(b=d.data("setting"),c=a.target.value,this.model.get(b)!==c&&this.save(b,c))},save:function(){var a=this,b=this._save=this._save||{status:"ready"},c=this.model.save.apply(this.model,arguments),d=b.requests?f.when(c,b.requests):c;b.savedTimer&&clearTimeout(b.savedTimer),this.updateSave("waiting"),b.requests=d,d.always(function(){b.requests===d&&(a.updateSave("resolved"===d.state()?"complete":"error"),b.savedTimer=setTimeout(function(){a.updateSave("ready"),delete b.savedTimer},2e3))})},updateSave:function(a){var b=this._save=this._save||{status:"ready"};return a&&a!==b.status&&(this.$el.removeClass("save-"+b.status),b.status=a),this.$el.addClass("save-"+b.status),this},updateAll:function(){var a,b=this.$("[data-setting]"),c=this.model;a=_.chain(b).map(function(a){var b,d,e=f("input, textarea, select, [value]",a);if(e.length)return b=f(a).data("setting"),d=e.val(),c.get(b)!==d?[b,d]:void 0}).compact().object().value(),_.isEmpty(a)||c.save(a)},removeFromLibrary:function(a){"keydown"===a.type&&13!==a.keyCode&&32!==a.keyCode||(a.stopPropagation(),this.collection.remove(this.model))},checkClickHandler:function(a){var b=this.options.selection;b&&(a.stopPropagation(),b.where({id:this.model.get("id")}).length?(b.remove(this.model),this.$el.focus()):b.add(this.model))}}),_.each({caption:"_syncCaption",title:"_syncTitle",artist:"_syncArtist",album:"_syncAlbum"},function(a,b){d.prototype[a]=function(a,c){var d=this.$('[data-setting="'+b+'"]');return d.length?c===d.find("input, textarea, select, [value]").val()?this:this.render():this}}),b.exports=d},{}],26:[function(a,b,c){var d,e=wp.media.view.Attachment,f=wp.media.view.l10n;d=e.extend({tagName:"div",className:"attachment-details",template:wp.template("attachment-details"),attributes:function(){return{tabIndex:0,"data-id":this.model.get("id")}},events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment","click .trash-attachment":"trashAttachment","click .untrash-attachment":"untrashAttachment","click .edit-attachment":"editAttachment",keydown:"toggleSelectionHandler"},initialize:function(){this.options=_.defaults(this.options,{rerenderOnModelChange:!1}),this.on("ready",this.initialFocus),e.prototype.initialize.apply(this,arguments)},initialFocus:function(){wp.media.isTouchDevice||this.$('input[type="text"]').eq(0).focus()},deleteAttachment:function(a){a.preventDefault(),window.confirm(f.warnDelete)&&(this.model.destroy(),this.controller.modal.focusManager.focus())},trashAttachment:function(a){var b=this.controller.library;a.preventDefault(),wp.media.view.settings.mediaTrash&&"edit-metadata"===this.controller.content.mode()?(this.model.set("status","trash"),this.model.save().done(function(){b._requery(!0)})):this.model.destroy()},untrashAttachment:function(a){var b=this.controller.library;a.preventDefault(),this.model.set("status","inherit"),this.model.save().done(function(){b._requery(!0)})},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b?(a.preventDefault(),b.set("image",this.model),this.controller.setState("edit-image")):this.$el.addClass("needs-refresh")},toggleSelectionHandler:function(a){return"keydown"===a.type&&9===a.keyCode&&a.shiftKey&&a.target===this.$(":tabbable").get(0)?(this.controller.trigger("attachment:details:shift-tab",a),!1):37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode?void this.controller.trigger("attachment:keydown:arrow",a):void 0}}),b.exports=d},{}],27:[function(a,b,c){var d=wp.media.view.Attachment.extend({buttons:{close:!0}});b.exports=d},{}],28:[function(a,b,c){var d=wp.media.view.Attachment.Selection.extend({buttons:{close:!0}});b.exports=d},{}],29:[function(a,b,c){var d=wp.media.view.Attachment.extend({buttons:{check:!0}});b.exports=d},{}],30:[function(a,b,c){var d=wp.media.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}});b.exports=d},{}],31:[function(a,b,c){var d,e=wp.media.View,f=jQuery;d=e.extend({tagName:"ul",className:"attachments",attributes:{tabIndex:-1},initialize:function(){this.el.id=_.uniqueId("__attachments-view-"),_.defaults(this.options,{refreshSensitivity:wp.media.isTouchDevice?300:200,refreshThreshold:3,AttachmentView:wp.media.view.Attachment,sortable:!1,resize:!0,idealColumnWidth:f(window).width()<640?135:150}),this._viewsByCid={},this.$window=f(window),this.resizeEvent="resize.media-modal-columns",this.collection.on("add",function(a){this.views.add(this.createAttachmentView(a),{at:this.collection.indexOf(a)})},this),this.collection.on("remove",function(a){var b=this._viewsByCid[a.cid];delete this._viewsByCid[a.cid],b&&b.remove()},this),this.collection.on("reset",this.render,this),this.listenTo(this.controller,"library:selection:add",this.attachmentFocus),this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,f(this.options.scrollElement).on("scroll",this.scroll),this.initSortable(),_.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),this.controller.on("open",this.setColumns),_.defer(this.setColumns,this))},bindEvents:function(){this.$window.off(this.resizeEvent).on(this.resizeEvent,_.debounce(this.setColumns,50))},attachmentFocus:function(){this.$("li:first").focus()},restoreFocus:function(){this.$("li.selected:first").focus()},arrowEvent:function(a){var b=this.$el.children("li"),c=this.columns,d=b.filter(":focus").index(),e=d+1<=c?1:Math.ceil((d+1)/c);if(d!==-1){if(37===a.keyCode){if(0===d)return;b.eq(d-1).focus()}if(38===a.keyCode){if(1===e)return;b.eq(d-c).focus()}if(39===a.keyCode){if(b.length===d)return;b.eq(d+1).focus()}if(40===a.keyCode){if(Math.ceil(b.length/c)===e)return;b.eq(d+c).focus()}}},dispose:function(){this.collection.props.off(null,null,this),this.options.resize&&this.$window.off(this.resizeEvent),e.prototype.dispose.apply(this,arguments)},setColumns:function(){var a=this.columns,b=this.$el.width();b&&(this.columns=Math.min(Math.round(b/this.options.idealColumnWidth),12)||1,a&&a===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},initSortable:function(){var a=this.collection;this.options.sortable&&f.fn.sortable&&(this.$el.sortable(_.extend({disabled:!!a.comparator,tolerance:"pointer",start:function(a,b){b.item.data("sortableIndexStart",b.item.index())},update:function(b,c){var d=a.at(c.item.data("sortableIndexStart")),e=a.comparator;delete a.comparator,a.remove(d,{silent:!0}),a.add(d,{silent:!0,at:c.item.index()}),a.comparator=e,a.trigger("reset",a),a.saveMenuOrder()}},this.options.sortable)),a.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!a.comparator)},this),this.collection.props.on("change:orderby",this.refreshSortable,this),this.refreshSortable())},refreshSortable:function(){if(this.options.sortable&&f.fn.sortable){var a=this.collection,b=a.props.get("orderby"),c="menuOrder"===b||!a.comparator;this.$el.sortable("option","disabled",!c)}},createAttachmentView:function(a){var b=new this.options.AttachmentView({controller:this.controller,model:a,collection:this.collection,selection:this.options.selection});return this._viewsByCid[a.cid]=b},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createAttachmentView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var a,b=this,c=this.options.scrollElement,d=c.scrollTop;c===document&&(c=document.body,d=f(document).scrollTop()),f(c).is(":visible")&&this.collection.hasMore()&&(a=this.views.parent.toolbar,c.scrollHeight-(d+c.clientHeight)<c.clientHeight/3&&a.get("spinner").show(),c.scrollHeight<d+c.clientHeight*this.options.refreshThreshold&&this.collection.more().done(function(){b.scroll(),a.get("spinner").hide()}))}}),b.exports=d},{}],32:[function(a,b,c){var d,e=wp.media.View,f=wp.media.view.settings.mediaTrash,g=wp.media.view.l10n,h=jQuery;d=e.extend({tagName:"div",className:"attachments-browser",initialize:function(){_.defaults(this.options,{filters:!1,search:!0,date:!0,display:!1,sidebar:!0,AttachmentView:wp.media.view.Attachment.Library}),this.controller.on("toggle:upload:attachment",this.toggleUploader,this),this.controller.on("edit:selection",this.editSelection),this.createToolbar(),this.createUploader(),this.createAttachments(),this.options.sidebar&&this.createSidebar(),this.updateContent(),this.options.sidebar&&"errors"!==this.options.sidebar||(this.$el.addClass("hide-sidebar"),"errors"===this.options.sidebar&&this.$el.addClass("sidebar-for-errors")),this.collection.on("add remove reset",this.updateContent,this)},editSelection:function(a){a.$(".media-button-backToLibrary").focus()},dispose:function(){return this.options.selection.off(null,null,this),e.prototype.dispose.apply(this,arguments),this},createToolbar:function(){var a,b,c;c={controller:this.controller},this.controller.isModeActive("grid")&&(c.className="media-toolbar wp-filter"),this.toolbar=new wp.media.view.Toolbar(c),this.views.add(this.toolbar),this.toolbar.set("spinner",new wp.media.view.Spinner({priority:-60})),-1!==h.inArray(this.options.filters,["uploaded","all"])&&(this.toolbar.set("filtersLabel",new wp.media.view.Label({value:g.filterByType,attributes:{"for":"media-attachment-filters"},priority:-80}).render()),"uploaded"===this.options.filters?this.toolbar.set("filters",new wp.media.view.AttachmentFilters.Uploaded({controller:this.controller,model:this.collection.props,priority:-80}).render()):(b=new wp.media.view.AttachmentFilters.All({controller:this.controller,model:this.collection.props,priority:-80}),this.toolbar.set("filters",b.render()))),this.controller.isModeActive("grid")?(a=e.extend({className:"view-switch media-grid-view-switch",template:wp.template("media-library-view-switcher")}),this.toolbar.set("libraryViewSwitcher",new a({controller:this.controller,priority:-90}).render()),this.toolbar.set("dateFilterLabel",new wp.media.view.Label({value:g.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new wp.media.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render()),this.toolbar.set("selectModeToggleButton",new wp.media.view.SelectModeToggleButton({text:g.bulkSelect,controller:this.controller,priority:-70}).render()),this.toolbar.set("deleteSelectedButton",new wp.media.view.DeleteSelectedButton({filters:b,style:"primary",disabled:!0,text:f?g.trashSelected:g.deleteSelected,controller:this.controller,priority:-60,click:function(){var a=[],b=[],c=this.controller.state().get("selection"),d=this.controller.state().get("library");c.length&&(f||window.confirm(g.warnBulkDelete))&&(f&&"trash"!==c.at(0).get("status")&&!window.confirm(g.warnBulkTrash)||(c.each(function(c){return c.get("nonces")["delete"]?void(f&&"trash"===c.get("status")?(c.set("status","inherit"),a.push(c.save()),b.push(c)):f?(c.set("status","trash"),a.push(c.save()),b.push(c)):c.destroy({wait:!0})):void b.push(c)}),a.length?(c.remove(b),h.when.apply(null,a).then(_.bind(function(){d._requery(!0),this.controller.trigger("selection:action:done")},this))):this.controller.trigger("selection:action:done")))}}).render()),f&&this.toolbar.set("deleteSelectedPermanentlyButton",new wp.media.view.DeleteSelectedPermanentlyButton({filters:b,style:"primary",disabled:!0,text:g.deleteSelected,controller:this.controller,priority:-55,click:function(){var a=[],b=this.controller.state().get("selection");b.length&&window.confirm(g.warnBulkDelete)&&(b.each(function(b){return b.get("nonces")["delete"]?void b.destroy():void a.push(b)}),b.remove(a),this.controller.trigger("selection:action:done"))}}).render())):this.options.date&&(this.toolbar.set("dateFilterLabel",new wp.media.view.Label({value:g.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new wp.media.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render())),this.options.search&&(this.toolbar.set("searchLabel",new wp.media.view.Label({value:g.searchMediaLabel,attributes:{"for":"media-search-input"},priority:60}).render()),this.toolbar.set("search",new wp.media.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render())),this.options.dragInfo&&this.toolbar.set("dragInfo",new e({el:h('<div class="instructions">'+g.dragInfo+"</div>")[0],priority:-40})),this.options.suggestedWidth&&this.options.suggestedHeight&&this.toolbar.set("suggestedDimensions",new e({el:h('<div class="instructions">'+g.suggestedDimensions+" "+this.options.suggestedWidth+" &times; "+this.options.suggestedHeight+"</div>")[0],priority:-40}))},updateContent:function(){var a,b=this;a=this.controller.isModeActive("grid")?b.attachmentsNoResults:b.uploader,this.collection.length?(a.$el.addClass("hidden"),b.toolbar.get("spinner").hide()):(this.toolbar.get("spinner").show(),this.dfd=this.collection.more().done(function(){b.collection.length?a.$el.addClass("hidden"):a.$el.removeClass("hidden"),b.toolbar.get("spinner").hide()}))},createUploader:function(){this.uploader=new wp.media.view.UploaderInline({controller:this.controller,status:!1,message:this.controller.isModeActive("grid")?"":g.noItemsFound,canClose:this.controller.isModeActive("grid")}),this.uploader.hide(),this.views.add(this.uploader)},toggleUploader:function(){this.uploader.$el.hasClass("hidden")?this.uploader.show():this.uploader.hide()},createAttachments:function(){this.attachments=new wp.media.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,scrollElement:this.options.scrollElement,idealColumnWidth:this.options.idealColumnWidth,AttachmentView:this.options.AttachmentView}),this.controller.on("attachment:keydown:arrow",_.bind(this.attachments.arrowEvent,this.attachments)),this.controller.on("attachment:details:shift-tab",_.bind(this.attachments.restoreFocus,this.attachments)),this.views.add(this.attachments),this.controller.isModeActive("grid")&&(this.attachmentsNoResults=new e({controller:this.controller,tagName:"p"}),this.attachmentsNoResults.$el.addClass("hidden no-media"),this.attachmentsNoResults.$el.html(g.noMedia),this.views.add(this.attachmentsNoResults))},createSidebar:function(){var a=this.options,b=a.selection,c=this.sidebar=new wp.media.view.Sidebar({controller:this.controller});this.views.add(c),this.controller.uploader&&c.set("uploads",new wp.media.view.UploaderStatus({controller:this.controller,priority:40})),b.on("selection:single",this.createSingle,this),b.on("selection:unsingle",this.disposeSingle,this),b.single()&&this.createSingle()},createSingle:function(){var a=this.sidebar,b=this.options.selection.single();a.set("details",new wp.media.view.Attachment.Details({controller:this.controller,model:b,priority:80})),a.set("compat",new wp.media.view.AttachmentCompat({controller:this.controller,model:b,priority:120})),this.options.display&&a.set("display",new wp.media.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(b),attachment:b,priority:160,userSettings:this.model.get("displayUserSettings")})),"insert"===this.model.id&&a.$el.addClass("visible")},disposeSingle:function(){var a=this.sidebar;a.unset("details"),a.unset("compat"),a.unset("display"),a.$el.removeClass("visible")}}),b.exports=d},{}],33:[function(a,b,c){var d,e=wp.media.view.Attachments;d=e.extend({events:{},initialize:function(){return _.defaults(this.options,{sortable:!1,resize:!1,AttachmentView:wp.media.view.Attachment.Selection}),e.prototype.initialize.apply(this,arguments)}}),b.exports=d},{}],34:[function(a,b,c){var d,e=Backbone.$;d=wp.media.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=_.map(this.options.buttons||[],function(a){return a instanceof Backbone.View?a:new wp.media.view.Button(a).render()}),delete this.options.buttons,this.options.classes&&this.$el.addClass(this.options.classes)},render:function(){return this.$el.html(e(_.pluck(this.buttons,"el")).detach()),this}}),b.exports=d},{}],35:[function(a,b,c){var d=wp.media.View.extend({tagName:"button",className:"media-button",attributes:{type:"button"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:!1},initialize:function(){this.model=new Backbone.Model(this.defaults),_.each(this.defaults,function(a,b){var c=this.options[b];_.isUndefined(c)||(this.model.set(b,c),delete this.options[b])},this),this.listenTo(this.model,"change",this.render)},render:function(){var a=["button",this.className],b=this.model.toJSON();return b.style&&a.push("button-"+b.style),b.size&&a.push("button-"+b.size),a=_.uniq(a.concat(this.options.classes)),this.el.className=a.join(" "),this.$el.attr("disabled",b.disabled),this.$el.text(this.model.get("text")),this},click:function(a){"#"===this.attributes.href&&a.preventDefault(),this.options.click&&!this.model.get("disabled")&&this.options.click.apply(this,arguments)}});b.exports=d},{}],36:[function(a,b,c){var d,e=wp.media.View,f=wp.media.view.UploaderStatus,g=wp.media.view.l10n,h=jQuery;d=e.extend({className:"crop-content",template:wp.template("crop-content"),initialize:function(){_.bindAll(this,"onImageLoad")},ready:function(){this.controller.frame.on("content:error:crop",this.onError,this),this.$image=this.$el.find(".crop-image"),this.$image.on("load",this.onImageLoad),h(window).on("resize.cropper",_.debounce(this.onImageLoad,250))},remove:function(){h(window).off("resize.cropper"),this.$el.remove(),this.$el.off(),e.prototype.remove.apply(this,arguments)},prepare:function(){return{title:g.cropYourImage,url:this.options.attachment.get("url")}},onImageLoad:function(){var a=this.controller.get("imgSelectOptions");"function"==typeof a&&(a=a(this.options.attachment,this.controller)),a=_.extend(a,{parent:this.$el}),this.trigger("image-loaded"),this.controller.imgSelect=this.$image.imgAreaSelect(a)},onError:function(){var a=this.options.attachment.get("filename");this.views.add(".upload-errors",new wp.media.view.UploaderStatusError({filename:f.prototype.filename(a),message:window._wpMediaViewsL10n.cropError}),{at:0})}}),b.exports=d},{}],37:[function(a,b,c){var d,e=wp.media.View;d=e.extend({className:"image-editor",template:wp.template("image-editor"),initialize:function(a){this.editor=window.imageEdit,this.controller=a.controller,e.prototype.initialize.apply(this,arguments)},prepare:function(){return this.model.toJSON()},loadEditor:function(){var a=this.editor.open(this.model.get("id"),this.model.get("nonces").edit,this);a.done(_.bind(this.focus,this))},focus:function(){this.$(".imgedit-submit .button").eq(0).focus()},back:function(){var a=this.controller.lastState();this.controller.setState(a)},refresh:function(){this.model.fetch()},save:function(){var a=this.controller.lastState();this.model.fetch().done(_.bind(function(){this.controller.setState(a)},this))}}),b.exports=d},{}],38:[function(a,b,c){var d=wp.media.View.extend({className:"media-embed",initialize:function(){this.url=new wp.media.view.EmbedUrl({controller:this.controller,model:this.model.props}).render(),this.views.set([this.url]),this.refresh(),this.listenTo(this.model,"change:type",this.refresh),this.listenTo(this.model,"change:loading",this.loading)},settings:function(a){this._settings&&this._settings.remove(),this._settings=a,this.views.add(a)},refresh:function(){var a,b=this.model.get("type");if("image"===b)a=wp.media.view.EmbedImage;else{if("link"!==b)return;a=wp.media.view.EmbedLink}this.settings(new a({controller:this.controller,model:this.model.props,priority:40}))},loading:function(){this.$el.toggleClass("embed-loading",this.model.get("loading"))}});b.exports=d},{}],39:[function(a,b,c){var d,e=wp.media.view.Settings.AttachmentDisplay;d=e.extend({className:"embed-media-settings",template:wp.template("embed-image-settings"),initialize:function(){e.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:url",this.updateImage)},updateImage:function(){this.$("img").attr("src",this.model.get("url"))}}),b.exports=d},{}],40:[function(a,b,c){var d,e=jQuery;d=wp.media.view.Settings.extend({className:"embed-link-settings",template:wp.template("embed-link-settings"),initialize:function(){this.listenTo(this.model,"change:url",this.updateoEmbed)},updateoEmbed:_.debounce(function(){var a=this.model.get("url");this.$(".embed-container").hide().find(".embed-preview").empty(),this.$(".setting").hide(),a&&(a.length<11||!a.match(/^http(s)?:\/\//))||this.fetch()},wp.media.controller.Embed.sensitivity),fetch:function(){var a;e("#embed-url-field").val()===this.model.get("url")&&(this.dfd&&"pending"===this.dfd.state()&&this.dfd.abort(),a=new wp.shortcode({tag:"embed",attrs:_.pick(this.model.attributes,["width","height","src"]),content:this.model.get("url")}),this.dfd=e.ajax({type:"POST",url:wp.ajax.settings.url,context:this,data:{action:"parse-embed",post_ID:wp.media.view.settings.post.id,shortcode:a.string()}}).done(this.renderoEmbed).fail(this.renderFail))},renderFail:function(a,b){"abort"!==b&&this.$(".link-text").show()},renderoEmbed:function(a){var b=a&&a.data&&a.data.body||"";b?this.$(".embed-container").show().find(".embed-preview").html(b):this.renderFail()}}),b.exports=d},{}],41:[function(a,b,c){var d,e=wp.media.View,f=jQuery;d=e.extend({tagName:"label",className:"embed-url",events:{input:"url",keyup:"url",change:"url"},initialize:function(){this.$input=f('<input id="embed-url-field" type="url" />').val(this.model.get("url")),this.input=this.$input[0],this.spinner=f('<span class="spinner" />')[0],this.$el.append([this.input,this.spinner]),this.listenTo(this.model,"change:url",this.render),this.model.get("url")&&_.delay(_.bind(function(){this.model.trigger("change:url")},this),500)},render:function(){var a=this.$input;if(!a.is(":focus"))return this.input.value=this.model.get("url")||"http://",e.prototype.render.apply(this,arguments),this},ready:function(){wp.media.isTouchDevice||this.focus()},url:function(a){this.model.set("url",a.target.value)},focus:function(){var a=this.$input;a.is(":visible")&&a.focus()[0].select()}}),b.exports=d},{}],42:[function(a,b,c){var d=wp.media.View.extend({events:{keydown:"constrainTabbing"},focus:function(){this.$(".media-menu-item").first().focus()},constrainTabbing:function(a){var b;if(9===a.keyCode)return b=this.$(":tabbable").not('.moxie-shim input[type="file"]'),b.last()[0]!==a.target||a.shiftKey?b.first()[0]===a.target&&a.shiftKey?(b.last().focus(),!1):void 0:(b.first().focus(),!1)}});b.exports=d},{}],43:[function(a,b,c){var d=wp.media.View.extend({initialize:function(){_.defaults(this.options,{mode:["select"]}),this._createRegions(),this._createStates(),this._createModes()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[],_.each(this.regions,function(a){this[a]=new wp.media.controller.Region({view:this,id:a,selector:".media-frame-"+a})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:wp.media.controller.State}),this.states.on("add",function(a){a.frame=this,a.trigger("ready")},this),this.options.states&&this.states.add(this.options.states)},_createModes:function(){this.activeModes=new Backbone.Collection,this.activeModes.on("add remove reset",_.bind(this.triggerModeEvents,this)),_.each(this.options.mode,function(a){this.activateMode(a)},this)},reset:function(){return this.states.invoke("trigger","reset"),this},triggerModeEvents:function(a,b,c){var d,e,f={add:"activate",remove:"deactivate"};_.each(c,function(a,b){a&&(d=b)}),_.has(f,d)&&(e=a.get("id")+":"+f[d],this.trigger(e))},activateMode:function(a){if(!this.isModeActive(a))return this.activeModes.add([{id:a}]),this.$el.addClass("mode-"+a),this},deactivateMode:function(a){return this.isModeActive(a)?(this.activeModes.remove(this.activeModes.where({id:a})),this.$el.removeClass("mode-"+a),this.trigger(a+":deactivate"),this):this},isModeActive:function(a){return Boolean(this.activeModes.where({id:a}).length)}});_.extend(d.prototype,wp.media.controller.StateMachine.prototype),b.exports=d},{}],44:[function(a,b,c){var d,e=wp.media.view.MediaFrame.Select,f=wp.media.view.l10n;d=e.extend({defaults:{id:"image",url:"",menu:"image-details",content:"image-details",toolbar:"image-details",type:"link",title:f.imageDetailsTitle,priority:120},initialize:function(a){this.image=new wp.media.model.PostImage(a.metadata),this.options.selection=new wp.media.model.Selection(this.image.attachment,{multiple:!1}),e.prototype.initialize.apply(this,arguments)},bindHandlers:function(){e.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:image-details",this.createMenu,this),this.on("content:create:image-details",this.imageDetailsContent,this),this.on("content:render:edit-image",this.editImageContent,this),this.on("toolbar:render:image-details",this.renderImageDetailsToolbar,this),this.on("toolbar:render:replace",this.renderReplaceImageToolbar,this)},createStates:function(){this.states.add([new wp.media.controller.ImageDetails({image:this.image,editable:!1}),new wp.media.controller.ReplaceImage({id:"replace-image",library:wp.media.query({type:"image"}),image:this.image,multiple:!1,title:f.imageReplaceTitle,toolbar:"replace",priority:80,displaySettings:!0}),new wp.media.controller.EditImage({image:this.image,selection:this.options.selection})])},imageDetailsContent:function(a){a.view=new wp.media.view.ImageDetails({controller:this,model:this.state().image,attachment:this.state().image.attachment})},editImageContent:function(){var a,b=this.state(),c=b.get("image");c&&(a=new wp.media.view.EditImage({model:c,controller:this}).render(),this.content.set(a),a.loadEditor())},renderImageDetailsToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{select:{style:"primary",text:f.update,priority:80,click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))},renderReplaceImageToolbar:function(){var a=this,b=a.lastState(),c=b&&b.id;this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{back:{text:f.back,priority:20,click:function(){c?a.setState(c):a.close()}},replace:{style:"primary",text:f.replace,priority:80,click:function(){var a=this.controller,b=a.state(),c=b.get("selection"),d=c.single();a.close(),a.image.changeAttachment(d,b.display(d)),b.trigger("replace",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))}}),b.exports=d},{}],45:[function(a,b,c){var d,e=wp.media.view.MediaFrame.Select,f=wp.media.controller.Library,g=wp.media.view.l10n;d=e.extend({initialize:function(){this.counts={audio:{count:wp.media.view.settings.attachmentCounts.audio,state:"playlist"},video:{count:wp.media.view.settings.attachmentCounts.video,state:"video-playlist"}},_.defaults(this.options,{multiple:!0,editing:!1,state:"insert",metadata:{}}),e.prototype.initialize.apply(this,arguments),this.createIframeStates()},createStates:function(){var a=this.options;this.states.add([new f({id:"insert",title:g.insertMediaTitle,priority:20,toolbar:"main-insert",filterable:"all",library:wp.media.query(a.library),multiple:!!a.multiple&&"reset",editable:!0,allowLocalEdits:!0,displaySettings:!0,displayUserSettings:!0}),new f({id:"gallery",title:g.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"image"},a.library))}),new wp.media.controller.Embed({metadata:a.metadata}),new wp.media.controller.EditImage({model:a.editImage}),new wp.media.controller.GalleryEdit({library:a.selection,editing:a.editing,menu:"gallery"}),new wp.media.controller.GalleryAdd,new f({id:"playlist",title:g.createPlaylistTitle,priority:60,toolbar:"main-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"audio"},a.library))}),new wp.media.controller.CollectionEdit({type:"audio",collectionType:"playlist",title:g.editPlaylistTitle,SettingsView:wp.media.view.Settings.Playlist,library:a.selection,editing:a.editing,
+menu:"playlist",dragInfoText:g.playlistDragInfo,dragInfo:!1}),new wp.media.controller.CollectionAdd({type:"audio",collectionType:"playlist",title:g.addToPlaylistTitle}),new f({id:"video-playlist",title:g.createVideoPlaylistTitle,priority:60,toolbar:"main-video-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"video"},a.library))}),new wp.media.controller.CollectionEdit({type:"video",collectionType:"playlist",title:g.editVideoPlaylistTitle,SettingsView:wp.media.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"video-playlist",dragInfoText:g.videoPlaylistDragInfo,dragInfo:!1}),new wp.media.controller.CollectionAdd({type:"video",collectionType:"playlist",title:g.addToVideoPlaylistTitle})]),wp.media.view.settings.post.featuredImageId&&this.states.add(new wp.media.controller.FeaturedImage)},bindHandlers:function(){var a,b;e.prototype.bindHandlers.apply(this,arguments),this.on("activate",this.activate,this),b=_.find(this.counts,function(a){return 0===a.count}),"undefined"!=typeof b&&this.listenTo(wp.media.model.Attachments.all,"change:type",this.mediaTypeCounts),this.on("menu:create:gallery",this.createMenu,this),this.on("menu:create:playlist",this.createMenu,this),this.on("menu:create:video-playlist",this.createMenu,this),this.on("toolbar:create:main-insert",this.createToolbar,this),this.on("toolbar:create:main-gallery",this.createToolbar,this),this.on("toolbar:create:main-playlist",this.createToolbar,this),this.on("toolbar:create:main-video-playlist",this.createToolbar,this),this.on("toolbar:create:featured-image",this.featuredImageToolbar,this),this.on("toolbar:create:main-embed",this.mainEmbedToolbar,this),a={menu:{"default":"mainMenu",gallery:"galleryMenu",playlist:"playlistMenu","video-playlist":"videoPlaylistMenu"},content:{embed:"embedContent","edit-image":"editImageContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar","main-gallery":"mainGalleryToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar","main-playlist":"mainPlaylistToolbar","playlist-edit":"playlistEditToolbar","playlist-add":"playlistAddToolbar","main-video-playlist":"mainVideoPlaylistToolbar","video-playlist-edit":"videoPlaylistEditToolbar","video-playlist-add":"videoPlaylistAddToolbar"}},_.each(a,function(a,b){_.each(a,function(a,c){this.on(b+":render:"+c,this[a],this)},this)},this)},activate:function(){_.each(this.counts,function(a){a.count<1&&this.menuItemVisibility(a.state,"hide")},this)},mediaTypeCounts:function(a,b){"undefined"!=typeof this.counts[b]&&this.counts[b].count<1&&(this.counts[b].count++,this.menuItemVisibility(this.counts[b].state,"show"))},mainMenu:function(a){a.set({"library-separator":new wp.media.View({className:"separator",priority:100})})},menuItemVisibility:function(a,b){var c=this.menu.get();"hide"===b?c.hide(a):"show"===b&&c.show(a)},galleryMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:g.cancelGalleryTitle,priority:20,click:function(){c?d.setState(c):d.close(),this.controller.modal.focusManager.focus()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},playlistMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:g.cancelPlaylistTitle,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},videoPlaylistMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:g.cancelVideoPlaylistTitle,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},embedContent:function(){var a=new wp.media.view.Embed({controller:this,model:this.state()}).render();this.content.set(a),wp.media.isTouchDevice||a.url.focus()},editSelectionContent:function(){var a,b=this.state(),c=b.get("selection");a=new wp.media.view.AttachmentsBrowser({controller:this,collection:c,selection:c,model:b,sortable:!0,search:!1,date:!1,dragInfo:!0,AttachmentView:wp.media.view.Attachments.EditSelection}).render(),a.toolbar.set("backToLibrary",{text:g.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}}),this.content.set(a),this.trigger("edit:selection",this)},editImageContent:function(){var a=this.state().get("image"),b=new wp.media.view.EditImage({model:a,controller:this}).render();this.content.set(b),b.loadEditor()},selectionStatusToolbar:function(a){var b=this.state().get("editable");a.set("selection",new wp.media.view.Selection({controller:this,collection:this.state().get("selection"),priority:-40,editable:b&&function(){this.controller.content.mode("edit-selection")}}).render())},mainInsertToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("insert",{style:"primary",priority:80,text:g.insertIntoPost,requires:{selection:!0},click:function(){var a=b.state(),c=a.get("selection");b.close(),a.trigger("insert",c).reset()}})},mainGalleryToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("gallery",{style:"primary",text:g.createNewGallery,priority:60,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("gallery-edit"),d=a.where({type:"image"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("gallery-edit"),this.controller.modal.focusManager.focus()}})},mainPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("playlist",{style:"primary",text:g.createNewPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("playlist-edit"),d=a.where({type:"audio"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("playlist-edit"),this.controller.modal.focusManager.focus()}})},mainVideoPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("video-playlist",{style:"primary",text:g.createNewVideoPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("video-playlist-edit"),d=a.where({type:"video"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("video-playlist-edit"),this.controller.modal.focusManager.focus()}})},featuredImageToolbar:function(a){this.createSelectToolbar(a,{text:g.setFeaturedImage,state:this.options.state})},mainEmbedToolbar:function(a){a.view=new wp.media.view.Toolbar.Embed({controller:this})},galleryEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?g.updateGallery:g.insertGallery,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},galleryAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:g.addToGallery,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("gallery-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("gallery-edit")}}}}))},playlistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?g.updatePlaylist:g.insertPlaylist,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},playlistAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:g.addToPlaylist,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("playlist-edit")}}}}))},videoPlaylistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?g.updateVideoPlaylist:g.insertVideoPlaylist,priority:140,requires:{library:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("library");c.type="video",a.close(),b.trigger("update",c),a.setState(a.options.state),a.reset()}}}}))},videoPlaylistAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:g.addToVideoPlaylist,priority:140,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("video-playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("video-playlist-edit")}}}}))}}),b.exports=d},{}],46:[function(a,b,c){var d,e=wp.media.view.MediaFrame,f=wp.media.view.l10n;d=e.extend({initialize:function(){e.prototype.initialize.apply(this,arguments),_.defaults(this.options,{selection:[],library:{},multiple:!1,state:"library"}),this.createSelection(),this.createStates(),this.bindHandlers()},createSelection:function(){var a=this.options.selection;a instanceof wp.media.model.Selection||(this.options.selection=new wp.media.model.Selection(a,{multiple:this.options.multiple})),this._selection={attachments:new wp.media.model.Attachments,difference:[]}},createStates:function(){var a=this.options;this.options.states||this.states.add([new wp.media.controller.Library({library:wp.media.query(a.library),multiple:a.multiple,title:a.title,priority:20})])},bindHandlers:function(){this.on("router:create:browse",this.createRouter,this),this.on("router:render:browse",this.browseRouter,this),this.on("content:create:browse",this.browseContent,this),this.on("content:render:upload",this.uploadContent,this),this.on("toolbar:create:select",this.createSelectToolbar,this)},browseRouter:function(a){a.set({upload:{text:f.uploadFilesTitle,priority:20},browse:{text:f.mediaLibraryTitle,priority:40}})},browseContent:function(a){var b=this.state();this.$el.removeClass("hide-toolbar"),a.view=new wp.media.view.AttachmentsBrowser({controller:this,collection:b.get("library"),selection:b.get("selection"),model:b,sortable:b.get("sortable"),search:b.get("searchable"),filters:b.get("filterable"),date:b.get("date"),display:b.has("display")?b.get("display"):b.get("displaySettings"),dragInfo:b.get("dragInfo"),idealColumnWidth:b.get("idealColumnWidth"),suggestedWidth:b.get("suggestedWidth"),suggestedHeight:b.get("suggestedHeight"),AttachmentView:b.get("AttachmentView")})},uploadContent:function(){this.$el.removeClass("hide-toolbar"),this.content.set(new wp.media.view.UploaderInline({controller:this}))},createSelectToolbar:function(a,b){b=b||this.options.button||{},b.controller=this,a.view=new wp.media.view.Toolbar.Select(b)}}),b.exports=d},{}],47:[function(a,b,c){var d=wp.media.View.extend({className:"media-iframe",render:function(){return this.views.detach(),this.$el.html('<iframe src="'+this.controller.state().get("src")+'" />'),this.views.render(),this}});b.exports=d},{}],48:[function(a,b,c){var d,e=wp.media.view.Settings.AttachmentDisplay,f=jQuery;d=e.extend({className:"image-details",template:wp.template("image-details"),events:_.defaults(e.prototype.events,{"click .edit-attachment":"editAttachment","click .replace-attachment":"replaceAttachment","click .advanced-toggle":"onToggleAdvanced",'change [data-setting="customWidth"]':"onCustomSize",'change [data-setting="customHeight"]':"onCustomSize",'keyup [data-setting="customWidth"]':"onCustomSize",'keyup [data-setting="customHeight"]':"onCustomSize"}),initialize:function(){this.options.attachment=this.model.attachment,this.listenTo(this.model,"change:url",this.updateUrl),this.listenTo(this.model,"change:link",this.toggleLinkSettings),this.listenTo(this.model,"change:size",this.toggleCustomSize),e.prototype.initialize.apply(this,arguments)},prepare:function(){var a=!1;return this.model.attachment&&(a=this.model.attachment.toJSON()),_.defaults({model:this.model.toJSON(),attachment:a},this.options)},render:function(){var a=arguments;return this.model.attachment&&"pending"===this.model.dfd.state()?this.model.dfd.done(_.bind(function(){e.prototype.render.apply(this,a),this.postRender()},this)).fail(_.bind(function(){this.model.attachment=!1,e.prototype.render.apply(this,a),this.postRender()},this)):(e.prototype.render.apply(this,arguments),this.postRender()),this},postRender:function(){setTimeout(_.bind(this.resetFocus,this),10),this.toggleLinkSettings(),"show"===window.getUserSetting("advImgDetails")&&this.toggleAdvanced(!0),this.trigger("post-render")},resetFocus:function(){this.$(".link-to-custom").blur(),this.$(".embed-media-settings").scrollTop(0)},updateUrl:function(){this.$(".image img").attr("src",this.model.get("url")),this.$(".url").val(this.model.get("url"))},toggleLinkSettings:function(){"none"===this.model.get("link")?this.$(".link-settings").addClass("hidden"):this.$(".link-settings").removeClass("hidden")},toggleCustomSize:function(){"custom"!==this.model.get("size")?this.$(".custom-size").addClass("hidden"):this.$(".custom-size").removeClass("hidden")},onCustomSize:function(a){var b,c=f(a.target).data("setting"),d=f(a.target).val();return!/^\d+/.test(d)||parseInt(d,10)<1?void a.preventDefault():void("customWidth"===c?(b=Math.round(1/this.model.get("aspectRatio")*d),this.model.set("customHeight",b,{silent:!0}),this.$('[data-setting="customHeight"]').val(b)):(b=Math.round(this.model.get("aspectRatio")*d),this.model.set("customWidth",b,{silent:!0}),this.$('[data-setting="customWidth"]').val(b)))},onToggleAdvanced:function(a){a.preventDefault(),this.toggleAdvanced()},toggleAdvanced:function(a){var b,c=this.$el.find(".advanced-section");c.hasClass("advanced-visible")||a===!1?(c.removeClass("advanced-visible"),c.find(".advanced-settings").addClass("hidden"),b="hide"):(c.addClass("advanced-visible"),c.find(".advanced-settings").removeClass("hidden"),b="show"),window.setUserSetting("advImgDetails",b)},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b&&(a.preventDefault(),b.set("image",this.model.attachment),this.controller.setState("edit-image"))},replaceAttachment:function(a){a.preventDefault(),this.controller.setState("replace-image")}}),b.exports=d},{}],49:[function(a,b,c){var d=wp.media.View.extend({tagName:"label",className:"screen-reader-text",initialize:function(){this.value=this.options.value},render:function(){return this.$el.html(this.value),this}});b.exports=d},{}],50:[function(a,b,c){var d,e=wp.media.view.Frame,f=jQuery;d=e.extend({className:"media-frame",template:wp.template("media-frame"),regions:["menu","title","content","toolbar","router"],events:{"click div.media-frame-title h1":"toggleMenu"},initialize:function(){e.prototype.initialize.apply(this,arguments),_.defaults(this.options,{title:"",modal:!0,uploader:!0}),this.$el.addClass("wp-core-ui"),this.options.modal&&(this.modal=new wp.media.view.Modal({controller:this,title:this.options.title}),this.modal.content(this)),!wp.Uploader.limitExceeded&&wp.Uploader.browser.supported||(this.options.uploader=!1),this.options.uploader&&(this.uploader=new wp.media.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}}),this.views.set(".media-frame-uploader",this.uploader)),this.on("attach",_.bind(this.views.ready,this.views),this),this.on("title:create:default",this.createTitle,this),this.title.mode("default"),this.on("title:render",function(a){a.$el.append('<span class="dashicons dashicons-arrow-down"></span>')}),this.on("menu:create:default",this.createMenu,this)},render:function(){return!this.state()&&this.options.state&&this.setState(this.options.state),e.prototype.render.apply(this,arguments)},createTitle:function(a){a.view=new wp.media.View({controller:this,tagName:"h1"})},createMenu:function(a){a.view=new wp.media.view.Menu({controller:this})},toggleMenu:function(){this.$el.find(".media-menu").toggleClass("visible")},createToolbar:function(a){a.view=new wp.media.view.Toolbar({controller:this})},createRouter:function(a){a.view=new wp.media.view.Router({controller:this})},createIframeStates:function(a){var b,c=wp.media.view.settings,d=c.tabs,e=c.tabUrl;d&&e&&(b=f("#post_ID"),b.length&&(e+="&post_id="+b.val()),_.each(d,function(b,c){this.state("iframe:"+c).set(_.defaults({tab:c,src:e+"&tab="+c,title:b,content:"iframe",menu:"default"},a))},this),this.on("content:create:iframe",this.iframeContent,this),this.on("content:deactivate:iframe",this.iframeContentCleanup,this),this.on("menu:render:default",this.iframeMenu,this),this.on("open",this.hijackThickbox,this),this.on("close",this.restoreThickbox,this))},iframeContent:function(a){this.$el.addClass("hide-toolbar"),a.view=new wp.media.view.Iframe({controller:this})},iframeContentCleanup:function(){this.$el.removeClass("hide-toolbar")},iframeMenu:function(a){var b={};a&&(_.each(wp.media.view.settings.tabs,function(a,c){b["iframe:"+c]={text:this.state("iframe:"+c).get("title"),priority:200}},this),a.set(b))},hijackThickbox:function(){var a=this;window.tb_remove&&!this._tb_remove&&(this._tb_remove=window.tb_remove,window.tb_remove=function(){a.close(),a.reset(),a.setState(a.options.state),a._tb_remove.call(window)})},restoreThickbox:function(){this._tb_remove&&(window.tb_remove=this._tb_remove,delete this._tb_remove)}}),_.each(["open","close","attach","detach","escape"],function(a){d.prototype[a]=function(){return this.modal&&this.modal[a].apply(this.modal,arguments),this}}),b.exports=d},{}],51:[function(a,b,c){var d,e=jQuery;d=wp.media.View.extend({tagName:"a",className:"media-menu-item",attributes:{href:"#"},events:{click:"_click"},_click:function(a){var b=this.options.click;a&&a.preventDefault(),b?b.call(this):this.click(),wp.media.isTouchDevice||e(".media-frame-content input").first().focus()},click:function(){var a=this.options.state;a&&(this.controller.setState(a),this.views.parent.$el.removeClass("visible"))},render:function(){var a=this.options;return a.text?this.$el.text(a.text):a.html&&this.$el.html(a.html),this}}),b.exports=d},{}],52:[function(a,b,c){var d,e=wp.media.view.MenuItem,f=wp.media.view.PriorityList;d=f.extend({tagName:"div",className:"media-menu",property:"state",ItemView:e,region:"menu",toView:function(a,b){return a=a||{},a[this.property]=a[this.property]||b,new this.ItemView(a).render()},ready:function(){f.prototype.ready.apply(this,arguments),this.visibility()},set:function(){f.prototype.set.apply(this,arguments),this.visibility()},unset:function(){f.prototype.unset.apply(this,arguments),this.visibility()},visibility:function(){var a=this.region,b=this.controller[a].get(),c=this.views.get(),d=!c||c.length<2;this===b&&this.controller.$el.toggleClass("hide-"+a,d)},select:function(a){var b=this.get(a);b&&(this.deselect(),b.$el.addClass("active"))},deselect:function(){this.$el.children().removeClass("active")},hide:function(a){var b=this.get(a);b&&b.$el.addClass("hidden")},show:function(a){var b=this.get(a);b&&b.$el.removeClass("hidden")}}),b.exports=d},{}],53:[function(a,b,c){var d,e=jQuery;d=wp.media.View.extend({tagName:"div",template:wp.template("media-modal"),attributes:{tabindex:0},events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler",keydown:"keydown"},clickedOpenerEl:null,initialize:function(){_.defaults(this.options,{container:document.body,title:"",propagate:!0,freeze:!0}),this.focusManager=new wp.media.view.FocusManager({el:this.el})},prepare:function(){return{title:this.options.title}},attach:function(){return this.views.attached?this:(this.views.rendered||this.render(),this.$el.appendTo(this.options.container),this.views.attached=!0,this.views.ready(),this.propagate("attach"))},detach:function(){return this.$el.is(":visible")&&this.close(),this.$el.detach(),this.views.attached=!1,this.propagate("detach")},open:function(){var a,b=this.$el,c=this.options;return b.is(":visible")?this:(this.clickedOpenerEl=document.activeElement,this.views.attached||this.attach(),c.freeze&&(this._freeze={scrollTop:e(window).scrollTop()}),e("body").addClass("modal-open"),b.show(),"ontouchend"in document&&(a=window.tinymce&&window.tinymce.activeEditor)&&!a.isHidden()&&a.iframeElement&&(a.iframeElement.focus(),a.iframeElement.blur(),setTimeout(function(){a.iframeElement.blur()},100)),this.$el.focus(),this.propagate("open"))},close:function(a){var b=this._freeze;return this.views.attached&&this.$el.is(":visible")?(e("body").removeClass("modal-open"),this.$el.hide().undelegate("keydown"),null!==this.clickedOpenerEl?this.clickedOpenerEl.focus():e("#wpbody-content").focus(),this.propagate("close"),b&&e(window).scrollTop(b.scrollTop),a&&a.escape&&this.propagate("escape"),this):this},escape:function(){return this.close({escape:!0})},escapeHandler:function(a){a.preventDefault(),this.escape()},content:function(a){return this.views.set(".media-modal-content",a),this},propagate:function(a){return this.trigger(a),this.options.propagate&&this.controller.trigger(a),this},keydown:function(a){27===a.which&&this.$el.is(":visible")&&(this.escape(),a.stopImmediatePropagation())}}),b.exports=d},{}],54:[function(a,b,c){var d=wp.media.View.extend({tagName:"div",initialize:function(){this._views={},this.set(_.extend({},this._views,this.options.views),{silent:!0}),delete this.options.views,this.options.silent||this.render()},set:function(a,b,c){var d,e,f;return c=c||{},_.isObject(a)?(_.each(a,function(a,b){this.set(b,a)},this),this):(b instanceof Backbone.View||(b=this.toView(b,a,c)),b.controller=b.controller||this.controller,this.unset(a),d=b.options.priority||10,e=this.views.get()||[],_.find(e,function(a,b){if(a.options.priority>d)return f=b,!0}),this._views[a]=b,this.views.add(b,{at:_.isNumber(f)?f:e.length||0}),this)},get:function(a){return this._views[a]},unset:function(a){var b=this.get(a);return b&&b.remove(),delete this._views[a],this},toView:function(a){return new wp.media.View(a)}});b.exports=d},{}],55:[function(a,b,c){var d=wp.media.view.MenuItem.extend({click:function(){var a=this.options.contentMode;a&&this.controller.content.mode(a)}});b.exports=d},{}],56:[function(a,b,c){var d,e=wp.media.view.Menu;d=e.extend({tagName:"div",className:"media-router",property:"contentMode",ItemView:wp.media.view.RouterItem,region:"router",initialize:function(){this.controller.on("content:render",this.update,this),e.prototype.initialize.apply(this,arguments)},update:function(){var a=this.controller.content.mode();a&&this.select(a)}}),b.exports=d},{}],57:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.View.extend({tagName:"input",className:"search",id:"media-search-input",attributes:{type:"search",placeholder:e.searchMediaPlaceholder},events:{input:"search",keyup:"search",change:"search",search:"search"},render:function(){return this.el.value=this.model.escape("search"),this},search:function(a){a.target.value?this.model.set("search",a.target.value):this.model.unset("search")}}),b.exports=d},{}],58:[function(a,b,c){var d,e=wp.media.view.l10n;d=wp.media.View.extend({tagName:"div",className:"media-selection",template:wp.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){_.defaults(this.options,{editable:!1,clearable:!0}),this.attachments=new wp.media.view.Attachments.Selection({controller:this.controller,collection:this.collection,selection:this.collection,model:new Backbone.Model}),this.views.set(".selection-view",this.attachments),this.collection.on("add remove reset",this.refresh,this),this.controller.on("content:activate",this.refresh,this)},ready:function(){this.refresh()},refresh:function(){if(this.$el.children().length){var a=this.collection,b="edit-selection"===this.controller.content.mode();this.$el.toggleClass("empty",!a.length),this.$el.toggleClass("one",1===a.length),this.$el.toggleClass("editing",b),this.$(".count").text(e.selected.replace("%d",a.length))}},edit:function(a){a.preventDefault(),this.options.editable&&this.options.editable.call(this,this.collection)},clear:function(a){a.preventDefault(),this.collection.reset(),this.controller.modal.focusManager.focus()}}),b.exports=d},{}],59:[function(a,b,c){var d,e=wp.media.View,f=Backbone.$;d=e.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model,this.listenTo(this.model,"change",this.updateChanges)},prepare:function(){return _.defaults({model:this.model.toJSON()},this.options)},render:function(){return e.prototype.render.apply(this,arguments),_(this.model.attributes).chain().keys().each(this.update,this),this},update:function(a){var b,c,d=this.model.get(a),e=this.$('[data-setting="'+a+'"]');e.length&&(e.is("select")?(c=e.find('[value="'+d+'"]'),c.length?(e.find("option").prop("selected",!1),c.prop("selected",!0)):this.model.set(a,e.find(":selected").val())):e.hasClass("button-group")?(b=e.find("button").removeClass("active"),b.filter('[value="'+d+'"]').addClass("active")):e.is('input[type="text"], textarea')?e.is(":focus")||e.val(d):e.is('input[type="checkbox"]')&&e.prop("checked",!!d&&"false"!==d))},updateHandler:function(a){var b,c=f(a.target).closest("[data-setting]"),d=a.target.value;a.preventDefault(),c.length&&(c.is('input[type="checkbox"]')&&(d=c[0].checked),this.model.set(c.data("setting"),d),(b=c.data("userSetting"))&&window.setUserSetting(b,d))},updateChanges:function(a){a.hasChanged()&&_(a.changed).chain().keys().each(this.update,this)}}),b.exports=d},{}],60:[function(a,b,c){var d,e=wp.media.view.Settings;d=e.extend({className:"attachment-display-settings",template:wp.template("attachment-display-settings"),initialize:function(){var a=this.options.attachment;_.defaults(this.options,{userSettings:!1}),e.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:link",this.updateLinkTo),a&&a.on("change:uploading",this.render,this)},dispose:function(){var a=this.options.attachment;a&&a.off(null,null,this),e.prototype.dispose.apply(this,arguments)},render:function(){var a=this.options.attachment;return a&&_.extend(this.options,{sizes:a.get("sizes"),type:a.get("type")}),e.prototype.render.call(this),this.updateLinkTo(),this},updateLinkTo:function(){var a=this.model.get("link"),b=this.$(".link-to-custom"),c=this.options.attachment;return"none"===a||"embed"===a||!c&&"custom"!==a?void b.addClass("hidden"):(c&&("post"===a?b.val(c.get("link")):"file"===a?b.val(c.get("url")):this.model.get("linkUrl")||b.val("http://"),b.prop("readonly","custom"!==a)),b.removeClass("hidden"),void(!wp.media.isTouchDevice&&b.is(":visible")&&b.focus()[0].select()))}}),b.exports=d},{}],61:[function(a,b,c){var d=wp.media.view.Settings.extend({className:"collection-settings gallery-settings",template:wp.template("gallery-settings")});b.exports=d},{}],62:[function(a,b,c){var d=wp.media.view.Settings.extend({className:"collection-settings playlist-settings",template:wp.template("playlist-settings")});b.exports=d},{}],63:[function(a,b,c){var d=wp.media.view.PriorityList.extend({className:"media-sidebar"});b.exports=d},{}],64:[function(a,b,c){var d,e=wp.media.view;d=e.Cropper.extend({className:"crop-content site-icon",ready:function(){e.Cropper.prototype.ready.apply(this,arguments),this.$(".crop-image").on("load",_.bind(this.addSidebar,this))},addSidebar:function(){this.sidebar=new wp.media.view.Sidebar({controller:this.controller}),this.sidebar.set("preview",new wp.media.view.SiteIconPreview({controller:this.controller,attachment:this.options.attachment})),this.controller.cropperView.views.add(this.sidebar)}}),b.exports=d},{}],65:[function(a,b,c){var d,e=wp.media.View,f=jQuery;d=e.extend({className:"site-icon-preview",template:wp.template("site-icon-preview"),ready:function(){this.controller.imgSelect.setOptions({onInit:this.updatePreview,onSelectChange:this.updatePreview})},prepare:function(){return{url:this.options.attachment.get("url")}},updatePreview:function(a,b){var c=64/b.width,d=64/b.height,e=16/b.width,g=16/b.height;f("#preview-app-icon").css({width:Math.round(c*this.imageWidth)+"px",height:Math.round(d*this.imageHeight)+"px",marginLeft:"-"+Math.round(c*b.x1)+"px",marginTop:"-"+Math.round(d*b.y1)+"px"}),f("#preview-favicon").css({width:Math.round(e*this.imageWidth)+"px",height:Math.round(g*this.imageHeight)+"px",marginLeft:"-"+Math.round(e*b.x1)+"px",marginTop:"-"+Math.floor(g*b.y1)+"px"})}}),b.exports=d},{}],66:[function(a,b,c){var d=wp.media.View.extend({tagName:"span",className:"spinner",spinnerTimeout:!1,delay:400,show:function(){return this.spinnerTimeout||(this.spinnerTimeout=_.delay(function(a){a.addClass("is-active")},this.delay,this.$el)),this},hide:function(){return this.$el.removeClass("is-active"),this.spinnerTimeout=clearTimeout(this.spinnerTimeout),this}});b.exports=d},{}],67:[function(a,b,c){var d,e=wp.media.View;d=e.extend({tagName:"div",className:"media-toolbar",initialize:function(){var a=this.controller.state(),b=this.selection=a.get("selection"),c=this.library=a.get("library");this._views={},this.primary=new wp.media.view.PriorityList,this.secondary=new wp.media.view.PriorityList,this.primary.$el.addClass("media-toolbar-primary search-form"),this.secondary.$el.addClass("media-toolbar-secondary"),this.views.set([this.secondary,this.primary]),this.options.items&&this.set(this.options.items,{silent:!0}),this.options.silent||this.render(),b&&b.on("add remove reset",this.refresh,this),c&&c.on("add remove reset",this.refresh,this)},dispose:function(){return this.selection&&this.selection.off(null,null,this),this.library&&this.library.off(null,null,this),e.prototype.dispose.apply(this,arguments)},ready:function(){this.refresh()},set:function(a,b,c){var d;return c=c||{},_.isObject(a)?_.each(a,function(a,b){this.set(b,a,{silent:!0})},this):(b instanceof Backbone.View||(b.classes=["media-button-"+a].concat(b.classes||[]),b=new wp.media.view.Button(b).render()),b.controller=b.controller||this.controller,this._views[a]=b,d=b.options.priority<0?"secondary":"primary",this[d].set(a,b,c)),c.silent||this.refresh(),this},get:function(a){return this._views[a]},unset:function(a,b){return delete this._views[a],this.primary.unset(a,b),this.secondary.unset(a,b),b&&b.silent||this.refresh(),this},refresh:function(){var a=this.controller.state(),b=a.get("library"),c=a.get("selection");_.each(this._views,function(a){if(a.model&&a.options&&a.options.requires){var d=a.options.requires,e=!1;e=_.some(c.models,function(a){return a.get("uploading")===!0}),d.selection&&c&&!c.length?e=!0:d.library&&b&&!b.length&&(e=!0),a.model.set("disabled",e)}})}}),b.exports=d},{}],68:[function(a,b,c){var d,e=wp.media.view.Toolbar.Select,f=wp.media.view.l10n;d=e.extend({initialize:function(){_.defaults(this.options,{text:f.insertIntoPost,requires:!1}),e.prototype.initialize.apply(this,arguments)},refresh:function(){var a=this.controller.state().props.get("url");this.get("select").model.set("disabled",!a||"http://"===a),e.prototype.refresh.apply(this,arguments)}}),b.exports=d},{}],69:[function(a,b,c){var d,e=wp.media.view.Toolbar,f=wp.media.view.l10n;d=e.extend({initialize:function(){var a=this.options;_.bindAll(this,"clickSelect"),_.defaults(a,{event:"select",state:!1,reset:!0,close:!0,text:f.select,requires:{selection:!0}}),a.items=_.defaults(a.items||{},{select:{style:"primary",text:a.text,priority:80,click:this.clickSelect,requires:a.requires}}),e.prototype.initialize.apply(this,arguments)},clickSelect:function(){var a=this.options,b=this.controller;a.close&&b.close(),a.event&&b.state().trigger(a.event),a.state&&b.setState(a.state),a.reset&&b.reset()}}),b.exports=d},{}],70:[function(a,b,c){var d,e=wp.media.View,f=wp.media.view.l10n,g=jQuery;d=e.extend({tagName:"div",className:"uploader-editor",template:wp.template("uploader-editor"),localDrag:!1,overContainer:!1,overDropzone:!1,draggingFile:null,initialize:function(){return this.initialized=!1,window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&this.browserSupport()?(this.$document=g(document),
+this.dropzones=[],this.files=[],this.$document.on("drop",".uploader-editor",_.bind(this.drop,this)),this.$document.on("dragover",".uploader-editor",_.bind(this.dropzoneDragover,this)),this.$document.on("dragleave",".uploader-editor",_.bind(this.dropzoneDragleave,this)),this.$document.on("click",".uploader-editor",_.bind(this.click,this)),this.$document.on("dragover",_.bind(this.containerDragover,this)),this.$document.on("dragleave",_.bind(this.containerDragleave,this)),this.$document.on("dragstart dragend drop",_.bind(function(a){this.localDrag="dragstart"===a.type,"drop"===a.type&&this.containerDragleave()},this)),this.initialized=!0,this):this},browserSupport:function(){var a=!1,b=document.createElement("div");return a="draggable"in b||"ondragstart"in b&&"ondrop"in b,a=a&&!!(window.File&&window.FileList&&window.FileReader)},isDraggingFile:function(a){return null!==this.draggingFile?this.draggingFile:!_.isUndefined(a.originalEvent)&&!_.isUndefined(a.originalEvent.dataTransfer)&&(this.draggingFile=_.indexOf(a.originalEvent.dataTransfer.types,"Files")>-1&&_.indexOf(a.originalEvent.dataTransfer.types,"text/plain")===-1,this.draggingFile)},refresh:function(a){var b;for(b in this.dropzones)this.dropzones[b].toggle(this.overContainer||this.overDropzone);return _.isUndefined(a)||g(a.target).closest(".uploader-editor").toggleClass("droppable",this.overDropzone),this.overContainer||this.overDropzone||(this.draggingFile=null),this},render:function(){return this.initialized?(e.prototype.render.apply(this,arguments),g(".wp-editor-wrap").each(_.bind(this.attach,this)),this):this},attach:function(a,b){var c=this.$el.clone();return this.dropzones.push(c),g(b).append(c),this},drop:function(a){var b,c;if(this.containerDragleave(a),this.dropzoneDragleave(a),this.files=a.originalEvent.dataTransfer.files,!(this.files.length<1))return b=g(a.target).parents(".wp-editor-wrap"),b.length>0&&b[0].id&&(window.wpActiveEditor=b[0].id.slice(3,-5)),this.workflow?(this.workflow.state().reset(),this.addFiles.apply(this),this.workflow.open()):(this.workflow=wp.media.editor.open(window.wpActiveEditor,{frame:"post",state:"insert",title:f.addMedia,multiple:!0}),c=this.workflow.uploader,c.uploader&&c.uploader.ready?this.addFiles.apply(this):this.workflow.on("uploader:ready",this.addFiles,this)),!1},addFiles:function(){return this.files.length&&(this.workflow.uploader.uploader.uploader.addFile(_.toArray(this.files)),this.files=[]),this},containerDragover:function(a){!this.localDrag&&this.isDraggingFile(a)&&(this.overContainer=!0,this.refresh())},containerDragleave:function(){this.overContainer=!1,_.delay(_.bind(this.refresh,this),50)},dropzoneDragover:function(a){if(!this.localDrag&&this.isDraggingFile(a))return this.overDropzone=!0,this.refresh(a),!1},dropzoneDragleave:function(a){this.overDropzone=!1,_.delay(_.bind(this.refresh,this,a),50)},click:function(a){this.containerDragleave(a),this.dropzoneDragleave(a),this.localDrag=!1}}),b.exports=d},{}],71:[function(a,b,c){var d,e=wp.media.View;d=e.extend({tagName:"div",className:"uploader-inline",template:wp.template("uploader-inline"),events:{"click .close":"hide"},initialize:function(){_.defaults(this.options,{message:"",status:!0,canClose:!1}),!this.options.$browser&&this.controller.uploader&&(this.options.$browser=this.controller.uploader.$browser),_.isUndefined(this.options.postId)&&(this.options.postId=wp.media.view.settings.post.id),this.options.status&&this.views.set(".upload-inline-status",new wp.media.view.UploaderStatus({controller:this.controller}))},prepare:function(){var a=this.controller.state().get("suggestedWidth"),b=this.controller.state().get("suggestedHeight"),c={};return c.message=this.options.message,c.canClose=this.options.canClose,a&&b&&(c.suggestedWidth=a,c.suggestedHeight=b),c},dispose:function(){return this.disposing?e.prototype.dispose.apply(this,arguments):(this.disposing=!0,this.remove())},remove:function(){var a=e.prototype.remove.apply(this,arguments);return _.defer(_.bind(this.refresh,this)),a},refresh:function(){var a=this.controller.uploader;a&&a.refresh()},ready:function(){var a,b=this.options.$browser;if(this.controller.uploader){if(a=this.$(".browser"),a[0]===b[0])return;b.detach().text(a.text()),b[0].className=a[0].className,a.replaceWith(b.show())}return this.refresh(),this},show:function(){this.$el.removeClass("hidden")},hide:function(){this.$el.addClass("hidden")}}),b.exports=d},{}],72:[function(a,b,c){var d=wp.media.View.extend({className:"upload-error",template:wp.template("uploader-status-error")});b.exports=d},{}],73:[function(a,b,c){var d,e=wp.media.View;d=e.extend({className:"media-uploader-status",template:wp.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.queue=wp.Uploader.queue,this.queue.on("add remove reset",this.visibility,this),this.queue.on("add remove reset change:percent",this.progress,this),this.queue.on("add remove reset change:uploading",this.info,this),this.errors=wp.Uploader.errors,this.errors.reset(),this.errors.on("add remove reset",this.visibility,this),this.errors.on("add",this.error,this)},dispose:function(){return wp.Uploader.queue.off(null,null,this),e.prototype.dispose.apply(this,arguments),this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length),this.$el.toggleClass("errors",!!this.errors.length),this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){_.each({$bar:".media-progress-bar div",$index:".upload-index",$total:".upload-total",$filename:".upload-filename"},function(a,b){this[b]=this.$(a)},this),this.visibility(),this.progress(),this.info()},progress:function(){var a=this.queue,b=this.$bar;b&&a.length&&b.width(a.reduce(function(a,b){if(!b.get("uploading"))return a+100;var c=b.get("percent");return a+(_.isNumber(c)?c:100)},0)/a.length+"%")},info:function(){var a,b=this.queue,c=0;b.length&&(a=this.queue.find(function(a,b){return c=b,a.get("uploading")}),this.$index.text(c+1),this.$total.text(b.length),this.$filename.html(a?this.filename(a.get("filename")):""))},filename:function(a){return _.escape(a)},error:function(a){this.views.add(".upload-errors",new wp.media.view.UploaderStatusError({filename:this.filename(a.get("file").name),message:a.get("message")}),{at:0})},dismiss:function(a){var b=this.views.get(".upload-errors");a.preventDefault(),b&&_.invoke(b,"remove"),wp.Uploader.errors.reset()}}),b.exports=d},{}],74:[function(a,b,c){var d,e=jQuery;d=wp.media.View.extend({tagName:"div",className:"uploader-window",template:wp.template("uploader-window"),initialize:function(){var a;this.$browser=e('<a href="#" class="browser" />').hide().appendTo("body"),a=this.options.uploader=_.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}}),!a.dropzone||a.dropzone instanceof e||(a.dropzone=e(a.dropzone)),this.controller.on("activate",this.refresh,this),this.controller.on("detach",function(){this.$browser.remove()},this)},refresh:function(){this.uploader&&this.uploader.refresh()},ready:function(){var a,b=wp.media.view.settings.post.id;this.uploader||(b&&(this.options.uploader.params.post_id=b),this.uploader=new wp.Uploader(this.options.uploader),a=this.uploader.dropzone,a.on("dropzone:enter",_.bind(this.show,this)),a.on("dropzone:leave",_.bind(this.hide,this)),e(this.uploader).on("uploader:ready",_.bind(this._ready,this)))},_ready:function(){this.controller.trigger("uploader:ready")},show:function(){var a=this.$el.show();_.defer(function(){a.css({opacity:1})})},hide:function(){var a=this.$el.css({opacity:0});wp.media.transition(a).done(function(){"0"===a.css("opacity")&&a.hide()}),_.delay(function(){"0"===a.css("opacity")&&a.is(":visible")&&a.hide()},500)}}),b.exports=d},{}],75:[function(a,b,c){var d=wp.Backbone.View.extend({constructor:function(a){a&&a.controller&&(this.controller=a.controller),wp.Backbone.View.apply(this,arguments)},dispose:function(){return this.undelegateEvents(),this.model&&this.model.off&&this.model.off(null,null,this),this.collection&&this.collection.off&&this.collection.off(null,null,this),this.controller&&this.controller.off&&this.controller.off(null,null,this),this},remove:function(){return this.dispose(),wp.Backbone.View.prototype.remove.apply(this,arguments)}});b.exports=d},{}]},{},[19]);
\ No newline at end of file
diff --git a/wp-includes/js/swfupload/swfupload.js b/wp-includes/js/swfupload/swfupload.js
index 9c950d4ed..444f5546c 100644
--- a/wp-includes/js/swfupload/swfupload.js
+++ b/wp-includes/js/swfupload/swfupload.js
@@ -3,7 +3,7 @@
  *
  * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/,  http://www.vinterwebb.se/
  *
- * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilz�n and Mammon Media and is released under the MIT License:
+ * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilzén and Mammon Media and is released under the MIT License:
  * http://www.opensource.org/licenses/mit-license.php
  *
  * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License:
diff --git a/wp-includes/js/tinymce/plugins/charmap/plugin.js b/wp-includes/js/tinymce/plugins/charmap/plugin.js
index 90de9383c..a233ace71 100644
--- a/wp-includes/js/tinymce/plugins/charmap/plugin.js
+++ b/wp-includes/js/tinymce/plugins/charmap/plugin.js
@@ -354,9 +354,13 @@ tinymce.PluginManager.add('charmap', function(editor) {
 				var index = y * width + x;
 				if (index < charmap.length) {
 					var chr = charmap[index];
+					var chrText = chr ? String.fromCharCode(parseInt(chr[0], 10)) : '&nbsp;';
 
-					gridHtml += '<td title="' + chr[1] + '"><div tabindex="-1" title="' + chr[1] + '" role="button">' +
-						(chr ? String.fromCharCode(parseInt(chr[0], 10)) : '&nbsp;') + '</div></td>';
+					gridHtml += (
+						'<td title="' + chr[1] + '"><div tabindex="-1" title="' + chr[1] + '" role="button" data-chr="' + chrText + '">' +
+							chrText +
+						'</div></td>'
+					);
 				} else {
 					gridHtml += '<td />';
 				}
@@ -375,7 +379,7 @@ tinymce.PluginManager.add('charmap', function(editor) {
 
 				if (/^(TD|DIV)$/.test(target.nodeName)) {
 					if (getParentTd(target).firstChild) {
-						insertChar(tinymce.trim(target.innerText || target.textContent));
+						insertChar(target.getAttribute('data-chr'));
 
 						if (!e.ctrlKey) {
 							win.close();
@@ -459,4 +463,4 @@ tinymce.PluginManager.add('charmap', function(editor) {
 		getCharMap: getCharMap,
 		insertChar: insertChar
 	};
-});
+});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/charmap/plugin.min.js b/wp-includes/js/tinymce/plugins/charmap/plugin.min.js
index 9bf1e9fcd..cf818074e 100644
--- a/wp-includes/js/tinymce/plugins/charmap/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/charmap/plugin.min.js
@@ -1 +1 @@
-tinymce.PluginManager.add("charmap",function(a){function b(){return[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]]}function c(a){return tinymce.util.Tools.grep(a,function(a){return i(a)&&2==a.length})}function d(a){return i(a)?[].concat(c(a)):"function"==typeof a?a():[]}function e(b){var c=a.settings;return c.charmap&&(b=d(c.charmap)),c.charmap_append?[].concat(b).concat(d(c.charmap_append)):b}function f(){return e(b())}function g(b){a.fire("insertCustomChar",{chr:b}).chr,a.execCommand("mceInsertContent",!1,b)}function h(){function b(a){for(;a;){if("TD"==a.nodeName)return a;a=a.parentNode}}var c,d,e,h;c='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var i=f(),j=Math.min(i.length,25),k=Math.ceil(i.length/j);for(e=0;k>e;e++){for(c+="<tr>",d=0;j>d;d++){var l=e*j+d;if(l<i.length){var m=i[l];c+='<td title="'+m[1]+'"><div tabindex="-1" title="'+m[1]+'" role="button">'+(m?String.fromCharCode(parseInt(m[0],10)):"&nbsp;")+"</div></td>"}else c+="<td />"}c+="</tr>"}c+="</tbody></table>";var n={type:"container",html:c,onclick:function(a){var c=a.target;/^(TD|DIV)$/.test(c.nodeName)&&b(c).firstChild&&(g(tinymce.trim(c.innerText||c.textContent)),a.ctrlKey||h.close())},onmouseover:function(a){var c=b(a.target);c&&c.firstChild?(h.find("#preview").text(c.firstChild.firstChild.data),h.find("#previewTitle").text(c.title)):(h.find("#preview").text(" "),h.find("#previewTitle").text(" "))}};h=a.windowManager.open({title:"Special character",spacing:10,padding:10,items:[n,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"label",name:"previewTitle",text:" ",style:"text-align: center",border:1,minWidth:140,minHeight:80}]}],buttons:[{text:"Close",onclick:function(){h.close()}}]})}var i=tinymce.util.Tools.isArray;return a.addCommand("mceShowCharmap",h),a.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),a.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"}),{getCharMap:f,insertChar:g}});
\ No newline at end of file
+tinymce.PluginManager.add("charmap",function(a){function b(){return[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]]}function c(a){return tinymce.util.Tools.grep(a,function(a){return i(a)&&2==a.length})}function d(a){return i(a)?[].concat(c(a)):"function"==typeof a?a():[]}function e(b){var c=a.settings;return c.charmap&&(b=d(c.charmap)),c.charmap_append?[].concat(b).concat(d(c.charmap_append)):b}function f(){return e(b())}function g(b){a.fire("insertCustomChar",{chr:b}).chr,a.execCommand("mceInsertContent",!1,b)}function h(){function b(a){for(;a;){if("TD"==a.nodeName)return a;a=a.parentNode}}var c,d,e,h;c='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var i=f(),j=Math.min(i.length,25),k=Math.ceil(i.length/j);for(e=0;k>e;e++){for(c+="<tr>",d=0;j>d;d++){var l=e*j+d;if(l<i.length){var m=i[l],n=m?String.fromCharCode(parseInt(m[0],10)):"&nbsp;";c+='<td title="'+m[1]+'"><div tabindex="-1" title="'+m[1]+'" role="button" data-chr="'+n+'">'+n+"</div></td>"}else c+="<td />"}c+="</tr>"}c+="</tbody></table>";var o={type:"container",html:c,onclick:function(a){var c=a.target;/^(TD|DIV)$/.test(c.nodeName)&&b(c).firstChild&&(g(c.getAttribute("data-chr")),a.ctrlKey||h.close())},onmouseover:function(a){var c=b(a.target);c&&c.firstChild?(h.find("#preview").text(c.firstChild.firstChild.data),h.find("#previewTitle").text(c.title)):(h.find("#preview").text(" "),h.find("#previewTitle").text(" "))}};h=a.windowManager.open({title:"Special character",spacing:10,padding:10,items:[o,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"label",name:"previewTitle",text:" ",style:"text-align: center",border:1,minWidth:140,minHeight:80}]}],buttons:[{text:"Close",onclick:function(){h.close()}}]})}var i=tinymce.util.Tools.isArray;return a.addCommand("mceShowCharmap",h),a.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),a.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"}),{getCharMap:f,insertChar:g}});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/fullscreen/plugin.js b/wp-includes/js/tinymce/plugins/fullscreen/plugin.js
index 59efa5510..190868602 100644
--- a/wp-includes/js/tinymce/plugins/fullscreen/plugin.js
+++ b/wp-includes/js/tinymce/plugins/fullscreen/plugin.js
@@ -135,7 +135,7 @@ tinymce.PluginManager.add('fullscreen', function(editor) {
 
 	editor.addButton('fullscreen', {
 		tooltip: 'Fullscreen',
-		shortcut: 'Ctrl+Alt+F',
+		shortcut: 'Ctrl+Shift+F',
 		onClick: toggleFullscreen,
 		onPostRender: function() {
 			var self = this;
diff --git a/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js b/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js
index 675d6fd41..8edbe1329 100644
--- a/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js
@@ -1 +1 @@
-tinymce.PluginManager.add("fullscreen",function(a){function b(){var a,b,c=window,d=document,e=d.body;return e.offsetWidth&&(a=e.offsetWidth,b=e.offsetHeight),c.innerWidth&&c.innerHeight&&(a=c.innerWidth,b=c.innerHeight),{w:a,h:b}}function c(){var a=tinymce.DOM.getViewPort();return{x:a.x,y:a.y}}function d(a){scrollTo(a.x,a.y)}function e(){function e(){m.setStyle(p,"height",b().h-(o.clientHeight-p.clientHeight))}var n,o,p,q,r=document.body,s=document.documentElement;l=!l,o=a.getContainer(),n=o.style,p=a.getContentAreaContainer().firstChild,q=p.style,l?(k=c(),f=q.width,g=q.height,q.width=q.height="100%",i=n.width,j=n.height,n.width=n.height="",m.addClass(r,"mce-fullscreen"),m.addClass(s,"mce-fullscreen"),m.addClass(o,"mce-fullscreen"),m.bind(window,"resize",e),e(),h=e):(q.width=f,q.height=g,i&&(n.width=i),j&&(n.height=j),m.removeClass(r,"mce-fullscreen"),m.removeClass(s,"mce-fullscreen"),m.removeClass(o,"mce-fullscreen"),m.unbind(window,"resize",h),d(k)),a.fire("FullscreenStateChanged",{state:l})}var f,g,h,i,j,k,l=!1,m=tinymce.DOM;return a.settings.inline?void 0:(a.on("init",function(){a.addShortcut("Ctrl+Shift+F","",e)}),a.on("remove",function(){h&&m.unbind(window,"resize",h)}),a.addCommand("mceFullScreen",e),a.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,onClick:function(){e(),a.focus()},onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})},context:"view"}),a.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:e,onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})}}),{isFullscreen:function(){return l}})});
\ No newline at end of file
+tinymce.PluginManager.add("fullscreen",function(a){function b(){var a,b,c=window,d=document,e=d.body;return e.offsetWidth&&(a=e.offsetWidth,b=e.offsetHeight),c.innerWidth&&c.innerHeight&&(a=c.innerWidth,b=c.innerHeight),{w:a,h:b}}function c(){var a=tinymce.DOM.getViewPort();return{x:a.x,y:a.y}}function d(a){scrollTo(a.x,a.y)}function e(){function e(){m.setStyle(p,"height",b().h-(o.clientHeight-p.clientHeight))}var n,o,p,q,r=document.body,s=document.documentElement;l=!l,o=a.getContainer(),n=o.style,p=a.getContentAreaContainer().firstChild,q=p.style,l?(k=c(),f=q.width,g=q.height,q.width=q.height="100%",i=n.width,j=n.height,n.width=n.height="",m.addClass(r,"mce-fullscreen"),m.addClass(s,"mce-fullscreen"),m.addClass(o,"mce-fullscreen"),m.bind(window,"resize",e),e(),h=e):(q.width=f,q.height=g,i&&(n.width=i),j&&(n.height=j),m.removeClass(r,"mce-fullscreen"),m.removeClass(s,"mce-fullscreen"),m.removeClass(o,"mce-fullscreen"),m.unbind(window,"resize",h),d(k)),a.fire("FullscreenStateChanged",{state:l})}var f,g,h,i,j,k,l=!1,m=tinymce.DOM;return a.settings.inline?void 0:(a.on("init",function(){a.addShortcut("Ctrl+Shift+F","",e)}),a.on("remove",function(){h&&m.unbind(window,"resize",h)}),a.addCommand("mceFullScreen",e),a.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,onClick:function(){e(),a.focus()},onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})},context:"view"}),a.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Shift+F",onClick:e,onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})}}),{isFullscreen:function(){return l}})});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/lists/plugin.js b/wp-includes/js/tinymce/plugins/lists/plugin.js
index 4a778ff05..ae9a22976 100644
--- a/wp-includes/js/tinymce/plugins/lists/plugin.js
+++ b/wp-includes/js/tinymce/plugins/lists/plugin.js
@@ -26,6 +26,10 @@ tinymce.PluginManager.add('lists', function(editor) {
 		return node && (/^(OL|UL|DL)$/).test(node.nodeName) && isChildOfBody(node);
 	}
 
+	function isListItemNode(node) {
+		return node && /^(LI|DT|DD)$/.test(node.nodeName);
+	}
+
 	function isFirstChild(node) {
 		return node.parentNode.firstChild == node;
 	}
@@ -42,6 +46,33 @@ tinymce.PluginManager.add('lists', function(editor) {
 		return elm === editor.getBody();
 	}
 
+	function isTextNode(node) {
+		return node && node.nodeType === 3;
+	}
+
+	function getNormalizedEndPoint(container, offset) {
+		var node = tinymce.dom.RangeUtils.getNode(container, offset);
+
+		if (isListItemNode(container) && isTextNode(node)) {
+			var textNodeOffset = offset >= container.childNodes.length ? node.data.length : 0;
+			return {container: node, offset: textNodeOffset};
+		}
+
+		return {container: container, offset: offset};
+	}
+
+	function normalizeRange(rng) {
+		var outRng = rng.cloneRange();
+
+		var rangeStart = getNormalizedEndPoint(rng.startContainer, rng.startOffset);
+		outRng.setStart(rangeStart.container, rangeStart.offset);
+
+		var rangeEnd = getNormalizedEndPoint(rng.endContainer, rng.endOffset);
+		outRng.setEnd(rangeEnd.container, rangeEnd.offset);
+
+		return outRng;
+	}
+
 	editor.on('init', function() {
 		var dom = editor.dom, selection = editor.selection;
 
@@ -163,7 +194,7 @@ tinymce.PluginManager.add('lists', function(editor) {
 				rng.setEnd(bookmark.endContainer, bookmark.endOffset);
 			}
 
-			selection.setRng(rng);
+			selection.setRng(normalizeRange(rng));
 		}
 
 		function createNewTextBlock(contentNode, blockName) {
@@ -224,7 +255,7 @@ tinymce.PluginManager.add('lists', function(editor) {
 
 		function getSelectedListItems() {
 			return tinymce.grep(selection.getSelectedBlocks(), function(block) {
-				return /^(LI|DT|DD)$/.test(block.nodeName);
+				return isListItemNode(block);
 			});
 		}
 
@@ -298,33 +329,34 @@ tinymce.PluginManager.add('lists', function(editor) {
 			}
 		}
 
-		/**
-		 * Normalizes the all lists in the specified element.
-		 */
-		function normalizeList(element) {
-			tinymce.each(tinymce.grep(dom.select('ol,ul', element)), function(ul) {
-				var sibling, parentNode = ul.parentNode;
-
-				// Move UL/OL to previous LI if it's the only child of a LI
-				if (parentNode.nodeName == 'LI' && parentNode.firstChild == ul) {
-					sibling = parentNode.previousSibling;
-					if (sibling && sibling.nodeName == 'LI') {
-						sibling.appendChild(ul);
-
-						if (isEmpty(parentNode)) {
-							dom.remove(parentNode);
-						}
+		function normalizeLists(element) {
+			tinymce.each(tinymce.grep(dom.select('ol,ul', element)), normalizeList);
+		}
+
+		function normalizeList(ul) {
+			var sibling, parentNode = ul.parentNode;
+
+			// Move UL/OL to previous LI if it's the only child of a LI
+			if (parentNode.nodeName == 'LI' && parentNode.firstChild == ul) {
+				sibling = parentNode.previousSibling;
+				if (sibling && sibling.nodeName == 'LI') {
+					sibling.appendChild(ul);
+
+					if (isEmpty(parentNode)) {
+						dom.remove(parentNode);
 					}
+				} else {
+					dom.setStyle(parentNode, 'listStyleType', 'none');
 				}
+			}
 
-				// Append OL/UL to previous LI if it's in a parent OL/UL i.e. old HTML4
-				if (isListNode(parentNode)) {
-					sibling = parentNode.previousSibling;
-					if (sibling && sibling.nodeName == 'LI') {
-						sibling.appendChild(ul);
-					}
+			// Append OL/UL to previous LI if it's in a parent OL/UL i.e. old HTML4
+			if (isListNode(parentNode)) {
+				sibling = parentNode.previousSibling;
+				if (sibling && sibling.nodeName == 'LI') {
+					sibling.appendChild(ul);
 				}
-			});
+			}
 		}
 
 		function outdent(li) {
@@ -394,7 +426,7 @@ tinymce.PluginManager.add('lists', function(editor) {
 			}
 
 			splitList(ul, li, newBlock);
-			normalizeList(ul.parentNode);
+			normalizeLists(ul.parentNode);
 
 			return true;
 		}
@@ -664,6 +696,7 @@ tinymce.PluginManager.add('lists', function(editor) {
 				}
 
 				splitList(rootList, li);
+				normalizeLists(rootList.parentNode);
 			});
 
 			moveToBookmark(bookmark);
@@ -711,118 +744,135 @@ tinymce.PluginManager.add('lists', function(editor) {
 			return false;
 		}
 
-		self.backspaceDelete = function(isForward) {
-			function findNextCaretContainer(rng, isForward) {
-				var node = rng.startContainer, offset = rng.startOffset;
-				var nonEmptyBlocks, walker;
+		function findNextCaretContainer(rng, isForward) {
+			var node = rng.startContainer, offset = rng.startOffset;
+			var nonEmptyBlocks, walker;
 
-				if (node.nodeType == 3 && (isForward ? offset < node.data.length : offset > 0)) {
-					return node;
-				}
+			if (node.nodeType == 3 && (isForward ? offset < node.data.length : offset > 0)) {
+				return node;
+			}
 
-				nonEmptyBlocks = editor.schema.getNonEmptyElements();
-				if (node.nodeType == 1) {
-					node = tinymce.dom.RangeUtils.getNode(node, offset);
-				}
+			nonEmptyBlocks = editor.schema.getNonEmptyElements();
+			if (node.nodeType == 1) {
+				node = tinymce.dom.RangeUtils.getNode(node, offset);
+			}
 
-				walker = new tinymce.dom.TreeWalker(node, editor.getBody());
+			walker = new tinymce.dom.TreeWalker(node, editor.getBody());
 
-				// Delete at <li>|<br></li> then jump over the bogus br
-				if (isForward) {
-					if (isBogusBr(node)) {
-						walker.next();
-					}
+			// Delete at <li>|<br></li> then jump over the bogus br
+			if (isForward) {
+				if (isBogusBr(node)) {
+					walker.next();
 				}
+			}
 
-				while ((node = walker[isForward ? 'next' : 'prev2']())) {
-					if (node.nodeName == 'LI' && !node.hasChildNodes()) {
-						return node;
-					}
+			while ((node = walker[isForward ? 'next' : 'prev2']())) {
+				if (node.nodeName == 'LI' && !node.hasChildNodes()) {
+					return node;
+				}
 
-					if (nonEmptyBlocks[node.nodeName]) {
-						return node;
-					}
+				if (nonEmptyBlocks[node.nodeName]) {
+					return node;
+				}
 
-					if (node.nodeType == 3 && node.data.length > 0) {
-						return node;
-					}
+				if (node.nodeType == 3 && node.data.length > 0) {
+					return node;
 				}
 			}
+		}
 
-			function mergeLiElements(fromElm, toElm) {
-				var node, listNode, ul = fromElm.parentNode;
+		function mergeLiElements(fromElm, toElm) {
+			var node, listNode, ul = fromElm.parentNode;
 
-				if (!isChildOfBody(fromElm) || !isChildOfBody(toElm)) {
-					return;
-				}
+			if (!isChildOfBody(fromElm) || !isChildOfBody(toElm)) {
+				return;
+			}
 
-				if (isListNode(toElm.lastChild)) {
-					listNode = toElm.lastChild;
-				}
+			if (isListNode(toElm.lastChild)) {
+				listNode = toElm.lastChild;
+			}
 
-				if (ul == toElm.lastChild) {
-					if (isBr(ul.previousSibling)) {
-						dom.remove(ul.previousSibling);
-					}
+			if (ul == toElm.lastChild) {
+				if (isBr(ul.previousSibling)) {
+					dom.remove(ul.previousSibling);
 				}
+			}
 
-				node = toElm.lastChild;
-				if (node && isBr(node) && fromElm.hasChildNodes()) {
-					dom.remove(node);
-				}
+			node = toElm.lastChild;
+			if (node && isBr(node) && fromElm.hasChildNodes()) {
+				dom.remove(node);
+			}
 
-				if (isEmpty(toElm, true)) {
-					dom.$(toElm).empty();
-				}
+			if (isEmpty(toElm, true)) {
+				dom.$(toElm).empty();
+			}
 
-				if (!isEmpty(fromElm, true)) {
-					while ((node = fromElm.firstChild)) {
-						toElm.appendChild(node);
-					}
+			if (!isEmpty(fromElm, true)) {
+				while ((node = fromElm.firstChild)) {
+					toElm.appendChild(node);
 				}
+			}
 
-				if (listNode) {
-					toElm.appendChild(listNode);
-				}
+			if (listNode) {
+				toElm.appendChild(listNode);
+			}
 
-				dom.remove(fromElm);
+			dom.remove(fromElm);
 
-				if (isEmpty(ul) && !isEditorBody(ul)) {
-					dom.remove(ul);
-				}
+			if (isEmpty(ul) && !isEditorBody(ul)) {
+				dom.remove(ul);
 			}
+		}
 
-			if (selection.isCollapsed()) {
-				var li = dom.getParent(selection.getStart(), 'LI'), ul, rng, otherLi;
+		function backspaceDeleteCaret(isForward) {
+			var li = dom.getParent(selection.getStart(), 'LI'), ul, rng, otherLi;
 
-				if (li) {
-					ul = li.parentNode;
-					if (isEditorBody(ul) && dom.isEmpty(ul)) {
-						return true;
-					}
+			if (li) {
+				ul = li.parentNode;
+				if (isEditorBody(ul) && dom.isEmpty(ul)) {
+					return true;
+				}
 
-					rng = selection.getRng(true);
-					otherLi = dom.getParent(findNextCaretContainer(rng, isForward), 'LI');
+				rng = normalizeRange(selection.getRng(true));
+				otherLi = dom.getParent(findNextCaretContainer(rng, isForward), 'LI');
 
-					if (otherLi && otherLi != li) {
-						var bookmark = createBookmark(rng);
+				if (otherLi && otherLi != li) {
+					var bookmark = createBookmark(rng);
 
-						if (isForward) {
-							mergeLiElements(otherLi, li);
-						} else {
-							mergeLiElements(li, otherLi);
-						}
+					if (isForward) {
+						mergeLiElements(otherLi, li);
+					} else {
+						mergeLiElements(li, otherLi);
+					}
 
-						moveToBookmark(bookmark);
+					moveToBookmark(bookmark);
 
+					return true;
+				} else if (!otherLi) {
+					if (!isForward && removeList(ul.nodeName)) {
 						return true;
-					} else if (!otherLi) {
-						if (!isForward && removeList(ul.nodeName)) {
-							return true;
-						}
 					}
 				}
 			}
+		}
+
+		function backspaceDeleteRange() {
+			var startListParent = editor.dom.getParent(editor.selection.getStart(), 'LI,DT,DD');
+
+			if (startListParent || getSelectedListItems().length > 0) {
+				editor.undoManager.transact(function() {
+					editor.execCommand('Delete');
+					normalizeLists(editor.getBody());
+				});
+
+				return true;
+			}
+
+			return false;
+		}
+
+		self.backspaceDelete = function(isForward) {
+			return selection.isCollapsed() ? backspaceDeleteCaret(isForward) : backspaceDeleteRange();
 		};
 
 		editor.on('BeforeExecCommand', function(e) {
diff --git a/wp-includes/js/tinymce/plugins/lists/plugin.min.js b/wp-includes/js/tinymce/plugins/lists/plugin.min.js
index cf72080a1..69b00ba79 100644
--- a/wp-includes/js/tinymce/plugins/lists/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/lists/plugin.min.js
@@ -1 +1 @@
-tinymce.PluginManager.add("lists",function(a){function b(b){return a.$.contains(a.getBody(),b)}function c(a){return a&&"BR"==a.nodeName}function d(a){return a&&/^(OL|UL|DL)$/.test(a.nodeName)&&b(a)}function e(a){return a.parentNode.firstChild==a}function f(a){return a.parentNode.lastChild==a}function g(b){return b&&!!a.schema.getTextBlockElements()[b.nodeName]}function h(b){return b===a.getBody()}var i=this;a.on("init",function(){function j(a,b){var c=A.isEmpty(a);return b&&A.select("span[data-mce-type=bookmark]").length>0?!1:c}function k(a){function b(b){var d,e,f;e=a[b?"startContainer":"endContainer"],f=a[b?"startOffset":"endOffset"],1==e.nodeType&&(d=A.create("span",{"data-mce-type":"bookmark"}),e.hasChildNodes()?(f=Math.min(f,e.childNodes.length-1),b?e.insertBefore(d,e.childNodes[f]):A.insertAfter(d,e.childNodes[f])):e.appendChild(d),e=d,f=0),c[b?"startContainer":"endContainer"]=e,c[b?"startOffset":"endOffset"]=f}var c={};return b(!0),a.collapsed||b(),c}function l(a){function b(b){function c(a){for(var b=a.parentNode.firstChild,c=0;b;){if(b==a)return c;1==b.nodeType&&"bookmark"==b.getAttribute("data-mce-type")||c++,b=b.nextSibling}return-1}var d,e,f;d=f=a[b?"startContainer":"endContainer"],e=a[b?"startOffset":"endOffset"],d&&(1==d.nodeType&&(e=c(d),d=d.parentNode,A.remove(f)),a[b?"startContainer":"endContainer"]=d,a[b?"startOffset":"endOffset"]=e)}b(!0),b();var c=A.createRng();c.setStart(a.startContainer,a.startOffset),a.endContainer&&c.setEnd(a.endContainer,a.endOffset),B.setRng(c)}function m(b,c){var d,e,f,g=A.createFragment(),h=a.schema.getBlockElements();if(a.settings.forced_root_block&&(c=c||a.settings.forced_root_block),c&&(e=A.create(c),e.tagName===a.settings.forced_root_block&&A.setAttribs(e,a.settings.forced_root_block_attrs),g.appendChild(e)),b)for(;d=b.firstChild;){var i=d.nodeName;f||"SPAN"==i&&"bookmark"==d.getAttribute("data-mce-type")||(f=!0),h[i]?(g.appendChild(d),e=null):c?(e||(e=A.create(c),g.appendChild(e)),e.appendChild(d)):g.appendChild(d)}return a.settings.forced_root_block?f||tinymce.Env.ie&&!(tinymce.Env.ie>10)||e.appendChild(A.create("br",{"data-mce-bogus":"1"})):g.appendChild(A.create("br")),g}function n(){return tinymce.grep(B.getSelectedBlocks(),function(a){return/^(LI|DT|DD)$/.test(a.nodeName)})}function o(a,b,c){function d(a){tinymce.each(g,function(c){a.parentNode.insertBefore(c,b.parentNode)}),A.remove(a)}var e,f,g,h;for(g=A.select('span[data-mce-type="bookmark"]',a),c=c||m(b),e=A.createRng(),e.setStartAfter(b),e.setEndAfter(a),f=e.extractContents(),h=f.firstChild;h;h=h.firstChild)if("LI"==h.nodeName&&A.isEmpty(h)){A.remove(h);break}A.isEmpty(f)||A.insertAfter(f,a),A.insertAfter(c,a),j(b.parentNode)&&d(b.parentNode),A.remove(b),j(a)&&A.remove(a)}function p(a){var b,c;if(b=a.nextSibling,b&&d(b)&&b.nodeName==a.nodeName&&C(a,b)){for(;c=b.firstChild;)a.appendChild(c);A.remove(b)}if(b=a.previousSibling,b&&d(b)&&b.nodeName==a.nodeName&&C(a,b)){for(;c=b.firstChild;)a.insertBefore(c,a.firstChild);A.remove(b)}}function q(a){tinymce.each(tinymce.grep(A.select("ol,ul",a)),function(a){var b,c=a.parentNode;"LI"==c.nodeName&&c.firstChild==a&&(b=c.previousSibling,b&&"LI"==b.nodeName&&(b.appendChild(a),j(c)&&A.remove(c))),d(c)&&(b=c.previousSibling,b&&"LI"==b.nodeName&&b.appendChild(a))})}function r(a){function b(a){j(a)&&A.remove(a)}var c,g=a.parentNode,i=g.parentNode;return h(g)?!0:"DD"==a.nodeName?(A.rename(a,"DT"),!0):e(a)&&f(a)?("LI"==i.nodeName?(A.insertAfter(a,i),b(i),A.remove(g)):d(i)?A.remove(g,!0):(i.insertBefore(m(a),g),A.remove(g)),!0):e(a)?("LI"==i.nodeName?(A.insertAfter(a,i),a.appendChild(g),b(i)):d(i)?i.insertBefore(a,g):(i.insertBefore(m(a),g),A.remove(a)),!0):f(a)?("LI"==i.nodeName?A.insertAfter(a,i):d(i)?A.insertAfter(a,g):(A.insertAfter(m(a),g),A.remove(a)),!0):("LI"==i.nodeName?(g=i,c=m(a,"LI")):c=d(i)?m(a,"LI"):m(a),o(g,a,c),q(g.parentNode),!0)}function s(a){function b(b,c){var e;if(d(b)){for(;e=a.lastChild.firstChild;)c.appendChild(e);A.remove(b)}}var c,e,f;return"DT"==a.nodeName?(A.rename(a,"DD"),!0):(c=a.previousSibling,c&&d(c)?(c.appendChild(a),!0):c&&"LI"==c.nodeName&&d(c.lastChild)?(c.lastChild.appendChild(a),b(a.lastChild,c.lastChild),!0):(c=a.nextSibling,c&&d(c)?(c.insertBefore(a,c.firstChild),!0):(c=a.previousSibling,c&&"LI"==c.nodeName?(e=A.create(a.parentNode.nodeName),f=A.getStyle(a.parentNode,"listStyleType"),f&&A.setStyle(e,"listStyleType",f),c.appendChild(e),e.appendChild(a),b(a.lastChild,e),!0):!1)))}function t(){var b=n();if(b.length){for(var c=k(B.getRng(!0)),d=0;d<b.length&&(s(b[d])||0!==d);d++);return l(c),a.nodeChanged(),!0}}function u(){var b=n();if(b.length){var c,d,e=k(B.getRng(!0)),f=a.getBody();for(c=b.length;c--;)for(var g=b[c].parentNode;g&&g!=f;){for(d=b.length;d--;)if(b[d]===g){b.splice(c,1);break}g=g.parentNode}for(c=0;c<b.length&&(r(b[c])||0!==c);c++);return l(e),a.nodeChanged(),!0}}function v(b,e){function f(){function b(a){var b,c;for(b=i[a?"startContainer":"endContainer"],c=i[a?"startOffset":"endOffset"],1==b.nodeType&&(b=b.childNodes[Math.min(c,b.childNodes.length-1)]||b);b.parentNode!=f;){if(g(b))return b;if(/^(TD|TH)$/.test(b.parentNode.nodeName))return b;b=b.parentNode}return b}for(var d,e=[],f=a.getBody(),h=b(!0),j=b(),k=[],l=h;l&&(k.push(l),l!=j);l=l.nextSibling);return tinymce.each(k,function(a){if(g(a))return e.push(a),void(d=null);if(A.isBlock(a)||c(a))return c(a)&&A.remove(a),void(d=null);var b=a.nextSibling;return tinymce.dom.BookmarkManager.isBookmarkNode(a)&&(g(b)||!b&&a.parentNode==f)?void(d=null):(d||(d=A.create("p"),a.parentNode.insertBefore(d,a),e.push(d)),void d.appendChild(a))}),e}var h,i=B.getRng(!0),j="LI";"false"!==A.getContentEditable(B.getNode())&&(b=b.toUpperCase(),"DL"==b&&(j="DT"),h=k(i),tinymce.each(f(),function(a){var c,f,g=function(a){var b=A.getStyle(a,"list-style-type"),c=e?e["list-style-type"]:"";return c=null===c?"":c,b===c};f=a.previousSibling,f&&d(f)&&f.nodeName==b&&g(f)?(c=f,a=A.rename(a,j),f.appendChild(a)):(c=A.create(b),a.parentNode.insertBefore(c,a),c.appendChild(a),a=A.rename(a,j)),D(c,e),p(c)}),l(h))}function w(){var b=k(B.getRng(!0)),c=a.getBody();tinymce.each(n(),function(a){var b,e;if(!h(a.parentNode)){if(j(a))return void r(a);for(b=a;b&&b!=c;b=b.parentNode)d(b)&&(e=b);o(e,a)}}),l(b)}function x(a,b){var c=A.getParent(B.getStart(),"OL,UL,DL");if(!h(c))if(c)if(c.nodeName==a)w(a);else{var d=k(B.getRng(!0));D(c,b),p(A.rename(c,a)),l(d)}else v(a,b)}function y(b){return function(){var c=A.getParent(a.selection.getStart(),"UL,OL,DL");return c&&c.nodeName==b}}function z(a){return c(a)?!(!A.isBlock(a.nextSibling)||c(a.previousSibling)):!1}var A=a.dom,B=a.selection,C=function(b,c){var d=a.dom.getStyle(b,"list-style-type",!0),e=a.dom.getStyle(c,"list-style-type",!0);return d===e},D=function(a,b){A.setStyle(a,"list-style-type",b?b["list-style-type"]:null)};i.backspaceDelete=function(e){function f(b,c){var d,e,f=b.startContainer,g=b.startOffset;if(3==f.nodeType&&(c?g<f.data.length:g>0))return f;for(d=a.schema.getNonEmptyElements(),1==f.nodeType&&(f=tinymce.dom.RangeUtils.getNode(f,g)),e=new tinymce.dom.TreeWalker(f,a.getBody()),c&&z(f)&&e.next();f=e[c?"next":"prev2"]();){if("LI"==f.nodeName&&!f.hasChildNodes())return f;if(d[f.nodeName])return f;if(3==f.nodeType&&f.data.length>0)return f}}function g(a,e){var f,g,i=a.parentNode;if(b(a)&&b(e)){if(d(e.lastChild)&&(g=e.lastChild),i==e.lastChild&&c(i.previousSibling)&&A.remove(i.previousSibling),f=e.lastChild,f&&c(f)&&a.hasChildNodes()&&A.remove(f),j(e,!0)&&A.$(e).empty(),!j(a,!0))for(;f=a.firstChild;)e.appendChild(f);g&&e.appendChild(g),A.remove(a),j(i)&&!h(i)&&A.remove(i)}}if(B.isCollapsed()){var i,m,n,o=A.getParent(B.getStart(),"LI");if(o){if(i=o.parentNode,h(i)&&A.isEmpty(i))return!0;if(m=B.getRng(!0),n=A.getParent(f(m,e),"LI"),n&&n!=o){var p=k(m);return e?g(n,o):g(o,n),l(p),!0}if(!n&&!e&&w(i.nodeName))return!0}}},a.on("BeforeExecCommand",function(b){var c,d=b.command.toLowerCase();return"indent"==d?t()&&(c=!0):"outdent"==d&&u()&&(c=!0),c?(a.fire("ExecCommand",{command:b.command}),b.preventDefault(),!0):void 0}),a.addCommand("InsertUnorderedList",function(a,b){x("UL",b)}),a.addCommand("InsertOrderedList",function(a,b){x("OL",b)}),a.addCommand("InsertDefinitionList",function(a,b){x("DL",b)}),a.addQueryStateHandler("InsertUnorderedList",y("UL")),a.addQueryStateHandler("InsertOrderedList",y("OL")),a.addQueryStateHandler("InsertDefinitionList",y("DL")),a.on("keydown",function(b){9!=b.keyCode||tinymce.util.VK.metaKeyPressed(b)||a.dom.getParent(a.selection.getStart(),"LI,DT,DD")&&(b.preventDefault(),b.shiftKey?u():t())})}),a.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var b=this;a.on("nodechange",function(){for(var c=a.selection.getSelectedBlocks(),d=!1,f=0,g=c.length;!d&&g>f;f++){var h=c[f].nodeName;d="LI"==h&&e(c[f])||"UL"==h||"OL"==h||"DD"==h}b.disabled(d)})}}),a.on("keydown",function(a){a.keyCode==tinymce.util.VK.BACKSPACE?i.backspaceDelete()&&a.preventDefault():a.keyCode==tinymce.util.VK.DELETE&&i.backspaceDelete(!0)&&a.preventDefault()})});
\ No newline at end of file
+tinymce.PluginManager.add("lists",function(a){function b(b){return a.$.contains(a.getBody(),b)}function c(a){return a&&"BR"==a.nodeName}function d(a){return a&&/^(OL|UL|DL)$/.test(a.nodeName)&&b(a)}function e(a){return a&&/^(LI|DT|DD)$/.test(a.nodeName)}function f(a){return a.parentNode.firstChild==a}function g(a){return a.parentNode.lastChild==a}function h(b){return b&&!!a.schema.getTextBlockElements()[b.nodeName]}function i(b){return b===a.getBody()}function j(a){return a&&3===a.nodeType}function k(a,b){var c=tinymce.dom.RangeUtils.getNode(a,b);if(e(a)&&j(c)){var d=b>=a.childNodes.length?c.data.length:0;return{container:c,offset:d}}return{container:a,offset:b}}function l(a){var b=a.cloneRange(),c=k(a.startContainer,a.startOffset);b.setStart(c.container,c.offset);var d=k(a.endContainer,a.endOffset);return b.setEnd(d.container,d.offset),b}var m=this;a.on("init",function(){function j(a,b){var c=H.isEmpty(a);return b&&H.select("span[data-mce-type=bookmark]").length>0?!1:c}function k(a){function b(b){var d,e,f;e=a[b?"startContainer":"endContainer"],f=a[b?"startOffset":"endOffset"],1==e.nodeType&&(d=H.create("span",{"data-mce-type":"bookmark"}),e.hasChildNodes()?(f=Math.min(f,e.childNodes.length-1),b?e.insertBefore(d,e.childNodes[f]):H.insertAfter(d,e.childNodes[f])):e.appendChild(d),e=d,f=0),c[b?"startContainer":"endContainer"]=e,c[b?"startOffset":"endOffset"]=f}var c={};return b(!0),a.collapsed||b(),c}function n(a){function b(b){function c(a){for(var b=a.parentNode.firstChild,c=0;b;){if(b==a)return c;1==b.nodeType&&"bookmark"==b.getAttribute("data-mce-type")||c++,b=b.nextSibling}return-1}var d,e,f;d=f=a[b?"startContainer":"endContainer"],e=a[b?"startOffset":"endOffset"],d&&(1==d.nodeType&&(e=c(d),d=d.parentNode,H.remove(f)),a[b?"startContainer":"endContainer"]=d,a[b?"startOffset":"endOffset"]=e)}b(!0),b();var c=H.createRng();c.setStart(a.startContainer,a.startOffset),a.endContainer&&c.setEnd(a.endContainer,a.endOffset),I.setRng(l(c))}function o(b,c){var d,e,f,g=H.createFragment(),h=a.schema.getBlockElements();if(a.settings.forced_root_block&&(c=c||a.settings.forced_root_block),c&&(e=H.create(c),e.tagName===a.settings.forced_root_block&&H.setAttribs(e,a.settings.forced_root_block_attrs),g.appendChild(e)),b)for(;d=b.firstChild;){var i=d.nodeName;f||"SPAN"==i&&"bookmark"==d.getAttribute("data-mce-type")||(f=!0),h[i]?(g.appendChild(d),e=null):c?(e||(e=H.create(c),g.appendChild(e)),e.appendChild(d)):g.appendChild(d)}return a.settings.forced_root_block?f||tinymce.Env.ie&&!(tinymce.Env.ie>10)||e.appendChild(H.create("br",{"data-mce-bogus":"1"})):g.appendChild(H.create("br")),g}function p(){return tinymce.grep(I.getSelectedBlocks(),function(a){return e(a)})}function q(a,b,c){function d(a){tinymce.each(g,function(c){a.parentNode.insertBefore(c,b.parentNode)}),H.remove(a)}var e,f,g,h;for(g=H.select('span[data-mce-type="bookmark"]',a),c=c||o(b),e=H.createRng(),e.setStartAfter(b),e.setEndAfter(a),f=e.extractContents(),h=f.firstChild;h;h=h.firstChild)if("LI"==h.nodeName&&H.isEmpty(h)){H.remove(h);break}H.isEmpty(f)||H.insertAfter(f,a),H.insertAfter(c,a),j(b.parentNode)&&d(b.parentNode),H.remove(b),j(a)&&H.remove(a)}function r(a){var b,c;if(b=a.nextSibling,b&&d(b)&&b.nodeName==a.nodeName&&J(a,b)){for(;c=b.firstChild;)a.appendChild(c);H.remove(b)}if(b=a.previousSibling,b&&d(b)&&b.nodeName==a.nodeName&&J(a,b)){for(;c=b.firstChild;)a.insertBefore(c,a.firstChild);H.remove(b)}}function s(a){tinymce.each(tinymce.grep(H.select("ol,ul",a)),t)}function t(a){var b,c=a.parentNode;"LI"==c.nodeName&&c.firstChild==a&&(b=c.previousSibling,b&&"LI"==b.nodeName?(b.appendChild(a),j(c)&&H.remove(c)):H.setStyle(c,"listStyleType","none")),d(c)&&(b=c.previousSibling,b&&"LI"==b.nodeName&&b.appendChild(a))}function u(a){function b(a){j(a)&&H.remove(a)}var c,e=a.parentNode,h=e.parentNode;return i(e)?!0:"DD"==a.nodeName?(H.rename(a,"DT"),!0):f(a)&&g(a)?("LI"==h.nodeName?(H.insertAfter(a,h),b(h),H.remove(e)):d(h)?H.remove(e,!0):(h.insertBefore(o(a),e),H.remove(e)),!0):f(a)?("LI"==h.nodeName?(H.insertAfter(a,h),a.appendChild(e),b(h)):d(h)?h.insertBefore(a,e):(h.insertBefore(o(a),e),H.remove(a)),!0):g(a)?("LI"==h.nodeName?H.insertAfter(a,h):d(h)?H.insertAfter(a,e):(H.insertAfter(o(a),e),H.remove(a)),!0):("LI"==h.nodeName?(e=h,c=o(a,"LI")):c=d(h)?o(a,"LI"):o(a),q(e,a,c),s(e.parentNode),!0)}function v(a){function b(b,c){var e;if(d(b)){for(;e=a.lastChild.firstChild;)c.appendChild(e);H.remove(b)}}var c,e,f;return"DT"==a.nodeName?(H.rename(a,"DD"),!0):(c=a.previousSibling,c&&d(c)?(c.appendChild(a),!0):c&&"LI"==c.nodeName&&d(c.lastChild)?(c.lastChild.appendChild(a),b(a.lastChild,c.lastChild),!0):(c=a.nextSibling,c&&d(c)?(c.insertBefore(a,c.firstChild),!0):(c=a.previousSibling,c&&"LI"==c.nodeName?(e=H.create(a.parentNode.nodeName),f=H.getStyle(a.parentNode,"listStyleType"),f&&H.setStyle(e,"listStyleType",f),c.appendChild(e),e.appendChild(a),b(a.lastChild,e),!0):!1)))}function w(){var b=p();if(b.length){for(var c=k(I.getRng(!0)),d=0;d<b.length&&(v(b[d])||0!==d);d++);return n(c),a.nodeChanged(),!0}}function x(){var b=p();if(b.length){var c,d,e=k(I.getRng(!0)),f=a.getBody();for(c=b.length;c--;)for(var g=b[c].parentNode;g&&g!=f;){for(d=b.length;d--;)if(b[d]===g){b.splice(c,1);break}g=g.parentNode}for(c=0;c<b.length&&(u(b[c])||0!==c);c++);return n(e),a.nodeChanged(),!0}}function y(b,e){function f(){function b(a){var b,c;for(b=i[a?"startContainer":"endContainer"],c=i[a?"startOffset":"endOffset"],1==b.nodeType&&(b=b.childNodes[Math.min(c,b.childNodes.length-1)]||b);b.parentNode!=f;){if(h(b))return b;if(/^(TD|TH)$/.test(b.parentNode.nodeName))return b;b=b.parentNode}return b}for(var d,e=[],f=a.getBody(),g=b(!0),j=b(),k=[],l=g;l&&(k.push(l),l!=j);l=l.nextSibling);return tinymce.each(k,function(a){if(h(a))return e.push(a),void(d=null);if(H.isBlock(a)||c(a))return c(a)&&H.remove(a),void(d=null);var b=a.nextSibling;return tinymce.dom.BookmarkManager.isBookmarkNode(a)&&(h(b)||!b&&a.parentNode==f)?void(d=null):(d||(d=H.create("p"),a.parentNode.insertBefore(d,a),e.push(d)),void d.appendChild(a))}),e}var g,i=I.getRng(!0),j="LI";"false"!==H.getContentEditable(I.getNode())&&(b=b.toUpperCase(),"DL"==b&&(j="DT"),g=k(i),tinymce.each(f(),function(a){var c,f,g=function(a){var b=H.getStyle(a,"list-style-type"),c=e?e["list-style-type"]:"";return c=null===c?"":c,b===c};f=a.previousSibling,f&&d(f)&&f.nodeName==b&&g(f)?(c=f,a=H.rename(a,j),f.appendChild(a)):(c=H.create(b),a.parentNode.insertBefore(c,a),c.appendChild(a),a=H.rename(a,j)),K(c,e),r(c)}),n(g))}function z(){var b=k(I.getRng(!0)),c=a.getBody();tinymce.each(p(),function(a){var b,e;if(!i(a.parentNode)){if(j(a))return void u(a);for(b=a;b&&b!=c;b=b.parentNode)d(b)&&(e=b);q(e,a),s(e.parentNode)}}),n(b)}function A(a,b){var c=H.getParent(I.getStart(),"OL,UL,DL");if(!i(c))if(c)if(c.nodeName==a)z(a);else{var d=k(I.getRng(!0));K(c,b),r(H.rename(c,a)),n(d)}else y(a,b)}function B(b){return function(){var c=H.getParent(a.selection.getStart(),"UL,OL,DL");return c&&c.nodeName==b}}function C(a){return c(a)?!(!H.isBlock(a.nextSibling)||c(a.previousSibling)):!1}function D(b,c){var d,e,f=b.startContainer,g=b.startOffset;if(3==f.nodeType&&(c?g<f.data.length:g>0))return f;for(d=a.schema.getNonEmptyElements(),1==f.nodeType&&(f=tinymce.dom.RangeUtils.getNode(f,g)),e=new tinymce.dom.TreeWalker(f,a.getBody()),c&&C(f)&&e.next();f=e[c?"next":"prev2"]();){if("LI"==f.nodeName&&!f.hasChildNodes())return f;if(d[f.nodeName])return f;if(3==f.nodeType&&f.data.length>0)return f}}function E(a,e){var f,g,h=a.parentNode;if(b(a)&&b(e)){if(d(e.lastChild)&&(g=e.lastChild),h==e.lastChild&&c(h.previousSibling)&&H.remove(h.previousSibling),f=e.lastChild,f&&c(f)&&a.hasChildNodes()&&H.remove(f),j(e,!0)&&H.$(e).empty(),!j(a,!0))for(;f=a.firstChild;)e.appendChild(f);g&&e.appendChild(g),H.remove(a),j(h)&&!i(h)&&H.remove(h)}}function F(a){var b,c,d,e=H.getParent(I.getStart(),"LI");if(e){if(b=e.parentNode,i(b)&&H.isEmpty(b))return!0;if(c=l(I.getRng(!0)),d=H.getParent(D(c,a),"LI"),d&&d!=e){var f=k(c);return a?E(d,e):E(e,d),n(f),!0}if(!d&&!a&&z(b.nodeName))return!0}}function G(){var b=a.dom.getParent(a.selection.getStart(),"LI,DT,DD");return b||p().length>0?(a.undoManager.transact(function(){a.execCommand("Delete"),s(a.getBody())}),!0):!1}var H=a.dom,I=a.selection,J=function(b,c){var d=a.dom.getStyle(b,"list-style-type",!0),e=a.dom.getStyle(c,"list-style-type",!0);return d===e},K=function(a,b){H.setStyle(a,"list-style-type",b?b["list-style-type"]:null)};m.backspaceDelete=function(a){return I.isCollapsed()?F(a):G()},a.on("BeforeExecCommand",function(b){var c,d=b.command.toLowerCase();return"indent"==d?w()&&(c=!0):"outdent"==d&&x()&&(c=!0),c?(a.fire("ExecCommand",{command:b.command}),b.preventDefault(),!0):void 0}),a.addCommand("InsertUnorderedList",function(a,b){A("UL",b)}),a.addCommand("InsertOrderedList",function(a,b){A("OL",b)}),a.addCommand("InsertDefinitionList",function(a,b){A("DL",b)}),a.addQueryStateHandler("InsertUnorderedList",B("UL")),a.addQueryStateHandler("InsertOrderedList",B("OL")),a.addQueryStateHandler("InsertDefinitionList",B("DL")),a.on("keydown",function(b){9!=b.keyCode||tinymce.util.VK.metaKeyPressed(b)||a.dom.getParent(a.selection.getStart(),"LI,DT,DD")&&(b.preventDefault(),b.shiftKey?x():w())})}),a.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var b=this;a.on("nodechange",function(){for(var c=a.selection.getSelectedBlocks(),d=!1,e=0,g=c.length;!d&&g>e;e++){var h=c[e].nodeName;d="LI"==h&&f(c[e])||"UL"==h||"OL"==h||"DD"==h}b.disabled(d)})}}),a.on("keydown",function(a){a.keyCode==tinymce.util.VK.BACKSPACE?m.backspaceDelete()&&a.preventDefault():a.keyCode==tinymce.util.VK.DELETE&&m.backspaceDelete(!0)&&a.preventDefault()})});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/paste/plugin.js b/wp-includes/js/tinymce/plugins/paste/plugin.js
index 8839e9ad4..7d2a71e59 100644
--- a/wp-includes/js/tinymce/plugins/paste/plugin.js
+++ b/wp-includes/js/tinymce/plugins/paste/plugin.js
@@ -264,7 +264,7 @@ define("tinymce/pasteplugin/SmartPaste", [
 	"tinymce/util/Tools"
 ], function (Tools) {
 	var isAbsoluteUrl = function (url) {
-		return /^https?:\/\/[\w\?\-\/+=.&%]+$/i.test(url);
+		return /^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(url);
 	};
 
 	var isImageUrl = function (url) {
@@ -1766,6 +1766,15 @@ define("tinymce/pasteplugin/Plugin", [
 			editor.focus();
 		}
 
+		// draw back if power version is requested and registered
+		if (/(^|[ ,])powerpaste([, ]|$)/.test(settings.plugins) && PluginManager.get('powerpaste')) {
+			/*eslint no-console:0 */
+			if (typeof console !== "undefined" && console.log) {
+				console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option.");
+			}
+			return;
+		}
+
 		self.clipboard = clipboard = new Clipboard(editor);
 		self.quirks = new Quirks(editor);
 		self.wordFilter = new WordFilter(editor);
diff --git a/wp-includes/js/tinymce/plugins/paste/plugin.min.js b/wp-includes/js/tinymce/plugins/paste/plugin.min.js
index 207f84d7d..e639da521 100644
--- a/wp-includes/js/tinymce/plugins/paste/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/paste/plugin.min.js
@@ -1 +1 @@
-!function(a,b){"use strict";function c(a,b){for(var c,d=[],f=0;f<a.length;++f){if(c=g[a[f]]||e(a[f]),!c)throw"module definition dependecy not found: "+a[f];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){g[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}function f(c){var d,e,f,h,i;for(d=0;d<c.length;d++){e=a,f=c[d],h=f.split(/[.\/]/);for(var j=0;j<h.length-1;++j)e[h[j]]===b&&(e[h[j]]={}),e=e[h[j]];e[h[h.length-1]]=g[f]}if(a.AMDLC_TESTS){i=a.privateModules||{};for(f in g)i[f]=g[f];for(d=0;d<c.length;d++)delete i[c[d]];a.privateModules=i}}var g={};d("tinymce/pasteplugin/Utils",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema"],function(a,b,c){function d(b,c){return a.each(c,function(a){b=a.constructor==RegExp?b.replace(a,""):b.replace(a[0],a[1])}),b}function e(e){function f(a){var b=a.name,c=a;if("br"===b)return void(i+="\n");if(j[b]&&(i+=" "),k[b])return void(i+=" ");if(3==a.type&&(i+=a.value),!a.shortEnded&&(a=a.firstChild))do f(a);while(a=a.next);l[b]&&c.next&&(i+="\n","p"==b&&(i+="\n"))}var g=new c,h=new b({},g),i="",j=g.getShortEndedElements(),k=a.makeMap("script noscript style textarea video audio iframe object"," "),l=g.getBlockElements();return e=d(e,[/<!\[[^\]]+\]>/g]),f(h.parse(e)),i}function f(a){function b(a,b,c){return b||c?"\xa0":" "}return a=d(a,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,b],/<br class="Apple-interchange-newline">/g,/<br>$/i])}function g(a){var b=0;return function(){return a+b++}}return{filter:d,innerText:e,trimHtml:f,createIdGenerator:g}}),d("tinymce/pasteplugin/SmartPaste",["tinymce/util/Tools"],function(a){var b=function(a){return/^https?:\/\/[\w\?\-\/+=.&%]+$/i.test(a)},c=function(a){return b(a)&&/.(gif|jpe?g|png)$/.test(a)},d=function(a,b,c){return a.undoManager.extra(function(){c(a,b)},function(){a.insertContent('<img src="'+b+'">')}),!0},e=function(a,b,c){return a.undoManager.extra(function(){c(a,b)},function(){a.execCommand("mceInsertLink",!1,b)}),!0},f=function(a,c,d){return a.selection.isCollapsed()===!1&&b(c)?e(a,c,d):!1},g=function(a,b,e){return c(b)?d(a,b,e):!1},h=function(a,b){return a.insertContent(b,{merge:a.settings.paste_merge_formats!==!1,paste:!0}),!0},i=function(b,c){a.each([f,g,h],function(a){return a(b,c,h)!==!0})},j=function(a,b){a.settings.smart_paste===!1?h(a,b):i(a,b)};return{isImageUrl:c,isAbsoluteUrl:b,insertContent:j}}),d("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/dom/RangeUtils","tinymce/util/VK","tinymce/pasteplugin/Utils","tinymce/pasteplugin/SmartPaste","tinymce/util/Delay"],function(a,b,c,d,e,f){return function(g){function h(a){var b,c=g.dom;if(b=g.fire("BeforePastePreProcess",{content:a}),b=g.fire("PastePreProcess",b),a=b.content,!b.isDefaultPrevented()){if(g.hasEventListeners("PastePostProcess")&&!b.isDefaultPrevented()){var d=c.add(g.getBody(),"div",{style:"display:none"},a);b=g.fire("PastePostProcess",{node:d}),c.remove(d),a=b.node.innerHTML}b.isDefaultPrevented()||e.insertContent(g,a)}}function i(a){a=g.dom.encode(a).replace(/\r\n/g,"\n");var b,c=g.dom.getParent(g.selection.getStart(),g.dom.isBlock),e=g.settings.forced_root_block;e&&(b=g.dom.createHTML(e,g.settings.forced_root_block_attrs),b=b.substr(0,b.length-3)+">"),c&&/^(PRE|DIV)$/.test(c.nodeName)||!e?a=d.filter(a,[[/\n/g,"<br>"]]):(a=d.filter(a,[[/\n\n/g,"</p>"+b],[/^(.*<\/p>)(<p>)$/,b+"$1"],[/\n/g,"<br />"]]),-1!=a.indexOf("<p>")&&(a=b+a)),h(a)}function j(){function b(a){var b,c,e,f=a.startContainer;if(b=a.getClientRects(),b.length)return b[0];if(a.collapsed&&1==f.nodeType){for(e=f.childNodes[z.startOffset];e&&3==e.nodeType&&!e.data.length;)e=e.nextSibling;if(e)return"BR"==e.tagName&&(c=d.doc.createTextNode("\ufeff"),e.parentNode.insertBefore(c,e),a=d.createRng(),a.setStartBefore(c),a.setEndAfter(c),b=a.getClientRects(),d.remove(c)),b.length?b[0]:void 0}}var c,d=g.dom,e=g.getBody(),f=g.dom.getViewPort(g.getWin()),h=f.y,i=20;if(z=g.selection.getRng(),g.inline&&(c=g.selection.getScrollContainer(),c&&c.scrollTop>0&&(h=c.scrollTop)),z.getClientRects){var j=b(z);if(j)i=h+(j.top-d.getPos(e).y);else{i=h;var k=z.startContainer;k&&(3==k.nodeType&&k.parentNode!=e&&(k=k.parentNode),1==k.nodeType&&(i=d.getPos(k,c||e).y))}}y=d.add(g.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+i+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},E),(a.ie||a.gecko)&&d.setStyle(y,"left","rtl"==d.getStyle(e,"direction",!0)?65535:-65535),d.bind(y,"beforedeactivate focusin focusout",function(a){a.stopPropagation()}),y.focus(),g.selection.select(y,!0)}function k(){if(y){for(var a;a=g.dom.get("mcepastebin");)g.dom.remove(a),g.dom.unbind(a);z&&g.selection.setRng(z)}y=z=null}function l(){var a,b,c,d,e="";for(a=g.dom.select("div[id=mcepastebin]"),b=0;b<a.length;b++)c=a[b],c.firstChild&&"mcepastebin"==c.firstChild.id&&(c=c.firstChild),d=c.innerHTML,e!=E&&(e+=d);return e}function m(a){var b={};if(a){if(a.getData){var c=a.getData("Text");c&&c.length>0&&-1==c.indexOf(F)&&(b["text/plain"]=c)}if(a.types)for(var d=0;d<a.types.length;d++){var e=a.types[d];b[e]=a.getData(e)}}return b}function n(a){return m(a.clipboardData||g.getDoc().dataTransfer)}function o(a){return v(a,"text/html")||v(a,"text/plain")}function p(a){var b;return b=a.indexOf(","),-1!==b?a.substr(b+1):null}function q(a,b){return a.images_dataimg_filter?a.images_dataimg_filter(b):!0}function r(a,b,c){a&&(g.selection.setRng(a),a=null);var d=b.result,e=p(d),f=new Image;if(f.src=d,q(g.settings,f)){var i,j,k=g.editorUpload.blobCache;j=k.findFirst(function(a){return a.base64()===e}),j?i=j:(i=k.create(G(),c,e),k.add(i)),h('<img src="'+i.blobUri()+'">')}else h('<img src="'+d+'">')}function s(a,b){function c(c){var d,e,f,g=!1;if(c)for(d=0;d<c.length;d++)if(e=c[d],/^image\/(jpeg|png|gif|bmp)$/.test(e.type)){var h=e.getAsFile?e.getAsFile():e;f=new FileReader,f.onload=r.bind(null,b,f,h),f.readAsDataURL(h),a.preventDefault(),g=!0}return g}var d=a.clipboardData||a.dataTransfer;return g.settings.paste_data_images&&d?c(d.items)||c(d.files):void 0}function t(a){var b=a.clipboardData;return-1!=navigator.userAgent.indexOf("Android")&&b&&b.items&&0===b.items.length}function u(a){return b.getCaretRangeFromPoint(a.clientX,a.clientY,g.getDoc())}function v(a,b){return b in a&&a[b].length>0}function w(a){return c.metaKeyPressed(a)&&86==a.keyCode||a.shiftKey&&45==a.keyCode}function x(){function b(a,b,c){var e;return v(a,"text/html")?e=a["text/html"]:(e=l(),e==E&&(c=!0)),e=d.trimHtml(e),y&&y.firstChild&&"mcepastebin"===y.firstChild.id&&(c=!0),k(),e.length||(c=!0),c&&(e=v(a,"text/plain")&&-1==e.indexOf("</p>")?a["text/plain"]:d.innerText(e)),e==E?void(b||g.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(c?i(e):h(e))}function c(a){return 0===a["text/plain"].indexOf("file://")}g.on("keydown",function(b){function c(a){w(a)&&!a.isDefaultPrevented()&&k()}if(w(b)&&!b.isDefaultPrevented()){if(A=b.shiftKey&&86==b.keyCode,A&&a.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(b.stopImmediatePropagation(),C=(new Date).getTime(),a.ie&&A)return b.preventDefault(),void g.fire("paste",{ieFake:!0});k(),j(),g.once("keyup",c),g.once("paste",function(){g.off("keyup",c)})}});var e=function(){return z||g.selection.getRng()};g.on("paste",function(c){var d=(new Date).getTime(),h=n(c),i=(new Date).getTime()-d,m=(new Date).getTime()-C-i<1e3,p="text"==B.pasteFormat||A;return A=!1,c.isDefaultPrevented()||t(c)?void k():!o(h)&&s(c,e())?void k():(m||c.preventDefault(),!a.ie||m&&!c.ieFake||(j(),g.dom.bind(y,"paste",function(a){a.stopPropagation()}),g.getDoc().execCommand("Paste",!1,null),h["text/html"]=l()),void(v(h,"text/html")?(c.preventDefault(),b(h,m,p)):f.setEditorTimeout(g,function(){b(h,m,p)},0)))}),g.on("dragstart dragend",function(a){D="dragstart"==a.type}),g.on("drop",function(a){var b,e;if(e=u(a),!a.isDefaultPrevented()&&!D&&(b=m(a.dataTransfer),(o(b)&&!c(b)||!s(a,e))&&e&&g.settings.paste_filter_drop!==!1)){var j=b["mce-internal"]||b["text/html"]||b["text/plain"];j&&(a.preventDefault(),f.setEditorTimeout(g,function(){g.undoManager.transact(function(){b["mce-internal"]&&g.execCommand("Delete"),g.selection.setRng(e),j=d.trimHtml(j),b["text/html"]?h(j):i(j)})}))}}),g.on("dragover dragend",function(a){g.settings.paste_data_images&&a.preventDefault()})}var y,z,A,B=this,C=0,D=!1,E="%MCEPASTEBIN%",F="data:text/mce-internal,",G=d.createIdGenerator("mceclip");B.pasteHtml=h,B.pasteText=i,B.pasteImageData=s,g.on("preInit",function(){x(),g.parser.addNodeFilter("img",function(b,c,d){function e(a){return a.data&&a.data.paste===!0}function f(b){b.attr("data-mce-object")||k===a.transparentSrc||b.remove()}function h(a){return 0===a.indexOf("webkit-fake-url")}function i(a){return 0===a.indexOf("data:")}if(!g.settings.paste_data_images&&e(d))for(var j=b.length;j--;){var k=b[j].attributes.map.src;k&&(h(k)?f(b[j]):!g.settings.allow_html_data_urls&&i(k)&&f(b[j]))}})})}}),d("tinymce/pasteplugin/WordFilter",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema","tinymce/html/Serializer","tinymce/html/Node","tinymce/pasteplugin/Utils"],function(a,b,c,d,e,f){function g(a){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(a)||/class="OutlineElement/.test(a)||/id="?docs\-internal\-guid\-/.test(a)}function h(b){var c,d;return d=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],b=b.replace(/^[\u00a0 ]+/,""),a.each(d,function(a){return a.test(b)?(c=!0,!1):void 0}),c}function i(a){return/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(a)}function j(j){var k=j.settings;j.on("BeforePastePreProcess",function(l){function m(a){function b(a){var c="";if(3===a.type)return a.value;if(a=a.firstChild)do c+=b(a);while(a=a.next);return c}function c(a,b){if(3===a.type&&b.test(a.value))return a.value=a.value.replace(b,""),!1;if(a=a.firstChild)do if(!c(a,b))return!1;while(a=a.next);return!0}function d(a){if(a._listIgnore)return void a.remove();if(a=a.firstChild)do d(a);while(a=a.next)}function f(a,b,f){var h=a._listLevel||k;h!=k&&(k>h?g&&(g=g.parent.parent):(j=g,g=null)),g&&g.name==b?g.append(a):(j=j||g,g=new e(b,1),f>1&&g.attr("start",""+f),a.wrap(g)),a.name="li",h>k&&j&&j.lastChild.append(g),k=h,d(a),c(a,/^\u00a0+/),c(a,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),c(a,/^\u00a0+/)}for(var g,j,k=1,l=[],m=a.firstChild;"undefined"!=typeof m&&null!==m;)if(l.push(m),m=m.walk(),null!==m)for(;"undefined"!=typeof m&&m.parent!==a;)m=m.walk();for(var n=0;n<l.length;n++)if(a=l[n],"p"==a.name&&a.firstChild){var o=b(a);if(i(o)){f(a,"ul");continue}if(h(o)){var p=/([0-9]+)\./.exec(o),q=1;p&&(q=parseInt(p[1],10)),f(a,"ol",q);continue}if(a._listLevel){f(a,"ul",1);continue}g=null}else j=g,g=null}function n(b,c){var d,f={},g=j.dom.parseStyle(c);return a.each(g,function(a,e){switch(e){case"mso-list":d=/\w+ \w+([0-9]+)/i.exec(c),d&&(b._listLevel=parseInt(d[1],10)),/Ignore/i.test(a)&&b.firstChild&&(b._listIgnore=!0,b.firstChild._listIgnore=!0);break;case"horiz-align":e="text-align";break;case"vert-align":e="vertical-align";break;case"font-color":case"mso-foreground":e="color";break;case"mso-background":case"mso-highlight":e="background";break;case"font-weight":case"font-style":return void("normal"!=a&&(f[e]=a));case"mso-element":if(/^(comment|comment-list)$/i.test(a))return void b.remove()}return 0===e.indexOf("mso-comment")?void b.remove():void(0!==e.indexOf("mso-")&&("all"==o||p&&p[e])&&(f[e]=a))}),/(bold)/i.test(f["font-weight"])&&(delete f["font-weight"],b.wrap(new e("b",1))),/(italic)/i.test(f["font-style"])&&(delete f["font-style"],b.wrap(new e("i",1))),f=j.dom.serializeStyle(f,b.name),f?f:null}var o,p,q=l.content;if(q=q.replace(/<b[^>]+id="?docs-internal-[^>]*>/gi,""),q=q.replace(/<br class="?Apple-interchange-newline"?>/gi,""),o=k.paste_retain_style_properties,o&&(p=a.makeMap(o.split(/[, ]/))),k.paste_enable_default_filters!==!1&&g(l.content)){l.wordContent=!0,q=f.filter(q,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(a,b){return b.length>0?b.replace(/./," ").slice(Math.floor(b.length/2)).split("").join("\xa0"):""}]]);var r=k.paste_word_valid_elements;r||(r="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody");var s=new c({valid_elements:r,valid_children:"-li[p]"});a.each(s.elements,function(a){a.attributes["class"]||(a.attributes["class"]={},a.attributesOrder.push("class")),a.attributes.style||(a.attributes.style={},a.attributesOrder.push("style"))});var t=new b({},s);t.addAttributeFilter("style",function(a){for(var b,c=a.length;c--;)b=a[c],b.attr("style",n(b,b.attr("style"))),"span"==b.name&&b.parent&&!b.attributes.length&&b.unwrap()}),t.addAttributeFilter("class",function(a){for(var b,c,d=a.length;d--;)b=a[d],c=b.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(c)&&b.remove(),b.attr("class",null)}),t.addNodeFilter("del",function(a){for(var b=a.length;b--;)a[b].remove()}),t.addNodeFilter("a",function(a){for(var b,c,d,e=a.length;e--;)if(b=a[e],c=b.attr("href"),d=b.attr("name"),c&&-1!=c.indexOf("#_msocom_"))b.remove();else if(c&&0===c.indexOf("file://")&&(c=c.split("#")[1],c&&(c="#"+c)),c||d){if(d&&!/^_?(?:toc|edn|ftn)/i.test(d)){b.unwrap();continue}b.attr({href:c,name:d})}else b.unwrap()});var u=t.parse(q);k.paste_convert_word_fake_lists!==!1&&m(u),l.content=new d({validate:k.validate},s).serialize(u)}})}return j.isWordContent=g,j}),d("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(a,b,c,d){return function(e){function f(a){e.on("BeforePastePreProcess",function(b){b.content=a(b.content)})}function g(a){if(!c.isWordContent(a))return a;var f=[];b.each(e.schema.getBlockElements(),function(a,b){f.push(b)});var g=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+f.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return a=d.filter(a,[[g,"$1"]]),a=d.filter(a,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function h(a){if(c.isWordContent(a))return a;var b=e.settings.paste_webkit_styles;if(e.settings.paste_remove_styles_if_webkit===!1||"all"==b)return a;if(b&&(b=b.split(/[, ]/)),b){var d=e.dom,f=e.selection.getNode();a=a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(a,c,e,g){var h=d.parseStyle(e,"span"),i={};if("none"===b)return c+g;for(var j=0;j<b.length;j++){var k=h[b[j]],l=d.getStyle(f,b[j],!0);/color/.test(b[j])&&(k=d.toHex(k),l=d.toHex(l)),l!=k&&(i[b[j]]=k)}return i=d.serializeStyle(i,"span"),i?c+' style="'+i+'"'+g:c+g})}else a=a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return a=a.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(a,b,c,d){return b+' style="'+c+'"'+d})}a.webkit&&f(h),a.ie&&f(g)}}),d("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(a,b,c,d){var e;a.add("paste",function(a){function f(){return e||a.settings.paste_plaintext_inform===!1}function g(){if("text"==h.pasteFormat)this.active(!1),h.pasteFormat="html",a.fire("PastePlainTextToggle",{state:!1});else if(h.pasteFormat="text",this.active(!0),!f()){var b=a.translate("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.");a.notificationManager.open({text:b,type:"info"}),e=!0,a.fire("PastePlainTextToggle",{state:!0})}a.focus()}var h,i=this,j=a.settings;i.clipboard=h=new b(a),i.quirks=new d(a),i.wordFilter=new c(a),a.settings.paste_as_text&&(i.clipboard.pasteFormat="text"),j.paste_preprocess&&a.on("PastePreProcess",function(a){j.paste_preprocess.call(i,i,a)}),j.paste_postprocess&&a.on("PastePostProcess",function(a){j.paste_postprocess.call(i,i,a)}),a.addCommand("mceInsertClipboardContent",function(a,b){b.content&&i.clipboard.pasteHtml(b.content),b.text&&i.clipboard.pasteText(b.text)}),a.settings.paste_block_drop&&a.on("dragend dragover draggesture dragdrop drop drag",function(a){a.preventDefault(),a.stopPropagation()}),a.settings.paste_data_images||a.on("drop",function(a){var b=a.dataTransfer;b&&b.files&&b.files.length>0&&a.preventDefault()}),a.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:g,active:"text"==i.clipboard.pasteFormat}),a.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:h.pasteFormat,onclick:g})})}),f(["tinymce/pasteplugin/Utils"])}(this);
\ No newline at end of file
+!function(a,b){"use strict";function c(a,b){for(var c,d=[],f=0;f<a.length;++f){if(c=g[a[f]]||e(a[f]),!c)throw"module definition dependecy not found: "+a[f];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){g[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}function f(c){var d,e,f,h,i;for(d=0;d<c.length;d++){e=a,f=c[d],h=f.split(/[.\/]/);for(var j=0;j<h.length-1;++j)e[h[j]]===b&&(e[h[j]]={}),e=e[h[j]];e[h[h.length-1]]=g[f]}if(a.AMDLC_TESTS){i=a.privateModules||{};for(f in g)i[f]=g[f];for(d=0;d<c.length;d++)delete i[c[d]];a.privateModules=i}}var g={};d("tinymce/pasteplugin/Utils",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema"],function(a,b,c){function d(b,c){return a.each(c,function(a){b=a.constructor==RegExp?b.replace(a,""):b.replace(a[0],a[1])}),b}function e(e){function f(a){var b=a.name,c=a;if("br"===b)return void(i+="\n");if(j[b]&&(i+=" "),k[b])return void(i+=" ");if(3==a.type&&(i+=a.value),!a.shortEnded&&(a=a.firstChild))do f(a);while(a=a.next);l[b]&&c.next&&(i+="\n","p"==b&&(i+="\n"))}var g=new c,h=new b({},g),i="",j=g.getShortEndedElements(),k=a.makeMap("script noscript style textarea video audio iframe object"," "),l=g.getBlockElements();return e=d(e,[/<!\[[^\]]+\]>/g]),f(h.parse(e)),i}function f(a){function b(a,b,c){return b||c?"\xa0":" "}return a=d(a,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,b],/<br class="Apple-interchange-newline">/g,/<br>$/i])}function g(a){var b=0;return function(){return a+b++}}return{filter:d,innerText:e,trimHtml:f,createIdGenerator:g}}),d("tinymce/pasteplugin/SmartPaste",["tinymce/util/Tools"],function(a){var b=function(a){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(a)},c=function(a){return b(a)&&/.(gif|jpe?g|png)$/.test(a)},d=function(a,b,c){return a.undoManager.extra(function(){c(a,b)},function(){a.insertContent('<img src="'+b+'">')}),!0},e=function(a,b,c){return a.undoManager.extra(function(){c(a,b)},function(){a.execCommand("mceInsertLink",!1,b)}),!0},f=function(a,c,d){return a.selection.isCollapsed()===!1&&b(c)?e(a,c,d):!1},g=function(a,b,e){return c(b)?d(a,b,e):!1},h=function(a,b){return a.insertContent(b,{merge:a.settings.paste_merge_formats!==!1,paste:!0}),!0},i=function(b,c){a.each([f,g,h],function(a){return a(b,c,h)!==!0})},j=function(a,b){a.settings.smart_paste===!1?h(a,b):i(a,b)};return{isImageUrl:c,isAbsoluteUrl:b,insertContent:j}}),d("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/dom/RangeUtils","tinymce/util/VK","tinymce/pasteplugin/Utils","tinymce/pasteplugin/SmartPaste","tinymce/util/Delay"],function(a,b,c,d,e,f){return function(g){function h(a){var b,c=g.dom;if(b=g.fire("BeforePastePreProcess",{content:a}),b=g.fire("PastePreProcess",b),a=b.content,!b.isDefaultPrevented()){if(g.hasEventListeners("PastePostProcess")&&!b.isDefaultPrevented()){var d=c.add(g.getBody(),"div",{style:"display:none"},a);b=g.fire("PastePostProcess",{node:d}),c.remove(d),a=b.node.innerHTML}b.isDefaultPrevented()||e.insertContent(g,a)}}function i(a){a=g.dom.encode(a).replace(/\r\n/g,"\n");var b,c=g.dom.getParent(g.selection.getStart(),g.dom.isBlock),e=g.settings.forced_root_block;e&&(b=g.dom.createHTML(e,g.settings.forced_root_block_attrs),b=b.substr(0,b.length-3)+">"),c&&/^(PRE|DIV)$/.test(c.nodeName)||!e?a=d.filter(a,[[/\n/g,"<br>"]]):(a=d.filter(a,[[/\n\n/g,"</p>"+b],[/^(.*<\/p>)(<p>)$/,b+"$1"],[/\n/g,"<br />"]]),-1!=a.indexOf("<p>")&&(a=b+a)),h(a)}function j(){function b(a){var b,c,e,f=a.startContainer;if(b=a.getClientRects(),b.length)return b[0];if(a.collapsed&&1==f.nodeType){for(e=f.childNodes[z.startOffset];e&&3==e.nodeType&&!e.data.length;)e=e.nextSibling;if(e)return"BR"==e.tagName&&(c=d.doc.createTextNode("\ufeff"),e.parentNode.insertBefore(c,e),a=d.createRng(),a.setStartBefore(c),a.setEndAfter(c),b=a.getClientRects(),d.remove(c)),b.length?b[0]:void 0}}var c,d=g.dom,e=g.getBody(),f=g.dom.getViewPort(g.getWin()),h=f.y,i=20;if(z=g.selection.getRng(),g.inline&&(c=g.selection.getScrollContainer(),c&&c.scrollTop>0&&(h=c.scrollTop)),z.getClientRects){var j=b(z);if(j)i=h+(j.top-d.getPos(e).y);else{i=h;var k=z.startContainer;k&&(3==k.nodeType&&k.parentNode!=e&&(k=k.parentNode),1==k.nodeType&&(i=d.getPos(k,c||e).y))}}y=d.add(g.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+i+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},E),(a.ie||a.gecko)&&d.setStyle(y,"left","rtl"==d.getStyle(e,"direction",!0)?65535:-65535),d.bind(y,"beforedeactivate focusin focusout",function(a){a.stopPropagation()}),y.focus(),g.selection.select(y,!0)}function k(){if(y){for(var a;a=g.dom.get("mcepastebin");)g.dom.remove(a),g.dom.unbind(a);z&&g.selection.setRng(z)}y=z=null}function l(){var a,b,c,d,e="";for(a=g.dom.select("div[id=mcepastebin]"),b=0;b<a.length;b++)c=a[b],c.firstChild&&"mcepastebin"==c.firstChild.id&&(c=c.firstChild),d=c.innerHTML,e!=E&&(e+=d);return e}function m(a){var b={};if(a){if(a.getData){var c=a.getData("Text");c&&c.length>0&&-1==c.indexOf(F)&&(b["text/plain"]=c)}if(a.types)for(var d=0;d<a.types.length;d++){var e=a.types[d];b[e]=a.getData(e)}}return b}function n(a){return m(a.clipboardData||g.getDoc().dataTransfer)}function o(a){return v(a,"text/html")||v(a,"text/plain")}function p(a){var b;return b=a.indexOf(","),-1!==b?a.substr(b+1):null}function q(a,b){return a.images_dataimg_filter?a.images_dataimg_filter(b):!0}function r(a,b,c){a&&(g.selection.setRng(a),a=null);var d=b.result,e=p(d),f=new Image;if(f.src=d,q(g.settings,f)){var i,j,k=g.editorUpload.blobCache;j=k.findFirst(function(a){return a.base64()===e}),j?i=j:(i=k.create(G(),c,e),k.add(i)),h('<img src="'+i.blobUri()+'">')}else h('<img src="'+d+'">')}function s(a,b){function c(c){var d,e,f,g=!1;if(c)for(d=0;d<c.length;d++)if(e=c[d],/^image\/(jpeg|png|gif|bmp)$/.test(e.type)){var h=e.getAsFile?e.getAsFile():e;f=new FileReader,f.onload=r.bind(null,b,f,h),f.readAsDataURL(h),a.preventDefault(),g=!0}return g}var d=a.clipboardData||a.dataTransfer;return g.settings.paste_data_images&&d?c(d.items)||c(d.files):void 0}function t(a){var b=a.clipboardData;return-1!=navigator.userAgent.indexOf("Android")&&b&&b.items&&0===b.items.length}function u(a){return b.getCaretRangeFromPoint(a.clientX,a.clientY,g.getDoc())}function v(a,b){return b in a&&a[b].length>0}function w(a){return c.metaKeyPressed(a)&&86==a.keyCode||a.shiftKey&&45==a.keyCode}function x(){function b(a,b,c){var e;return v(a,"text/html")?e=a["text/html"]:(e=l(),e==E&&(c=!0)),e=d.trimHtml(e),y&&y.firstChild&&"mcepastebin"===y.firstChild.id&&(c=!0),k(),e.length||(c=!0),c&&(e=v(a,"text/plain")&&-1==e.indexOf("</p>")?a["text/plain"]:d.innerText(e)),e==E?void(b||g.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(c?i(e):h(e))}function c(a){return 0===a["text/plain"].indexOf("file://")}g.on("keydown",function(b){function c(a){w(a)&&!a.isDefaultPrevented()&&k()}if(w(b)&&!b.isDefaultPrevented()){if(A=b.shiftKey&&86==b.keyCode,A&&a.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(b.stopImmediatePropagation(),C=(new Date).getTime(),a.ie&&A)return b.preventDefault(),void g.fire("paste",{ieFake:!0});k(),j(),g.once("keyup",c),g.once("paste",function(){g.off("keyup",c)})}});var e=function(){return z||g.selection.getRng()};g.on("paste",function(c){var d=(new Date).getTime(),h=n(c),i=(new Date).getTime()-d,m=(new Date).getTime()-C-i<1e3,p="text"==B.pasteFormat||A;return A=!1,c.isDefaultPrevented()||t(c)?void k():!o(h)&&s(c,e())?void k():(m||c.preventDefault(),!a.ie||m&&!c.ieFake||(j(),g.dom.bind(y,"paste",function(a){a.stopPropagation()}),g.getDoc().execCommand("Paste",!1,null),h["text/html"]=l()),void(v(h,"text/html")?(c.preventDefault(),b(h,m,p)):f.setEditorTimeout(g,function(){b(h,m,p)},0)))}),g.on("dragstart dragend",function(a){D="dragstart"==a.type}),g.on("drop",function(a){var b,e;if(e=u(a),!a.isDefaultPrevented()&&!D&&(b=m(a.dataTransfer),(o(b)&&!c(b)||!s(a,e))&&e&&g.settings.paste_filter_drop!==!1)){var j=b["mce-internal"]||b["text/html"]||b["text/plain"];j&&(a.preventDefault(),f.setEditorTimeout(g,function(){g.undoManager.transact(function(){b["mce-internal"]&&g.execCommand("Delete"),g.selection.setRng(e),j=d.trimHtml(j),b["text/html"]?h(j):i(j)})}))}}),g.on("dragover dragend",function(a){g.settings.paste_data_images&&a.preventDefault()})}var y,z,A,B=this,C=0,D=!1,E="%MCEPASTEBIN%",F="data:text/mce-internal,",G=d.createIdGenerator("mceclip");B.pasteHtml=h,B.pasteText=i,B.pasteImageData=s,g.on("preInit",function(){x(),g.parser.addNodeFilter("img",function(b,c,d){function e(a){return a.data&&a.data.paste===!0}function f(b){b.attr("data-mce-object")||k===a.transparentSrc||b.remove()}function h(a){return 0===a.indexOf("webkit-fake-url")}function i(a){return 0===a.indexOf("data:")}if(!g.settings.paste_data_images&&e(d))for(var j=b.length;j--;){var k=b[j].attributes.map.src;k&&(h(k)?f(b[j]):!g.settings.allow_html_data_urls&&i(k)&&f(b[j]))}})})}}),d("tinymce/pasteplugin/WordFilter",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema","tinymce/html/Serializer","tinymce/html/Node","tinymce/pasteplugin/Utils"],function(a,b,c,d,e,f){function g(a){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(a)||/class="OutlineElement/.test(a)||/id="?docs\-internal\-guid\-/.test(a)}function h(b){var c,d;return d=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],b=b.replace(/^[\u00a0 ]+/,""),a.each(d,function(a){return a.test(b)?(c=!0,!1):void 0}),c}function i(a){return/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(a)}function j(j){var k=j.settings;j.on("BeforePastePreProcess",function(l){function m(a){function b(a){var c="";if(3===a.type)return a.value;if(a=a.firstChild)do c+=b(a);while(a=a.next);return c}function c(a,b){if(3===a.type&&b.test(a.value))return a.value=a.value.replace(b,""),!1;if(a=a.firstChild)do if(!c(a,b))return!1;while(a=a.next);return!0}function d(a){if(a._listIgnore)return void a.remove();if(a=a.firstChild)do d(a);while(a=a.next)}function f(a,b,f){var h=a._listLevel||k;h!=k&&(k>h?g&&(g=g.parent.parent):(j=g,g=null)),g&&g.name==b?g.append(a):(j=j||g,g=new e(b,1),f>1&&g.attr("start",""+f),a.wrap(g)),a.name="li",h>k&&j&&j.lastChild.append(g),k=h,d(a),c(a,/^\u00a0+/),c(a,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),c(a,/^\u00a0+/)}for(var g,j,k=1,l=[],m=a.firstChild;"undefined"!=typeof m&&null!==m;)if(l.push(m),m=m.walk(),null!==m)for(;"undefined"!=typeof m&&m.parent!==a;)m=m.walk();for(var n=0;n<l.length;n++)if(a=l[n],"p"==a.name&&a.firstChild){var o=b(a);if(i(o)){f(a,"ul");continue}if(h(o)){var p=/([0-9]+)\./.exec(o),q=1;p&&(q=parseInt(p[1],10)),f(a,"ol",q);continue}if(a._listLevel){f(a,"ul",1);continue}g=null}else j=g,g=null}function n(b,c){var d,f={},g=j.dom.parseStyle(c);return a.each(g,function(a,e){switch(e){case"mso-list":d=/\w+ \w+([0-9]+)/i.exec(c),d&&(b._listLevel=parseInt(d[1],10)),/Ignore/i.test(a)&&b.firstChild&&(b._listIgnore=!0,b.firstChild._listIgnore=!0);break;case"horiz-align":e="text-align";break;case"vert-align":e="vertical-align";break;case"font-color":case"mso-foreground":e="color";break;case"mso-background":case"mso-highlight":e="background";break;case"font-weight":case"font-style":return void("normal"!=a&&(f[e]=a));case"mso-element":if(/^(comment|comment-list)$/i.test(a))return void b.remove()}return 0===e.indexOf("mso-comment")?void b.remove():void(0!==e.indexOf("mso-")&&("all"==o||p&&p[e])&&(f[e]=a))}),/(bold)/i.test(f["font-weight"])&&(delete f["font-weight"],b.wrap(new e("b",1))),/(italic)/i.test(f["font-style"])&&(delete f["font-style"],b.wrap(new e("i",1))),f=j.dom.serializeStyle(f,b.name),f?f:null}var o,p,q=l.content;if(q=q.replace(/<b[^>]+id="?docs-internal-[^>]*>/gi,""),q=q.replace(/<br class="?Apple-interchange-newline"?>/gi,""),o=k.paste_retain_style_properties,o&&(p=a.makeMap(o.split(/[, ]/))),k.paste_enable_default_filters!==!1&&g(l.content)){l.wordContent=!0,q=f.filter(q,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(a,b){return b.length>0?b.replace(/./," ").slice(Math.floor(b.length/2)).split("").join("\xa0"):""}]]);var r=k.paste_word_valid_elements;r||(r="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody");var s=new c({valid_elements:r,valid_children:"-li[p]"});a.each(s.elements,function(a){a.attributes["class"]||(a.attributes["class"]={},a.attributesOrder.push("class")),a.attributes.style||(a.attributes.style={},a.attributesOrder.push("style"))});var t=new b({},s);t.addAttributeFilter("style",function(a){for(var b,c=a.length;c--;)b=a[c],b.attr("style",n(b,b.attr("style"))),"span"==b.name&&b.parent&&!b.attributes.length&&b.unwrap()}),t.addAttributeFilter("class",function(a){for(var b,c,d=a.length;d--;)b=a[d],c=b.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(c)&&b.remove(),b.attr("class",null)}),t.addNodeFilter("del",function(a){for(var b=a.length;b--;)a[b].remove()}),t.addNodeFilter("a",function(a){for(var b,c,d,e=a.length;e--;)if(b=a[e],c=b.attr("href"),d=b.attr("name"),c&&-1!=c.indexOf("#_msocom_"))b.remove();else if(c&&0===c.indexOf("file://")&&(c=c.split("#")[1],c&&(c="#"+c)),c||d){if(d&&!/^_?(?:toc|edn|ftn)/i.test(d)){b.unwrap();continue}b.attr({href:c,name:d})}else b.unwrap()});var u=t.parse(q);k.paste_convert_word_fake_lists!==!1&&m(u),l.content=new d({validate:k.validate},s).serialize(u)}})}return j.isWordContent=g,j}),d("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(a,b,c,d){return function(e){function f(a){e.on("BeforePastePreProcess",function(b){b.content=a(b.content)})}function g(a){if(!c.isWordContent(a))return a;var f=[];b.each(e.schema.getBlockElements(),function(a,b){f.push(b)});var g=new RegExp("(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*(<\\/?("+f.join("|")+")[^>]*>)(?:<br>&nbsp;[\\s\\r\\n]+|<br>)*","g");return a=d.filter(a,[[g,"$1"]]),a=d.filter(a,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function h(a){if(c.isWordContent(a))return a;var b=e.settings.paste_webkit_styles;if(e.settings.paste_remove_styles_if_webkit===!1||"all"==b)return a;if(b&&(b=b.split(/[, ]/)),b){var d=e.dom,f=e.selection.getNode();a=a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(a,c,e,g){var h=d.parseStyle(e,"span"),i={};if("none"===b)return c+g;for(var j=0;j<b.length;j++){var k=h[b[j]],l=d.getStyle(f,b[j],!0);/color/.test(b[j])&&(k=d.toHex(k),l=d.toHex(l)),l!=k&&(i[b[j]]=k)}return i=d.serializeStyle(i,"span"),i?c+' style="'+i+'"'+g:c+g})}else a=a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return a=a.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(a,b,c,d){return b+' style="'+c+'"'+d})}a.webkit&&f(h),a.ie&&f(g)}}),d("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(a,b,c,d){var e;a.add("paste",function(f){function g(){return e||f.settings.paste_plaintext_inform===!1}function h(){if("text"==i.pasteFormat)this.active(!1),i.pasteFormat="html",f.fire("PastePlainTextToggle",{state:!1});else if(i.pasteFormat="text",this.active(!0),!g()){var a=f.translate("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.");f.notificationManager.open({text:a,type:"info"}),e=!0,f.fire("PastePlainTextToggle",{state:!0})}f.focus()}var i,j=this,k=f.settings;return/(^|[ ,])powerpaste([, ]|$)/.test(k.plugins)&&a.get("powerpaste")?void("undefined"!=typeof console&&console.log&&console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option.")):(j.clipboard=i=new b(f),j.quirks=new d(f),j.wordFilter=new c(f),f.settings.paste_as_text&&(j.clipboard.pasteFormat="text"),k.paste_preprocess&&f.on("PastePreProcess",function(a){k.paste_preprocess.call(j,j,a)}),k.paste_postprocess&&f.on("PastePostProcess",function(a){k.paste_postprocess.call(j,j,a)}),f.addCommand("mceInsertClipboardContent",function(a,b){b.content&&j.clipboard.pasteHtml(b.content),b.text&&j.clipboard.pasteText(b.text)}),f.settings.paste_block_drop&&f.on("dragend dragover draggesture dragdrop drop drag",function(a){a.preventDefault(),a.stopPropagation()}),f.settings.paste_data_images||f.on("drop",function(a){var b=a.dataTransfer;b&&b.files&&b.files.length>0&&a.preventDefault()}),f.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:h,active:"text"==j.clipboard.pasteFormat}),void f.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:i.pasteFormat,onclick:h}))})}),f(["tinymce/pasteplugin/Utils"])}(this);
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/wordpress/plugin.js b/wp-includes/js/tinymce/plugins/wordpress/plugin.js
index b930e921f..a38a26d3d 100644
--- a/wp-includes/js/tinymce/plugins/wordpress/plugin.js
+++ b/wp-includes/js/tinymce/plugins/wordpress/plugin.js
@@ -131,10 +131,9 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
 			}
 
 			// Remove spaces from empty paragraphs.
-			// Avoid backtracking, can freeze the editor. See #35890.
-			// (This is also quite faster than using only one regex.)
+			// Try to avoid a lot of backtracking, can freeze the editor. See #35890 and #38294.
 			event.content = event.content.replace( /<p>([^<>]+)<\/p>/gi, function( tag, text ) {
-				if ( /^(&nbsp;|\s|\u00a0|\ufeff)+$/i.test( text ) ) {
+				if ( text === '&nbsp;' || ! /\S/.test( text ) ) {
 					return '<p><br /></p>';
 				}
 
@@ -231,48 +230,75 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
 			meta = tinymce.Env.mac ? __( 'Cmd + letter:' ) : __( 'Ctrl + letter:' ),
 			table1 = [],
 			table2 = [],
+			row1 = {},
+			row2 = {},
+			i1 = 0,
+			i2 = 0,
+			labels = editor.settings.wp_shortcut_labels,
 			header, html, dialog, $wrap;
 
-		each( [
-			{ c: 'Copy',      x: 'Cut'              },
-			{ v: 'Paste',     a: 'Select all'       },
-			{ z: 'Undo',      y: 'Redo'             },
-			{ b: 'Bold',      i: 'Italic'           },
-			{ u: 'Underline', k: 'Insert/edit link' }
-		], function( row ) {
-			table1.push( tr( row ) );
-		} );
-
-		each( [
-			{ 1: 'Heading 1',             2: 'Heading 2'                     },
-			{ 3: 'Heading 3',             4: 'Heading 4'                     },
-			{ 5: 'Heading 5',             6: 'Heading 6'                     },
-			{ l: 'Align left',            c: 'Align center'                  },
-			{ r: 'Align right',           j: 'Justify'                       },
-			{ d: 'Strikethrough',         q: 'Blockquote'                    },
-			{ u: 'Bullet list',           o: 'Numbered list'                 },
-			{ a: 'Insert/edit link',      s: 'Remove link'                   },
-			{ m: 'Insert/edit image',     t: 'Insert Read More tag'          },
-			{ h: 'Keyboard Shortcuts',    x: 'Code'                          },
-			{ p: 'Insert Page Break tag', w: 'Distraction-free writing mode' }
-		], function( row ) {
-			table2.push( tr( row ) );
-		} );
+		if ( ! labels ) {
+			return;
+		}
 
-		function tr( row ) {
+		function tr( row, columns ) {
 			var out = '<tr>';
+			var i = 0;
+
+			columns = columns || 1;
 
 			each( row, function( text, key ) {
-				if ( ! text ) {
-					out += '<td></td><td></td>';
-				} else {
-					out += '<td><kbd>' + key + '</kbd></td><td>' + __( text ) + '</td>';
-				}
+				out += '<td><kbd>' + key + '</kbd></td><td>' + __( text ) + '</td>';
+				i++;
 			});
 
+			while ( i < columns ) {
+				out += '<td></td><td></td>';
+				i++;
+			}
+
 			return out + '</tr>';
 		}
 
+		each ( labels, function( label, name ) {
+			var letter;
+
+			if ( label.indexOf( 'meta' ) !== -1 ) {
+				i1++;
+				letter = label.replace( 'meta', '' ).toLowerCase();
+
+				if ( letter ) {
+					row1[ letter ] = name;
+
+					if ( i1 % 2 === 0 ) {
+						table1.push( tr( row1, 2 ) );
+						row1 = {};
+					}
+				}
+			} else if ( label.indexOf( 'access' ) !== -1 ) {
+				i2++;
+				letter = label.replace( 'access', '' ).toLowerCase();
+
+				if ( letter ) {
+					row2[ letter ] = name;
+
+					if ( i2 % 2 === 0 ) {
+						table2.push( tr( row2, 2 ) );
+						row2 = {};
+					}
+				}
+			}
+		} );
+
+		// Add remaining single entries.
+		if ( i1 % 2 > 0 ) {
+			table1.push( tr( row1, 2 ) );
+		}
+
+		if ( i2 % 2 > 0 ) {
+			table2.push( tr( row2, 2 ) );
+		}
+
 		header = [ __( 'Letter' ), __( 'Action' ), __( 'Letter' ), __( 'Action' ) ];
 		header = '<tr><th>' + header.join( '</th><th>' ) + '</th></tr>';
 
@@ -521,6 +547,41 @@ tinymce.PluginManager.add( 'wordpress', function( editor ) {
 				});
 			});
 		}
+
+		if ( editor.settings.wp_shortcut_labels && editor.theme.panel ) {
+			var labels = {};
+			var access = 'Shift+Alt+';
+			var meta = 'Ctrl+';
+
+			// For Mac: ctrl = \u2303, cmd = \u2318, alt = \u2325
+
+			if ( tinymce.Env.mac ) {
+				access = '\u2303\u2325';
+				meta = '\u2318';
+			}
+
+			each( editor.settings.wp_shortcut_labels, function( value, name ) {
+				labels[ name ] = value.replace( 'access', access ).replace( 'meta', meta );
+			} );
+
+			each( editor.theme.panel.find('button'), function( button ) {
+				if ( button && button.settings.tooltip && labels.hasOwnProperty( button.settings.tooltip ) ) {
+					// Need to translate now. We are changing the string so it won't match and cannot be translated later.
+					button.settings.tooltip = editor.translate( button.settings.tooltip ) + ' (' + labels[ button.settings.tooltip ] + ')';
+				}
+			} );
+
+			// listbox for the "blocks" drop-down
+			each( editor.theme.panel.find('listbox'), function( listbox ) {
+				if ( listbox && listbox.settings.text === 'Paragraph' ) {
+					each( listbox.settings.values, function( item ) {
+						if ( item.text && labels.hasOwnProperty( item.text ) ) {
+							item.shortcut = '(' + labels[ item.text ] + ')';
+						}
+					} );
+				}
+			} );
+		}
 	});
 
 	editor.on( 'SaveContent', function( event ) {
diff --git a/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js b/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js
index f06f2faab..4a81d63ae 100644
--- a/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js
@@ -1 +1 @@
-!function(a){a.ui.FloatPanel.zIndex=100100,a.PluginManager.add("wordpress",function(b){function c(c){var d,f,i,j=0;f="hide"===c,b.theme.panel&&(i=b.theme.panel.find(".toolbar:not(.menubar)")),!i||i.length<2||"hide"===c&&!i[1].visible()||(!c&&i[1].visible()&&(c="hide"),h(i,function(a,b){b>0&&("hide"===c?(a.hide(),j+=30):(a.show(),j-=30))}),j&&!f&&(a.Env.iOS||(d=b.getContentAreaContainer().firstChild,g.setStyle(d,"height",d.clientHeight+j)),"hide"===c?(setUserSetting("hidetb","0"),e&&e.active(!1)):(setUserSetting("hidetb","1"),e&&e.active(!0))),b.fire("wp-toolbar-toggle"))}function d(){}var e,f,g=a.DOM,h=a.each,i=b.editorManager.i18n.translate,j=window.jQuery,k=window.wp,l=k&&k.editor&&k.editor.autop&&b.getParam("wpautop",!0);return j&&j(document).triggerHandler("tinymce-editor-setup",[b]),b.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){e=this,e.active("1"===getUserSetting("hidetb"))}}),b.on("PostRender",function(){b.getParam("wordpress_adv_hidden",!0)&&"0"===getUserSetting("hidetb","0")&&c("hide")}),b.addCommand("WP_Adv",function(){c()}),b.on("focus",function(){window.wpActiveEditor=b.id}),b.on("BeforeSetContent",function(b){var c;b.content&&(b.content.indexOf("<!--more")!==-1&&(c=i("Read more..."),b.content=b.content.replace(/<!--more(.*?)-->/g,function(b,d){return'<img src="'+a.Env.transparentSrc+'" data-wp-more="more" data-wp-more-text="'+d+'" class="wp-more-tag mce-wp-more" alt="" title="'+c+'" data-mce-resize="false" data-mce-placeholder="1" />'})),b.content.indexOf("<!--nextpage-->")!==-1&&(c=i("Page break"),b.content=b.content.replace(/<!--nextpage-->/g,'<img src="'+a.Env.transparentSrc+'" data-wp-more="nextpage" class="wp-more-tag mce-wp-nextpage" alt="" title="'+c+'" data-mce-resize="false" data-mce-placeholder="1" />')),b.load&&"raw"!==b.format&&l&&(b.content=k.editor.autop(b.content)),b.content.indexOf("<script")===-1&&b.content.indexOf("<style")===-1||(b.content=b.content.replace(/<(script|style)[^>]*>[\s\S]*?<\/\1>/g,function(b,c){return'<img src="'+a.Env.transparentSrc+'" data-wp-preserve="'+encodeURIComponent(b)+'" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;'+c+'&gt;" title="&lt;'+c+'&gt;" />'})),b.content=b.content.replace(/<p>([^<>]+)<\/p>/gi,function(a,b){return/^(&nbsp;|\s|\u00a0|\ufeff)+$/i.test(b)?"<p><br /></p>":a}))}),b.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/<img[^>]+>/g,function(a){var b,c,d="";return a.indexOf('data-wp-more="more"')!==-1?((b=a.match(/data-wp-more-text="([^"]+)"/))&&(d=b[1]),c="<!--more"+d+"-->"):a.indexOf('data-wp-more="nextpage"')!==-1?c="<!--nextpage-->":a.indexOf("data-wp-preserve")!==-1&&(b=a.match(/ data-wp-preserve="([^"]+)"/))&&(c=decodeURIComponent(b[1])),c||a}))}),b.on("ResolveName",function(a){var c;"IMG"===a.target.nodeName&&(c=b.dom.getAttrib(a.target,"data-wp-more"))&&(a.name=c)}),b.addCommand("WP_More",function(c){var d,e,f,g="wp-more-tag",h=b.dom,j=b.selection.getNode();return c=c||"more",g+=" mce-wp-"+c,f="more"===c?"Read more...":"Next page",f=i(f),e='<img src="'+a.Env.transparentSrc+'" alt="" title="'+f+'" class="'+g+'" data-wp-more="'+c+'" data-mce-resize="false" data-mce-placeholder="1" />',"BODY"===j.nodeName||"P"===j.nodeName&&"BODY"===j.parentNode.nodeName?void b.insertContent(e):(d=h.getParent(j,function(a){return!(!a.parentNode||"BODY"!==a.parentNode.nodeName)},b.getBody()),void(d&&("P"===d.nodeName?d.appendChild(h.create("p",null,e).firstChild):h.insertAfter(h.create("p",null,e),d),b.nodeChanged())))}),b.addCommand("WP_Code",function(){b.formatter.toggle("code")}),b.addCommand("WP_Page",function(){b.execCommand("WP_More","nextpage")}),b.addCommand("WP_Help",function(){function c(a){var b="<tr>";return h(a,function(a,c){b+=a?"<td><kbd>"+c+"</kbd></td><td>"+i(a)+"</td>":"<td></td><td></td>"}),b+"</tr>"}var d,e,f,g,j=i(a.Env.mac?"Ctrl + Alt + letter:":"Shift + Alt + letter:"),k=i(a.Env.mac?"Cmd + letter:":"Ctrl + letter:"),l=[],m=[];h([{c:"Copy",x:"Cut"},{v:"Paste",a:"Select all"},{z:"Undo",y:"Redo"},{b:"Bold",i:"Italic"},{u:"Underline",k:"Insert/edit link"}],function(a){l.push(c(a))}),h([{1:"Heading 1",2:"Heading 2"},{3:"Heading 3",4:"Heading 4"},{5:"Heading 5",6:"Heading 6"},{l:"Align left",c:"Align center"},{r:"Align right",j:"Justify"},{d:"Strikethrough",q:"Blockquote"},{u:"Bullet list",o:"Numbered list"},{a:"Insert/edit link",s:"Remove link"},{m:"Insert/edit image",t:"Insert Read More tag"},{h:"Keyboard Shortcuts",x:"Code"},{p:"Insert Page Break tag",w:"Distraction-free writing mode"}],function(a){m.push(c(a))}),d=[i("Letter"),i("Action"),i("Letter"),i("Action")],d="<tr><th>"+d.join("</th><th>")+"</th></tr>",e='<div class="wp-editor-help">',e=e+"<h2>"+i("Default shortcuts,")+" "+k+'</h2><table class="wp-help-th-center fixed">'+d+l.join("")+"</table><h2>"+i("Additional shortcuts,")+" "+j+'</h2><table class="wp-help-th-center fixed">'+d+m.join("")+"</table>",b.plugins.wptextpattern&&(!a.Env.ie||a.Env.ie>8)&&(e=e+"<h2>"+i("When starting a new paragraph with one of these formatting shortcuts followed by a space, the formatting will be applied automatically. Press Backspace or Escape to undo.")+'</h2><table class="wp-help-th-center fixed">'+c({"*":"Bullet list","1.":"Numbered list"})+c({"-":"Bullet list","1)":"Numbered list"})+"</table>",e=e+"<h2>"+i("The following formatting shortcuts are replaced when pressing Enter. Press Escape or the Undo button to undo.")+'</h2><table class="wp-help-single">'+c({">":"Blockquote"})+c({"##":"Heading 2"})+c({"###":"Heading 3"})+c({"####":"Heading 4"})+c({"#####":"Heading 5"})+c({"######":"Heading 6"})+c({"---":"Horizontal line"})+"</table>"),e=e+"<h2>"+i("Focus shortcuts:")+'</h2><table class="wp-help-single">'+c({"Alt + F8":"Inline toolbar (when an image, link or preview is selected)"})+c({"Alt + F9":"Editor menu (when enabled)"})+c({"Alt + F10":"Editor toolbar"})+c({"Alt + F11":"Elements path"})+"</table><p>"+i("To move focus to other buttons use Tab or the arrow keys. To return focus to the editor press Escape or use one of the buttons.")+"</p>",e+="</div>",f=b.windowManager.open({title:"Keyboard Shortcuts",items:{type:"container",classes:"wp-help",html:e},buttons:{text:"Close",onclick:"close"}}),f.$el&&(f.$el.find('div[role="application"]').attr("role","document"),g=f.$el.find(".mce-wp-help"),g[0]&&(g.attr("tabindex","0"),g[0].focus(),g.on("keydown",function(a){a.keyCode>=33&&a.keyCode<=40&&a.stopPropagation()})))}),b.addCommand("WP_Medialib",function(){k&&k.media&&k.media.editor&&k.media.editor.open(b.id)}),b.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){b.execCommand("WP_More","more")}}),b.addButton("wp_page",{tooltip:"Page break",onclick:function(){b.execCommand("WP_More","nextpage")}}),b.addButton("wp_help",{tooltip:"Keyboard Shortcuts",cmd:"WP_Help"}),b.addButton("wp_code",{tooltip:"Code",cmd:"WP_Code",stateSelector:"code"}),k&&k.media&&k.media.editor&&b.addMenuItem("add_media",{text:"Add Media",icon:"wp-media-library",context:"insert",cmd:"WP_Medialib"}),b.addMenuItem("wp_more",{text:"Insert Read More tag",icon:"wp_more",context:"insert",onclick:function(){b.execCommand("WP_More","more")}}),b.addMenuItem("wp_page",{text:"Page break",icon:"wp_page",context:"insert",onclick:function(){b.execCommand("WP_More","nextpage")}}),b.on("BeforeExecCommand",function(c){!a.Env.webkit||"InsertUnorderedList"!==c.command&&"InsertOrderedList"!==c.command||(f||(f=b.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),b.getDoc().head.appendChild(f))}),b.on("ExecCommand",function(c){a.Env.webkit&&f&&("InsertUnorderedList"===c.command||"InsertOrderedList"===c.command)&&b.dom.remove(f)}),b.on("init",function(){var c=a.Env,d=["mceContentBody"],e=b.getDoc(),f=b.dom;c.iOS&&f.addClass(e.documentElement,"ios"),"rtl"===b.getParam("directionality")&&(d.push("rtl"),f.setAttrib(e.documentElement,"dir","rtl")),f.setAttrib(e.documentElement,"lang",b.getParam("wp_lang_attr")),c.ie?9===parseInt(c.ie,10)?d.push("ie9"):8===parseInt(c.ie,10)?d.push("ie8"):c.ie<8&&d.push("ie7"):c.webkit&&d.push("webkit"),d.push("wp-editor"),h(d,function(a){a&&f.addClass(e.body,a)}),b.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre)( [^>]*)?>/gi,"<$1$2>").replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre)>\s*<\/p>/gi,"</$1>"))}),j&&j(document).triggerHandler("tinymce-editor-init",[b]),window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&f.bind(e,"dragstart dragend dragover drop",function(a){j&&j(document).trigger(new j.Event(a))}),b.getParam("wp_paste_filters",!0)&&(b.on("PastePreProcess",function(b){b.content=b.content.replace(/<br class="?Apple-interchange-newline"?>/gi,""),a.Env.webkit||(b.content=b.content.replace(/(<[^>]+) style="[^"]*"([^>]*>)/gi,"$1$2"),b.content=b.content.replace(/(<[^>]+) data-mce-style=([^>]+>)/gi,"$1 style=$2"))}),b.on("PastePostProcess",function(a){h(f.select("p",a.node),function(a){f.isEmpty(a)&&f.remove(a)})}))}),b.on("SaveContent",function(a){return!b.inline&&b.isHidden()?void(a.content=a.element.value):(a.content=a.content.replace(/<p>(?:<br ?\/?>|\u00a0|\uFEFF| )*<\/p>/g,"<p>&nbsp;</p>"),void(l&&(a.content=k.editor.removep(a.content))))}),b.on("preInit",function(){var c="@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b,script[src|async|defer|type|charset|crossorigin|integrity]";b.schema.addValidElements(c),a.Env.iOS&&(b.settings.height=300),h({c:"JustifyCenter",r:"JustifyRight",l:"JustifyLeft",j:"JustifyFull",q:"mceBlockQuote",u:"InsertUnorderedList",o:"InsertOrderedList",m:"WP_Medialib",z:"WP_Adv",t:"WP_More",d:"Strikethrough",h:"WP_Help",p:"WP_Page",x:"WP_Code"},function(a,c){b.shortcuts.add("access+"+c,"",a)}),b.addShortcut("meta+s","",function(){k&&k.autosave&&k.autosave.server.triggerSave()}),window.getUserSetting("editor_plain_text_paste_warning")>1&&(b.settings.paste_plaintext_inform=!1),a.Env.mac&&a.$(b.iframeElement).attr("title",i("Rich Text Area. Press Control-Option-H for help."))}),b.on("PastePlainTextToggle",function(a){if(a.state===!0){var b=parseInt(window.getUserSetting("editor_plain_text_paste_warning"),10)||0;b<2&&window.setUserSetting("editor_plain_text_paste_warning",++b)}}),b.on("preinit",function(){function c(c,d){function e(){if(!f)return this;var b,c,d=window.pageXOffset||document.documentElement.scrollLeft,e=window.pageYOffset||document.documentElement.scrollTop,h=window.innerWidth,i=window.innerHeight,m=q?q.getBoundingClientRect():{top:0,right:h,bottom:i,left:0,width:h,height:i},n=this.getEl(),o=n.offsetWidth,r=n.clientHeight,s=f.getBoundingClientRect(),t=(s.left+s.right)/2,u=5,v=r+u,w=p?p.getBoundingClientRect().bottom:0,x=j?j.getBoundingClientRect().bottom:0,y=k?i-k.getBoundingClientRect().top:0,z=l?i-l.getBoundingClientRect().top:0,A=Math.max(0,w,x,m.top),B=Math.max(0,y,z,i-m.bottom),C=s.top+m.top-A,D=i-m.top-s.bottom-B,E=i-A-B,F="",G=0,H=0;return C>=E||D>=E?(this.scrolling=!0,this.hide(),this.scrolling=!1,this):(a.Env.iOS&&"IMG"===f.nodeName&&(G=54,H=46),this.bottom?D>=v?(F=" mce-arrow-up",b=s.bottom+m.top+e-H):C>=v&&(F=" mce-arrow-down",b=s.top+m.top+e-r+G):C>=v?(F=" mce-arrow-down",b=s.top+m.top+e-r+G):D>=v&&E/2>s.bottom+m.top-A&&(F=" mce-arrow-up",b=s.bottom+m.top+e-H),"undefined"==typeof b&&(b=e+A+u+H),c=t-o/2+m.left+d,s.left<0||s.right>m.width?c=m.left+d+(m.width-o)/2:o>=h?(F+=" mce-arrow-full",c=0):c<0&&s.left+o>h||c+o>h&&s.right-o<0?c=(h-o)/2:c<m.left+d?(F+=" mce-arrow-left",c=s.left+m.left+d):c+o>m.width+m.left+d&&(F+=" mce-arrow-right",c=s.right-o+m.left+d),a.Env.iOS&&"IMG"===f.nodeName&&(F=F.replace(/ ?mce-arrow-(up|down)/g,"")),n.className=n.className.replace(/ ?mce-arrow-[\w]+/g,"")+F,g.setStyles(n,{left:c,top:b}),this)}var i,o,r=[];return h(c,function(a){function c(){var c=b.selection;"bullist"===d&&c.selectorChanged("ul > li",function(b,c){for(var d,e=c.parents.length;e--&&(d=c.parents[e].nodeName,"OL"!==d&&"UL"!=d););a.active(b&&"UL"===d)}),"numlist"===d&&c.selectorChanged("ol > li",function(b,c){for(var d,e=c.parents.length;e--&&(d=c.parents[e].nodeName,"OL"!==d&&"UL"!==d););a.active(b&&"OL"===d)}),a.settings.stateSelector&&c.selectorChanged(a.settings.stateSelector,function(b){a.active(b)},!0),a.settings.disabledStateSelector&&c.selectorChanged(a.settings.disabledStateSelector,function(b){a.disabled(b)})}var d;"|"===a?o=null:m.has(a)?(a={type:a},n.toolbar_items_size&&(a.size=n.toolbar_items_size),r.push(a),o=null):(o||(o={type:"buttongroup",items:[]},r.push(o)),b.buttons[a]&&(d=a,a=b.buttons[d],"function"==typeof a&&(a=a()),a.type=a.type||"button",n.toolbar_items_size&&(a.size=n.toolbar_items_size),a=m.create(a),o.items.push(a),b.initialized?c():b.on("init",c)))}),i=m.create({type:"panel",layout:"stack",classes:"toolbar-grp inline-toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:[{type:"toolbar",layout:"flow",items:r}]}),i.bottom=d,i.on("show",function(){this.reposition()}),i.on("keydown",function(a){27===a.keyCode&&(this.hide(),b.focus())}),b.on("remove",function(){i.remove()}),i.reposition=e,i.hide().renderTo(document.body),i}function d(a){e&&(e.tempHide||"hide"===a.type?(e.hide(),e=!1):"resizewindow"!==a.type&&"scrollwindow"!==a.type&&"resize"!==a.type&&"scroll"!==a.type||e.blockHide||(clearTimeout(i),i=setTimeout(function(){e&&"function"==typeof e.show&&(e.scrolling=!1,e.show())},250),e.scrolling=!0,e.hide()))}var e,f,i,j,k,l,m=a.ui.Factory,n=b.settings,o=b.getContainer(),p=document.getElementById("wpadminbar"),q=document.getElementById(b.id+"_ifr");o&&(j=a.$(".mce-toolbar-grp",o)[0],k=a.$(".mce-statusbar",o)[0]),"content"===b.id&&(l=document.getElementById("post-status-info")),b.shortcuts.add("alt+119","",function(){var a;e&&(a=e.find("toolbar")[0],a&&a.focus(!0))}),b.on("nodechange",function(a){var c=b.selection.isCollapsed(),d={element:a.element,parents:a.parents,collapsed:c};b.fire("wptoolbar",d),f=d.selection||d.element,e&&e!==d.toolbar&&e.hide(),d.toolbar?e!==d.toolbar?(e=d.toolbar,e.show()):e.reposition():e=!1}),b.on("focus",function(){e&&e.show()}),b.on("resizewindow scrollwindow",d),b.dom.bind(b.getWin(),"resize scroll",d),b.on("remove",function(){b.off("resizewindow scrollwindow",d),b.dom.unbind(b.getWin(),"resize scroll",d)}),b.on("blur hide",d),b.wp=b.wp||{},b.wp._createToolbar=c},!0),{_showButtons:d,_hideButtons:d,_setEmbed:d,_getEmbed:d}})}(window.tinymce);
\ No newline at end of file
+!function(a){a.ui.FloatPanel.zIndex=100100,a.PluginManager.add("wordpress",function(b){function c(c){var d,f,i,j=0;f="hide"===c,b.theme.panel&&(i=b.theme.panel.find(".toolbar:not(.menubar)")),!i||i.length<2||"hide"===c&&!i[1].visible()||(!c&&i[1].visible()&&(c="hide"),h(i,function(a,b){b>0&&("hide"===c?(a.hide(),j+=30):(a.show(),j-=30))}),j&&!f&&(a.Env.iOS||(d=b.getContentAreaContainer().firstChild,g.setStyle(d,"height",d.clientHeight+j)),"hide"===c?(setUserSetting("hidetb","0"),e&&e.active(!1)):(setUserSetting("hidetb","1"),e&&e.active(!0))),b.fire("wp-toolbar-toggle"))}function d(){}var e,f,g=a.DOM,h=a.each,i=b.editorManager.i18n.translate,j=window.jQuery,k=window.wp,l=k&&k.editor&&k.editor.autop&&b.getParam("wpautop",!0);return j&&j(document).triggerHandler("tinymce-editor-setup",[b]),b.addButton("wp_adv",{tooltip:"Toolbar Toggle",cmd:"WP_Adv",onPostRender:function(){e=this,e.active("1"===getUserSetting("hidetb"))}}),b.on("PostRender",function(){b.getParam("wordpress_adv_hidden",!0)&&"0"===getUserSetting("hidetb","0")&&c("hide")}),b.addCommand("WP_Adv",function(){c()}),b.on("focus",function(){window.wpActiveEditor=b.id}),b.on("BeforeSetContent",function(b){var c;b.content&&(b.content.indexOf("<!--more")!==-1&&(c=i("Read more..."),b.content=b.content.replace(/<!--more(.*?)-->/g,function(b,d){return'<img src="'+a.Env.transparentSrc+'" data-wp-more="more" data-wp-more-text="'+d+'" class="wp-more-tag mce-wp-more" alt="" title="'+c+'" data-mce-resize="false" data-mce-placeholder="1" />'})),b.content.indexOf("<!--nextpage-->")!==-1&&(c=i("Page break"),b.content=b.content.replace(/<!--nextpage-->/g,'<img src="'+a.Env.transparentSrc+'" data-wp-more="nextpage" class="wp-more-tag mce-wp-nextpage" alt="" title="'+c+'" data-mce-resize="false" data-mce-placeholder="1" />')),b.load&&"raw"!==b.format&&l&&(b.content=k.editor.autop(b.content)),b.content.indexOf("<script")===-1&&b.content.indexOf("<style")===-1||(b.content=b.content.replace(/<(script|style)[^>]*>[\s\S]*?<\/\1>/g,function(b,c){return'<img src="'+a.Env.transparentSrc+'" data-wp-preserve="'+encodeURIComponent(b)+'" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;'+c+'&gt;" title="&lt;'+c+'&gt;" />'})),b.content=b.content.replace(/<p>([^<>]+)<\/p>/gi,function(a,b){return"&nbsp;"!==b&&/\S/.test(b)?a:"<p><br /></p>"}))}),b.on("PostProcess",function(a){a.get&&(a.content=a.content.replace(/<img[^>]+>/g,function(a){var b,c,d="";return a.indexOf('data-wp-more="more"')!==-1?((b=a.match(/data-wp-more-text="([^"]+)"/))&&(d=b[1]),c="<!--more"+d+"-->"):a.indexOf('data-wp-more="nextpage"')!==-1?c="<!--nextpage-->":a.indexOf("data-wp-preserve")!==-1&&(b=a.match(/ data-wp-preserve="([^"]+)"/))&&(c=decodeURIComponent(b[1])),c||a}))}),b.on("ResolveName",function(a){var c;"IMG"===a.target.nodeName&&(c=b.dom.getAttrib(a.target,"data-wp-more"))&&(a.name=c)}),b.addCommand("WP_More",function(c){var d,e,f,g="wp-more-tag",h=b.dom,j=b.selection.getNode();return c=c||"more",g+=" mce-wp-"+c,f="more"===c?"Read more...":"Next page",f=i(f),e='<img src="'+a.Env.transparentSrc+'" alt="" title="'+f+'" class="'+g+'" data-wp-more="'+c+'" data-mce-resize="false" data-mce-placeholder="1" />',"BODY"===j.nodeName||"P"===j.nodeName&&"BODY"===j.parentNode.nodeName?void b.insertContent(e):(d=h.getParent(j,function(a){return!(!a.parentNode||"BODY"!==a.parentNode.nodeName)},b.getBody()),void(d&&("P"===d.nodeName?d.appendChild(h.create("p",null,e).firstChild):h.insertAfter(h.create("p",null,e),d),b.nodeChanged())))}),b.addCommand("WP_Code",function(){b.formatter.toggle("code")}),b.addCommand("WP_Page",function(){b.execCommand("WP_More","nextpage")}),b.addCommand("WP_Help",function(){function c(a,b){var c="<tr>",d=0;for(b=b||1,h(a,function(a,b){c+="<td><kbd>"+b+"</kbd></td><td>"+i(a)+"</td>",d++});d<b;)c+="<td></td><td></td>",d++;return c+"</tr>"}var d,e,f,g,j=i(a.Env.mac?"Ctrl + Alt + letter:":"Shift + Alt + letter:"),k=i(a.Env.mac?"Cmd + letter:":"Ctrl + letter:"),l=[],m=[],n={},o={},p=0,q=0,r=b.settings.wp_shortcut_labels;r&&(h(r,function(a,b){var d;a.indexOf("meta")!==-1?(p++,d=a.replace("meta","").toLowerCase(),d&&(n[d]=b,p%2===0&&(l.push(c(n,2)),n={}))):a.indexOf("access")!==-1&&(q++,d=a.replace("access","").toLowerCase(),d&&(o[d]=b,q%2===0&&(m.push(c(o,2)),o={})))}),p%2>0&&l.push(c(n,2)),q%2>0&&m.push(c(o,2)),d=[i("Letter"),i("Action"),i("Letter"),i("Action")],d="<tr><th>"+d.join("</th><th>")+"</th></tr>",e='<div class="wp-editor-help">',e=e+"<h2>"+i("Default shortcuts,")+" "+k+'</h2><table class="wp-help-th-center fixed">'+d+l.join("")+"</table><h2>"+i("Additional shortcuts,")+" "+j+'</h2><table class="wp-help-th-center fixed">'+d+m.join("")+"</table>",b.plugins.wptextpattern&&(!a.Env.ie||a.Env.ie>8)&&(e=e+"<h2>"+i("When starting a new paragraph with one of these formatting shortcuts followed by a space, the formatting will be applied automatically. Press Backspace or Escape to undo.")+'</h2><table class="wp-help-th-center fixed">'+c({"*":"Bullet list","1.":"Numbered list"})+c({"-":"Bullet list","1)":"Numbered list"})+"</table>",e=e+"<h2>"+i("The following formatting shortcuts are replaced when pressing Enter. Press Escape or the Undo button to undo.")+'</h2><table class="wp-help-single">'+c({">":"Blockquote"})+c({"##":"Heading 2"})+c({"###":"Heading 3"})+c({"####":"Heading 4"})+c({"#####":"Heading 5"})+c({"######":"Heading 6"})+c({"---":"Horizontal line"})+"</table>"),e=e+"<h2>"+i("Focus shortcuts:")+'</h2><table class="wp-help-single">'+c({"Alt + F8":"Inline toolbar (when an image, link or preview is selected)"})+c({"Alt + F9":"Editor menu (when enabled)"})+c({"Alt + F10":"Editor toolbar"})+c({"Alt + F11":"Elements path"})+"</table><p>"+i("To move focus to other buttons use Tab or the arrow keys. To return focus to the editor press Escape or use one of the buttons.")+"</p>",e+="</div>",f=b.windowManager.open({title:"Keyboard Shortcuts",items:{type:"container",classes:"wp-help",html:e},buttons:{text:"Close",onclick:"close"}}),f.$el&&(f.$el.find('div[role="application"]').attr("role","document"),g=f.$el.find(".mce-wp-help"),g[0]&&(g.attr("tabindex","0"),g[0].focus(),g.on("keydown",function(a){a.keyCode>=33&&a.keyCode<=40&&a.stopPropagation()}))))}),b.addCommand("WP_Medialib",function(){k&&k.media&&k.media.editor&&k.media.editor.open(b.id)}),b.addButton("wp_more",{tooltip:"Insert Read More tag",onclick:function(){b.execCommand("WP_More","more")}}),b.addButton("wp_page",{tooltip:"Page break",onclick:function(){b.execCommand("WP_More","nextpage")}}),b.addButton("wp_help",{tooltip:"Keyboard Shortcuts",cmd:"WP_Help"}),b.addButton("wp_code",{tooltip:"Code",cmd:"WP_Code",stateSelector:"code"}),k&&k.media&&k.media.editor&&b.addMenuItem("add_media",{text:"Add Media",icon:"wp-media-library",context:"insert",cmd:"WP_Medialib"}),b.addMenuItem("wp_more",{text:"Insert Read More tag",icon:"wp_more",context:"insert",onclick:function(){b.execCommand("WP_More","more")}}),b.addMenuItem("wp_page",{text:"Page break",icon:"wp_page",context:"insert",onclick:function(){b.execCommand("WP_More","nextpage")}}),b.on("BeforeExecCommand",function(c){!a.Env.webkit||"InsertUnorderedList"!==c.command&&"InsertOrderedList"!==c.command||(f||(f=b.dom.create("style",{type:"text/css"},"#tinymce,#tinymce span,#tinymce li,#tinymce li>span,#tinymce p,#tinymce p>span{font:medium sans-serif;color:#000;line-height:normal;}")),b.getDoc().head.appendChild(f))}),b.on("ExecCommand",function(c){a.Env.webkit&&f&&("InsertUnorderedList"===c.command||"InsertOrderedList"===c.command)&&b.dom.remove(f)}),b.on("init",function(){var c=a.Env,d=["mceContentBody"],e=b.getDoc(),f=b.dom;if(c.iOS&&f.addClass(e.documentElement,"ios"),"rtl"===b.getParam("directionality")&&(d.push("rtl"),f.setAttrib(e.documentElement,"dir","rtl")),f.setAttrib(e.documentElement,"lang",b.getParam("wp_lang_attr")),c.ie?9===parseInt(c.ie,10)?d.push("ie9"):8===parseInt(c.ie,10)?d.push("ie8"):c.ie<8&&d.push("ie7"):c.webkit&&d.push("webkit"),d.push("wp-editor"),h(d,function(a){a&&f.addClass(e.body,a)}),b.on("BeforeSetContent",function(a){a.content&&(a.content=a.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre)( [^>]*)?>/gi,"<$1$2>").replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre)>\s*<\/p>/gi,"</$1>"))}),j&&j(document).triggerHandler("tinymce-editor-init",[b]),window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&f.bind(e,"dragstart dragend dragover drop",function(a){j&&j(document).trigger(new j.Event(a))}),b.getParam("wp_paste_filters",!0)&&(b.on("PastePreProcess",function(b){b.content=b.content.replace(/<br class="?Apple-interchange-newline"?>/gi,""),a.Env.webkit||(b.content=b.content.replace(/(<[^>]+) style="[^"]*"([^>]*>)/gi,"$1$2"),b.content=b.content.replace(/(<[^>]+) data-mce-style=([^>]+>)/gi,"$1 style=$2"))}),b.on("PastePostProcess",function(a){h(f.select("p",a.node),function(a){f.isEmpty(a)&&f.remove(a)})})),b.settings.wp_shortcut_labels&&b.theme.panel){var g={},i="Shift+Alt+",k="Ctrl+";a.Env.mac&&(i="\u2303\u2325",k="\u2318"),h(b.settings.wp_shortcut_labels,function(a,b){g[b]=a.replace("access",i).replace("meta",k)}),h(b.theme.panel.find("button"),function(a){a&&a.settings.tooltip&&g.hasOwnProperty(a.settings.tooltip)&&(a.settings.tooltip=b.translate(a.settings.tooltip)+" ("+g[a.settings.tooltip]+")")}),h(b.theme.panel.find("listbox"),function(a){a&&"Paragraph"===a.settings.text&&h(a.settings.values,function(a){a.text&&g.hasOwnProperty(a.text)&&(a.shortcut="("+g[a.text]+")")})})}}),b.on("SaveContent",function(a){return!b.inline&&b.isHidden()?void(a.content=a.element.value):(a.content=a.content.replace(/<p>(?:<br ?\/?>|\u00a0|\uFEFF| )*<\/p>/g,"<p>&nbsp;</p>"),void(l&&(a.content=k.editor.removep(a.content))))}),b.on("preInit",function(){var c="@[id|accesskey|class|dir|lang|style|tabindex|title|contenteditable|draggable|dropzone|hidden|spellcheck|translate],i,b,script[src|async|defer|type|charset|crossorigin|integrity]";b.schema.addValidElements(c),a.Env.iOS&&(b.settings.height=300),h({c:"JustifyCenter",r:"JustifyRight",l:"JustifyLeft",j:"JustifyFull",q:"mceBlockQuote",u:"InsertUnorderedList",o:"InsertOrderedList",m:"WP_Medialib",z:"WP_Adv",t:"WP_More",d:"Strikethrough",h:"WP_Help",p:"WP_Page",x:"WP_Code"},function(a,c){b.shortcuts.add("access+"+c,"",a)}),b.addShortcut("meta+s","",function(){k&&k.autosave&&k.autosave.server.triggerSave()}),window.getUserSetting("editor_plain_text_paste_warning")>1&&(b.settings.paste_plaintext_inform=!1),a.Env.mac&&a.$(b.iframeElement).attr("title",i("Rich Text Area. Press Control-Option-H for help."))}),b.on("PastePlainTextToggle",function(a){if(a.state===!0){var b=parseInt(window.getUserSetting("editor_plain_text_paste_warning"),10)||0;b<2&&window.setUserSetting("editor_plain_text_paste_warning",++b)}}),b.on("preinit",function(){function c(c,d){function e(){if(!f)return this;var b,c,d=window.pageXOffset||document.documentElement.scrollLeft,e=window.pageYOffset||document.documentElement.scrollTop,h=window.innerWidth,i=window.innerHeight,m=q?q.getBoundingClientRect():{top:0,right:h,bottom:i,left:0,width:h,height:i},n=this.getEl(),o=n.offsetWidth,r=n.clientHeight,s=f.getBoundingClientRect(),t=(s.left+s.right)/2,u=5,v=r+u,w=p?p.getBoundingClientRect().bottom:0,x=j?j.getBoundingClientRect().bottom:0,y=k?i-k.getBoundingClientRect().top:0,z=l?i-l.getBoundingClientRect().top:0,A=Math.max(0,w,x,m.top),B=Math.max(0,y,z,i-m.bottom),C=s.top+m.top-A,D=i-m.top-s.bottom-B,E=i-A-B,F="",G=0,H=0;return C>=E||D>=E?(this.scrolling=!0,this.hide(),this.scrolling=!1,this):(a.Env.iOS&&"IMG"===f.nodeName&&(G=54,H=46),this.bottom?D>=v?(F=" mce-arrow-up",b=s.bottom+m.top+e-H):C>=v&&(F=" mce-arrow-down",b=s.top+m.top+e-r+G):C>=v?(F=" mce-arrow-down",b=s.top+m.top+e-r+G):D>=v&&E/2>s.bottom+m.top-A&&(F=" mce-arrow-up",b=s.bottom+m.top+e-H),"undefined"==typeof b&&(b=e+A+u+H),c=t-o/2+m.left+d,s.left<0||s.right>m.width?c=m.left+d+(m.width-o)/2:o>=h?(F+=" mce-arrow-full",c=0):c<0&&s.left+o>h||c+o>h&&s.right-o<0?c=(h-o)/2:c<m.left+d?(F+=" mce-arrow-left",c=s.left+m.left+d):c+o>m.width+m.left+d&&(F+=" mce-arrow-right",c=s.right-o+m.left+d),a.Env.iOS&&"IMG"===f.nodeName&&(F=F.replace(/ ?mce-arrow-(up|down)/g,"")),n.className=n.className.replace(/ ?mce-arrow-[\w]+/g,"")+F,g.setStyles(n,{left:c,top:b}),this)}var i,o,r=[];return h(c,function(a){function c(){var c=b.selection;"bullist"===d&&c.selectorChanged("ul > li",function(b,c){for(var d,e=c.parents.length;e--&&(d=c.parents[e].nodeName,"OL"!==d&&"UL"!=d););a.active(b&&"UL"===d)}),"numlist"===d&&c.selectorChanged("ol > li",function(b,c){for(var d,e=c.parents.length;e--&&(d=c.parents[e].nodeName,"OL"!==d&&"UL"!==d););a.active(b&&"OL"===d)}),a.settings.stateSelector&&c.selectorChanged(a.settings.stateSelector,function(b){a.active(b)},!0),a.settings.disabledStateSelector&&c.selectorChanged(a.settings.disabledStateSelector,function(b){a.disabled(b)})}var d;"|"===a?o=null:m.has(a)?(a={type:a},n.toolbar_items_size&&(a.size=n.toolbar_items_size),r.push(a),o=null):(o||(o={type:"buttongroup",items:[]},r.push(o)),b.buttons[a]&&(d=a,a=b.buttons[d],"function"==typeof a&&(a=a()),a.type=a.type||"button",n.toolbar_items_size&&(a.size=n.toolbar_items_size),a=m.create(a),o.items.push(a),b.initialized?c():b.on("init",c)))}),i=m.create({type:"panel",layout:"stack",classes:"toolbar-grp inline-toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:[{type:"toolbar",layout:"flow",items:r}]}),i.bottom=d,i.on("show",function(){this.reposition()}),i.on("keydown",function(a){27===a.keyCode&&(this.hide(),b.focus())}),b.on("remove",function(){i.remove()}),i.reposition=e,i.hide().renderTo(document.body),i}function d(a){e&&(e.tempHide||"hide"===a.type?(e.hide(),e=!1):"resizewindow"!==a.type&&"scrollwindow"!==a.type&&"resize"!==a.type&&"scroll"!==a.type||e.blockHide||(clearTimeout(i),i=setTimeout(function(){e&&"function"==typeof e.show&&(e.scrolling=!1,e.show())},250),e.scrolling=!0,e.hide()))}var e,f,i,j,k,l,m=a.ui.Factory,n=b.settings,o=b.getContainer(),p=document.getElementById("wpadminbar"),q=document.getElementById(b.id+"_ifr");o&&(j=a.$(".mce-toolbar-grp",o)[0],k=a.$(".mce-statusbar",o)[0]),"content"===b.id&&(l=document.getElementById("post-status-info")),b.shortcuts.add("alt+119","",function(){var a;e&&(a=e.find("toolbar")[0],a&&a.focus(!0))}),b.on("nodechange",function(a){var c=b.selection.isCollapsed(),d={element:a.element,parents:a.parents,collapsed:c};b.fire("wptoolbar",d),f=d.selection||d.element,e&&e!==d.toolbar&&e.hide(),d.toolbar?e!==d.toolbar?(e=d.toolbar,e.show()):e.reposition():e=!1}),b.on("focus",function(){e&&e.show()}),b.on("resizewindow scrollwindow",d),b.dom.bind(b.getWin(),"resize scroll",d),b.on("remove",function(){b.off("resizewindow scrollwindow",d),b.dom.unbind(b.getWin(),"resize scroll",d)}),b.on("blur hide",d),b.wp=b.wp||{},b.wp._createToolbar=c},!0),{_showButtons:d,_hideButtons:d,_setEmbed:d,_getEmbed:d}})}(window.tinymce);
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js b/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
index 890da1c2c..25d335626 100644
--- a/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
+++ b/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
@@ -1,6 +1,6 @@
 /* global tinymce */
 tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
-	var toolbar, serializer, touchOnImage,
+	var toolbar, serializer, touchOnImage, pasteInCaption,
 		each = tinymce.each,
 		trim = tinymce.trim,
 		iOS = tinymce.Env.iOS;
@@ -181,16 +181,10 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 		return content.replace( /(?:<div [^>]+mceTemp[^>]+>)?\s*(<dl [^>]+wp-caption[^>]+>[\s\S]+?<\/dl>)\s*(?:<\/div>)?/g, function( all, dl ) {
 			var out = '';
 
-			if ( dl.indexOf('<img ') === -1 ) {
-				// Broken caption. The user managed to drag the image out?
-				// Try to return the caption text as a paragraph.
-				out = dl.match( /<dd [^>]+>([\s\S]+?)<\/dd>/i );
-
-				if ( out && out[1] ) {
-					return '<p>' + out[1] + '</p>';
-				}
-
-				return '';
+			if ( dl.indexOf('<img ') === -1 || dl.indexOf('</p>') !== -1 ) {
+				// Broken caption. The user managed to drag the image out or type in the wrapper div?
+				// Remove the <dl>, <dd> and <dt> and return the remaining text.
+				return dl.replace( /<d[ldt]( [^>]+)?>/g, '' ).replace( /<\/d[ldt]>/g, '' );
 			}
 
 			out = dl.replace( /\s*<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>\s*/gi, function( a, b, c, caption ) {
@@ -630,7 +624,8 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 				captionId = '',
 				captionAlign = '',
 				captionWidth = '',
-				wrap, parent, node, html, imgId;
+				imgId = null,
+				wrap, parent, node, html;
 
 			// Temp image id so we can find the node later
 			data.id = '__wp-temp-img-id';
@@ -796,7 +791,7 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 			}
 
 			imgNode = dom.get('__wp-temp-img-id');
-			dom.setAttrib( imgNode, 'id', imgId );
+			dom.setAttrib( imgNode, 'id', imgId || null );
 			event.imgData.node = imgNode;
 		});
 
@@ -856,21 +851,73 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 				}
 			});
 		}
-    });
+	});
+
+	editor.on( 'pastePostProcess', function( event ) {
+		// Pasting in a caption node.
+		if ( editor.dom.getParent( editor.selection.getNode(), 'dd.wp-caption-dd' ) ) {
+			// Remove "non-block" elements that should not be in captions.
+			editor.$( 'img, audio, video, object, embed, iframe, script, style', event.node ).remove();
+
+			editor.$( '*', event.node ).each( function( i, node ) {
+				if ( editor.dom.isBlock( node ) ) {
+					// Insert <br> where the blocks used to be. Makes it look better after pasting in the caption.
+					if ( tinymce.trim( node.textContent || node.innerText ) ) {
+						editor.dom.insertAfter( editor.dom.create( 'br' ), node );
+						editor.dom.remove( node, true );
+					} else {
+						editor.dom.remove( node );
+					}
+				}
+			});
+
+			// Trim <br> tags.
+			editor.$( 'br',  event.node ).each( function( i, node ) {
+				if ( ! node.nextSibling || node.nextSibling.nodeName === 'BR' ||
+					! node.previousSibling || node.previousSibling.nodeName === 'BR' ) {
+
+					editor.dom.remove( node );
+				}
+			} );
+
+			// Pasted HTML is cleaned up for inserting in the caption.
+			pasteInCaption = true;
+		}
+	});
 
 	editor.on( 'BeforeExecCommand', function( event ) {
-		var node, p, DL, align, replacement,
+		var node, p, DL, align, replacement, captionParent,
 			cmd = event.command,
 			dom = editor.dom;
 
-		if ( cmd === 'mceInsertContent' ) {
-			// When inserting content, if the caret is inside a caption create new paragraph under
-			// and move the caret there
-			if ( node = dom.getParent( editor.selection.getNode(), 'div.mceTemp' ) ) {
-				p = dom.create( 'p' );
-				dom.insertAfter( p, node );
-				editor.selection.setCursorLocation( p, 0 );
-				editor.nodeChanged();
+		if ( cmd === 'mceInsertContent' || cmd === 'Indent' || cmd === 'Outdent' ) {
+			node = editor.selection.getNode();
+			captionParent = dom.getParent( node, 'div.mceTemp' );
+
+			if ( captionParent ) {
+				if ( cmd === 'mceInsertContent' ) {
+					if ( pasteInCaption ) {
+						pasteInCaption = false;
+						// We are in the caption element, and in 'paste' context,
+						// and the pasted HTML was cleaned up on 'pastePostProcess' above.
+						// Let it be pasted in the caption.
+						return;
+					}
+
+					// The paste is somewhere else in the caption DL element.
+					// Prevent pasting in there as it will break the caption.
+					// Make new paragraph under the caption DL and move the caret there.
+					p = dom.create( 'p' );
+					dom.insertAfter( p, captionParent );
+					editor.selection.setCursorLocation( p, 0 );
+					editor.nodeChanged();
+				} else {
+					// Clicking Indent or Outdent while an image with a caption is selected breaks the caption.
+					// See #38313.
+					event.preventDefault();
+					event.stopImmediatePropagation();
+					return false;
+				}
 			}
 		} else if ( cmd === 'JustifyLeft' || cmd === 'JustifyRight' || cmd === 'JustifyCenter' || cmd === 'wpAlignNone' ) {
 			node = editor.selection.getNode();
@@ -976,6 +1023,12 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
 		return getShortcode( content );
 	};
 
+	editor.on( 'beforeGetContent', function( event ) {
+		if ( event.format !== 'raw' ) {
+			editor.$( 'img[id="__wp-temp-img-id"]' ).attr( 'id', null );
+		}	
+	});
+
 	editor.on( 'BeforeSetContent', function( event ) {
 		if ( event.format !== 'raw' ) {
 			event.content = editor.wpSetImgCaption( event.content );
diff --git a/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js b/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js
index 8193b11ee..3680d53b0 100644
--- a/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js
@@ -1 +1 @@
-tinymce.PluginManager.add("wpeditimage",function(a){function b(b){return!(!a.dom.getAttrib(b,"data-mce-placeholder")&&!a.dom.getAttrib(b,"data-mce-object"))}function c(b){var c=a.$(b).parents("[contenteditable]");return c&&"false"===c.attr("contenteditable")}function d(b){return b.replace(/(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g,function(b,c,d){var e,f,g,h,i,j;return e=c.match(/id=['"]([^'"]*)['"] ?/),e&&(c=c.replace(e[0],"")),f=c.match(/align=['"]([^'"]*)['"] ?/),f&&(c=c.replace(f[0],"")),g=c.match(/class=['"]([^'"]*)['"] ?/),g&&(c=c.replace(g[0],"")),j=c.match(/width=['"]([0-9]*)['"] ?/),j&&(c=c.replace(j[0],"")),d=p(d),i=d.match(/((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i),i&&i[2]?(h=p(i[2]),i=p(i[1])):(h=p(c).replace(/caption=['"]/,"").replace(/['"]$/,""),i=d),e=e&&e[1]?e[1].replace(/[<>&]+/g,""):"",f=f&&f[1]?f[1]:"alignnone",g=g&&g[1]?" "+g[1].replace(/[<>&]+/g,""):"",!j&&i&&(j=i.match(/width=['"]([0-9]*)['"]/)),j&&j[1]&&(j=j[1]),j&&h?(j=parseInt(j,10),a.getParam("wpeditimage_html5_captions")||(j+=10),'<div class="mceTemp"><dl id="'+e+'" class="wp-caption '+f+g+'" style="width: '+j+'px"><dt class="wp-caption-dt">'+i+'</dt><dd class="wp-caption-dd">'+h+"</dd></dl></div>"):d})}function e(a){return a.replace(/(?:<div [^>]+mceTemp[^>]+>)?\s*(<dl [^>]+wp-caption[^>]+>[\s\S]+?<\/dl>)\s*(?:<\/div>)?/g,function(a,b){var c="";return b.indexOf("<img ")===-1?(c=b.match(/<dd [^>]+>([\s\S]+?)<\/dd>/i),c&&c[1]?"<p>"+c[1]+"</p>":""):(c=b.replace(/\s*<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>\s*/gi,function(a,b,c,d){var e,f,g,h;return h=c.match(/width="([0-9]*)"/),h=h&&h[1]?h[1]:"",f=b.match(/class="([^"]*)"/),f=f&&f[1]?f[1]:"",g=f.match(/align[a-z]+/i)||"alignnone",h&&d?(e=b.match(/id="([^"]*)"/),e=e&&e[1]?e[1]:"",f=f.replace(/wp-caption ?|align[a-z]+ ?/gi,""),f&&(f=' class="'+f+'"'),d=d.replace(/\r\n|\r/g,"\n").replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),d=d.replace(/\s*\n\s*/g,"<br />"),'[caption id="'+e+'" align="'+g+'" width="'+h+'"'+f+"]"+c+" "+d+"[/caption]"):("alignnone"!==g[0]&&(c=c.replace(/><img/,' class="'+g[0]+'"><img')),c)}),c.indexOf("[caption")===-1&&(c=b.replace(/[\s\S]*?((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)(<p>[\s\S]*<\/p>)?[\s\S]*/gi,"<p>$1</p>$2")),c)})}function f(b){var c,d,e,f,g,h,i,j,k=[],l=a.dom,m=/^\d+$/;return e={attachment_id:!1,size:"custom",caption:"",align:"none",extraClasses:"",link:!1,linkUrl:"",linkClassName:"",linkTargetBlank:!1,linkRel:"",title:""},e.url=l.getAttrib(b,"src"),e.alt=l.getAttrib(b,"alt"),e.title=l.getAttrib(b,"title"),i=l.getAttrib(b,"width"),j=l.getAttrib(b,"height"),(!m.test(i)||parseInt(i,10)<1)&&(i=b.naturalWidth||b.width),(!m.test(j)||parseInt(j,10)<1)&&(j=b.naturalHeight||b.height),e.customWidth=e.width=i,e.customHeight=e.height=j,c=tinymce.explode(b.className," "),d=[],tinymce.each(c,function(a){/^wp-image/.test(a)?e.attachment_id=parseInt(a.replace("wp-image-",""),10):/^align/.test(a)?e.align=a.replace("align",""):/^size/.test(a)?e.size=a.replace("size-",""):d.push(a)}),e.extraClasses=d.join(" "),f=l.getParents(b,".wp-caption"),f.length&&(f=f[0],c=f.className.split(" "),tinymce.each(c,function(a){/^align/.test(a)?e.align=a.replace("align",""):a&&"wp-caption"!==a&&k.push(a)}),e.captionClassName=k.join(" "),g=l.select("dd.wp-caption-dd",f),g.length&&(g=g[0],e.caption=a.serializer.serialize(g).replace(/<br[^>]*>/g,"$&\n").replace(/^<p>/,"").replace(/<\/p>$/,""))),b.parentNode&&"A"===b.parentNode.nodeName&&(h=b.parentNode,e.linkUrl=l.getAttrib(h,"href"),e.linkTargetBlank="_blank"===l.getAttrib(h,"target"),e.linkRel=l.getAttrib(h,"rel"),e.linkClassName=h.className),e}function g(a){return a&&!(!a.textContent&&!a.innerText)}function h(b){return!b||b.indexOf("<")===-1&&b.indexOf(">")===-1?b:(m||(m=new tinymce.html.Serializer({},a.schema)),m.serialize(a.parser.parse(b,{forced_root_block:!1})))}function i(b,c){var d,e,f,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=a.dom;d=tinymce.explode(c.extraClasses," "),d||(d=[]),c.caption||d.push("align"+c.align),c.attachment_id&&(d.push("wp-image-"+c.attachment_id),c.size&&"custom"!==c.size&&d.push("size-"+c.size)),s=c.width,t=c.height,"custom"===c.size&&(s=c.customWidth,t=c.customHeight),q={src:c.url,width:s||null,height:t||null,alt:c.alt,title:c.title||null,"class":d.join(" ")||null},y.setAttribs(b,q),r={href:c.linkUrl,rel:c.linkRel||null,target:c.linkTargetBlank?"_blank":null,"class":c.linkClassName||null},b.parentNode&&"A"===b.parentNode.nodeName&&!g(b.parentNode)?c.linkUrl?y.setAttribs(b.parentNode,r):y.remove(b.parentNode,!0):c.linkUrl&&((l=y.getParent(b,"a"))&&y.insertAfter(b,l),l=y.create("a",r),b.parentNode.insertBefore(l,b),l.appendChild(b)),m=a.dom.getParent(b,".mceTemp"),f=b.parentNode&&"A"===b.parentNode.nodeName&&!g(b.parentNode)?b.parentNode:b,c.caption?(c.caption=h(c.caption),p=c.attachment_id?"attachment_"+c.attachment_id:null,u="align"+(c.align||"none"),e="wp-caption "+u,c.captionClassName&&(e+=" "+c.captionClassName.replace(/[<>&]+/g,"")),a.getParam("wpeditimage_html5_captions")||(s=parseInt(s,10),s+=10),m?(o=y.select("dl.wp-caption",m),o.length&&y.setAttribs(o,{id:p,"class":e,style:"width: "+s+"px"}),n=y.select(".wp-caption-dd",m),n.length&&y.setHTML(n[0],c.caption)):(p=p?'id="'+p+'" ':"",i="<dl "+p+'class="'+e+'" style="width: '+s+'px"><dt class="wp-caption-dt"></dt><dd class="wp-caption-dd">'+c.caption+"</dd></dl>",k=y.create("div",{"class":"mceTemp"},i),(j=y.getParent(f,"p"))?j.parentNode.insertBefore(k,j):f.parentNode.insertBefore(k,f),a.$(k).find("dt.wp-caption-dt").append(f),j&&y.isEmpty(j)&&y.remove(j))):m&&(j=y.create("p"),m.parentNode.insertBefore(j,m),j.appendChild(f),y.remove(m)),v=a.$(b),w=v.attr("srcset"),x=v.attr("src"),w&&x&&(x=x.replace(/[?#].*/,""),w.indexOf(x)===-1&&v.attr("srcset",null).attr("sizes",null)),wp.media.events&&wp.media.events.trigger("editor:image-update",{editor:a,metadata:c,image:b}),a.nodeChanged()}function j(b){var c,d,e;return"undefined"!=typeof wp&&wp.media?(e=f(b),wp.media.events.trigger("editor:image-edit",{editor:a,metadata:e,image:b}),c=wp.media({frame:"image",state:"image-details",metadata:e}),wp.media.events.trigger("editor:frame-create",{frame:c}),d=function(d){a.focus(),a.undoManager.transact(function(){i(b,d)}),c.detach()},c.state("image-details").on("update",d),c.state("replace-image").on("replace",d),c.on("close",function(){a.focus(),c.detach()}),void c.open()):void a.execCommand("mceImage")}function k(b){var c=a.dom.getParent(b,"div.mceTemp");c||"IMG"!==b.nodeName||(c=a.dom.getParent(b,"a")),c?(c.nextSibling?a.selection.select(c.nextSibling):c.previousSibling?a.selection.select(c.previousSibling):a.selection.select(c.parentNode),a.selection.collapse(!0),a.dom.remove(c)):a.dom.remove(b),a.nodeChanged(),a.undoManager.add()}var l,m,n,o=tinymce.each,p=tinymce.trim,q=tinymce.Env.iOS;return a.addButton("wp_img_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){k(a.selection.getNode())}}),a.addButton("wp_img_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){j(a.selection.getNode())}}),o({alignleft:"Align left",aligncenter:"Align center",alignright:"Align right",alignnone:"No alignment"},function(b,c){var d=c.slice(5);a.addButton("wp_img_"+c,{tooltip:b,icon:"dashicon dashicons-align-"+d,cmd:"alignnone"===c?"wpAlignNone":"Justify"+d.slice(0,1).toUpperCase()+d.slice(1),onPostRender:function(){var b=this;a.on("NodeChange",function(d){var e;"IMG"===d.element.nodeName&&(e=a.dom.getParent(d.element,".wp-caption")||d.element,"alignnone"===c?b.active(!/\balign(left|center|right)\b/.test(e.className)):b.active(a.dom.hasClass(e,c)))})}})}),a.once("preinit",function(){a.wp&&a.wp._createToolbar&&(l=a.wp._createToolbar(["wp_img_alignleft","wp_img_aligncenter","wp_img_alignright","wp_img_alignnone","wp_img_edit","wp_img_remove"]))}),a.on("wptoolbar",function(a){"IMG"!==a.element.nodeName||b(a.element)||(a.toolbar=l)}),q&&a.on("init",function(){a.on("touchstart",function(a){"IMG"!==a.target.nodeName||c(a.target)||(n=!0)}),a.dom.bind(a.getDoc(),"touchmove",function(){n=!1}),a.on("touchend",function(b){if(n&&"IMG"===b.target.nodeName&&!c(b.target)){var d=b.target;n=!1,window.setTimeout(function(){a.selection.select(d),a.nodeChanged()},100)}else l&&l.hide()})}),a.on("init",function(){var b=a.dom,c=a.getParam("wpeditimage_html5_captions")?"html5-captions":"html4-captions";b.addClass(a.getBody(),c),a.on("wpLoadImageForm",function(b){if(!a.getParam("wpeditimage_disable_captions")){var c={type:"textbox",flex:1,name:"wpcaption",minHeight:60,multiline:!0,scroll:!0,label:"Image caption"};b.data.splice(b.data.length-1,0,c)}}),a.on("wpNewImageRefresh",function(a){var c,d;(c=b.getParent(a.node,"dl.wp-caption"))&&(c.style.width||(d=parseInt(a.node.clientWidth,10)+10,d=d?d+"px":"50%",b.setStyle(c,"width",d)))}),a.on("wpImageFormSubmit",function(c){var d,e,f,g,i,j=c.imgData.data,k=c.imgData.node,l=c.imgData.wpcaption,m="",n="",o="";return j.id="__wp-temp-img-id",c.imgData.cancel=!0,j.style||(j.style=null),j.src?(l&&(l=l.replace(/\r\n|\r/g,"\n").replace(/<\/?[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),l=l.replace(/(<br[^>]*>)\s*\n\s*/g,"$1").replace(/\s*\n\s*/g,"<br />"),l=h(l)),k?(i=k.id||null,b.setAttribs(k,j),d=b.getParent(k,"dl.wp-caption"),l?d?(e=b.select("dd.wp-caption-dd",d)[0])&&(e.innerHTML=l):(k.className&&(m=k.className.match(/wp-image-([0-9]+)/),n=k.className.match(/align(left|right|center|none)/)),n?(n=n[0],k.className=k.className.replace(/align(left|right|center|none)/g,"")):n="alignnone",n=' class="wp-caption '+n+'"',m&&(m=' id="attachment_'+m[1]+'"'),o=j.width||k.clientWidth,o&&(o=parseInt(o,10),a.getParam("wpeditimage_html5_captions")||(o+=10),o=' style="width: '+o+'px"'),f=k.parentNode&&"A"===k.parentNode.nodeName?k.parentNode:k,g="<dl "+m+n+o+'><dt class="wp-caption-dt"></dt><dd class="wp-caption-dd">'+l+"</dd></dl>",d=b.create("div",{"class":"mceTemp"},g),(e=b.getParent(f,"p"))?e.parentNode.insertBefore(d,e):f.parentNode.insertBefore(d,f),a.$(d).find("dt.wp-caption-dt").append(f),e&&b.isEmpty(e)&&b.remove(e)):d&&(g="A"===k.parentNode.nodeName?b.getOuterHTML(k.parentNode):b.getOuterHTML(k),e=b.create("p",{},g),b.insertAfter(e,d.parentNode),a.selection.select(e),a.nodeChanged(),b.remove(d.parentNode))):(g=b.createHTML("img",j),l?(f=a.selection.getNode(),j.width&&(o=parseInt(j.width,10),a.getParam("wpeditimage_html5_captions")||(o+=10),o=' style="width: '+o+'px"'),g='<dl class="wp-caption alignnone"'+o+'><dt class="wp-caption-dt">'+g+'</dt><dd class="wp-caption-dd">'+l+"</dd></dl>",e="P"===f.nodeName?f:b.getParent(f,"p"),e&&"P"===e.nodeName?(d=b.create("div",{"class":"mceTemp"},g),e.parentNode.insertBefore(d,e),a.selection.select(d),a.nodeChanged(),b.isEmpty(e)&&b.remove(e)):a.selection.setContent('<div class="mceTemp">'+g+"</div>")):a.selection.setContent(g)),k=b.get("__wp-temp-img-id"),b.setAttrib(k,"id",i),void(c.imgData.node=k)):void(k&&((d=b.getParent(k,"div.mceTemp"))?b.remove(d):"A"===k.parentNode.nodeName?b.remove(k.parentNode):b.remove(k),a.nodeChanged()))}),a.on("wpLoadImageData",function(c){var d,e=c.imgData.data,f=c.imgData.node;(d=b.getParent(f,"dl.wp-caption"))&&(d=b.select("dd.wp-caption-dd",d)[0],d&&(e.wpcaption=a.serializer.serialize(d).replace(/<br[^>]*>/g,"$&\n").replace(/^<p>/,"").replace(/<\/p>$/,"")))}),tinymce.Env.ie&&tinymce.Env.ie>10&&b.bind(a.getBody(),"mscontrolselect",function(c){"IMG"===c.target.nodeName&&b.getParent(c.target,".wp-caption")?a.getBody().focus():"DL"===c.target.nodeName&&b.hasClass(c.target,"wp-caption")&&c.target.focus()})}),a.on("ObjectResized",function(b){var c=b.target;"IMG"===c.nodeName&&a.undoManager.transact(function(){var d,e,f=a.dom;c.className=c.className.replace(/\bsize-[^ ]+/,""),(d=f.getParent(c,".wp-caption"))&&(e=b.width||f.getAttrib(c,"width"),e&&(e=parseInt(e,10),a.getParam("wpeditimage_html5_captions")||(e+=10),f.setStyle(d,"width",e+"px")))})}),a.on("BeforeExecCommand",function(b){var c,d,e,f,g,h=b.command,i=a.dom;if("mceInsertContent"===h)(c=i.getParent(a.selection.getNode(),"div.mceTemp"))&&(d=i.create("p"),i.insertAfter(d,c),a.selection.setCursorLocation(d,0),a.nodeChanged());else if("JustifyLeft"===h||"JustifyRight"===h||"JustifyCenter"===h||"wpAlignNone"===h){if(c=a.selection.getNode(),f="align"+h.slice(7).toLowerCase(),e=a.dom.getParent(c,".wp-caption"),"IMG"!==c.nodeName&&!e)return;c=e||c,g=a.dom.hasClass(c,f)?" alignnone":" "+f,c.className=p(c.className.replace(/ ?align(left|center|right|none)/g,"")+g),a.nodeChanged(),b.preventDefault(),l&&l.reposition(),a.fire("ExecCommand",{command:h,ui:b.ui,value:b.value})}}),a.on("keydown",function(b){var c,d,e,f,g=a.selection,h=b.keyCode,i=a.dom,j=tinymce.util.VK;if(h===j.ENTER)c=g.getNode(),d=i.getParent(c,"div.mceTemp"),d&&(i.events.cancel(b),tinymce.each(i.select("dt, dd",d),function(a){i.isEmpty(a)&&i.remove(a)}),f=tinymce.Env.ie&&tinymce.Env.ie<11?"":'<br data-mce-bogus="1" />',e=i.create("p",null,f),"DD"===c.nodeName?i.insertAfter(e,d):d.parentNode.insertBefore(e,d),a.nodeChanged(),g.setCursorLocation(e,0));else if((h===j.DELETE||h===j.BACKSPACE)&&(c=g.getNode(),"DIV"===c.nodeName&&i.hasClass(c,"mceTemp")?d=c:"IMG"!==c.nodeName&&"DT"!==c.nodeName&&"A"!==c.nodeName||(d=i.getParent(c,"div.mceTemp")),d))return i.events.cancel(b),k(c),!1}),tinymce.Env.gecko&&a.on("undo redo",function(){"IMG"===a.selection.getNode().nodeName&&a.selection.collapse()}),a.wpSetImgCaption=function(a){return d(a)},a.wpGetImgCaption=function(a){return e(a)},a.on("BeforeSetContent",function(b){"raw"!==b.format&&(b.content=a.wpSetImgCaption(b.content))}),a.on("PostProcess",function(b){b.get&&(b.content=a.wpGetImgCaption(b.content))}),function(){var b;a.on("dragstart",function(){var c=a.selection.getNode();"IMG"===c.nodeName&&(b=a.dom.getParent(c,".mceTemp"),b||"A"!==c.parentNode.nodeName||g(c.parentNode)||(b=c.parentNode))}),a.on("drop",function(c){var d=a.dom,e=tinymce.dom.RangeUtils.getCaretRangeFromPoint(c.clientX,c.clientY,a.getDoc());e&&d.getParent(e.startContainer,".mceTemp")?c.preventDefault():b&&(c.preventDefault(),a.undoManager.transact(function(){e&&a.selection.setRng(e),a.selection.setNode(b),d.remove(b)})),b=null})}(),a.wp=a.wp||{},a.wp.isPlaceholder=b,{_do_shcode:d,_get_shcode:e}});
\ No newline at end of file
+tinymce.PluginManager.add("wpeditimage",function(a){function b(b){return!(!a.dom.getAttrib(b,"data-mce-placeholder")&&!a.dom.getAttrib(b,"data-mce-object"))}function c(b){var c=a.$(b).parents("[contenteditable]");return c&&"false"===c.attr("contenteditable")}function d(b){return b.replace(/(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g,function(b,c,d){var e,f,g,h,i,j;return e=c.match(/id=['"]([^'"]*)['"] ?/),e&&(c=c.replace(e[0],"")),f=c.match(/align=['"]([^'"]*)['"] ?/),f&&(c=c.replace(f[0],"")),g=c.match(/class=['"]([^'"]*)['"] ?/),g&&(c=c.replace(g[0],"")),j=c.match(/width=['"]([0-9]*)['"] ?/),j&&(c=c.replace(j[0],"")),d=q(d),i=d.match(/((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i),i&&i[2]?(h=q(i[2]),i=q(i[1])):(h=q(c).replace(/caption=['"]/,"").replace(/['"]$/,""),i=d),e=e&&e[1]?e[1].replace(/[<>&]+/g,""):"",f=f&&f[1]?f[1]:"alignnone",g=g&&g[1]?" "+g[1].replace(/[<>&]+/g,""):"",!j&&i&&(j=i.match(/width=['"]([0-9]*)['"]/)),j&&j[1]&&(j=j[1]),j&&h?(j=parseInt(j,10),a.getParam("wpeditimage_html5_captions")||(j+=10),'<div class="mceTemp"><dl id="'+e+'" class="wp-caption '+f+g+'" style="width: '+j+'px"><dt class="wp-caption-dt">'+i+'</dt><dd class="wp-caption-dd">'+h+"</dd></dl></div>"):d})}function e(a){return a.replace(/(?:<div [^>]+mceTemp[^>]+>)?\s*(<dl [^>]+wp-caption[^>]+>[\s\S]+?<\/dl>)\s*(?:<\/div>)?/g,function(a,b){var c="";return b.indexOf("<img ")===-1||b.indexOf("</p>")!==-1?b.replace(/<d[ldt]( [^>]+)?>/g,"").replace(/<\/d[ldt]>/g,""):(c=b.replace(/\s*<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>\s*/gi,function(a,b,c,d){var e,f,g,h;return h=c.match(/width="([0-9]*)"/),h=h&&h[1]?h[1]:"",f=b.match(/class="([^"]*)"/),f=f&&f[1]?f[1]:"",g=f.match(/align[a-z]+/i)||"alignnone",h&&d?(e=b.match(/id="([^"]*)"/),e=e&&e[1]?e[1]:"",f=f.replace(/wp-caption ?|align[a-z]+ ?/gi,""),f&&(f=' class="'+f+'"'),d=d.replace(/\r\n|\r/g,"\n").replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),d=d.replace(/\s*\n\s*/g,"<br />"),'[caption id="'+e+'" align="'+g+'" width="'+h+'"'+f+"]"+c+" "+d+"[/caption]"):("alignnone"!==g[0]&&(c=c.replace(/><img/,' class="'+g[0]+'"><img')),c)}),c.indexOf("[caption")===-1&&(c=b.replace(/[\s\S]*?((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)(<p>[\s\S]*<\/p>)?[\s\S]*/gi,"<p>$1</p>$2")),c)})}function f(b){var c,d,e,f,g,h,i,j,k=[],l=a.dom,m=/^\d+$/;return e={attachment_id:!1,size:"custom",caption:"",align:"none",extraClasses:"",link:!1,linkUrl:"",linkClassName:"",linkTargetBlank:!1,linkRel:"",title:""},e.url=l.getAttrib(b,"src"),e.alt=l.getAttrib(b,"alt"),e.title=l.getAttrib(b,"title"),i=l.getAttrib(b,"width"),j=l.getAttrib(b,"height"),(!m.test(i)||parseInt(i,10)<1)&&(i=b.naturalWidth||b.width),(!m.test(j)||parseInt(j,10)<1)&&(j=b.naturalHeight||b.height),e.customWidth=e.width=i,e.customHeight=e.height=j,c=tinymce.explode(b.className," "),d=[],tinymce.each(c,function(a){/^wp-image/.test(a)?e.attachment_id=parseInt(a.replace("wp-image-",""),10):/^align/.test(a)?e.align=a.replace("align",""):/^size/.test(a)?e.size=a.replace("size-",""):d.push(a)}),e.extraClasses=d.join(" "),f=l.getParents(b,".wp-caption"),f.length&&(f=f[0],c=f.className.split(" "),tinymce.each(c,function(a){/^align/.test(a)?e.align=a.replace("align",""):a&&"wp-caption"!==a&&k.push(a)}),e.captionClassName=k.join(" "),g=l.select("dd.wp-caption-dd",f),g.length&&(g=g[0],e.caption=a.serializer.serialize(g).replace(/<br[^>]*>/g,"$&\n").replace(/^<p>/,"").replace(/<\/p>$/,""))),b.parentNode&&"A"===b.parentNode.nodeName&&(h=b.parentNode,e.linkUrl=l.getAttrib(h,"href"),e.linkTargetBlank="_blank"===l.getAttrib(h,"target"),e.linkRel=l.getAttrib(h,"rel"),e.linkClassName=h.className),e}function g(a){return a&&!(!a.textContent&&!a.innerText)}function h(b){return!b||b.indexOf("<")===-1&&b.indexOf(">")===-1?b:(m||(m=new tinymce.html.Serializer({},a.schema)),m.serialize(a.parser.parse(b,{forced_root_block:!1})))}function i(b,c){var d,e,f,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=a.dom;d=tinymce.explode(c.extraClasses," "),d||(d=[]),c.caption||d.push("align"+c.align),c.attachment_id&&(d.push("wp-image-"+c.attachment_id),c.size&&"custom"!==c.size&&d.push("size-"+c.size)),s=c.width,t=c.height,"custom"===c.size&&(s=c.customWidth,t=c.customHeight),q={src:c.url,width:s||null,height:t||null,alt:c.alt,title:c.title||null,"class":d.join(" ")||null},y.setAttribs(b,q),r={href:c.linkUrl,rel:c.linkRel||null,target:c.linkTargetBlank?"_blank":null,"class":c.linkClassName||null},b.parentNode&&"A"===b.parentNode.nodeName&&!g(b.parentNode)?c.linkUrl?y.setAttribs(b.parentNode,r):y.remove(b.parentNode,!0):c.linkUrl&&((l=y.getParent(b,"a"))&&y.insertAfter(b,l),l=y.create("a",r),b.parentNode.insertBefore(l,b),l.appendChild(b)),m=a.dom.getParent(b,".mceTemp"),f=b.parentNode&&"A"===b.parentNode.nodeName&&!g(b.parentNode)?b.parentNode:b,c.caption?(c.caption=h(c.caption),p=c.attachment_id?"attachment_"+c.attachment_id:null,u="align"+(c.align||"none"),e="wp-caption "+u,c.captionClassName&&(e+=" "+c.captionClassName.replace(/[<>&]+/g,"")),a.getParam("wpeditimage_html5_captions")||(s=parseInt(s,10),s+=10),m?(o=y.select("dl.wp-caption",m),o.length&&y.setAttribs(o,{id:p,"class":e,style:"width: "+s+"px"}),n=y.select(".wp-caption-dd",m),n.length&&y.setHTML(n[0],c.caption)):(p=p?'id="'+p+'" ':"",i="<dl "+p+'class="'+e+'" style="width: '+s+'px"><dt class="wp-caption-dt"></dt><dd class="wp-caption-dd">'+c.caption+"</dd></dl>",k=y.create("div",{"class":"mceTemp"},i),(j=y.getParent(f,"p"))?j.parentNode.insertBefore(k,j):f.parentNode.insertBefore(k,f),a.$(k).find("dt.wp-caption-dt").append(f),j&&y.isEmpty(j)&&y.remove(j))):m&&(j=y.create("p"),m.parentNode.insertBefore(j,m),j.appendChild(f),y.remove(m)),v=a.$(b),w=v.attr("srcset"),x=v.attr("src"),w&&x&&(x=x.replace(/[?#].*/,""),w.indexOf(x)===-1&&v.attr("srcset",null).attr("sizes",null)),wp.media.events&&wp.media.events.trigger("editor:image-update",{editor:a,metadata:c,image:b}),a.nodeChanged()}function j(b){var c,d,e;return"undefined"!=typeof wp&&wp.media?(e=f(b),wp.media.events.trigger("editor:image-edit",{editor:a,metadata:e,image:b}),c=wp.media({frame:"image",state:"image-details",metadata:e}),wp.media.events.trigger("editor:frame-create",{frame:c}),d=function(d){a.focus(),a.undoManager.transact(function(){i(b,d)}),c.detach()},c.state("image-details").on("update",d),c.state("replace-image").on("replace",d),c.on("close",function(){a.focus(),c.detach()}),void c.open()):void a.execCommand("mceImage")}function k(b){var c=a.dom.getParent(b,"div.mceTemp");c||"IMG"!==b.nodeName||(c=a.dom.getParent(b,"a")),c?(c.nextSibling?a.selection.select(c.nextSibling):c.previousSibling?a.selection.select(c.previousSibling):a.selection.select(c.parentNode),a.selection.collapse(!0),a.dom.remove(c)):a.dom.remove(b),a.nodeChanged(),a.undoManager.add()}var l,m,n,o,p=tinymce.each,q=tinymce.trim,r=tinymce.Env.iOS;return a.addButton("wp_img_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){k(a.selection.getNode())}}),a.addButton("wp_img_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){j(a.selection.getNode())}}),p({alignleft:"Align left",aligncenter:"Align center",alignright:"Align right",alignnone:"No alignment"},function(b,c){var d=c.slice(5);a.addButton("wp_img_"+c,{tooltip:b,icon:"dashicon dashicons-align-"+d,cmd:"alignnone"===c?"wpAlignNone":"Justify"+d.slice(0,1).toUpperCase()+d.slice(1),onPostRender:function(){var b=this;a.on("NodeChange",function(d){var e;"IMG"===d.element.nodeName&&(e=a.dom.getParent(d.element,".wp-caption")||d.element,"alignnone"===c?b.active(!/\balign(left|center|right)\b/.test(e.className)):b.active(a.dom.hasClass(e,c)))})}})}),a.once("preinit",function(){a.wp&&a.wp._createToolbar&&(l=a.wp._createToolbar(["wp_img_alignleft","wp_img_aligncenter","wp_img_alignright","wp_img_alignnone","wp_img_edit","wp_img_remove"]))}),a.on("wptoolbar",function(a){"IMG"!==a.element.nodeName||b(a.element)||(a.toolbar=l)}),r&&a.on("init",function(){a.on("touchstart",function(a){"IMG"!==a.target.nodeName||c(a.target)||(n=!0)}),a.dom.bind(a.getDoc(),"touchmove",function(){n=!1}),a.on("touchend",function(b){if(n&&"IMG"===b.target.nodeName&&!c(b.target)){var d=b.target;n=!1,window.setTimeout(function(){a.selection.select(d),a.nodeChanged()},100)}else l&&l.hide()})}),a.on("init",function(){var b=a.dom,c=a.getParam("wpeditimage_html5_captions")?"html5-captions":"html4-captions";b.addClass(a.getBody(),c),a.on("wpLoadImageForm",function(b){if(!a.getParam("wpeditimage_disable_captions")){var c={type:"textbox",flex:1,name:"wpcaption",minHeight:60,multiline:!0,scroll:!0,label:"Image caption"};b.data.splice(b.data.length-1,0,c)}}),a.on("wpNewImageRefresh",function(a){var c,d;(c=b.getParent(a.node,"dl.wp-caption"))&&(c.style.width||(d=parseInt(a.node.clientWidth,10)+10,d=d?d+"px":"50%",b.setStyle(c,"width",d)))}),a.on("wpImageFormSubmit",function(c){var d,e,f,g,i=c.imgData.data,j=c.imgData.node,k=c.imgData.wpcaption,l="",m="",n="",o=null;return i.id="__wp-temp-img-id",c.imgData.cancel=!0,i.style||(i.style=null),i.src?(k&&(k=k.replace(/\r\n|\r/g,"\n").replace(/<\/?[a-zA-Z0-9]+( [^<>]+)?>/g,function(a){return a.replace(/[\r\n\t]+/," ")}),k=k.replace(/(<br[^>]*>)\s*\n\s*/g,"$1").replace(/\s*\n\s*/g,"<br />"),k=h(k)),j?(o=j.id||null,b.setAttribs(j,i),d=b.getParent(j,"dl.wp-caption"),k?d?(e=b.select("dd.wp-caption-dd",d)[0])&&(e.innerHTML=k):(j.className&&(l=j.className.match(/wp-image-([0-9]+)/),m=j.className.match(/align(left|right|center|none)/)),m?(m=m[0],j.className=j.className.replace(/align(left|right|center|none)/g,"")):m="alignnone",m=' class="wp-caption '+m+'"',l&&(l=' id="attachment_'+l[1]+'"'),n=i.width||j.clientWidth,n&&(n=parseInt(n,10),a.getParam("wpeditimage_html5_captions")||(n+=10),n=' style="width: '+n+'px"'),f=j.parentNode&&"A"===j.parentNode.nodeName?j.parentNode:j,g="<dl "+l+m+n+'><dt class="wp-caption-dt"></dt><dd class="wp-caption-dd">'+k+"</dd></dl>",d=b.create("div",{"class":"mceTemp"},g),(e=b.getParent(f,"p"))?e.parentNode.insertBefore(d,e):f.parentNode.insertBefore(d,f),a.$(d).find("dt.wp-caption-dt").append(f),e&&b.isEmpty(e)&&b.remove(e)):d&&(g="A"===j.parentNode.nodeName?b.getOuterHTML(j.parentNode):b.getOuterHTML(j),e=b.create("p",{},g),b.insertAfter(e,d.parentNode),a.selection.select(e),a.nodeChanged(),b.remove(d.parentNode))):(g=b.createHTML("img",i),k?(f=a.selection.getNode(),i.width&&(n=parseInt(i.width,10),a.getParam("wpeditimage_html5_captions")||(n+=10),n=' style="width: '+n+'px"'),g='<dl class="wp-caption alignnone"'+n+'><dt class="wp-caption-dt">'+g+'</dt><dd class="wp-caption-dd">'+k+"</dd></dl>",e="P"===f.nodeName?f:b.getParent(f,"p"),e&&"P"===e.nodeName?(d=b.create("div",{"class":"mceTemp"},g),e.parentNode.insertBefore(d,e),a.selection.select(d),a.nodeChanged(),b.isEmpty(e)&&b.remove(e)):a.selection.setContent('<div class="mceTemp">'+g+"</div>")):a.selection.setContent(g)),j=b.get("__wp-temp-img-id"),b.setAttrib(j,"id",o||null),void(c.imgData.node=j)):void(j&&((d=b.getParent(j,"div.mceTemp"))?b.remove(d):"A"===j.parentNode.nodeName?b.remove(j.parentNode):b.remove(j),a.nodeChanged()))}),a.on("wpLoadImageData",function(c){var d,e=c.imgData.data,f=c.imgData.node;(d=b.getParent(f,"dl.wp-caption"))&&(d=b.select("dd.wp-caption-dd",d)[0],d&&(e.wpcaption=a.serializer.serialize(d).replace(/<br[^>]*>/g,"$&\n").replace(/^<p>/,"").replace(/<\/p>$/,"")))}),tinymce.Env.ie&&tinymce.Env.ie>10&&b.bind(a.getBody(),"mscontrolselect",function(c){"IMG"===c.target.nodeName&&b.getParent(c.target,".wp-caption")?a.getBody().focus():"DL"===c.target.nodeName&&b.hasClass(c.target,"wp-caption")&&c.target.focus()})}),a.on("ObjectResized",function(b){var c=b.target;"IMG"===c.nodeName&&a.undoManager.transact(function(){var d,e,f=a.dom;c.className=c.className.replace(/\bsize-[^ ]+/,""),(d=f.getParent(c,".wp-caption"))&&(e=b.width||f.getAttrib(c,"width"),e&&(e=parseInt(e,10),a.getParam("wpeditimage_html5_captions")||(e+=10),f.setStyle(d,"width",e+"px")))})}),a.on("pastePostProcess",function(b){a.dom.getParent(a.selection.getNode(),"dd.wp-caption-dd")&&(a.$("img, audio, video, object, embed, iframe, script, style",b.node).remove(),a.$("*",b.node).each(function(b,c){a.dom.isBlock(c)&&(tinymce.trim(c.textContent||c.innerText)?(a.dom.insertAfter(a.dom.create("br"),c),a.dom.remove(c,!0)):a.dom.remove(c))}),a.$("br",b.node).each(function(b,c){c.nextSibling&&"BR"!==c.nextSibling.nodeName&&c.previousSibling&&"BR"!==c.previousSibling.nodeName||a.dom.remove(c)}),o=!0)}),a.on("BeforeExecCommand",function(b){var c,d,e,f,g,h,i=b.command,j=a.dom;if("mceInsertContent"===i||"Indent"===i||"Outdent"===i){if(c=a.selection.getNode(),h=j.getParent(c,"div.mceTemp")){if("mceInsertContent"!==i)return b.preventDefault(),b.stopImmediatePropagation(),!1;if(o)return void(o=!1);d=j.create("p"),j.insertAfter(d,h),a.selection.setCursorLocation(d,0),a.nodeChanged()}}else if("JustifyLeft"===i||"JustifyRight"===i||"JustifyCenter"===i||"wpAlignNone"===i){if(c=a.selection.getNode(),f="align"+i.slice(7).toLowerCase(),e=a.dom.getParent(c,".wp-caption"),"IMG"!==c.nodeName&&!e)return;c=e||c,g=a.dom.hasClass(c,f)?" alignnone":" "+f,c.className=q(c.className.replace(/ ?align(left|center|right|none)/g,"")+g),a.nodeChanged(),b.preventDefault(),l&&l.reposition(),a.fire("ExecCommand",{command:i,ui:b.ui,value:b.value})}}),a.on("keydown",function(b){var c,d,e,f,g=a.selection,h=b.keyCode,i=a.dom,j=tinymce.util.VK;if(h===j.ENTER)c=g.getNode(),d=i.getParent(c,"div.mceTemp"),d&&(i.events.cancel(b),tinymce.each(i.select("dt, dd",d),function(a){i.isEmpty(a)&&i.remove(a)}),f=tinymce.Env.ie&&tinymce.Env.ie<11?"":'<br data-mce-bogus="1" />',e=i.create("p",null,f),"DD"===c.nodeName?i.insertAfter(e,d):d.parentNode.insertBefore(e,d),a.nodeChanged(),g.setCursorLocation(e,0));else if((h===j.DELETE||h===j.BACKSPACE)&&(c=g.getNode(),"DIV"===c.nodeName&&i.hasClass(c,"mceTemp")?d=c:"IMG"!==c.nodeName&&"DT"!==c.nodeName&&"A"!==c.nodeName||(d=i.getParent(c,"div.mceTemp")),d))return i.events.cancel(b),k(c),!1}),tinymce.Env.gecko&&a.on("undo redo",function(){"IMG"===a.selection.getNode().nodeName&&a.selection.collapse()}),a.wpSetImgCaption=function(a){return d(a)},a.wpGetImgCaption=function(a){return e(a)},a.on("beforeGetContent",function(b){"raw"!==b.format&&a.$('img[id="__wp-temp-img-id"]').attr("id",null)}),a.on("BeforeSetContent",function(b){"raw"!==b.format&&(b.content=a.wpSetImgCaption(b.content))}),a.on("PostProcess",function(b){b.get&&(b.content=a.wpGetImgCaption(b.content))}),function(){var b;a.on("dragstart",function(){var c=a.selection.getNode();"IMG"===c.nodeName&&(b=a.dom.getParent(c,".mceTemp"),b||"A"!==c.parentNode.nodeName||g(c.parentNode)||(b=c.parentNode))}),a.on("drop",function(c){var d=a.dom,e=tinymce.dom.RangeUtils.getCaretRangeFromPoint(c.clientX,c.clientY,a.getDoc());e&&d.getParent(e.startContainer,".mceTemp")?c.preventDefault():b&&(c.preventDefault(),a.undoManager.transact(function(){e&&a.selection.setRng(e),a.selection.setNode(b),d.remove(b)})),b=null})}(),a.wp=a.wp||{},a.wp.isPlaceholder=b,{_do_shcode:d,_get_shcode:e}});
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/wplink/plugin.js b/wp-includes/js/tinymce/plugins/wplink/plugin.js
index 1ce1c926c..96357f2e9 100644
--- a/wp-includes/js/tinymce/plugins/wplink/plugin.js
+++ b/wp-includes/js/tinymce/plugins/wplink/plugin.js
@@ -560,8 +560,8 @@
 		} );
 
 		editor.addButton( 'wp_link_remove', {
-			tooltip: 'Remove',
-			icon: 'dashicon dashicons-no',
+			tooltip: 'Remove link',
+			icon: 'dashicon dashicons-editor-unlink',
 			cmd: 'wp_unlink'
 		} );
 
diff --git a/wp-includes/js/tinymce/plugins/wplink/plugin.min.js b/wp-includes/js/tinymce/plugins/wplink/plugin.min.js
index 8351bef21..c35e5266f 100644
--- a/wp-includes/js/tinymce/plugins/wplink/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/wplink/plugin.min.js
@@ -1 +1 @@
-!function(a){a.ui.WPLinkPreview=a.ui.Control.extend({url:"#",renderHtml:function(){return'<div id="'+this._id+'" class="wp-link-preview"><a href="'+this.url+'" target="_blank" tabindex="-1">'+this.url+"</a></div>"},setURL:function(b){var c,d;this.url!==b&&(this.url=b,b=window.decodeURIComponent(b),b=b.replace(/^(?:https?:)?\/\/(?:www\.)?/,""),(c=b.indexOf("?"))!==-1&&(b=b.slice(0,c)),(c=b.indexOf("#"))!==-1&&(b=b.slice(0,c)),b=b.replace(/(?:index)?\.html$/,""),"/"===b.charAt(b.length-1)&&(b=b.slice(0,-1)),""===b&&(b=this.url),b.length>40&&(c=b.indexOf("/"))!==-1&&(d=b.lastIndexOf("/"))!==-1&&d!==c&&(c+b.length-d<40&&(d=-(40-(c+1))),b=b.slice(0,c+1)+"\u2026"+b.slice(d)),a.$(this.getEl().firstChild).attr("href",this.url).text(b))}}),a.ui.WPLinkInput=a.ui.Control.extend({renderHtml:function(){return'<div id="'+this._id+'" class="wp-link-input"><input type="text" value="" placeholder="'+a.translate("Paste URL or type to search")+'" /><input type="text" style="display:none" value="" /></div>'},setURL:function(a){this.getEl().firstChild.value=a},getURL:function(){return a.trim(this.getEl().firstChild.value)},getLinkText:function(){var b=this.getEl().firstChild.nextSibling.value;return a.trim(b)?b.replace(/[\r\n\t ]+/g," "):""},reset:function(){var a=this.getEl().firstChild;a.value="",a.nextSibling.value=""}}),a.PluginManager.add("wplink",function(b){function c(){var a,c,d=b.selection.getNode(),e=b.dom.getParent(d,"a[href]");return e||(c=b.selection.getContent({format:"raw"}),c&&c.indexOf("</a>")!==-1&&(a=c.match(/href="([^">]+)"/),a&&a[1]&&(e=b.$('a[href="'+a[1]+'"]',d)[0]),e&&b.selection.select(e))),e}function d(){b.$("a").each(function(a,c){var d=b.$(c);"_wp_link_placeholder"===d.attr("href")?b.dom.remove(c,!0):d.attr("data-wplink-edit")&&d.attr("data-wplink-edit",null)})}function e(a,b){return a.replace(/(<a [^>]+>)([\s\S]*?)<\/a>/g,function(a,c,d){return c.indexOf(' href="_wp_link_placeholder"')>-1?d:(b&&(c=c.replace(/ data-wplink-edit="true"/g,"")),c=c.replace(/ data-wplink-url-error="true"/g,""),c+d+"</a>")})}function f(a){var c=b.$(a),d=c.attr("href");d&&"undefined"!=typeof n&&(s=!1,!/^http/i.test(d)||p.test(d)&&q.test(d)?c.removeAttr("data-wplink-url-error"):(s=!0,c.attr("data-wplink-url-error","true"),r(b.translate("Warning: the link has been inserted but may have errors. Please test it."),"assertive")))}var g,h,i,j,k,l,m,n=window.jQuery,o=/^(mailto:)?[a-z0-9._%+-]+@[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}$/i,p=/^https?:\/\/([^\s/?.#-][^\s\/?.#]*\.?)+(\/[^\s"]*)?$/i,q=/^https?:\/\/[^\/]+\.[^\/]+($|\/)/i,r="undefined"!=typeof window.wp&&window.wp.a11y&&window.wp.a11y.speak?window.wp.a11y.speak:function(){},s=!1;return b.on("preinit",function(){if(b.wp&&b.wp._createToolbar){g=b.wp._createToolbar(["wp_link_preview","wp_link_edit","wp_link_remove"],!0);var a=["wp_link_input","wp_link_apply"];"undefined"!=typeof window.wpLink&&a.push("wp_link_advanced"),h=b.wp._createToolbar(a,!0),h.on("show",function(){"undefined"!=typeof window.wpLink&&window.wpLink.modalOpen||window.setTimeout(function(){var a=h.$el.find("input.ui-autocomplete-input")[0],b=k&&(k.textContent||k.innerText);a&&(!a.value&&b&&"undefined"!=typeof window.wpLink&&(a.value=window.wpLink.getUrlFromSelection(b)),l||(a.focus(),a.select()))})}),h.on("hide",function(){h.scrolling||b.execCommand("wp_link_cancel")})}}),b.addCommand("WP_Link",function(){return a.Env.ie&&a.Env.ie<10&&"undefined"!=typeof window.wpLink?void window.wpLink.open(b.id):(k=c(),h.tempHide=!1,void(k?b.dom.setAttribs(k,{"data-wplink-edit":!0}):(d(),b.execCommand("mceInsertLink",!1,{href:"_wp_link_placeholder"}),k=b.$('a[href="_wp_link_placeholder"]')[0],b.nodeChanged())))}),b.addCommand("wp_link_apply",function(){if(!h.scrolling){var c,d;if(k){if(c=j.getURL(),d=j.getLinkText(),b.focus(),!c)return void b.dom.remove(k,!0);/^(?:[a-z]+:|#|\?|\.|\/)/.test(c)||o.test(c)||(c="http://"+c),b.dom.setAttribs(k,{href:c,"data-wplink-edit":null}),a.trim(k.innerHTML)||b.$(k).text(d||c),f(k)}j.reset(),b.nodeChanged(),"undefined"==typeof window.wpLinkL10n||s||r(window.wpLinkL10n.linkInserted)}}),b.addCommand("wp_link_cancel",function(){h.tempHide||(j.reset(),d())}),b.addCommand("wp_unlink",function(){b.execCommand("unlink"),h.tempHide=!1,b.execCommand("wp_link_cancel")}),b.addShortcut("access+a","","WP_Link"),b.addShortcut("access+s","","wp_unlink"),b.addShortcut("meta+k","","WP_Link"),b.addButton("link",{icon:"link",tooltip:"Insert/edit link",cmd:"WP_Link",stateSelector:"a[href]"}),b.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink"}),b.addMenuItem("link",{icon:"link",text:"Insert/edit link",cmd:"WP_Link",stateSelector:"a[href]",context:"insert",prependToContext:!0}),b.on("pastepreprocess",function(c){var d=c.content,e=/^(?:https?:)?\/\/\S+$/i;b.selection.isCollapsed()||e.test(b.selection.getContent())||(d=d.replace(/<[^>]+>/g,""),d=a.trim(d),e.test(d)&&(b.execCommand("mceInsertLink",!1,{href:b.dom.decode(d)}),c.preventDefault()))}),b.on("savecontent",function(a){a.content=e(a.content,!0)}),b.on("BeforeAddUndo",function(a){a.lastLevel&&a.lastLevel.content&&a.level.content&&a.lastLevel.content===e(a.level.content)&&a.preventDefault()}),b.on("keydown",function(c){27===c.keyCode&&b.execCommand("wp_link_cancel"),c.altKey||a.Env.mac&&(!c.metaKey||c.ctrlKey)||!a.Env.mac&&!c.ctrlKey||89!==c.keyCode&&90!==c.keyCode||(l=!0,window.clearTimeout(m),m=window.setTimeout(function(){l=!1},500))}),b.addButton("wp_link_preview",{type:"WPLinkPreview",onPostRender:function(){i=this}}),b.addButton("wp_link_input",{type:"WPLinkInput",onPostRender:function(){var c,d,e,f=this.getEl(),g=f.firstChild;j=this,n&&n.ui&&n.ui.autocomplete&&(c=n(g),c.on("keydown",function(){c.removeAttr("aria-activedescendant")}).autocomplete({source:function(a,b){return e===a.term?void b(d):/^https?:/.test(a.term)||a.term.indexOf(".")!==-1?b():(n.post(window.ajaxurl,{action:"wp-link-ajax",page:1,search:a.term,_ajax_linking_nonce:n("#_ajax_linking_nonce").val()},function(a){d=a,b(a)},"json"),void(e=a.term))},focus:function(a,b){c.attr("aria-activedescendant","mce-wp-autocomplete-"+b.item.ID),a.preventDefault()},select:function(a,b){return c.val(b.item.permalink),n(f.firstChild.nextSibling).val(b.item.title),9===a.keyCode&&"undefined"!=typeof window.wpLinkL10n&&r(window.wpLinkL10n.linkSelected),!1},open:function(){c.attr("aria-expanded","true"),h.blockHide=!0},close:function(){c.attr("aria-expanded","false"),h.blockHide=!1},minLength:2,position:{my:"left top+2"},messages:{noResults:"undefined"!=typeof window.uiAutocompleteL10n?window.uiAutocompleteL10n.noResults:"",results:function(a){if("undefined"!=typeof window.uiAutocompleteL10n)return a>1?window.uiAutocompleteL10n.manyResults.replace("%d",a):window.uiAutocompleteL10n.oneResult}}}).autocomplete("instance")._renderItem=function(a,b){return n('<li role="option" id="mce-wp-autocomplete-'+b.ID+'">').append("<span>"+b.title+'</span>&nbsp;<span class="wp-editor-float-right">'+b.info+"</span>").appendTo(a)},c.attr({role:"combobox","aria-autocomplete":"list","aria-expanded":"false","aria-owns":c.autocomplete("widget").attr("id")}).on("focus",function(){var a=c.val();a&&!/^https?:/.test(a)&&c.autocomplete("search")}).autocomplete("widget").addClass("wplink-autocomplete").attr("role","listbox").removeAttr("tabindex").on("menufocus",function(a,b){b.item.attr("aria-selected","true")}).on("menublur",function(){n(this).find('[aria-selected="true"]').removeAttr("aria-selected")})),a.$(g).on("keydown",function(a){13===a.keyCode&&(b.execCommand("wp_link_apply"),a.preventDefault())})}}),b.on("wptoolbar",function(a){var c,d,e,f=b.dom.getParent(a.element,"a");return"undefined"!=typeof window.wpLink&&window.wpLink.modalOpen?void(h.tempHide=!0):(h.tempHide=!1,void(f?(c=b.$(f),d=c.attr("href"),e=c.attr("data-wplink-edit"),"_wp_link_placeholder"===d||e?("_wp_link_placeholder"===d||j.getURL()||j.setURL(d),a.element=f,a.toolbar=h):d&&!c.find("img").length&&(i.setURL(d),a.element=f,a.toolbar=g,"true"===c.attr("data-wplink-url-error")?g.$el.find(".wp-link-preview a").addClass("wplink-url-error"):(g.$el.find(".wp-link-preview a").removeClass("wplink-url-error"),s=!1))):h.visible()&&b.execCommand("wp_link_cancel")))}),b.addButton("wp_link_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",cmd:"WP_Link"}),b.addButton("wp_link_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",cmd:"wp_unlink"}),b.addButton("wp_link_advanced",{tooltip:"Link options",icon:"dashicon dashicons-admin-generic",onclick:function(){if("undefined"!=typeof window.wpLink){var c=j.getURL()||null,d=j.getLinkText()||null;a.Env.ie&&b.focus(),window.wpLink.open(b.id,c,d,k),h.tempHide=!0,j.reset()}}}),b.addButton("wp_link_apply",{tooltip:"Apply",icon:"dashicon dashicons-editor-break",cmd:"wp_link_apply",classes:"widget btn primary"}),{close:function(){h.tempHide=!1,b.execCommand("wp_link_cancel")},checkLink:f}})}(window.tinymce);
\ No newline at end of file
+!function(a){a.ui.WPLinkPreview=a.ui.Control.extend({url:"#",renderHtml:function(){return'<div id="'+this._id+'" class="wp-link-preview"><a href="'+this.url+'" target="_blank" tabindex="-1">'+this.url+"</a></div>"},setURL:function(b){var c,d;this.url!==b&&(this.url=b,b=window.decodeURIComponent(b),b=b.replace(/^(?:https?:)?\/\/(?:www\.)?/,""),(c=b.indexOf("?"))!==-1&&(b=b.slice(0,c)),(c=b.indexOf("#"))!==-1&&(b=b.slice(0,c)),b=b.replace(/(?:index)?\.html$/,""),"/"===b.charAt(b.length-1)&&(b=b.slice(0,-1)),""===b&&(b=this.url),b.length>40&&(c=b.indexOf("/"))!==-1&&(d=b.lastIndexOf("/"))!==-1&&d!==c&&(c+b.length-d<40&&(d=-(40-(c+1))),b=b.slice(0,c+1)+"\u2026"+b.slice(d)),a.$(this.getEl().firstChild).attr("href",this.url).text(b))}}),a.ui.WPLinkInput=a.ui.Control.extend({renderHtml:function(){return'<div id="'+this._id+'" class="wp-link-input"><input type="text" value="" placeholder="'+a.translate("Paste URL or type to search")+'" /><input type="text" style="display:none" value="" /></div>'},setURL:function(a){this.getEl().firstChild.value=a},getURL:function(){return a.trim(this.getEl().firstChild.value)},getLinkText:function(){var b=this.getEl().firstChild.nextSibling.value;return a.trim(b)?b.replace(/[\r\n\t ]+/g," "):""},reset:function(){var a=this.getEl().firstChild;a.value="",a.nextSibling.value=""}}),a.PluginManager.add("wplink",function(b){function c(){var a,c,d=b.selection.getNode(),e=b.dom.getParent(d,"a[href]");return e||(c=b.selection.getContent({format:"raw"}),c&&c.indexOf("</a>")!==-1&&(a=c.match(/href="([^">]+)"/),a&&a[1]&&(e=b.$('a[href="'+a[1]+'"]',d)[0]),e&&b.selection.select(e))),e}function d(){b.$("a").each(function(a,c){var d=b.$(c);"_wp_link_placeholder"===d.attr("href")?b.dom.remove(c,!0):d.attr("data-wplink-edit")&&d.attr("data-wplink-edit",null)})}function e(a,b){return a.replace(/(<a [^>]+>)([\s\S]*?)<\/a>/g,function(a,c,d){return c.indexOf(' href="_wp_link_placeholder"')>-1?d:(b&&(c=c.replace(/ data-wplink-edit="true"/g,"")),c=c.replace(/ data-wplink-url-error="true"/g,""),c+d+"</a>")})}function f(a){var c=b.$(a),d=c.attr("href");d&&"undefined"!=typeof n&&(s=!1,!/^http/i.test(d)||p.test(d)&&q.test(d)?c.removeAttr("data-wplink-url-error"):(s=!0,c.attr("data-wplink-url-error","true"),r(b.translate("Warning: the link has been inserted but may have errors. Please test it."),"assertive")))}var g,h,i,j,k,l,m,n=window.jQuery,o=/^(mailto:)?[a-z0-9._%+-]+@[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}$/i,p=/^https?:\/\/([^\s\/?.#-][^\s\/?.#]*\.?)+(\/[^\s"]*)?$/i,q=/^https?:\/\/[^\/]+\.[^\/]+($|\/)/i,r="undefined"!=typeof window.wp&&window.wp.a11y&&window.wp.a11y.speak?window.wp.a11y.speak:function(){},s=!1;return b.on("preinit",function(){if(b.wp&&b.wp._createToolbar){g=b.wp._createToolbar(["wp_link_preview","wp_link_edit","wp_link_remove"],!0);var a=["wp_link_input","wp_link_apply"];"undefined"!=typeof window.wpLink&&a.push("wp_link_advanced"),h=b.wp._createToolbar(a,!0),h.on("show",function(){"undefined"!=typeof window.wpLink&&window.wpLink.modalOpen||window.setTimeout(function(){var a=h.$el.find("input.ui-autocomplete-input")[0],b=k&&(k.textContent||k.innerText);a&&(!a.value&&b&&"undefined"!=typeof window.wpLink&&(a.value=window.wpLink.getUrlFromSelection(b)),l||(a.focus(),a.select()))})}),h.on("hide",function(){h.scrolling||b.execCommand("wp_link_cancel")})}}),b.addCommand("WP_Link",function(){return a.Env.ie&&a.Env.ie<10&&"undefined"!=typeof window.wpLink?void window.wpLink.open(b.id):(k=c(),h.tempHide=!1,void(k?b.dom.setAttribs(k,{"data-wplink-edit":!0}):(d(),b.execCommand("mceInsertLink",!1,{href:"_wp_link_placeholder"}),k=b.$('a[href="_wp_link_placeholder"]')[0],b.nodeChanged())))}),b.addCommand("wp_link_apply",function(){if(!h.scrolling){var c,d;if(k){if(c=j.getURL(),d=j.getLinkText(),b.focus(),!c)return void b.dom.remove(k,!0);/^(?:[a-z]+:|#|\?|\.|\/)/.test(c)||o.test(c)||(c="http://"+c),b.dom.setAttribs(k,{href:c,"data-wplink-edit":null}),a.trim(k.innerHTML)||b.$(k).text(d||c),f(k)}j.reset(),b.nodeChanged(),"undefined"==typeof window.wpLinkL10n||s||r(window.wpLinkL10n.linkInserted)}}),b.addCommand("wp_link_cancel",function(){h.tempHide||(j.reset(),d())}),b.addCommand("wp_unlink",function(){b.execCommand("unlink"),h.tempHide=!1,b.execCommand("wp_link_cancel")}),b.addShortcut("access+a","","WP_Link"),b.addShortcut("access+s","","wp_unlink"),b.addShortcut("meta+k","","WP_Link"),b.addButton("link",{icon:"link",tooltip:"Insert/edit link",cmd:"WP_Link",stateSelector:"a[href]"}),b.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink"}),b.addMenuItem("link",{icon:"link",text:"Insert/edit link",cmd:"WP_Link",stateSelector:"a[href]",context:"insert",prependToContext:!0}),b.on("pastepreprocess",function(c){var d=c.content,e=/^(?:https?:)?\/\/\S+$/i;b.selection.isCollapsed()||e.test(b.selection.getContent())||(d=d.replace(/<[^>]+>/g,""),d=a.trim(d),e.test(d)&&(b.execCommand("mceInsertLink",!1,{href:b.dom.decode(d)}),c.preventDefault()))}),b.on("savecontent",function(a){a.content=e(a.content,!0)}),b.on("BeforeAddUndo",function(a){a.lastLevel&&a.lastLevel.content&&a.level.content&&a.lastLevel.content===e(a.level.content)&&a.preventDefault()}),b.on("keydown",function(c){27===c.keyCode&&b.execCommand("wp_link_cancel"),c.altKey||a.Env.mac&&(!c.metaKey||c.ctrlKey)||!a.Env.mac&&!c.ctrlKey||89!==c.keyCode&&90!==c.keyCode||(l=!0,window.clearTimeout(m),m=window.setTimeout(function(){l=!1},500))}),b.addButton("wp_link_preview",{type:"WPLinkPreview",onPostRender:function(){i=this}}),b.addButton("wp_link_input",{type:"WPLinkInput",onPostRender:function(){var c,d,e,f=this.getEl(),g=f.firstChild;j=this,n&&n.ui&&n.ui.autocomplete&&(c=n(g),c.on("keydown",function(){c.removeAttr("aria-activedescendant")}).autocomplete({source:function(a,b){return e===a.term?void b(d):/^https?:/.test(a.term)||a.term.indexOf(".")!==-1?b():(n.post(window.ajaxurl,{action:"wp-link-ajax",page:1,search:a.term,_ajax_linking_nonce:n("#_ajax_linking_nonce").val()},function(a){d=a,b(a)},"json"),void(e=a.term))},focus:function(a,b){c.attr("aria-activedescendant","mce-wp-autocomplete-"+b.item.ID),a.preventDefault()},select:function(a,b){return c.val(b.item.permalink),n(f.firstChild.nextSibling).val(b.item.title),9===a.keyCode&&"undefined"!=typeof window.wpLinkL10n&&r(window.wpLinkL10n.linkSelected),!1},open:function(){c.attr("aria-expanded","true"),h.blockHide=!0},close:function(){c.attr("aria-expanded","false"),h.blockHide=!1},minLength:2,position:{my:"left top+2"},messages:{noResults:"undefined"!=typeof window.uiAutocompleteL10n?window.uiAutocompleteL10n.noResults:"",results:function(a){if("undefined"!=typeof window.uiAutocompleteL10n)return a>1?window.uiAutocompleteL10n.manyResults.replace("%d",a):window.uiAutocompleteL10n.oneResult}}}).autocomplete("instance")._renderItem=function(a,b){return n('<li role="option" id="mce-wp-autocomplete-'+b.ID+'">').append("<span>"+b.title+'</span>&nbsp;<span class="wp-editor-float-right">'+b.info+"</span>").appendTo(a)},c.attr({role:"combobox","aria-autocomplete":"list","aria-expanded":"false","aria-owns":c.autocomplete("widget").attr("id")}).on("focus",function(){var a=c.val();a&&!/^https?:/.test(a)&&c.autocomplete("search")}).autocomplete("widget").addClass("wplink-autocomplete").attr("role","listbox").removeAttr("tabindex").on("menufocus",function(a,b){b.item.attr("aria-selected","true")}).on("menublur",function(){n(this).find('[aria-selected="true"]').removeAttr("aria-selected")})),a.$(g).on("keydown",function(a){13===a.keyCode&&(b.execCommand("wp_link_apply"),a.preventDefault())})}}),b.on("wptoolbar",function(a){var c,d,e,f=b.dom.getParent(a.element,"a");return"undefined"!=typeof window.wpLink&&window.wpLink.modalOpen?void(h.tempHide=!0):(h.tempHide=!1,void(f?(c=b.$(f),d=c.attr("href"),e=c.attr("data-wplink-edit"),"_wp_link_placeholder"===d||e?("_wp_link_placeholder"===d||j.getURL()||j.setURL(d),a.element=f,a.toolbar=h):d&&!c.find("img").length&&(i.setURL(d),a.element=f,a.toolbar=g,"true"===c.attr("data-wplink-url-error")?g.$el.find(".wp-link-preview a").addClass("wplink-url-error"):(g.$el.find(".wp-link-preview a").removeClass("wplink-url-error"),s=!1))):h.visible()&&b.execCommand("wp_link_cancel")))}),b.addButton("wp_link_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",cmd:"WP_Link"}),b.addButton("wp_link_remove",{tooltip:"Remove link",icon:"dashicon dashicons-editor-unlink",cmd:"wp_unlink"}),b.addButton("wp_link_advanced",{tooltip:"Link options",icon:"dashicon dashicons-admin-generic",onclick:function(){if("undefined"!=typeof window.wpLink){var c=j.getURL()||null,d=j.getLinkText()||null;a.Env.ie&&b.focus(),window.wpLink.open(b.id,c,d,k),h.tempHide=!0,j.reset()}}}),b.addButton("wp_link_apply",{tooltip:"Apply",icon:"dashicon dashicons-editor-break",cmd:"wp_link_apply",classes:"widget btn primary"}),{close:function(){h.tempHide=!1,b.execCommand("wp_link_cancel")},checkLink:f}})}(window.tinymce);
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js b/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js
index 5f3ff1a82..236775034 100644
--- a/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js
+++ b/wp-includes/js/tinymce/plugins/wptextpattern/plugin.js
@@ -3,27 +3,73 @@
  *
  * @since 4.3.0
  *
- * This plugin can automatically format text patterns as you type. It includes two patterns:
+ * This plugin can automatically format text patterns as you type. It includes several groups of patterns.
+ *
+ * Start of line patterns:
+ *  As-you-type:
  *  - Unordered list (`* ` and `- `).
  *  - Ordered list (`1. ` and `1) `).
  *
+ *  On enter:
+ *  - h2 (## ).
+ *  - h3 (### ).
+ *  - h4 (#### ).
+ *  - h5 (##### ).
+ *  - h6 (###### ).
+ *  - blockquote (> ).
+ *  - hr (---).
+ *
+ * Inline patterns:
+ *  - <code> (`) (backtick).
+ *
  * If the transformation in unwanted, the user can undo the change by pressing backspace,
  * using the undo shortcut, or the undo button in the toolbar.
+ *
+ * Setting for the patterns can be overridden by plugins by using the `tiny_mce_before_init` PHP filter.
+ * The setting name is `wptextpattern` and the value is an object containing override arrays for each
+ * patterns group. There are three groups: "space", "enter", and "inline". Example (PHP):
+ *
+ * add_filter( 'tiny_mce_before_init', 'my_mce_init_wptextpattern' );
+ * function my_mce_init_wptextpattern( $init ) {
+ *   $init['wptextpattern'] = wp_json_encode( array(
+ *      'inline' => array(
+ *        array( 'delimiter' => '**', 'format' => 'bold' ),
+ *        array( 'delimiter' => '__', 'format' => 'italic' ),
+ *      ),
+ *   ) );
+ *
+ *   return $init;
+ * }
+ *
+ * Note that setting this will override the default text patterns. You will need to include them
+ * in your settings array if you want to keep them working.
  */
 ( function( tinymce, setTimeout ) {
 	if ( tinymce.Env.ie && tinymce.Env.ie < 9 ) {
 		return;
 	}
 
+	/**
+	 * Escapes characters for use in a Regular Expression.
+	 *
+	 * @param  {String} string Characters to escape
+	 *
+	 * @return {String}        Escaped characters
+	 */
+	function escapeRegExp( string ) {
+		return string.replace( /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&' );
+	}
+
 	tinymce.PluginManager.add( 'wptextpattern', function( editor ) {
 		var VK = tinymce.util.VK;
+		var settings = editor.settings.wptextpattern || {};
 
-		var spacePatterns = [
+		var spacePatterns = settings.space || [
 			{ regExp: /^[*-]\s/, cmd: 'InsertUnorderedList' },
 			{ regExp: /^1[.)]\s/, cmd: 'InsertOrderedList' }
 		];
 
-		var enterPatterns = [
+		var enterPatterns = settings.enter || [
 			{ start: '##', format: 'h2' },
 			{ start: '###', format: 'h3' },
 			{ start: '####', format: 'h4' },
@@ -33,20 +79,11 @@
 			{ regExp: /^(-){3,}$/, element: 'hr' }
 		];
 
-		var inlinePatterns = [
-			{ start: '`', end: '`', format: 'code' }
+		var inlinePatterns = settings.inline || [
+			{ delimiter: '`', format: 'code' }
 		];
 
 		var canUndo;
-		var chars = [];
-
-		tinymce.each( inlinePatterns, function( pattern ) {
-			tinymce.each( ( pattern.start + pattern.end ).split( '' ), function( c ) {
-				if ( tinymce.inArray( chars, c ) === -1 ) {
-					chars.push( c );
-				}
-			} );
-		} );
 
 		editor.on( 'selectionchange', function() {
 			canUndo = null;
@@ -59,12 +96,14 @@
 				event.stopImmediatePropagation();
 			}
 
-			if ( event.keyCode === VK.ENTER && ! VK.modifierPressed( event ) ) {
-				enter();
+			if ( VK.metaKeyPressed( event ) ) {
+				return;
 			}
 
+			if ( event.keyCode === VK.ENTER ) {
+				enter();
 			// Wait for the browser to insert the character.
-			if ( event.keyCode === VK.SPACEBAR && ! event.ctrlKey && ! event.metaKey && ! event.altKey ) {
+			} else if ( event.keyCode === VK.SPACEBAR ) {
 				setTimeout( space );
 			} else if ( event.keyCode > 47 && ! ( event.keyCode >= 91 && event.keyCode <= 93 ) ) {
 				setTimeout( inline );
@@ -81,40 +120,55 @@
 			var format;
 			var zero;
 
+			// We need a non empty text node with an offset greater than zero.
 			if ( ! node || node.nodeType !== 3 || ! node.data.length || ! offset ) {
 				return;
 			}
 
-			if ( tinymce.inArray( chars, node.data.charAt( offset - 1 ) ) === -1 ) {
-				return;
-			}
+			var string = node.data.slice( 0, offset );
+			var lastChar = node.data.charAt( offset - 1 );
 
-			function findStart( node ) {
-				var i = inlinePatterns.length;
-				var offset;
+			tinymce.each( inlinePatterns, function( p ) {
+				// Character before selection should be delimiter.
+				if ( lastChar !== p.delimiter.slice( -1 ) ) {
+					return;
+				}
+
+				var escDelimiter = escapeRegExp( p.delimiter );
+				var delimiterFirstChar = p.delimiter.charAt( 0 );
+				var regExp = new RegExp( '(.*)' + escDelimiter + '.+' + escDelimiter + '$' );
+				var match = string.match( regExp );
 
-				while ( i-- ) {
-					pattern = inlinePatterns[ i ];
-					offset = node.data.indexOf( pattern.end );
+				if ( ! match ) {
+					return;
+				}
 
-					if ( offset !== -1 ) {
-						return offset;
+				startOffset = match[1].length;
+				endOffset = offset - p.delimiter.length;
+
+				var before = string.charAt( startOffset - 1 );
+				var after = string.charAt( startOffset + p.delimiter.length );
+
+				// test*test* => format applied
+				// test *test* => applied
+				// test* test* => not applied
+				if ( startOffset && /\S/.test( before ) ) {
+					if ( /\s/.test( after ) || before === delimiterFirstChar ) {
+						return;
 					}
 				}
-			}
 
-			startOffset = findStart( node );
-			endOffset = node.data.lastIndexOf( pattern.end );
+				// Do not replace when only whitespace and delimiter characters.
+				if ( ( new RegExp( '^[\\s' + escapeRegExp( delimiterFirstChar ) + ']+$' ) ).test( string.slice( startOffset, endOffset ) ) ) {
+					return;
+				}
 
-			if ( startOffset === endOffset || endOffset === -1 ) {
-				return;
-			}
+				pattern = p;
 
-			if ( endOffset - startOffset <= pattern.start.length ) {
-				return;
-			}
+				return false;
+			} );
 
-			if ( node.data.slice( startOffset + pattern.start.length, endOffset ).indexOf( pattern.start.slice( 0, 1 ) ) !== -1 ) {
+			if ( ! pattern ) {
 				return;
 			}
 
@@ -124,13 +178,13 @@
 				editor.undoManager.add();
 
 				editor.undoManager.transact( function() {
-					node.insertData( offset, '\u200b' );
+					node.insertData( offset, '\uFEFF' );
 
 					node = node.splitText( startOffset );
 					zero = node.splitText( offset - startOffset );
 
-					node.deleteData( 0, pattern.start.length );
-					node.deleteData( node.data.length - pattern.end.length, pattern.end.length );
+					node.deleteData( 0, pattern.delimiter.length );
+					node.deleteData( node.data.length - pattern.delimiter.length, pattern.delimiter.length );
 
 					editor.formatter.apply( pattern.format, {}, node );
 
@@ -145,7 +199,7 @@
 						var offset;
 
 						if ( zero ) {
-							offset = zero.data.indexOf( '\u200b' );
+							offset = zero.data.indexOf( '\uFEFF' );
 
 							if ( offset !== -1 ) {
 								zero.deleteData( offset, offset + 1 );
diff --git a/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js b/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js
index 9de68ef33..c4e7cbba5 100644
--- a/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/wptextpattern/plugin.min.js
@@ -1 +1 @@
-!function(a,b){a.Env.ie&&a.Env.ie<9||a.PluginManager.add("wptextpattern",function(c){function d(){function d(a){for(var b,c=m.length;c--;)if(g=m[c],b=a.data.indexOf(g.end),b!==-1)return b}var e,f,g,h,j,k=c.selection.getRng(),l=k.startContainer,o=k.startOffset;l&&3===l.nodeType&&l.data.length&&o&&a.inArray(n,l.data.charAt(o-1))!==-1&&(e=d(l),f=l.data.lastIndexOf(g.end),e!==f&&f!==-1&&(f-e<=g.start.length||l.data.slice(e+g.start.length,f).indexOf(g.start.slice(0,1))===-1&&(h=c.formatter.get(g.format),h&&h[0].inline&&(c.undoManager.add(),c.undoManager.transact(function(){l.insertData(o,"\u200b"),l=l.splitText(e),j=l.splitText(o-e),l.deleteData(0,g.start.length),l.deleteData(l.data.length-g.end.length,g.end.length),c.formatter.apply(g.format,{},l),c.selection.setCursorLocation(j,1)}),b(function(){i="space",c.once("selectionchange",function(){var a;j&&(a=j.data.indexOf("\u200b"),a!==-1&&j.deleteData(a,a+1))})})))))}function e(a){var b,d=c.dom.getParent(a,"p");if(d){for(;(b=d.firstChild)&&3!==b.nodeType;)d=b;if(b)return b.data||(b=b.nextSibling&&3===b.nextSibling.nodeType?b.nextSibling:null),b}}function f(){var d,f,g=c.selection.getRng(),h=g.startContainer;h&&e(h)===h&&(d=h.parentNode,f=h.data,a.each(k,function(a){var e=f.match(a.regExp);if(e&&g.startOffset===e[0].length)return c.undoManager.add(),c.undoManager.transact(function(){h.deleteData(0,e[0].length),d.innerHTML||d.appendChild(document.createElement("br")),c.selection.setCursorLocation(d),c.execCommand(a.cmd)}),b(function(){i="space"}),!1}))}function g(){var d,f,g,j=c.selection.getRng(),k=j.startContainer,m=e(k),n=l.length;if(m){for(d=m.data;n--;)if(l[n].start){if(0===d.indexOf(l[n].start)){f=l[n];break}}else if(l[n].regExp&&l[n].regExp.test(d)){f=l[n];break}f&&(m===k&&a.trim(d)===f.start||c.once("keyup",function(){c.undoManager.add(),c.undoManager.transact(function(){f.format?(c.formatter.apply(f.format,{},m),m.replaceData(0,m.data.length,h(m.data.slice(f.start.length)))):f.element&&(g=m.parentNode&&m.parentNode.parentNode,g&&g.replaceChild(document.createElement(f.element),m.parentNode))}),b(function(){i="enter"})}))}}function h(a){return a?a.replace(/^\s+/,""):""}var i,j=a.util.VK,k=[{regExp:/^[*-]\s/,cmd:"InsertUnorderedList"},{regExp:/^1[.)]\s/,cmd:"InsertOrderedList"}],l=[{start:"##",format:"h2"},{start:"###",format:"h3"},{start:"####",format:"h4"},{start:"#####",format:"h5"},{start:"######",format:"h6"},{start:">",format:"blockquote"},{regExp:/^(-){3,}$/,element:"hr"}],m=[{start:"`",end:"`",format:"code"}],n=[];a.each(m,function(b){a.each((b.start+b.end).split(""),function(b){a.inArray(n,b)===-1&&n.push(b)})}),c.on("selectionchange",function(){i=null}),c.on("keydown",function(a){(i&&27===a.keyCode||"space"===i&&a.keyCode===j.BACKSPACE)&&(c.undoManager.undo(),a.preventDefault(),a.stopImmediatePropagation()),a.keyCode!==j.ENTER||j.modifierPressed(a)||g(),a.keyCode!==j.SPACEBAR||a.ctrlKey||a.metaKey||a.altKey?a.keyCode>47&&!(a.keyCode>=91&&a.keyCode<=93)&&b(d):b(f)},!0)})}(window.tinymce,window.setTimeout);
\ No newline at end of file
+!function(a,b){function c(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}a.Env.ie&&a.Env.ie<9||a.PluginManager.add("wptextpattern",function(d){function e(){var e,f,g,h,i,k=d.selection.getRng(),l=k.startContainer,m=k.startOffset;if(l&&3===l.nodeType&&l.data.length&&m){var n=l.data.slice(0,m),p=l.data.charAt(m-1);a.each(o,function(a){if(p===a.delimiter.slice(-1)){var b=c(a.delimiter),d=a.delimiter.charAt(0),h=new RegExp("(.*)"+b+".+"+b+"$"),i=n.match(h);if(i){e=i[1].length,f=m-a.delimiter.length;var j=n.charAt(e-1),k=n.charAt(e+a.delimiter.length);if(!(e&&/\S/.test(j)&&(/\s/.test(k)||j===d)||new RegExp("^[\\s"+c(d)+"]+$").test(n.slice(e,f))))return g=a,!1}}}),g&&(h=d.formatter.get(g.format),h&&h[0].inline&&(d.undoManager.add(),d.undoManager.transact(function(){l.insertData(m,"\ufeff"),l=l.splitText(e),i=l.splitText(m-e),l.deleteData(0,g.delimiter.length),l.deleteData(l.data.length-g.delimiter.length,g.delimiter.length),d.formatter.apply(g.format,{},l),d.selection.setCursorLocation(i,1)}),b(function(){j="space",d.once("selectionchange",function(){var a;i&&(a=i.data.indexOf("\ufeff"),a!==-1&&i.deleteData(a,a+1))})})))}}function f(a){var b,c=d.dom.getParent(a,"p");if(c){for(;(b=c.firstChild)&&3!==b.nodeType;)c=b;if(b)return b.data||(b=b.nextSibling&&3===b.nextSibling.nodeType?b.nextSibling:null),b}}function g(){var c,e,g=d.selection.getRng(),h=g.startContainer;h&&f(h)===h&&(c=h.parentNode,e=h.data,a.each(m,function(a){var f=e.match(a.regExp);if(f&&g.startOffset===f[0].length)return d.undoManager.add(),d.undoManager.transact(function(){h.deleteData(0,f[0].length),c.innerHTML||c.appendChild(document.createElement("br")),d.selection.setCursorLocation(c),d.execCommand(a.cmd)}),b(function(){j="space"}),!1}))}function h(){var c,e,g,h=d.selection.getRng(),k=h.startContainer,l=f(k),m=n.length;if(l){for(c=l.data;m--;)if(n[m].start){if(0===c.indexOf(n[m].start)){e=n[m];break}}else if(n[m].regExp&&n[m].regExp.test(c)){e=n[m];break}e&&(l===k&&a.trim(c)===e.start||d.once("keyup",function(){d.undoManager.add(),d.undoManager.transact(function(){e.format?(d.formatter.apply(e.format,{},l),l.replaceData(0,l.data.length,i(l.data.slice(e.start.length)))):e.element&&(g=l.parentNode&&l.parentNode.parentNode,g&&g.replaceChild(document.createElement(e.element),l.parentNode))}),b(function(){j="enter"})}))}}function i(a){return a?a.replace(/^\s+/,""):""}var j,k=a.util.VK,l=d.settings.wptextpattern||{},m=l.space||[{regExp:/^[*-]\s/,cmd:"InsertUnorderedList"},{regExp:/^1[.)]\s/,cmd:"InsertOrderedList"}],n=l.enter||[{start:"##",format:"h2"},{start:"###",format:"h3"},{start:"####",format:"h4"},{start:"#####",format:"h5"},{start:"######",format:"h6"},{start:">",format:"blockquote"},{regExp:/^(-){3,}$/,element:"hr"}],o=l.inline||[{delimiter:"`",format:"code"}];d.on("selectionchange",function(){j=null}),d.on("keydown",function(a){(j&&27===a.keyCode||"space"===j&&a.keyCode===k.BACKSPACE)&&(d.undoManager.undo(),a.preventDefault(),a.stopImmediatePropagation()),k.metaKeyPressed(a)||(a.keyCode===k.ENTER?h():a.keyCode===k.SPACEBAR?b(g):a.keyCode>47&&!(a.keyCode>=91&&a.keyCode<=93)&&b(e))},!0)})}(window.tinymce,window.setTimeout);
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.js b/wp-includes/js/tinymce/plugins/wpview/plugin.js
index 2fc0e4b3d..e13147483 100644
--- a/wp-includes/js/tinymce/plugins/wpview/plugin.js
+++ b/wp-includes/js/tinymce/plugins/wpview/plugin.js
@@ -92,12 +92,18 @@
 		} );
 
 		// Replace any new markers nodes with views.
-		editor.on( 'setcontent', function() {
+		editor.on( 'setcontent', function( event ) {
+			if ( event.load && ! event.initial && editor.quirks.refreshContentEditable ) {
+				// Make sure there is a selection in Gecko browsers.
+				// Or it will refresh the content internally which resets the iframes.
+				editor.quirks.refreshContentEditable();
+			}
+
 			wp.mce.views.render();
 		} );
 
 		// Empty view nodes for easier processing.
-		editor.on( 'preprocess', function( event ) {
+		editor.on( 'preprocess hide', function( event ) {
 			editor.$( 'div[data-wpview-text], p[data-wpview-marker]', event.node ).each( function( i, node ) {
 				node.innerHTML = '.';
 			} );
diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js
index 0581ce901..bec6f2ef7 100644
--- a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js
+++ b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js
@@ -1 +1 @@
-!function(a,b){a.PluginManager.add("wpview",function(c){function d(){}function e(a){return c.dom.hasClass(a,"wpview")}function f(a){function b(a,b){return"<p>"+window.decodeURIComponent(b)+"</p>"}return a?a.replace(/<div[^>]+data-wpview-text="([^"]+)"[^>]*>(?:\.|[\s\S]+?wpview-end[^>]+>\s*<\/span>\s*)?<\/div>/g,b).replace(/<p[^>]+data-wpview-marker="([^"]+)"[^>]*>[\s\S]*?<\/p>/g,b):a}return b&&b.mce&&b.mce.views?(c.on("init",function(){var a=window.MutationObserver||window.WebKitMutationObserver;a&&new a(function(){c.fire("wp-body-class-change")}).observe(c.getBody(),{attributes:!0,attributeFilter:["class"]}),c.on("wp-body-class-change",function(){var a=c.getBody().className;c.$('iframe[class="wpview-sandbox"]').each(function(b,c){if(!c.src||'javascript:""'===c.src)try{c.contentWindow.document.body.className=a}catch(d){}})})}),c.on("beforesetcontent",function(a){var d;if(a.selection||b.mce.views.unbind(),a.content){if(!a.load&&(d=c.selection.getNode(),d&&d!==c.getBody()&&/^\s*https?:\/\/\S+\s*$/i.test(a.content))){if(d=c.dom.getParent(d,"p"),!d||!/^[\s\uFEFF\u00A0]*$/.test(c.$(d).text()||""))return;d.innerHTML=""}a.content=b.mce.views.setMarkers(a.content)}}),c.on("setcontent",function(){b.mce.views.render()}),c.on("preprocess",function(a){c.$("div[data-wpview-text], p[data-wpview-marker]",a.node).each(function(a,b){b.innerHTML="."})},!0),c.on("postprocess",function(a){a.content=f(a.content)}),c.on("beforeaddundo",function(a){a.level.content=f(a.level.content)}),c.on("drop objectselected",function(a){e(a.targetClone)&&(a.targetClone=c.getDoc().createTextNode(window.decodeURIComponent(c.dom.getAttrib(a.targetClone,"data-wpview-text"))))}),c.on("pastepreprocess",function(b){var c=b.content;c&&(c=a.trim(c.replace(/<[^>]+>/g,"")),/^https?:\/\/\S+$/i.test(c)&&(b.content=c))}),c.on("resolvename",function(a){e(a.target)&&(a.name=c.dom.getAttrib(a.target,"data-wpview-type")||"object")}),c.on("click keyup",function(){var a=c.selection.getNode();e(a)&&c.dom.getAttrib(a,"data-mce-selected")&&a.setAttribute("data-mce-selected","2")}),c.addButton("wp_view_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){var a=c.selection.getNode();e(a)&&b.mce.views.edit(c,a)}}),c.addButton("wp_view_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){c.fire("cut")}}),c.once("preinit",function(){var a;c.wp&&c.wp._createToolbar&&(a=c.wp._createToolbar(["wp_view_edit","wp_view_remove"]),c.on("wptoolbar",function(b){e(b.element)&&(b.toolbar=a)}))}),c.wp=c.wp||{},c.wp.getView=d,c.wp.setViewCursor=d,{getView:d}):{getView:d}})}(window.tinymce,window.wp);
\ No newline at end of file
+!function(a,b){a.PluginManager.add("wpview",function(c){function d(){}function e(a){return c.dom.hasClass(a,"wpview")}function f(a){function b(a,b){return"<p>"+window.decodeURIComponent(b)+"</p>"}return a?a.replace(/<div[^>]+data-wpview-text="([^"]+)"[^>]*>(?:\.|[\s\S]+?wpview-end[^>]+>\s*<\/span>\s*)?<\/div>/g,b).replace(/<p[^>]+data-wpview-marker="([^"]+)"[^>]*>[\s\S]*?<\/p>/g,b):a}return b&&b.mce&&b.mce.views?(c.on("init",function(){var a=window.MutationObserver||window.WebKitMutationObserver;a&&new a(function(){c.fire("wp-body-class-change")}).observe(c.getBody(),{attributes:!0,attributeFilter:["class"]}),c.on("wp-body-class-change",function(){var a=c.getBody().className;c.$('iframe[class="wpview-sandbox"]').each(function(b,c){if(!c.src||'javascript:""'===c.src)try{c.contentWindow.document.body.className=a}catch(d){}})})}),c.on("beforesetcontent",function(a){var d;if(a.selection||b.mce.views.unbind(),a.content){if(!a.load&&(d=c.selection.getNode(),d&&d!==c.getBody()&&/^\s*https?:\/\/\S+\s*$/i.test(a.content))){if(d=c.dom.getParent(d,"p"),!d||!/^[\s\uFEFF\u00A0]*$/.test(c.$(d).text()||""))return;d.innerHTML=""}a.content=b.mce.views.setMarkers(a.content)}}),c.on("setcontent",function(a){a.load&&!a.initial&&c.quirks.refreshContentEditable&&c.quirks.refreshContentEditable(),b.mce.views.render()}),c.on("preprocess hide",function(a){c.$("div[data-wpview-text], p[data-wpview-marker]",a.node).each(function(a,b){b.innerHTML="."})},!0),c.on("postprocess",function(a){a.content=f(a.content)}),c.on("beforeaddundo",function(a){a.level.content=f(a.level.content)}),c.on("drop objectselected",function(a){e(a.targetClone)&&(a.targetClone=c.getDoc().createTextNode(window.decodeURIComponent(c.dom.getAttrib(a.targetClone,"data-wpview-text"))))}),c.on("pastepreprocess",function(b){var c=b.content;c&&(c=a.trim(c.replace(/<[^>]+>/g,"")),/^https?:\/\/\S+$/i.test(c)&&(b.content=c))}),c.on("resolvename",function(a){e(a.target)&&(a.name=c.dom.getAttrib(a.target,"data-wpview-type")||"object")}),c.on("click keyup",function(){var a=c.selection.getNode();e(a)&&c.dom.getAttrib(a,"data-mce-selected")&&a.setAttribute("data-mce-selected","2")}),c.addButton("wp_view_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){var a=c.selection.getNode();e(a)&&b.mce.views.edit(c,a)}}),c.addButton("wp_view_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){c.fire("cut")}}),c.once("preinit",function(){var a;c.wp&&c.wp._createToolbar&&(a=c.wp._createToolbar(["wp_view_edit","wp_view_remove"]),c.on("wptoolbar",function(b){e(b.element)&&(b.toolbar=a)}))}),c.wp=c.wp||{},c.wp.getView=d,c.wp.setViewCursor=d,{getView:d}):{getView:d}})}(window.tinymce,window.wp);
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/skins/wordpress/wp-content.css b/wp-includes/js/tinymce/skins/wordpress/wp-content.css
index 02adfe7e4..6f5277337 100644
--- a/wp-includes/js/tinymce/skins/wordpress/wp-content.css
+++ b/wp-includes/js/tinymce/skins/wordpress/wp-content.css
@@ -4,6 +4,11 @@ html {
 	cursor: text;
 }
 
+html.ios {
+	width: 100px;
+    min-width: 100%;
+}
+
 body {
 	font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
 	font-size: 16px;
@@ -206,6 +211,11 @@ audio {
 	visibility: hidden;
 }
 
+/* Fix for proprietary Mozilla display attribute, see #38757 */
+[_moz_abspos] {
+	outline: none;
+}
+
 a[data-wplink-url-error],
 a[data-wplink-url-error]:hover,
 a[data-wplink-url-error]:focus {
diff --git a/wp-includes/js/tinymce/themes/inlite/theme.js b/wp-includes/js/tinymce/themes/inlite/theme.js
index 13152a518..865d7982a 100644
--- a/wp-includes/js/tinymce/themes/inlite/theme.js
+++ b/wp-includes/js/tinymce/themes/inlite/theme.js
@@ -81,13 +81,56 @@ var defineGlobal = function (id, ref) {
   define(id, [], function () { return ref; });
 };
 /*jsc
-["tinymce/inlite/Theme","global!tinymce.ThemeManager","global!tinymce.util.Delay","tinymce/inlite/ui/Panel","tinymce/inlite/ui/Buttons","tinymce/inlite/core/SkinLoader","tinymce/inlite/core/SelectionMatcher","tinymce/inlite/core/ElementMatcher","tinymce/inlite/core/Matcher","tinymce/inlite/alien/Arr","tinymce/inlite/core/PredicateId","global!tinymce.util.Tools","global!tinymce.ui.Factory","global!tinymce.DOM","tinymce/inlite/ui/Toolbar","tinymce/inlite/ui/Forms","tinymce/inlite/core/Measure","tinymce/inlite/core/Layout","tinymce/inlite/file/Conversions","tinymce/inlite/file/Picker","tinymce/inlite/core/Actions","global!tinymce.EditorManager","global!tinymce.util.Promise","tinymce/inlite/alien/Uuid","tinymce/inlite/alien/Unlink","tinymce/inlite/core/UrlType","global!tinymce.geom.Rect","tinymce/inlite/core/Convert","tinymce/inlite/alien/Bookmark","global!tinymce.dom.TreeWalker","global!tinymce.dom.RangeUtils"]
+["tinymce/inlite/Theme","global!tinymce.ThemeManager","global!tinymce.util.Delay","tinymce/inlite/ui/Panel","tinymce/inlite/ui/Buttons","tinymce/inlite/core/SkinLoader","tinymce/inlite/core/SelectionMatcher","tinymce/inlite/core/ElementMatcher","tinymce/inlite/core/Matcher","tinymce/inlite/alien/Arr","tinymce/inlite/alien/EditorSettings","tinymce/inlite/core/PredicateId","global!tinymce.util.Tools","global!tinymce.ui.Factory","global!tinymce.DOM","tinymce/inlite/ui/Toolbar","tinymce/inlite/ui/Forms","tinymce/inlite/core/Measure","tinymce/inlite/core/Layout","tinymce/inlite/alien/Type","tinymce/inlite/file/Conversions","tinymce/inlite/file/Picker","tinymce/inlite/core/Actions","global!tinymce.EditorManager","global!tinymce.util.Promise","tinymce/inlite/alien/Uuid","tinymce/inlite/alien/Unlink","tinymce/inlite/core/UrlType","global!tinymce.geom.Rect","tinymce/inlite/core/Convert","tinymce/inlite/alien/Bookmark","global!tinymce.dom.TreeWalker","global!tinymce.dom.RangeUtils"]
 jsc*/
 defineGlobal("global!tinymce.ThemeManager", tinymce.ThemeManager);
 defineGlobal("global!tinymce.util.Delay", tinymce.util.Delay);
 defineGlobal("global!tinymce.util.Tools", tinymce.util.Tools);
 defineGlobal("global!tinymce.ui.Factory", tinymce.ui.Factory);
 defineGlobal("global!tinymce.DOM", tinymce.DOM);
+/**
+ * Type.js
+ *
+ * Released under LGPL License.
+ * Copyright (c) 1999-2016 Ephox Corp. All rights reserved
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+define('tinymce/inlite/alien/Type', [
+], function () {
+	var isType = function (type) {
+		return function (value) {
+			return typeof value === type;
+		};
+	};
+
+	var isArray = function (value) {
+		return Array.isArray(value);
+	};
+
+	var isNull = function (value) {
+		return value === null;
+	};
+
+	var isObject = function (predicate) {
+		return function (value) {
+			return !isNull(value) && !isArray(value) && predicate(value);
+		};
+	};
+
+	return {
+		isString: isType("string"),
+		isNumber: isType("number"),
+		isBoolean: isType("boolean"),
+		isFunction: isType("function"),
+		isObject: isObject(isType("object")),
+		isNull: isNull,
+		isArray: isArray
+	};
+});
+
 /**
  * Toolbar.js
  *
@@ -100,8 +143,9 @@ defineGlobal("global!tinymce.DOM", tinymce.DOM);
 
 define('tinymce/inlite/ui/Toolbar', [
 	'global!tinymce.util.Tools',
-	'global!tinymce.ui.Factory'
-], function (Tools, Factory) {
+	'global!tinymce.ui.Factory',
+	'tinymce/inlite/alien/Type'
+], function (Tools, Factory, Type) {
 	var setActiveItem = function (item, name) {
 		return function(state, args) {
 			var nodeName, i = args.parents.length;
@@ -161,6 +205,16 @@ define('tinymce/inlite/ui/Toolbar', [
 		};
 	};
 
+	var itemsToArray = function (items) {
+		if (Type.isArray(items)) {
+			return items;
+		} else if (Type.isString(items)) {
+			return items.split(/[ ,]/);
+		}
+
+		return [];
+	};
+
 	var create = function (editor, name, items) {
 		var toolbarItems = [], buttonGroup;
 
@@ -168,7 +222,7 @@ define('tinymce/inlite/ui/Toolbar', [
 			return;
 		}
 
-		Tools.each(items.split(/[ ,]/), function(item) {
+		Tools.each(itemsToArray(items), function(item) {
 			var itemName;
 
 			if (item == '|') {
@@ -179,12 +233,12 @@ define('tinymce/inlite/ui/Toolbar', [
 					toolbarItems.push(item);
 					buttonGroup = null;
 				} else {
-					if (!buttonGroup) {
-						buttonGroup = {type: 'buttongroup', items: []};
-						toolbarItems.push(buttonGroup);
-					}
-
 					if (editor.buttons[item]) {
+						if (!buttonGroup) {
+							buttonGroup = {type: 'buttongroup', items: []};
+							toolbarItems.push(buttonGroup);
+						}
+
 						itemName = item;
 						item = editor.buttons[itemName];
 
@@ -897,10 +951,88 @@ define('tinymce/inlite/core/Layout', [
 		return panelRect;
 	};
 
+	var defaultHandler = function (rects) {
+		return rects.panelRect;
+	};
+
 	return {
 		calcInsert: calcInsert,
 		calc: calc,
-		userConstrain: userConstrain
+		userConstrain: userConstrain,
+		defaultHandler: defaultHandler
+	};
+});
+
+/**
+ * EditorSettings.js
+ *
+ * Released under LGPL License.
+ * Copyright (c) 1999-2016 Ephox Corp. All rights reserved
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+define('tinymce/inlite/alien/EditorSettings', [
+	'tinymce/inlite/alien/Type'
+], function (Type) {
+	var validDefaultOrDie = function (value, predicate) {
+		if (predicate(value)) {
+			return true;
+		}
+
+		throw new Error('Default value doesn\'t match requested type.');
+	};
+
+	var getByTypeOr = function (predicate) {
+		return function (editor, name, defaultValue) {
+			var settings = editor.settings;
+			validDefaultOrDie(defaultValue, predicate);
+			return name in settings && predicate(settings[name]) ? settings[name] : defaultValue;
+		};
+	};
+
+	var splitNoEmpty = function (str, delim) {
+		return str.split(delim).filter(function (item) {
+			return item.length > 0;
+		});
+	};
+
+	var itemsToArray = function (value, defaultValue) {
+		var stringToItemsArray = function (value) {
+			return typeof value === 'string' ? splitNoEmpty(value, /[ ,]/) : value;
+		};
+
+		var boolToItemsArray = function (value, defaultValue) {
+			return value === false ? [ ] : defaultValue;
+		};
+
+		if (Type.isArray(value)) {
+			return value;
+		} else if (Type.isString(value)) {
+			return stringToItemsArray(value);
+		} else if (Type.isBoolean(value)) {
+			return boolToItemsArray(value, defaultValue);
+		}
+
+		return defaultValue;
+	};
+
+	var getToolbarItemsOr = function (predicate) {
+		return function (editor, name, defaultValue) {
+			var value = name in editor.settings ? editor.settings[name] : defaultValue;
+			validDefaultOrDie(defaultValue, predicate);
+			return itemsToArray(value, defaultValue);
+		};
+	};
+
+	return {
+		// TODO: Add Option based getString, getBool if merged with core
+		getStringOr: getByTypeOr(Type.isString),
+		getBoolOr: getByTypeOr(Type.isBoolean),
+		getNumberOr: getByTypeOr(Type.isNumber),
+		getHandlerOr: getByTypeOr(Type.isFunction),
+		getToolbarItemsOr: getToolbarItemsOr(Type.isArray)
 	};
 });
 
@@ -921,11 +1053,12 @@ define('tinymce/inlite/ui/Panel', [
 	'tinymce/inlite/ui/Toolbar',
 	'tinymce/inlite/ui/Forms',
 	'tinymce/inlite/core/Measure',
-	'tinymce/inlite/core/Layout'
-], function (Tools, Factory, DOM, Toolbar, Forms, Measure, Layout) {
+	'tinymce/inlite/core/Layout',
+	'tinymce/inlite/alien/EditorSettings'
+], function (Tools, Factory, DOM, Toolbar, Forms, Measure, Layout, EditorSettings) {
 	return function () {
-		var DEFAULT_TEXT_SELECTION_ITEMS = 'bold italic | quicklink h2 h3 blockquote';
-		var DEFAULT_INSERT_TOOLBAR_ITEMS = 'quickimage quicktable';
+		var DEFAULT_TEXT_SELECTION_ITEMS = ['bold', 'italic', '|', 'quicklink', 'h2', 'h3', 'blockquote'];
+		var DEFAULT_INSERT_TOOLBAR_ITEMS = ['quickimage', 'quicktable'];
 		var panel, currentRect;
 
 		var createToolbars = function (editor, toolbars) {
@@ -934,23 +1067,22 @@ define('tinymce/inlite/ui/Panel', [
 			});
 		};
 
-		var getTextSelectionToolbarItems = function (settings) {
-			var value = settings.selection_toolbar;
-			return value ? value : DEFAULT_TEXT_SELECTION_ITEMS;
+		var getTextSelectionToolbarItems = function (editor) {
+			return EditorSettings.getToolbarItemsOr(editor, 'selection_toolbar', DEFAULT_TEXT_SELECTION_ITEMS);
 		};
 
-		var getInsertToolbarItems = function (settings) {
-			var value = settings.insert_toolbar;
-			return value ? value : DEFAULT_INSERT_TOOLBAR_ITEMS;
+		var getInsertToolbarItems = function (editor) {
+			return EditorSettings.getToolbarItemsOr(editor, 'insert_toolbar', DEFAULT_INSERT_TOOLBAR_ITEMS);
 		};
 
-		var create = function (editor, toolbars) {
-			var items, settings = editor.settings;
+		var hasToolbarItems = function (toolbar) {
+			return toolbar.items().length > 0;
+		};
 
-			items = createToolbars(editor, toolbars);
-			items = items.concat([
-				Toolbar.create(editor, 'text', getTextSelectionToolbarItems(settings)),
-				Toolbar.create(editor, 'insert', getInsertToolbarItems(settings)),
+		var create = function (editor, toolbars) {
+			var items = createToolbars(editor, toolbars).concat([
+				Toolbar.create(editor, 'text', getTextSelectionToolbarItems(editor)),
+				Toolbar.create(editor, 'insert', getInsertToolbarItems(editor)),
 				Forms.createQuickLinkForm(editor, hide)
 			]);
 
@@ -966,7 +1098,7 @@ define('tinymce/inlite/ui/Panel', [
 				autofix: true,
 				fixed: true,
 				border: 1,
-				items: items,
+				items: Tools.grep(items, hasToolbarItems),
 				oncancel: function() {
 					editor.focus();
 				}
@@ -1016,7 +1148,10 @@ define('tinymce/inlite/ui/Panel', [
 			if (toolbars.length > 0) {
 				toolbars[0].show();
 				panel.reflow();
+				return true;
 			}
+
+			return false;
 		};
 
 		var showPanelAt = function (panel, id, editor, targetRect) {
@@ -1024,9 +1159,13 @@ define('tinymce/inlite/ui/Panel', [
 
 			showPanel(panel);
 			panel.items().hide();
-			showToolbar(panel, id);
 
-			userConstainHandler = editor.settings.inline_toolbar_position_handler;
+			if (!showToolbar(panel, id)) {
+				hide(panel);
+				return;
+			}
+
+			userConstainHandler = EditorSettings.getHandlerOr(editor, 'inline_toolbar_position_handler', Layout.defaultHandler);
 			contentAreaRect = Measure.getContentAreaRect(editor);
 			panelRect = DOM.getRect(panel.getEl());
 
@@ -1040,7 +1179,6 @@ define('tinymce/inlite/ui/Panel', [
 				panelRect = result.rect;
 				currentRect = targetRect;
 				movePanelTo(panel, Layout.userConstrain(userConstainHandler, targetRect, contentAreaRect, panelRect));
-
 				togglePositionClass(panel, result.position);
 			} else {
 				hide(panel);
@@ -1054,7 +1192,11 @@ define('tinymce/inlite/ui/Panel', [
 		var showForm = function (editor, id) {
 			if (panel) {
 				panel.items().hide();
-				showToolbar(panel, id);
+
+				if (!showToolbar(panel, id)) {
+					hide(panel);
+					return;
+				}
 
 				var contentAreaRect, panelRect, result, userConstainHandler;
 
@@ -1062,7 +1204,7 @@ define('tinymce/inlite/ui/Panel', [
 				panel.items().hide();
 				showToolbar(panel, id);
 
-				userConstainHandler = editor.settings.inline_toolbar_position_handler;
+				userConstainHandler = EditorSettings.getHandlerOr(editor, 'inline_toolbar_position_handler', Layout.defaultHandler);
 				contentAreaRect = Measure.getContentAreaRect(editor);
 				panelRect = DOM.getRect(panel.getEl());
 
@@ -1071,7 +1213,6 @@ define('tinymce/inlite/ui/Panel', [
 				if (result) {
 					panelRect = result.rect;
 					movePanelTo(panel, Layout.userConstrain(userConstainHandler, currentRect, contentAreaRect, panelRect));
-
 					togglePositionClass(panel, result.position);
 				}
 			}
@@ -1305,9 +1446,18 @@ define('tinymce/inlite/core/SkinLoader', [
 		}
 	};
 
-	var load = function (editor, skin, callback) {
-		var baseUrl = EditorManager.baseURL;
-		var skinUrl = baseUrl + '/skins/' + skin;
+	var urlFromName = function (name) {
+		var prefix = EditorManager.baseURL + '/skins/';
+		return name ? prefix + name : prefix + 'lightgray';
+	};
+
+	var toAbsoluteUrl = function (editor, url) {
+		return editor.documentBaseURI.toAbsolute(url);
+	};
+
+	var load = function (editor, callback) {
+		var settings = editor.settings;
+		var skinUrl = settings.skin_url ? toAbsoluteUrl(editor, settings.skin_url) : urlFromName(settings.skin);
 
 		var done = function () {
 			fireSkinLoaded(editor, callback);
@@ -1544,8 +1694,9 @@ define('tinymce/inlite/Theme', [
 	'tinymce/inlite/core/ElementMatcher',
 	'tinymce/inlite/core/Matcher',
 	'tinymce/inlite/alien/Arr',
+	'tinymce/inlite/alien/EditorSettings',
 	'tinymce/inlite/core/PredicateId'
-], function(ThemeManager, Delay, Panel, Buttons, SkinLoader, SelectionMatcher, ElementMatcher, Matcher, Arr, PredicateId) {
+], function(ThemeManager, Delay, Panel, Buttons, SkinLoader, SelectionMatcher, ElementMatcher, Matcher, Arr, EditorSettings, PredicateId) {
 	var getSelectionElements = function (editor) {
 		var node = editor.selection.getNode();
 		var elms = editor.dom.getParents(node);
@@ -1644,9 +1795,7 @@ define('tinymce/inlite/Theme', [
 	};
 
 	var renderInlineUI = function (editor, panel) {
-		var skinName = editor.settings.skin || 'lightgray';
-
-		SkinLoader.load(editor, skinName, function () {
+		SkinLoader.load(editor, function () {
 			bindContextualToolbarsEvents(editor, panel);
 			overrideLinkShortcut(editor, panel);
 		});
diff --git a/wp-includes/js/tinymce/themes/inlite/theme.min.js b/wp-includes/js/tinymce/themes/inlite/theme.min.js
index 4d3f2672f..09f710042 100644
--- a/wp-includes/js/tinymce/themes/inlite/theme.min.js
+++ b/wp-includes/js/tinymce/themes/inlite/theme.min.js
@@ -1 +1 @@
-!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;g>i;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;c>f;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("1",tinymce.ThemeManager),h("2",tinymce.util.Delay),h("b",tinymce.util.Tools),h("c",tinymce.ui.Factory),h("d",tinymce.DOM),g("e",["b","c"],function(a,b){var c=function(a,b){return function(c,d){for(var e,f=d.parents.length;f--&&(e=d.parents[f].nodeName,"OL"!=e&&"UL"!=e););a.active(c&&e==b)}},d=function(a,b){var d=function(a,b){return{selector:a,handler:b}},e=function(a){b.active(a)},f=function(a){b.disabled(a)};return"bullist"==a?d("ul > li",c(b,"UL")):"numlist"==a?d("ol > li",c(b,"OL")):b.settings.stateSelector?d(b.settings.stateSelector,e):b.settings.disabledStateSelector?d(b.settings.disabledStateSelector,f):null},e=function(a,b,c){return function(){var e=d(b,c);null!==e&&a.selection.selectorChanged(e.selector,e.handler)}},f=function(c,d,f){var g,h=[];if(f)return a.each(f.split(/[ ,]/),function(a){var d;"|"==a?g=null:b.has(a)?(a={type:a},h.push(a),g=null):(g||(g={type:"buttongroup",items:[]},h.push(g)),c.buttons[a]&&(d=a,a=c.buttons[d],"function"==typeof a&&(a=a()),a.type=a.type||"button",a=b.create(a),a.on("postRender",e(c,d,a)),g.items.push(a)))}),b.create({type:"toolbar",layout:"flow",name:d,items:h})};return{create:f}}),h("m",tinymce.util.Promise),g("n",[],function(){var a=0,b=function(){var a=function(){return Math.round(4294967295*Math.random()).toString(36)};return"s"+Date.now().toString(36)+a()+a()+a()},c=function(c){return c+a++ +b()};return{uuid:c}}),g("s",[],function(){var a=function(a,b){function c(c){var e,f,g;f=b[c?"startContainer":"endContainer"],g=b[c?"startOffset":"endOffset"],1==f.nodeType&&(e=a.create("span",{"data-mce-type":"bookmark"}),f.hasChildNodes()?(g=Math.min(g,f.childNodes.length-1),c?f.insertBefore(e,f.childNodes[g]):a.insertAfter(e,f.childNodes[g])):f.appendChild(e),f=e,g=0),d[c?"startContainer":"endContainer"]=f,d[c?"startOffset":"endOffset"]=g}var d={};return c(!0),b.collapsed||c(),d},b=function(a,b){function c(c){function d(a){for(var b=a.parentNode.firstChild,c=0;b;){if(b==a)return c;1==b.nodeType&&"bookmark"==b.getAttribute("data-mce-type")||c++,b=b.nextSibling}return-1}var e,f,g;e=g=b[c?"startContainer":"endContainer"],f=b[c?"startOffset":"endOffset"],e&&(1==e.nodeType&&(f=d(e),e=e.parentNode,a.remove(g)),b[c?"startContainer":"endContainer"]=e,b[c?"startOffset":"endOffset"]=f)}c(!0),c();var d=a.createRng();return d.setStart(b.startContainer,b.startOffset),b.endContainer&&d.setEnd(b.endContainer,b.endOffset),d};return{create:a,resolve:b}}),h("t",tinymce.dom.TreeWalker),h("u",tinymce.dom.RangeUtils),g("o",["s","b","t","u"],function(a,b,c,d){var e=function(a,b,d){var e,f,g=[];for(e=new c(b,a),f=b;f&&(1===f.nodeType&&g.push(f),f!==d);f=e.next());return g},f=function(c,d){var e,f,g;f=c.dom,g=c.selection,e=a.create(f,g.getRng()),b.each(d,function(a){c.dom.remove(a,!0)}),g.setRng(a.resolve(f,e))},g=function(a){return"A"===a.nodeName&&a.hasAttribute("href")},h=function(a,b){var c=a.getParent(b,g);return c?c:b},i=function(a){var c,f,i,j,k,l,m;return k=a.selection,l=a.dom,m=k.getRng(),c=h(l,d.getNode(m.startContainer,m.startOffset)),f=d.getNode(m.endContainer,m.endOffset),i=a.getBody(),j=b.grep(e(i,c,f),g)},j=function(a){f(a,i(a))};return{unlinkSelection:j}}),g("k",["n","o"],function(a,b){var c=function(a,b){var c,d,e;for(e='<table data-mce-id="mce" style="width: 100%">',e+="<tbody>",d=0;b>d;d++){for(e+="<tr>",c=0;a>c;c++)e+="<td><br></td>";e+="</tr>"}return e+="</tbody>",e+="</table>"},d=function(a){var b=a.dom.select("*[data-mce-id]");return b[0]},e=function(a,b,e){a.undoManager.transact(function(){var f,g;a.insertContent(c(b,e)),f=d(a),f.removeAttribute("data-mce-id"),g=a.dom.select("td,th",f),a.selection.setCursorLocation(g[0],0)})},f=function(a,b){a.execCommand("FormatBlock",!1,b)},g=function(b,c,d){var e,f;e=b.editorUpload.blobCache,f=e.create(a.uuid("mceu"),d,c),e.add(f),b.insertContent(b.dom.createHTML("img",{src:f.blobUri()}))},h=function(a){a.selection.collapse(!1)},i=function(a){a.focus(),b.unlinkSelection(a),h(a)},j=function(a,b,c){a.focus(),a.dom.setAttrib(b,"href",c),h(a)},k=function(a,b){a.execCommand("mceInsertLink",!1,{href:b}),h(a)},l=function(a,b){var c=a.dom.getParent(a.selection.getStart(),"a[href]");c?j(a,c,b):k(a,b)},m=function(a,b){0===b.trim().length?i(a):l(a,b)};return{insertTable:e,formatBlock:f,insertBlob:g,createLink:m,unlink:i}}),g("p",[],function(){var a=function(a){return/^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(a.trim())},b=function(a){return/^https?:\/\//.test(a.trim())};return{isDomainLike:a,isAbsolute:b}}),g("f",["b","c","m","k","p"],function(a,b,c,d,e){var f=function(a){a.find("textbox").eq(0).each(function(a){a.focus()})},g=function(c,d){var e=b.create(a.extend({type:"form",layout:"flex",direction:"row",padding:5,name:c,spacing:3},d));return e.on("show",function(){f(e)}),e},h=function(a,b){return b?a.show():a.hide()},i=function(a,b){return new c(function(c){a.windowManager.confirm("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){var d=a===!0?"http://"+b:b;c(d)})})},j=function(a,b){return!e.isAbsolute(b)&&e.isDomainLike(b)?i(a,b):c.resolve(b)},k=function(a,b){var c=function(){a.focus(),d.unlink(a),b()};return g("quicklink",{items:[{type:"button",name:"unlink",icon:"unlink",onclick:c,tooltip:"Remove link"},{type:"textbox",name:"linkurl",placeholder:"Paste or type a link"},{type:"button",icon:"checkmark",subtype:"primary",tooltip:"Ok",onclick:"submit"}],onshow:function(){var b,c="";b=a.dom.getParent(a.selection.getStart(),"a[href]"),b&&(c=a.dom.getAttrib(b,"href")),this.fromJSON({linkurl:c}),h(this.find("#unlink"),b)},onsubmit:function(c){j(a,c.data.linkurl).then(function(c){d.createLink(a,c),b()})}})};return{createQuickLinkForm:k}}),h("q",tinymce.geom.Rect),g("r",[],function(){var a=function(a){return{x:a.left,y:a.top,w:a.width,h:a.height}},b=function(a){return{left:a.x,top:a.y,width:a.w,height:a.h,right:a.x+a.w,bottom:a.y+a.h}};return{fromClientRect:a,toClientRect:b}}),g("g",["d","q","r"],function(a,b,c){var d=function(b){var c=a.getViewPort();return{x:b.x+c.x,y:b.y+c.y,w:b.w,h:b.h}},e=function(a){var b=a.getBoundingClientRect();return d({x:b.left,y:b.top,w:Math.max(a.clientWidth,a.offsetWidth),h:Math.max(a.clientHeight,a.offsetHeight)})},f=function(a,b){return e(b)},g=function(a){return e(a.getElement().ownerDocument.body)},h=function(a){return e(a.getContentAreaContainer()||a.getBody())},i=function(a){var b=a.selection.getBoundingClientRect();return b?d(c.fromClientRect(b)):null};return{getElementRect:f,getPageAreaRect:g,getContentAreaRect:h,getSelectionRect:i}}),g("h",["q","r"],function(a,b){var c=function(a,b){return{rect:a,position:b}},d=function(a,b){return{x:b.x,y:b.y,w:a.w,h:a.h}},e=function(b,e,f,g,h){var i,j,k;return i=a.findBestRelativePosition(h,f,g,b),f=a.clamp(f,g),i?(j=a.relativePosition(h,f,i),k=d(h,j),c(k,i)):(f=a.intersect(g,f),f?(i=a.findBestRelativePosition(h,f,g,e))?(j=a.relativePosition(h,f,i),k=d(h,j),c(k,i)):(k=d(h,f),c(k,i)):null)},f=function(a,b,c){return e(["cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr"],a,b,c)},g=function(a,b,c){return e(["tc-bc","bc-tc","tl-bl","bl-tl","tr-br","br-tr"],["bc-tc","bl-tl","br-tr"],a,b,c)},h=function(a,c,d,e){var f;return"function"==typeof a?(f=a({elementRect:b.toClientRect(c),contentAreaRect:b.toClientRect(d),panelRect:b.toClientRect(e)}),b.fromClientRect(f)):e};return{calcInsert:f,calc:g,userConstrain:h}}),g("3",["b","c","d","e","f","g","h"],function(a,b,c,d,e,f,g){return function(){var h,i,j="bold italic | quicklink h2 h3 blockquote",k="quickimage quicktable",l=function(b,c){return a.map(c,function(a){return d.create(b,a.id,a.items)})},m=function(a){var b=a.selection_toolbar;return b?b:j},n=function(a){var b=a.insert_toolbar;return b?b:k},o=function(a,c){var f,g=a.settings;return f=l(a,c),f=f.concat([d.create(a,"text",m(g)),d.create(a,"insert",n(g)),e.createQuickLinkForm(a,x)]),b.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:f,oncancel:function(){a.focus()}})},p=function(a){a&&a.show()},q=function(a,b){a.moveTo(b.x,b.y)},r=function(b,c){c=c?c.substr(0,2):"",a.each({t:"down",b:"up",c:"center"},function(a,d){b.classes.toggle("arrow-"+a,d===c.substr(0,1))}),"cr"===c?(b.classes.toggle("arrow-left",!0),b.classes.toggle("arrow-right",!1)):"cl"===c?(b.classes.toggle("arrow-left",!0),b.classes.toggle("arrow-right",!0)):a.each({l:"left",r:"right"},function(a,d){b.classes.toggle("arrow-"+a,d===c.substr(1,1))})},s=function(a,b){var c=a.items().filter("#"+b);c.length>0&&(c[0].show(),a.reflow())},t=function(a,b,d,e){var h,j,k,l;p(a),a.items().hide(),s(a,b),l=d.settings.inline_toolbar_position_handler,h=f.getContentAreaRect(d),j=c.getRect(a.getEl()),k="insert"===b?g.calcInsert(e,h,j):g.calc(e,h,j),k?(j=k.rect,i=e,q(a,g.userConstrain(l,e,h,j)),r(a,k.position)):x(a)},u=function(){return h.items().filter("form:visible").length>0},v=function(a,b){if(h){h.items().hide(),s(h,b);var d,e,j,k;p(h),h.items().hide(),s(h,b),k=a.settings.inline_toolbar_position_handler,d=f.getContentAreaRect(a),e=c.getRect(h.getEl()),j=g.calc(i,d,e),j&&(e=j.rect,q(h,g.userConstrain(k,i,d,e)),r(h,j.position))}},w=function(a,b,c,d){h||(h=o(a,d),h.renderTo(document.body).reflow().moveTo(c.x,c.y),a.nodeChanged()),t(h,b,a,c)},x=function(){h&&h.hide()},y=function(){h&&h.find("toolbar:visible").eq(0).each(function(a){a.focus(!0)})},z=function(){h&&(h.remove(),h=null)},A=function(){return h&&h.visible()&&u()};return{show:w,showForm:v,inForm:A,hide:x,focus:y,remove:z}}}),g("i",["m"],function(a){var b=function(b){return new a(function(a){var c=new FileReader;c.onloadend=function(){a(c.result.split(",")[1])},c.readAsDataURL(b)})};return{blobToBase64:b}}),g("j",["m"],function(a){var b=function(){return new a(function(a){var b;b=document.createElement("input"),b.type="file",b.style.position="fixed",b.style.left=0,b.style.top=0,b.style.opacity=.001,document.body.appendChild(b),b.onchange=function(b){a(Array.prototype.slice.call(b.target.files))},b.click(),b.parentNode.removeChild(b)})};return{pickFile:b}}),g("4",["3","i","j","k"],function(a,b,c,d){var e=function(a){for(var b=function(b){return function(){d.formatBlock(a,b)}},c=1;6>c;c++){var e="h"+c;a.addButton(e,{text:e.toUpperCase(),tooltip:"Heading "+c,stateSelector:e,onclick:b(e),onPostRender:function(){var a=this.getEl().firstChild.firstChild;a.style.fontWeight="bold"}})}},f=function(a,f){a.addButton("quicklink",{icon:"link",tooltip:"Insert/Edit link",stateSelector:"a[href]",onclick:function(){f.showForm(a,"quicklink")}}),a.addButton("quickimage",{icon:"image",tooltip:"Insert image",onclick:function(){c.pickFile().then(function(c){var e=c[0];b.blobToBase64(e).then(function(b){d.insertBlob(a,b,e)})})}}),a.addButton("quicktable",{icon:"table",tooltip:"Insert table",onclick:function(){f.hide(),d.insertTable(a,2,2)}}),e(a)};return{addToEditor:f}}),h("l",tinymce.EditorManager),g("5",["l","d"],function(a,b){var c=function(a,b){var c=function(){a.fire("SkinLoaded"),b()};a.initialized?c():a.on("init",c)},d=function(d,e,f){var g=a.baseURL,h=g+"/skins/"+e,i=function(){c(d,f)};b.styleSheetLoader.load(h+"/skin.min.css",i),d.contentCSS.push(h+"/content.inline.min.css")};return{load:d}}),g("8",[],function(){var a=function(a,b){return{id:a,rect:b}},b=function(a,b){for(var c=0;c<b.length;c++){var d=b[c],e=d(a);if(e)return e}return null};return{match:b,result:a}}),g("6",["8","g"],function(a,b){var c=function(c){return function(d){return d.selection.isCollapsed()?null:a.result(c,b.getSelectionRect(d))}},d=function(c,d){return function(e){var f,g=e.schema.getTextBlockElements();for(f=0;f<c.length;f++)if("TABLE"===c[f].nodeName)return null;for(f=0;f<c.length;f++)if(c[f].nodeName in g)return e.dom.isEmpty(c[f])?a.result(d,b.getSelectionRect(e)):null;return null}};return{textSelection:c,emptyTextBlock:d}}),g("7",["8","g"],function(a,b){var c=function(c,d){return function(e){for(var f=0;f<d.length;f++)if(d[f].predicate(c))return a.result(d[f].id,b.getElementRect(e,c));return null}},d=function(c,d){return function(e){for(var f=0;f<c.length;f++)for(var g=0;g<d.length;g++)if(d[g].predicate(c[f]))return a.result(d[g].id,b.getElementRect(e,c[f]));return null}};return{element:c,parent:d}}),g("9",[],function(){var a=function(b){return b.reduce(function(b,c){return Array.isArray(c)?b.concat(a(c)):b.concat(c)},[])};return{flatten:a}}),g("a",["b"],function(a){var b=function(a,b){return{id:a,predicate:b}},c=function(c){return a.map(c,function(a){return b(a.id,a.predicate)})};return{create:b,fromContextToolbars:c}}),g("0",["1","2","3","4","5","6","7","8","9","a"],function(a,b,c,d,e,f,g,h,i,j){var k=function(a){var b=a.selection.getNode(),c=a.dom.getParents(b);return c},l=function(a,b,c,d){var e=function(c){return a.dom.is(c,b)};return{predicate:e,id:c,items:d}},m=function(a){var b=a.contextToolbars;return i.flatten([b?b:[],l(a,"img","image","alignleft aligncenter alignright")])},n=function(a,b){var c,d,e;return d=k(a),e=j.fromContextToolbars(b),c=h.match(a,[g.element(d[0],e),f.textSelection("text"),f.emptyTextBlock(d,"insert"),g.parent(d,e)]),c&&c.rect?c:null},o=function(a,b){var c=function(){var c=m(a),d=n(a,c);d?b.show(a,d.id,d.rect,c):b.hide()};return function(){a.removed||c()}},p=function(a,b){return function(){a.inForm()||b()}},q=function(a,c){var d=b.throttle(o(a,c),0),e=b.throttle(p(c,o(a,c)),0);a.on("blur hide ObjectResizeStart",c.hide),a.on("click",d),a.on("nodeChange mouseup",e),a.on("ResizeEditor ResizeWindow keyup",d),a.on("remove",c.remove),a.shortcuts.add("Alt+F10","",c.focus)},r=function(a,b){a.shortcuts.remove("meta+k"),a.shortcuts.add("meta+k","",function(){var c=m(a),d=d=h.match(a,[f.textSelection("quicklink")]);d&&b.show(a,d.id,d.rect,c)})},s=function(a,b){var c=a.settings.skin||"lightgray";return e.load(a,c,function(){q(a,b),r(a,b)}),{}},t=function(a){throw new Error(a)};return a.add("inlite",function(a){var b=new c;d.addToEditor(a,b);var e=function(){return a.inline?s(a,b):t("inlite theme only supports inline mode.")};return{renderUI:e}}),function(){}}),d("0")()}();
\ No newline at end of file
+!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;g>i;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;c>f;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("1",tinymce.ThemeManager),h("2",tinymce.util.Delay),h("c",tinymce.util.Tools),h("d",tinymce.ui.Factory),h("e",tinymce.DOM),g("j",[],function(){var a=function(a){return function(b){return typeof b===a}},b=function(a){return Array.isArray(a)},c=function(a){return null===a},d=function(a){return function(d){return!c(d)&&!b(d)&&a(d)}};return{isString:a("string"),isNumber:a("number"),isBoolean:a("boolean"),isFunction:a("function"),isObject:d(a("object")),isNull:c,isArray:b}}),g("f",["c","d","j"],function(a,b,c){var d=function(a,b){return function(c,d){for(var e,f=d.parents.length;f--&&(e=d.parents[f].nodeName,"OL"!=e&&"UL"!=e););a.active(c&&e==b)}},e=function(a,b){var c=function(a,b){return{selector:a,handler:b}},e=function(a){b.active(a)},f=function(a){b.disabled(a)};return"bullist"==a?c("ul > li",d(b,"UL")):"numlist"==a?c("ol > li",d(b,"OL")):b.settings.stateSelector?c(b.settings.stateSelector,e):b.settings.disabledStateSelector?c(b.settings.disabledStateSelector,f):null},f=function(a,b,c){return function(){var d=e(b,c);null!==d&&a.selection.selectorChanged(d.selector,d.handler)}},g=function(a){return c.isArray(a)?a:c.isString(a)?a.split(/[ ,]/):[]},h=function(c,d,e){var h,i=[];if(e)return a.each(g(e),function(a){var d;"|"==a?h=null:b.has(a)?(a={type:a},i.push(a),h=null):c.buttons[a]&&(h||(h={type:"buttongroup",items:[]},i.push(h)),d=a,a=c.buttons[d],"function"==typeof a&&(a=a()),a.type=a.type||"button",a=b.create(a),a.on("postRender",f(c,d,a)),h.items.push(a))}),b.create({type:"toolbar",layout:"flow",name:d,items:i})};return{create:h}}),h("o",tinymce.util.Promise),g("p",[],function(){var a=0,b=function(){var a=function(){return Math.round(4294967295*Math.random()).toString(36)};return"s"+Date.now().toString(36)+a()+a()+a()},c=function(c){return c+a++ +b()};return{uuid:c}}),g("u",[],function(){var a=function(a,b){function c(c){var e,f,g;f=b[c?"startContainer":"endContainer"],g=b[c?"startOffset":"endOffset"],1==f.nodeType&&(e=a.create("span",{"data-mce-type":"bookmark"}),f.hasChildNodes()?(g=Math.min(g,f.childNodes.length-1),c?f.insertBefore(e,f.childNodes[g]):a.insertAfter(e,f.childNodes[g])):f.appendChild(e),f=e,g=0),d[c?"startContainer":"endContainer"]=f,d[c?"startOffset":"endOffset"]=g}var d={};return c(!0),b.collapsed||c(),d},b=function(a,b){function c(c){function d(a){for(var b=a.parentNode.firstChild,c=0;b;){if(b==a)return c;1==b.nodeType&&"bookmark"==b.getAttribute("data-mce-type")||c++,b=b.nextSibling}return-1}var e,f,g;e=g=b[c?"startContainer":"endContainer"],f=b[c?"startOffset":"endOffset"],e&&(1==e.nodeType&&(f=d(e),e=e.parentNode,a.remove(g)),b[c?"startContainer":"endContainer"]=e,b[c?"startOffset":"endOffset"]=f)}c(!0),c();var d=a.createRng();return d.setStart(b.startContainer,b.startOffset),b.endContainer&&d.setEnd(b.endContainer,b.endOffset),d};return{create:a,resolve:b}}),h("v",tinymce.dom.TreeWalker),h("w",tinymce.dom.RangeUtils),g("q",["u","c","v","w"],function(a,b,c,d){var e=function(a,b,d){var e,f,g=[];for(e=new c(b,a),f=b;f&&(1===f.nodeType&&g.push(f),f!==d);f=e.next());return g},f=function(c,d){var e,f,g;f=c.dom,g=c.selection,e=a.create(f,g.getRng()),b.each(d,function(a){c.dom.remove(a,!0)}),g.setRng(a.resolve(f,e))},g=function(a){return"A"===a.nodeName&&a.hasAttribute("href")},h=function(a,b){var c=a.getParent(b,g);return c?c:b},i=function(a){var c,f,i,j,k,l,m;return k=a.selection,l=a.dom,m=k.getRng(),c=h(l,d.getNode(m.startContainer,m.startOffset)),f=d.getNode(m.endContainer,m.endOffset),i=a.getBody(),j=b.grep(e(i,c,f),g)},j=function(a){f(a,i(a))};return{unlinkSelection:j}}),g("m",["p","q"],function(a,b){var c=function(a,b){var c,d,e;for(e='<table data-mce-id="mce" style="width: 100%">',e+="<tbody>",d=0;b>d;d++){for(e+="<tr>",c=0;a>c;c++)e+="<td><br></td>";e+="</tr>"}return e+="</tbody>",e+="</table>"},d=function(a){var b=a.dom.select("*[data-mce-id]");return b[0]},e=function(a,b,e){a.undoManager.transact(function(){var f,g;a.insertContent(c(b,e)),f=d(a),f.removeAttribute("data-mce-id"),g=a.dom.select("td,th",f),a.selection.setCursorLocation(g[0],0)})},f=function(a,b){a.execCommand("FormatBlock",!1,b)},g=function(b,c,d){var e,f;e=b.editorUpload.blobCache,f=e.create(a.uuid("mceu"),d,c),e.add(f),b.insertContent(b.dom.createHTML("img",{src:f.blobUri()}))},h=function(a){a.selection.collapse(!1)},i=function(a){a.focus(),b.unlinkSelection(a),h(a)},j=function(a,b,c){a.focus(),a.dom.setAttrib(b,"href",c),h(a)},k=function(a,b){a.execCommand("mceInsertLink",!1,{href:b}),h(a)},l=function(a,b){var c=a.dom.getParent(a.selection.getStart(),"a[href]");c?j(a,c,b):k(a,b)},m=function(a,b){0===b.trim().length?i(a):l(a,b)};return{insertTable:e,formatBlock:f,insertBlob:g,createLink:m,unlink:i}}),g("r",[],function(){var a=function(a){return/^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(a.trim())},b=function(a){return/^https?:\/\//.test(a.trim())};return{isDomainLike:a,isAbsolute:b}}),g("g",["c","d","o","m","r"],function(a,b,c,d,e){var f=function(a){a.find("textbox").eq(0).each(function(a){a.focus()})},g=function(c,d){var e=b.create(a.extend({type:"form",layout:"flex",direction:"row",padding:5,name:c,spacing:3},d));return e.on("show",function(){f(e)}),e},h=function(a,b){return b?a.show():a.hide()},i=function(a,b){return new c(function(c){a.windowManager.confirm("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){var d=a===!0?"http://"+b:b;c(d)})})},j=function(a,b){return!e.isAbsolute(b)&&e.isDomainLike(b)?i(a,b):c.resolve(b)},k=function(a,b){var c=function(){a.focus(),d.unlink(a),b()};return g("quicklink",{items:[{type:"button",name:"unlink",icon:"unlink",onclick:c,tooltip:"Remove link"},{type:"textbox",name:"linkurl",placeholder:"Paste or type a link"},{type:"button",icon:"checkmark",subtype:"primary",tooltip:"Ok",onclick:"submit"}],onshow:function(){var b,c="";b=a.dom.getParent(a.selection.getStart(),"a[href]"),b&&(c=a.dom.getAttrib(b,"href")),this.fromJSON({linkurl:c}),h(this.find("#unlink"),b)},onsubmit:function(c){j(a,c.data.linkurl).then(function(c){d.createLink(a,c),b()})}})};return{createQuickLinkForm:k}}),h("s",tinymce.geom.Rect),g("t",[],function(){var a=function(a){return{x:a.left,y:a.top,w:a.width,h:a.height}},b=function(a){return{left:a.x,top:a.y,width:a.w,height:a.h,right:a.x+a.w,bottom:a.y+a.h}};return{fromClientRect:a,toClientRect:b}}),g("h",["e","s","t"],function(a,b,c){var d=function(b){var c=a.getViewPort();return{x:b.x+c.x,y:b.y+c.y,w:b.w,h:b.h}},e=function(a){var b=a.getBoundingClientRect();return d({x:b.left,y:b.top,w:Math.max(a.clientWidth,a.offsetWidth),h:Math.max(a.clientHeight,a.offsetHeight)})},f=function(a,b){return e(b)},g=function(a){return e(a.getElement().ownerDocument.body)},h=function(a){return e(a.getContentAreaContainer()||a.getBody())},i=function(a){var b=a.selection.getBoundingClientRect();return b?d(c.fromClientRect(b)):null};return{getElementRect:f,getPageAreaRect:g,getContentAreaRect:h,getSelectionRect:i}}),g("i",["s","t"],function(a,b){var c=function(a,b){return{rect:a,position:b}},d=function(a,b){return{x:b.x,y:b.y,w:a.w,h:a.h}},e=function(b,e,f,g,h){var i,j,k;return i=a.findBestRelativePosition(h,f,g,b),f=a.clamp(f,g),i?(j=a.relativePosition(h,f,i),k=d(h,j),c(k,i)):(f=a.intersect(g,f),f?(i=a.findBestRelativePosition(h,f,g,e))?(j=a.relativePosition(h,f,i),k=d(h,j),c(k,i)):(k=d(h,f),c(k,i)):null)},f=function(a,b,c){return e(["cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr"],a,b,c)},g=function(a,b,c){return e(["tc-bc","bc-tc","tl-bl","bl-tl","tr-br","br-tr"],["bc-tc","bl-tl","br-tr"],a,b,c)},h=function(a,c,d,e){var f;return"function"==typeof a?(f=a({elementRect:b.toClientRect(c),contentAreaRect:b.toClientRect(d),panelRect:b.toClientRect(e)}),b.fromClientRect(f)):e},i=function(a){return a.panelRect};return{calcInsert:f,calc:g,userConstrain:h,defaultHandler:i}}),g("a",["j"],function(a){var b=function(a,b){if(b(a))return!0;throw new Error("Default value doesn't match requested type.")},c=function(a){return function(c,d,e){var f=c.settings;return b(e,a),d in f&&a(f[d])?f[d]:e}},d=function(a,b){return a.split(b).filter(function(a){return a.length>0})},e=function(b,c){var e=function(a){return"string"==typeof a?d(a,/[ ,]/):a},f=function(a,b){return a===!1?[]:b};return a.isArray(b)?b:a.isString(b)?e(b):a.isBoolean(b)?f(b,c):c},f=function(a){return function(c,d,f){var g=d in c.settings?c.settings[d]:f;return b(f,a),e(g,f)}};return{getStringOr:c(a.isString),getBoolOr:c(a.isBoolean),getNumberOr:c(a.isNumber),getHandlerOr:c(a.isFunction),getToolbarItemsOr:f(a.isArray)}}),g("3",["c","d","e","f","g","h","i","a"],function(a,b,c,d,e,f,g,h){return function(){var i,j,k=["bold","italic","|","quicklink","h2","h3","blockquote"],l=["quickimage","quicktable"],m=function(b,c){return a.map(c,function(a){return d.create(b,a.id,a.items)})},n=function(a){return h.getToolbarItemsOr(a,"selection_toolbar",k)},o=function(a){return h.getToolbarItemsOr(a,"insert_toolbar",l)},p=function(a){return a.items().length>0},q=function(c,f){var g=m(c,f).concat([d.create(c,"text",n(c)),d.create(c,"insert",o(c)),e.createQuickLinkForm(c,z)]);return b.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:a.grep(g,p),oncancel:function(){c.focus()}})},r=function(a){a&&a.show()},s=function(a,b){a.moveTo(b.x,b.y)},t=function(b,c){c=c?c.substr(0,2):"",a.each({t:"down",b:"up",c:"center"},function(a,d){b.classes.toggle("arrow-"+a,d===c.substr(0,1))}),"cr"===c?(b.classes.toggle("arrow-left",!0),b.classes.toggle("arrow-right",!1)):"cl"===c?(b.classes.toggle("arrow-left",!0),b.classes.toggle("arrow-right",!0)):a.each({l:"left",r:"right"},function(a,d){b.classes.toggle("arrow-"+a,d===c.substr(1,1))})},u=function(a,b){var c=a.items().filter("#"+b);return c.length>0?(c[0].show(),a.reflow(),!0):!1},v=function(a,b,d,e){var i,k,l,m;return r(a),a.items().hide(),u(a,b)?(m=h.getHandlerOr(d,"inline_toolbar_position_handler",g.defaultHandler),i=f.getContentAreaRect(d),k=c.getRect(a.getEl()),l="insert"===b?g.calcInsert(e,i,k):g.calc(e,i,k),void(l?(k=l.rect,j=e,s(a,g.userConstrain(m,e,i,k)),t(a,l.position)):z(a))):void z(a)},w=function(){return i.items().filter("form:visible").length>0},x=function(a,b){if(i){if(i.items().hide(),!u(i,b))return void z(i);var d,e,k,l;r(i),i.items().hide(),u(i,b),l=h.getHandlerOr(a,"inline_toolbar_position_handler",g.defaultHandler),d=f.getContentAreaRect(a),e=c.getRect(i.getEl()),k=g.calc(j,d,e),k&&(e=k.rect,s(i,g.userConstrain(l,j,d,e)),t(i,k.position))}},y=function(a,b,c,d){i||(i=q(a,d),i.renderTo(document.body).reflow().moveTo(c.x,c.y),a.nodeChanged()),v(i,b,a,c)},z=function(){i&&i.hide()},A=function(){i&&i.find("toolbar:visible").eq(0).each(function(a){a.focus(!0)})},B=function(){i&&(i.remove(),i=null)},C=function(){return i&&i.visible()&&w()};return{show:y,showForm:x,inForm:C,hide:z,focus:A,remove:B}}}),g("k",["o"],function(a){var b=function(b){return new a(function(a){var c=new FileReader;c.onloadend=function(){a(c.result.split(",")[1])},c.readAsDataURL(b)})};return{blobToBase64:b}}),g("l",["o"],function(a){var b=function(){return new a(function(a){var b;b=document.createElement("input"),b.type="file",b.style.position="fixed",b.style.left=0,b.style.top=0,b.style.opacity=.001,document.body.appendChild(b),b.onchange=function(b){a(Array.prototype.slice.call(b.target.files))},b.click(),b.parentNode.removeChild(b)})};return{pickFile:b}}),g("4",["3","k","l","m"],function(a,b,c,d){var e=function(a){for(var b=function(b){return function(){d.formatBlock(a,b)}},c=1;6>c;c++){var e="h"+c;a.addButton(e,{text:e.toUpperCase(),tooltip:"Heading "+c,stateSelector:e,onclick:b(e),onPostRender:function(){var a=this.getEl().firstChild.firstChild;a.style.fontWeight="bold"}})}},f=function(a,f){a.addButton("quicklink",{icon:"link",tooltip:"Insert/Edit link",stateSelector:"a[href]",onclick:function(){f.showForm(a,"quicklink")}}),a.addButton("quickimage",{icon:"image",tooltip:"Insert image",onclick:function(){c.pickFile().then(function(c){var e=c[0];b.blobToBase64(e).then(function(b){d.insertBlob(a,b,e)})})}}),a.addButton("quicktable",{icon:"table",tooltip:"Insert table",onclick:function(){f.hide(),d.insertTable(a,2,2)}}),e(a)};return{addToEditor:f}}),h("n",tinymce.EditorManager),g("5",["n","e"],function(a,b){var c=function(a,b){var c=function(){a.fire("SkinLoaded"),b()};a.initialized?c():a.on("init",c)},d=function(b){var c=a.baseURL+"/skins/";return b?c+b:c+"lightgray"},e=function(a,b){return a.documentBaseURI.toAbsolute(b)},f=function(a,f){var g=a.settings,h=g.skin_url?e(a,g.skin_url):d(g.skin),i=function(){c(a,f)};b.styleSheetLoader.load(h+"/skin.min.css",i),a.contentCSS.push(h+"/content.inline.min.css")};return{load:f}}),g("8",[],function(){var a=function(a,b){return{id:a,rect:b}},b=function(a,b){for(var c=0;c<b.length;c++){var d=b[c],e=d(a);if(e)return e}return null};return{match:b,result:a}}),g("6",["8","h"],function(a,b){var c=function(c){return function(d){return d.selection.isCollapsed()?null:a.result(c,b.getSelectionRect(d))}},d=function(c,d){return function(e){var f,g=e.schema.getTextBlockElements();for(f=0;f<c.length;f++)if("TABLE"===c[f].nodeName)return null;for(f=0;f<c.length;f++)if(c[f].nodeName in g)return e.dom.isEmpty(c[f])?a.result(d,b.getSelectionRect(e)):null;return null}};return{textSelection:c,emptyTextBlock:d}}),g("7",["8","h"],function(a,b){var c=function(c,d){return function(e){for(var f=0;f<d.length;f++)if(d[f].predicate(c))return a.result(d[f].id,b.getElementRect(e,c));return null}},d=function(c,d){return function(e){for(var f=0;f<c.length;f++)for(var g=0;g<d.length;g++)if(d[g].predicate(c[f]))return a.result(d[g].id,b.getElementRect(e,c[f]));return null}};return{element:c,parent:d}}),g("9",[],function(){var a=function(b){return b.reduce(function(b,c){return Array.isArray(c)?b.concat(a(c)):b.concat(c)},[])};return{flatten:a}}),g("b",["c"],function(a){var b=function(a,b){return{id:a,predicate:b}},c=function(c){return a.map(c,function(a){return b(a.id,a.predicate)})};return{create:b,fromContextToolbars:c}}),g("0",["1","2","3","4","5","6","7","8","9","a","b"],function(a,b,c,d,e,f,g,h,i,j,k){var l=function(a){var b=a.selection.getNode(),c=a.dom.getParents(b);return c},m=function(a,b,c,d){var e=function(c){return a.dom.is(c,b)};return{predicate:e,id:c,items:d}},n=function(a){var b=a.contextToolbars;return i.flatten([b?b:[],m(a,"img","image","alignleft aligncenter alignright")])},o=function(a,b){var c,d,e;return d=l(a),e=k.fromContextToolbars(b),c=h.match(a,[g.element(d[0],e),f.textSelection("text"),f.emptyTextBlock(d,"insert"),g.parent(d,e)]),c&&c.rect?c:null},p=function(a,b){var c=function(){var c=n(a),d=o(a,c);d?b.show(a,d.id,d.rect,c):b.hide()};return function(){a.removed||c()}},q=function(a,b){return function(){a.inForm()||b()}},r=function(a,c){var d=b.throttle(p(a,c),0),e=b.throttle(q(c,p(a,c)),0);a.on("blur hide ObjectResizeStart",c.hide),a.on("click",d),a.on("nodeChange mouseup",e),a.on("ResizeEditor ResizeWindow keyup",d),a.on("remove",c.remove),a.shortcuts.add("Alt+F10","",c.focus)},s=function(a,b){a.shortcuts.remove("meta+k"),a.shortcuts.add("meta+k","",function(){var c=n(a),d=d=h.match(a,[f.textSelection("quicklink")]);d&&b.show(a,d.id,d.rect,c)})},t=function(a,b){return e.load(a,function(){r(a,b),s(a,b)}),{}},u=function(a){throw new Error(a)};return a.add("inlite",function(a){var b=new c;d.addToEditor(a,b);var e=function(){return a.inline?t(a,b):u("inlite theme only supports inline mode.")};return{renderUI:e}}),function(){}}),d("0")()}();
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/tinymce.min.js b/wp-includes/js/tinymce/tinymce.min.js
index ddd85f7bf..fafccbab8 100644
--- a/wp-includes/js/tinymce/tinymce.min.js
+++ b/wp-includes/js/tinymce/tinymce.min.js
@@ -1,13 +1,14 @@
-// 4.4.1 (2016-07-26)
-!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){var r,i,o,a,l;for(r=0;r<n.length;r++){i=e,o=n[r],a=o.split(/[.\/]/);for(var c=0;c<a.length-1;++c)i[a[c]]===t&&(i[a[c]]={}),i=i[a[c]];i[a[a.length-1]]=s[o]}if(e.AMDLC_TESTS){l=e.privateModules||{};for(o in s)l[o]=s[o];for(r=0;r<n.length;r++)delete l[n[r]];e.privateModules=l}}var s={},l="tinymce/geom/Rect",c="tinymce/util/Promise",u="tinymce/util/Delay",d="tinymce/Env",f="tinymce/dom/EventUtils",h="tinymce/dom/Sizzle",p="tinymce/util/Arr",m="tinymce/util/Tools",g="tinymce/dom/DomQuery",v="tinymce/html/Styles",y="tinymce/dom/TreeWalker",b="tinymce/dom/Range",C="tinymce/html/Entities",x="tinymce/dom/StyleSheetLoader",w="tinymce/dom/DOMUtils",N="tinymce/dom/ScriptLoader",E="tinymce/AddOnManager",_="tinymce/dom/NodeType",S="tinymce/text/Zwsp",k="tinymce/caret/CaretContainer",T="tinymce/dom/RangeUtils",R="tinymce/NodeChange",A="tinymce/html/Node",B="tinymce/html/Schema",D="tinymce/html/SaxParser",L="tinymce/html/DomParser",M="tinymce/html/Writer",P="tinymce/html/Serializer",H="tinymce/dom/Serializer",O="tinymce/dom/TridentSelection",I="tinymce/util/VK",F="tinymce/dom/ControlSelection",z="tinymce/util/Fun",U="tinymce/caret/CaretCandidate",W="tinymce/geom/ClientRect",V="tinymce/text/ExtendingChar",$="tinymce/caret/CaretPosition",q="tinymce/caret/CaretBookmark",j="tinymce/dom/BookmarkManager",Y="tinymce/dom/Selection",X="tinymce/dom/ElementUtils",K="tinymce/fmt/Preview",G="tinymce/fmt/Hooks",J="tinymce/Formatter",Q="tinymce/UndoManager",Z="tinymce/EnterKey",ee="tinymce/ForceBlocks",te="tinymce/caret/CaretUtils",ne="tinymce/caret/CaretWalker",re="tinymce/InsertList",ie="tinymce/InsertContent",oe="tinymce/EditorCommands",ae="tinymce/util/URI",se="tinymce/util/Class",le="tinymce/util/EventDispatcher",ce="tinymce/data/Binding",ue="tinymce/util/Observable",de="tinymce/data/ObservableObject",fe="tinymce/ui/Selector",he="tinymce/ui/Collection",pe="tinymce/ui/DomUtils",me="tinymce/ui/BoxUtils",ge="tinymce/ui/ClassList",ve="tinymce/ui/ReflowQueue",ye="tinymce/ui/Control",be="tinymce/ui/Factory",Ce="tinymce/ui/KeyboardNavigation",xe="tinymce/ui/Container",we="tinymce/ui/DragHelper",Ne="tinymce/ui/Scrollable",Ee="tinymce/ui/Panel",_e="tinymce/ui/Movable",Se="tinymce/ui/Resizable",ke="tinymce/ui/FloatPanel",Te="tinymce/ui/Window",Re="tinymce/ui/MessageBox",Ae="tinymce/WindowManager",Be="tinymce/ui/Tooltip",De="tinymce/ui/Widget",Le="tinymce/ui/Progress",Me="tinymce/ui/Notification",Pe="tinymce/NotificationManager",He="tinymce/dom/NodePath",Oe="tinymce/util/Quirks",Ie="tinymce/EditorObservable",Fe="tinymce/Mode",ze="tinymce/Shortcuts",Ue="tinymce/file/Uploader",We="tinymce/file/Conversions",Ve="tinymce/file/ImageScanner",$e="tinymce/file/BlobCache",qe="tinymce/file/UploadStatus",je="tinymce/EditorUpload",Ye="tinymce/caret/FakeCaret",Xe="tinymce/dom/Dimensions",Ke="tinymce/caret/LineWalker",Ge="tinymce/caret/LineUtils",Je="tinymce/DragDropOverrides",Qe="tinymce/SelectionOverrides",Ze="tinymce/util/Uuid",et="tinymce/Editor",tt="tinymce/util/I18n",nt="tinymce/FocusManager",rt="tinymce/EditorManager",it="tinymce/LegacyInput",ot="tinymce/util/XHR",at="tinymce/util/JSON",st="tinymce/util/JSONRequest",lt="tinymce/util/JSONP",ct="tinymce/util/LocalStorage",ut="tinymce/Compat",dt="tinymce/ui/Layout",ft="tinymce/ui/AbsoluteLayout",ht="tinymce/ui/Button",pt="tinymce/ui/ButtonGroup",mt="tinymce/ui/Checkbox",gt="tinymce/ui/ComboBox",vt="tinymce/ui/ColorBox",yt="tinymce/ui/PanelButton",bt="tinymce/ui/ColorButton",Ct="tinymce/util/Color",xt="tinymce/ui/ColorPicker",wt="tinymce/ui/Path",Nt="tinymce/ui/ElementPath",Et="tinymce/ui/FormItem",_t="tinymce/ui/Form",St="tinymce/ui/FieldSet",kt="tinymce/ui/FilePicker",Tt="tinymce/ui/FitLayout",Rt="tinymce/ui/FlexLayout",At="tinymce/ui/FlowLayout",Bt="tinymce/ui/FormatControls",Dt="tinymce/ui/GridLayout",Lt="tinymce/ui/Iframe",Mt="tinymce/ui/InfoBox",Pt="tinymce/ui/Label",Ht="tinymce/ui/Toolbar",Ot="tinymce/ui/MenuBar",It="tinymce/ui/MenuButton",Ft="tinymce/ui/MenuItem",zt="tinymce/ui/Throbber",Ut="tinymce/ui/Menu",Wt="tinymce/ui/ListBox",Vt="tinymce/ui/Radio",$t="tinymce/ui/ResizeHandle",qt="tinymce/ui/SelectBox",jt="tinymce/ui/Slider",Yt="tinymce/ui/Spacer",Xt="tinymce/ui/SplitButton",Kt="tinymce/ui/StackLayout",Gt="tinymce/ui/TabPanel",Jt="tinymce/ui/TextBox",Qt="tinymce/Register";r(l,[],function(){function e(e,t,n){var r,i,a,s,l,u;return r=t.x,i=t.y,a=e.w,s=e.h,l=t.w,u=t.h,n=(n||"").split(""),"b"===n[0]&&(i+=u),"r"===n[1]&&(r+=l),"c"===n[0]&&(i+=c(u/2)),"c"===n[1]&&(r+=c(l/2)),"b"===n[3]&&(i-=s),"r"===n[4]&&(r-=a),"c"===n[3]&&(i-=c(s/2)),"c"===n[4]&&(r-=c(a/2)),o(r,i,a,s)}function t(t,n,r,i){var o,a;for(a=0;a<i.length;a++)if(o=e(t,n,i[a]),o.x>=r.x&&o.x+o.w<=r.w+r.x&&o.y>=r.y&&o.y+o.h<=r.h+r.y)return i[a];return null}function n(e,t,n){return o(e.x-t,e.y-n,e.w+2*t,e.h+2*n)}function r(e,t){var n,r,i,a;return n=l(e.x,t.x),r=l(e.y,t.y),i=s(e.x+e.w,t.x+t.w),a=s(e.y+e.h,t.y+t.h),0>i-n||0>a-r?null:o(n,r,i-n,a-r)}function i(e,t,n){var r,i,a,s,c,u,d,f,h,p;return c=e.x,u=e.y,d=e.x+e.w,f=e.y+e.h,h=t.x+t.w,p=t.y+t.h,r=l(0,t.x-c),i=l(0,t.y-u),a=l(0,d-h),s=l(0,f-p),c+=r,u+=i,n&&(d+=r,f+=i,c-=a,u-=s),d-=a,f-=s,o(c,u,d-c,f-u)}function o(e,t,n,r){return{x:e,y:t,w:n,h:r}}function a(e){return o(e.left,e.top,e.width,e.height)}var s=Math.min,l=Math.max,c=Math.round;return{inflate:n,relativePosition:e,findBestRelativePosition:t,intersect:r,clamp:i,create:o,fromClientRect:a}}),r(c,[],function(){function e(e,t){return function(){e.apply(t,arguments)}}function t(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],s(t,e(r,this),e(i,this))}function n(e){var t=this;return null===this._state?void this._deferreds.push(e):void l(function(){var n=t._state?e.onFulfilled:e.onRejected;if(null===n)return void(t._state?e.resolve:e.reject)(t._value);var r;try{r=n(t._value)}catch(i){return void e.reject(i)}e.resolve(r)})}function r(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void s(e(n,t),e(r,this),e(i,this))}this._state=!0,this._value=t,o.call(this)}catch(a){i.call(this,a)}}function i(e){this._state=!1,this._value=e,o.call(this)}function o(){for(var e=0,t=this._deferreds.length;t>e;e++)n.call(this,this._deferreds[e]);this._deferreds=null}function a(e,t,n,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}function s(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(i){if(r)return;r=!0,n(i)}}if(window.Promise)return window.Promise;var l=t.immediateFn||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,1)},c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return t.prototype["catch"]=function(e){return this.then(null,e)},t.prototype.then=function(e,r){var i=this;return new t(function(t,o){n.call(i,new a(e,r,t,o))})},t.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&c(arguments[0])?arguments[0]:arguments);return new t(function(t,n){function r(o,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(e){r(o,e)},n)}e[o]=a,0===--i&&t(e)}catch(l){n(l)}}if(0===e.length)return t([]);for(var i=e.length,o=0;o<e.length;o++)r(o,e[o])})},t.resolve=function(e){return e&&"object"==typeof e&&e.constructor===t?e:new t(function(t){t(e)})},t.reject=function(e){return new t(function(t,n){n(e)})},t.race=function(e){return new t(function(t,n){for(var r=0,i=e.length;i>r;r++)e[r].then(t,n)})},t}),r(u,[c],function(e){function t(e,t){function n(e){window.setTimeout(e,0)}var r,i=window.requestAnimationFrame,o=["ms","moz","webkit"];for(r=0;r<o.length&&!i;r++)i=window[o[r]+"RequestAnimationFrame"];i||(i=n),i(e,t)}function n(e,t){return"number"!=typeof t&&(t=0),setTimeout(e,t)}function r(e,t){return"number"!=typeof t&&(t=1),setInterval(e,t)}function i(e){return clearTimeout(e)}function o(e){return clearInterval(e)}var a;return{requestAnimationFrame:function(n,r){return a?void a.then(n):void(a=new e(function(e){r||(r=document.body),t(e,r)}).then(n))},setTimeout:n,setInterval:r,setEditorTimeout:function(e,t,r){return n(function(){e.removed||t()},r)},setEditorInterval:function(e,t,n){var i;return i=r(function(){e.removed?clearInterval(i):t()},n)},throttle:function(e,t){var r,i;return i=function(){var i=arguments;clearTimeout(r),r=n(function(){e.apply(this,i)},t)},i.stop=function(){clearTimeout(r)},i},clearInterval:o,clearTimeout:i}}),r(d,[],function(){function e(e){return"matchMedia"in window?matchMedia(e).matches:!1}var t=navigator,n=t.userAgent,r,i,o,a,s,l,c,u,d,f,h,p,m;r=window.opera&&window.opera.buildNumber,d=/Android/.test(n),i=/WebKit/.test(n),o=!i&&!r&&/MSIE/gi.test(n)&&/Explorer/gi.test(t.appName),o=o&&/MSIE (\w+)\./.exec(n)[1],a=-1==n.indexOf("Trident/")||-1==n.indexOf("rv:")&&-1==t.appName.indexOf("Netscape")?!1:11,s=-1==n.indexOf("Edge/")||o||a?!1:12,o=o||a||s,l=!i&&!a&&/Gecko/.test(n),c=-1!=n.indexOf("Mac"),u=/(iPad|iPhone)/.test(n),f="FormData"in window&&"FileReader"in window&&"URL"in window&&!!URL.createObjectURL,h=e("only screen and (max-device-width: 480px)")&&(d||u),p=e("only screen and (min-width: 800px)")&&(d||u),m=-1!=n.indexOf("Windows Phone"),s&&(i=!1);var g=!u||f||n.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:r,webkit:i,ie:o,gecko:l,mac:c,iOS:u,android:d,contentEditable:g,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=o,range:window.getSelection&&"Range"in window,documentMode:o&&!s?document.documentMode||7:10,fileApi:f,ceFalse:o===!1||o>8,desktop:!h&&!p,windowsPhone:m}}),r(f,[u,d],function(e,t){function n(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function r(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function i(e,t){var n,r=t;return n=e.path,n&&n.length>0&&(r=n[0]),e.deepPath&&(n=e.deepPath(),n&&n.length>0&&(r=n[0])),r}function o(e,n){function r(){return!1}function o(){return!0}var a,s=n||{},l;for(a in e)u[a]||(s[a]=e[a]);if(s.target||(s.target=s.srcElement||document),t.experimentalShadowDom&&(s.target=i(e,s.target)),e&&c.test(e.type)&&e.pageX===l&&e.clientX!==l){var d=s.target.ownerDocument||document,f=d.documentElement,h=d.body;s.pageX=e.clientX+(f&&f.scrollLeft||h&&h.scrollLeft||0)-(f&&f.clientLeft||h&&h.clientLeft||0),s.pageY=e.clientY+(f&&f.scrollTop||h&&h.scrollTop||0)-(f&&f.clientTop||h&&h.clientTop||0)}return s.preventDefault=function(){s.isDefaultPrevented=o,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},s.stopPropagation=function(){s.isPropagationStopped=o,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},s.stopImmediatePropagation=function(){s.isImmediatePropagationStopped=o,s.stopPropagation()},s.isDefaultPrevented||(s.isDefaultPrevented=r,s.isPropagationStopped=r,s.isImmediatePropagationStopped=r),"undefined"==typeof s.metaKey&&(s.metaKey=!1),s}function a(t,i,o){function a(){o.domLoaded||(o.domLoaded=!0,i(u))}function s(){("complete"===c.readyState||"interactive"===c.readyState&&c.body)&&(r(c,"readystatechange",s),a())}function l(){try{c.documentElement.doScroll("left")}catch(t){return void e.setTimeout(l)}a()}var c=t.document,u={type:"ready"};return o.domLoaded?void i(u):(c.addEventListener?"complete"===c.readyState?a():n(t,"DOMContentLoaded",a):(n(c,"readystatechange",s),c.documentElement.doScroll&&t.self===t.top&&l()),void n(t,"load",a))}function s(){function e(e,t){var n,r,o,a,s=i[t];if(n=s&&s[e.type])for(r=0,o=n.length;o>r;r++)if(a=n[r],a&&a.func.call(a.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var t=this,i={},s,c,u,d,f;c=l+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},s=1,t.domLoaded=!1,t.events=i,t.bind=function(r,l,h,p){function m(t){e(o(t||N.event),g)}var g,v,y,b,C,x,w,N=window;if(r&&3!==r.nodeType&&8!==r.nodeType){for(r[c]?g=r[c]:(g=s++,r[c]=g,i[g]={}),p=p||r,l=l.split(" "),y=l.length;y--;)b=l[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),t.domLoaded&&"ready"===b&&"complete"==r.readyState?h.call(p,o({type:b})):(d||(C=f[b],C&&(x=function(t){var n,r;if(n=t.currentTarget,r=t.relatedTarget,r&&n.contains)r=n.contains(r);else for(;r&&r!==n;)r=r.parentNode;r||(t=o(t||N.event),t.type="mouseout"===t.type?"mouseleave":"mouseenter",t.target=n,e(t,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(t){t=o(t||N.event),t.type="focus"===t.type?"focusin":"focusout",e(t,g)}),v=i[g][b],v?"ready"===b&&t.domLoaded?h({type:b}):v.push({func:h,scope:p}):(i[g][b]=v=[{func:h,scope:p}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?a(r,x,t):n(r,C||b,x,w)));return r=v=0,h}},t.unbind=function(e,n,o){var a,s,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return t;if(a=e[c]){if(f=i[a],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],s=f[d]){if(o)for(u=s.length;u--;)if(s[u].func===o){var h=s.nativeHandler,p=s.fakeName,m=s.capture;s=s.slice(0,u).concat(s.slice(u+1)),s.nativeHandler=h,s.fakeName=p,s.capture=m,f[d]=s}o&&0!==s.length||(delete f[d],r(e,s.fakeName||d,s.nativeHandler,s.capture))}}else{for(d in f)s=f[d],r(e,s.fakeName||d,s.nativeHandler,s.capture);f={}}for(d in f)return t;delete i[a];try{delete e[c]}catch(g){e[c]=null}}return t},t.fire=function(n,r,i){var a;if(!n||3===n.nodeType||8===n.nodeType)return t;i=o(null,i),i.type=r,i.target=n;do a=n[c],a&&e(i,a),n=n.parentNode||n.ownerDocument||n.defaultView||n.parentWindow;while(n&&!i.isPropagationStopped());return t},t.clean=function(e){var n,r,i=t.unbind;if(!e||3===e.nodeType||8===e.nodeType)return t;if(e[c]&&i(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(i(e),r=e.getElementsByTagName("*"),n=r.length;n--;)e=r[n],e[c]&&i(e);return t},t.destroy=function(){i={}},t.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var l="mce-data-",c=/^(?:mouse|contextmenu)|click/,u={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1};return s.Event=new s,s.Event.bind(window,"ready",function(){}),s}),r(h,[],function(){function e(e,t,n,r){var i,o,a,s,l,c,d,h,p,m;if((t?t.ownerDocument||t:z)!==D&&B(t),t=t||D,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(M&&!r){if(i=ve.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&x.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(x.qsa&&(!P||!P.test(e))){if(h=d=F,p=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=_(e),(d=t.getAttribute("id"))?h=d.replace(be,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",l=c.length;l--;)c[l]=h+f(c[l]);p=ye.test(e)&&u(t.parentNode)||t,m=c.join(",")}if(m)try{return Z.apply(n,p.querySelectorAll(m)),n}catch(g){}finally{d||t.removeAttribute("id")}}}return k(e.replace(se,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>w.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&typeof e.getElementsByTagName!==Y&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function h(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=W++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c=[U,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[F]||(t[F]={}),(s=l[r])&&s[0]===U&&s[1]===o)return c[2]=s[2];if(l[r]=c,c[2]=e(t,n,a))return!0}}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(t,n,r){for(var i=0,o=n.length;o>i;i++)e(t,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),c&&t.push(s)));return a}function v(e,t,n,i,o,a){return i&&!i[F]&&(i=v(i)),o&&!o[F]&&(o=v(o,a)),r(function(r,a,s,l){var c,u,d,f=[],h=[],p=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,l),b=n?o||(r?e:p||i)?[]:a:y;if(n&&n(y,b,s,l),i)for(c=g(b,h),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[h[u]]=!(y[h[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(y[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?te.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=g(b===a?b.splice(p,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=h(function(e){return e===t},a,!0),c=h(function(e){return te.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=w.relative[e[s].type])u=[h(p(u),n)];else{if(n=w.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;i>r&&!w.relative[e[r].type];r++);return v(s>1&&p(u),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}u.push(n)}return p(u)}function b(t,n){var i=n.length>0,o=t.length>0,a=function(r,a,s,l,c){var u,d,f,h=0,p="0",m=r&&[],v=[],y=T,b=r||o&&w.find.TAG("*",c),C=U+=null==y?1:Math.random()||.1,x=b.length;for(c&&(T=a!==D&&a);p!==x&&null!=(u=b[p]);p++){if(o&&u){for(d=0;f=t[d++];)if(f(u,a,s)){l.push(u);break}c&&(U=C)}i&&((u=!f&&u)&&h--,r&&m.push(u))}if(h+=p,i&&p!==h){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(h>0)for(;p--;)m[p]||v[p]||(v[p]=J.call(l));v=g(v)}Z.apply(l,v),c&&!r&&v.length>0&&h+n.length>1&&e.uniqueSort(l)}return c&&(U=C,T=y),m};return i?r(a):a}var C,x,w,N,E,_,S,k,T,R,A,B,D,L,M,P,H,O,I,F="sizzle"+-new Date,z=window.document,U=0,W=0,V=n(),$=n(),q=n(),j=function(e,t){return e===t&&(A=!0),0},Y=typeof t,X=1<<31,K={}.hasOwnProperty,G=[],J=G.pop,Q=G.push,Z=G.push,ee=G.slice,te=G.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},ne="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",re="[\\x20\\t\\r\\n\\f]",ie="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",oe="\\["+re+"*("+ie+")(?:"+re+"*([*^$|!~]?=)"+re+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+re+"*\\]",ae=":("+ie+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",se=new RegExp("^"+re+"+|((?:^|[^\\\\])(?:\\\\.)*)"+re+"+$","g"),le=new RegExp("^"+re+"*,"+re+"*"),ce=new RegExp("^"+re+"*([>+~]|"+re+")"+re+"*"),ue=new RegExp("="+re+"*([^\\]'\"]*?)"+re+"*\\]","g"),de=new RegExp(ae),fe=new RegExp("^"+ie+"$"),he={ID:new RegExp("^#("+ie+")"),CLASS:new RegExp("^\\.("+ie+")"),TAG:new RegExp("^("+ie+"|[*])"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+re+"*(even|odd|(([+-]|)(\\d*)n|)"+re+"*(?:([+-]|)"+re+"*(\\d+)|))"+re+"*\\)|)","i"),bool:new RegExp("^(?:"+ne+")$","i"),needsContext:new RegExp("^"+re+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+re+"*((?:-\\d)?\\d*)"+re+"*\\)|)(?=[^-]|$)","i")},pe=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=/'|\\/g,Ce=new RegExp("\\\\([\\da-f]{1,6}"+re+"?|("+re+")|.)","ig"),xe=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(G=ee.call(z.childNodes),z.childNodes),G[z.childNodes.length].nodeType}catch(we){Z={apply:G.length?function(e,t){Q.apply(e,ee.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=e.support={},E=e.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},B=e.setDocument=function(e){function t(e){try{return e.top}catch(t){}return null}var n,r=e?e.ownerDocument||e:z,o=r.defaultView;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,L=r.documentElement,M=!E(r),o&&o!==t(o)&&(o.addEventListener?o.addEventListener("unload",function(){B()},!1):o.attachEvent&&o.attachEvent("onunload",function(){B()})),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=ge.test(r.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!r.getElementsByName||!r.getElementsByName(F).length}),x.getById?(w.find.ID=function(e,t){if(typeof t.getElementById!==Y&&M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),w.find.TAG=x.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=x.getElementsByClassName&&function(e,t){return M?t.getElementsByClassName(e):void 0},H=[],P=[],(x.qsa=ge.test(r.querySelectorAll))&&(i(function(e){e.innerHTML="<select msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+re+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+re+"*(?:value|"+ne+")"),e.querySelectorAll(":checked").length||P.push(":checked")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+re+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(x.matchesSelector=ge.test(O=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),H.push("!=",ae)}),P=P.length&&new RegExp(P.join("|")),H=H.length&&new RegExp(H.join("|")),n=ge.test(L.compareDocumentPosition),I=n||ge.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=n?function(e,t){if(e===t)return A=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!x.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===z&&I(z,e)?-1:t===r||t.ownerDocument===z&&I(z,t)?1:R?te.call(R,e)-te.call(R,t):0:4&n?-1:1)}:function(e,t){if(e===t)return A=!0,0;var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:R?te.call(R,e)-te.call(R,t):0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===z?-1:c[i]===z?1:0},r):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&B(t),n=n.replace(ue,"='$1']"),x.matchesSelector&&M&&(!H||!H.test(n))&&(!P||!P.test(n)))try{var r=O.call(t,n);if(r||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},e.attr=function(e,n){(e.ownerDocument||e)!==D&&B(e);var r=w.attrHandle[n.toLowerCase()],i=r&&K.call(w.attrHandle,n.toLowerCase())?r(e,n,!M):t;return i!==t?i:x.attributes||!M?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null},e.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},e.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!x.detectDuplicates,R=!x.sortStable&&e.slice(0),e.sort(j),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return R=null,e},N=e.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=N(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=N(t);return n},w=e.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Ce,xe),e[3]=(e[3]||e[4]||e[5]||"").replace(Ce,xe),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&de.test(n)&&(t=_(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Ce,xe).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=V[e+" "];return t||(t=new RegExp("(^|"+re+")"+e+"("+re+"|$)"))&&V(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,h,p,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;p=m="only"===e&&!p&&"nextSibling"}return!0}if(p=[a?g.firstChild:g.lastChild],a&&y){for(u=g[F]||(g[F]={}),c=u[e]||[],h=c[0]===U&&c[1],f=c[0]===U&&c[2],d=h&&g.childNodes[h];d=++h&&d&&d[m]||(f=h=0)||p.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[U,h,f];break}}else if(y&&(c=(t[F]||(t[F]={}))[e])&&c[0]===U)f=c[1];else for(;(d=++h&&d&&d[m]||(f=h=0)||p.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[U,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(t,n){var i,o=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[F]?o(n):o.length>1?(i=[t,t,"",n],w.setFilters.hasOwnProperty(t.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=te.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(se,"$1"));return i[F]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(e){return e=e.replace(Ce,xe),function(t){return(t.textContent||t.innerText||N(t)).indexOf(e)>-1}}),lang:r(function(t){return fe.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(Ce,xe).toLowerCase(),function(e){var n;do if(n=M?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return pe.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},w.pseudos.nth=w.pseudos.eq;for(C in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[C]=s(C);for(C in{submit:!0,reset:!0})w.pseudos[C]=l(C);return d.prototype=w.filters=w.pseudos,w.setFilters=new d,_=e.tokenize=function(t,n){var r,i,o,a,s,l,c,u=$[t+" "];if(u)return n?0:u.slice(0);for(s=t,l=[],c=w.preFilter;s;){r&&!(i=le.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ce.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(se," ")}),s=s.slice(r.length));for(a in w.filter)!(i=he[a].exec(s))||c[a]&&!(i=c[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?e.error(t):$(t,l).slice(0)},S=e.compile=function(e,t){var n,r=[],i=[],o=q[e+" "];if(!o){for(t||(t=_(e)),n=t.length;n--;)o=y(t[n]),o[F]?r.push(o):i.push(o);o=q(e,b(i,r)),o.selector=e}return o},k=e.select=function(e,t,n,r){var i,o,a,s,l,c="function"==typeof e&&e,d=!r&&_(e=c.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&x.getById&&9===t.nodeType&&M&&w.relative[o[1].type]){if(t=(w.find.ID(a.matches[0].replace(Ce,xe),t)||[])[0],!t)return n;c&&(t=t.parentNode),
-e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(Ce,xe),ye.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(c||S(e,d))(r,t,!M,n,ye.test(e)&&u(t.parentNode)||t),n},x.sortStable=F.split("").sort(j).join("")===F,x.detectDuplicates=!!A,B(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(ne,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),e}),r(p,[],function(){function e(e){var t=e,n,r;if(!u(e))for(t=[],n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function n(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function r(e,t){var r=[];return n(e,function(n,i){r.push(t(n,i,e))}),r}function i(e,t){var r=[];return n(e,function(n,i){t&&!t(n,i,e)||r.push(n)}),r}function o(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function a(e,t,n,r){var i=0;for(arguments.length<3&&(n=e[0]);i<e.length;i++)n=t.call(r,n,e[i],i);return n}function s(e,t,n){var r,i;for(r=0,i=e.length;i>r;r++)if(t.call(n,e[r],r,e))return r;return-1}function l(e,n,r){var i=s(e,n,r);return-1!==i?e[i]:t}function c(e){return e[e.length-1]}var u=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{isArray:u,toArray:e,each:n,map:r,filter:i,indexOf:o,reduce:a,findIndex:s,find:l,last:c}}),r(m,[d,p],function(e,n){function r(e){return null===e||e===t?"":(""+e).replace(h,"")}function i(e,r){return r?"array"==r&&n.isArray(e)?!0:typeof e==r:e!==t}function o(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function a(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],c?o[a]=function(){return i[s].apply(this,arguments)}:o[a]=function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function s(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function l(e,t,r,i){i=i||this,e&&(r&&(e=e[r]),n.each(e,function(e,n){return t.call(i,e,n,r)===!1?!1:void l(e,t,r,i)}))}function c(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function u(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function d(e,t){return!e||i(e,"array")?e:n.map(e.split(t||","),r)}function f(t){var n=e.cacheSuffix;return n&&(t+=(-1===t.indexOf("?")?"?":"&")+n),t}var h=/^\s*|\s*$/g;return{trim:r,isArray:n.isArray,is:i,toArray:n.toArray,makeMap:o,each:n.each,map:n.map,grep:n.filter,inArray:n.indexOf,extend:s,create:a,walk:l,createNS:c,resolve:u,explode:d,_addCacheSuffix:f}}),r(g,[f,h,m,d],function(e,n,r,i){function o(e){return"undefined"!=typeof e}function a(e){return"string"==typeof e}function s(e){return e&&e==e.window}function l(e,t){var n,r,i;for(t=t||w,i=t.createElement("div"),n=t.createDocumentFragment(),i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return n}function c(e,t,n,r){var i;if(a(t))t=l(t,v(e[0]));else if(t.length&&!t.nodeType){if(t=f.makeArray(t),r)for(i=t.length-1;i>=0;i--)c(e,t[i],n,r);else for(i=0;i<t.length;i++)c(e,t[i],n,r);return e}if(t.nodeType)for(i=e.length;i--;)n.call(e[i],t);return e}function u(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function d(e,t,n){var r,i;return t=f(t)[0],e.each(function(){var e=this;n&&r==e.parentNode?i.appendChild(e):(r=e.parentNode,i=t.cloneNode(!1),e.parentNode.insertBefore(i,e),i.appendChild(e))}),e}function f(e,t){return new f.fn.init(e,t)}function h(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e){return null===e||e===k?"":(""+e).replace(P,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,r,a)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,i,a)!==!1);i++);return e}function g(e,t){var n=[];return m(e,function(e,r){t(r,e)&&n.push(r)}),n}function v(e){return e?9==e.nodeType?e:e.ownerDocument:w}function y(e,n,r){var i=[],o=e[n];for("string"!=typeof r&&r instanceof f&&(r=r[0]);o&&9!==o.nodeType;){if(r!==t){if(o===r)break;if("string"==typeof r&&f(o).is(r))break}1===o.nodeType&&i.push(o),o=o[n]}return i}function b(e,n,r,i){var o=[];for(i instanceof f&&(i=i[0]);e;e=e[n])if(!r||e.nodeType===r){if(i!==t){if(e===i)break;if("string"==typeof i&&f(e).is(i))break}o.push(e)}return o}function C(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType==n)return e;return null}function x(e,t,n){m(n,function(n,r){e[n]=e[n]||{},e[n][t]=r})}var w=document,N=Array.prototype.push,E=Array.prototype.slice,_=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,S=e.Event,k,T=r.makeMap("children,contents,next,prev"),R=r.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),A=r.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),B={"for":"htmlFor","class":"className",readonly:"readOnly"},D={"float":"cssFloat"},L={},M={},P=/^\s*|\s*$/g;return f.fn=f.prototype={constructor:f,selector:"",context:null,length:0,init:function(e,t){var n=this,r,i;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(t&&t.nodeType)n.context=t;else{if(t)return f(e).attr(t);n.context=t=document}if(a(e)){if(n.selector=e,r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:_.exec(e),!r)return f(t).find(e);if(r[1])for(i=l(e,v(t)).firstChild;i;)N.call(n,i),i=i.nextSibling;else{if(i=v(t).getElementById(r[2]),!i)return n;if(i.id!==r[2])return n.find(e);n.length=1,n[0]=i}}else this.add(e,!1);return n},toArray:function(){return r.toArray(this)},add:function(e,t){var n=this,r,i;if(a(e))return n.add(f(e));if(t!==!1)for(r=f.unique(n.toArray().concat(f.makeArray(e))),n.length=r.length,i=0;i<r.length;i++)n[i]=r[i];else N.apply(n,f.makeArray(e));return n},attr:function(e,t){var n=this,r;if("object"==typeof e)m(e,function(e,t){n.attr(e,t)});else{if(!o(t)){if(n[0]&&1===n[0].nodeType){if(r=L[e],r&&r.get)return r.get(n[0],e);if(A[e])return n.prop(e)?e:k;t=n[0].getAttribute(e,2),null===t&&(t=k)}return t}this.each(function(){var n;if(1===this.nodeType){if(n=L[e],n&&n.set)return void n.set(this,t);null===t?this.removeAttribute(e,2):this.setAttribute(e,t,2)}})}return n},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if(e=B[e]||e,"object"==typeof e)m(e,function(e,t){n.prop(e,t)});else{if(!o(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1==this.nodeType&&(this[e]=t)})}return n},css:function(e,t){function n(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})}function r(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})}var i=this,a,s;if("object"==typeof e)m(e,function(e,t){i.css(e,t)});else if(o(t))e=n(e),"number"!=typeof t||R[e]||(t+="px"),i.each(function(){var n=this.style;if(s=M[e],s&&s.set)return void s.set(this,t);try{this.style[D[e]||e]=t}catch(i){}null!==t&&""!==t||(n.removeProperty?n.removeProperty(r(e)):n.removeAttribute(e))});else{if(a=i[0],s=M[e],s&&s.get)return s.get(a);if(a.ownerDocument.defaultView)try{return a.ownerDocument.defaultView.getComputedStyle(a,null).getPropertyValue(r(e))}catch(l){return k}else if(a.currentStyle)return a.currentStyle[n(e)]}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],S.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(o(e)){n=t.length;try{for(;n--;)t[n].innerHTML=e}catch(r){f(t[n]).empty().append(e)}return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(o(e)){for(n=t.length;n--;)"innerText"in t[n]?t[n].innerText=e:t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return c(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(e)})},prepend:function(){return c(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.insertBefore(e,this.firstChild)},!0)},before:function(){var e=this;return e[0]&&e[0].parentNode?c(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?c(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):e},appendTo:function(e){return f(e).append(this),this},prependTo:function(e){return f(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return d(this,e)},wrapAll:function(e){return d(this,e,!0)},wrapInner:function(e){return this.each(function(){f(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){f(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),f(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return"string"!=typeof e?n:(-1!==e.indexOf(" ")?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n,r){var i,o;o=u(r,e),o!==t&&(i=r.className,o?r.className=p((" "+i+" ").replace(" "+e+" "," ")):r.className+=i?" "+e:e)}),n)},hasClass:function(e){return u(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){S.bind(this,e,t)})},off:function(e,t){return this.each(function(){S.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?S.fire(this,e.type,e):S.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new f(E.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)f.find(e,this[t],r);return f(r)},filter:function(e){return f("function"==typeof e?g(this.toArray(),function(t,n){return e(n,t)}):f.filter(e,this.toArray()))},closest:function(e){var t=[];return e instanceof f&&(e=e[0]),this.each(function(n,r){for(;r;){if("string"==typeof e&&f(r).is(e)){t.push(r);break}if(r==e){t.push(r);break}r=r.parentNode}}),f(t)},offset:function(e){var t,n,r,i=0,o=0,a;return e?this.css(e):(t=this[0],t&&(n=t.ownerDocument,r=n.documentElement,t.getBoundingClientRect&&(a=t.getBoundingClientRect(),i=a.left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,o=a.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:o})},push:N,sort:[].sort,splice:[].splice},r.extend(f,{extend:r.extend,makeArray:function(e){return s(e)||e.nodeType?[e]:r.toArray(e)},inArray:h,isArray:r.isArray,each:m,trim:p,grep:g,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,contains:n.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!=t[r].nodeType&&t.splice(r,1);return t=1===t.length?f.find.matchesSelector(t[0],e)?[t[0]]:[]:f.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return y(e,"parentNode")},next:function(e){return C(e,"nextSibling",1)},prev:function(e){return C(e,"previousSibling",1)},children:function(e){return b(e.firstChild,"nextSibling",1)},contents:function(e){return r.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){f.fn[e]=function(n){var r=this,i=[];return r.each(function(){var e=t.call(i,this,n,i);e&&(f.isArray(e)?i.push.apply(i,e):i.push(e))}),this.length>1&&(T[e]||(i=f.unique(i)),0===e.indexOf("parents")&&(i=i.reverse())),i=f(i),n?i.filter(n):i}}),m({parentsUntil:function(e,t){return y(e,"parentNode",t)},nextUntil:function(e,t){return b(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return b(e,"previousSibling",1,t).slice(1)}},function(e,t){f.fn[e]=function(n,r){var i=this,o=[];return i.each(function(){var e=t.call(o,this,n,o);e&&(f.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=f.unique(o),0!==e.indexOf("parents")&&"prevUntil"!==e||(o=o.reverse())),o=f(o),r?o.filter(r):o}}),f.fn.is=function(e){return!!e&&this.filter(e).length>0},f.fn.init.prototype=f.fn,f.overrideDefaults=function(e){function t(r,i){return n=n||e(),0===arguments.length&&(r=n.element),i||(i=n.context),new t.fn.init(r,i)}var n;return f.extend(t,this),t},i.ie&&i.ie<8&&(x(L,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?k:t},size:function(e){var t=e.size;return 20===t?k:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?k:t}}),x(L,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),i.ie&&i.ie<9&&(D["float"]="styleFloat",x(M,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),f.attrHooks=L,f.cssHooks=M,f}),r(v,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d,f,h="\ufeff";for(e=e||{},t&&(d=t.getValidStyles(),f=t.getInvalidStyles()),u=("\\\" \\' \\; \\: ; : "+h).split(" "),l=0;l<u.length;l++)c[u[l]]=h+l,c[h+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=m[e+"-top"+t],r&&(i=m[e+"-right"+t],i&&(o=m[e+"-bottom"+t],o&&(a=m[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(m[e+t]=-1==l?s[0]:s.join(" "),delete m[e+"-top"+t],delete m[e+"-right"+t],delete m[e+"-bottom"+t],delete m[e+"-left"+t])}}function u(e){var t=m[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return m[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(m[e]=m[t]+" "+m[n]+" "+m[r],delete m[t],delete m[n],delete m[r])}function f(e){return b=!0,c[e]}function h(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function p(t,n,r,i,o,a){if(o=o||a)return o=h(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=h(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var m={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),y=y.replace(/\\[0-9a-f]+/g,function(e){return String.fromCharCode(parseInt(e.substr(1),16))}),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(|\/\*|\*\//.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":"color"!==v&&"background-color"!==v||(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,p),m[v]=b?h(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===m.border&&delete m.border,"none"===m["border-image"]&&delete m["border-image"]}return m},serialize:function(e,t){function n(t){var n,r,o,a;if(n=d[t])for(r=0,o=n.length;o>r;r++)t=n[r],a=e[t],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+t+": "+a+";")}function r(e,t){var n;return n=f["*"],n&&n[e]?!1:(n=f[t],!n||!n[e])}var i="",o,a;if(t&&d)n("*"),n(t);else for(o in e)a=e[o],a!==s&&a.length>0&&(f&&!r(o,t)||(i+=(i.length>0?" ":"")+o+": "+a+";"));return i}}}}),r(y,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}function r(e,n,r,i){var o,a,s;if(e){if(o=e[r],t&&o===t)return;if(o){if(!i)for(s=o[n];s;s=s[n])if(!s[n])return s;return o}if(a=e.parentNode,a&&a!==t)return a}}var i=e;this.current=function(){return i},this.next=function(e){return i=n(i,"firstChild","nextSibling",e)},this.prev=function(e){return i=n(i,"lastChild","previousSibling",e)},this.prev2=function(e){return i=r(i,"lastChild","previousSibling",e)}}}),r(b,[m],function(e){function t(n){function r(){return P.createDocumentFragment()}function i(e,t){N(F,e,t)}function o(e,t){N(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(M[V]=M[W],M[$]=M[U]):(M[W]=M[V],M[U]=M[$]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function h(e,t){var n=M[W],r=M[U],i=M[V],o=M[$],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function p(){E(I)}function m(){return E(H)}function g(){return E(O)}function v(e){var t=this[W],r=this[U],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return q(new t(n),{startContainer:M[W],startOffset:M[U],endContainer:M[V],endOffset:M[$],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[W]==M[V]&&M[U]==M[$]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function N(e,t,r){var i,o;for(e?(M[W]=t,M[U]=r):(M[V]=t,M[$]=r),i=M[V];i.parentNode;)i=i.parentNode;for(o=M[W];o.parentNode;)o=o.parentNode;o==i?w(M[W],M[U],M[V],M[$])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[W],M[V])}function E(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[W]==M[V])return _(e);for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[W])return S(t,e);++n}for(t=M[W],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return k(t,e);++r}for(o=r-n,a=M[W];o>0;)a=a.parentNode,o--;for(s=M[V];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function _(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[U]==M[$])return t;if(3==M[W].nodeType){if(n=M[W].nodeValue,i=n.substring(M[U],M[$]),e!=O&&(o=M[W],c=M[U],u=M[$]-M[U],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(P.createTextNode(i)),t}for(o=C(M[W],M[U]),a=M[$]-M[U];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[U],0>=a)return t!=O&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[$]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=D(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[V],M[$]-1),r,i,o,a,s,l=n!=M[V];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[W],M[U]),r=n!=M[W],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[U],a=o.substring(l),s=o.substring(0,l)):(l=M[$],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var M=this,P=n.doc,H=0,O=1,I=2,F=!0,z=!1,U="startOffset",W="startContainer",V="endContainer",$="endOffset",q=e.extend,j=n.nodeIndex;return q(M,{startContainer:P,startOffset:0,endContainer:P,endOffset:0,collapsed:F,commonAncestorContainer:P,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:h,deleteContents:p,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(C,[m],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;","`":"&#96;"},a={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n){return n?(n="x"===n.charAt(0).toLowerCase()?parseInt(n.substr(1),16):parseInt(n,10),n>65535?(n-=65536,String.fromCharCode(55296+(n>>10),56320+(1023&n))):d[n]||String.fromCharCode(n)):a[e]||i[e]||t(e)})}};return f}),r(x,[m,u],function(e,t){return function(n,r){function i(e){n.getElementsByTagName("head")[0].appendChild(e)}function o(r,o,c){function u(){for(var e=b.passed,t=e.length;t--;)e[t]();b.status=2,b.passed=[],b.failed=[]}function d(){for(var e=b.failed,t=e.length;t--;)e[t]();b.status=3,b.passed=[],b.failed=[]}function f(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function h(e,n){e()||((new Date).getTime()-y<l?t.setTimeout(n):d())}function p(){h(function(){for(var e=n.styleSheets,t,r=e.length,i;r--;)if(t=e[r],i=t.ownerNode?t.ownerNode:t.owningElement,i&&i.id===g.id)return u(),!0},p)}function m(){h(function(){try{var e=v.sheet.cssRules;return u(),!!e}catch(t){}},m)}var g,v,y,b;if(r=e._addCacheSuffix(r),s[r]?b=s[r]:(b={passed:[],failed:[]},s[r]=b),o&&b.passed.push(o),c&&b.failed.push(c),1!=b.status){if(2==b.status)return void u();if(3==b.status)return void d();if(b.status=1,g=n.createElement("link"),g.rel="stylesheet",g.type="text/css",g.id="u"+a++,g.async=!1,g.defer=!1,y=(new Date).getTime(),"onload"in g&&!f())g.onload=p,g.onerror=d;else{if(navigator.userAgent.indexOf("Firefox")>0)return v=n.createElement("style"),v.textContent='@import "'+r+'"',m(),void i(v);p()}i(g),g.href=r}}var a=0,s={},l;r=r||{},l=r.maxLoadTime||5e3,this.load=o}}),r(w,[h,g,v,f,y,b,C,d,m,x],function(e,n,r,i,o,a,s,l,c,u){function d(e,t){var n={},r=t.keep_values,i;return i={set:function(n,r,i){t.url_converter&&(r=t.url_converter.call(t.url_converter_scope||e,r,i,n[0])),n.attr("data-mce-"+i,r).attr(i,r)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},n={style:{set:function(e,t){return null!==t&&"object"==typeof t?void e.css(t):(r&&e.attr("data-mce-style",t),void e.attr("style",t))},get:function(t){var n=t.attr("data-mce-style")||t.attr("style");return n=e.serializeStyle(e.parseStyle(n),t[0].nodeName)}}},r&&(n.href=n.src=i),n}function f(e,t){var n=t.attr("style");n=e.serializeStyle(e.parseStyle(n),t[0].nodeName),n||(n=null),t.attr("data-mce-style",n)}function h(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n}function p(e,t){var o=this,a;o.doc=e,o.win=window,o.files={},o.counter=0,o.stdMode=!b||e.documentMode>=8,o.boxModel=!b||"CSS1Compat"==e.compatMode||o.stdMode,o.styleSheetLoader=new u(e),o.boundEvents=[],o.settings=t=t||{},o.schema=t.schema,o.styles=new r({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),o.fixDoc(e),o.events=t.ownEvents?new i(t.proxy):i.Event,o.attrHooks=d(o,t),a=t.schema?t.schema.getBlockElements():{},o.$=n.overrideDefaults(function(){return{context:e,element:o.getRoot()}}),o.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!a[e.nodeName]):!!a[e]}}var m=c.each,g=c.is,v=c.grep,y=c.trim,b=l.ie,C=/^([a-z0-9],?)+$/i,x=/^[ \t\r\n]*$/;return p.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){var t=this.settings,n;if(b&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!b||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.settings.root_element||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),g(n,"string")&&(a=n,n="*"===n?function(e){
-return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.settings.root_element||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(C.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=g(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&"undefined"!=typeof t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3==e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&f(this,e)},getStyle:function(e,n,r){return e=this.$$(e),r?e.css(n):(n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=l.ie&&l.ie<12?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[n]:t)},setStyles:function(e,t){e=this.$$(e).css(t),this.settings.update_styles&&f(this,e)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this,i,o,a=r.settings;""===n&&(n=null),e=r.$$(e),i=e.attr(t),e.length&&(o=r.attrHooks[t],o&&o.set?o.set(e,n,t):e.attr(t,n),i!=n&&a.onSetAttrib&&a.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){m(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r=this,i,o;return e=r.$$(e),e.length&&(i=r.attrHooks[t],o=i&&i.get?i.get(e,t):e.attr(t)),"undefined"==typeof o&&(o=n||""),o},getPos:function(e,t){var r=this,i=0,o=0,a,s=r.doc,l=s.body,c;if(e=r.get(e),t=t||l,e){if(t===l&&e.getBoundingClientRect&&"static"===n(l).css("position"))return c=e.getBoundingClientRect(),t=r.boxModel?s.documentElement:l,i=c.left+(s.documentElement.scrollLeft||l.scrollLeft)-t.clientLeft,o=c.top+(s.documentElement.scrollTop||l.scrollTop)-t.clientTop,{x:i,y:o};for(a=e;a&&a!=t&&a.nodeType;)i+=a.offsetLeft||0,o+=a.offsetTop||0,a=a.offsetParent;for(a=e.parentNode;a&&a!=t&&a.nodeType;)i-=a.scrollLeft||0,o-=a.scrollTop||0,a=a.parentNode}return{x:i,y:o}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==p.DOM&&n===document){var o=p.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,p.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==p.DOM&&n===document?void p.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void m(e.split(","),function(e){var i;e=c._addCacheSuffix(e),t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),b&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,r){this.$$(e).toggleClass(t,r).each(function(){""===this.className&&n(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"==this.$$(e).css("display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),b?e.each(function(e,r){if(r.canHaveHTML!==!1){for(;r.firstChild;)r.removeChild(r.firstChild);try{r.innerHTML="<br>"+t,r.removeChild(r.firstChild)}catch(i){n("<div>").html("<br>"+t).contents().slice(1).appendTo(r)}return t}}):e.html(t)},getOuterHTML:function(e){return e=this.get(e),1==e.nodeType&&"outerHTML"in e?e.outerHTML:n("<div>").append(n(e).clone()).html()},setOuterHTML:function(e,t){var r=this;r.$$(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}r.remove(n(this).html(t),!0)})},decode:s.decode,encode:s.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return g(t,"array")&&(e=e.cloneNode(!0)),n&&m(v(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(c.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],m(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(b){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,i,a,s,l,c=0;if(e=e.firstChild){s=new o(e,e.parentNode),t=t||(n.schema?n.schema.getNonEmptyElements():null);do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(i=n.getAttribs(e),r=i.length;r--;)if(l=i[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!x.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new a(this)},nodeIndex:h,split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=y(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.insertBefore(n,e):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(c.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(c.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},p.DOM=new p(document),p.nodeIndex=h,p}),r(N,[w,m],function(e,t){function n(){function e(e,n){function i(){a.remove(l),s&&(s.onreadystatechange=s.onload=s=null),n()}function o(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var a=r,s,l;l=a.uniqueId(),s=document.createElement("script"),s.id=l,s.type="text/javascript",s.src=t._addCacheSuffix(e),"onreadystatechange"in s?s.onreadystatechange=function(){/loaded|complete/.test(s.readyState)&&i()}:s.onload=i,s.onerror=o,(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}var n=0,a=1,s=2,l={},c=[],u={},d=[],f=0,h;this.isDone=function(e){return l[e]==s},this.markDone=function(e){l[e]=s},this.add=this.load=function(e,t,r){var i=l[e];i==h&&(c.push(e),l[e]=n),t&&(u[e]||(u[e]=[]),u[e].push({func:t,scope:r||this}))},this.remove=function(e){delete l[e],delete u[e]},this.loadQueue=function(e,t){this.loadScripts(c,e,t)},this.loadScripts=function(t,n,r){function c(e){i(u[e],function(e){e.func.call(e.scope)}),u[e]=h}var p;d.push({func:n,scope:r||this}),(p=function(){var n=o(t);t.length=0,i(n,function(t){return l[t]==s?void c(t):void(l[t]!=a&&(l[t]=a,f++,e(t,function(){l[t]=s,f--,c(t),p()})))}),f||(i(d,function(e){e.func.call(e.scope)}),d.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(E,[N,m],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",-1!=n.indexOf(","+i.substr(0,2)+","))i=i.substr(0,2);else if(-1==n.indexOf(","+i+","))return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},remove:function(e){delete this.urls[e],delete this.lookup[e]},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&(s?a.call(s):a.call(e))}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(_,[],function(){function e(e){return function(t){return!!t&&t.nodeType==e}}function t(e){return e=e.toLowerCase().split(" "),function(t){var n,r;if(t&&t.nodeType)for(r=t.nodeName.toLowerCase(),n=0;n<e.length;n++)if(r===e[n])return!0;return!1}}function n(e,t){return t=t.toLowerCase().split(" "),function(n){var r,i;if(s(n))for(r=0;r<t.length;r++)if(i=getComputedStyle(n,null).getPropertyValue(e),i===t[r])return!0;return!1}}function r(e,t){return function(n){return s(n)&&n[e]===t}}function i(e,t){return function(n){return s(n)&&n.getAttribute(e)===t}}function o(e){return s(e)&&e.hasAttribute("data-mce-bogus")}function a(e){return function(t){if(s(t)){if(t.contentEditable===e)return!0;if(t.getAttribute("data-mce-contenteditable")===e)return!0}return!1}}var s=e(1);return{isText:e(3),isElement:s,isComment:e(8),isBr:t("br"),isContentEditableTrue:a("true"),isContentEditableFalse:a("false"),matchNodeNames:t,hasPropValue:r,hasAttributeValue:i,matchStyleValues:n,isBogus:o}}),r(S,[],function(){function e(e){return e==n}function t(e){return e.replace(new RegExp(n,"g"),"")}var n="\u200b";return{isZwsp:e,ZWSP:n,trim:t}}),r(k,[_,S],function(e,t){function n(e){return d(e)&&(e=e.parentNode),u(e)&&e.hasAttribute("data-mce-caret")}function r(e){return d(e)&&t.isZwsp(e.data)}function i(e){return n(e)||r(e)}function o(e,n){var r,o,a,s;if(r=e.ownerDocument,a=r.createTextNode(t.ZWSP),s=e.parentNode,n){if(o=e.previousSibling,d(o)){if(i(o))return o;if(c(o))return o.splitText(o.data.length-1)}s.insertBefore(a,e)}else{if(o=e.nextSibling,d(o)){if(i(o))return o;if(l(o))return o.splitText(1),o}e.nextSibling?s.insertBefore(a,e.nextSibling):s.appendChild(a)}return a}function a(e,t,n){var r,i,o;return r=t.ownerDocument,i=r.createElement(e),i.setAttribute("data-mce-caret",n?"before":"after"),i.setAttribute("data-mce-bogus","all"),i.appendChild(r.createTextNode("\xa0")),o=t.parentNode,n?o.insertBefore(i,t):t.nextSibling?o.insertBefore(i,t.nextSibling):o.appendChild(i),i}function s(e){var n;u(e)&&i(e)&&("&nbsp;"!=e.innerHTML?e.removeAttribute("data-mce-caret"):e.parentNode&&e.parentNode.removeChild(e)),d(e)&&(n=t.trim(e.data),0===n.length&&e.parentNode&&e.parentNode.removeChild(e),e.nodeValue=n)}function l(e){return d(e)&&e.data[0]==t.ZWSP}function c(e){return d(e)&&e.data[e.data.length-1]==t.ZWSP}var u=e.isElement,d=e.isText;return{isCaretContainer:i,isCaretContainerBlock:n,isCaretContainerInline:r,insertInline:o,insertBlock:a,remove:s,startsWithCaretContainer:l,endsWithCaretContainer:c}}),r(T,[m,y,_,b,k],function(e,t,n,r,i){function o(e,t){var n=e.childNodes;return t--,t>n.length-1?t=n.length-1:0>t&&(t=0),n[t]||e}function a(e){this.walk=function(t,n){function r(e){var t;return t=e[0],3===t.nodeType&&t===c&&u>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===f&&e.length>0&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e}function i(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,o){var a=o?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=i(g==e?g:g[a],a),y.length&&(o||y.reverse(),n(r(y)))}var c=t.startContainer,u=t.startOffset,d=t.endContainer,f=t.endOffset,h,p,m,g,v,y,b;if(b=e.select("td[data-mce-selected],th[data-mce-selected]"),b.length>0)return void l(b,function(e){n([e])});if(1==c.nodeType&&c.hasChildNodes()&&(c=c.childNodes[u]),1==d.nodeType&&d.hasChildNodes()&&(d=o(d,f)),c==d)return n(r([c]));for(h=e.findCommonAncestor(c,d),g=c;g;g=g.parentNode){if(g===d)return s(c,h,!0);if(g===h)break}for(g=d;g;g=g.parentNode){if(g===c)return s(d,h);if(g===h)break}p=a(c,h)||c,m=a(d,h)||d,s(c,p,!0),y=i(p==c?p:p.nextSibling,"nextSibling",m==d?m.nextSibling:m),y.length&&n(r(y)),s(d,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(e){return e&&/^(TD|TH|CAPTION)$/.test(e.nodeName)}function s(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||g);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function l(e){for(;e&&e!=g;){if(c(e))return!0;e=e.parentNode}return!1}function d(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function f(n,r){var a,s,l;if(r=r||h,l=e.getParent(r.parentNode,e.isBlock)||g,n&&"BR"==r.nodeName&&C&&e.isEmpty(l))return h=r.parentNode,p=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);v=a[n?"prev":"next"]();){if("false"===e.getContentEditableParent(v)||u(v))return;if(3===v.nodeType&&v.nodeValue.length>0)return h=v,p=n?v.nodeValue.length:0,void(i=!0);if(e.isBlock(v)||y[v.nodeName.toLowerCase()])return;s=v}o&&s&&(h=s,i=!0,p=0)}var h,p,m,g=e.getRoot(),v,y,b,C;if(h=n[(r?"start":"end")+"Container"],p=n[(r?"start":"end")+"Offset"],C=1==h.nodeType&&p===h.childNodes.length,y=e.schema.getNonEmptyElements(),b=r,!u(h)){if(1==h.nodeType&&p>h.childNodes.length-1&&(b=!1),9===h.nodeType&&(h=e.getRoot(),p=0),h===g){if(b&&(v=h.childNodes[p>0?p-1:0])){if(u(v))return;if(y[v.nodeName]||"TABLE"==v.nodeName)return}if(h.hasChildNodes()){if(p=Math.min(!b&&p>0?p-1:p,h.childNodes.length-1),h=h.childNodes[p],p=0,!o&&h===g.lastChild&&"TABLE"===h.nodeName)return;if(l(h)||u(h))return;if(h.hasChildNodes()&&!/TABLE/.test(h.nodeName)){v=h,m=new t(h,g);do{if(c(v)||u(v)){i=!1;break}if(3===v.nodeType&&v.nodeValue.length>0){p=b?0:v.nodeValue.length,h=v,i=!0;break}if(y[v.nodeName.toLowerCase()]&&!a(v)){p=e.nodeIndex(v),h=v.parentNode,"IMG"!=v.nodeName||b||p++,i=!0;break}}while(v=b?m.next():m.prev())}}}o&&(3===h.nodeType&&0===p&&f(!0),1===h.nodeType&&(v=h.childNodes[p],v||(v=h.childNodes[p-1]),!v||"BR"!==v.nodeName||d(v,"A")||s(v)||s(v,!0)||f(!0,v))),b&&!o&&3===h.nodeType&&p===h.nodeValue.length&&f(!1),i&&n["set"+(r?"Start":"End")](h,p)}}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}function s(t,n,r){var i,o,a;if(i=r.elementFromPoint(t,n),o=r.body.createTextRange(),i&&"HTML"!=i.tagName||(i=r.body),o.moveToElementText(i),a=e.toArray(o.getClientRects()),a=a.sort(function(e,t){return e=Math.abs(Math.max(e.top-n,e.bottom-n)),t=Math.abs(Math.max(t.top-n,t.bottom-n)),e-t}),a.length>0){n=(a[0].bottom+a[0].top)/2;try{return o.moveToPoint(t,n),o.collapse(!0),o}catch(s){}}return null}var l=e.each,c=n.isContentEditableFalse,u=i.isCaretContainer;return a.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},a.getCaretRangeFromPoint=function(e,t,n){var r,i;if(n.caretPositionFromPoint)i=n.caretPositionFromPoint(e,t),r=n.createRange(),r.setStart(i.offsetNode,i.offset),r.collapse(!0);else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(n.body.createTextRange){r=n.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(o){r=s(e,t,n)}}return r},a.getSelectedNode=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset==n+1?t.childNodes[n]:null},a.getNode=function(e,t){return 1==e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},a}),r(R,[T,d,u],function(e,t,n){return function(r){function i(e){var t,n;if(n=r.$(e).parentsUntil(r.getBody()).add(e),n.length===a.length){for(t=n.length;t>=0&&n[t]===a[t];t--);if(-1===t)return a=n,!0}return a=n,!1}var o,a=[];"onselectionchange"in r.getDoc()||r.on("NodeChange Click MouseUp KeyUp Focus",function(t){var n,i;n=r.selection.getRng(),i={startContainer:n.startContainer,startOffset:n.startOffset,endContainer:n.endContainer,endOffset:n.endOffset},"nodechange"!=t.type&&e.compareRanges(i,o)||r.fire("SelectionChange"),o=i}),r.on("contextmenu",function(){r.fire("SelectionChange")}),r.on("SelectionChange",function(){var e=r.selection.getStart(!0);!t.range&&r.selection.isCollapsed()||!i(e)&&r.dom.isChildOf(e,r.getBody())&&r.nodeChanged({selectionChange:!0})}),r.on("MouseUp",function(e){e.isDefaultPrevented()||("IMG"==r.selection.getNode().nodeName?n.setEditorTimeout(r,function(){r.nodeChanged()}):r.nodeChanged())}),this.nodeChanged=function(e){var t=r.selection,n,i,o;r.initialized&&t&&!r.settings.disable_nodechange&&!r.readonly&&(o=r.getBody(),n=t.getStart()||o,n.ownerDocument==r.getDoc()&&r.dom.isChildOf(n,o)||(n=o),"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),i=[],r.dom.getParent(n,function(e){return e===o?!0:void i.push(e)}),e=e||{},e.element=n,e.parents=i,r.fire("NodeChange",e))}}}),r(A,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(B,[m],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e,t){var n={},r,i;for(r=0,i=e.length;i>r;r++)n[e[r]]=t||{};return n}var s,c,u,d=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),c=3;c<d.length;c++)"string"==typeof d[c]&&(d[c]=t(d[c])),r.push.apply(r,d[c]);for(e=t(e),s=e.length;s--;)u=[].concat(l,t(n)),a[e[s]]={attributes:i(u),attributesOrder:u,children:i(r,o)}}function r(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},l,c,u,d,f,h;return i[e]?i[e]:(l=t("id accesskey class dir lang style tabindex title"),c=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),u=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(l.push.apply(l,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),c.push.apply(c,t("article aside details dialog figure header footer hgroup section nav")),u.push.apply(u,t("audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(l.push("xml:lang"),h=t("acronym applet basefont big font strike tt"),u.push.apply(u,h),s(h,function(e){n(e,"",u)}),f=t("center dir isindex noframes"),c.push.apply(c,f),d=[].concat(c,u),s(f,function(e){n(e,"",d)})),d=d||[].concat(c,u),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",u),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",u),n("q","cite",u),n("ins del","cite datetime",d),n("img","src sizes srcset alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",d,"param"),n("param","name value"),n("map","name",d,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",d,"legend"),n("label","form for",u),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:u),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",d,"li"),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",u,"rt rp"),n("figcaption","",d),n("mark rt rp summary bdi","",u),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",d,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",d,"track source"),n("picture","","img source"),n("source","src srcset type media sizes"),n("track","kind src srclang label default"),n("datalist","",u,"option"),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",d,"figcaption"),n("time","datetime",u),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",u),n("progress","value max",u),n("meter","value min max low high optimum",u),n("details","open",d,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(r("script","language xml:space"),r("style","xml:space"),r("object","declare classid code codebase codetype archive standby align border hspace vspace"),r("embed","align name hspace vspace"),r("param","valuetype type"),r("a","charset name rev shape coords"),r("br","clear"),r("applet","codebase archive code object alt name width height align hspace vspace"),r("img","name longdesc align border hspace vspace"),r("iframe","longdesc frameborder marginwidth marginheight scrolling align"),r("font basefont","size color face"),r("input","usemap align"),r("select","onchange"),r("textarea"),r("h1 h2 h3 h4 h5 h6 div p legend caption","align"),r("ul","type compact"),r("li","type"),r("ol dl menu dir","compact"),r("pre","width xml:space"),r("hr","align noshade size width"),r("isindex","prompt"),r("table","summary width frame rules cellspacing cellpadding align bgcolor"),r("col","width align char charoff valign"),r("colgroup","width align char charoff valign"),r("thead","align char charoff valign"),r("tr","align char charoff valign bgcolor"),r("th","axis align char charoff valign nowrap bgcolor width height"),r("form","accept"),r("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),r("tfoot","align char charoff valign"),r("tbody","align char charoff valign"),r("area","nohref"),r("body","background bgcolor text link vlink alink")),"html4"!=e&&(r("input button select textarea","autofocus"),r("input textarea","placeholder"),r("a","download"),r("link script img","crossorigin"),r("iframe","sandbox seamless allowfullscreen")),s(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,delete a.script,i[e]=a,a)}function r(e,t){var n;return e&&(n={},"string"==typeof e&&(e={"*":e}),s(e,function(e,r){n[r]=n[r.toUpperCase()]="map"==t?a(e,/[, ]/):c(e,/[, ]/)})),n}var i={},o={},a=e.makeMap,s=e.each,l=e.extend,c=e.explode,u=e.inArray;return function(e){function o(t,n,r){var o=e[t];return o?o=a(o,/[, ]/,a(o.toUpperCase(),/[, ]/)):(o=i[t],o||(o=a(n," ",a(n.toUpperCase()," ")),o=l(o,r),i[t]=o)),o}function d(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function f(e){var n,r,i,o,s,l,c,f,h,p,m,g,v,b,x,w,N,E,_,S=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,k=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),y["@"]&&(w=y["@"].attributes,N=y["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=S.exec(e[n])){if(b=s[1],h=s[2],x=s[3],f=s[5],g={},v=[],l={attributes:g,attributesOrder:v},"#"===b&&(l.paddEmpty=!0),"-"===b&&(l.removeEmpty=!0),"!"===s[4]&&(l.removeEmptyAttrs=!0),w){for(E in w)g[E]=w[E];v.push.apply(v,N)}if(f)for(f=t(f,"|"),i=0,o=f.length;o>i;i++)if(s=k.exec(f[i])){if(c={},m=s[1],p=s[2].replace(/::/g,":"),b=s[3],_=s[4],"!"===m&&(l.attributesRequired=l.attributesRequired||[],l.attributesRequired.push(p),c.required=!0),"-"===m){delete g[p],v.splice(u(v,p),1);continue}b&&("="===b&&(l.attributesDefault=l.attributesDefault||[],l.attributesDefault.push({name:p,value:_}),c.defaultValue=_),":"===b&&(l.attributesForced=l.attributesForced||[],l.attributesForced.push({name:p,value:_}),c.forcedValue=_),"<"===b&&(c.validValues=a(_,"?"))),T.test(p)?(l.attributePatterns=l.attributePatterns||[],c.pattern=d(p),
-l.attributePatterns.push(c)):(g[p]||v.push(p),g[p]=c)}w||"@"!=h||(w=g,N=v),x&&(l.outputName=h,y[x]=l),T.test(h)?(l.pattern=d(h),C.push(l)):y[h]=l}}function h(e){y={},C=[],f(e),s(N,function(e,t){b[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&(i.text_block_elements=i.block_elements=null,s(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",o=t[2];if(b[o]=b[i],M[o]=i,r||(R[o.toUpperCase()]={},R[o]={}),!y[o]){var a=y[i];a=l({},a),delete a.removeEmptyAttrs,delete a.removeEmpty,y[o]=a}s(b,function(e,t){e[i]&&(b[t]=e=l({},b[t]),e[o]=e[i])})}))}function m(n){var r=/^([+\-]?)(\w+)\[([^\]]+)\]$/;i[e.schema]=null,n&&s(t(n,","),function(e){var n=r.exec(e),i,o;n&&(o=n[1],i=o?b[n[2]]:b[n[2]]={"#comment":{}},i=b[n[2]],s(t(n[3],"|"),function(e){"-"===o?delete i[e]:i[e]={}}))})}function g(e){var t=y[e],n;if(t)return t;for(n=C.length;n--;)if(t=C[n],t.pattern.test(e))return t}var v=this,y={},b={},C=[],x,w,N,E,_,S,k,T,R,A,B,D,L,M={},P={};e=e||{},N=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),x=r(e.valid_styles),w=r(e.invalid_styles,"map"),T=r(e.valid_classes,"map"),E=o("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=o("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),S=o("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),k=o("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),A=o("non_empty_elements","td th iframe video audio object script",S),B=o("move_caret_before_on_enter_elements","table",A),D=o("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),R=o("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption",D),L=o("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),s((e.special||"script noscript style textarea").split(" "),function(e){P[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?h(e.valid_elements):(s(N,function(e,t){y[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},b[t]=e.children}),"html5"!=e.schema&&s(t("strong/b em/i"),function(e){e=t(e,"/"),y[e[1]].outputName=e[0]}),s(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){y[e]&&(y[e].removeEmpty=!0)}),s(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){y[e].paddEmpty=!0}),s(t("span"),function(e){y[e].removeEmptyAttrs=!0})),p(e.custom_elements),m(e.valid_children),f(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&s(c(e.invalid_elements),function(e){y[e]&&delete y[e]}),g("span")||f("span[!data-mce-type|*]"),v.children=b,v.getValidStyles=function(){return x},v.getInvalidStyles=function(){return w},v.getValidClasses=function(){return T},v.getBoolAttrs=function(){return k},v.getBlockElements=function(){return R},v.getTextBlockElements=function(){return D},v.getTextInlineElements=function(){return L},v.getShortEndedElements=function(){return S},v.getSelfClosingElements=function(){return _},v.getNonEmptyElements=function(){return A},v.getMoveCaretBeforeOnEnterElements=function(){return B},v.getWhiteSpaceElements=function(){return E},v.getSpecialElements=function(){return P},v.isValidChild=function(e,t){var n=b[e];return!(!n||!n[t])},v.isValid=function(e,t){var n,r,i=g(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},v.getElementRule=g,v.getCustomElements=function(){return M},v.addValidElements=f,v.setValidElements=h,v.addCustomElements=p,v.addValidChildren=m,v.elements=y}}),r(D,[B,C,m],function(e,t,n){function r(e,t,n){var r=1,i,o,a,s;for(s=e.getShortEndedElements(),a=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g,a.lastIndex=i=n;o=a.exec(t);){if(i=a.lastIndex,"/"===o[1])r--;else if(!o[1]){if(o[2]in s)continue;r++}if(0===r)break}return i}function i(i,a){function s(){}var l=this;i=i||{},l.schema=a=a||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),o("comment cdata text start end pi doctype".split(" "),function(e){e&&(l[e]=i[e]||s)}),l.parse=function(e){function o(e){var t,n;for(t=h.length;t--&&h[t].name!==e;);if(t>=0){for(n=h.length-1;n>=t;n--)e=h[n],e.valid&&l.end(e.name);h.length=t}}function s(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in x?t:z(n||r||o||""),N&&!y&&0!==t.indexOf("data-")){if(a=T[t],!a&&R){for(s=R.length;s--&&(a=R[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{c=decodeURIComponent(c)}catch(u){c=unescape(c)}if(V.test(c))return;if(!i.allow_html_data_urls&&$.test(c)&&!/^data:image\//i.test(c))return}p.map[t]=n,p.push({name:t,value:n})}var l=this,c,u=0,d,f,h=[],p,m,g,v,y,b,C,x,w,N,E,_,S,k,T,R,A,B,D,L,M,P,H,O,I,F=0,z=t.decode,U,W=n.makeMap("src,href,data,background,formaction,poster"),V=/((java|vb)script|mhtml):/i,$=/^data:/i;for(P=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),H=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,C=a.getShortEndedElements(),M=i.self_closing_elements||a.getSelfClosingElements(),x=a.getBoolAttrs(),N=i.validate,b=i.remove_internals,U=i.fix_self_closing,O=a.getSpecialElements();c=P.exec(e);){if(u<c.index&&l.text(z(e.substr(u,c.index-u))),d=c[6])d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),o(d);else if(d=c[7]){if(d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),w=d in C,U&&M[d]&&h.length>0&&h[h.length-1].name===d&&o(d),!N||(E=a.getElementRule(d))){if(_=!0,N&&(T=E.attributes,R=E.attributePatterns),(k=c[8])?(y=-1!==k.indexOf("data-mce-type"),y&&b&&(_=!1),p=[],p.map={},k.replace(H,s)):(p=[],p.map={}),N&&!y){if(A=E.attributesRequired,B=E.attributesDefault,D=E.attributesForced,L=E.removeEmptyAttrs,L&&!p.length&&(_=!1),D)for(m=D.length;m--;)S=D[m],v=S.name,I=S.value,"{$uid}"===I&&(I="mce_"+F++),p.map[v]=I,p.push({name:v,value:I});if(B)for(m=B.length;m--;)S=B[m],v=S.name,v in p.map||(I=S.value,"{$uid}"===I&&(I="mce_"+F++),p.map[v]=I,p.push({name:v,value:I}));if(A){for(m=A.length;m--&&!(A[m]in p.map););-1===m&&(_=!1)}if(S=p.map["data-mce-bogus"]){if("all"===S){u=r(a,e,P.lastIndex),P.lastIndex=u;continue}_=!1}}_&&l.start(d,p,w)}else _=!1;if(f=O[d]){f.lastIndex=u=c.index+c[0].length,(c=f.exec(e))?(_&&(g=e.substr(u,c.index-u)),u=c.index+c[0].length):(g=e.substr(u),u=e.length),_&&(g.length>0&&l.text(g,!0),l.end(d)),P.lastIndex=u;continue}w||(k&&k.indexOf("/")==k.length-1?_&&l.end(d):h.push({name:d,valid:_}))}else(d=c[1])?(">"===d.charAt(0)&&(d=" "+d),i.allow_conditional_comments||"[if"!==d.substr(0,3)||(d=" "+d),l.comment(d)):(d=c[2])?l.cdata(d):(d=c[3])?l.doctype(d):(d=c[4])&&l.pi(d,c[5]);u=c.index+c[0].length}for(u<e.length&&l.text(z(e.substr(u))),m=h.length-1;m>=0;m--)d=h[m],d.valid&&l.end(d.name)}}var o=n.each;return i.findEndTag=r,i}),r(L,[A,B,D,m],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,h,p,m,g,v,y,b;for(m=i("tr,td,th,tbody,thead,tfoot,table"),p=l.getNonEmptyElements(),g=l.getTextBlockElements(),v=l.getSpecialElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(y=r.next;y&&g[y.name];)y.name="li",y.fixed=!0,r.parent.insert(y,r.parent),y=y.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!m[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),h=0;h<a.length-1;h++){for(l.isValidChild(c.name,a[h].name)?(d=u.filterNode(a[h].clone()),c.append(d)):d=c,f=a[h].firstChild;f&&f!=a[h+1];)b=f.next,d.append(f),f=b;c=d}s.isEmpty(p)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(p)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(y=r.prev,y&&("ul"===y.name||"ul"===y.name)){y.append(r);continue}if(y=r.next,y&&("ul"===y.name||"ul"===y.name)){y.insert(r,y.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):v[r.name]?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],h={},p={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=h[n],r?r.push(e):h[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=p[n],r?r.push(e):p[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(D,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=h[t],i?i.push(r):h[t]=[r]),r}function m(e){var t,n,r,i,o=l.getBlockElements();for(t=e.prev;t&&3===t.type;){if(r=t.value.replace(D,""),r.length>0)return void(t.value=r);if(n=t.next){if(3==n.type&&n.value.length){t=t.prev;continue}if(!o[n.name]&&"script"!=n.name&&"style"!=n.name){t=t.prev;continue}}i=t.prev,t.remove(),t=i}}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,N,E,_,S,k,T,R,A=[],B,D,L,M,P,H,O,I;if(o=o||{},h={},p={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),H=l.children,k=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,P=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,D=/[ \t\r\n]+$/,L=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:k,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(L," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,m(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,m(b)},start:function(e,t,n){var r,i,o,a,s;if(o=k?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=H[b.name],s&&H[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(_=p[a],_?_.push(r):p[a]=[r]);T[e]&&m(r),n||(b=r),!B&&P[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=k?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(D,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&P[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,T[b.name]?b.empty().remove():b.unwrap(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),k&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(S in h){for(_=d[S],C=h[S],N=C.length;N--;)C[N].parent||C.splice(N,1);for(x=0,w=_.length;w>x;x++)_[x](C,S,o)}for(x=0,w=f.length;w>x;x++)if(_=f[x],_.name in p){for(C=p[_.name],N=C.length;N--;)C[N].parent||C.splice(N,1);for(N=0,E=_.callbacks.length;E>N;N++)_.callbacks[N](C,_.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,h,p;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(h=l.getElementRule(c.name),h&&(h.removeEmpty?c.remove():h.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(p=new e("#text",3),p.value="\xa0",i.replace(p))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}}),r.validate&&l.getValidClasses()&&u.addAttributeFilter("class",function(e){for(var t=e.length,n,r,i,o,a,s=l.getValidClasses(),c,u;t--;){for(n=e[t],r=n.attr("class").split(" "),a="",i=0;i<r.length;i++)o=r[i],u=!1,c=s["*"],c&&c[o]&&(u=!0),c=s[n.name],!u&&c&&c[o]&&(u=!0),u&&(a&&(a+=" "),a+=o);a.length||(a=null),n.attr("class",a)}})}}),r(M,[C,m],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');!n||l?r[r.length]=">":r[r.length]=" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",s(t),"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(P,[M,B],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,h,p,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1&&(f=[],f.map={},m=r.getElementRule(e.name))){for(h=0,p=m.attributesOrder.length;p>h;h++)u=m.attributesOrder[h],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(h=0,p=c.length;p>h;h++)u=c[h].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(H,[w,L,D,C,P,A,B,d,m,S],function(e,t,n,r,i,o,a,s,l,c){function u(e){function t(e){return e&&"br"===e.name}var n,r;n=e.lastChild,t(n)&&(r=n.prev,t(r)&&(n.remove(),r.remove()))}var d=l.each,f=l.trim,h=e.DOM,p=["data-mce-selected"];return function(e,o){function m(e){var t=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","\\s?("+p.join("|")+')="[^"]+"'].join("|"),"gi");return e=c.trim(e.replace(t,""))}function g(){var e=o.getBody().innerHTML,t=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,r,i,a,s,l,c=o.schema;for(e=m(e),l=c.getShortEndedElements();s=t.exec(e);)i=t.lastIndex,a=s[0].length,r=l[s[1]]?i:n.findEndTag(c,e,i),e=e.substring(0,i-a)+e.substring(r),t.lastIndex=i-a;return f(e)}function v(e){-1===l.inArray(p,e)&&(C.addAttributeFilter(e,function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),p.push(e))}var y,b,C;return o&&(y=o.dom,b=o.schema),y=y||h,b=b||new a(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,C=new t(e,b),C.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),C.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,s=e.url_converter,l=e.url_converter_scope,c;r--;)i=t[r],o=i.attributes.map[a],o!==c?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=y.serializeStyle(y.parseStyle(o),i.name):s&&(o=s.call(l,o,n,i.name)),i.attr(n,o.length>0?o:null))}),C.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class"),r&&(r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null))}),C.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),C.addNodeFilter("noscript",function(e){for(var t=e.length,n;t--;)n=e[t].firstChild,n&&(n.value=r.decode(n.value))}),C.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o,a;r--;)i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t?(a=i.attr("type"),a&&i.attr("type","mce-no/type"==a?null:a.replace(/^mce\-/,"")),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")):o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),C.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),C.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&C.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,"ul"!==r.name&&"ol"!==r.name||n.prev&&"li"===n.prev.name&&n.prev.append(n)}),C.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:b,addNodeFilter:C.addNodeFilter,addAttributeFilter:C.addAttributeFilter,serialize:function(t,n){var r=this,o,a,l,h,p,m;return s.ie&&y.select("script,style,select,map").length>0?(p=t.innerHTML,t=t.cloneNode(!1),y.setHTML(t,p)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(a=o.createHTMLDocument(""),d("BODY"==t.nodeName?t.childNodes:[t],function(e){a.body.appendChild(a.importNode(e,!0))}),t="BODY"!=t.nodeName?a.body.firstChild:a.body,l=y.doc,y.doc=a),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,r.onPreProcess(n)),m=C.parse(f(n.getInner?t.innerHTML:y.getOuterHTML(t)),n),u(m),h=new i(e,b),n.content=h.serialize(m),n.cleanup||(n.content=c.trim(n.content),n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||r.onPostProcess(n),l&&(y.doc=l),n.node=null,n.content},addRules:function(e){b.addValidElements(e)},setRules:function(e){b.setValidElements(e)},onPreProcess:function(e){o&&o.fire("PreProcess",e)},onPostProcess:function(e){o&&o.fire("PostProcess",e)},addTempAttr:v,trimHtml:m,getTrimmedContent:g}}}),r(O,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(3==l.nodeType&&(u=l.nodeValue,s+=u.length,s>=i)){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(3==l.nodeType&&(s+=l.nodeValue.length,s>=i)){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,p;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),t!=f&&t!=f.documentElement||(t=h,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(p=t.childNodes,p.length?(n>=p.length?i.insertAfter(a,p[p.length-1]):t.insertBefore(a,p[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span>&#xFEFF;</span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,h=f.body,p,m;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=h.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="&#xFEFF;":d=null,s.innerHTML="<span>&#xFEFF;</span><span>&#xFEFF;</span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(m=s.childNodes[l],a=h.createControlRange(),a.addElement(m),a.select(),p=e.getRng(),p.item&&m===p.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(I,[d],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(t){return e.mac?t.metaKey:t.ctrlKey&&!t.altKey}}}),r(F,[I,m,u,d,_],function(e,t,n,r,i){function o(e,t){for(;t&&t!=e;){if(s(t)||a(t))return t;t=t.parentNode}return null}var a=i.isContentEditableFalse,s=i.isContentEditableTrue;return function(i,s){function l(e){var t=s.settings.object_resizing;return t===!1||r.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:e==s.getBody()?!1:s.dom.is(e,t))}function c(t){var n,r,i,o,a;n=t.screenX-L,r=t.screenY-M,U=n*B[2]+O,W=r*B[3]+I,U=5>U?5:U,W=5>W?5:W,i="IMG"==k.nodeName&&s.settings.resize_img_proportional!==!1?!e.modifierPressed(t):e.modifierPressed(t)||"IMG"==k.nodeName&&B[2]*B[3]!==0,i&&(j(n)>j(r)?(W=Y(U*F),U=Y(W/F)):(U=Y(W/F),W=Y(U*F))),_.setStyles(T,{width:U,height:W}),o=B.startPos.x+n,a=B.startPos.y+r,o=o>0?o:0,a=a>0?a:0,_.setStyles(R,{left:o,top:a,display:"block"}),R.innerHTML=U+" &times; "+W,B[2]<0&&T.clientWidth<=U&&_.setStyle(T,"left",P+(O-U)),B[3]<0&&T.clientHeight<=W&&_.setStyle(T,"top",H+(I-W)),n=X.scrollWidth-K,r=X.scrollHeight-G,n+r!==0&&_.setStyles(R,{left:o-n,top:a-r}),z||(s.fire("ObjectResizeStart",{target:k,width:O,height:I}),z=!0)}function u(){function e(e,t){t&&(k.style[e]||!s.schema.isValid(k.nodeName.toLowerCase(),e)?_.setStyle(k,e,t):_.setAttrib(k,e,t))}z=!1,e("width",U),e("height",W),_.unbind(V,"mousemove",c),_.unbind(V,"mouseup",u),$!=V&&(_.unbind($,"mousemove",c),_.unbind($,"mouseup",u)),_.remove(T),_.remove(R),q&&"TABLE"!=k.nodeName||d(k),s.fire("ObjectResized",{target:k,width:U,height:W}),_.setAttrib(k,"style",_.getAttrib(k,"style")),s.nodeChanged()}function d(e,t,n){var i,o,a,d,h;f(),x(),i=_.getPos(e,X),P=i.x,H=i.y,h=e.getBoundingClientRect(),o=h.width||h.right-h.left,a=h.height||h.bottom-h.top,k!=e&&(C(),k=e,U=W=0),d=s.fire("ObjectSelected",{target:e}),l(e)&&!d.isDefaultPrevented()?S(A,function(e,i){function s(t){L=t.screenX,M=t.screenY,O=k.clientWidth,I=k.clientHeight,F=I/O,B=e,e.startPos={x:o*e[0]+P,y:a*e[1]+H},K=X.scrollWidth,G=X.scrollHeight,T=k.cloneNode(!0),_.addClass(T,"mce-clonedresizable"),_.setAttrib(T,"data-mce-bogus","all"),T.contentEditable=!1,T.unSelectabe=!0,_.setStyles(T,{left:P,top:H,margin:0}),T.removeAttribute("data-mce-selected"),X.appendChild(T),_.bind(V,"mousemove",c),_.bind(V,"mouseup",u),$!=V&&(_.bind($,"mousemove",c),_.bind($,"mouseup",u)),R=_.add(X,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},O+" &times; "+I)}var l;return t?void(i==t&&s(n)):(l=_.get("mceResizeHandle"+i),l&&_.remove(l),l=_.add(X,"div",{id:"mceResizeHandle"+i,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+i+"-resize; margin:0; padding:0"}),r.ie&&(l.contentEditable=!1),_.bind(l,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),s(e)}),e.elm=l,void _.setStyles(l,{left:o*e[0]+P-l.offsetWidth/2,top:a*e[1]+H-l.offsetHeight/2}))}):f(),k.setAttribute("data-mce-selected","1")}function f(){var e,t;x(),k&&k.removeAttribute("data-mce-selected");for(e in A)t=_.get("mceResizeHandle"+e),t&&(_.unbind(t),_.remove(t))}function h(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n,r;if(!z&&!s.removed)return S(_.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),r="mousedown"==e.type?e.target:i.getNode(),r=_.$(r).closest(q?"table":"table,img,hr")[0],t(r,X)&&(w(),n=i.getStart(!0),t(n,r)&&t(i.getEnd(!0),r)&&(!q||r!=n&&"IMG"!==n.nodeName))?void d(r):void f()}function p(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function m(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function g(e){var t=e.srcElement,n,r,i,o,a,l,c;n=t.getBoundingClientRect(),l=D.clientX-n.left,c=D.clientY-n.top;for(r in A)if(i=A[r],o=t.offsetWidth*i[0],a=t.offsetHeight*i[1],j(o-l)<8&&j(a-c)<8){B=i;break}z=!0,s.fire("ObjectResizeStart",{target:k,width:k.clientWidth,height:k.clientHeight}),s.getDoc().selection.empty(),d(t,r,D)}function v(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function y(e){return a(o(s.getBody(),e))}function b(e){var t=e.srcElement;if(y(t))return void v(e);if(t!=k){if(s.fire("ObjectSelected",{target:t}),C(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);"IMG"!=t.nodeName&&"TABLE"!=t.nodeName||(f(),k=t,p(t,"resizestart",g))}}function C(){m(k,"resizestart",g)}function x(){for(var e in A){var t=A[e];t.elm&&(_.unbind(t.elm),delete t.elm)}}function w(){try{s.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function N(e){var t;if(q){t=V.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function E(){k=T=null,q&&(C(),m(X,"controlselect",b))}var _=s.dom,S=t.each,k,T,R,A,B,D,L,M,P,H,O,I,F,z,U,W,V=s.getDoc(),$=document,q=r.ie&&r.ie<11,j=Math.abs,Y=Math.round,X=s.getBody(),K,G;A={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var J=".mce-content-body";return s.contentStyles.push(J+" div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: box-sizing;background: #FFF;width: 7px;height: 7px;z-index: 10000}"+J+" .mce-resizehandle:hover {background: #000}"+J+" img[data-mce-selected],"+J+" hr[data-mce-selected] {outline: 1px solid black;resize: none}"+J+" .mce-clonedresizable {position: absolute;"+(r.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+J+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}"),s.on("init",function(){q?(s.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(f(),N(e.target))}),p(X,"controlselect",b),s.on("mousedown",function(e){D=e})):(w(),r.ie>=11&&(s.on("mousedown click",function(e){var t=e.target,n=t.nodeName;z||!/^(TABLE|IMG|HR)$/.test(n)||y(t)||(s.selection.select(t,"TABLE"==n),"mousedown"==e.type&&s.nodeChanged())}),s.dom.bind(X,"mscontrolselect",function(e){function t(e){n.setEditorTimeout(s,function(){s.selection.select(e)})}return y(e.target)?(e.preventDefault(),void t(e.target)):void(/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&t(e.target)))})));var e=n.throttle(function(e){s.composing||h(e)});s.on("nodechange ResizeEditor ResizeWindow drop",e),s.on("keyup compositionend",function(t){k&&"TABLE"==k.nodeName&&e(t)}),s.on("hide blur",f)}),s.on("remove",x),{isResizable:l,showResizeRect:d,hideResizeRect:f,updateResizeRect:h,controlSelect:N,destroy:E}}}),r(z,[],function(){function e(e){return function(){return e}}function t(e){return function(t){return!e(t)}}function n(e,t){return function(n){return e(t(n))}}function r(){var e=a.call(arguments);return function(t){for(var n=0;n<e.length;n++)if(e[n](t))return!0;return!1}}function i(){var e=a.call(arguments);return function(t){for(var n=0;n<e.length;n++)if(!e[n](t))return!1;
-return!0}}function o(e){var t=a.call(arguments);return t.length-1>=e.length?e.apply(this,t.slice(1)):function(){var e=t.concat([].slice.call(arguments));return o.apply(this,e)}}var a=[].slice;return{constant:e,negate:t,and:i,or:r,curry:o,compose:n}}),r(U,[_,p,k],function(e,t,n){function r(e){return m(e)?!1:d(e)?!f(e.parentNode):h(e)||u(e)||p(e)||c(e)}function i(e,t){for(e=e.parentNode;e&&e!=t;e=e.parentNode){if(c(e))return!1;if(l(e))return!0}return!0}function o(e){return c(e)?t.reduce(e.getElementsByTagName("*"),function(e,t){return e||l(t)},!1)!==!0:!1}function a(e){return h(e)||o(e)}function s(e,t){return r(e)&&i(e,t)}var l=e.isContentEditableTrue,c=e.isContentEditableFalse,u=e.isBr,d=e.isText,f=e.matchNodeNames("script style textarea"),h=e.matchNodeNames("img input textarea hr iframe video audio object"),p=e.matchNodeNames("table"),m=n.isCaretContainer;return{isCaretCandidate:r,isInEditable:i,isAtomic:a,isEditableCaretCandidate:s}}),r(W,[],function(){function e(e){return e?{left:u(e.left),top:u(e.top),bottom:u(e.bottom),right:u(e.right),width:u(e.width),height:u(e.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0}}function t(t,n){return t=e(t),n?t.right=t.left:(t.left=t.left+t.width,t.right=t.left),t.width=0,t}function n(e,t){return e.left===t.left&&e.top===t.top&&e.bottom===t.bottom&&e.right===t.right}function r(e,t,n){return e>=0&&e<=Math.min(t.height,n.height)/2}function i(e,t){return e.bottom<t.top?!0:e.top>t.bottom?!1:r(t.top-e.bottom,e,t)}function o(e,t){return e.top>t.bottom?!0:e.bottom<t.top?!1:r(t.bottom-e.top,e,t)}function a(e,t){return e.left<t.left}function s(e,t){return e.right>t.right}function l(e,t){return i(e,t)?-1:o(e,t)?1:a(e,t)?-1:s(e,t)?1:0}function c(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom}var u=Math.round;return{clone:e,collapse:t,isEqual:n,isAbove:i,isBelow:o,isLeft:a,isRight:s,compare:l,containsXY:c}}),r(V,[],function(){function e(e){return"string"==typeof e&&e.charCodeAt(0)>=768&&t.test(e)}var t=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]");return{isExtendingChar:e}}),r($,[z,_,w,T,U,W,V],function(e,t,n,r,i,o,a){function s(e){return"createRange"in e?e.createRange():n.DOM.createRng()}function l(e){return e&&/[\r\n\t ]/.test(e)}function c(e){var t=e.startContainer,n=e.startOffset,r;return!!(l(e.toString())&&v(t.parentNode)&&(r=t.data,l(r[n-1])||l(r[n+1])))}function u(e){function t(e){var t=e.ownerDocument,n=s(t),r=t.createTextNode("\xa0"),i=e.parentNode,a;return i.insertBefore(r,e),n.setStart(r,0),n.setEnd(r,1),a=o.clone(n.getBoundingClientRect()),i.removeChild(r),a}function n(e){var n,r;return r=e.getClientRects(),n=r.length>0?o.clone(r[0]):o.clone(e.getBoundingClientRect()),b(e)&&0===n.left?t(e):n}function r(e,t){return e=o.collapse(e,t),e.width=1,e.right=e.left+1,e}function i(e){0!==e.height&&(u.length>0&&o.isEqual(e,u[u.length-1])||u.push(e))}function l(e,t){var o=s(e.ownerDocument);if(t<e.data.length){if(a.isExtendingChar(e.data[t]))return u;if(a.isExtendingChar(e.data[t-1])&&(o.setStart(e,t),o.setEnd(e,t+1),!c(o)))return i(r(n(o),!1)),u}t>0&&(o.setStart(e,t-1),o.setEnd(e,t),c(o)||i(r(n(o),!1))),t<e.data.length&&(o.setStart(e,t),o.setEnd(e,t+1),c(o)||i(r(n(o),!0)))}var u=[],d,h;if(y(e.container()))return l(e.container(),e.offset()),u;if(f(e.container()))if(e.isAtEnd())h=x(e.container(),e.offset()),y(h)&&l(h,h.data.length),g(h)&&!b(h)&&i(r(n(h),!1));else{if(h=x(e.container(),e.offset()),y(h)&&l(h,0),g(h)&&e.isAtEnd())return i(r(n(h),!1)),u;d=x(e.container(),e.offset()-1),g(d)&&!b(d)&&(p(d)||p(h)||!g(h))&&i(r(n(d),!1)),g(h)&&i(r(n(h),!0))}return u}function d(t,n,r){function i(){return y(t)?0===n:0===n}function o(){return y(t)?n>=t.data.length:n>=t.childNodes.length}function a(){var e;return e=s(t.ownerDocument),e.setStart(t,n),e.setEnd(t,n),e}function l(){return r||(r=u(new d(t,n))),r}function c(){return l().length>0}function f(e){return e&&t===e.container()&&n===e.offset()}function h(e){return x(t,e?n-1:n)}return{container:e.constant(t),offset:e.constant(n),toRange:a,getClientRects:l,isVisible:c,isAtStart:i,isAtEnd:o,isEqual:f,getNode:h}}var f=t.isElement,h=i.isCaretCandidate,p=t.matchStyleValues("display","block table"),m=t.matchStyleValues("float","left right"),g=e.and(f,h,e.negate(m)),v=e.negate(t.matchStyleValues("white-space","pre pre-line pre-wrap")),y=t.isText,b=t.isBr,C=n.nodeIndex,x=r.getNode;return d.fromRangeStart=function(e){return new d(e.startContainer,e.startOffset)},d.fromRangeEnd=function(e){return new d(e.endContainer,e.endOffset)},d.after=function(e){return new d(e.parentNode,C(e)+1)},d.before=function(e){return new d(e.parentNode,C(e))},d}),r(q,[_,w,z,p,$],function(e,t,n,r,i){function o(e){var t=e.parentNode;return v(t)?o(t):t}function a(e){return e?r.reduce(e.childNodes,function(e,t){return v(t)&&"BR"!=t.nodeName?e=e.concat(a(t)):e.push(t),e},[]):[]}function s(e,t){for(;(e=e.previousSibling)&&g(e);)t+=e.data.length;return t}function l(e){return function(t){return e===t}}function c(t){var n,i,s;return n=a(o(t)),i=r.findIndex(n,l(t),t),n=n.slice(0,i+1),s=r.reduce(n,function(e,t,r){return g(t)&&g(n[r-1])&&e++,e},0),n=r.filter(n,e.matchNodeNames(t.nodeName)),i=r.findIndex(n,l(t),t),i-s}function u(e){var t;return t=g(e)?"text()":e.nodeName.toLowerCase(),t+"["+c(e)+"]"}function d(e,t,n){var r=[];for(t=t.parentNode;t!=e&&(!n||!n(t));t=t.parentNode)r.push(t);return r}function f(t,i){var o,a,l=[],c,f,h;return o=i.container(),a=i.offset(),g(o)?c=s(o,a):(f=o.childNodes,a>=f.length?(c="after",a=f.length-1):c="before",o=f[a]),l.push(u(o)),h=d(t,o),h=r.filter(h,n.negate(e.isBogus)),l=l.concat(r.map(h,function(e){return u(e)})),l.reverse().join("/")+","+c}function h(t,n,i){var o=a(t);return o=r.filter(o,function(e,t){return!g(e)||!g(o[t-1])}),o=r.filter(o,e.matchNodeNames(n)),o[i]}function p(e,t){for(var n=e,r=0,o;g(n);){if(o=n.data.length,t>=r&&r+o>=t){e=n,t-=r;break}if(!g(n.nextSibling)){e=n,t=o;break}r+=o,n=n.nextSibling}return t>e.data.length&&(t=e.data.length),new i(e,t)}function m(e,t){var n,o,a;return t?(n=t.split(","),t=n[0].split("/"),a=n.length>1?n[1]:"before",o=r.reduce(t,function(e,t){return(t=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(t))?("text()"===t[1]&&(t[1]="#text"),h(e,t[1],parseInt(t[2],10))):null},e),o?g(o)?p(o,parseInt(a,10)):(a="after"===a?y(o)+1:y(o),new i(o.parentNode,a)):null):null}var g=e.isText,v=e.isBogus,y=t.nodeIndex;return{create:f,resolve:m}}),r(j,[d,m,k,q,$,_],function(e,t,n,r,i,o){function a(a){var l=a.dom;this.getBookmark=function(e,c){function u(e,n){var r=0;return t.each(l.select(e),function(e){return"all"!==e.getAttribute("data-mce-bogus")?e==n?!1:void r++:void 0}),r}function d(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function f(e){function t(e,t){var r=e[t?"startContainer":"endContainer"],i=e[t?"startOffset":"endOffset"],o=[],a,s,u=0;if(3==r.nodeType){if(c)for(a=r.previousSibling;a&&3==a.nodeType;a=a.previousSibling)i+=a.nodeValue.length;o.push(i)}else s=r.childNodes,i>=s.length&&s.length&&(u=1,i=Math.max(0,s.length-1)),o.push(l.nodeIndex(s[i],c)+u);for(;r&&r!=n;r=r.parentNode)o.push(l.nodeIndex(r,c));return o}var n=l.getRoot(),r={};return r.start=t(e,!0),a.isCollapsed()||(r.end=t(e)),r}function h(e){function t(e){var t;if(n.isCaretContainer(e)){if(o.isText(e)&&n.isCaretContainerBlock(e)&&(e=e.parentNode),t=e.previousSibling,s(t))return t;if(t=e.nextSibling,s(t))return t}}return t(e.startContainer)||t(e.endContainer)}var p,m,g,v,y,b,C="&#xFEFF;",x;if(2==e)return b=a.getNode(),y=b?b.nodeName:null,p=a.getRng(),s(b)||"IMG"==y?{name:y,index:u(y,b)}:a.tridentSel?a.tridentSel.getBookmark(e):(b=h(p),b?(y=b.tagName,{name:y,index:u(y,b)}):f(p));if(3==e)return p=a.getRng(),{start:r.create(l.getRoot(),i.fromRangeStart(p)),end:r.create(l.getRoot(),i.fromRangeEnd(p))};if(e)return{rng:a.getRng()};if(p=a.getRng(),g=l.uniqueId(),v=a.isCollapsed(),x="overflow:hidden;line-height:0px",p.duplicate||p.item){if(p.item)return b=p.item(0),y=b.nodeName,{name:y,index:u(y,b)};m=p.duplicate();try{p.collapse(),p.pasteHTML('<span data-mce-type="bookmark" id="'+g+'_start" style="'+x+'">'+C+"</span>"),v||(m.collapse(!1),p.moveToElementText(m.parentElement()),0===p.compareEndPoints("StartToEnd",m)&&m.move("character",-1),m.pasteHTML('<span data-mce-type="bookmark" id="'+g+'_end" style="'+x+'">'+C+"</span>"))}catch(w){return null}}else{if(b=a.getNode(),y=b.nodeName,"IMG"==y)return{name:y,index:u(y,b)};m=d(p.cloneRange()),v||(m.collapse(!1),m.insertNode(l.create("span",{"data-mce-type":"bookmark",id:g+"_end",style:x},C))),p=d(p),p.collapse(!0),p.insertNode(l.create("span",{"data-mce-type":"bookmark",id:g+"_start",style:x},C))}return a.moveToBookmark({id:g,keep:1}),{id:g}},this.moveToBookmark=function(n){function i(e){var t=n[e?"start":"end"],r,i,o,a;if(t){for(o=t[0],i=d,r=t.length-1;r>=1;r--){if(a=i.childNodes,t[r]>a.length-1)return;i=a[t[r]]}3===i.nodeType&&(o=Math.min(t[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(t[0],i.childNodes.length)),e?u.setStart(i,o):u.setEnd(i,o)}return!0}function o(r){var i=l.get(n.id+"_"+r),o,a,s,c,u=n.keep;if(i&&(o=i.parentNode,"start"==r?(u?(o=i.firstChild,a=1):a=l.nodeIndex(i),f=h=o,p=m=a):(u?(o=i.firstChild,a=1):a=l.nodeIndex(i),h=o,m=a),!u)){for(c=i.previousSibling,s=i.nextSibling,t.each(t.grep(i.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});i=l.get(n.id+"_"+r);)l.remove(i,1);c&&s&&c.nodeType==s.nodeType&&3==c.nodeType&&!e.opera&&(a=c.nodeValue.length,c.appendData(s.nodeValue),l.remove(s),"start"==r?(f=h=c,p=m=a):(h=c,m=a))}}function s(t){return!l.isBlock(t)||t.innerHTML||e.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}function c(){var e,t;return e=l.createRng(),t=r.resolve(l.getRoot(),n.start),e.setStart(t.container(),t.offset()),t=r.resolve(l.getRoot(),n.end),e.setEnd(t.container(),t.offset()),e}var u,d,f,h,p,m;if(n)if(t.isArray(n.start)){if(u=l.createRng(),d=l.getRoot(),a.tridentSel)return a.tridentSel.moveToBookmark(n);i(!0)&&i()&&a.setRng(u)}else"string"==typeof n.start?a.setRng(c(n)):n.id?(o("start"),o("end"),f&&(u=l.createRng(),u.setStart(s(f),p),u.setEnd(s(h),m),a.setRng(u))):n.name?a.select(l.select(n.name)[n.index]):n.rng&&a.setRng(n.rng)}}var s=o.isContentEditableFalse;return a.isBookmarkNode=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},a}),r(Y,[y,O,F,T,j,_,d,m,$],function(e,n,r,i,o,a,s,l,c){function u(e,t,i,a){var s=this;s.dom=e,s.win=t,s.serializer=i,s.editor=a,s.bookmarkManager=new o(s),s.controlSelection=new r(s,a),s.win.getSelection||(s.tridentSel=new n(s))}var d=l.each,f=l.trim,h=s.ie;return u.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(e){var t=this,n=t.getRng(),r,i,o,a;if(n.duplicate||n.item){if(n.item)return n.item(0);for(o=n.duplicate(),o.collapse(1),r=o.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),i=a=n.parentElement();a=a.parentNode;)if(a==r){r=i;break}return r}return r=n.startContainer,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[Math.min(r.childNodes.length-1,n.startOffset)])),r&&3==r.nodeType?r.parentNode:r},getEnd:function(e){var t=this,n=t.getRng(),r,i;return n.duplicate||n.item?n.item?n.item(0):(n=n.duplicate(),n.collapse(0),r=n.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),r&&"BODY"==r.nodeName?r.lastChild||r:r):(r=n.endContainer,i=n.endOffset,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[i>0?i-1:i])),r&&3==r.nodeType?r.parentNode:r)},getBookmark:function(e,t){return this.bookmarkManager.getBookmark(e,t)},moveToBookmark:function(e){return this.bookmarkManager.moveToBookmark(e)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a,s,l;if(!n.win)return null;if(a=n.win.document,!e&&n.lastFocusBookmark){var c=n.lastFocusBookmark;return c.startContainer?(i=a.createRange(),i.setStart(c.startContainer,c.startOffset),i.setEnd(c.endContainer,c.endOffset)):i=c,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(u){}if(l=n.editor.fire("GetSelectionRange",{range:i}),l.range!==i)return l.range;if(h&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(u){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r,i,o;if(e)if(e.select){n.explicitRange=null;try{e.select()}catch(a){}}else if(n.tridentSel){if(e.cloneRange)try{n.tridentSel.addRange(e)}catch(a){}}else{if(r=n.getSel(),o=n.editor.fire("SetSelectionRange",{range:e}),e=o.range,r){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(a){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}e.collapsed||e.startContainer!=e.endContainer||!r.setBaseAndExtent||s.ie||e.endOffset-e.startOffset<2&&e.startContainer.hasChildNodes()&&(i=e.startContainer.childNodes[e.startOffset],i&&"IMG"==i.tagName&&n.getSel().setBaseAndExtent(i,0,i,1))}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i,o,a,s,l=t.dom.getRoot();return n?(i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r)):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return s.range&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};d(n.selectorChangedData,function(e,t){d(o,function(n){return i.is(n,t)?(r[t]||(d(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),d(r,function(e,n){a[n]||(delete r[n],d(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){function n(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var r,i,o=this,s=o.dom,l=s.getRoot(),c,u,d=0;if(a.isElement(e)){if(t===!1&&(d=e.offsetHeight),"BODY"!=l.nodeName){var f=o.getScrollContainer();if(f)return r=n(e).y-n(f).y+d,u=f.clientHeight,c=f.scrollTop,void((c>r||r+25>c+u)&&(f.scrollTop=c>r?r:r-u+25))}i=s.getViewPort(o.editor.getWin()),r=s.getPos(e).y+d,c=i.y,u=i.h,(r<i.y||r+25>c+u)&&o.editor.getWin().scrollTo(0,c>r?r:r-u+25)}},placeCaretAt:function(e,t){this.setRng(i.getCaretRangeFromPoint(e,t,this.editor.getDoc()))},_moveEndPoint:function(t,n,r){var i=n,o=new e(n,i),a=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==f(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(s.ie&&s.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?o.next():o.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},getBoundingClientRect:function(){var e=this.getRng();return e.collapsed?c.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){this.win=null,this.controlSelection.destroy()}},u}),r(X,[j,m],function(e,t){function n(t){this.compare=function(n,i){function o(e){var n={};return r(t.getAttribs(e),function(r){var i=r.nodeName.toLowerCase();0!==i.indexOf("_")&&"style"!==i&&"data-mce-style"!==i&&"data-mce-fragment"!=i&&(n[i]=t.getAttrib(e,i))}),n}function a(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],"undefined"==typeof n)return!1;if(e[r]!=n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0}return n.nodeName!=i.nodeName?!1:a(o(n),o(i))&&a(t.parseStyle(t.getAttrib(n,"style")),t.parseStyle(t.getAttrib(i,"style")))?!e.isBookmarkNode(n)&&!e.isBookmarkNode(i):!1}}var r=t.each;return n}),r(K,[m],function(e){function t(e,t){function r(e){return e.replace(/%(\w+)/g,"")}var i,o,a=e.dom,s="",l,c;if(c=e.settings.preview_styles,c===!1)return"";if(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return i=t.block||t.inline||"span",o=a.create(i),n(t.styles,function(e,t){e=r(e),e&&a.setStyle(o,t,e)}),n(t.attributes,function(e,t){e=r(e),e&&a.setAttrib(o,t,e)}),n(t.classes,function(e){e=r(e),a.hasClass(o,e)||a.addClass(o,e)}),e.fire("PreviewFormats"),a.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),l=a.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,n(c.split(" "),function(t){var n=a.getStyle(o,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=a.getStyle(e.getBody(),t,!0),"#ffffff"==a.toHex(n).toLowerCase())||"color"==t&&"#000000"==a.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(s+="padding:0 2px;"),s+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),a.remove(o),s}var n=e.each;return{getCssText:t}}),r(G,[p,_,g],function(e,t,n){function r(e,t){var n=o[e];n||(o[e]=n=[]),o[e].push(t)}function i(e,t){s(o[e],function(e){e(t)})}var o=[],a=e.filter,s=e.each;return r("pre",function(r){function i(t){return c(t.previousSibling)&&-1!=e.indexOf(u,t.previousSibling)}function o(e,t){n(t).remove(),n(e).append("<br><br>").append(t.childNodes)}var l=r.selection.getRng(),c,u;c=t.matchNodeNames("pre"),l.collapsed||(u=r.selection.getSelectedBlocks(),s(a(a(u,c),i),function(e){o(e.previousSibling,e)}))}),{postProcess:i}}),r(J,[y,T,j,X,m,K,G],function(e,t,n,r,i,o,a){return function(s){function l(e){return e.nodeType&&(e=e.nodeName),!!s.schema.getTextBlockElements()[e.toLowerCase()]}function c(e){return/^(TH|TD)$/.test(e.nodeName)}function u(e){return e&&/^(IMG)$/.test(e.nodeName)}function d(e,t){return Y.getParents(e,t,Y.getRoot())}function f(e){return 1===e.nodeType&&"_mce_caret"===e.id}function h(){g({valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-center",ceFalseOverride:!0},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right",ceFalseOverride:!0},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){ue(n,function(t,n){Y.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),ue("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){g(e,{block:e,remove:"all"})}),g(s.settings.formats)}function p(){s.addShortcut("meta+b","bold_desc","Bold"),s.addShortcut("meta+i","italic_desc","Italic"),s.addShortcut("meta+u","underline_desc","Underline");for(var e=1;6>=e;e++)s.addShortcut("access+"+e,"",["FormatBlock",!1,"h"+e]);s.addShortcut("access+7","",["FormatBlock",!1,"p"]),s.addShortcut("access+8","",["FormatBlock",!1,"div"]),s.addShortcut("access+9","",["FormatBlock",!1,"address"])}function m(e){return e?j[e]:j}function g(e,t){e&&("string"!=typeof e?ue(e,function(e,t){g(t,e)}):(t=t.length?t:[t],ue(t,function(e){e.deep===oe&&(e.deep=!e.selector),e.split===oe&&(e.split=!e.selector||e.inline),e.remove===oe&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),j[e]=t))}function v(e){return e&&j[e]&&delete j[e],j}function y(e,t){var n=m(t);if(n)for(var r=0;r<n.length;r++)if(n[r].inherit===!1&&Y.is(e,n[r].selector))return!0;return!1}function b(e){var t;return s.dom.getParent(e,function(e){return t=s.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function C(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=b(e.parentNode),s.dom.getStyle(e,"color")&&t?s.dom.setStyle(e,"text-decoration",t):s.dom.getStyle(e,"text-decoration")===t&&s.dom.setStyle(e,"text-decoration",null))}function x(t,n,r){function i(e,t){if(t=t||d,e){if(t.onformat&&t.onformat(e,t,n,r),ue(t.styles,function(t,r){Y.setStyle(e,r,M(t,n))}),t.styles){var i=Y.getAttrib(e,"style");i&&e.setAttribute("data-mce-style",i)}ue(t.attributes,function(t,r){Y.setAttrib(e,r,M(t,n))}),ue(t.classes,function(t){t=M(t,n),Y.hasClass(e,t)||Y.addClass(e,t)})}}function o(){function t(t,n){var i=new e(n);for(r=i.prev2();r;r=i.prev2()){if(3==r.nodeType&&r.data.length>0)return r;if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}}var n=s.selection.getRng(),i=n.startContainer,o=n.endContainer;if(i!=o&&0===n.endOffset){var a=t(i,o),l=3==a.nodeType?a.data.length:a.childNodes.length;n.setEnd(a,l)}return n}function c(e,r,o){var a=[],s,c,h=!0;s=d.inline||d.block,c=Y.create(s),i(c),K.walk(e,function(e){function r(e){var m,v,y,b,C;return C=h,m=e.nodeName.toLowerCase(),v=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&ae(e)&&(C=h,h="true"===ae(e),b=!0),B(m,"br")?(p=0,void(d.block&&Y.remove(e))):d.wrapper&&E(e,t,n)?void(p=0):h&&!b&&d.block&&!d.wrapper&&l(m)&&G(v,s)?(e=Y.rename(e,s),i(e),a.push(e),void(p=0)):d.selector&&(ue(u,function(t){return"collapsed"in t&&t.collapsed!==g?void 0:Y.is(e,t.selector)&&!f(e)?(i(e,t),y=!0,!1):void 0}),!d.inline||y)?void(p=0):void(!h||b||!G(s,m)||!G(v,s)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||f(e)||d.inline&&J(e)?(p=0,ue(de(e.childNodes),r),b&&(h=C),p=0):(p||(p=Y.clone(c,ne),e.parentNode.insertBefore(p,e),a.push(p)),p.appendChild(e)))}var p;ue(e,r)}),d.links===!0&&ue(a,function(e){function t(e){"A"===e.nodeName&&i(e,d),ue(de(e.childNodes),t)}t(e)}),ue(a,function(e){function r(e){var t=0;return ue(e.childNodes,function(e){P(e)||ce(e)||t++}),t}function o(e){var t,n;return ue(e.childNodes,function(e){return 1!=e.nodeType||ce(e)||f(e)?void 0:(t=e,ne)}),t&&!ce(t)&&A(t,d)&&(n=Y.clone(t,ne),i(n),Y.replace(n,e,re),Y.remove(t,1)),n||e}var s;if(s=r(e),(a.length>1||!J(e))&&0===s)return void Y.remove(e,1);if(d.inline||d.wrapper){if(d.exact||1!==s||(e=o(e)),ue(u,function(t){ue(Y.select(t.inline,e),function(e){ce(e)||F(t,n,e,t.exact?e:null)})}),E(e.parentNode,t,n))return Y.remove(e,1),e=0,re;d.merge_with_parents&&Y.getParent(e.parentNode,function(r){return E(r,t,n)?(Y.remove(e,1),e=0,re):void 0}),e&&d.merge_siblings!==!1&&(e=W(U(e),e),e=W(e,U(e,re)))}})}var u=m(t),d=u[0],h,p,g=!r&&X.isCollapsed();if("false"!==ae(X.getNode())){if(d){if(r)r.nodeType?(p=Y.createRng(),p.setStartBefore(r),p.setEndAfter(r),c(O(p,u),null,!0)):c(r,null,!0);else if(g&&d.inline&&!Y.select("td[data-mce-selected],th[data-mce-selected]").length)$("apply",t,n);else{var v=s.selection.getNode();Q||!u[0].defaultBlock||Y.getParent(v,Y.isBlock)||x(u[0].defaultBlock),s.selection.setRng(o()),h=X.getBookmark(),c(O(X.getRng(re),u),h),d.styles&&(d.styles.color||d.styles.textDecoration)&&(fe(v,C,"childNodes"),C(v)),X.moveToBookmark(h),q(X.getRng(re)),s.nodeChanged()}a.postProcess(t,s)}}else{r=X.getNode();for(var y=0,b=u.length;b>y;y++)if(u[y].ceFalseOverride&&Y.is(r,u[y].selector))return void i(r,u[y])}}function w(e,t,n,r){function i(e){var n,r,o,a,s;if(1===e.nodeType&&ae(e)&&(a=y,y="true"===ae(e),s=!0),n=de(e.childNodes),y&&!s)for(r=0,o=h.length;o>r&&!F(h[r],t,e,e);r++);if(p.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(y=a)}}function o(n){var i;return ue(d(n.parentNode).reverse(),function(n){var o;i||"_start"==n.id||"_end"==n.id||(o=E(n,e,t,r),o&&o.split!==!1&&(i=n))}),i}function a(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){
-for(a=Y.clone(o,ne),c=0;c<h.length;c++)if(F(h[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||p.mixed&&J(e)||(n=Y.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function l(e){return a(o(e),e,e,!0)}function u(e){var t=Y.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return ce(n)&&(n=n[e?"firstChild":"lastChild"]),3==n.nodeType&&0===n.data.length&&(n=e?t.previousSibling||t.nextSibling:t.nextSibling||t.previousSibling),Y.remove(t,!0),n}function f(e){var t,n,r=e.commonAncestorContainer;if(e=O(e,h,re),p.split){if(t=V(e,re),n=V(e),t!=n){if(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&c(n)&&n.firstChild&&(n=n.firstChild||n),Y.isChildOf(t,n)&&!J(n)&&!c(t)&&!c(n))return t=H(t,"span",{id:"_start","data-mce-type":"bookmark"}),l(t),void(t=u(re));t=H(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=H(n,"span",{id:"_end","data-mce-type":"bookmark"}),l(t),l(n),t=u(re),n=u()}else t=n=l(t);e.startContainer=t.parentNode?t.parentNode:t,e.startOffset=Z(t),e.endContainer=n.parentNode?n.parentNode:n,e.endOffset=Z(n)+1}K.walk(e,function(e){ue(e,function(e){i(e),1===e.nodeType&&"underline"===s.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===b(e.parentNode)&&F({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var h=m(e),p=h[0],g,v,y=!0;if(n)return void(n.nodeType?(v=Y.createRng(),v.setStartBefore(n),v.setEndAfter(n),f(v)):f(n));if("false"!==ae(X.getNode()))X.isCollapsed()&&p.inline&&!Y.select("td[data-mce-selected],th[data-mce-selected]").length?$("remove",e,t,r):(g=X.getBookmark(),f(X.getRng(re)),X.moveToBookmark(g),p.inline&&_(e,t,X.getStart())&&q(X.getRng(!0)),s.nodeChanged());else{n=X.getNode();for(var C=0,x=h.length;x>C&&(!h[C].ceFalseOverride||!F(h[C],t,n,n));C++);}}function N(e,t,n){var r=m(e);!_(e,t,n)||"toggle"in r[0]&&!r[0].toggle?x(e,t,n):w(e,t,n)}function E(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===oe){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?Y.getAttrib(e,o):D(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!B(a,L(M(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?Y.getAttrib(e,s[l]):D(e,s[l]))return t;return t}var o=m(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],A(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!Y.hasClass(e,l[s]))return;return a}}function _(e,t,n){function r(n){var r=Y.getRoot();return n===r?!1:(n=Y.getParent(n,function(n){return y(n,e)?!0:n.parentNode===r||!!E(n,e,t,!0)}),E(n,e,t))}var i;return n?r(n):(n=X.getNode(),r(n)?re:(i=X.getStart(),i!=n&&r(i)?re:ne))}function S(e,t){var n,r=[],i={};return n=X.getStart(),Y.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&E(n,a,t)&&(i[a]=!0,r.push(a))},Y.getRoot()),r}function k(e){var t=m(e),n,r,i,o,a;if(t)for(n=X.getStart(),r=d(n),o=t.length-1;o>=0;o--){if(a=t[o].selector,!a||t[o].defaultBlock)return re;for(i=r.length-1;i>=0;i--)if(Y.is(r[i],a))return re}return ne}function T(e,t,n){var r;return ie||(ie={},r={},s.on("NodeChange",function(e){var t=d(e.element),n={};t=i.grep(t,function(e){return 1==e.nodeType&&!e.getAttribute("data-mce-bogus")}),ue(ie,function(e,i){ue(t,function(o){return E(o,i,{},e.similar)?(r[i]||(ue(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):y(o,i)?!1:void 0})}),ue(r,function(i,o){n[o]||(delete r[o],ue(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),ue(e.split(","),function(e){ie[e]||(ie[e]=[],ie[e].similar=n),ie[e].push(t)}),this}function R(e){return o.getCssText(s,e)}function A(e,t){return B(e,t.inline)?re:B(e,t.block)?re:t.selector?1==e.nodeType&&Y.is(e,t.selector):void 0}function B(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function D(e,t){return L(Y.getStyle(e,t),t)}function L(e,t){return"color"!=t&&"backgroundColor"!=t||(e=Y.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function M(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function P(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function H(e,t,n){var r=Y.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function O(t,n,r){function i(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=Y.getRoot(),3==r.nodeType&&!P(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&J(i))return i;for(o=i[a];o;o=o[a])if(!ce(o)&&!P(o)&&!t(o))return i;if(i==s||i.parentNode==s){r=i;break}i=i.parentNode}return r}function o(e,t){for(t===oe&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function a(e){for(var t=e;t;){if(1===t.nodeType&&ae(t))return"false"===ae(t)?t:e;t=t.parentNode}return e}function c(t,n,i){function o(e,t){var n,o,a=e.nodeValue;return"undefined"==typeof t&&(t=i?a.length:0),i?(n=a.lastIndexOf(" ",t),o=a.lastIndexOf("\xa0",t),n=n>o?n:o,-1===n||r||n++):(n=a.indexOf(" ",t),o=a.indexOf("\xa0",t),n=-1!==n&&(-1===o||o>n)?n:o),n}var a,l,c,u;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};u=t}for(a=new e(t,Y.getParent(t,J)||s.getBody());l=a[i?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(J(l))break;return u?(n=i?0:u.length,{container:u,offset:n}):void 0}function u(e,r){var i,o,a,s;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=d(e),o=0;o<i.length;o++)for(a=0;a<n.length;a++)if(s=n[a],!("collapsed"in s&&s.collapsed!==t.collapsed)&&Y.is(i[o],s.selector))return i[o];return e}function f(e,t){var r,i=Y.getRoot();if(n[0].wrapper||(r=Y.getParent(e,n[0].block,i)),r||(r=Y.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=i&&l(e)})),r&&n[0].wrapper&&(r=d(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!J(r[t])&&(r=r[t],!B(r,"br")););return r||e}var h,p,m,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(h=g.childNodes.length-1,g=g.childNodes[v>h?h:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(h=y.childNodes.length-1,y=y.childNodes[b>h?h:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=a(g),y=a(y),(ce(g.parentNode)||ce(g))&&(g=ce(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(ce(y.parentNode)||ce(y))&&(y=ce(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(m=c(g,v,!0),m&&(g=m.container,v=m.offset),m=c(y,b),m&&(y=m.container,b=m.offset)),p=o(y,b),p.node)){for(;p.node&&0===p.offset&&p.node.previousSibling;)p=o(p.node.previousSibling);p.node&&p.offset>0&&3===p.node.nodeType&&" "===p.node.nodeValue.charAt(p.offset-1)&&p.offset>1&&(y=p.node,y.splitText(p.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=i(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=i())),n[0].selector&&n[0].expand!==ne&&!n[0].inline&&(g=u(g,"previousSibling"),y=u(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(J(g)||(g=i(!0)),J(y)||(y=i()))),1==g.nodeType&&(v=Z(g),g=g.parentNode),1==y.nodeType&&(b=Z(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function I(e,t){return t.links&&"A"==e.tagName}function F(e,t,n,r){var i,o,a;if(!A(n,e)&&!I(n,e))return ne;if("all"!=e.remove)for(ue(e.styles,function(i,o){i=L(M(i,t),o),"number"==typeof o&&(o=i,r=0),(e.remove_similar||!r||B(D(r,o),i))&&Y.setStyle(n,o,""),a=1}),a&&""===Y.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),ue(e.attributes,function(e,i){var o;if(e=M(e,t),"number"==typeof i&&(i=e,r=0),!r||B(Y.getAttrib(r,i),e)){if("class"==i&&(e=Y.getAttrib(n,i),e&&(o="",ue(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void Y.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),te.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),ue(e.classes,function(e){e=M(e,t),r&&!Y.hasClass(r,e)||Y.removeClass(n,e)}),o=Y.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return ne;return"none"!=e.remove?(z(n,e),re):void 0}function z(e,t){function n(e,t,n){return e=U(e,t,n),!e||"BR"==e.nodeName||J(e)}var r=e.parentNode,i;t.block&&(Q?r==Y.getRoot()&&(t.list_block&&B(e,t.list_block)||ue(de(e.childNodes),function(e){G(Q,e.nodeName.toLowerCase())?i?i.appendChild(e):(i=H(e,Q),Y.setAttribs(i,s.settings.forced_root_block_attrs)):i=0})):J(e)&&!J(r)&&(n(e,ne)||n(e.firstChild,re,1)||e.insertBefore(Y.create("br"),e.firstChild),n(e,re)||n(e.lastChild,ne,1)||e.appendChild(Y.create("br")))),t.selector&&t.inline&&!B(t.inline,e)||Y.remove(e,1)}function U(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!P(e))return e}function W(e,t){function n(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!ce(i))return i}return e}var i,o,a=new r(Y);if(e&&t&&(e=n(e,"previousSibling"),t=n(t,"nextSibling"),a.compare(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return Y.remove(t),ue(de(t.childNodes),function(t){e.appendChild(t)}),e}return t}function V(t,n){var r,i,o;return r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1==r.nodeType&&(o=r.childNodes.length-1,!n&&i&&i--,r=r.childNodes[i>o?o:i]),3===r.nodeType&&n&&i>=r.nodeValue.length&&(r=new e(r,s.getBody()).next()||r),3!==r.nodeType||n||0!==i||(r=new e(r,s.getBody()).prev()||r),r}function $(t,n,r,i){function o(e){var t=Y.create("span",{id:g,"data-mce-bogus":!0,style:v?"color:red":""});return e&&t.appendChild(s.getDoc().createTextNode(ee)),t}function a(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==ee||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function c(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function u(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=X.getRng(!0),a(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),Y.remove(e)):(n=u(e),n.nodeValue.charAt(0)===ee&&(n.deleteData(0,1),r.startContainer==n&&r.startOffset>0&&r.setStart(n,r.startOffset-1),r.endContainer==n&&r.endOffset>0&&r.setEnd(n,r.endOffset-1)),Y.remove(e,1)),X.setRng(r);else if(e=c(X.getStart()),!e)for(;e=Y.get(g);)d(e,!1)}function f(){var e,t,i,a,s,l,d;e=X.getRng(!0),a=e.startOffset,l=e.startContainer,d=l.nodeValue,t=c(X.getStart()),t&&(i=u(t)),d&&a>0&&a<d.length&&/\w/.test(d.charAt(a))&&/\w/.test(d.charAt(a-1))?(s=X.getBookmark(),e.collapse(!0),e=O(e,m(n)),e=K.split(e),x(n,r,e),X.moveToBookmark(s)):(t&&i.nodeValue===ee?x(n,r,t):(t=o(!0),i=t.firstChild,e.insertNode(t),a=1,x(n,r,t)),X.setCursorLocation(i,a))}function h(){var e=X.getRng(!0),t,a,s,c,u,d,f=[],h,p;for(t=e.startContainer,a=e.startOffset,u=t,3==t.nodeType&&(a!=t.nodeValue.length&&(c=!0),u=u.parentNode);u;){if(E(u,n,r,i)){d=u;break}u.nextSibling&&(c=!0),f.push(u),u=u.parentNode}if(d)if(c)s=X.getBookmark(),e.collapse(!0),e=O(e,m(n),!0),e=K.split(e),w(n,r,e),X.moveToBookmark(s);else{for(p=o(),u=p,h=f.length-1;h>=0;h--)u.appendChild(Y.clone(f[h],!1)),u=u.firstChild;u.appendChild(Y.doc.createTextNode(ee)),u=u.firstChild;var g=Y.getParent(d,l);g&&Y.isEmpty(g)?d.parentNode.replaceChild(p,d):Y.insertAfter(p,d),X.setCursorLocation(u,1),Y.isEmpty(d)&&Y.remove(d)}}function p(){var e;e=c(X.getStart()),e&&!Y.isEmpty(e)&&fe(e,function(e){1!=e.nodeType||e.id===g||Y.isEmpty(e)||Y.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var g="_mce_caret",v=s.settings.caret_debug;s._hasCaretEvents||(le=function(){var e=[],t;if(a(c(X.getStart()),e))for(t=e.length;t--;)Y.setAttrib(e[t],"data-mce-bogus","1")},se=function(e){var t=e.keyCode;d(),8==t&&X.isCollapsed()&&X.getStart().innerHTML==ee&&d(c(X.getStart())),37!=t&&39!=t||d(c(X.getStart())),p()},s.on("SetContent",function(e){e.selection&&p()}),s._hasCaretEvents=!0),"apply"==t?f():h()}function q(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if((t.startContainer!=t.endContainer||!u(t.startContainer.childNodes[t.startOffset]))&&(3==n.nodeType&&r>=n.nodeValue.length&&(r=Z(n),n=n.parentNode,i=!0),1==n.nodeType))for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,Y.getParent(n,Y.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!P(a))return l=Y.create("a",{"data-mce-bogus":"all"},ee),a.parentNode.insertBefore(l,a),t.setStart(a,0),X.setRng(t),void Y.remove(l)}var j={},Y=s.dom,X=s.selection,K=new t(Y),G=s.schema.isValidChild,J=Y.isBlock,Q=s.settings.forced_root_block,Z=Y.nodeIndex,ee="\ufeff",te=/^(src|href|style)$/,ne=!1,re=!0,ie,oe,ae=Y.getContentEditable,se,le,ce=n.isBookmarkNode,ue=i.each,de=i.grep,fe=i.walk,he=i.extend;he(this,{get:m,register:g,unregister:v,apply:x,remove:w,toggle:N,match:_,matchAll:S,matchNode:E,canApply:k,formatChanged:T,getCssText:R}),h(),p(),s.on("BeforeGetContent",function(e){le&&"raw"!=e.format&&le()}),s.on("mouseup keydown",function(e){se&&se(e)})}}),r(Q,[I,d],function(e,t){return function(e){function n(){return e.serializer.getTrimmedContent()}function r(t){e.setDirty(t)}function i(e){o.typing=!1,o.add({},e)}var o=this,a=0,s=[],l,c,u=0;return e.on("init",function(){o.add()}),e.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&o.beforeChange()}),e.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&i(e)}),e.on("ObjectResizeStart Cut",function(){o.beforeChange()}),e.on("SaveContent ObjectResized blur",i),e.on("DragEnd",i),e.on("KeyUp",function(a){var l=a.keyCode;a.isDefaultPrevented()||((l>=33&&36>=l||l>=37&&40>=l||45==l||13==l||a.ctrlKey)&&(i(),e.nodeChanged()),(46==l||8==l||t.mac&&(91==l||93==l))&&e.nodeChanged(),c&&o.typing&&(e.isDirty()||(r(s[0]&&n()!=s[0].content),e.isDirty()&&e.fire("change",{level:s[0],lastLevel:null})),e.fire("TypingUndo"),c=!1,e.nodeChanged()))}),e.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented()){if(t>=33&&36>=t||t>=37&&40>=t||45==t)return void(o.typing&&i(e));var n=e.ctrlKey&&!e.altKey||e.metaKey;!(16>t||t>20)||224==t||91==t||o.typing||n||(o.beforeChange(),o.typing=!0,o.add({},e),c=!0)}}),e.on("MouseDown",function(e){o.typing&&i(e)}),e.addShortcut("meta+z","","Undo"),e.addShortcut("meta+y,meta+shift+z","","Redo"),e.on("AddUndo Undo Redo ClearUndos",function(t){t.isDefaultPrevented()||e.nodeChanged()}),o={data:s,typing:!1,beforeChange:function(){u||(l=e.selection.getBookmark(2,!0))},add:function(t,i){var o,c=e.settings,d;if(t=t||{},t.content=n(),u||e.removed)return null;if(d=s[a],e.fire("BeforeAddUndo",{level:t,lastLevel:d,originalEvent:i}).isDefaultPrevented())return null;if(d&&d.content==t.content)return null;if(s[a]&&(s[a].beforeBookmark=l),c.custom_undo_redo_levels&&s.length>c.custom_undo_redo_levels){for(o=0;o<s.length-1;o++)s[o]=s[o+1];s.length--,a=s.length}t.bookmark=e.selection.getBookmark(2,!0),a<s.length-1&&(s.length=a+1),s.push(t),a=s.length-1;var f={level:t,lastLevel:d,originalEvent:i};return e.fire("AddUndo",f),a>0&&(r(!0),e.fire("change",f)),t},undo:function(){var t;return o.typing&&(o.add(),o.typing=!1),a>0&&(t=s[--a],e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(t.beforeBookmark),r(!0),e.fire("undo",{level:t})),t},redo:function(){var t;return a<s.length-1&&(t=s[++a],e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(t.bookmark),r(!0),e.fire("redo",{level:t})),t},clear:function(){s=[],a=0,o.typing=!1,o.data=s,e.fire("ClearUndos")},hasUndo:function(){return a>0||o.typing&&s[0]&&n()!=s[0].content},hasRedo:function(){return a<s.length-1&&!this.typing},transact:function(e){o.beforeChange();try{u++,e()}finally{u--}return o.add()},extra:function(t,n){var r,i;o.transact(t)&&(i=s[a].bookmark,r=s[a-1],e.setContent(r.content,{format:"raw"}),e.selection.moveToBookmark(r.beforeBookmark),o.transact(n)&&(s[a-1].beforeBookmark=i))}}}}),r(Z,[y,T,d],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function h(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){return e&&/^(TD|TH|CAPTION)$/.test(e.nodeName)}function m(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function g(e){var t=e,n=[],r;if(t){for(;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}}function v(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(t){if(n.ie&&n.ie<9&&M&&M.firstChild&&M.firstChild==M.lastChild&&"BR"==M.firstChild.tagName&&a.remove(M.firstChild),/^(LI|DT|DD)$/.test(t.nodeName)){var d=r(t.firstChild);d&&/^(UL|OL|DL)$/.test(d.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),n.ie||t.normalize(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(f[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!P||9>P)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}}function y(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function b(e){e.innerHTML=r?"":'<br data-mce-bogus="1">'}function C(e){var t=D,n,i,o,s=u.getTextInlineElements();if(e||"TABLE"==z?(n=a.create(e||W),y(n)):n=M.cloneNode(!1),o=n,l.keep_styles!==!1)do if(s[t.nodeName]){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while((t=t.parentNode)&&t!=B);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function x(t){var n,r,i;if(3==D.nodeType&&(t?L>0:L<D.nodeValue.length))return!1;if(D.parentNode==M&&V&&!t)return!0;if(t&&1==D.nodeType&&D==M.firstChild)return!0;if("TABLE"===D.nodeName||D.previousSibling&&"TABLE"==D.previousSibling.nodeName)return V&&!t||!V&&t;for(n=new e(D,M),3==D.nodeType&&(t&&0===L?n.prev():t||L!=D.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function w(e,t){var n,r,o,s,l,c,d=W||"P";if(r=a.getParent(e,a.isBlock),!r||!h(r)){if(r=r||B,c=r==i.getBody()||p(r)?r.nodeName.toLowerCase():r.parentNode.nodeName.toLowerCase(),!r.hasChildNodes())return n=a.create(d),y(n),r.appendChild(n),R.setStart(n,0),R.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),y(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;R.setStart(e,t),R.setEnd(e,t)}}return e}function N(){function e(e){for(var t=F[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===M}function t(){var e=F.parentNode;return/^(LI|DT|DD)$/.test(e.nodeName)?e:F}if(F!=i.getBody()){var n=F.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(W="LI"),O=W?C(W):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(O,t()):a.replace(O,F):e(!0)?"LI"==n?(a.insertAfter(O,t()),O.appendChild(a.doc.createTextNode(" ")),O.appendChild(F)):F.parentNode.insertBefore(O,F):e()?(a.insertAfter(O,t()),m(O)):(F=t(),A=R.cloneRange(),A.setStartAfter(M),A.setEndAfter(F),I=A.extractContents(),"LI"==W&&"LI"==I.firstChild.nodeName?(O=I.firstChild,a.insertAfter(I,F)):(a.insertAfter(I,F),a.insertAfter(O,F))),a.remove(M),v(O),c.add()}}function E(){i.execCommand("InsertLineBreak",!1,o)}function _(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function S(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function k(e){var t;r||(e.normalize(),t=e.lastChild,t&&!/^(left|right)$/gi.test(a.getStyle(t,"float",!0))||a.add(e,"br"))}function T(){O=/^(H[1-6]|PRE|FIGURE)$/.test(z)&&"HGROUP"!=U?C(W):C(),l.end_container_on_empty_block&&h(F)&&a.isEmpty(M)?O=a.split(F,M):a.insertAfter(O,M),v(O)}var R,A,B,D,L,M,P,H,O,I,F,z,U,W,V;if(R=s.getRng(!0),!o.isDefaultPrevented()){if(!R.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(R),D=R.startContainer,L=R.startOffset,W=(l.force_p_newlines?"p":"")||l.forced_root_block,W=W?W.toUpperCase():"",P=a.doc.documentMode,H=o.shiftKey,1==D.nodeType&&D.hasChildNodes()&&(V=L>D.childNodes.length-1,D=D.childNodes[Math.min(L,D.childNodes.length-1)]||D,L=V&&3==D.nodeType?D.nodeValue.length:0),B=S(D)){if(c.beforeChange(),!a.isBlock(B)&&B!=a.getRoot())return void(W&&!H||E());if((W&&!H||!W&&H)&&(D=w(D,L)),M=a.getParent(D,a.isBlock),F=M?a.getParent(M.parentNode,a.isBlock):null,z=M?M.nodeName.toUpperCase():"",U=F?F.nodeName.toUpperCase():"","LI"!=U||o.ctrlKey||(M=F,z=U),/^(LI|DT|DD)$/.test(z)){if(!W&&H)return void E();if(a.isEmpty(M))return void N()}if("PRE"==z&&l.br_in_pre!==!1){if(!H)return void E()}else if(!W&&!H&&"LI"!=z||W&&H)return void E();W&&M===i.getBody()||(W=W||"P",x()?T():x(!0)?(O=M.parentNode.insertBefore(C(),M),m(O),v(M)):(A=R.cloneRange(),A.setEndAfter(M),I=A.extractContents(),_(I),O=I.firstChild,a.insertAfter(I,M),g(O),k(M),a.isEmpty(M)&&b(M),O.normalize(),a.isEmpty(O)?(a.remove(O),T()):v(O)),a.setAttrib(O,"id",""),i.fire("NewBlock",{newBlock:O}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements(),f=u.getMoveCaretBeforeOnEnterElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(ee,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,h,p,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",m),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",m)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){p=t,t=t.nextSibling,r.remove(p);continue}h||(h=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(h,t),g=!0),p=t,t=t.nextSibling,h.appendChild(p)}else h=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(te,[z,y,_,$,k,U],function(e,t,n,r,i,o){function a(e){return e>0}function s(e){return 0>e}function l(e,n,r,i,o){var l=new t(e,i);if(s(n)){if(C(e)&&(e=l.prev(!0),r(e)))return e;for(;e=l.prev(o);)if(r(e))return e}if(a(n)){if(C(e)&&(e=l.next(!0),r(e)))return e;for(;e=l.next(o);)if(r(e))return e}return null}function c(e,t){for(e=e.parentNode;e&&e!=t;e=e.parentNode)if(b(e))return e;return t}function u(e,t){for(;e&&e!=t;){if(x(e))return e;e=e.parentNode}return null}function d(e,t,n){return u(e.container(),n)==u(t.container(),n)}function f(e,t,n){return c(e.container(),n)==c(t.container(),n)}function h(e,t){var n,r;return t?(n=t.container(),r=t.offset(),E(n)?n.childNodes[r+e]:null):null}function p(e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n}function m(e,t,n){return u(t,e)==u(n,e)}function g(e,t,n){var r,i;for(i=e?"previousSibling":"nextSibling";n&&n!=t;){if(r=n[i],w(r)&&(r=r[i]),C(r)){if(m(t,r,n))return r;break}if(_(r))break;n=n.parentNode}return null}function v(e,t,r){var o,a,s,l,c=N(g,!0,t),u=N(g,!1,t);if(a=r.startContainer,s=r.startOffset,i.isCaretContainerBlock(a)){if(E(a)||(a=a.parentNode),l=a.getAttribute("data-mce-caret"),"before"==l&&(o=a.nextSibling,C(o)))return S(o);if("after"==l&&(o=a.previousSibling,C(o)))return k(o)}if(!r.collapsed)return r;if(n.isText(a)){if(w(a)){if(1===e){if(o=u(a))return S(o);if(o=c(a))return k(o)}if(-1===e){if(o=c(a))return k(o);if(o=u(a))return S(o)}return r}if(i.endsWithCaretContainer(a)&&s>=a.data.length-1)return 1===e&&(o=u(a))?S(o):r;if(i.startsWithCaretContainer(a)&&1>=s)return-1===e&&(o=c(a))?k(o):r;if(s===a.data.length)return o=u(a),o?S(o):r;if(0===s)return o=c(a),o?k(o):r}return r}function y(e,t){return C(h(e,t))}var b=n.isContentEditableTrue,C=n.isContentEditableFalse,x=n.matchStyleValues("display","block table table-cell table-caption"),w=i.isCaretContainer,N=e.curry,E=n.isElement,_=o.isCaretCandidate,S=N(p,!0),k=N(p,!1);return{isForwards:a,isBackwards:s,findNode:l,getEditingHost:c,getParentBlock:u,isInSameBlock:d,isInSameEditingHost:f,isBeforeContentEditableFalse:N(y,0),isAfterContentEditableFalse:N(y,-1),normalizeRange:v}}),r(ne,[_,U,$,te,p,z],function(e,t,n,r,i,o){function a(e,t){for(var n=[];e&&e!=t;)n.push(e),e=e.parentNode;return n}function s(e,t){return e.hasChildNodes()&&t<e.childNodes.length?e.childNodes[t]:null}function l(e,t){if(m(e)){if(v(t.previousSibling)&&!f(t.previousSibling))return n.before(t);if(f(t))return n(t,0)}if(g(e)){if(v(t.nextSibling)&&!f(t.nextSibling))return n.after(t);if(f(t))return n(t,t.data.length)}return g(e)?p(t)?n.before(t):n.after(t):n.before(t)}function c(t,i){var o;return e.isBr(t)?(o=u(1,n.after(t),i),o?!r.isInSameBlock(n.before(t),n.before(o),i):!1):!1}function u(e,t,p){var C,x,w,N,E,_,S;if(!h(p)||!t)return null;if(S=t,C=S.container(),x=S.offset(),f(C)){if(g(e)&&x>0)return n(C,--x);if(m(e)&&x<C.length)return n(C,++x);w=C}else{if(g(e)&&x>0&&(N=s(C,x-1),v(N)))return!y(N)&&(E=r.findNode(N,e,b,N))?f(E)?n(E,E.data.length):n.after(E):f(N)?n(N,N.data.length):n.before(N);if(m(e)&&x<C.childNodes.length&&(N=s(C,x),v(N)))return c(N,p)?u(e,n.after(N),p):!y(N)&&(E=r.findNode(N,e,b,N))?f(E)?n(E,0):n.before(E):f(N)?n(N,0):n.after(N);w=S.getNode()}return(m(e)&&S.isAtEnd()||g(e)&&S.isAtStart())&&(w=r.findNode(w,e,o.constant(!0),p,!0),b(w))?l(e,w):(N=r.findNode(w,e,b,p),_=i.last(i.filter(a(C,p),d)),!_||N&&_.contains(N)?N?l(e,N):null:S=m(e)?n.after(_):n.before(_))}var d=e.isContentEditableFalse,f=e.isText,h=e.isElement,p=e.isBr,m=r.isForwards,g=r.isBackwards,v=t.isCaretCandidate,y=t.isAtomic,b=t.isEditableCaretCandidate;return function(e){return{next:function(t){return u(1,t,e)},prev:function(t){return u(-1,t,e)}}}}),r(re,[m,ne,$],function(e,t,n){var r=function(e){var t=e.firstChild,n=e.lastChild;return t&&"meta"===t.name&&(t=t.next),n&&"mce_marker"===n.attr("id")&&(n=n.prev),t&&t===n?"ul"===t.name||"ol"===t.name:!1},i=function(e){var t=e.firstChild,n=e.lastChild;return t&&"META"===t.nodeName&&t.parentNode.removeChild(t),n&&"mce_marker"===n.id&&n.parentNode.removeChild(n),e},o=function(e,t,n){var r=t.serialize(n),o=e.createFragment(r);return i(o)},a=function(t){return e.grep(t.childNodes,function(e){return"LI"===e.nodeName})},s=function(e){return!e.firstChild},l=function(e){return e.length>0&&s(e[e.length-1])?e.slice(0,-1):e},c=function(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null},u=function(e,t){return!!c(e,t)},d=function(e,t){var n=t.cloneRange(),r=t.cloneRange();return n.setStartBefore(e),r.setEndAfter(e),[n.cloneContents(),r.cloneContents()]},f=function(e,r){var i=n.before(e),o=new t(r),a=o.next(i);return a?a.toRange():null},h=function(e,r){var i=n.after(e),o=new t(r),a=o.prev(i);return a?a.toRange():null},p=function(t,n,r,i){var o=d(t,i),a=t.parentNode;return a.insertBefore(o[0],t),e.each(n,function(e){a.insertBefore(e,t)}),a.insertBefore(o[1],t),a.removeChild(t),h(n[n.length-1],r)},m=function(t,n,r){var i=t.parentNode;return e.each(n,function(e){i.insertBefore(e,t)}),f(t,r)},g=function(e,t,n,r){return r.insertAfter(t.reverse(),e),h(t[0],n)},v=function(e,r,i,s){var u=o(r,e,s),d=c(r,i.startContainer),f=l(a(u.firstChild)),h=1,v=2,y=r.getRoot(),b=function(e){var o=n.fromRangeStart(i),a=new t(r.getRoot()),s=e===h?a.prev(o):a.next(o);return s?c(r,s.getNode())!==d:!0};return b(h)?m(d,f,y):b(v)?g(d,f,y,r):p(d,f,y,i)};return{isListFragment:r,insertAtCaret:v,isParentBlockLi:u,trimListItems:l,listItems:a}}),r(ie,[d,m,P,ne,$,X,_,re],function(e,t,n,r,i,o,a,s){var l=a.matchNodeNames("td th"),c=function(a,c,u){function d(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=D.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^&nbsp;/," "):t("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),i<r.length?e=e.replace(/&nbsp;(<br>|)$/," "):t("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}function f(){var e,t,n;e=D.getRng(!0),t=e.startContainer,n=e.startOffset,3==t.nodeType&&e.collapsed&&("\xa0"===t.data[n]?(t.deleteData(n,1),/[\u00a0| ]$/.test(c)||(c+=" ")):"\xa0"===t.data[n-1]&&(t.deleteData(n-1,1),/[\u00a0| ]$/.test(c)||(c=" "+c)))}function h(){if(A){var e=a.getBody(),n=new o(L);t.each(L.select("*[data-mce-fragment]"),function(t){for(var r=t.parentNode;r&&r!=e;r=r.parentNode)B[t.nodeName.toLowerCase()]&&n.compare(r,t)&&L.remove(t,!0)})}}function p(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}function m(e){t.each(e.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")})}function g(e){return!!e.getAttribute("data-mce-fragment")}function v(e){return e&&!a.schema.getShortEndedElements()[e.nodeName]}function y(t){function n(e){for(var t=a.getBody();e&&e!==t;e=e.parentNode)if("false"===a.dom.getContentEditable(e))return e;return null}function o(e){var t=i.fromRangeStart(e),n=new r(a.getBody());return t=n.next(t),t?t.toRange():void 0}var s,c,u;if(t){if(D.scrollIntoView(t),s=n(t))return L.remove(t),void D.select(s);S=L.createRng(),k=t.previousSibling,k&&3==k.nodeType?(S.setStart(k,k.nodeValue.length),e.ie||(T=t.nextSibling,T&&3==T.nodeType&&(k.appendData(T.data),T.parentNode.removeChild(T)))):(S.setStartBefore(t),S.setEndBefore(t)),c=L.getParent(t,L.isBlock),L.remove(t),c&&L.isEmpty(c)&&(a.$(c).empty(),S.setStart(c,0),S.setEnd(c,0),l(c)||g(c)||!(u=o(S))?L.add(c,L.create("br",{"data-mce-bogus":"1"})):(S=u,L.remove(c))),D.setRng(S)}}var b,C,x,w,N,E,_,S,k,T,R,A,B=a.schema.getTextInlineElements(),D=a.selection,L=a.dom;/^ | $/.test(c)&&(c=d(c)),b=a.parser,A=u.merge,C=new n({validate:a.settings.validate},a.schema),R='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#x200B;</span>',E={content:c,format:"html",selection:!0},a.fire("BeforeSetContent",E),c=E.content,-1==c.indexOf("{$caret}")&&(c+="{$caret}"),c=c.replace(/\{\$caret\}/,R),S=D.getRng();var M=S.startContainer||(S.parentElement?S.parentElement():null),P=a.getBody();M===P&&D.isCollapsed()&&L.isBlock(P.firstChild)&&v(P.firstChild)&&L.isEmpty(P.firstChild)&&(S=L.createRng(),S.setStart(P.firstChild,0),S.setEnd(P.firstChild,0),D.setRng(S)),D.isCollapsed()||(a.selection.setRng(a.selection.getRng()),a.getDoc().execCommand("Delete",!1,null),f()),x=D.getNode();var H={context:x.nodeName.toLowerCase(),
-data:u.data};if(N=b.parse(c,H),u.paste===!0&&s.isListFragment(N)&&s.isParentBlockLi(L,x))return S=s.insertAtCaret(C,L,a.selection.getRng(!0),N),a.selection.setRng(S),void a.fire("SetContent",E);if(p(N),k=N.lastChild,"mce_marker"==k.attr("id"))for(_=k,k=k.prev;k;k=k.walk(!0))if(3==k.type||!L.isBlock(k.name)){a.schema.isValidChild(k.parent.name,"span")&&k.parent.insert(_,k,"br"===k.name);break}if(a._selectionOverrides.showBlockCaretContainer(x),H.invalid){for(D.setContent(R),x=D.getNode(),w=a.getBody(),9==x.nodeType?x=k=w:k=x;k!==w;)x=k,k=k.parentNode;c=x==w?w.innerHTML:L.getOuterHTML(x),c=C.serialize(b.parse(c.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return C.serialize(N)}))),x==w?L.setHTML(w,c):L.setOuterHTML(x,c)}else c=C.serialize(N),k=x.firstChild,T=x.lastChild,!k||k===T&&"BR"===k.nodeName?L.setHTML(x,c):D.setContent(c);h(),y(L.get("mce_marker")),m(a.getBody()),a.fire("SetContent",E),a.addVisual()},u=function(e){var n;return"string"!=typeof e?(n=t.extend({paste:e.paste,data:{paste:e.paste}},e),{content:e.content,details:n}):{content:e,details:{}}},d=function(e,t){var n=u(t);c(e,n.content,n.details)};return{insertAtCaret:d}}),r(oe,[d,m,T,y,ie],function(e,n,r,i,o){var a=n.each,s=n.extend,l=n.map,c=n.inArray,u=n.explode,d=e.ie&&e.ie<11,f=!0,h=!1;return function(n){function p(e,t,r,i){var o,s,l=0;if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||i&&i.skip_focus||n.focus(),i=n.fire("BeforeExecCommand",{command:e,ui:t,value:r}),i.isDefaultPrevented())return!1;if(s=e.toLowerCase(),o=B.exec[s])return o(s,t,r),n.fire("ExecCommand",{command:e,ui:t,value:r}),!0;if(a(n.plugins,function(i){return i.execCommand&&i.execCommand(e,t,r)?(n.fire("ExecCommand",{command:e,ui:t,value:r}),l=!0,!1):void 0}),l)return l;if(n.theme&&n.theme.execCommand&&n.theme.execCommand(e,t,r))return n.fire("ExecCommand",{command:e,ui:t,value:r}),!0;try{l=n.getDoc().execCommand(e,t,r)}catch(c){}return l?(n.fire("ExecCommand",{command:e,ui:t,value:r}),!0):!1}function m(e){var t;if(!n.quirks.isHidden()){if(e=e.toLowerCase(),t=B.state[e])return t(e);try{return n.getDoc().queryCommandState(e)}catch(r){}return!1}}function g(e){var t;if(!n.quirks.isHidden()){if(e=e.toLowerCase(),t=B.value[e])return t(e);try{return n.getDoc().queryCommandValue(e)}catch(r){}}}function v(e,t){t=t||"exec",a(e,function(e,n){a(n.toLowerCase().split(","),function(n){B[t][n]=e})})}function y(e,t,r){e=e.toLowerCase(),B.exec[e]=function(e,i,o,a){return t.call(r||n,i,o,a)}}function b(e){if(e=e.toLowerCase(),B.exec[e])return!0;try{return n.getDoc().queryCommandSupported(e)}catch(t){}return!1}function C(e,t,r){e=e.toLowerCase(),B.state[e]=function(){return t.call(r||n)}}function x(e,t,r){e=e.toLowerCase(),B.value[e]=function(){return t.call(r||n)}}function w(e){return e=e.toLowerCase(),!!B.exec[e]}function N(e,r,i){return r===t&&(r=h),i===t&&(i=null),n.getDoc().execCommand(e,r,i)}function E(e){return A.match(e)}function _(e,r){A.toggle(e,r?{value:r}:t),n.nodeChanged()}function S(e){L=R.getBookmark(e)}function k(){R.moveToBookmark(L)}var T,R,A,B={state:{},exec:{},value:{}},D=n.settings,L;n.on("PreInit",function(){T=n.dom,R=n.selection,D=n.settings,A=n.formatter}),s(this,{execCommand:p,queryCommandState:m,queryCommandValue:g,queryCommandSupported:b,addCommands:v,addCommand:y,addQueryStateHandler:C,addQueryValueHandler:x,hasCustomCommand:w}),v({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(t){var r=n.getDoc(),i;try{N(t)}catch(o){i=f}if("paste"!==t||r.queryCommandEnabled(t)||(i=!0),i||!r.queryCommandSupported(t)){var a=n.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");e.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),n.notificationManager.open({text:a,type:"error"})}},unlink:function(){if(R.isCollapsed()){var e=R.getNode();return void("A"==e.tagName&&n.dom.remove(e,!0))}A.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"==t&&(t="justify"),a("left,center,right,justify".split(","),function(e){t!=e&&A.remove("align"+e)}),"none"!=t&&_("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;N(e),t=T.getParent(R.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(S(),T.split(n,t),k()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){_(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){_(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=u(D.font_size_style_values),r=u(D.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),_(e,n)},RemoveFormat:function(e){A.remove(e)},mceBlockQuote:function(){_("blockquote")},FormatBlock:function(e,t,n){return _(n||"p")},mceCleanup:function(){var e=R.getBookmark();n.setContent(n.getContent({cleanup:f}),{cleanup:f}),R.moveToBookmark(e)},mceRemoveNode:function(e,t,r){var i=r||R.getNode();i!=n.getBody()&&(S(),n.dom.remove(i,f),k())},mceSelectNodeDepth:function(e,t,r){var i=0;T.getParent(R.getNode(),function(e){return 1==e.nodeType&&i++==r?(R.select(e),h):void 0},n.getBody())},mceSelectNode:function(e,t,n){R.select(n)},mceInsertContent:function(e,t,r){o.insertAtCaret(n,r)},mceInsertRawHTML:function(e,t,r){R.setContent("tiny_mce_marker"),n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return r}))},mceToggleFormat:function(e,t,n){_(n)},mceSetContent:function(e,t,r){n.setContent(r)},"Indent,Outdent":function(e){var t,r,i;t=D.indentation,r=/[a-z%]+$/i.exec(t),t=parseInt(t,10),m("InsertUnorderedList")||m("InsertOrderedList")?N(e):(D.forced_root_block||T.getParent(R.getNode(),T.isBlock)||A.apply("div"),a(R.getSelectedBlocks(),function(o){if("false"!==T.getContentEditable(o)&&"LI"!=o.nodeName){var a=n.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==T.getStyle(o,"direction",!0)?"Right":"Left","outdent"==e?(i=Math.max(0,parseInt(o.style[a]||0,10)-t),T.setStyle(o,a,i?i+r:"")):(i=parseInt(o.style[a]||0,10)+t+r,T.setStyle(o,a,i))}}))},mceRepaint:function(){},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual,n.addVisual()},mceReplaceContent:function(e,t,r){n.execCommand("mceInsertContent",!1,r.replace(/\{\$selection\}/g,R.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=T.getParent(R.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||A.remove("link"),n.href&&A.apply("link",n,r)},selectAll:function(){var e=T.getRoot(),t;R.getRng().setStart?(t=T.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),R.setRng(t)):(t=R.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){N("Delete");var e=n.getBody();T.isEmpty(e)&&(n.setContent(""),e.firstChild&&T.isBlock(e.firstChild)?n.selection.setCursorLocation(e.firstChild,0):n.selection.setCursorLocation(e,0))},mceNewDocument:function(){n.setContent("")},InsertLineBreak:function(e,t,o){function a(){for(var e=new i(m,v),t,r=n.schema.getNonEmptyElements();t=e.next();)if(r[t.nodeName.toLowerCase()]||t.length>0)return!0}var s=o,l,c,u,h=R.getRng(!0);new r(T).normalize(h);var p=h.startOffset,m=h.startContainer;if(1==m.nodeType&&m.hasChildNodes()){var g=p>m.childNodes.length-1;m=m.childNodes[Math.min(p,m.childNodes.length-1)]||m,p=g&&3==m.nodeType?m.nodeValue.length:0}var v=T.getParent(m,T.isBlock),y=v?v.nodeName.toUpperCase():"",b=v?T.getParent(v.parentNode,T.isBlock):null,C=b?b.nodeName.toUpperCase():"",x=s&&s.ctrlKey;"LI"!=C||x||(v=b,y=C),m&&3==m.nodeType&&p>=m.nodeValue.length&&(d||a()||(l=T.create("br"),h.insertNode(l),h.setStartAfter(l),h.setEndAfter(l),c=!0)),l=T.create("br"),h.insertNode(l);var w=T.doc.documentMode;return d&&"PRE"==y&&(!w||8>w)&&l.parentNode.insertBefore(T.doc.createTextNode("\r"),l),u=T.create("span",{},"&nbsp;"),l.parentNode.insertBefore(u,l),R.scrollIntoView(u),T.remove(u),c?(h.setStartBefore(l),h.setEndBefore(l)):(h.setStartAfter(l),h.setEndAfter(l)),R.setRng(h),n.undoManager.add(),f}}),v({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=R.isCollapsed()?[T.getParent(R.getNode(),T.isBlock)]:R.getSelectedBlocks(),r=l(n,function(e){return!!A.matchNode(e,t)});return-1!==c(r,f)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return E(e)},mceBlockQuote:function(){return E("blockquote")},Outdent:function(){var e;if(D.inline_styles){if((e=T.getParent(R.getStart(),T.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return f;if((e=T.getParent(R.getEnd(),T.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return f}return m("InsertUnorderedList")||m("InsertOrderedList")||!D.inline_styles&&!!T.getParent(R.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=T.getParent(R.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),v({"FontSize,FontName":function(e){var t=0,n;return(n=T.getParent(R.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),v({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}),r(ae,[m],function(e){function t(e,o){var a=this,s,l;if(e=r(e),o=a.settings=o||{},s=o.base_uri,/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(a.source=e);var c=0===e.indexOf("//");0!==e.indexOf("/")||c||(e=(s?s.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(l=o.base_uri?o.base_uri.path:new t(location.href).directory,""===o.base_uri.protocol?e="//mce_host"+a.toAbsPath(l,e):(e=/([^#?]*)([#?]?.*)/.exec(e),e=(s&&s.protocol||"http")+"://mce_host"+a.toAbsPath(l,e[1])+e[2])),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(i,function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),a[t]=r}),s&&(a.protocol||(a.protocol=s.protocol),a.userInfo||(a.userInfo=s.userInfo),a.port||"mce_host"!==a.host||(a.port=s.port),a.host&&"mce_host"!==a.host||(a.host=s.host),a.source=""),c&&(a.protocol="")}var n=e.each,r=e.trim,i="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),o={ftp:21,http:80,https:443,mailto:25};return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(n&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=o[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return n.source&&!e||(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t.parseDataUri=function(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}},t.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t},t}),r(se,[m],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],"function"==typeof f&&c[d]?u[d]=s(d,f):u[d]=f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(le,[m],function(e){function t(t){function n(){return!1}function r(){return!0}function i(e,i){var o,s,l,c;if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=u),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=r},i.stopPropagation=function(){i.isPropagationStopped=r},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=r},i.isDefaultPrevented=n,i.isPropagationStopped=n,i.isImmediatePropagationStopped=n),t.beforeFire&&t.beforeFire(i),o=d[e])for(s=0,l=o.length;l>s;s++){if(c=o[s],c.once&&a(e,c.func),i.isImmediatePropagationStopped())return i.stopPropagation(),i;if(c.func.call(u,i)===!1)return i.preventDefault(),i}return i}function o(t,r,i,o){var a,s,l;if(r===!1&&(r=n),r)for(r={func:r},o&&e.extend(r,o),s=t.toLowerCase().split(" "),l=s.length;l--;)t=s[l],a=d[t],a||(a=d[t]=[],f(t,!0)),i?a.unshift(r):a.push(r);return c}function a(e,t){var n,r,i,o,a;if(e)for(o=e.toLowerCase().split(" "),n=o.length;n--;){if(e=o[n],r=d[e],!e){for(i in d)f(i,!1),delete d[i];return c}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),d[e]=r);else r.length=0;r.length||(f(e,!1),delete d[e])}}else{for(e in d)f(e,!1);d={}}return c}function s(e,t,n){return o(e,t,n,{once:!0})}function l(e){return e=e.toLowerCase(),!(!d[e]||0===d[e].length)}var c=this,u,d={},f;t=t||{},u=t.scope||c,f=t.toggleEvent||n,c.fire=i,c.on=o,c.off=a,c.once=s,c.has=l}var n=e.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend"," ");return t.isNative=function(e){return!!n[e.toLowerCase()]},t}),r(ce,[],function(){function e(e){this.create=e.create}return e.create=function(t,n){return new e({create:function(e,r){function i(t){e.set(r,t.value)}function o(e){t.set(n,e.value)}var a;return e.on("change:"+r,o),t.on("change:"+n,i),a=e._bindings,a||(a=e._bindings=[],e.on("destroy",function(){for(var e=a.length;e--;)a[e]()})),a.push(function(){t.off("change:"+n,i)}),t.get(n)}})},e}),r(ue,[le],function(e){function t(t){return t._eventDispatcher||(t._eventDispatcher=new e({scope:t,toggleEvent:function(n,r){e.isNative(n)&&t.toggleNativeEvent&&t.toggleNativeEvent(n,r)}})),t._eventDispatcher}return{fire:function(e,n,r){var i=this;if(i.removed&&"remove"!==e)return n;if(n=t(i).fire(e,n,r),r!==!1&&i.parent)for(var o=i.parent();o&&!n.isPropagationStopped();)o.fire(e,n,!1),o=o.parent();return n},on:function(e,n,r){return t(this).on(e,n,r)},off:function(e,n){return t(this).off(e,n)},once:function(e,n){return t(this).once(e,n)},hasEventListeners:function(e){return t(this).has(e)}}}),r(de,[ce,ue,se,m],function(e,t,n,r){function i(e){return e.nodeType>0}function o(e,t){var n,a;if(e===t)return!0;if(null===e||null===t)return e===t;if("object"!=typeof e||"object"!=typeof t)return e===t;if(r.isArray(t)){if(e.length!==t.length)return!1;for(n=e.length;n--;)if(!o(e[n],t[n]))return!1}if(i(e)||i(t))return e===t;a={};for(n in t){if(!o(e[n],t[n]))return!1;a[n]=!0}for(n in e)if(!a[n]&&!o(e[n],t[n]))return!1;return!0}return n.extend({Mixins:[t],init:function(t){var n,r;t=t||{};for(n in t)r=t[n],r instanceof e&&(t[n]=r.create(this,n));this.data=t},set:function(t,n){var r,i,a=this.data[t];if(n instanceof e&&(n=n.create(this,t)),"object"==typeof t){for(r in t)this.set(r,t[r]);return this}return o(a,n)||(this.data[t]=n,i={target:this,name:t,value:n,oldValue:a},this.fire("change:"+t,i),this.fire("change",i)),this},get:function(e){return this.data[e]},has:function(e){return e in this.data},bind:function(t){return e.create(this,t)},destroy:function(){this.fire("destroy")}})}),r(fe,[se],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.classes.contains(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.pseudo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,h,p;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,p=e,h=0,i=o-1;i>=0;i--)for(c=a[i];p;){if(c.pseudo)for(f=p.parent().items(),u=d=f.length;u--&&f[u]!==p;);for(s=0,l=c.length;l>s;s++)if(!c[s](p,u,d)){s=l+1;break}if(s===l){h++;break}if(i===o-1)break;p=p.parent()}if(h===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(he,[m,fe,se],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].classes.contains(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this},addClass:function(e){return this.each(function(t){t.classes.add(e)})},removeClass:function(e){return this.each(function(t){t.classes.remove(e)})}},e.each("fire on off show hide append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(pe,[m,w],function(e,t){var n=0;return{id:function(){return"mceu_"+n++},create:function(n,r,i){var o=document.createElement(n);return t.DOM.setAttribs(o,r),"string"==typeof i?o.innerHTML=i:e.each(i,function(e){e.nodeType&&o.appendChild(e)}),o},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},getRuntimeStyle:function(e,n){return t.DOM.getStyle(e,n,!0)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(me,[],function(){return{parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}}}}),r(ge,[m],function(e){function t(){}function n(e){this.cls=[],this.cls._map={},this.onchange=e||t,this.prefix=""}return e.extend(n.prototype,{add:function(e){return e&&!this.contains(e)&&(this.cls._map[e]=!0,this.cls.push(e),this._change()),this},remove:function(e){if(this.contains(e)){for(var t=0;t<this.cls.length&&this.cls[t]!==e;t++);this.cls.splice(t,1),delete this.cls._map[e],this._change()}return this},toggle:function(e,t){var n=this.contains(e);return n!==t&&(n?this.remove(e):this.add(e),this._change()),this},contains:function(e){return!!this.cls._map[e]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),n.prototype.toString=function(){var e;if(this.clsValue)return this.clsValue;e="";for(var t=0;t<this.cls.length;t++)t>0&&(e+=" "),e+=this.prefix+this.cls[t];return e},n}),r(ve,[u],function(e){var t={},n;return{add:function(r){var i=r.parent();if(i){if(!i._layout||i._layout.isNative())return;t[i._id]||(t[i._id]=i),n||(n=!0,e.requestAnimationFrame(function(){var e,r;n=!1;for(e in t)r=t[e],r.state.get("rendered")&&r.reflow();t={}},document.body))}},remove:function(e){t[e._id]&&delete t[e._id]}}}),r(ye,[se,m,le,de,he,pe,g,me,ge,ve],function(e,t,n,r,i,o,a,s,l,c){function u(e){return e._eventDispatcher||(e._eventDispatcher=new n({scope:e,toggleEvent:function(t,r){r&&n.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e.state.get("rendered")&&d(e))}})),e._eventDispatcher}function d(e){function t(t){var n=e.getParentCtrl(t.target);n&&n.fire(t.type,t)}function n(){var e=c._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),c._lastHoverCtrl=null)}function r(t){var n=e.getParentCtrl(t.target),r=c._lastHoverCtrl,i=0,o,a,s;if(n!==r){if(c._lastHoverCtrl=n,a=n.parents().toArray().reverse(),a.push(n),r){for(s=r.parents().toArray().reverse(),s.push(r),i=0;i<s.length&&a[i]===s[i];i++);for(o=s.length-1;o>=i;o--)r=s[o],r.fire("mouseleave",{target:r.getEl()})}for(o=i;o<a.length;o++)n=a[o],n.fire("mouseenter",{target:n.getEl()})}}function i(t){t.preventDefault(),"mousewheel"==t.type?(t.deltaY=-1/40*t.wheelDelta,t.wheelDeltaX&&(t.deltaX=-1/40*t.wheelDeltaX)):(t.deltaX=0,t.deltaY=t.detail),t=e.fire("wheel",t)}var o,s,l,c,u,d;if(u=e._nativeEvents){for(l=e.parents().toArray(),l.unshift(e),o=0,s=l.length;!c&&s>o;o++)c=l[o]._eventsRoot;for(c||(c=l[l.length-1]||e),e._eventsRoot=c,s=o,o=0;s>o;o++)l[o]._eventsRoot=c;var p=c._delegates;p||(p=c._delegates={});for(d in u){if(!u)return!1;"wheel"!==d||h?("mouseenter"===d||"mouseleave"===d?c._hasMouseEnter||(a(c.getEl()).on("mouseleave",n).on("mouseover",r),c._hasMouseEnter=1):p[d]||(a(c.getEl()).on(d,t),p[d]=!0),u[d]=!1):f?a(e.getEl()).on("mousewheel",i):a(e.getEl()).on("DOMMouseScroll",i)}}}var f="onmousewheel"in document,h=!1,p="mce-",m,g=0,v={Statics:{classPrefix:p},isRtl:function(){return m.rtl},classPrefix:p,init:function(e){function n(e){var t;for(e=e.split(" "),t=0;t<e.length;t++)i.classes.add(e[t])}var i=this,o,c;i.settings=e=t.extend({},i.Defaults,e),i._id=e.id||"mceu_"+g++,i._aria={role:e.role},i._elmCache={},i.$=a,i.state=new r({visible:!0,active:!1,disabled:!1,value:""}),i.data=new r(e.data),i.classes=new l(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,o=e.classes,o&&(i.Defaults&&(c=i.Defaults.classes,c&&o!=c&&n(c)),n(o)),t.each("title text name visible disabled active value".split(" "),function(t){t in e&&i[t](e[t])}),i.on("click",function(){return i.disabled()?!1:void 0}),i.settings=e,i.borderBox=s.parseBox(e.border),i.paddingBox=s.parseBox(e.padding),i.marginBox=s.parseBox(e.margin),e.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},initLayoutRect:function(){var e=this,t=e.settings,n,r,i=e.getEl(),a,l,c,u,d,f,h,p;n=e.borderBox=e.borderBox||s.measureBox(i,"border"),e.paddingBox=e.paddingBox||s.measureBox(i,"padding"),e.marginBox=e.marginBox||s.measureBox(i,"margin"),p=o.getSize(i),f=t.minWidth,h=t.minHeight,c=f||p.width,u=h||p.height,a=t.width,l=t.height,d=t.autoResize,d="undefined"!=typeof d?d:!a&&!l,a=a||c,l=l||u;var m=n.left+n.right,g=n.top+n.bottom,v=t.maxWidth||65535,y=t.maxHeight||65535;return e._layoutRect=r={x:t.x||0,y:t.y||0,w:a,h:l,deltaW:m,deltaH:g,contentW:a-m,contentH:l-g,innerW:a-m,innerH:l-g,startMinWidth:f||0,startMinHeight:h||0,minW:Math.min(c,v),minH:Math.min(u,y),maxW:v,maxH:y,autoResize:d,scrollW:0},e._lastLayoutRect={},r},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,r.x===n.x&&r.y===n.y&&r.w===n.w&&r.h===n.h||(l=m.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o,a,s,l,c,u;c=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,i=e._layoutRect,l=e._lastRepaintRect||{},o=e.borderBox,a=o.left+o.right,s=o.top+o.bottom,i.x!==l.x&&(t.left=c(i.x)+"px",l.x=i.x),i.y!==l.y&&(t.top=c(i.y)+"px",l.y=i.y),i.w!==l.w&&(u=c(i.w-a),t.width=(u>=0?u:0)+"px",l.w=i.w),i.h!==l.h&&(u=c(i.h-s),t.height=(u>=0?u:0)+"px",l.h=i.h),e._hasBody&&i.innerW!==l.innerW&&(u=c(i.innerW),r=e.getEl("body"),r&&(n=r.style,n.width=(u>=0?u:0)+"px"),l.innerW=i.innerW),e._hasBody&&i.innerH!==l.innerH&&(u=c(i.innerH),r=r||e.getEl("body"),r&&(n=n||r.style,n.height=(u>=0?u:0)+"px"),l.innerH=i.innerH),e._lastRepaintRect=l,e.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,o.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){function n(e){var t,n;return"string"!=typeof e?e:function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t?t.call(n,i):(i.action=e,void this.fire("execute",i))}}var r=this;return u(r).on(e,n(t)),r},off:function(e,t){return u(this).off(e,t),this},fire:function(e,t,n){var r=this;if(t=t||{},t.control||(t.control=r),t=u(r).fire(e,t),n!==!1&&r.parent)for(var i=r.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return u(this).has(e)},parents:function(e){var t=this,n,r=new i;for(n=t.parent();n;n=n.parent())r.add(n);return e&&(r=r.filter(e)),r},parentsAndSelf:function(e){return new i(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},innerHtml:function(e){return this.$el.html(e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=a("#"+t)[0]),this._elmCache[t]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return m.translate?m.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r,i;if(e.items){var o=e.items().toArray();for(i=o.length;i--;)o[i].remove()}n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t);
-}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&a(t).off();var s=e.getRoot().controlIdLookup;return s&&delete s[e._id],t&&t.parentNode&&t.parentNode.removeChild(t),e.state.set("rendered",!1),e.state.destroy(),e.fire("remove"),e},renderBefore:function(e){return a(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return a(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var e=this,t=e.settings,n,r,i,o,s;e.$el=a(e.getEl()),e.state.set("rendered",!0);for(o in t)0===o.indexOf("on")&&e.on(o.substr(2),t[o]);if(e._eventsRoot){for(i=e.parent();!s&&i;i=i.parent())s=i._eventsRoot;if(s)for(o in s._nativeEvents)e._nativeEvents[o]=!0}d(e),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e.settings.border&&(r=e.borderBox,e.$el.css({"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var u in e._aria)e.aria(u,e._aria[u]);e.state.get("visible")===!1&&(e.getEl().style.display="none"),e.bindStates(),e.state.on("change:visible",function(t){var n=t.value,r;e.state.get("rendered")&&(e.getEl().style.display=n===!1?"none":"",e.getEl().getBoundingClientRect()),r=e.parent(),r&&(r._lastRect=null),e.fire(n?"show":"hide"),c.add(e)}),e.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){c.remove(this);var e=this.parent();return e._layout&&!e._layout.isNative()&&e.reflow(),this}};return t.each("text title visible disabled active value".split(" "),function(e){v[e]=function(t){return 0===arguments.length?this.state.get(e):("undefined"!=typeof t&&this.state.set(e,t),this)}}),m=e.extend(v)}),r(be,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(Ce,[],function(){return function(e){function t(e){return e&&1===e.nodeType}function n(e){return e=e||C,t(e)?e.getAttribute("role"):null}function r(e){for(var t,r=e||C;r=r.parentNode;)if(t=n(r))return t}function i(e){var n=C;return t(n)?n.getAttribute("aria-"+e):void 0}function o(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t||"SELECT"==t}function a(e){return o(e)&&!e.hidden?!0:!!/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(n(e))}function s(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){a(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||b.getEl()),n}function l(e){var t,n;e=e||x,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function c(e){var t=l(e),n=s(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?u(t.lastAriaIndex,n):u(0,n)}function u(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function d(e,t){var n=-1,r=l();t=t||s(r.getEl());for(var i=0;i<t.length;i++)t[i]===C&&(n=i);n+=e,r.lastAriaIndex=u(n,t)}function f(){var e=r();"tablist"==e?d(-1,s(C.parentNode)):x.parent().submenu?v():d(-1)}function h(){var e=n(),t=r();"tablist"==t?d(1,s(C.parentNode)):"menuitem"==e&&"menu"==t&&i("haspopup")?y():d(1)}function p(){d(-1)}function m(){var e=n(),t=r();"menuitem"==e&&"menubar"==t?y():"button"==e&&i("haspopup")?y({key:"down"}):d(1)}function g(e){var t=r();if("tablist"==t){var n=s(x.getEl("body"))[0];n&&n.focus()}else d(e.shiftKey?-1:1)}function v(){x.fire("cancel")}function y(e){e=e||{},x.fire("click",{target:C,aria:e})}var b=e.root,C,x;try{C=document.activeElement}catch(w){C=document.body}return x=b.getParentCtrl(C),b.on("keydown",function(e){function t(e,t){o(C)||"slider"!==n(C)&&t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,f);break;case 39:t(e,h);break;case 38:t(e,p);break;case 40:t(e,m);break;case 27:v();break;case 14:case 13:case 32:t(e,y);break;case 9:g(e)!==!1&&e.preventDefault()}}),b.on("focusin",function(e){C=e.target,x=e.control}),{focusFirst:c}}}),r(xe,[ye,he,fe,be,Ce,m,g,ge,ve],function(e,t,n,r,i,o,a,s,l){var c={};return e.extend({init:function(e){var n=this;n._super(e),e=n.settings,e.fixed&&n.state.set("fixed",!0),n._items=new t,n.isRtl()&&n.classes.add("rtl"),n.bodyClasses=new s(function(){n.state.get("rendered")&&(n.getEl("body").className=this.toString())}),n.bodyClasses.prefix=n.classPrefix,n.classes.add("container"),n.bodyClasses.add("container-body"),e.containerCls&&n.classes.add(e.containerCls),n._layout=r.create((e.layout||"")+"layout"),n.settings.items?n.add(n.settings.items):n.add(n.render()),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=c[e]=c[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r;t.parent(e),t.state.get("rendered")||(r=e.getEl("body"),r.hasChildNodes()&&n<=r.childNodes.length-1?a(r.childNodes[n]).before(t.renderHtml()):a(r).append(t.renderHtml()),t.postRender(),l.add(t))}),e._layout.applyClasses(e.items().filter(":visible")),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e.state.set("rendered",!0),e.settings.style&&e.$el.css(e.settings.style),e.settings.border&&(t=e.borderBox,e.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(l.remove(this),this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(we,[g],function(e){function t(e){var t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}function n(e){var t,n;if(e.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<t.length;n++)e[t[n]]=e.changedTouches[0][t[n]]}return function(r,i){function o(){return s.getElementById(i.handle||r)}var a,s=i.document||document,l,c,u,d,f,h;i=i||{},c=function(r){var c=t(s),p,m;n(r),r.preventDefault(),l=r.button,p=o(),f=r.screenX,h=r.screenY,m=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,a=e("<div>").css({position:"absolute",top:0,left:0,width:c.width,height:c.height,zIndex:2147483647,opacity:1e-4,cursor:m}).appendTo(s.body),e(s).on("mousemove touchmove",d).on("mouseup touchend",u),i.start(r)},d=function(e){return n(e),e.button!==l?u(e):(e.deltaX=e.screenX-f,e.deltaY=e.screenY-h,e.preventDefault(),void i.drag(e))},u=function(t){n(t),e(s).off("mousemove touchmove",d).off("mouseup touchend",u),a.remove(),i.stop&&i.stop(t)},this.destroy=function(){e(o()).off()},e(o()).on("mousedown touchstart",c)}}),r(Ne,[g,we],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,h,p,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),e(i.getEl("absend")).css(y,i.layoutRect()[l]-1),!c)return void e(f).css("display","none");e(f).css("display","block"),d=i.getEl("body"),h=i.getEl("scroll"+t+"t"),p=d["client"+s]-2*o,p-=n&&r?f["client"+u]:0,m=d["scroll"+s],g=p/m,v={},v[y]=d["offset"+a]+o,v[b]=p,e(f).css(v),v={},v[y]=d["scroll"+a]*g,v[b]=p*g,e(h).css(v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;e(i.getEl()).append('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>'),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e("#"+u).addClass(d+"active")},drag:function(e){var t,u,d,f,h=i.layoutRect();u=h.contentW>h.innerW,d=h.contentH>h.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e("#"+u).removeClass(d+"active")}})}i.classes.add("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e(i.getEl("body")).on("scroll",n)),n())}}}),r(Ee,[xe,Ne],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(_e,[pe],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,h;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t.state.get("fixed")&&"static"==e.getRuntimeStyle(document.body,"position")&&(a-=f.x,s-=f.y),i=t.getEl(),h=e.getSize(i),l=h.width,c=h.height,h=e.getSize(n),u=h.width,d=h.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this.state.get("fixed")){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i.state.get("rendered")?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Se,[pe],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(ke,[Ee,_e,Se,pe,g,u],function(e,t,n,r,i,o){function a(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function s(e){for(var t=v.length;t--;){var n=v[t],r=n.getParentCtrl(e.target);if(n.settings.autohide){if(r&&(a(r,n)||n.parent()===r))continue;e=n.fire("autohide",{target:e.target}),e.isDefaultPrevented()||n.hide()}}}function l(){p||(p=function(e){2!=e.button&&s(e)},i(document).on("click touchstart",p))}function c(){m||(m=function(){var e;for(e=v.length;e--;)d(v[e])},i(window).on("scroll",m))}function u(){if(!g){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;g=function(){document.all&&t==e.clientWidth&&n==e.clientHeight||(t=e.clientWidth,n=e.clientHeight,C.hideAll())},i(window).on("resize",g)}}function d(e){function t(t,n){for(var r,i=0;i<v.length;i++)if(v[i]!=e)for(r=v[i].parent();r&&(r=r.parent());)r==e&&v[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e.state.get("fixed")?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}function f(e,t){var n,r=C.zIndex||65535,o;if(e)y.push(t);else for(n=y.length;n--;)y[n]===t&&y.splice(n,1);if(y.length)for(n=0;n<y.length;n++)y[n].modal&&(r++,o=y[n]),y[n].getEl().style.zIndex=r,y[n].zIndex=r,r++;var a=i("#"+t.classPrefix+"modal-block",t.getContainerElm())[0];o?i(a).css("z-index",o.zIndex-1):a&&(a.parentNode.removeChild(a),b=!1),C.currentZIndex=r}function h(e){var t;for(t=v.length;t--;)v[t]===e&&v.splice(t,1);for(t=y.length;t--;)y[t]===e&&y.splice(t,1)}var p,m,g,v=[],y=[],b,C=e.extend({Mixins:[t,n],init:function(e){var t=this;t._super(e),t._eventsRoot=t,t.classes.add("floatpanel"),e.autohide&&(l(),u(),v.push(t)),e.autofix&&(c(),t.on("move",function(){d(this)})),t.on("postrender show",function(e){if(e.control==t){var n,r=t.classPrefix;t.modal&&!b&&(n=i("#"+r+"modal-block",t.getContainerElm()),n[0]||(n=i('<div id="'+r+'modal-block" class="'+r+"reset "+r+'fade"></div>').appendTo(t.getContainerElm())),o.setTimeout(function(){n.addClass(r+"in"),i(t.getEl()).addClass(r+"in")}),b=!0),f(!0,t)}}),t.on("show",function(){t.parents().each(function(e){return e.state.get("fixed")?(t.fixed(!0),!1):void 0})}),e.popover&&(t._preBodyHtml='<div class="'+t.classPrefix+'arrow"></div>',t.classes.add("popover").add("bottom").add(t.isRtl()?"end":"start")),t.aria("label",e.ariaLabel),t.aria("labelledby",t._id),t.aria("describedby",t.describedBy||t._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!=e){if(t.state.get("rendered")){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e=this,t,n=e._super();for(t=v.length;t--&&v[t]!==e;);return-1===t&&v.push(e),n},hide:function(){return h(this),f(!1,this),this._super()},hideAll:function(){C.hideAll()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||(e.remove(),f(!1,e)),e},remove:function(){h(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return C.hideAll=function(){for(var e=v.length;e--;){var t=v[e];t&&t.settings.autohide&&(t.hide(),v.splice(e,1))}},C}),r(Te,[ke,Ee,pe,g,we,me,d,u],function(e,t,n,r,i,o,a,s){function l(e){var t="width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0",n=r("meta[name=viewport]")[0],i;a.overrideViewPort!==!1&&(n||(n=document.createElement("meta"),n.setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),i=n.getAttribute("content"),i&&"undefined"!=typeof f&&(f=i),n.setAttribute("content",e?t:f))}function c(e){for(var t=0;t<d.length;t++)if(d[t]._fullscreen)return;r([document.documentElement,document.body]).removeClass(e+"fullscreen")}function u(){function e(){var e,t=n.getWindowSize(),r;for(e=0;e<d.length;e++)r=d[e].layoutRect(),d[e].moveTo(d[e].settings.x||Math.max(0,t.w/2-r.w/2),d[e].settings.y||Math.max(0,t.h/2-r.h/2))}if(!a.desktop){var t={w:window.innerWidth,h:window.innerHeight};s.setInterval(function(){var e=window.innerWidth,n=window.innerHeight;t.w==e&&t.h==n||(t={w:e,h:n},r(window).trigger("resize"))},100)}r(window).on("resize",e)}var d=[],f="",h=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var r=this;r._super(e),r.isRtl()&&r.classes.add("rtl"),r.classes.add("window"),r.bodyClasses.add("window-body"),r.state.set("fixed",!0),e.buttons&&(r.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:r.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),r.statusbar.classes.add("foot"),r.statusbar.parent(r)),r.on("click",function(e){var t=r.classPrefix+"close";(n.hasClass(e.target,t)||n.hasClass(e.target.parentNode,t))&&r.close()}),r.on("cancel",function(){r.close()}),r.aria("describedby",r.describedBy||r._id+"-none"),r.aria("label",e.title),r._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=e.settings.x||Math.max(0,a.w/2-t.w/2),t.y=e.settings.y||Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><div id="'+n+'-dragh" class="'+r+'dragh"></div><button type="button" class="'+r+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.bodyClasses+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,i=document.documentElement,a,l=t.classPrefix,c;if(e!=t._fullscreen)if(r(window).on("resize",function(){var e;if(t._fullscreen)if(a)t._timer||(t._timer=s.setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(a=!0)}}),c=t.layoutRect(),t._fullscreen=e,e){t._initial={x:c.x,y:c.y,w:c.w,h:c.h},t.borderBox=o.parseBox("0"),t.getEl("head").style.display="none",c.deltaH-=c.headerH+2,r([i,document.body]).addClass(l+"fullscreen"),t.classes.add("fullscreen");var u=n.getWindowSize();t.moveTo(0,0).resizeTo(u.w,u.h)}else t.borderBox=o.parseBox(t.settings.border),t.getEl("head").style.display="",c.deltaH+=c.headerH,r([i,document.body]).removeClass(l+"fullscreen"),t.classes.remove("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.classes.add("in"),e.fire("open")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new i(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()}),d.push(e),l(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t;for(e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),t=d.length;t--;)d[t]===e&&d.splice(t,1);l(d.length>0),c(e.classPrefix)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return u(),h}),r(Re,[Te],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){function r(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),o(t)}}}var i,o=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:i=[r("Ok",!0,!0),r("Cancel",!1)];break;case t.YES_NO:case t.YES_NO_CANCEL:i=[r("Yes",1,!0),r("No",0)],n.buttons==t.YES_NO_CANCEL&&i.push(r("Cancel",-1));break;default:i=[r("Ok",!0,!0)]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:i,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){o(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(Ae,[Te,Re],function(e,t){return function(n){function r(){return s.length?s[s.length-1]:void 0}function i(e){n.fire("OpenWindow",{win:e})}function o(e){n.fire("CloseWindow",{win:e})}var a=this,s=[];a.windows=s,n.on("remove",function(){for(var e=s.length;e--;)s[e].close()}),a.open=function(t,r){var a;return n.editorManager.setActive(n),t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body,data:t.data,callbacks:t.commands}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){a.find("form")[0].submit()}},{text:"Cancel",onclick:function(){a.close()}}]),a=new e(t),s.push(a),a.on("close",function(){for(var e=s.length;e--;)s[e]===a&&s.splice(e,1);s.length||n.focus(),o(a)}),t.data&&a.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),a.features=t||{},a.params=r||{},1===s.length&&n.nodeChanged(),a=a.renderTo().reflow(),i(a),a},a.alert=function(e,r,a){var s;s=t.alert(e,function(){r?r.call(a||this):n.focus()}),s.on("close",function(){o(s)}),i(s)},a.confirm=function(e,n,r){var a;a=t.confirm(e,function(e){n.call(r||this,e)}),a.on("close",function(){o(a)}),i(a)},a.close=function(){r()&&r().close()},a.getParams=function(){return r()?r().params:null},a.setParams=function(e){r()&&(r().params=e)},a.getWindows=function(){return s}}}),r(Be,[ye,_e],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e.state.get("text"))+"</div></div>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.innerHTML=e.encode(t.value)}),e._super()},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(De,[ye,Be],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.classes.toggle("tooltip-n","bc-tc"==i),r.classes.toggle("tooltip-nw","bc-tl"==i),r.classes.toggle("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){function e(e){n.aria("disabled",e),n.classes.toggle("disabled",e)}function t(e){n.aria("pressed",e),n.classes.toggle("active",e)}var n=this;return n.state.on("change:disabled",function(t){e(t.value)}),n.state.on("change:active",function(e){t(e.value)}),n.state.get("disabled")&&e(!0),n.state.get("active")&&t(!0),n._super()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(Le,[De],function(e){return e.extend({Defaults:{value:0},init:function(e){var t=this;t._super(e),t.classes.add("progress"),t.settings.filter||(t.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this,t=e._id,n=this.classPrefix;return'<div id="'+t+'" class="'+e.classes+'"><div class="'+n+'bar-container"><div class="'+n+'bar"></div></div><div class="'+n+'text">0%</div></div>'},postRender:function(){var e=this;return e._super(),e.value(e.settings.value),e},bindStates:function(){function e(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}var t=this;return t.state.on("change:value",function(t){e(t.value)}),e(t.state.get("value")),t._super()}})}),r(Me,[ye,_e,Le,u],function(e,t,n,r){return e.extend({Mixins:[t],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||e.timeout>0)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new n),t.on("click",function(e){-1!=e.target.className.indexOf(t.classPrefix+"close")&&t.close()})},renderHtml:function(){var e=this,t=e.classPrefix,n="",r="",i="",o="";return e.icon&&(n='<i class="'+t+"ico "+t+"i-"+e.icon+'"></i>'),e.color&&(o=' style="background-color: '+e.color+'"'),e.closeButton&&(r='<button type="button" class="'+t+'close" aria-hidden="true">\xd7</button>'),e.progressBar&&(i=e.progressBar.renderHtml()),'<div id="'+e._id+'" class="'+e.classes+'"'+o+' role="presentation">'+n+'<div class="'+t+'notification-inner">'+e.state.get("text")+"</div>"+i+r+"</div>"},postRender:function(){var e=this;return r.setTimeout(function(){e.$el.addClass(e.classPrefix+"in")}),e._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().childNodes[1].innerHTML=t.value}),e.progressBar&&e.progressBar.bindStates(),e._super()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||e.remove(),e},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Pe,[Me,u],function(e,t){return function(n){function r(){return l.length?l[l.length-1]:void 0}function i(){t.requestAnimationFrame(function(){o(),a()})}function o(){for(var e=0;e<l.length;e++)l[e].moveTo(0,0)}function a(){if(l.length>0){var e=l.slice(0,1)[0],t=n.inline?n.getElement():n.getContentAreaContainer();if(e.moveRel(t,"tc-tc"),l.length>1)for(var r=1;r<l.length;r++)l[r].moveRel(l[r-1].getEl(),"bc-tc")}}var s=this,l=[];s.notifications=l,n.on("remove",function(){for(var e=l.length;e--;)l[e].close()}),n.on("ResizeEditor",a),n.on("ResizeWindow",i),s.open=function(t){var r;return n.editorManager.setActive(n),r=new e(t),l.push(r),t.timeout>0&&(r.timer=setTimeout(function(){r.close()},t.timeout)),r.on("close",function(){var e=l.length;for(r.timer&&n.getWin().clearTimeout(r.timer);e--;)l[e]===r&&l.splice(e,1);a()}),r.renderTo(),a(),r},s.close=function(){r()&&r().close()},s.getNotifications=function(){return l},n.on("SkinLoaded",function(){var e=n.settings.service_message;e&&n.notificationManager.open({text:e,type:"warning",timeout:0,icon:""})})}}),r(He,[w],function(e){function t(t,n,r){for(var i=[];n&&n!=t;n=n.parentNode)i.push(e.nodeIndex(n,r));return i}function n(e,t){var n,r,i;for(r=e,n=t.length-1;n>=0;n--){if(i=r.childNodes,t[n]>i.length-1)return null;r=i[t[n]]}return r}return{create:t,resolve:n}}),r(Oe,[I,T,y,He,A,C,d,m,u,k,$,ne],function(e,t,n,r,i,o,a,s,l,c,u,d){return function(f){function h(e,t){try{f.getDoc().execCommand(e,!1,t)}catch(n){}}function p(){var e=f.getDoc().documentMode;return e?e:6}function m(e){return e.isDefaultPrevented()}function g(e){var t,n;e.dataTransfer&&(f.selection.isCollapsed()&&"IMG"==e.target.tagName&&re.select(e.target),t=f.selection.getContent(),t.length>0&&(n=ue+escape(f.id)+","+escape(t),e.dataTransfer.setData(de,n)))}function v(e){var t;return e.dataTransfer&&(t=e.dataTransfer.getData(de),t&&t.indexOf(ue)>=0)?(t=t.substr(ue.length).split(","),{id:unescape(t[0]),html:unescape(t[1])}):null}function y(e){f.queryCommandSupported("mceInsertClipboardContent")?f.execCommand("mceInsertClipboardContent",!1,{content:e}):f.execCommand("mceInsertContent",!1,e)}function b(){function i(e){var t=C.schema.getBlockElements(),n=f.getBody();if("BR"!=e.nodeName)return!1;for(;e!=n&&!t[e.nodeName];e=e.parentNode)if(e.nextSibling)return!1;return!0}function o(e,t){var n;for(n=e.nextSibling;n&&n!=t;n=n.nextSibling)if((3!=n.nodeType||0!==Z.trim(n.data).length)&&n!==t)return!1;return n===t}function a(e,t,r){var o,a,s;for(s=C.schema.getNonEmptyElements(),o=new n(r||e,e);a=o[t?"next":"prev"]();){if(s[a.nodeName]&&!i(a))return a;if(3==a.nodeType&&a.data.length>0)return a}}function c(e){var n,r,i,o,s;if(!e.collapsed&&(n=C.getParent(t.getNode(e.startContainer,e.startOffset),C.isBlock),r=C.getParent(t.getNode(e.endContainer,e.endOffset),C.isBlock),s=f.schema.getTextBlockElements(),n!=r&&s[n.nodeName]&&s[r.nodeName]&&"false"!==C.getContentEditable(n)&&"false"!==C.getContentEditable(r)))return e.deleteContents(),
-i=a(n,!1),o=a(r,!0),C.isEmpty(r)||Z(n).append(r.childNodes),Z(r).remove(),i?1==i.nodeType?"BR"==i.nodeName?(e.setStartBefore(i),e.setEndBefore(i)):(e.setStartAfter(i),e.setEndAfter(i)):(e.setStart(i,i.data.length),e.setEnd(i,i.data.length)):o&&(1==o.nodeType?(e.setStartBefore(o),e.setEndBefore(o)):(e.setStart(o,0),e.setEnd(o,0))),x.setRng(e),!0}function u(e,n){var r,i,s,l,c,u;if(!e.collapsed)return e;if(c=e.startContainer,u=e.startOffset,3==c.nodeType)if(n){if(u<c.data.length)return e}else if(u>0)return e;if(r=t.getNode(e.startContainer,e.startOffset),s=C.getParent(r,C.isBlock),i=a(f.getBody(),n,r),l=C.getParent(i,C.isBlock),!r||!i)return e;if(l&&s!=l)if(n){if(!o(s,l))return e;1==r.nodeType?"BR"==r.nodeName?e.setStartBefore(r):e.setStartAfter(r):e.setStart(r,r.data.length),1==i.nodeType?e.setEnd(i,0):e.setEndBefore(i)}else{if(!o(l,s))return e;1==i.nodeType?"BR"==i.nodeName?e.setStartBefore(i):e.setStartAfter(i):e.setStart(i,i.data.length),1==r.nodeType?e.setEnd(r,0):e.setEndBefore(r)}return e}function d(e){var t=x.getRng();return t=u(t,e),c(t)?!0:void 0}function h(e,t){function n(e,n){return m=Z(n).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),l=e.cloneNode(!1),m=s.map(m,function(e){return e=e.cloneNode(!1),l.hasChildNodes()?(e.appendChild(l.firstChild),l.appendChild(e)):l.appendChild(e),l.appendChild(e),e}),m.length?(p=C.create("br"),m[0].appendChild(p),C.replace(l,e),t.setStartBefore(p),t.setEndBefore(p),f.selection.setRng(t),p):null}function i(e){return e&&f.schema.getTextBlockElements()[e.tagName]}var o,a,l,c,u,d,h,p,m;if(t.collapsed&&(d=t.startContainer,h=t.startOffset,a=C.getParent(d,C.isBlock),i(a)))if(1==d.nodeType){if(d=d.childNodes[h],d&&"BR"!=d.tagName)return;if(u=e?a.nextSibling:a.previousSibling,C.isEmpty(a)&&i(u)&&C.isEmpty(u)&&n(a,d))return C.remove(u),!0}else if(3==d.nodeType){if(o=r.create(a,d),c=a.cloneNode(!0),d=r.resolve(c,o),e){if(h>=d.data.length)return;d.deleteData(h,1)}else{if(0>=h)return;d.deleteData(h-1,1)}if(C.isEmpty(c))return n(a,d)}}function p(e){var t,n,r;d(e)||(s.each(f.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&f.dom.setAttrib(e,"style",f.dom.getAttrib(e,"style"))}),t=new w(function(){}),t.observe(f.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),f.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null),n=f.selection.getRng(),r=n.startContainer.parentNode,s.each(t.takeRecords(),function(e){if(C.isChildOf(e.target,f.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}s.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),C.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),f.selection.setRng(n))}})}}),t.disconnect(),s.each(f.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")}))}var b=f.getDoc(),C=f.dom,x=f.selection,w=window.MutationObserver,N,E;w||(N=!0,w=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),f.on("keydown",function(e){var t=e.keyCode==te,n=e.ctrlKey||e.metaKey;if(!m(e)&&(t||e.keyCode==ee)){var r=f.selection.getRng(),i=r.startContainer,o=r.startOffset;if(t&&e.shiftKey)return;if(h(t,r))return void e.preventDefault();if(!n&&r.collapsed&&3==i.nodeType&&(t?o<i.data.length:o>0))return;e.preventDefault(),n&&f.selection.getSel().modify("extend",t?"forward":"backward",e.metaKey?"lineboundary":"word"),p(t)}}),f.on("keypress",function(t){if(!m(t)&&!x.isCollapsed()&&t.charCode>31&&!e.metaKeyPressed(t)){var n,r,i,o,a,s;n=f.selection.getRng(),s=String.fromCharCode(t.charCode),t.preventDefault(),r=Z(n.startContainer).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),p(!0),r=r.filter(function(e,t){return!Z.contains(f.getBody(),t)}),r.length?(i=C.createFragment(),r.each(function(e,t){t=t.cloneNode(!1),i.hasChildNodes()?(t.appendChild(i.firstChild),i.appendChild(t)):(a=t,i.appendChild(t)),i.appendChild(t)}),a.appendChild(f.getDoc().createTextNode(s)),o=C.getParent(n.startContainer,C.isBlock),C.isEmpty(o)?Z(o).empty().append(i):n.insertNode(i),n.setStart(a.firstChild,1),n.setEnd(a.firstChild,1),f.selection.setRng(n)):f.selection.setContent(s)}}),f.addCommand("Delete",function(){p()}),f.addCommand("ForwardDelete",function(){p(!0)}),N||(f.on("dragstart",function(e){E=x.getRng(),g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);n&&(e.preventDefault(),l.setEditorTimeout(f,function(){var r=t.getCaretRangeFromPoint(e.x,e.y,b);E&&(x.setRng(E),E=null),p(),x.setRng(r),y(n.html)}))}}),f.on("cut",function(e){m(e)||!e.clipboardData||f.selection.isCollapsed()||(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",f.selection.getContent()),e.clipboardData.setData("text/plain",f.selection.getContent({format:"text"})),l.setEditorTimeout(f,function(){p(!0)}))}))}function C(){function e(e){var t=ne.create("body"),n=e.cloneContents();return t.appendChild(n),re.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(f.getBody()),t.compareRanges(n,r)}var i=e(n),o=ne.createRng();o.selectNode(f.getBody());var a=e(o);return i===a}f.on("keydown",function(e){var t=e.keyCode,r,i;if(!m(e)&&(t==te||t==ee)){if(r=f.selection.isCollapsed(),i=f.getBody(),r&&!ne.isEmpty(i))return;if(!r&&!n(f.selection.getRng()))return;e.preventDefault(),f.setContent(""),i.firstChild&&ne.isBlock(i.firstChild)?f.selection.setCursorLocation(i.firstChild,0):f.selection.setCursorLocation(i,0),f.nodeChanged()}})}function x(){f.shortcuts.add("meta+a",null,"SelectAll")}function w(){f.settings.content_editable||ne.bind(f.getDoc(),"mousedown mouseup",function(e){var t;if(e.target==f.getDoc().documentElement)if(t=re.getRng(),f.getBody().focus(),"mousedown"==e.type){if(c.isCaretContainer(t.startContainer))return;re.placeCaretAt(e.clientX,e.clientY)}else re.setRng(t)})}function N(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee){if(!f.getBody().getElementsByTagName("hr").length)return;if(re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return ne.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(ne.remove(n),e.preventDefault())}}})}function E(){window.Range.prototype.getClientRects||f.on("mousedown",function(e){if(!m(e)&&"HTML"===e.target.nodeName){var t=f.getBody();t.blur(),l.setEditorTimeout(f,function(){t.focus()})}})}function _(){f.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==ne.getContentEditableParent(t)&&(e.preventDefault(),re.getSel().setBaseAndExtent(t,0,t,1),f.nodeChanged()),"A"==t.nodeName&&ne.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),re.select(t))})}function S(){function e(){var e=ne.getAttribs(re.getStart().cloneNode(!1));return function(){var t=re.getStart();t!==f.getBody()&&(ne.setAttrib(t,"style",null),Q(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!re.isCollapsed()&&ne.getParent(re.getStart(),ne.isBlock)!=ne.getParent(re.getEnd(),ne.isBlock)}f.on("keypress",function(n){var r;return m(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),f.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),ne.bind(f.getDoc(),"cut",function(n){var r;!m(n)&&t()&&(r=e(),l.setEditorTimeout(f,function(){r()}))})}function k(){document.body.setAttribute("role","application")}function T(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee&&re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function R(){p()>7||(h("RespectVisibilityInDesign",!0),f.contentStyles.push(".mceHideBrInPre pre br {display: none}"),ne.addClass(f.getBody(),"mceHideBrInPre"),oe.addNodeFilter("pre",function(e){for(var t=e.length,n,r,o,a;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)o=n[r],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new i("#text",3),o,!0).value="\n"}),ae.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function A(){ne.bind(f.getBody(),"mouseup",function(){var e,t=re.getNode();"IMG"==t.nodeName&&((e=ne.getStyle(t,"width"))&&(ne.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"width","")),(e=ne.getStyle(t,"height"))&&(ne.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"height","")))})}function B(){f.on("keydown",function(t){var n,r,i,o,a;if(!m(t)&&t.keyCode==e.BACKSPACE&&(n=re.getRng(),r=n.startContainer,i=n.startOffset,o=ne.getRoot(),a=r,n.collapsed&&0===i)){for(;a&&a.parentNode&&a.parentNode.firstChild==a&&a.parentNode!=o;)a=a.parentNode;"BLOCKQUOTE"===a.tagName&&(f.formatter.toggle("blockquote",null,a),n=ne.createRng(),n.setStart(r,0),n.setEnd(r,0),re.setRng(n))}})}function D(){function e(){K(),h("StyleWithCSS",!1),h("enableInlineTableEditing",!1),ie.object_resizing||h("enableObjectResizing",!1)}ie.readonly||f.on("BeforeExecCommand MouseDown",e)}function L(){function e(){Q(ne.select("a"),function(e){var t=e.parentNode,n=ne.getRoot();if(t.lastChild===e){for(;t&&!ne.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}ne.add(t,"br",{"data-mce-bogus":1})}})}f.on("SetContent ExecCommand",function(t){"setcontent"!=t.type&&"mceInsertLink"!==t.command||e()})}function M(){ie.forced_root_block&&f.on("init",function(){h("DefaultParagraphSeparator",ie.forced_root_block)})}function P(){f.on("keydown",function(e){var t;m(e)||e.keyCode!=ee||(t=f.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),f.undoManager.beforeChange(),ne.remove(t.item(0)),f.undoManager.add()))})}function H(){var e;p()>=10&&(e="",Q("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),f.contentStyles.push(e+"{padding-right: 1px !important}"))}function O(){p()<9&&(oe.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),ae.addNodeFilter("noscript",function(e){for(var t=e.length,n,r,a;t--;)n=e[t],r=e[t].firstChild,r?r.value=o.decode(r.value):(a=n.attributes.map["data-mce-innertext"],a&&(n.attr("data-mce-innertext",null),r=new i("#text",3),r.value=a,r.raw=!0,n.append(r)))}))}function I(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),ne.unbind(r,"mouseup",n),ne.unbind(r,"mousemove",t),a=o=0}var r=ne.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,ne.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(ne.bind(r,"mouseup",n),ne.bind(r,"mousemove",t),ne.getRoot().focus(),a.select())}})}function F(){f.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||re.normalize()},!0)}function z(){f.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function U(){f.inline||f.on("keydown",function(){document.activeElement==document.body&&f.getWin().focus()})}function W(){f.inline||(f.contentStyles.push("body {min-height: 150px}"),f.on("click",function(e){var t;if("HTML"==e.target.nodeName){if(a.ie>11)return void f.getBody().focus();t=f.selection.getRng(),f.getBody().focus(),f.selection.setRng(t),f.selection.normalize(),f.nodeChanged()}}))}function V(){a.mac&&f.on("keydown",function(t){!e.metaKeyPressed(t)||t.shiftKey||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),f.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","lineboundary"))})}function $(){h("AutoUrlDetect",!1)}function q(){f.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),f.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function j(){f.on("init",function(){f.dom.bind(f.getBody(),"submit",function(e){e.preventDefault()})})}function Y(){oe.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"==e[t].attr("class")&&e[t].remove()})}function X(){f.on("dragstart",function(e){g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);if(n&&n.id!=f.id){e.preventDefault();var r=t.getCaretRangeFromPoint(e.x,e.y,f.getDoc());re.setRng(r),y(n.html)}}})}function K(){var e,t;G()&&(e=f.getBody(),t=e.parentNode,t.removeChild(e),t.appendChild(e),e.focus())}function G(){var e;return se?(e=f.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}function J(){function t(e){var t=new d(e.getBody()),n=e.selection.getRng(),r=u.fromRangeStart(n),i=u.fromRangeEnd(n);return!e.selection.isCollapsed()&&!t.prev(r)&&!t.next(i)}f.on("keypress",function(n){!m(n)&&!re.isCollapsed()&&n.charCode>31&&!e.metaKeyPressed(n)&&t(f)&&(n.preventDefault(),f.setContent(String.fromCharCode(n.charCode)),f.selection.select(f.getBody(),!0),f.selection.collapse(!1),f.nodeChanged())}),f.on("keydown",function(e){var n=e.keyCode;m(e)||n!=te&&n!=ee||t(f)&&(e.preventDefault(),f.setContent(""),f.nodeChanged())})}var Q=s.each,Z=f.$,ee=e.BACKSPACE,te=e.DELETE,ne=f.dom,re=f.selection,ie=f.settings,oe=f.parser,ae=f.serializer,se=a.gecko,le=a.ie,ce=a.webkit,ue="data:text/mce-internal,",de=le?"Text":"URL";return B(),C(),a.windowsPhone||F(),ce&&(J(),b(),w(),_(),M(),j(),T(),Y(),a.iOS?(U(),W(),q()):x()),le&&a.ie<11&&(N(),k(),R(),A(),P(),H(),O(),I()),a.ie>=11&&(W(),T()),a.ie&&(x(),$(),X()),se&&(J(),N(),E(),S(),D(),L(),z(),V(),T()),{refreshContentEditable:K,isHidden:G}}}),r(Ie,[ue,w,m],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=o.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function i(e,t){function n(e){return!e.hidden&&!e.readonly}var i=r(e,t),s;if(e.delegates||(e.delegates={}),!e.delegates[t])if(e.settings.event_root){if(a||(a={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&a){for(t in a)e.dom.unbind(r(e,t));a=null}})),a[t])return;s=function(r){for(var i=r.target,a=e.editorManager.editors,s=a.length;s--;){var l=a[s].getBody();(l===i||o.isChildOf(i,l))&&n(a[s])&&a[s].fire(t,r)}},a[t]=s,o.bind(i,t,s)}else s=function(r){n(e)&&e.fire(t,r)},o.bind(i,t,s),e.delegates[t]=s}var o=t.DOM,a,s={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(r(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e=this,t;if(e.delegates){for(t in e.delegates)e.dom.unbind(r(e,t),t,e.delegates[t]);delete e.delegates}e.inline||(e.getBody().onload=null,e.dom.unbind(e.getWin()),e.dom.unbind(e.getDoc())),e.dom.unbind(e.getBody()),e.dom.unbind(e.getContainer())}};return s=n.extend({},e,s)}),r(Fe,[],function(){function e(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}}function t(e){var t,n;return t=e.getBody(),n=function(t){e.dom.getParents(t.target,"a").length>0&&t.preventDefault()},e.dom.bind(t,"click",n),{unbind:function(){e.dom.unbind(t,"click",n)}}}function n(n,r){n._clickBlocker&&(n._clickBlocker.unbind(),n._clickBlocker=null),r?(n._clickBlocker=t(n),n.selection.controlSelection.hideResizeRect(),n.readonly=!0,n.getBody().contentEditable=!1):(n.readonly=!1,n.getBody().contentEditable=!0,e(n,"StyleWithCSS",!1),e(n,"enableInlineTableEditing",!1),e(n,"enableObjectResizing",!1),n.focus(),n.nodeChanged())}function r(e,t){var r=e.readonly?"readonly":"design";t!=r&&(e.initialized?n(e,"readonly"==t):e.on("init",function(){n(e,"readonly"==t)}),e.fire("SwitchMode",{mode:t}))}return{setMode:r}}),r(ze,[m,d],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122},o=e.makeMap("alt,ctrl,shift,meta,access");return function(a){function s(e){var a,s,l={};n(r(e,"+"),function(e){e in o?l[e]=!0:/^[0-9]{2,}$/.test(e)?l.keyCode=parseInt(e,10):(l.charCode=e.charCodeAt(0),l.keyCode=i[e]||e.toUpperCase().charCodeAt(0))}),a=[l.keyCode];for(s in o)l[s]?a.push(s):l[s]=!1;return l.id=a.join(","),l.access&&(l.alt=!0,t.mac?l.ctrl=!0:l.shift=!0),l.meta&&(t.mac?l.meta=!0:(l.ctrl=!0,l.meta=!1)),l}function l(t,n,i,o){var l;return l=e.map(r(t,">"),s),l[l.length-1]=e.extend(l[l.length-1],{func:i,scope:o||a}),e.extend(l[0],{desc:a.translate(n),subpatterns:l.slice(1)})}function c(e){return e.altKey||e.ctrlKey||e.metaKey}function u(e){return e.keyCode>=112&&e.keyCode<=123}function d(e,t){return t?t.ctrl!=e.ctrlKey||t.meta!=e.metaKey?!1:t.alt!=e.altKey||t.shift!=e.shiftKey?!1:e.keyCode==t.keyCode||e.charCode&&e.charCode==t.charCode?(e.preventDefault(),!0):!1:!1}function f(e){return e.func?e.func.call(e.scope):null}var h=this,p={},m=[];a.on("keyup keypress keydown",function(e){!c(e)&&!u(e)||e.isDefaultPrevented()||(n(p,function(t){return d(e,t)?(m=t.subpatterns.slice(0),"keydown"==e.type&&f(t),!0):void 0}),d(e,m[0])&&(1===m.length&&"keydown"==e.type&&f(m[0]),m.shift()))}),h.add=function(t,i,o,s){var c;return c=o,"string"==typeof o?o=function(){a.execCommand(c,!1,null)}:e.isArray(c)&&(o=function(){a.execCommand(c[0],c[1],c[2])}),n(r(e.trim(t.toLowerCase())),function(e){var t=l(e,i,o,s);p[t.id]=t}),!0},h.remove=function(e){var t=l(e);return p[t.id]?(delete p[t.id],!0):!1}}}),r(Ue,[c,m,z],function(e,t,n){return function(r,i){function o(e){var t,n;return n={"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"},t=n[e.blob().type.toLowerCase()]||"dat",e.id()+"."+t}function a(e,t){return e?e.replace(/\/$/,"")+"/"+t.replace(/^\//,""):t}function s(e){return{id:e.id,blob:e.blob,base64:e.base64,filename:n.constant(o(e))}}function l(e,t,n,r){var s,l;s=new XMLHttpRequest,s.open("POST",i.url),s.withCredentials=i.credentials,s.upload.onprogress=function(e){r(e.loaded/e.total*100)},s.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+s.status)},s.onload=function(){var e;return 200!=s.status?void n("HTTP Error: "+s.status):(e=JSON.parse(s.responseText),e&&"string"==typeof e.location?void t(a(i.basePath,e.location)):void n("Invalid JSON: "+s.responseText))},l=new FormData,l.append("file",e.blob(),o(e)),s.send(l)}function c(){return new e(function(e){e([])})}function u(e,t){return{url:t,blobInfo:e,status:!0}}function d(e,t){return{url:"",blobInfo:e,status:!1,error:t}}function f(e,n){t.each(y[e],function(e){e(n)}),delete y[e]}function h(t,n,i){return r.markPending(t.blobUri()),new e(function(e){var o,a,l=function(){};try{var c=function(){o&&(o.close(),a=l)},h=function(n){c(),r.markUploaded(t.blobUri(),n),f(t.blobUri(),u(t,n)),e(u(t,n))},p=function(){c(),r.removeFailed(t.blobUri()),f(t.blobUri(),d(t,p)),e(d(t,p))};a=function(e){0>e||e>100||(o||(o=i()),o.progressBar.value(e))},n(s(t),h,p,a)}catch(m){e(d(t,m.message))}})}function p(e){return e===l}function m(t){var n=t.blobUri();return new e(function(e){y[n]=y[n]||[],y[n].push(e)})}function g(n,o){return n=t.grep(n,function(e){return!r.isUploaded(e.blobUri())}),e.all(t.map(n,function(e){return r.isPending(e.blobUri())?m(e):h(e,i.handler,o)}))}function v(e,t){return!i.url&&p(i.handler)?c():g(e,t)}var y={};return i=t.extend({credentials:!1,handler:l},i),{upload:v}}}),r(We,[c],function(e){function t(t){return new e(function(e){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="blob",n.onload=function(){200==this.status&&e(this.response)},n.send()})}function n(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}}function r(t){return new e(function(e){var r,i,o;t=n(t);try{r=atob(t.data)}catch(a){return void e(new Blob([]))}for(i=new Uint8Array(r.length),o=0;o<i.length;o++)i[o]=r.charCodeAt(o);e(new Blob([i],{type:t.type}))})}function i(e){return 0===e.indexOf("blob:")?t(e):0===e.indexOf("data:")?r(e):null}function o(t){return new e(function(e){var n=new FileReader;n.onloadend=function(){e(n.result)},n.readAsDataURL(t)})}return{uriToBlob:i,blobToDataUri:o,parseDataUri:n}}),r(Ve,[c,p,z,We,d],function(e,t,n,r,i){var o=0;return function(a,s){function l(l,u){function d(e,t){var n,i;return 0===e.src.indexOf("blob:")?(i=s.getByUri(e.src),void(i&&t({image:e,blobInfo:i}))):(n=r.parseDataUri(e.src).data,i=s.findFirst(function(e){return e.base64()===n}),void(i?t({image:e,blobInfo:i}):r.uriToBlob(e.src).then(function(r){var i="blobid"+o++,a=s.create(i,r,n);s.add(a),t({image:e,blobInfo:a})})))}var f,h;return u||(u=n.constant(!0)),f=t.filter(l.getElementsByTagName("img"),function(e){var t=e.src;return i.fileApi?e.hasAttribute("data-mce-bogus")?!1:e.hasAttribute("data-mce-placeholder")?!1:t&&t!=i.transparentSrc?0===t.indexOf("blob:")?!a.isUploaded(t):0===t.indexOf("data:")?u(e):!1:!1:!1}),h=t.map(f,function(t){var n;return c[t.src]?new e(function(e){c[t.src].then(function(n){e({image:t,blobInfo:n.blobInfo})})}):(n=new e(function(e){d(t,e)}).then(function(e){return delete c[e.image.src],e})["catch"](function(e){return delete c[t.src],e}),c[t.src]=n,n)}),e.all(h)}var c={};return{findAll:l}}}),r($e,[p,z],function(e,t){return function(){function n(e,t,n){return{id:u(e),blob:u(t),base64:u(n),blobUri:u(URL.createObjectURL(t))}}function r(e){i(e.id())||c.push(e)}function i(e){return o(function(t){return t.id()===e})}function o(t){return e.filter(c,t)[0]}function a(e){return o(function(t){return t.blobUri()==e})}function s(t){c=e.filter(c,function(e){return e.blobUri()===t?(URL.revokeObjectURL(e.blobUri()),!1):!0})}function l(){e.each(c,function(e){URL.revokeObjectURL(e.blobUri())}),c=[]}var c=[],u=t.constant;return{create:n,add:r,get:i,getByUri:a,findFirst:o,removeByUri:s,destroy:l}}}),r(qe,[],function(){return function(){function e(e,t){return{status:e,resultUri:t}}function t(e){return e in d}function n(e){var t=d[e];return t?t.resultUri:null}function r(e){return t(e)?d[e].status===c:!1}function i(e){return t(e)?d[e].status===u:!1}function o(t){d[t]=e(c,null)}function a(t,n){d[t]=e(u,n)}function s(e){delete d[e]}function l(){d={}}var c=1,u=2,d={};return{hasBlobUri:t,getResultUri:n,isPending:r,isUploaded:i,markPending:o,markUploaded:a,removeFailed:s,destroy:l}}}),r(je,[p,Ue,Ve,$e,qe],function(e,t,n,r,i){return function(o){function a(e){return function(t){return o.selection?e(t):[]}}function s(e,t,n){var r=0;do r=e.indexOf(t,r),-1!==r&&(e=e.substring(0,r)+n+e.substr(r+t.length),r+=n.length-t.length+1);while(-1!==r);return e}function l(e,t,n){return e=s(e,'src="'+t+'"','src="'+n+'"'),e=s(e,'data-mce-src="'+t+'"','data-mce-src="'+n+'"')}function c(t,n){e.each(o.undoManager.data,function(e){e.content=l(e.content,t,n)})}function u(){return o.notificationManager.open({text:o.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})}function d(e,t){y.removeByUri(e.src),c(e.src,t),o.$(e).attr({src:t,"data-mce-src":o.convertURL(t,"src")})}function f(n){return b||(b=new t(w,{url:x.images_upload_url,basePath:x.images_upload_base_path,credentials:x.images_upload_credentials,handler:x.images_upload_handler})),m().then(a(function(t){var r;return r=e.map(t,function(e){return e.blobInfo}),b.upload(r,u).then(a(function(r){return r=e.map(r,function(e,n){var r=t[n].image;return e.status&&o.settings.images_replace_blob_uris!==!1&&d(r,e.url),{element:r,status:e.status}}),n&&n(r),r}))}))}function h(e){return x.automatic_uploads!==!1?f(e):void 0}function p(e){return x.images_dataimg_filter?x.images_dataimg_filter(e):!0}function m(){return C||(C=new n(w,y)),C.findAll(o.getBody(),p).then(a(function(t){return e.each(t,function(e){c(e.image.src,e.blobInfo.blobUri()),e.image.src=e.blobInfo.blobUri(),e.image.removeAttribute("data-mce-src")}),t}))}function g(){y.destroy(),w.destroy(),C=b=null}function v(t){return t.replace(/src="(blob:[^"]+)"/g,function(t,n){var r=w.getResultUri(n);if(r)return'src="'+r+'"';var i=y.getByUri(n);return i||(i=e.reduce(o.editorManager.editors,function(e,t){return e||t.editorUpload.blobCache.getByUri(n)},null)),i?'src="data:'+i.blob().type+";base64,"+i.base64()+'"':t})}var y=new r,b,C,x=o.settings,w=new i;return o.on("setContent",function(){o.settings.automatic_uploads!==!1?h():m()}),o.on("RawSaveContent",function(e){e.content=v(e.content)}),o.on("getContent",function(e){e.source_view||"raw"==e.format||(e.content=v(e.content))}),o.on("PostRender",function(){o.parser.addNodeFilter("img",function(t){e.each(t,function(e){var t=e.attr("src");if(!y.getByUri(t)){var n=w.getResultUri(t);n&&e.attr("src",n)}})})}),{blobCache:y,uploadImages:f,uploadImagesAuto:h,scanForImages:m,destroy:g}}}),r(Ye,[k,$,_,T,g,W,u],function(e,t,n,r,i,o,a){var s=n.isContentEditableFalse;return function(t,n){function r(e,n){var r=o.collapse(e.getBoundingClientRect(),n),i,a,s,l,c;return"BODY"==t.tagName?(i=t.ownerDocument.documentElement,a=t.scrollLeft||i.scrollLeft,s=t.scrollTop||i.scrollTop):(c=t.getBoundingClientRect(),a=t.scrollLeft-c.left,s=t.scrollTop-c.top),r.left+=a,r.right+=a,r.top+=s,r.bottom+=s,r.width=1,l=e.offsetWidth-e.clientWidth,l>0&&(n&&(l*=-1),r.left+=l,r.right+=l),r}function l(){var n,r,o,a,s;for(n=i("*[contentEditable=false]",t),a=0;a<n.length;a++)r=n[a],o=r.previousSibling,e.endsWithCaretContainer(o)&&(s=o.data,1==s.length?o.parentNode.removeChild(o):o.deleteData(s.length-1,1)),o=r.nextSibling,e.startsWithCaretContainer(o)&&(s=o.data,1==s.length?o.parentNode.removeChild(o):o.deleteData(0,1));return null}function c(o,a){var l,c,f;return u(),n(a)?(g=e.insertBlock("p",a,o),l=r(a,o),i(g).css("top",l.top),m=i('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(l).appendTo(t),o&&m.addClass("mce-visual-caret-before"),d(),c=a.ownerDocument.createRange(),f=g.firstChild,c.setStart(f,0),c.setEnd(f,1),c):(g=e.insertInline(a,o),c=a.ownerDocument.createRange(),s(g.nextSibling)?(c.setStart(g,0),c.setEnd(g,0)):(c.setStart(g,1),c.setEnd(g,1)),c)}function u(){l(),g&&(e.remove(g),g=null),m&&(m.remove(),m=null),clearInterval(p)}function d(){p=a.setInterval(function(){i("div.mce-visual-caret",t).toggleClass("mce-visual-caret-hidden")},500)}function f(){a.clearInterval(p)}function h(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"}var p,m,g;return{show:c,hide:u,getCss:h,destroy:f}}}),r(Xe,[p,_,W],function(e,t,n){function r(i){function o(t){return e.map(t,function(e){return e=n.clone(e),e.node=i,e})}if(e.isArray(i))return e.reduce(i,function(e,t){return e.concat(r(t))},[]);if(t.isElement(i))return o(i.getClientRects());if(t.isText(i)){var a=i.ownerDocument.createRange();return a.setStart(i,0),a.setEnd(i,i.data.length),o(a.getClientRects())}}return{getClientRects:r}}),r(Ke,[z,p,Xe,U,te,ne,$,W],function(e,t,n,r,i,o,a,s){function l(e,t,n,o){for(;o=i.findNode(o,e,r.isEditableCaretCandidate,t);)if(n(o))return}function c(e,r,i,o,a,s){function c(o){var s,l,c;for(c=n.getClientRects(o),-1==e&&(c=c.reverse()),s=0;s<c.length;s++)if(l=c[s],!i(l,h)){if(f.length>0&&r(l,t.last(f))&&u++,l.line=u,a(l))return!0;f.push(l)}}var u=0,d,f=[],h;return(h=t.last(s.getClientRects()))?(d=s.getNode(),c(d),l(e,o,c,d),f):f}function u(e,t){return t.line>e}function d(e,t){return t.line===e}function f(e,n,r,i){function l(n){return 1==e?t.last(n.getClientRects()):t.last(n.getClientRects())}var c=new o(n),u,d,f,h,p=[],m=0,g,v;1==e?(u=c.next,d=s.isBelow,f=s.isAbove,h=a.after(i)):(u=c.prev,d=s.isAbove,f=s.isBelow,h=a.before(i)),v=l(h);do if(h.isVisible()&&(g=l(h),!f(g,v))){if(p.length>0&&d(g,t.last(p))&&m++,g=s.clone(g),g.position=h,g.line=m,r(g))return p;p.push(g)}while(h=u(h));return p}var h=e.curry,p=h(c,-1,s.isAbove,s.isBelow),m=h(c,1,s.isBelow,s.isAbove);return{upUntil:p,downUntil:m,positionsUntil:f,isAboveLine:h(u),isLine:h(d)}}),r(Ge,[z,p,_,Xe,W,te,U],function(e,t,n,r,i,o,a){function s(e,t){return Math.abs(e.left-t)}function l(e,t){return Math.abs(e.right-t)}function c(e,n){function r(e,t){return e>=t.left&&e<=t.right}return t.reduce(e,function(e,t){var i,o;return i=Math.min(s(e,n),l(e,n)),o=Math.min(s(t,n),l(t,n)),r(n,t)?t:r(n,e)?e:o==i&&m(t.node)?t:i>o?t:e})}function u(e,t,n,r){for(;r=g(r,e,a.isEditableCaretCandidate,t);)if(n(r))return}function d(e,n){function o(e,i){var o;return o=t.filter(r.getClientRects(i),function(t){return!e(t,n)}),a=a.concat(o),0===o.length}var a=[];return a.push(n),u(-1,e,v(o,i.isAbove),n.node),u(1,e,v(o,i.isBelow),n.node),a}function f(e){return t.filter(t.toArray(e.getElementsByTagName("*")),m)}function h(e,t){return{node:e.node,before:s(e,t)<l(e,t)}}function p(e,n,i){var o,a;return o=r.getClientRects(f(e)),o=t.filter(o,function(e){return i>=e.top&&i<=e.bottom}),a=c(o,n),a&&(a=c(d(e,a),n),a&&m(a.node))?h(a,n):null}var m=n.isContentEditableFalse,g=o.findNode,v=e.curry;return{findClosestClientRect:c,findLineNodeRects:d,closestCaret:p}}),r(Je,[_,p,z],function(e,t,n){function r(e){function r(e){return i(e)}function a(t){f(e.getBody()).css("cursor",t)}function s(t){return t==g.element||e.dom.isChildOf(t,g.element)?!1:!i(t)}function l(t){var n,r,i,o,s=0,l=0,c,u,d,h;0===t.button&&(n=t.screenX-g.screenX,r=t.screenY-g.screenY,c=Math.max(Math.abs(n),Math.abs(r)),!g.dragging&&c>10&&(g.dragging=!0,a("default"),g.clone=g.element.cloneNode(!0),i=m.getPos(g.element),g.relX=g.clientX-i.x,g.relY=g.clientY-i.y,g.width=g.element.offsetWidth,g.height=g.element.offsetHeight,f(g.clone).css({width:g.width,height:g.height}).removeAttr("data-mce-selected"),g.ghost=f("<div>").css({position:"absolute",opacity:.5,overflow:"hidden",width:g.width,height:g.height}).attr({"data-mce-bogus":"all",unselectable:"on",contenteditable:"false"}).addClass("mce-drag-container mce-reset").append(g.clone).appendTo(e.getBody())[0],o=e.dom.getViewPort(e.getWin()),g.maxX=o.w,g.maxY=o.h),g.dragging&&(e._selectionOverrides.hideFakeCaret(),e.selection.placeCaretAt(t.clientX,t.clientY),u=g.clientX+n-g.relX,d=g.clientY+r+5,u+g.width>g.maxX&&(s=u+g.width-g.maxX),d+g.height>g.maxY&&(l=d+g.height-g.maxY),h="BODY"!=e.getBody().nodeName?e.getBody().getBoundingClientRect():{left:0,top:0},f(g.ghost).css({left:u-h.left,top:d-h.top,width:g.width-s,height:g.height-l})))}function c(t){var n;if(g.dragging&&(e.selection.setRng(e.selection.getSel().getRangeAt(0)),s(e.selection.getNode()))){var r=g.element;if(n=e.fire("drop",{targetClone:r,clientX:t.clientX,clientY:t.clientY}),n.isDefaultPrevented())return;r=n.targetClone,e.undoManager.transact(function(){e.insertContent(m.getOuterHTML(r)),f(g.element).remove()})}d()}function u(a){var s,u;if(d(),0===a.button&&(s=t.find(e.dom.getParents(a.target),n.or(i,o)),r(s))){if(u=e.fire("dragstart",{target:s}),u.isDefaultPrevented())return;e.on("mousemove",l),e.on("mouseup",c),h!=p&&(m.bind(h,"mousemove",l),m.bind(h,"mouseup",c)),g={screenX:a.screenX,screenY:a.screenY,clientX:a.clientX,clientY:a.clientY,element:s
-}}}function d(){f(g.ghost).remove(),a(null),e.off("mousemove",l),e.off("mouseup",d),h!=p&&(m.unbind(h,"mousemove",l),m.unbind(h,"mouseup",d)),g={}}var f=e.$,h=document,p=e.getDoc(),m=e.dom,g={};e.on("mousedown",u),e.on("drop",function(t){var n="undefined"!=typeof t.clientX?e.getDoc().elementFromPoint(t.clientX,t.clientY):null;(i(n)||i(e.dom.getContentEditableParent(n)))&&t.preventDefault()})}var i=e.isContentEditableFalse,o=e.isContentEditableTrue;return{init:r}}),r(Qe,[d,ne,$,k,te,Ye,Ke,Ge,_,T,W,I,z,p,u,Je,S],function(e,t,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g){function v(e,t){for(;t=e(t);)if(t.isVisible())return t;return t}function y(c){function y(e){return c.dom.isBlock(e)}function S(e){e&&c.selection.setRng(e)}function k(){return c.selection.getRng()}function T(e,t){c.selection.scrollIntoView(e,t)}function R(e,t,n){var r;return r=c.fire("ShowCaret",{target:t,direction:e,before:n}),r.isDefaultPrevented()?null:(T(t,-1===e),ie.show(n,t))}function A(e){var t;return ie.hide(),t=c.fire("BeforeObjectSelected",{target:e}),t.isDefaultPrevented()?null:B(e)}function B(e){var t=e.ownerDocument.createRange();return t.selectNode(e),t}function D(e,t){var n=i.isInSameBlock(e,t);return!n&&l.isBr(e.getNode())?!0:n}function L(e,t){return t=i.normalizeRange(e,ee,t),-1==e?n.fromRangeStart(t):n.fromRangeEnd(t)}function M(e){return r.isCaretContainerBlock(e.startContainer)}function P(e,t,n,r){var i,o,a,s;return!r.collapsed&&(i=_(r),x(i))?R(e,i,-1==e):(s=M(r),o=L(e,r),n(o)?A(o.getNode(-1==e)):(o=t(o))?n(o)?R(e,o.getNode(-1==e),1==e):(a=t(o),n(a)&&D(o,a)?R(e,a.getNode(-1==e),1==e):s?V(o.toRange()):null):s?r:null)}function H(e,t,n){var r,i,o,l,c,u,d,f,p;if(p=_(n),r=L(e,n),i=t(ee,a.isAboveLine(1),r),o=h.filter(i,a.isLine(1)),c=h.last(r.getClientRects()),E(r)&&(p=r.getNode()),N(r)&&(p=r.getNode(!0)),!c)return null;if(u=c.left,l=s.findClosestClientRect(o,u),l&&x(l.node))return d=Math.abs(u-l.left),f=Math.abs(u-l.right),R(e,l.node,f>d);if(p){var m=a.positionsUntil(e,ee,a.isAboveLine(1),p);if(l=s.findClosestClientRect(h.filter(m,a.isLine(1)),u))return V(l.position.toRange());if(l=h.last(h.filter(m,a.isLine(0))))return V(l.position.toRange())}}function O(t,r){function i(){var t=c.dom.create(c.settings.forced_root_block);return(!e.ie||e.ie>=11)&&(t.innerHTML='<br data-mce-bogus="1">'),t}var o,a,s;if(r.collapsed&&c.settings.forced_root_block){if(o=c.dom.getParent(r.startContainer,"PRE"),!o)return;a=1==t?ne(n.fromRangeStart(r)):re(n.fromRangeStart(r)),a||(s=i(),1==t?c.$(o).after(s):c.$(o).before(s),c.selection.select(s,!0),c.selection.collapse())}}function I(e,t,n,r){var i;return(i=P(e,t,n,r))?i:(i=O(e,r),i?i:null)}function F(e,t,n){var r;return(r=H(e,t,n))?r:(r=O(e,n),r?r:null)}function z(){return se("*[data-mce-caret]")[0]}function U(e){e=se(e),e.attr("data-mce-caret")&&(ie.hide(),e.removeAttr("data-mce-caret"),e.removeAttr("data-mce-bogus"),e.removeAttr("style"),S(k()),T(e[0]))}function W(e){var t,r;return e=i.normalizeRange(1,ee,e),t=n.fromRangeStart(e),x(t.getNode())?R(1,t.getNode(),!t.isAtEnd()):x(t.getNode(!0))?R(1,t.getNode(!0),!1):(r=c.dom.getParent(t.getNode(),f.or(x,C)),x(r)?R(1,r,!1):(ie.hide(),null))}function V(e){var t;return e&&e.collapsed?(t=W(e),t?t:e):e}function $(e){var t,i,o,a;return x(e)?(x(e.previousSibling)&&(o=e.previousSibling),i=re(n.before(e)),i||(t=ne(n.after(e))),t&&w(t.getNode())&&(a=t.getNode()),r.remove(e.previousSibling),r.remove(e.nextSibling),c.dom.remove(e),J(),c.dom.isEmpty(c.getBody())?(c.setContent(""),void c.focus()):o?n.after(o).toRange():a?n.before(a).toRange():i?i.toRange():t?t.toRange():null):null}function q(e,t,n){var r=c.dom,i,o,a,s;if(-1===e){if(N(n)&&y(n.getNode(!0)))return $(n.getNode(!0))}else if(E(t)&&y(t.getNode()))return $(t.getNode());if(s=c.schema.getTextBlockElements(),i=r.getParent(t.getNode(),r.isBlock),o=r.getParent(n.getNode(),r.isBlock),i===o||!s[i.nodeName]||!s[o.nodeName])return null;for(;a=i.firstChild;)o.appendChild(a);return c.dom.remove(i),n.toRange()}function j(e,t,n,i){var o,a,s,l;return!i.collapsed&&(o=_(i),x(o))?V($(o)):(a=L(e,i),n(a)&&r.isCaretContainerBlock(i.startContainer)?(l=-1==e?te.prev(a):te.next(a),l?V(l.toRange()):i):t(a)?V($(a.getNode(-1==e))):(s=-1==e?te.prev(a):te.next(a),t(s)?-1===e?q(e,a,s):q(e,s,a):void 0))}function Y(){function e(e,t){var n=t(k());n&&!e.isDefaultPrevented()&&(e.preventDefault(),S(n))}function r(e){for(var t=c.getBody();e&&e!=t;){if(C(e)||x(e))return e;e=e.parentNode}return null}function i(e,t,n){return n.collapsed?!1:h.reduce(n.getClientRects(),function(n,r){return n||u.containsXY(r,e,t)},!1)}function o(e){var t=!1;e.on("touchstart",function(){t=!1}),e.on("touchmove",function(){t=!0}),e.on("touchend",function(e){var n=r(e.target);x(n)?t||(e.preventDefault(),G(A(n))):J()})}function l(){var e,t=r(c.selection.getNode());C(t)&&y(t)&&c.dom.isEmpty(t)&&(e=c.dom.create("br",{"data-mce-bogus":"1"}),c.$(t).empty().append(e),c.selection.setRng(n.before(e).toRange()))}function f(e){var t=z();if(t)return"compositionstart"==e.type?(e.preventDefault(),e.stopPropagation(),void U(t)):void("&nbsp;"!=t.innerHTML&&U(t))}function g(e){var t;switch(e.keyCode){case d.DELETE:t=l();break;case d.BACKSPACE:t=l()}t&&e.preventDefault()}var v=b(I,1,ne,E),w=b(I,-1,re,N),_=b(j,1,E,N),T=b(j,-1,N,E),B=b(F,-1,a.upUntil),D=b(F,1,a.downUntil);c.on("mouseup",function(){var e=k();e.collapsed&&S(W(e))}),c.on("click",function(e){var t;t=r(e.target),t&&x(t)&&e.preventDefault()});var L=function(e){var r=new t(e);if(!e.firstChild)return!1;var i=n.before(e.firstChild),o=r.next(i);return o&&!E(o)&&!N(o)},M=function(e,t){var n=c.dom.getParent(e,c.dom.isBlock),r=c.dom.getParent(t,c.dom.isBlock);return n===r},P=function(e,t){var n=c.dom.getParent(e,c.dom.isBlock),r=c.dom.getParent(t,c.dom.isBlock);return n&&!M(n,r)&&L(n)};o(c),c.on("mousedown",function(e){var t;if(t=r(e.target))x(t)?(e.preventDefault(),G(A(t))):(J(),i(e.clientX,e.clientY,c.selection.getRng())||c.selection.placeCaretAt(e.clientX,e.clientY));else{J(),ie.hide();var n=s.closestCaret(ee,e.clientX,e.clientY);n&&(P(e.target,n.node)||(e.preventDefault(),c.getBody().focus(),S(R(1,n.node,n.before))))}}),c.on("keydown",function(t){if(!d.modifierPressed(t))switch(t.keyCode){case d.RIGHT:e(t,v);break;case d.DOWN:e(t,D);break;case d.LEFT:e(t,w);break;case d.UP:e(t,B);break;case d.DELETE:e(t,_);break;case d.BACKSPACE:e(t,T);break;default:x(c.selection.getNode())&&t.preventDefault()}}),c.on("keyup compositionstart",function(e){f(e),g(e)},!0),c.on("cut",function(){var e=c.selection.getNode();x(e)&&p.setEditorTimeout(c,function(){S(V($(e)))})}),c.on("getSelectionRange",function(e){var t=e.range;if(ae){if(!ae.parentNode)return void(ae=null);t=t.cloneRange(),t.selectNode(ae),e.range=t}}),c.on("setSelectionRange",function(e){var t;t=G(e.range),t&&(e.range=t)}),c.on("focus",function(){p.setEditorTimeout(c,function(){c.selection.setRng(V(c.selection.getRng()))},0)}),m.init(c)}function X(){var e=c.contentStyles,t=".mce-content-body";e.push(ie.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;width: 100px;height: 100px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")}function K(e){return r.isCaretContainer(e.startContainer)||r.isCaretContainer(e.endContainer)}function G(t){var n,r=c.$,i=c.dom,o,a,s,l,u,d,f,h,p;if(!t)return J(),null;if(t.collapsed){if(J(),!K(t)){if(f=L(1,t),x(f.getNode()))return R(1,f.getNode(),!f.isAtEnd());if(x(f.getNode(!0)))return R(1,f.getNode(!0),!1)}return null}return s=t.startContainer,l=t.startOffset,u=t.endOffset,3==s.nodeType&&0==l&&x(s.parentNode)&&(s=s.parentNode,l=i.nodeIndex(s),s=s.parentNode),1!=s.nodeType?(J(),null):(u==l+1&&(n=s.childNodes[l]),x(n)?(h=p=n.cloneNode(!0),d=c.fire("ObjectSelected",{target:n,targetClone:h}),d.isDefaultPrevented()?(J(),null):(h=d.targetClone,o=r("#"+oe),0===o.length&&(o=r('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",oe),o.appendTo(c.getBody())),t=c.dom.createRng(),h===p&&e.ie?(o.empty().append(g.ZWSP).append(h).append(g.ZWSP),t.setStart(o[0].firstChild,0),t.setEnd(o[0].lastChild,1)):(o.empty().append("\xa0").append(h).append("\xa0"),t.setStart(o[0].firstChild,1),t.setEnd(o[0].lastChild,0)),o.css({top:i.getPos(n,c.getBody()).y}),o[0].focus(),a=c.selection.getSel(),a.removeAllRanges(),a.addRange(t),c.$("*[data-mce-selected]").removeAttr("data-mce-selected"),n.setAttribute("data-mce-selected",1),ae=n,t)):(J(),null))}function J(){ae&&(ae.removeAttribute("data-mce-selected"),c.$("#"+oe).remove(),ae=null)}function Q(){ie.destroy(),ae=null}function Z(){ie.hide()}var ee=c.getBody(),te=new t(ee),ne=b(v,te.next),re=b(v,te.prev),ie=new o(c.getBody(),y),oe="sel-"+c.dom.uniqueId(),ae,se=c.$;return e.ceFalse&&(Y(),X()),{showBlockCaretContainer:U,hideFakeCaret:Z,destroy:Q}}var b=f.curry,C=l.isContentEditableTrue,x=l.isContentEditableFalse,w=l.isElement,N=i.isAfterContentEditableFalse,E=i.isBeforeContentEditableFalse,_=c.getSelectedNode;return y}),r(Ze,[],function(){var e=0,t=function(){var e=function(){return Math.round(4294967295*Math.random()).toString(36)},t=(new Date).getTime();return"s"+t.toString(36)+e()+e()+e()},n=function(n){return n+e++ +t()};return{uuid:n}}),r(et,[w,g,E,R,A,H,P,Y,J,Q,Z,ee,oe,ae,N,f,Ae,Pe,B,L,Oe,d,m,u,Ie,Fe,ze,je,Qe,Ze],function(e,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v,y,b,C,x,w,N,E,_,S,k,T,R,A){function B(e,t,i){var o=this,a,s,l;a=o.documentBaseUrl=i.documentBaseURL,s=i.baseURI,l=i.defaultSettings,t=P({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:a,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:o.convertURL,url_converter_scope:o,ie7_compat:!0},l,t),l&&l.external_plugins&&t.external_plugins&&(t.external_plugins=P({},l.external_plugins,t.external_plugins)),o.settings=t,r.language=t.language||"en",r.languageLoad=t.language_load,r.baseURL=i.baseURL,o.id=t.id=e,o.setDirty(!1),o.plugins={},o.documentBaseURI=new p(t.document_base_url||a,{base_uri:s}),o.baseURI=s,o.contentCSS=[],o.contentStyles=[],o.shortcuts=new k(o),o.loadedCSS={},o.editorCommands=new h(o),t.target&&(o.targetElm=t.target),o.suffix=i.suffix,o.editorManager=i,o.inline=t.inline,o.settings.content_editable=o.inline,t.cache_suffix&&(w.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),t.override_viewport===!1&&(w.overrideViewPort=!1),i.fire("SetupEditor",o),o.execCallback("setup",o),o.$=n.overrideDefaults(function(){return{context:o.inline?o.getBody():o.getDoc(),element:o.getBody()}})}var D=e.DOM,L=r.ThemeManager,M=r.PluginManager,P=N.extend,H=N.each,O=N.explode,I=N.inArray,F=N.trim,z=N.resolve,U=g.Event,W=w.gecko,V=w.ie;return B.prototype={render:function(){function e(){D.unbind(window,"ready",e),n.render()}function t(){var e=m.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!L.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",L.load(r.theme,t)}N.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),H(r.external_plugins,function(e,t){M.load(t,e),r.plugins+=" "+t}),H(r.plugins.split(/[ ,]/),function(e){if(e=F(e),e&&!M.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=M.dependencies(e);H(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=M.createUrl(t,e),M.load(e.resource,e)})}else M.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!U.domLoaded)return void D.bind(window,"ready",e);if(n.getElement()&&w.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||D.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(D.insertAfter(D.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},D.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.setDirty(!1),a._mceOldSubmit(a)})),n.windowManager=new v(n),n.notificationManager=new y(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=D.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),n.editorManager.add(n),t()}},init:function(){function e(n){var r=M.get(n),i,o;if(i=M.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=F(n),r&&-1===I(m,n)){if(H(M.dependencies(n),function(t){e(t)}),t.plugins[n])return;o=new r(t,i,t.$),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n))}}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,h,p,m=[];if(this.editorManager.i18n.setCode(n.language),t.rtl=n.rtl_ui||this.editorManager.i18n.rtl,n.aria_label=n.aria_label||D.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=L.get(n.theme),t.theme=new c(t,L.urls[n.theme]),t.theme.init&&t.theme.init(t,L.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""),t.$)):t.theme=n.theme),H(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,h=/^[0-9\.]+(|px)$/i,h.test(""+i)&&(i=Math.max(parseInt(i,10),100)),h.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&H(O(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();if(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!w.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',!/#$/.test(document.location.href))for(p=0;p<t.contentCSS.length;p++){var g=t.contentCSS[p];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+N._addCacheSuffix(g)+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),n.content_security_policy&&(t.iframeHTML+='<meta http-equiv="Content-Security-Policy" content="'+n.content_security_policy+'" />'),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" data-id="'+t.id+'"><br></body></html>';var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&w.ie&&w.ie<12&&(u=v);var y=D.create("iframe",{id:t.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}});if(y.onload=function(){y.onload=null,t.fire("load")},D.setAttrib(y,"src",u||'javascript:""'),t.contentAreaContainer=l.iframeContainer,t.iframeElement=y,s=D.add(l.iframeContainer,y),V)try{t.getDoc()}catch(b){s.src=u=v}l.editorContainer&&(D.get(l.editorContainer).style.display=t.orgDisplay,t.hidden=D.isHidden(l.editorContainer)),t.getElement().style.display="none",D.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,r=n.settings,s=n.getElement(),h=n.getDoc(),p,m;r.inline||(n.getElement().style.visibility=n.orgVisibility),t||r.content_editable||(h.open(),h.write(n.iframeHTML),h.close()),r.content_editable&&(n.on("remove",function(){var e=this.getBody();D.removeClass(e,"mce-content-body"),D.removeClass(e,"mce-edit-focus"),D.setAttrib(e,"contentEditable",null)}),D.addClass(s,"mce-content-body"),n.contentDocument=h=r.content_document||document,n.contentWindow=r.content_window||window,n.bodyElement=s,r.content_document=r.content_window=null,r.root_name=s.nodeName.toLowerCase()),p=n.getBody(),p.disabled=!0,n.readonly=r.readonly,n.readonly||(n.inline&&"static"==D.getStyle(p,"position",!0)&&(p.style.position="relative"),p.contentEditable=n.getParam("content_editable_state",!0)),p.disabled=!1,n.editorUpload=new T(n),n.schema=new b(r),n.dom=new e(h,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:r.force_hex_style_colors,class_filter:r.class_filter,update_styles:!0,root_element:n.inline?n.getBody():null,collect:r.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new C(r,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)if(i=e[r],a=i.attr(t),s="data-mce-"+t,!i.attributes.map[s]){if(0===a.indexOf("data:")||0===a.indexOf("blob:"))continue;"style"===t?(a=o.serializeStyle(o.parseStyle(a),i.name),a.length||(a=null),i.attr(s,a),i.attr(t,a)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name))}}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("type")||"no/type",0!==r.indexOf("mce-")&&n.attr("type","mce-"+r)}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,r,i=n.schema.getNonEmptyElements();t--;)r=e[t],r.isEmpty(i)&&(r.append(new o("br",1)).shortEnded=!0)}),n.serializer=new a(r,n),n.selection=new l(n.dom,n.getWin(),n.serializer,n),n.formatter=new c(n),n.undoManager=new u(n),n.forceBlocks=new f(n),n.enterKey=new d(n),n._nodeChangeDispatcher=new i(n),n._selectionOverrides=new R(n),n.fire("PreInit"),r.browser_spellcheck||r.gecko_spellcheck||(h.body.spellcheck=!1,D.setAttrib(p,"spellcheck","false")),n.quirks=new x(n),n.fire("PostRender"),r.directionality&&(p.dir=r.directionality),r.nowrap&&(p.style.whiteSpace="nowrap"),r.protect&&n.on("BeforeSetContent",function(e){H(r.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),r.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.on("compositionstart compositionend",function(e){n.composing="compositionstart"===e.type}),n.contentStyles.length>0&&(m="",H(n.contentStyles,function(e){m+=e+"\r\n"}),n.dom.addStyle(m)),H(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),r.auto_focus&&E.setEditorTimeout(n,function(){var e;e=r.auto_focus===!0?n:n.editorManager.get(r.auto_focus),e.destroyed||e.focus()},100),s=h=p=null},focus:function(e){function t(e){return n.dom.getParent(e,function(e){return"true"===n.dom.getContentEditable(e)})}var n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l=n.getBody(),c;if(!e){if(o=r.getRng(),o.item&&(a=o.item(0)),n.quirks.refreshContentEditable(),c=t(r.getNode()),n.$.contains(l,c))return c.focus(),r.normalize(),void n.editorManager.setActive(n);if(i||(w.opera||n.getBody().focus(),n.getWin().focus()),W||i){if(l.setActive)try{l.setActive()}catch(u){l.focus()}else l.focus();i&&r.normalize()}a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())}n.editorManager.setActive(n)},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?z(r):0,n=z(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?(e=n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}),this.editorManager.translate(e)):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?H(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(e){e=e.split("="),e.length>1?i[F(e[0])]=F(e[1]):i[F(e[0])]=F(e)}):i=r,i):r},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addContextToolbar:function(e,t){var n=this,r;n.contextToolbars=n.contextToolbars||[],"string"==typeof e&&(r=e,e=function(e){return n.dom.is(e,r)}),n.contextToolbars.push({id:A.uuid("mcet"),predicate:e,items:t})},addCommand:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(D.show(e.getContainer()),D.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(V&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(D.hide(e.getContainer()),D.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),"raw"==e.format&&t.fire("RawSaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=D.getParent(t.id,"form"))&&H(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&t.setDirty(!1),r},setContent:function(e,t){var n=this,r=n.getBody(),i,o;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(o=V&&11>V?"":'<br data-mce-bogus="1">',"TABLE"==r.nodeName?e="<tr><td>"+o+"</td></tr>":/^(UL|OL)$/.test(r.nodeName)&&(e="<li>"+o+"</li>"),i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=o,e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):V||e||(e='<br data-mce-bogus="1">'),n.dom.setHTML(r,e),n.fire("SetContent",t)):("raw"!==t.format&&(e=new s({validate:n.validate},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=F(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?t.serializer.getTrimmedContent():"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),"text"!=e.format?e.content=F(n):e.content=n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=P({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!=t&&this.fire("dirty")},setMode:function(e){S.setMode(this,e)},getContainer:function(){var e=this;return e.container||(e.container=D.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=D.get(this.id)),this.targetElm},getWin:function(){var e=this,t;return e.contentWindow||(t=e.iframeElement,t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),H(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||!n.hasVisual?i.removeClass(e,o):i.addClass(e,o));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&n.hasVisual?i.addClass(e,o):i.removeClass(e,o)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&D.remove(e.getElement().nextSibling),e.inline||(V&&10>V&&e.getDoc().execCommand("SelectAll",!1,null),D.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),D.remove(e.getContainer()),e._selectionOverrides.destroy(),e.editorUpload.destroy(),e.destroy())},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),D.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.bodyElement=t.contentDocument=t.contentWindow=null,t.iframeElement=t.targetElm=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},P(B.prototype,_),B}),r(tt,[],function(){var e={},t="en";return{setCode:function(e){e&&(t=e,this.rtl=this.data[e]?"rtl"===this.data[e]._dir:!1)},getCode:function(){return t},rtl:!1,add:function(t,n){var r=e[t];r||(e[t]=r={});for(var i in n)r[i]=n[i];this.setCode(t)},translate:function(n){var r;if(r=e[t],r||(r={}),"undefined"==typeof n)return n;if("string"!=typeof n&&n.raw)return n.raw;if(n.push){var i=n.slice(1);n=(r[n[0]]||n[0]).replace(/\{([0-9]+)\}/g,function(e,t){return i[t]})}return(r[n]||n).replace(/{context:\w+}$/,"")},data:e}}),r(nt,[w,u,d],function(e,t,n){function r(e){function l(){try{return document.activeElement}catch(e){return document.body}}function c(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function u(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function d(e){return!!s.getParent(e,r.isEditorUIElement)}function f(r){var f=r.editor;f.on("init",function(){(f.inline||n.ie)&&("onbeforedeactivate"in document&&n.ie<9?f.dom.bind(f.getBody(),"beforedeactivate",function(e){if(e.target==f.getBody())try{f.lastRng=f.selection.getRng()}catch(t){}}):f.on("nodechange mouseup keyup",function(e){var t=l();"nodechange"==e.type&&e.selectionChange||(t&&t.id==f.id+"_ifr"&&(t=f.getBody()),f.dom.isChildOf(t,f.getBody())&&(f.lastRng=f.selection.getRng()))}),n.webkit&&!i&&(i=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(f.lastRng=n)}},s.bind(document,"selectionchange",i)))}),f.on("setcontent",function(){f.lastRng=null}),f.on("mousedown",function(){f.selection.lastFocusBookmark=null}),f.on("focusin",function(){var t=e.focusedEditor,n;f.selection.lastFocusBookmark&&(n=u(f,f.selection.lastFocusBookmark),f.selection.lastFocusBookmark=null,f.selection.setRng(n)),t!=f&&(t&&t.fire("blur",{focusedEditor:f}),e.setActive(f),e.focusedEditor=f,f.fire("focus",{blurredEditor:t}),f.focus(!0)),f.lastRng=null}),f.on("focusout",function(){t.setEditorTimeout(f,function(){var t=e.focusedEditor;d(l())||t!=f||(f.fire("blur",{focusedEditor:null}),e.focusedEditor=null,f.selection&&(f.selection.lastFocusBookmark=null))})}),o||(o=function(t){var n=e.activeEditor,r;r=t.target,n&&r.ownerDocument==document&&(n.selection&&r!=n.getBody()&&(n.selection.lastFocusBookmark=c(n.dom,n.lastRng)),r==document.body||d(r)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},s.bind(document,"focusin",o)),f.inline&&!a&&(a=function(t){var n=e.activeEditor,r=n.dom;if(n.inline&&r&&!r.isChildOf(t.target,n.getBody())){var i=n.selection.getRng();i.collapsed||(n.lastRng=i)}},s.bind(document,"mouseup",a))}function h(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(s.unbind(document,"selectionchange",i),
-s.unbind(document,"focusin",o),s.unbind(document,"mouseup",a),i=o=a=null)}e.on("AddEditor",f),e.on("RemoveEditor",h)}var i,o,a,s=e.DOM;return r.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},r}),r(rt,[et,g,w,ae,d,m,c,ue,tt,nt],function(e,t,n,r,i,o,a,s,l,c){function u(e){g(C.editors,function(t){"scroll"===e.type?t.fire("ScrollWindow",e):t.fire("ResizeWindow",e)})}function d(e,n){n!==x&&(n?t(window).on("resize scroll",u):t(window).off("resize scroll",u),x=n)}function f(e){var t=C.editors,n;delete t[e.id];for(var r=0;r<t.length;r++)if(t[r]==e){t.splice(r,1),n=!0;break}return C.activeEditor==e&&(C.activeEditor=t[0]),C.focusedEditor==e&&(C.focusedEditor=null),n}function h(e){return e&&e.initialized&&!(e.getContainer()||e.getBody()).parentNode&&(f(e),e.unbindAllNativeEvents(),e.destroy(!0),e.removed=!0,e=null),e}var p=n.DOM,m=o.explode,g=o.each,v=o.extend,y=0,b,C,x=!1;return C={$:t,majorVersion:"4",minorVersion:"4.1",releaseDate:"2016-07-26",editors:[],i18n:l,activeEditor:null,setup:function(){var e=this,t,n,i="",o,a;if(n=r.getDocumentBaseUrl(document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(n)&&(n=n.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/")),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else{for(var s=document.getElementsByTagName("script"),l=0;l<s.length;l++){a=s[l].src;var u=a.substring(a.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(a)){-1!=u.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/"));break}}!t&&document.currentScript&&(a=document.currentScript.src,-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/")))}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new c(e)},overrideDefaults:function(e){var t,n;t=e.base_url,t&&(this.baseURL=new r(this.documentBaseURL).toAbsolute(t.replace(/\/+$/,"")),this.baseURI=new r(this.baseURL)),n=e.suffix,e.suffix&&(this.suffix=n),this.defaultSettings=e},init:function(n){function r(e,t){return e.inline&&t.tagName.toLowerCase()in C}function i(e,t){window.console&&!window.test&&window.console.log(e,t)}function s(e){var t=e.id;return t||(t=e.name,t=t&&!p.get(t)?e.name:p.uniqueId(),e.setAttribute("id",t)),t}function l(e){var t=n[e];if(t)return t.apply(f,Array.prototype.slice.call(arguments,2))}function c(e,t){return t.constructor===RegExp?t.test(e.className):p.hasClass(e,t)}function u(e){var t,n=[];if(e.types)return g(e.types,function(e){n=n.concat(p.select(e.selector))}),n;if(e.selector)return p.select(e.selector);if(e.target)return[e.target];switch(e.mode){case"exact":t=e.elements||"",t.length>0&&g(m(t),function(e){var t;(t=p.get(e))?n.push(t):g(document.forms,function(t){g(t.elements,function(t){t.name===e&&(e="mce_editor_"+y++,p.setAttrib(t,"id",e),n.push(t))})})});break;case"textareas":case"specific_textareas":g(p.select("textarea"),function(t){e.editor_deselector&&c(t,e.editor_deselector)||e.editor_selector&&!c(t,e.editor_selector)||n.push(t)})}return n}function d(){function a(t,n,r){var i=new e(t,n,f);m.push(i),i.on("init",function(){++c===y.length&&x(m)}),i.targetElm=i.targetElm||r,i.render()}var c=0,m=[],y;return p.unbind(window,"ready",d),l("onpageload"),y=t.unique(u(n)),n.types?void g(n.types,function(e){o.each(y,function(t){return p.is(t,e.selector)?(a(s(t),v({},n,e),t),!1):!0})}):(o.each(y,function(e){h(f.get(e.id))}),y=o.grep(y,function(e){return!f.get(e.id)}),void g(y,function(e){r(n,e)?i("Could not initialize inline editor on invalid inline target element",e):a(s(e),n,e)}))}var f=this,b,C;C=o.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var x=function(e){b=e};return f.settings=n,p.bind(window,"ready",d),new a(function(e){b?e(b):x=function(t){e(t)}})},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),d(n,!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),b||(b=function(){t.fire("BeforeUnload")},p.bind(window,"beforeunload",b)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void g(p.select(e),function(e){i=r[e.id],i&&t.remove(i)})):(i=e,r[i.id]?(f(i)&&t.fire("RemoveEditor",{editor:i}),r.length||p.unbind(window,"beforeunload",b),i.remove(),d(r,r.length>0),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){g(this.editors,function(e){e.save()})},addI18n:function(e,t){l.add(e,t)},translate:function(e){return l.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!=e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},v(C,s),C.setup(),window.tinymce=window.tinyMCE=C,C}),r(it,[rt,m],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(n,r){"html4"===t.settings.schema&&e(r,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(ot,[ue,m],function(e,t){var n={send:function(e){function r(){!e.async||4==i.readyState||o++>1e4?(e.success&&1e4>o&&200==i.status?e.success.call(e.success_scope,""+i.responseText,i,e):e.error&&e.error.call(e.error_scope,o>1e4?"TIMED_OUT":"GENERAL",i,e),i=null):setTimeout(r,10)}var i,o=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async!==!1,e.data=e.data||"",n.fire("beforeInitialize",{settings:e}),i=new XMLHttpRequest){if(i.overrideMimeType&&i.overrideMimeType(e.content_type),i.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(i.withCredentials=!0),e.content_type&&i.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&t.each(e.requestheaders,function(e){i.setRequestHeader(e.key,e.value)}),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i=n.fire("beforeSend",{xhr:i,settings:e}).xhr,i.send(e.data),!e.async)return r();setTimeout(r,10)}}};return t.extend(n,e),n}),r(at,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb	t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(st,[at,ot,m],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(lt,[w],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(ct,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(ut,[w,f,N,E,m,d],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(dt,[se,m],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t=this,n=t.settings,r,i,o,a;r=n.firstControlClass,i=n.lastControlClass,e.each(function(e){e.classes.remove(r).remove(i).add(n.controlClass),e.visible()&&(o||(o=e),a=e)}),o&&o.classes.add(r),a&&a.classes.add(i)},renderHtml:function(e){var t=this,n="";return t.applyClasses(e.items()),e.items().each(function(e){n+=e.renderHtml()}),n},recalc:function(){},postRender:function(){},isNative:function(){return!1}})}),r(ft,[dt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(ht,[De],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t._super(e),e=t.settings,n=t.settings.size,t.on("click mousedown",function(e){e.preventDefault()}),t.on("touchstart",function(e){t.fire("click",e),e.preventDefault()}),e.subtype&&t.classes.add(e.subtype),n&&t.classes.add("btn-"+n),e.icon&&t.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e=this.getEl().firstChild,t;e&&(t=e.style,t.width=t.height="100%"),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("icon"),i,o=e.state.get("text"),a="";return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",o&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(o)+"</span>"),r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+a+"</button></div>"},bindStates:function(){function e(e){var i=n("span."+r,t.getEl());e?(i[0]||(n("button:first",t.getEl()).append('<span class="'+r+'"></span>'),i=n("span."+r,t.getEl())),i.html(t.encode(e))):i.remove(),t.classes.toggle("btn-has-text",!!e)}var t=this,n=t.$,r=t.classPrefix+"txt";return t.state.on("change:text",function(t){e(t.value)}),t.state.on("change:icon",function(n){var r=n.value,i=t.classPrefix;t.settings.icon=r,r=r?i+"ico "+i+"i-"+t.settings.icon:"";var o=t.getEl().firstChild,a=o.getElementsByTagName("i")[0];r?(a&&a==o.firstChild||(a=document.createElement("i"),o.insertBefore(a,o.firstChild)),a.className=r):a&&o.removeChild(a),e(t.state.get("text"))}),t._super()}})}),r(pt,[xe],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(mt,[De],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e.state.get("text"))+"</span></div>"},bindStates:function(){function e(e){t.classes.toggle("checked",e),t.aria("checked",e)}var t=this;return t.state.on("change:text",function(e){t.getEl("al").firstChild.data=t.translate(e.value)}),t.state.on("change:checked change:value",function(n){t.fire("change"),e(n.value)}),t.state.on("change:icon",function(e){var n=e.value,r=t.classPrefix;if("undefined"==typeof n)return t.settings.icon;t.settings.icon=n,n=n?r+"ico "+r+"i-"+t.settings.icon:"";var i=t.getEl().firstChild,o=i.getElementsByTagName("i")[0];n?(o&&o==i.firstChild||(o=document.createElement("i"),i.insertBefore(o,i.firstChild)),o.className=n):o&&i.removeChild(o)}),t.state.get("checked")&&e(!0),t._super()}})}),r(gt,[De,be,pe,g],function(e,t,n,r){return e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.classes.add("combobox"),t.subinput=!0,t.ariaTarget="inp",e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){var i=n.target,o=t.getEl();if(r.contains(o,i)||i==o)for(;i&&i!=o;)i.id&&-1!=i.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),i=i.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){var r=t.state.get("value"),i=t.getEl("inp").value;return e.preventDefault(),t.state.set("value",i),r!=i&&t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),t.on("keyup",function(e){"INPUT"==e.target.nodeName&&t.state.set("value",e.target.value)})},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),i=e.getEl("open"),o=e.layoutRect(),a,s;a=i?o.w-n.getSize(i).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documentMode<=8)&&(s=e.layoutRect().h-2+"px"),r(t.firstChild).css({width:a,lineHeight:s}),e._super(),e},postRender:function(){var e=this;return r(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=e.state.get("value")||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e.state.get("text"),(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.classes.add("has-open")),'<div id="'+t+'" class="'+e.classes+'"><input id="'+t+'-inp" class="'+r+'textbox" value="'+e.encode(i,!1)+'" hidefocus="1"'+l+' placeholder="'+e.encode(n.placeholder)+'" />'+s+"</div>"},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl("inp").value!=t.value&&(e.getEl("inp").value=t.value)}),e.state.on("change:disabled",function(t){e.getEl("inp").disabled=t.value}),e._super()},remove:function(){r(this.getEl("inp")).off(),this._super()}})}),r(vt,[gt],function(e){return e.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl().getElementsByTagName("i")[0];if(t)try{t.style.background=e}catch(n){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}})}),r(yt,[ht,ke],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),r(bt,[yt,w],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("text"),i=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"",a="";return r&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(r)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(i?'<i class="'+i+'"'+o+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+a+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Ct,[],function(){function e(e){function i(e,i,o){var a,s,l,c,u,d;return a=0,s=0,l=0,e/=255,i/=255,o/=255,u=t(e,t(i,o)),d=n(e,n(i,o)),u==d?(l=u,{h:0,s:0,v:100*l}):(c=e==u?i-o:o==u?e-i:o-e,a=e==u?3:o==u?1:5,a=60*(a-c/(d-u)),s=(d-u)/d,l=d,{h:r(a),s:r(100*s),v:r(100*l)})}function o(e,i,o){var a,s,l,c;if(e=(parseInt(e,10)||0)%360,i=parseInt(i,10)/100,o=parseInt(o,10)/100,i=n(0,t(i,1)),o=n(0,t(o,1)),0===i)return void(d=f=h=r(255*o));switch(a=e/60,s=o*i,l=s*(1-Math.abs(a%2-1)),c=o-s,Math.floor(a)){case 0:d=s,f=l,h=0;break;case 1:d=l,f=s,h=0;break;case 2:d=0,f=s,h=l;break;case 3:d=0,f=l,h=s;break;case 4:d=l,f=0,h=s;break;case 5:d=s,f=0,h=l;break;default:d=f=h=0}d=r(255*(d+c)),f=r(255*(f+c)),h=r(255*(h+c))}function a(){function e(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+e(d)+e(f)+e(h)}function s(){return{r:d,g:f,b:h}}function l(){return i(d,f,h)}function c(e){var t;return"object"==typeof e?"r"in e?(d=e.r,f=e.g,h=e.b):"v"in e&&o(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(d=parseInt(t[1],10),f=parseInt(t[2],10),h=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(d=parseInt(t[1],16),f=parseInt(t[2],16),h=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(d=parseInt(t[1]+t[1],16),f=parseInt(t[2]+t[2],16),h=parseInt(t[3]+t[3],16)),d=0>d?0:d>255?255:d,f=0>f?0:f>255?255:f,h=0>h?0:h>255?255:h,u}var u=this,d=0,f=0,h=0;e&&c(e),u.toRgb=s,u.toHsv=l,u.toHex=a,u.parse=c}var t=Math.min,n=Math.max,r=Math.round;return e}),r(xt,[De,we,pe,Ct],function(e,t,n,r){return e.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){function e(e,t){var r=n.getPos(e),i,o;return i=t.pageX-r.x,o=t.pageY-r.y,i=Math.max(0,Math.min(i/e.clientWidth,1)),o=Math.max(0,Math.min(o/e.clientHeight,1)),{x:i,y:o}}function i(e,t){var i=(360-e.h)/360;n.css(d,{top:100*i+"%"}),t||n.css(h,{left:e.s+"%",top:100-e.v+"%"}),f.style.background=new r({s:100,v:100,h:e.h}).toHex(),s.color().parse({s:e.s,v:e.v,h:e.h})}function o(t){var n;n=e(f,t),c.s=100*n.x,c.v=100*(1-n.y),i(c),s.fire("change")}function a(t){var n;n=e(u,t),c=l.toHsv(),c.h=360*(1-n.y),i(c,!0),s.fire("change")}var s=this,l=s.color(),c,u,d,f,h;u=s.getEl("h"),d=s.getEl("hp"),f=s.getEl("sv"),h=s.getEl("svp"),s._repaint=function(){c=l.toHsv(),i(c)},s._super(),s._svdraghelper=new t(s._id+"-sv",{start:o,drag:o}),s._hdraghelper=new t(s._id+"-h",{start:a,drag:a}),s._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){var t=this;return arguments.length?(t.color().parse(e),void(t._rendered&&t._repaint())):t.color().toHex()},color:function(){return this._color||(this._color=new r),this._color},renderHtml:function(){function e(){var e,t,n="",i,a;for(i="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",a=o.split(","),e=0,t=a.length-1;t>e;e++)n+='<div class="'+r+'colorpicker-h-chunk" style="height:'+100/t+"%;"+i+a[e]+",endColorstr="+a[e+1]+");-ms-"+i+a[e]+",endColorstr="+a[e+1]+')"></div>';return n}var t=this,n=t._id,r=t.classPrefix,i,o="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",a="background: -ms-linear-gradient(top,"+o+");background: linear-gradient(to bottom,"+o+");";return i='<div id="'+n+'-h" class="'+r+'colorpicker-h" style="'+a+'">'+e()+'<div id="'+n+'-hp" class="'+r+'colorpicker-h-marker"></div></div>','<div id="'+n+'" class="'+t.classes+'"><div id="'+n+'-sv" class="'+r+'colorpicker-sv"><div class="'+r+'colorpicker-overlay1"><div class="'+r+'colorpicker-overlay2"><div id="'+n+'-svp" class="'+r+'colorpicker-selector1"><div class="'+r+'colorpicker-selector2"></div></div></div></div></div>'+i+"</div>"}})}),r(wt,[De],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.classes.add("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.row()[n],index:n})}),t.row(t.settings.row)},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes+'">'+e._getDataPathHtml(e.state.get("row"))+"</div>"},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(e){var t=this,n=e||[],r,i,o="",a=t.classPrefix;for(r=0,i=n.length;i>r;r++)o+=(r>0?'<div class="'+a+'divider" aria-hidden="true"> '+t.settings.delimiter+" </div>":"")+'<div role="button" class="'+a+"path-item"+(r==i-1?" "+a+"last":"")+'" data-index="'+r+'" tabindex="-1" id="'+t._id+"-"+r+'" aria-level="'+r+'">'+n[r].name+"</div>";return o||(o='<div class="'+a+'path-item">\xa0</div>'),o}})}),r(Nt,[wt],function(e){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var t=this,n=t.settings.editor;return n.settings.elementpath!==!1&&(t.on("select",function(e){n.focus(),n.selection.select(this.row()[e.index].element),n.nodeChanged()}),n.on("nodeChange",function(r){for(var i=[],o=r.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=n.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});if(s.isDefaultPrevented()||i.push({name:s.name,element:o[a]}),s.isPropagationStopped())break}t.row(i)})),t._super()}})}),r(Et,[xe],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(_t,[xe,Et,m],function(e,t,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,r=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),r.each(function(r){var i,o=r.settings.label;o&&(i=new t(n.extend({items:{type:"label",id:r._id+"-l",text:o,flex:0,forId:r._id,disabled:r.disabled()}},e.settings.formItemDefaults)),i.type="formitem",r.aria("labelledby",r._id+"-l"),"undefined"==typeof r.settings.flex&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.fromJSON(e.settings.data)},bindStates:function(){function e(){var e=0,n=[],r,i,o;if(t.settings.labelGapCalc!==!1)for(o="children"==t.settings.labelGapCalc?t.find("formitem"):t.items(),o.filter("formitem").each(function(t){var r=t.items()[0],i=r.getEl().clientWidth;e=i>e?i:e,n.push(r)}),i=t.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=e+i}var t=this;t._super(),t.on("show",e),e()}})}),r(St,[_t],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(kt,[gt,m],function(e,t){return e.extend({init:function(e){var n=this,r=tinymce.activeEditor,i=r.settings,o,a,s;e.spellcheck=!1,s=i.file_picker_types||i.file_browser_callback_types,s&&(s=t.makeMap(s,/[, ]/)),s&&!s[e.filetype]||(a=i.file_picker_callback,!a||s&&!s[e.filetype]?(a=i.file_browser_callback,!a||s&&!s[e.filetype]||(o=function(){a(n.getEl("inp").id,n.value(),e.filetype,window)})):o=function(){var i=n.fire("beforecall").meta;i=t.extend({filetype:e.filetype},i),a.call(r,function(e,t){n.value(e).fire("change",{meta:t})},n.value(),i)}),o&&(e.icon="browse",e.onaction=o),n._super(e)}})}),r(Tt,[ft],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Rt,[ft],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v=[],y,b,C,x,w,N,E,_,S,k,T,R,A,B,D,L,M,P,H,O,I,F,z=Math.max,U=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e.paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,"row-reversed"!=f&&"column-reverse"!=f||(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",E="h",_="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",H="left",M="w",D="x",L="innerW",P="minW",O="right",I="deltaW",F="contentW"):(S="x",E="w",_="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",H="top",M="h",D="y",L="innerH",P="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],N=u=0,t=0,n=r.length;n>t;t++)h=r[t],p=h.layoutRect(),m=h.settings,g=m.flex,d-=n-1>t?c:0,g>0&&(u+=g,p[k]&&v.push(h),p.flex=g),d-=p[_],y=o[H]+p[P]+o[O],y>N&&(N=y);if(x={},0>d?x[_]=i[_]-d+i[A]:x[_]=i[R]-d+i[A],x[P]=N+i[I],x[B]=i[R]-d,x[F]=N,x.minW=U(x.minW,i.maxW),x.minH=U(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)h=v[t],p=h.layoutRect(),b=p[k],y=p[_]+p.flex*C,y>b?(d-=p[k]-p[_],u-=p.flex,p.flex=0,p.maxFlexSize=b):p.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[D]=o[H],t=0,n=r.length;n>t;t++)h=r[t],p=h.layoutRect(),y=p.maxFlexSize||p[_],"center"===s?x[D]=Math.round(i[L]/2-p[M]/2):"stretch"===s?(x[M]=z(p[P]||0,i[L]-o[H]-o[O]),x[D]=o[H]):"end"===s&&(x[D]=i[L]-p[M]-o.top),p.flex>0&&(y+=p.flex*C),x[E]=y,x[S]=w,h.layoutRect(x),h.recalc&&h.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var W=e.parent();W&&(W._lastRect=null,W.recalc())}}})}),r(At,[dt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNative:function(){return!0}})}),r(Bt,[ye,De,ke,m,rt,d],function(e,t,n,r,i,o){function a(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function r(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function i(){function t(e){var n=[];if(e)return s(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{
-var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a,o.cmd=e.cmd}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?e.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var t=this;t.parent().on("show",function(){var n,r;n=t.settings.format,n&&(t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))),r=t.settings.cmd,r&&t.active(e.queryCommandState(r))})},onclick:function(){this.settings.format&&c(this.settings.format),this.settings.cmd&&e.execCommand(this.settings.cmd)}}}}function o(t){return function(){var n=this;e.formatter?e.formatter.formatChanged(t,function(e){n.active(e)}):e.on("init",function(){e.formatter.formatChanged(t,function(e){n.active(e)})})}}function a(t){return function(){function n(){return e.undoManager?e.undoManager[t]():!1}var r=this;t="redo"==t?"hasRedo":"hasUndo",r.disabled(!n()),e.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){r.disabled(e.readonly||!n())})}}function l(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function c(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var u;u=i(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:o(n),onclick:function(){c(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:o(n)})}),e.addButton("undo",{tooltip:"Undo",onPostRender:a("undo"),cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:a("redo"),cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:a("undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:a("redo"),cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:l,cmd:"mceToggleVisualAid"}),e.addButton("remove",{tooltip:"Remove",icon:"remove",cmd:"Delete"}),s({cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"],bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:u}),e.addButton("formatselect",function(){var n=[],i=r(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");return s(i,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:i[0][0],values:n,fixedWidth:!0,onselect:c,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",i=[],o=r(e.settings.font_formats||n);return s(o,function(e){i.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:t(i,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return s(i.split(" "),function(e){var t=e,r=e,i=e.split("=");i.length>1&&(t=i[0],r=i[1]),n.push({text:t,value:r})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:u})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(Dt,[ft],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v,y,b,C,x,w,N,E=[],_=[],S,k,T,R,A,B;t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e.paddingBox,A="reverseRows"in t?t.reverseRows:e.isRtl(),C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]);for(d=0;r>d;d++)E.push(0);for(f=0;n>f;f++)_.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),S=c.minW,k=c.minH,E[d]=S>E[d]?S:E[d],_[f]=k>_[f]?k:_[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=E[d]+(d>0?y:0),T-=(d>0?y:0)+E[d];for(R=o.innerH-g.top-g.bottom,N=0,f=0;n>f;f++)N+=_[f]+(f>0?b:0),R-=(f>0?b:0)+_[f];if(w+=g.left+g.right,N+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=N+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:R>0?Math.floor(R/n):0;var L=0,M=t.flexWidths;if(M)for(d=0;d<M.length;d++)L+=M[d];else L=r;var P=T/L;for(d=0;r>d;d++)E[d]+=M?M[d]*P:P;for(p=g.top,f=0;n>f;f++){for(h=g.left,s=_[f]+D,d=0;r>d&&(B=A?f*r+r-1-d:f*r+d,u=i[B],u);d++)m=u.settings,c=u.layoutRect(),a=Math.max(E[d],c.startMinWidth),c.x=h,c.y=p,v=m.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=h+a/2-c.w/2:"right"==v?c.x=h+a-c.w:"stretch"==v&&(c.w=a),v=m.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=p+s/2-c.h/2:"bottom"==v?c.y=p+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),h+=a+y,u.recalc&&u.recalc();p+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var H=e.parent();H&&(H._lastRect=null,H.recalc())}}})}),r(Lt,[De,u],function(e,t){return e.extend({renderHtml:function(){var e=this;return e.classes.add("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,n){var r=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,n&&n()):t.setTimeout(function(){r.html(e)}),this}})}),r(Mt,[De],function(e){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("infobox"),t.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+e.encode(e.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+t+"ico "+t+'i-help"></i></button></div></div>'},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e.state.on("change:help",function(t){e.classes.toggle("has-help",t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}})}),r(Pt,[De,pe],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("label"),t.canFocus=!1,e.multiline&&t.classes.add("autoscroll"),e.strong&&t.classes.add("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.classes.add("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e=this,t,n,r=e.settings.forId;return!r&&(n=e.settings.forName)&&(t=e.getRoot().find("#"+n)[0],t&&(r=t._id)),r?'<label id="'+e._id+'" class="'+e.classes+'"'+(r?' for="'+r+'"':"")+">"+e.encode(e.state.get("text"))+"</label>":'<span id="'+e._id+'" class="'+e.classes+'">'+e.encode(e.state.get("text"))+"</span>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.innerHtml(e.encode(t.value)),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}})}),r(Ht,[xe],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.classes.add("toolbar")},postRender:function(){var e=this;return e.items().each(function(e){e.classes.add("toolbar-item")}),e._super()}})}),r(Ot,[Ht],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(It,[ht,be,Ot],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),e=t.settings,t.classes.add("menubtn"),e.fixedWidth&&t.classes.add("fixed-width"),t.aria("haspopup",!0),t.state.set("menu",e.menu||t.render())},showMenu:function(){var e=this,n;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(n=e.state.get("menu")||[],n.length?n={type:"menu",items:n}:n.type=n.type||"menu",n.renderTo?e.menu=n.parent(e).show().renderTo():e.menu=t.create(n).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.classes.toggle("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon,o,a=e.state.get("text"),s="";return o=e.settings.image,o?(i="none","string"!=typeof o&&(o=window.getSelection?o[0]:o[1]),o=" style=\"background-image: url('"+o+"')\""):o="",a&&(e.classes.add("btn-has-text"),s='<span class="'+r+'txt">'+e.encode(a)+"</span>"),i=e.settings.icon?r+"ico "+r+"i-"+i:"",e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"'+o+"></i>":"")+s+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},bindStates:function(){var e=this;return e.state.on("change:menu",function(){e.menu&&e.menu.remove(),e.menu=null}),e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Ft,[De,be,d,u],function(e,t,n,r){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this,n;t._super(e),e=t.settings,t.classes.add("menu-item"),e.menu&&t.classes.add("menu-item-expand"),e.preview&&t.classes.add("menu-item-preview"),n=t.state.get("text"),"-"!==n&&"|"!==n||(t.classes.add("menu-item-sep"),t.aria("role","separator"),t.state.set("text","-")),e.selectable&&(t.aria("role","menuitemcheckbox"),t.classes.add("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.classes.add("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("show hide",function(e){e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),r.on("hide",function(t){t.control===r&&e.classes.remove("selected")}),r.submenu=!0),r._parentMenu=i,r.classes.add("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.classes.remove(r._lastRel).add(o),r._lastRel=o,e.classes.add("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){function e(e){var t,r,i={};for(i=n.mac?{alt:"&#x2325;",ctrl:"&#x2318;",shift:"&#x21E7;",meta:"&#x2318;"}:{meta:"Ctrl"},e=e.split("+"),t=0;t<e.length;t++)r=i[e[t].toLowerCase()],r&&(e[t]=r);return e.join("+")}var t=this,r=t._id,i=t.settings,o=t.classPrefix,a=t.encode(t.state.get("text")),s=t.settings.icon,l="",c=i.shortcut;return s&&t.parent().classes.add("menu-has-icons"),i.image&&(l=" style=\"background-image: url('"+i.image+"')\""),c&&(c=e(c)),s=o+"ico "+o+"i-"+(t.settings.icon||"none"),'<div id="'+r+'" class="'+t.classes+'" tabindex="-1">'+("-"!==a?'<i class="'+s+'"'+l+"></i>\xa0":"")+("-"!==a?'<span id="'+r+'-text" class="'+o+'text">'+a+"</span>":"")+(c?'<div id="'+r+'-shortcut" class="'+o+'menu-shortcut">'+c+"</div>":"")+(i.menu?'<div class="'+o+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var i=e.getEl("text");i&&i.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),r.requestAnimationFrame(function(){e.parent().hideAll()})))}),e._super(),e},hover:function(){var e=this;return e.parent().items().each(function(e){e.classes.remove("selected")}),e.classes.toggle("selected",!0),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(zt,[g,ye,u],function(e,t,n){return function(r,i){var o=this,a,s=t.classPrefix,l;o.show=function(t,c){function u(){a&&(e(r).append('<div class="'+s+"throbber"+(i?" "+s+"throbber-inline":"")+'"></div>'),c&&c())}return o.hide(),a=!0,t?l=n.setTimeout(u,t):u(),o},o.hide=function(){var e=r.lastChild;return n.clearTimeout(l),e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),a=!1,o}}}),r(Ut,[ke,Ft,zt,m],function(e,t,n,r){return e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var n=e.items,i=n.length;i--;)n[i]=r.extend({},e.itemDefaults,n[i]);t._super(e),t.classes.add("menu")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},load:function(){function e(){t.throbber&&(t.throbber.hide(),t.throbber=null)}var t=this,r,i;i=t.settings.itemsFactory,i&&(t.throbber||(t.throbber=new n(t.getEl("body"),!0),0===t.items().length?(t.throbber.show(),t.fire("loading")):t.throbber.show(100,function(){t.items().remove(),t.fire("loading")}),t.on("hide close",e)),t.requestTime=r=(new Date).getTime(),t.settings.itemsFactory(function(n){return 0===n.length?void t.hide():void(t.requestTime===r&&(t.getEl().style.width="",t.getEl("body").style.width="",e(),t.items().remove(),t.getEl("body").innerHTML="",t.add(n),t.renderNew(),t.fire("loaded")))}))},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.image||n.selectable?(e._hasIcons=!0,!1):void 0}),e.settings.itemsFactory&&e.on("postrender",function(){e.settings.itemsFactory&&e.load()}),e._super()}})}),r(Wt,[It,Ut],function(e,t){return e.extend({init:function(e){function t(r){for(var a=0;a<r.length;a++){if(i=r[a].selected||e.value===r[a].value)return o=o||r[a].text,n.state.set("value",r[a].value),!0;if(r[a].menu&&t(r[a].menu))return!0}}var n=this,r,i,o,a;n._super(e),e=n.settings,n._values=r=e.values,r&&("undefined"!=typeof e.value&&t(r),!i&&r.length>0&&(o=r[0].text,n.state.set("value",r[0].value)),n.state.set("menu",r)),n.state.set("text",e.text||o),n.classes.add("listbox"),n.on("select",function(t){var r=t.control;a&&(t.lastControl=a),e.multiple?r.active(!r.active()):n.value(t.control.value()),a=r})},bindStates:function(){function e(e,n){e instanceof t&&e.items().each(function(e){e.hasMenus()||e.active(e.value()===n)})}function n(e,t){var r;if(e)for(var i=0;i<e.length;i++){if(e[i].value===t)return e[i];if(e[i].menu&&(r=n(e[i].menu,t)))return r}}var r=this;return r.on("show",function(t){e(t.control,r.value())}),r.state.on("change:value",function(e){var t=n(r.state.get("menu"),e.value);t?r.text(t.text):r.text(r.settings.text)}),r._super()}})}),r(Vt,[mt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r($t,[De,we],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.classes.add("resizehandle"),"both"==e.settings.direction&&e.classes.add("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(qt,[De],function(e){function t(e){var t="";if(e)for(var n=0;n<e.length;n++)t+='<option value="'+e[n]+'">'+e[n]+"</option>";return t}return e.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var t=this;t._super(e),t.settings.size&&(t.size=t.settings.size),t.settings.options&&(t._options=t.settings.options),t.on("keydown",function(e){var n;13==e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){return e.toJSON?(n=e,!1):void 0}),t.fire("submit",{data:n.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e=this,n,r="";return n=t(e._options),e.size&&(r=' size = "'+e.size+'"'),'<select id="'+e._id+'" class="'+e.classes+'"'+r+">"+n+"</select>"},bindStates:function(){var e=this;return e.state.on("change:options",function(n){e.getEl().innerHTML=t(n.value)}),e._super()}})}),r(jt,[De,we,pe],function(e,t,n){function r(e,t,n){return t>e&&(e=t),e>n&&(e=n),e}function i(e,t,n){e.setAttribute("aria-"+t,n)}function o(e,t){var r,o,a,s,l,c;"v"==e.settings.orientation?(s="top",a="height",o="h"):(s="left",a="width",o="w"),c=e.getEl("handle"),r=(e.layoutRect()[o]||100)-n.getSize(c)[a],l=r*((t-e._minValue)/(e._maxValue-e._minValue))+"px",c.style[s]=l,c.style.height=e.layoutRect().h+"px",i(c,"valuenow",t),i(c,"valuetext",""+e.settings.previewFilter(t)),i(c,"valuemin",e._minValue),i(c,"valuemax",e._maxValue)}return e.extend({init:function(e){var t=this;e.previewFilter||(e.previewFilter=function(e){return Math.round(100*e)/100}),t._super(e),t.classes.add("slider"),"v"==e.orientation&&t.classes.add("vertical"),t._minValue=e.minValue||0,t._maxValue=e.maxValue||100,t._initValue=t.state.get("value")},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'"><div id="'+t+'-handle" class="'+n+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){function e(e,t,n){return(n+e)/(t-e)}function i(e,t,n){return n*(t-e)-e}function o(t,n){function o(o){var a;a=s.value(),a=i(t,n,e(t,n,a)+.05*o),a=r(a,t,n),s.value(a),s.fire("dragstart",{value:a}),s.fire("drag",{value:a}),s.fire("dragend",{value:a})}s.on("keydown",function(e){switch(e.keyCode){case 37:case 38:o(-1);break;case 39:case 40:o(1)}})}function a(e,i,o){var a,l,c,p,m;s._dragHelper=new t(s._id,{handle:s._id+"-handle",start:function(e){a=e[u],l=parseInt(s.getEl("handle").style[d],10),c=(s.layoutRect()[h]||100)-n.getSize(o)[f],s.fire("dragstart",{value:m})},drag:function(t){var n=t[u]-a;p=r(l+n,0,c),o.style[d]=p+"px",m=e+p/c*(i-e),s.value(m),s.tooltip().text(""+s.settings.previewFilter(m)).show().moveRel(o,"bc tc"),s.fire("drag",{value:m})},stop:function(){s.tooltip().hide(),s.fire("dragend",{value:m})}})}var s=this,l,c,u,d,f,h;l=s._minValue,c=s._maxValue,"v"==s.settings.orientation?(u="screenY",d="top",f="height",h="h"):(u="screenX",d="left",f="width",h="w"),s._super(),o(l,c,s.getEl("handle")),a(l,c,s.getEl("handle"))},repaint:function(){this._super(),o(this,this.value())},bindStates:function(){var e=this;return e.state.on("change:value",function(t){o(e,t.value)}),e._super()}})}),r(Yt,[De],function(e){return e.extend({renderHtml:function(){var e=this;return e.classes.add("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"></div>'}})}),r(Xt,[It,pe,g],function(e,t,n){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,r=e.getEl(),i=e.layoutRect(),o,a;return e._super(),o=r.firstChild,a=r.lastChild,n(o).css({width:i.w-t.getSize(a).width,height:i.h-2}),n(a).css({height:i.h-2}),e},activeMenu:function(e){var t=this;n(t.getEl().lastChild).toggleClass(t.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r,i=e.state.get("icon"),o=e.state.get("text"),a="";return r=e.settings.image,r?(i="none","string"!=typeof r&&(r=window.getSelection?r[0]:r[1]),r=" style=\"background-image: url('"+r+"')\""):r="",i=e.settings.icon?n+"ico "+n+"i-"+i:"",o&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(o)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(i?'<i class="'+i+'"'+r+"></i>":"")+a+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1">'+(e._menuBtnText?(i?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void(t&&t.call(this,e));n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(Kt,[At],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}})}),r(Gt,[Ee,g,pe],function(e,t,n){return e.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t(n).removeClass(this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t(n).addClass(this.classPrefix+"active"),this.items()[e].show().fire("showtab"),this.reflow(),this.items().each(function(t,n){e!=n&&t.hide()})},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,t,r,i;r=n.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(e){r=Math.max(r,e.layoutRect().minW),i=Math.max(i,e.layoutRect().minH)}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=n.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,t=e._super(),t.deltaH+=o,t.innerH=t.h-t.deltaH,t}})}),r(Jt,[De,m,pe],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("textbox"),e.multiline?t.classes.add("multiline"):(t.on("keydown",function(e){var n;13==e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){return e.toJSON?(n=e,!1):void 0}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){t.state.set("value",e.target.value)}))},repaint:function(){var e=this,t,n,r,i,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e.borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,r=e.settings,i,o;return i={id:e._id,hidefocus:"1"},t.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(e){i[e]=r[e]}),e.disabled()&&(i.disabled="disabled"),r.subtype&&(i.type=r.subtype),o=n.create(r.multiline?"textarea":"input",i),o.value=e.state.get("value"),o.className=e.classes,o.outerHTML},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var e=this;e.getEl().value=e.state.get("value"),e._super(),e.$el.on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)})},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl().value!=t.value&&(e.getEl().value=t.value)}),e.state.on("change:disabled",function(t){e.getEl().disabled=t.value}),e._super()},remove:function(){this.$el.off(),this._super()}})}),r(Qt,[],function(){var e=this||window,t=function(){return e.tinymce};return"function"==typeof e.define&&(e.define.amd||e.define("ephox/tinymce",[],t)),{}}),a([l,c,u,d,f,h,m,g,v,y,C,w,N,E,T,A,B,D,L,M,P,H,I,F,j,Y,J,Q,oe,ae,se,le,ue,fe,he,ve,ye,be,Ce,xe,we,Ne,Ee,_e,Se,ke,Te,Re,Ae,Be,De,Le,Me,Pe,Ie,ze,et,tt,nt,rt,ot,at,st,lt,ct,ut,dt,ft,ht,pt,mt,gt,vt,yt,bt,Ct,xt,wt,Nt,Et,_t,St,kt,Tt,Rt,At,Bt,Dt,Lt,Mt,Pt,Ht,Ot,It,Ft,zt,Ut,Wt,Vt,$t,qt,jt,Yt,Xt,Kt,Gt,Jt])}(this);
\ No newline at end of file
+// 4.4.3 (2016-09-01)
+!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){var r,i,o,a,l;for(r=0;r<n.length;r++){i=e,o=n[r],a=o.split(/[.\/]/);for(var c=0;c<a.length-1;++c)i[a[c]]===t&&(i[a[c]]={}),i=i[a[c]];i[a[a.length-1]]=s[o]}if(e.AMDLC_TESTS){l=e.privateModules||{};for(o in s)l[o]=s[o];for(r=0;r<n.length;r++)delete l[n[r]];e.privateModules=l}}var s={},l="tinymce/geom/Rect",c="tinymce/util/Promise",u="tinymce/util/Delay",d="tinymce/Env",f="tinymce/dom/EventUtils",h="tinymce/dom/Sizzle",p="tinymce/util/Arr",m="tinymce/util/Tools",g="tinymce/dom/DomQuery",v="tinymce/html/Styles",y="tinymce/dom/TreeWalker",b="tinymce/dom/Range",C="tinymce/html/Entities",x="tinymce/dom/StyleSheetLoader",w="tinymce/dom/DOMUtils",N="tinymce/dom/ScriptLoader",E="tinymce/AddOnManager",_="tinymce/dom/NodeType",S="tinymce/text/Zwsp",k="tinymce/caret/CaretContainer",T="tinymce/dom/RangeUtils",R="tinymce/NodeChange",A="tinymce/html/Node",B="tinymce/html/Schema",D="tinymce/html/SaxParser",L="tinymce/html/DomParser",M="tinymce/html/Writer",P="tinymce/html/Serializer",O="tinymce/dom/Serializer",H="tinymce/dom/TridentSelection",I="tinymce/util/VK",F="tinymce/dom/ControlSelection",z="tinymce/util/Fun",U="tinymce/caret/CaretCandidate",W="tinymce/geom/ClientRect",V="tinymce/text/ExtendingChar",$="tinymce/caret/CaretPosition",q="tinymce/caret/CaretBookmark",j="tinymce/dom/BookmarkManager",Y="tinymce/dom/Selection",X="tinymce/dom/ElementUtils",K="tinymce/fmt/Preview",G="tinymce/fmt/Hooks",J="tinymce/Formatter",Q="tinymce/UndoManager",Z="tinymce/EnterKey",ee="tinymce/ForceBlocks",te="tinymce/caret/CaretUtils",ne="tinymce/caret/CaretWalker",re="tinymce/InsertList",ie="tinymce/InsertContent",oe="tinymce/EditorCommands",ae="tinymce/util/URI",se="tinymce/util/Class",le="tinymce/util/EventDispatcher",ce="tinymce/data/Binding",ue="tinymce/util/Observable",de="tinymce/data/ObservableObject",fe="tinymce/ui/Selector",he="tinymce/ui/Collection",pe="tinymce/ui/DomUtils",me="tinymce/ui/BoxUtils",ge="tinymce/ui/ClassList",ve="tinymce/ui/ReflowQueue",ye="tinymce/ui/Control",be="tinymce/ui/Factory",Ce="tinymce/ui/KeyboardNavigation",xe="tinymce/ui/Container",we="tinymce/ui/DragHelper",Ne="tinymce/ui/Scrollable",Ee="tinymce/ui/Panel",_e="tinymce/ui/Movable",Se="tinymce/ui/Resizable",ke="tinymce/ui/FloatPanel",Te="tinymce/ui/Window",Re="tinymce/ui/MessageBox",Ae="tinymce/WindowManager",Be="tinymce/ui/Tooltip",De="tinymce/ui/Widget",Le="tinymce/ui/Progress",Me="tinymce/ui/Notification",Pe="tinymce/NotificationManager",Oe="tinymce/dom/NodePath",He="tinymce/util/Quirks",Ie="tinymce/EditorObservable",Fe="tinymce/Mode",ze="tinymce/Shortcuts",Ue="tinymce/file/Uploader",We="tinymce/file/Conversions",Ve="tinymce/file/ImageScanner",$e="tinymce/file/BlobCache",qe="tinymce/file/UploadStatus",je="tinymce/EditorUpload",Ye="tinymce/caret/FakeCaret",Xe="tinymce/dom/Dimensions",Ke="tinymce/caret/LineWalker",Ge="tinymce/caret/LineUtils",Je="tinymce/dom/MousePosition",Qe="tinymce/DragDropOverrides",Ze="tinymce/SelectionOverrides",et="tinymce/util/Uuid",tt="tinymce/Editor",nt="tinymce/util/I18n",rt="tinymce/FocusManager",it="tinymce/EditorManager",ot="tinymce/LegacyInput",at="tinymce/util/XHR",st="tinymce/util/JSON",lt="tinymce/util/JSONRequest",ct="tinymce/util/JSONP",ut="tinymce/util/LocalStorage",dt="tinymce/Compat",ft="tinymce/ui/Layout",ht="tinymce/ui/AbsoluteLayout",pt="tinymce/ui/Button",mt="tinymce/ui/ButtonGroup",gt="tinymce/ui/Checkbox",vt="tinymce/ui/ComboBox",yt="tinymce/ui/ColorBox",bt="tinymce/ui/PanelButton",Ct="tinymce/ui/ColorButton",xt="tinymce/util/Color",wt="tinymce/ui/ColorPicker",Nt="tinymce/ui/Path",Et="tinymce/ui/ElementPath",_t="tinymce/ui/FormItem",St="tinymce/ui/Form",kt="tinymce/ui/FieldSet",Tt="tinymce/ui/FilePicker",Rt="tinymce/ui/FitLayout",At="tinymce/ui/FlexLayout",Bt="tinymce/ui/FlowLayout",Dt="tinymce/ui/FormatControls",Lt="tinymce/ui/GridLayout",Mt="tinymce/ui/Iframe",Pt="tinymce/ui/InfoBox",Ot="tinymce/ui/Label",Ht="tinymce/ui/Toolbar",It="tinymce/ui/MenuBar",Ft="tinymce/ui/MenuButton",zt="tinymce/ui/MenuItem",Ut="tinymce/ui/Throbber",Wt="tinymce/ui/Menu",Vt="tinymce/ui/ListBox",$t="tinymce/ui/Radio",qt="tinymce/ui/ResizeHandle",jt="tinymce/ui/SelectBox",Yt="tinymce/ui/Slider",Xt="tinymce/ui/Spacer",Kt="tinymce/ui/SplitButton",Gt="tinymce/ui/StackLayout",Jt="tinymce/ui/TabPanel",Qt="tinymce/ui/TextBox",Zt="tinymce/Register";r(l,[],function(){function e(e,t,n){var r,i,a,s,l,u;return r=t.x,i=t.y,a=e.w,s=e.h,l=t.w,u=t.h,n=(n||"").split(""),"b"===n[0]&&(i+=u),"r"===n[1]&&(r+=l),"c"===n[0]&&(i+=c(u/2)),"c"===n[1]&&(r+=c(l/2)),"b"===n[3]&&(i-=s),"r"===n[4]&&(r-=a),"c"===n[3]&&(i-=c(s/2)),"c"===n[4]&&(r-=c(a/2)),o(r,i,a,s)}function t(t,n,r,i){var o,a;for(a=0;a<i.length;a++)if(o=e(t,n,i[a]),o.x>=r.x&&o.x+o.w<=r.w+r.x&&o.y>=r.y&&o.y+o.h<=r.h+r.y)return i[a];return null}function n(e,t,n){return o(e.x-t,e.y-n,e.w+2*t,e.h+2*n)}function r(e,t){var n,r,i,a;return n=l(e.x,t.x),r=l(e.y,t.y),i=s(e.x+e.w,t.x+t.w),a=s(e.y+e.h,t.y+t.h),0>i-n||0>a-r?null:o(n,r,i-n,a-r)}function i(e,t,n){var r,i,a,s,c,u,d,f,h,p;return c=e.x,u=e.y,d=e.x+e.w,f=e.y+e.h,h=t.x+t.w,p=t.y+t.h,r=l(0,t.x-c),i=l(0,t.y-u),a=l(0,d-h),s=l(0,f-p),c+=r,u+=i,n&&(d+=r,f+=i,c-=a,u-=s),d-=a,f-=s,o(c,u,d-c,f-u)}function o(e,t,n,r){return{x:e,y:t,w:n,h:r}}function a(e){return o(e.left,e.top,e.width,e.height)}var s=Math.min,l=Math.max,c=Math.round;return{inflate:n,relativePosition:e,findBestRelativePosition:t,intersect:r,clamp:i,create:o,fromClientRect:a}}),r(c,[],function(){function e(e,t){return function(){e.apply(t,arguments)}}function t(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],s(t,e(r,this),e(i,this))}function n(e){var t=this;return null===this._state?void this._deferreds.push(e):void l(function(){var n=t._state?e.onFulfilled:e.onRejected;if(null===n)return void(t._state?e.resolve:e.reject)(t._value);var r;try{r=n(t._value)}catch(i){return void e.reject(i)}e.resolve(r)})}function r(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void s(e(n,t),e(r,this),e(i,this))}this._state=!0,this._value=t,o.call(this)}catch(a){i.call(this,a)}}function i(e){this._state=!1,this._value=e,o.call(this)}function o(){for(var e=0,t=this._deferreds.length;t>e;e++)n.call(this,this._deferreds[e]);this._deferreds=null}function a(e,t,n,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}function s(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(i){if(r)return;r=!0,n(i)}}if(window.Promise)return window.Promise;var l=t.immediateFn||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,1)},c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return t.prototype["catch"]=function(e){return this.then(null,e)},t.prototype.then=function(e,r){var i=this;return new t(function(t,o){n.call(i,new a(e,r,t,o))})},t.all=function(){var e=Array.prototype.slice.call(1===arguments.length&&c(arguments[0])?arguments[0]:arguments);return new t(function(t,n){function r(o,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(e){r(o,e)},n)}e[o]=a,0===--i&&t(e)}catch(l){n(l)}}if(0===e.length)return t([]);for(var i=e.length,o=0;o<e.length;o++)r(o,e[o])})},t.resolve=function(e){return e&&"object"==typeof e&&e.constructor===t?e:new t(function(t){t(e)})},t.reject=function(e){return new t(function(t,n){n(e)})},t.race=function(e){return new t(function(t,n){for(var r=0,i=e.length;i>r;r++)e[r].then(t,n)})},t}),r(u,[c],function(e){function t(e,t){function n(e){window.setTimeout(e,0)}var r,i=window.requestAnimationFrame,o=["ms","moz","webkit"];for(r=0;r<o.length&&!i;r++)i=window[o[r]+"RequestAnimationFrame"];i||(i=n),i(e,t)}function n(e,t){return"number"!=typeof t&&(t=0),setTimeout(e,t)}function r(e,t){return"number"!=typeof t&&(t=1),setInterval(e,t)}function i(e){return clearTimeout(e)}function o(e){return clearInterval(e)}var a;return{requestAnimationFrame:function(n,r){return a?void a.then(n):void(a=new e(function(e){r||(r=document.body),t(e,r)}).then(n))},setTimeout:n,setInterval:r,setEditorTimeout:function(e,t,r){return n(function(){e.removed||t()},r)},setEditorInterval:function(e,t,n){var i;return i=r(function(){e.removed?clearInterval(i):t()},n)},throttle:function(e,t){var r,i;return i=function(){var i=arguments;clearTimeout(r),r=n(function(){e.apply(this,i)},t)},i.stop=function(){clearTimeout(r)},i},clearInterval:o,clearTimeout:i}}),r(d,[],function(){function e(e){return"matchMedia"in window?matchMedia(e).matches:!1}var t=navigator,n=t.userAgent,r,i,o,a,s,l,c,u,d,f,h,p,m;r=window.opera&&window.opera.buildNumber,d=/Android/.test(n),i=/WebKit/.test(n),o=!i&&!r&&/MSIE/gi.test(n)&&/Explorer/gi.test(t.appName),o=o&&/MSIE (\w+)\./.exec(n)[1],a=-1==n.indexOf("Trident/")||-1==n.indexOf("rv:")&&-1==t.appName.indexOf("Netscape")?!1:11,s=-1==n.indexOf("Edge/")||o||a?!1:12,o=o||a||s,l=!i&&!a&&/Gecko/.test(n),c=-1!=n.indexOf("Mac"),u=/(iPad|iPhone)/.test(n),f="FormData"in window&&"FileReader"in window&&"URL"in window&&!!URL.createObjectURL,h=e("only screen and (max-device-width: 480px)")&&(d||u),p=e("only screen and (min-width: 800px)")&&(d||u),m=-1!=n.indexOf("Windows Phone"),s&&(i=!1);var g=!u||f||n.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:r,webkit:i,ie:o,gecko:l,mac:c,iOS:u,android:d,contentEditable:g,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=o,range:window.getSelection&&"Range"in window,documentMode:o&&!s?document.documentMode||7:10,fileApi:f,ceFalse:o===!1||o>8,canHaveCSP:o===!1||o>11,desktop:!h&&!p,windowsPhone:m}}),r(f,[u,d],function(e,t){function n(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function r(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function i(e,t){var n,r=t;return n=e.path,n&&n.length>0&&(r=n[0]),e.deepPath&&(n=e.deepPath(),n&&n.length>0&&(r=n[0])),r}function o(e,n){function r(){return!1}function o(){return!0}var a,s=n||{},l;for(a in e)u[a]||(s[a]=e[a]);if(s.target||(s.target=s.srcElement||document),t.experimentalShadowDom&&(s.target=i(e,s.target)),e&&c.test(e.type)&&e.pageX===l&&e.clientX!==l){var d=s.target.ownerDocument||document,f=d.documentElement,h=d.body;s.pageX=e.clientX+(f&&f.scrollLeft||h&&h.scrollLeft||0)-(f&&f.clientLeft||h&&h.clientLeft||0),s.pageY=e.clientY+(f&&f.scrollTop||h&&h.scrollTop||0)-(f&&f.clientTop||h&&h.clientTop||0)}return s.preventDefault=function(){s.isDefaultPrevented=o,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},s.stopPropagation=function(){s.isPropagationStopped=o,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},s.stopImmediatePropagation=function(){s.isImmediatePropagationStopped=o,s.stopPropagation()},s.isDefaultPrevented||(s.isDefaultPrevented=r,s.isPropagationStopped=r,s.isImmediatePropagationStopped=r),"undefined"==typeof s.metaKey&&(s.metaKey=!1),s}function a(t,i,o){function a(){o.domLoaded||(o.domLoaded=!0,i(u))}function s(){("complete"===c.readyState||"interactive"===c.readyState&&c.body)&&(r(c,"readystatechange",s),a())}function l(){try{c.documentElement.doScroll("left")}catch(t){return void e.setTimeout(l)}a()}var c=t.document,u={type:"ready"};return o.domLoaded?void i(u):(c.addEventListener?"complete"===c.readyState?a():n(t,"DOMContentLoaded",a):(n(c,"readystatechange",s),c.documentElement.doScroll&&t.self===t.top&&l()),void n(t,"load",a))}function s(){function e(e,t){var n,r,o,a,s=i[t];if(n=s&&s[e.type])for(r=0,o=n.length;o>r;r++)if(a=n[r],a&&a.func.call(a.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var t=this,i={},s,c,u,d,f;c=l+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},s=1,t.domLoaded=!1,t.events=i,t.bind=function(r,l,h,p){function m(t){e(o(t||N.event),g)}var g,v,y,b,C,x,w,N=window;if(r&&3!==r.nodeType&&8!==r.nodeType){for(r[c]?g=r[c]:(g=s++,r[c]=g,i[g]={}),p=p||r,l=l.split(" "),y=l.length;y--;)b=l[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),t.domLoaded&&"ready"===b&&"complete"==r.readyState?h.call(p,o({type:b})):(d||(C=f[b],C&&(x=function(t){var n,r;if(n=t.currentTarget,r=t.relatedTarget,r&&n.contains)r=n.contains(r);else for(;r&&r!==n;)r=r.parentNode;r||(t=o(t||N.event),t.type="mouseout"===t.type?"mouseleave":"mouseenter",t.target=n,e(t,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(t){t=o(t||N.event),t.type="focus"===t.type?"focusin":"focusout",e(t,g)}),v=i[g][b],v?"ready"===b&&t.domLoaded?h({type:b}):v.push({func:h,scope:p}):(i[g][b]=v=[{func:h,scope:p}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?a(r,x,t):n(r,C||b,x,w)));return r=v=0,h}},t.unbind=function(e,n,o){var a,s,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return t;if(a=e[c]){if(f=i[a],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],s=f[d]){if(o)for(u=s.length;u--;)if(s[u].func===o){var h=s.nativeHandler,p=s.fakeName,m=s.capture;s=s.slice(0,u).concat(s.slice(u+1)),s.nativeHandler=h,s.fakeName=p,s.capture=m,f[d]=s}o&&0!==s.length||(delete f[d],r(e,s.fakeName||d,s.nativeHandler,s.capture))}}else{for(d in f)s=f[d],r(e,s.fakeName||d,s.nativeHandler,s.capture);f={}}for(d in f)return t;delete i[a];try{delete e[c]}catch(g){e[c]=null}}return t},t.fire=function(n,r,i){var a;if(!n||3===n.nodeType||8===n.nodeType)return t;i=o(null,i),i.type=r,i.target=n;do a=n[c],a&&e(i,a),n=n.parentNode||n.ownerDocument||n.defaultView||n.parentWindow;while(n&&!i.isPropagationStopped());return t},t.clean=function(e){var n,r,i=t.unbind;if(!e||3===e.nodeType||8===e.nodeType)return t;if(e[c]&&i(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(i(e),r=e.getElementsByTagName("*"),n=r.length;n--;)e=r[n],e[c]&&i(e);return t},t.destroy=function(){i={}},t.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var l="mce-data-",c=/^(?:mouse|contextmenu)|click/,u={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1};return s.Event=new s,s.Event.bind(window,"ready",function(){}),s}),r(h,[],function(){function e(e,t,n,r){var i,o,a,s,l,c,d,h,p,m;if((t?t.ownerDocument||t:z)!==D&&B(t),t=t||D,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(M&&!r){if(i=ve.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&x.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(x.qsa&&(!P||!P.test(e))){if(h=d=F,p=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=_(e),(d=t.getAttribute("id"))?h=d.replace(be,"\\$&"):t.setAttribute("id",h),h="[id='"+h+"'] ",l=c.length;l--;)c[l]=h+f(c[l]);p=ye.test(e)&&u(t.parentNode)||t,m=c.join(",")}if(m)try{return Z.apply(n,p.querySelectorAll(m)),n}catch(g){}finally{d||t.removeAttribute("id")}}}return k(e.replace(se,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>w.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&typeof e.getElementsByTagName!==Y&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function h(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=W++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c=[U,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[F]||(t[F]={}),(s=l[r])&&s[0]===U&&s[1]===o)return c[2]=s[2];if(l[r]=c,c[2]=e(t,n,a))return!0}}}function p(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(t,n,r){for(var i=0,o=n.length;o>i;i++)e(t,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),c&&t.push(s)));return a}function v(e,t,n,i,o,a){return i&&!i[F]&&(i=v(i)),o&&!o[F]&&(o=v(o,a)),r(function(r,a,s,l){var c,u,d,f=[],h=[],p=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,l),b=n?o||(r?e:p||i)?[]:a:y;if(n&&n(y,b,s,l),i)for(c=g(b,h),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[h[u]]=!(y[h[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(y[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?te.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=g(b===a?b.splice(p,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=h(function(e){return e===t},a,!0),c=h(function(e){return te.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=w.relative[e[s].type])u=[h(p(u),n)];else{if(n=w.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;i>r&&!w.relative[e[r].type];r++);return v(s>1&&p(u),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}u.push(n)}return p(u)}function b(t,n){var i=n.length>0,o=t.length>0,a=function(r,a,s,l,c){var u,d,f,h=0,p="0",m=r&&[],v=[],y=T,b=r||o&&w.find.TAG("*",c),C=U+=null==y?1:Math.random()||.1,x=b.length;for(c&&(T=a!==D&&a);p!==x&&null!=(u=b[p]);p++){if(o&&u){for(d=0;f=t[d++];)if(f(u,a,s)){l.push(u);break}c&&(U=C)}i&&((u=!f&&u)&&h--,r&&m.push(u))}if(h+=p,i&&p!==h){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(h>0)for(;p--;)m[p]||v[p]||(v[p]=J.call(l));v=g(v)}Z.apply(l,v),c&&!r&&v.length>0&&h+n.length>1&&e.uniqueSort(l)}return c&&(U=C,T=y),m};return i?r(a):a}var C,x,w,N,E,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F="sizzle"+-new Date,z=window.document,U=0,W=0,V=n(),$=n(),q=n(),j=function(e,t){return e===t&&(A=!0),0},Y=typeof t,X=1<<31,K={}.hasOwnProperty,G=[],J=G.pop,Q=G.push,Z=G.push,ee=G.slice,te=G.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},ne="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",re="[\\x20\\t\\r\\n\\f]",ie="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",oe="\\["+re+"*("+ie+")(?:"+re+"*([*^$|!~]?=)"+re+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+re+"*\\]",ae=":("+ie+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",se=new RegExp("^"+re+"+|((?:^|[^\\\\])(?:\\\\.)*)"+re+"+$","g"),le=new RegExp("^"+re+"*,"+re+"*"),ce=new RegExp("^"+re+"*([>+~]|"+re+")"+re+"*"),ue=new RegExp("="+re+"*([^\\]'\"]*?)"+re+"*\\]","g"),de=new RegExp(ae),fe=new RegExp("^"+ie+"$"),he={ID:new RegExp("^#("+ie+")"),CLASS:new RegExp("^\\.("+ie+")"),TAG:new RegExp("^("+ie+"|[*])"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+re+"*(even|odd|(([+-]|)(\\d*)n|)"+re+"*(?:([+-]|)"+re+"*(\\d+)|))"+re+"*\\)|)","i"),bool:new RegExp("^(?:"+ne+")$","i"),needsContext:new RegExp("^"+re+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+re+"*((?:-\\d)?\\d*)"+re+"*\\)|)(?=[^-]|$)","i")},pe=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=/'|\\/g,Ce=new RegExp("\\\\([\\da-f]{1,6}"+re+"?|("+re+")|.)","ig"),xe=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(G=ee.call(z.childNodes),z.childNodes),G[z.childNodes.length].nodeType}catch(we){Z={apply:G.length?function(e,t){Q.apply(e,ee.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=e.support={},E=e.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},B=e.setDocument=function(e){function t(e){try{return e.top}catch(t){}return null}var n,r=e?e.ownerDocument||e:z,o=r.defaultView;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,L=r.documentElement,M=!E(r),o&&o!==t(o)&&(o.addEventListener?o.addEventListener("unload",function(){B()},!1):o.attachEvent&&o.attachEvent("onunload",function(){B()})),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=ge.test(r.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!r.getElementsByName||!r.getElementsByName(F).length}),x.getById?(w.find.ID=function(e,t){if(typeof t.getElementById!==Y&&M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),w.find.TAG=x.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=x.getElementsByClassName&&function(e,t){return M?t.getElementsByClassName(e):void 0},O=[],P=[],(x.qsa=ge.test(r.querySelectorAll))&&(i(function(e){e.innerHTML="<select msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+re+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+re+"*(?:value|"+ne+")"),e.querySelectorAll(":checked").length||P.push(":checked")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+re+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(x.matchesSelector=ge.test(H=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=H.call(e,"div"),H.call(e,"[s!='']:x"),O.push("!=",ae)}),P=P.length&&new RegExp(P.join("|")),O=O.length&&new RegExp(O.join("|")),n=ge.test(L.compareDocumentPosition),I=n||ge.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=n?function(e,t){if(e===t)return A=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!x.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===z&&I(z,e)?-1:t===r||t.ownerDocument===z&&I(z,t)?1:R?te.call(R,e)-te.call(R,t):0:4&n?-1:1)}:function(e,t){if(e===t)return A=!0,0;var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:R?te.call(R,e)-te.call(R,t):0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===z?-1:c[i]===z?1:0},r):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&B(t),n=n.replace(ue,"='$1']"),x.matchesSelector&&M&&(!O||!O.test(n))&&(!P||!P.test(n)))try{var r=H.call(t,n);if(r||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},e.attr=function(e,n){(e.ownerDocument||e)!==D&&B(e);var r=w.attrHandle[n.toLowerCase()],i=r&&K.call(w.attrHandle,n.toLowerCase())?r(e,n,!M):t;return i!==t?i:x.attributes||!M?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null},e.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},e.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!x.detectDuplicates,R=!x.sortStable&&e.slice(0),e.sort(j),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return R=null,e},N=e.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=N(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=N(t);return n},w=e.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Ce,xe),e[3]=(e[3]||e[4]||e[5]||"").replace(Ce,xe),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&de.test(n)&&(t=_(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Ce,xe).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=V[e+" "];return t||(t=new RegExp("(^|"+re+")"+e+"("+re+"|$)"))&&V(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,h,p,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;p=m="only"===e&&!p&&"nextSibling"}return!0}if(p=[a?g.firstChild:g.lastChild],a&&y){for(u=g[F]||(g[F]={}),c=u[e]||[],h=c[0]===U&&c[1],f=c[0]===U&&c[2],d=h&&g.childNodes[h];d=++h&&d&&d[m]||(f=h=0)||p.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[U,h,f];break}}else if(y&&(c=(t[F]||(t[F]={}))[e])&&c[0]===U)f=c[1];else for(;(d=++h&&d&&d[m]||(f=h=0)||p.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[U,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(t,n){var i,o=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[F]?o(n):o.length>1?(i=[t,t,"",n],w.setFilters.hasOwnProperty(t.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=te.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(se,"$1"));return i[F]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(e){return e=e.replace(Ce,xe),function(t){return(t.textContent||t.innerText||N(t)).indexOf(e)>-1}}),lang:r(function(t){return fe.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(Ce,xe).toLowerCase(),function(e){var n;do if(n=M?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return pe.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},w.pseudos.nth=w.pseudos.eq;for(C in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[C]=s(C);for(C in{submit:!0,reset:!0})w.pseudos[C]=l(C);return d.prototype=w.filters=w.pseudos,w.setFilters=new d,_=e.tokenize=function(t,n){var r,i,o,a,s,l,c,u=$[t+" "];if(u)return n?0:u.slice(0);for(s=t,l=[],c=w.preFilter;s;){r&&!(i=le.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ce.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(se," ")}),s=s.slice(r.length));for(a in w.filter)!(i=he[a].exec(s))||c[a]&&!(i=c[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?e.error(t):$(t,l).slice(0)},S=e.compile=function(e,t){var n,r=[],i=[],o=q[e+" "];if(!o){for(t||(t=_(e)),n=t.length;n--;)o=y(t[n]),o[F]?r.push(o):i.push(o);o=q(e,b(i,r)),o.selector=e}return o},k=e.select=function(e,t,n,r){var i,o,a,s,l,c="function"==typeof e&&e,d=!r&&_(e=c.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&x.getById&&9===t.nodeType&&M&&w.relative[o[1].type]){if(t=(w.find.ID(a.matches[0].replace(Ce,xe),t)||[])[0],
+!t)return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(Ce,xe),ye.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(c||S(e,d))(r,t,!M,n,ye.test(e)&&u(t.parentNode)||t),n},x.sortStable=F.split("").sort(j).join("")===F,x.detectDuplicates=!!A,B(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(ne,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),e}),r(p,[],function(){function e(e){var t=e,n,r;if(!u(e))for(t=[],n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function n(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function r(e,t){var r=[];return n(e,function(n,i){r.push(t(n,i,e))}),r}function i(e,t){var r=[];return n(e,function(n,i){t&&!t(n,i,e)||r.push(n)}),r}function o(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function a(e,t,n,r){var i=0;for(arguments.length<3&&(n=e[0]);i<e.length;i++)n=t.call(r,n,e[i],i);return n}function s(e,t,n){var r,i;for(r=0,i=e.length;i>r;r++)if(t.call(n,e[r],r,e))return r;return-1}function l(e,n,r){var i=s(e,n,r);return-1!==i?e[i]:t}function c(e){return e[e.length-1]}var u=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{isArray:u,toArray:e,each:n,map:r,filter:i,indexOf:o,reduce:a,findIndex:s,find:l,last:c}}),r(m,[d,p],function(e,n){function r(e){return null===e||e===t?"":(""+e).replace(h,"")}function i(e,r){return r?"array"==r&&n.isArray(e)?!0:typeof e==r:e!==t}function o(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function a(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],c?o[a]=function(){return i[s].apply(this,arguments)}:o[a]=function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function s(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function l(e,t,r,i){i=i||this,e&&(r&&(e=e[r]),n.each(e,function(e,n){return t.call(i,e,n,r)===!1?!1:void l(e,t,r,i)}))}function c(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function u(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function d(e,t){return!e||i(e,"array")?e:n.map(e.split(t||","),r)}function f(t){var n=e.cacheSuffix;return n&&(t+=(-1===t.indexOf("?")?"?":"&")+n),t}var h=/^\s*|\s*$/g;return{trim:r,isArray:n.isArray,is:i,toArray:n.toArray,makeMap:o,each:n.each,map:n.map,grep:n.filter,inArray:n.indexOf,extend:s,create:a,walk:l,createNS:c,resolve:u,explode:d,_addCacheSuffix:f}}),r(g,[f,h,m,d],function(e,n,r,i){function o(e){return"undefined"!=typeof e}function a(e){return"string"==typeof e}function s(e){return e&&e==e.window}function l(e,t){var n,r,i;for(t=t||w,i=t.createElement("div"),n=t.createDocumentFragment(),i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return n}function c(e,t,n,r){var i;if(a(t))t=l(t,v(e[0]));else if(t.length&&!t.nodeType){if(t=f.makeArray(t),r)for(i=t.length-1;i>=0;i--)c(e,t[i],n,r);else for(i=0;i<t.length;i++)c(e,t[i],n,r);return e}if(t.nodeType)for(i=e.length;i--;)n.call(e[i],t);return e}function u(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function d(e,t,n){var r,i;return t=f(t)[0],e.each(function(){var e=this;n&&r==e.parentNode?i.appendChild(e):(r=e.parentNode,i=t.cloneNode(!1),e.parentNode.insertBefore(i,e),i.appendChild(e))}),e}function f(e,t){return new f.fn.init(e,t)}function h(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e){return null===e||e===k?"":(""+e).replace(P,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,r,a)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,i,a)!==!1);i++);return e}function g(e,t){var n=[];return m(e,function(e,r){t(r,e)&&n.push(r)}),n}function v(e){return e?9==e.nodeType?e:e.ownerDocument:w}function y(e,n,r){var i=[],o=e[n];for("string"!=typeof r&&r instanceof f&&(r=r[0]);o&&9!==o.nodeType;){if(r!==t){if(o===r)break;if("string"==typeof r&&f(o).is(r))break}1===o.nodeType&&i.push(o),o=o[n]}return i}function b(e,n,r,i){var o=[];for(i instanceof f&&(i=i[0]);e;e=e[n])if(!r||e.nodeType===r){if(i!==t){if(e===i)break;if("string"==typeof i&&f(e).is(i))break}o.push(e)}return o}function C(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType==n)return e;return null}function x(e,t,n){m(n,function(n,r){e[n]=e[n]||{},e[n][t]=r})}var w=document,N=Array.prototype.push,E=Array.prototype.slice,_=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,S=e.Event,k,T=r.makeMap("children,contents,next,prev"),R=r.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),A=r.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),B={"for":"htmlFor","class":"className",readonly:"readOnly"},D={"float":"cssFloat"},L={},M={},P=/^\s*|\s*$/g;return f.fn=f.prototype={constructor:f,selector:"",context:null,length:0,init:function(e,t){var n=this,r,i;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(t&&t.nodeType)n.context=t;else{if(t)return f(e).attr(t);n.context=t=document}if(a(e)){if(n.selector=e,r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:_.exec(e),!r)return f(t).find(e);if(r[1])for(i=l(e,v(t)).firstChild;i;)N.call(n,i),i=i.nextSibling;else{if(i=v(t).getElementById(r[2]),!i)return n;if(i.id!==r[2])return n.find(e);n.length=1,n[0]=i}}else this.add(e,!1);return n},toArray:function(){return r.toArray(this)},add:function(e,t){var n=this,r,i;if(a(e))return n.add(f(e));if(t!==!1)for(r=f.unique(n.toArray().concat(f.makeArray(e))),n.length=r.length,i=0;i<r.length;i++)n[i]=r[i];else N.apply(n,f.makeArray(e));return n},attr:function(e,t){var n=this,r;if("object"==typeof e)m(e,function(e,t){n.attr(e,t)});else{if(!o(t)){if(n[0]&&1===n[0].nodeType){if(r=L[e],r&&r.get)return r.get(n[0],e);if(A[e])return n.prop(e)?e:k;t=n[0].getAttribute(e,2),null===t&&(t=k)}return t}this.each(function(){var n;if(1===this.nodeType){if(n=L[e],n&&n.set)return void n.set(this,t);null===t?this.removeAttribute(e,2):this.setAttribute(e,t,2)}})}return n},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if(e=B[e]||e,"object"==typeof e)m(e,function(e,t){n.prop(e,t)});else{if(!o(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1==this.nodeType&&(this[e]=t)})}return n},css:function(e,t){function n(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})}function r(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})}var i=this,a,s;if("object"==typeof e)m(e,function(e,t){i.css(e,t)});else if(o(t))e=n(e),"number"!=typeof t||R[e]||(t+="px"),i.each(function(){var n=this.style;if(s=M[e],s&&s.set)return void s.set(this,t);try{this.style[D[e]||e]=t}catch(i){}null!==t&&""!==t||(n.removeProperty?n.removeProperty(r(e)):n.removeAttribute(e))});else{if(a=i[0],s=M[e],s&&s.get)return s.get(a);if(a.ownerDocument.defaultView)try{return a.ownerDocument.defaultView.getComputedStyle(a,null).getPropertyValue(r(e))}catch(l){return k}else if(a.currentStyle)return a.currentStyle[n(e)]}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],S.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(o(e)){n=t.length;try{for(;n--;)t[n].innerHTML=e}catch(r){f(t[n]).empty().append(e)}return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(o(e)){for(n=t.length;n--;)"innerText"in t[n]?t[n].innerText=e:t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return c(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(e)})},prepend:function(){return c(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.insertBefore(e,this.firstChild)},!0)},before:function(){var e=this;return e[0]&&e[0].parentNode?c(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?c(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):e},appendTo:function(e){return f(e).append(this),this},prependTo:function(e){return f(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return d(this,e)},wrapAll:function(e){return d(this,e,!0)},wrapInner:function(e){return this.each(function(){f(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){f(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),f(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return"string"!=typeof e?n:(-1!==e.indexOf(" ")?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n,r){var i,o;o=u(r,e),o!==t&&(i=r.className,o?r.className=p((" "+i+" ").replace(" "+e+" "," ")):r.className+=i?" "+e:e)}),n)},hasClass:function(e){return u(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){S.bind(this,e,t)})},off:function(e,t){return this.each(function(){S.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?S.fire(this,e.type,e):S.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new f(E.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)f.find(e,this[t],r);return f(r)},filter:function(e){return f("function"==typeof e?g(this.toArray(),function(t,n){return e(n,t)}):f.filter(e,this.toArray()))},closest:function(e){var t=[];return e instanceof f&&(e=e[0]),this.each(function(n,r){for(;r;){if("string"==typeof e&&f(r).is(e)){t.push(r);break}if(r==e){t.push(r);break}r=r.parentNode}}),f(t)},offset:function(e){var t,n,r,i=0,o=0,a;return e?this.css(e):(t=this[0],t&&(n=t.ownerDocument,r=n.documentElement,t.getBoundingClientRect&&(a=t.getBoundingClientRect(),i=a.left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,o=a.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:o})},push:N,sort:[].sort,splice:[].splice},r.extend(f,{extend:r.extend,makeArray:function(e){return s(e)||e.nodeType?[e]:r.toArray(e)},inArray:h,isArray:r.isArray,each:m,trim:p,grep:g,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,contains:n.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!=t[r].nodeType&&t.splice(r,1);return t=1===t.length?f.find.matchesSelector(t[0],e)?[t[0]]:[]:f.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return y(e,"parentNode")},next:function(e){return C(e,"nextSibling",1)},prev:function(e){return C(e,"previousSibling",1)},children:function(e){return b(e.firstChild,"nextSibling",1)},contents:function(e){return r.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){f.fn[e]=function(n){var r=this,i=[];return r.each(function(){var e=t.call(i,this,n,i);e&&(f.isArray(e)?i.push.apply(i,e):i.push(e))}),this.length>1&&(T[e]||(i=f.unique(i)),0===e.indexOf("parents")&&(i=i.reverse())),i=f(i),n?i.filter(n):i}}),m({parentsUntil:function(e,t){return y(e,"parentNode",t)},nextUntil:function(e,t){return b(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return b(e,"previousSibling",1,t).slice(1)}},function(e,t){f.fn[e]=function(n,r){var i=this,o=[];return i.each(function(){var e=t.call(o,this,n,o);e&&(f.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=f.unique(o),0!==e.indexOf("parents")&&"prevUntil"!==e||(o=o.reverse())),o=f(o),r?o.filter(r):o}}),f.fn.is=function(e){return!!e&&this.filter(e).length>0},f.fn.init.prototype=f.fn,f.overrideDefaults=function(e){function t(r,i){return n=n||e(),0===arguments.length&&(r=n.element),i||(i=n.context),new t.fn.init(r,i)}var n;return f.extend(t,this),t},i.ie&&i.ie<8&&(x(L,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?k:t},size:function(e){var t=e.size;return 20===t?k:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?k:t}}),x(L,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),i.ie&&i.ie<9&&(D["float"]="styleFloat",x(M,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),f.attrHooks=L,f.cssHooks=M,f}),r(v,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d,f,h="\ufeff";for(e=e||{},t&&(d=t.getValidStyles(),f=t.getInvalidStyles()),u=("\\\" \\' \\; \\: ; : "+h).split(" "),l=0;l<u.length;l++)c[u[l]]=h+l,c[h+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=m[e+"-top"+t],r&&(i=m[e+"-right"+t],i&&(o=m[e+"-bottom"+t],o&&(a=m[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(m[e+t]=-1==l?s[0]:s.join(" "),delete m[e+"-top"+t],delete m[e+"-right"+t],delete m[e+"-bottom"+t],delete m[e+"-left"+t])}}function u(e){var t=m[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return m[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(m[e]=m[t]+" "+m[n]+" "+m[r],delete m[t],delete m[n],delete m[r])}function f(e){return b=!0,c[e]}function h(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function p(t,n,r,i,o,a){if(o=o||a)return o=h(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=h(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var m={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),y=y.replace(/\\[0-9a-f]+/g,function(e){return String.fromCharCode(parseInt(e.substr(1),16))}),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(|\/\*|\*\//.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":"color"!==v&&"background-color"!==v||(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,p),m[v]=b?h(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===m.border&&delete m.border,"none"===m["border-image"]&&delete m["border-image"]}return m},serialize:function(e,t){function n(t){var n,r,o,a;if(n=d[t])for(r=0,o=n.length;o>r;r++)t=n[r],a=e[t],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+t+": "+a+";")}function r(e,t){var n;return n=f["*"],n&&n[e]?!1:(n=f[t],!n||!n[e])}var i="",o,a;if(t&&d)n("*"),n(t);else for(o in e)a=e[o],a!==s&&a.length>0&&(f&&!r(o,t)||(i+=(i.length>0?" ":"")+o+": "+a+";"));return i}}}}),r(y,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}function r(e,n,r,i){var o,a,s;if(e){if(o=e[r],t&&o===t)return;if(o){if(!i)for(s=o[n];s;s=s[n])if(!s[n])return s;return o}if(a=e.parentNode,a&&a!==t)return a}}var i=e;this.current=function(){return i},this.next=function(e){return i=n(i,"firstChild","nextSibling",e)},this.prev=function(e){return i=n(i,"lastChild","previousSibling",e)},this.prev2=function(e){return i=r(i,"lastChild","previousSibling",e)}}}),r(b,[m],function(e){function t(n){function r(){return P.createDocumentFragment()}function i(e,t){N(F,e,t)}function o(e,t){N(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(M[V]=M[W],M[$]=M[U]):(M[W]=M[V],M[U]=M[$]),M.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function h(e,t){var n=M[W],r=M[U],i=M[V],o=M[$],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function p(){E(I)}function m(){return E(O)}function g(){return E(H)}function v(e){var t=this[W],r=this[U],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return q(new t(n),{startContainer:M[W],startOffset:M[U],endContainer:M[V],endOffset:M[$],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[W]==M[V]&&M[U]==M[$]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function N(e,t,r){var i,o;for(e?(M[W]=t,M[U]=r):(M[V]=t,M[$]=r),i=M[V];i.parentNode;)i=i.parentNode;for(o=M[W];o.parentNode;)o=o.parentNode;o==i?w(M[W],M[U],M[V],M[$])>0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[W],M[V])}function E(e){var t,n=0,r=0,i,o,a,s,l,c;if(M[W]==M[V])return _(e);for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[W])return S(t,e);++n}for(t=M[W],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return k(t,e);++r}for(o=r-n,a=M[W];o>0;)a=a.parentNode,o--;for(s=M[V];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function _(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),M[U]==M[$])return t;if(3==M[W].nodeType){if(n=M[W].nodeValue,i=n.substring(M[U],M[$]),e!=H&&(o=M[W],c=M[U],u=M[$]-M[U],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(P.createTextNode(i)),t}for(o=C(M[W],M[U]),a=M[$]-M[U];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=H&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[U],0>=a)return t!=H&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=H&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[$]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=H&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=D(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=H&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[V],M[$]-1),r,i,o,a,s,l=n!=M[V];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[W],M[U]),r=n!=M[W],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[U],a=o.substring(l),s=o.substring(0,l)):(l=M[$],a=o.substring(0,l),s=o.substring(l)),i!=H&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==H?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var M=this,P=n.doc,O=0,H=1,I=2,F=!0,z=!1,U="startOffset",W="startContainer",V="endContainer",$="endOffset",q=e.extend,j=n.nodeIndex;return q(M,{startContainer:P,startOffset:0,endContainer:P,endOffset:0,collapsed:F,commonAncestorContainer:P,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:h,deleteContents:p,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(C,[m],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;","`":"&#96;"},a={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n){return n?(n="x"===n.charAt(0).toLowerCase()?parseInt(n.substr(1),16):parseInt(n,10),n>65535?(n-=65536,String.fromCharCode(55296+(n>>10),56320+(1023&n))):d[n]||String.fromCharCode(n)):a[e]||i[e]||t(e)})}};return f}),r(x,[m,u],function(e,t){return function(n,r){function i(e){n.getElementsByTagName("head")[0].appendChild(e)}function o(r,o,c){function u(){for(var e=b.passed,t=e.length;t--;)e[t]();b.status=2,b.passed=[],b.failed=[]}function d(){for(var e=b.failed,t=e.length;t--;)e[t]();b.status=3,b.passed=[],b.failed=[]}function f(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function h(e,n){e()||((new Date).getTime()-y<l?t.setTimeout(n):d())}function p(){h(function(){for(var e=n.styleSheets,t,r=e.length,i;r--;)if(t=e[r],i=t.ownerNode?t.ownerNode:t.owningElement,i&&i.id===g.id)return u(),!0},p)}function m(){h(function(){try{var e=v.sheet.cssRules;return u(),!!e}catch(t){}},m)}var g,v,y,b;if(r=e._addCacheSuffix(r),s[r]?b=s[r]:(b={passed:[],failed:[]},s[r]=b),o&&b.passed.push(o),c&&b.failed.push(c),1!=b.status){if(2==b.status)return void u();if(3==b.status)return void d();if(b.status=1,g=n.createElement("link"),g.rel="stylesheet",g.type="text/css",g.id="u"+a++,g.async=!1,g.defer=!1,y=(new Date).getTime(),"onload"in g&&!f())g.onload=p,g.onerror=d;else{if(navigator.userAgent.indexOf("Firefox")>0)return v=n.createElement("style"),v.textContent='@import "'+r+'"',m(),void i(v);p()}i(g),g.href=r}}var a=0,s={},l;r=r||{},l=r.maxLoadTime||5e3,this.load=o}}),r(w,[h,g,v,f,y,b,C,d,m,x],function(e,n,r,i,o,a,s,l,c,u){function d(e,t){var n={},r=t.keep_values,i;return i={set:function(n,r,i){t.url_converter&&(r=t.url_converter.call(t.url_converter_scope||e,r,i,n[0])),n.attr("data-mce-"+i,r).attr(i,r)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},n={style:{set:function(e,t){return null!==t&&"object"==typeof t?void e.css(t):(r&&e.attr("data-mce-style",t),void e.attr("style",t))},get:function(t){var n=t.attr("data-mce-style")||t.attr("style");return n=e.serializeStyle(e.parseStyle(n),t[0].nodeName)}}},r&&(n.href=n.src=i),n}function f(e,t){var n=t.attr("style");n=e.serializeStyle(e.parseStyle(n),t[0].nodeName),n||(n=null),t.attr("data-mce-style",n)}function h(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n}function p(e,t){var o=this,a;o.doc=e,o.win=window,o.files={},o.counter=0,o.stdMode=!b||e.documentMode>=8,o.boxModel=!b||"CSS1Compat"==e.compatMode||o.stdMode,o.styleSheetLoader=new u(e),o.boundEvents=[],o.settings=t=t||{},o.schema=t.schema,o.styles=new r({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),o.fixDoc(e),o.events=t.ownEvents?new i(t.proxy):i.Event,o.attrHooks=d(o,t),a=t.schema?t.schema.getBlockElements():{},o.$=n.overrideDefaults(function(){return{context:e,element:o.getRoot()}}),o.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!a[e.nodeName]):!!a[e]}}var m=c.each,g=c.is,v=c.grep,y=c.trim,b=l.ie,C=/^([a-z0-9],?)+$/i,x=/^[ \t\r\n]*$/;return p.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){var t=this.settings,n;if(b&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!b||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.settings.root_element||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),g(n,"string")&&(a=n,
+n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.settings.root_element||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(C.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=g(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&"undefined"!=typeof t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3==e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&f(this,e)},getStyle:function(e,n,r){return e=this.$$(e),r?e.css(n):(n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=l.ie&&l.ie<12?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[n]:t)},setStyles:function(e,t){e=this.$$(e).css(t),this.settings.update_styles&&f(this,e)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this,i,o,a=r.settings;""===n&&(n=null),e=r.$$(e),i=e.attr(t),e.length&&(o=r.attrHooks[t],o&&o.set?o.set(e,n,t):e.attr(t,n),i!=n&&a.onSetAttrib&&a.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){m(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r=this,i,o;return e=r.$$(e),e.length&&(i=r.attrHooks[t],o=i&&i.get?i.get(e,t):e.attr(t)),"undefined"==typeof o&&(o=n||""),o},getPos:function(e,t){var r=this,i=0,o=0,a,s=r.doc,l=s.body,c;if(e=r.get(e),t=t||l,e){if(t===l&&e.getBoundingClientRect&&"static"===n(l).css("position"))return c=e.getBoundingClientRect(),t=r.boxModel?s.documentElement:l,i=c.left+(s.documentElement.scrollLeft||l.scrollLeft)-t.clientLeft,o=c.top+(s.documentElement.scrollTop||l.scrollTop)-t.clientTop,{x:i,y:o};for(a=e;a&&a!=t&&a.nodeType;)i+=a.offsetLeft||0,o+=a.offsetTop||0,a=a.offsetParent;for(a=e.parentNode;a&&a!=t&&a.nodeType;)i-=a.scrollLeft||0,o-=a.scrollTop||0,a=a.parentNode}return{x:i,y:o}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==p.DOM&&n===document){var o=p.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,p.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==p.DOM&&n===document?void p.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void m(e.split(","),function(e){var i;e=c._addCacheSuffix(e),t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),b&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,r){this.$$(e).toggleClass(t,r).each(function(){""===this.className&&n(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"==this.$$(e).css("display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),b?e.each(function(e,r){if(r.canHaveHTML!==!1){for(;r.firstChild;)r.removeChild(r.firstChild);try{r.innerHTML="<br>"+t,r.removeChild(r.firstChild)}catch(i){n("<div>").html("<br>"+t).contents().slice(1).appendTo(r)}return t}}):e.html(t)},getOuterHTML:function(e){return e=this.get(e),1==e.nodeType&&"outerHTML"in e?e.outerHTML:n("<div>").append(n(e).clone()).html()},setOuterHTML:function(e,t){var r=this;r.$$(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}r.remove(n(this).html(t),!0)})},decode:s.decode,encode:s.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return g(t,"array")&&(e=e.cloneNode(!0)),n&&m(v(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(c.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],m(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(b){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,i,a,s,l,c=0;if(e=e.firstChild){s=new o(e,e.parentNode),t=t||(n.schema?n.schema.getNonEmptyElements():null);do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(i=n.getAttribs(e),r=i.length;r--;)if(l=i[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!x.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new a(this)},nodeIndex:h,split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=y(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.insertBefore(n,e):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(c.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(c.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},p.DOM=new p(document),p.nodeIndex=h,p}),r(N,[w,m],function(e,t){function n(){function e(e,n){function i(){a.remove(l),s&&(s.onreadystatechange=s.onload=s=null),n()}function o(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var a=r,s,l;l=a.uniqueId(),s=document.createElement("script"),s.id=l,s.type="text/javascript",s.src=t._addCacheSuffix(e),"onreadystatechange"in s?s.onreadystatechange=function(){/loaded|complete/.test(s.readyState)&&i()}:s.onload=i,s.onerror=o,(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}var n=0,a=1,s=2,l={},c=[],u={},d=[],f=0,h;this.isDone=function(e){return l[e]==s},this.markDone=function(e){l[e]=s},this.add=this.load=function(e,t,r){var i=l[e];i==h&&(c.push(e),l[e]=n),t&&(u[e]||(u[e]=[]),u[e].push({func:t,scope:r||this}))},this.remove=function(e){delete l[e],delete u[e]},this.loadQueue=function(e,t){this.loadScripts(c,e,t)},this.loadScripts=function(t,n,r){function c(e){i(u[e],function(e){e.func.call(e.scope)}),u[e]=h}var p;d.push({func:n,scope:r||this}),(p=function(){var n=o(t);t.length=0,i(n,function(t){return l[t]==s?void c(t):void(l[t]!=a&&(l[t]=a,f++,e(t,function(){l[t]=s,f--,c(t),p()})))}),f||(i(d,function(e){e.func.call(e.scope)}),d.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(E,[N,m],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",-1!=n.indexOf(","+i.substr(0,2)+","))i=i.substr(0,2);else if(-1==n.indexOf(","+i+","))return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},remove:function(e){delete this.urls[e],delete this.lookup[e]},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&(s?a.call(s):a.call(e))}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(_,[],function(){function e(e){return function(t){return!!t&&t.nodeType==e}}function t(e){return e=e.toLowerCase().split(" "),function(t){var n,r;if(t&&t.nodeType)for(r=t.nodeName.toLowerCase(),n=0;n<e.length;n++)if(r===e[n])return!0;return!1}}function n(e,t){return t=t.toLowerCase().split(" "),function(n){var r,i;if(s(n))for(r=0;r<t.length;r++)if(i=getComputedStyle(n,null).getPropertyValue(e),i===t[r])return!0;return!1}}function r(e,t){return function(n){return s(n)&&n[e]===t}}function i(e,t){return function(n){return s(n)&&n.getAttribute(e)===t}}function o(e){return s(e)&&e.hasAttribute("data-mce-bogus")}function a(e){return function(t){if(s(t)){if(t.contentEditable===e)return!0;if(t.getAttribute("data-mce-contenteditable")===e)return!0}return!1}}var s=e(1);return{isText:e(3),isElement:s,isComment:e(8),isBr:t("br"),isContentEditableTrue:a("true"),isContentEditableFalse:a("false"),matchNodeNames:t,hasPropValue:r,hasAttributeValue:i,matchStyleValues:n,isBogus:o}}),r(S,[],function(){function e(e){return e==n}function t(e){return e.replace(new RegExp(n,"g"),"")}var n="\ufeff";return{isZwsp:e,ZWSP:n,trim:t}}),r(k,[_,S],function(e,t){function n(e){return p(e)&&(e=e.parentNode),h(e)&&e.hasAttribute("data-mce-caret")}function r(e){return p(e)&&t.isZwsp(e.data)}function i(e){return n(e)||r(e)}function o(e){var t=e.parentNode;t&&t.removeChild(e)}function a(e){try{return e.nodeValue}catch(t){return""}}function s(e,t){0===t.length?o(e):e.nodeValue=t}function l(e,n){var r,o,a,s;if(r=e.ownerDocument,a=r.createTextNode(t.ZWSP),s=e.parentNode,n){if(o=e.previousSibling,p(o)){if(i(o))return o;if(f(o))return o.splitText(o.data.length-1)}s.insertBefore(a,e)}else{if(o=e.nextSibling,p(o)){if(i(o))return o;if(d(o))return o.splitText(1),o}e.nextSibling?s.insertBefore(a,e.nextSibling):s.appendChild(a)}return a}function c(e,t,n){var r,i,o;return r=t.ownerDocument,i=r.createElement(e),i.setAttribute("data-mce-caret",n?"before":"after"),i.setAttribute("data-mce-bogus","all"),i.appendChild(r.createTextNode("\xa0")),o=t.parentNode,n?o.insertBefore(i,t):t.nextSibling?o.insertBefore(i,t.nextSibling):o.appendChild(i),i}function u(e){if(h(e)&&i(e)&&("&nbsp;"!=e.innerHTML?e.removeAttribute("data-mce-caret"):o(e)),p(e)){var n=t.trim(a(e));s(e,n)}}function d(e){return p(e)&&e.data[0]==t.ZWSP}function f(e){return p(e)&&e.data[e.data.length-1]==t.ZWSP}var h=e.isElement,p=e.isText;return{isCaretContainer:i,isCaretContainerBlock:n,isCaretContainerInline:r,insertInline:l,insertBlock:c,remove:u,startsWithCaretContainer:d,endsWithCaretContainer:f}}),r(T,[m,y,_,b,k],function(e,t,n,r,i){function o(e,t){var n=e.childNodes;return t--,t>n.length-1?t=n.length-1:0>t&&(t=0),n[t]||e}function a(e){this.walk=function(t,n){function r(e){var t;return t=e[0],3===t.nodeType&&t===c&&u>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===f&&e.length>0&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e}function i(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function a(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,o){var a=o?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=i(g==e?g:g[a],a),y.length&&(o||y.reverse(),n(r(y)))}var c=t.startContainer,u=t.startOffset,d=t.endContainer,f=t.endOffset,h,p,m,g,v,y,b;if(b=e.select("td[data-mce-selected],th[data-mce-selected]"),b.length>0)return void l(b,function(e){n([e])});if(1==c.nodeType&&c.hasChildNodes()&&(c=c.childNodes[u]),1==d.nodeType&&d.hasChildNodes()&&(d=o(d,f)),c==d)return n(r([c]));for(h=e.findCommonAncestor(c,d),g=c;g;g=g.parentNode){if(g===d)return s(c,h,!0);if(g===h)break}for(g=d;g;g=g.parentNode){if(g===c)return s(d,h);if(g===h)break}p=a(c,h)||c,m=a(d,h)||d,s(c,p,!0),y=i(p==c?p:p.nextSibling,"nextSibling",m==d?m.nextSibling:m),y.length&&n(r(y)),s(d,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(e){return e&&/^(TD|TH|CAPTION)$/.test(e.nodeName)}function s(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||g);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function l(e){for(;e&&e!=g;){if(c(e))return!0;e=e.parentNode}return!1}function d(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function f(n,r){var a,s,l;if(r=r||h,l=e.getParent(r.parentNode,e.isBlock)||g,n&&"BR"==r.nodeName&&C&&e.isEmpty(l))return h=r.parentNode,p=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);v=a[n?"prev":"next"]();){if("false"===e.getContentEditableParent(v)||u(v))return;if(3===v.nodeType&&v.nodeValue.length>0)return h=v,p=n?v.nodeValue.length:0,void(i=!0);if(e.isBlock(v)||y[v.nodeName.toLowerCase()])return;s=v}o&&s&&(h=s,i=!0,p=0)}var h,p,m,g=e.getRoot(),v,y,b,C;if(h=n[(r?"start":"end")+"Container"],p=n[(r?"start":"end")+"Offset"],C=1==h.nodeType&&p===h.childNodes.length,y=e.schema.getNonEmptyElements(),b=r,!u(h)){if(1==h.nodeType&&p>h.childNodes.length-1&&(b=!1),9===h.nodeType&&(h=e.getRoot(),p=0),h===g){if(b&&(v=h.childNodes[p>0?p-1:0])){if(u(v))return;if(y[v.nodeName]||"TABLE"==v.nodeName)return}if(h.hasChildNodes()){if(p=Math.min(!b&&p>0?p-1:p,h.childNodes.length-1),h=h.childNodes[p],p=0,!o&&h===g.lastChild&&"TABLE"===h.nodeName)return;if(l(h)||u(h))return;if(h.hasChildNodes()&&!/TABLE/.test(h.nodeName)){v=h,m=new t(h,g);do{if(c(v)||u(v)){i=!1;break}if(3===v.nodeType&&v.nodeValue.length>0){p=b?0:v.nodeValue.length,h=v,i=!0;break}if(y[v.nodeName.toLowerCase()]&&!a(v)){p=e.nodeIndex(v),h=v.parentNode,"IMG"!=v.nodeName||b||p++,i=!0;break}}while(v=b?m.next():m.prev())}}}o&&(3===h.nodeType&&0===p&&f(!0),1===h.nodeType&&(v=h.childNodes[p],v||(v=h.childNodes[p-1]),!v||"BR"!==v.nodeName||d(v,"A")||s(v)||s(v,!0)||f(!0,v))),b&&!o&&3===h.nodeType&&p===h.nodeValue.length&&f(!1),i&&n["set"+(r?"Start":"End")](h,p)}}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}function s(t,n,r){var i,o,a;if(i=r.elementFromPoint(t,n),o=r.body.createTextRange(),i&&"HTML"!=i.tagName||(i=r.body),o.moveToElementText(i),a=e.toArray(o.getClientRects()),a=a.sort(function(e,t){return e=Math.abs(Math.max(e.top-n,e.bottom-n)),t=Math.abs(Math.max(t.top-n,t.bottom-n)),e-t}),a.length>0){n=(a[0].bottom+a[0].top)/2;try{return o.moveToPoint(t,n),o.collapse(!0),o}catch(s){}}return null}var l=e.each,c=n.isContentEditableFalse,u=i.isCaretContainer;return a.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},a.getCaretRangeFromPoint=function(e,t,n){var r,i;if(n.caretPositionFromPoint)i=n.caretPositionFromPoint(e,t),r=n.createRange(),r.setStart(i.offsetNode,i.offset),r.collapse(!0);else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(n.body.createTextRange){r=n.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(o){r=s(e,t,n)}}return r},a.getSelectedNode=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset==n+1?t.childNodes[n]:null},a.getNode=function(e,t){return 1==e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},a}),r(R,[T,d,u],function(e,t,n){return function(r){function i(e){var t,n;if(n=r.$(e).parentsUntil(r.getBody()).add(e),n.length===a.length){for(t=n.length;t>=0&&n[t]===a[t];t--);if(-1===t)return a=n,!0}return a=n,!1}var o,a=[];"onselectionchange"in r.getDoc()||r.on("NodeChange Click MouseUp KeyUp Focus",function(t){var n,i;n=r.selection.getRng(),i={startContainer:n.startContainer,startOffset:n.startOffset,endContainer:n.endContainer,endOffset:n.endOffset},"nodechange"!=t.type&&e.compareRanges(i,o)||r.fire("SelectionChange"),o=i}),r.on("contextmenu",function(){r.fire("SelectionChange")}),r.on("SelectionChange",function(){var e=r.selection.getStart(!0);!t.range&&r.selection.isCollapsed()||!i(e)&&r.dom.isChildOf(e,r.getBody())&&r.nodeChanged({selectionChange:!0})}),r.on("MouseUp",function(e){e.isDefaultPrevented()||("IMG"==r.selection.getNode().nodeName?n.setEditorTimeout(r,function(){r.nodeChanged()}):r.nodeChanged())}),this.nodeChanged=function(e){var t=r.selection,n,i,o;r.initialized&&t&&!r.settings.disable_nodechange&&!r.readonly&&(o=r.getBody(),n=t.getStart()||o,n.ownerDocument==r.getDoc()&&r.dom.isChildOf(n,o)||(n=o),"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),i=[],r.dom.getParent(n,function(e){return e===o?!0:void i.push(e)}),e=e||{},e.element=n,e.parents=i,r.fire("NodeChange",e))}}}),r(A,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(B,[m],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e,t){var n={},r,i;for(r=0,i=e.length;i>r;r++)n[e[r]]=t||{};return n}var s,c,u,d=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),c=3;c<d.length;c++)"string"==typeof d[c]&&(d[c]=t(d[c])),r.push.apply(r,d[c]);for(e=t(e),s=e.length;s--;)u=[].concat(l,t(n)),a[e[s]]={attributes:i(u),attributesOrder:u,children:i(r,o)}}function r(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},l,c,u,d,f,h;return i[e]?i[e]:(l=t("id accesskey class dir lang style tabindex title"),c=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),u=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(l.push.apply(l,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),c.push.apply(c,t("article aside details dialog figure header footer hgroup section nav")),u.push.apply(u,t("audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(l.push("xml:lang"),h=t("acronym applet basefont big font strike tt"),u.push.apply(u,h),s(h,function(e){n(e,"",u)}),f=t("center dir isindex noframes"),c.push.apply(c,f),d=[].concat(c,u),s(f,function(e){n(e,"",d)})),d=d||[].concat(c,u),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",u),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",u),n("q","cite",u),n("ins del","cite datetime",d),n("img","src sizes srcset alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",d,"param"),n("param","name value"),n("map","name",d,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",d,"legend"),n("label","form for",u),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:u),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",d,"li"),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",u,"rt rp"),n("figcaption","",d),n("mark rt rp summary bdi","",u),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",d,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",d,"track source"),n("picture","","img source"),n("source","src srcset type media sizes"),n("track","kind src srclang label default"),n("datalist","",u,"option"),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",d,"figcaption"),n("time","datetime",u),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",u),n("progress","value max",u),n("meter","value min max low high optimum",u),n("details","open",d,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(r("script","language xml:space"),r("style","xml:space"),r("object","declare classid code codebase codetype archive standby align border hspace vspace"),r("embed","align name hspace vspace"),r("param","valuetype type"),r("a","charset name rev shape coords"),r("br","clear"),r("applet","codebase archive code object alt name width height align hspace vspace"),r("img","name longdesc align border hspace vspace"),r("iframe","longdesc frameborder marginwidth marginheight scrolling align"),r("font basefont","size color face"),r("input","usemap align"),r("select","onchange"),r("textarea"),r("h1 h2 h3 h4 h5 h6 div p legend caption","align"),r("ul","type compact"),r("li","type"),r("ol dl menu dir","compact"),r("pre","width xml:space"),r("hr","align noshade size width"),r("isindex","prompt"),r("table","summary width frame rules cellspacing cellpadding align bgcolor"),r("col","width align char charoff valign"),r("colgroup","width align char charoff valign"),r("thead","align char charoff valign"),r("tr","align char charoff valign bgcolor"),r("th","axis align char charoff valign nowrap bgcolor width height"),r("form","accept"),r("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),r("tfoot","align char charoff valign"),r("tbody","align char charoff valign"),r("area","nohref"),r("body","background bgcolor text link vlink alink")),"html4"!=e&&(r("input button select textarea","autofocus"),r("input textarea","placeholder"),r("a","download"),r("link script img","crossorigin"),r("iframe","sandbox seamless allowfullscreen")),s(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,delete a.script,i[e]=a,a)}function r(e,t){var n;return e&&(n={},"string"==typeof e&&(e={"*":e}),s(e,function(e,r){n[r]=n[r.toUpperCase()]="map"==t?a(e,/[, ]/):c(e,/[, ]/)})),n}var i={},o={},a=e.makeMap,s=e.each,l=e.extend,c=e.explode,u=e.inArray;return function(e){function o(t,n,r){var o=e[t];return o?o=a(o,/[, ]/,a(o.toUpperCase(),/[, ]/)):(o=i[t],o||(o=a(n," ",a(n.toUpperCase()," ")),o=l(o,r),i[t]=o)),o}function d(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function f(e){var n,r,i,o,s,l,c,f,h,p,m,g,v,b,x,w,N,E,_,S=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,k=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),y["@"]&&(w=y["@"].attributes,N=y["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=S.exec(e[n])){if(b=s[1],h=s[2],x=s[3],f=s[5],g={},v=[],l={attributes:g,attributesOrder:v},"#"===b&&(l.paddEmpty=!0),"-"===b&&(l.removeEmpty=!0),"!"===s[4]&&(l.removeEmptyAttrs=!0),w){for(E in w)g[E]=w[E];v.push.apply(v,N)}if(f)for(f=t(f,"|"),i=0,o=f.length;o>i;i++)if(s=k.exec(f[i])){if(c={},m=s[1],p=s[2].replace(/::/g,":"),b=s[3],_=s[4],"!"===m&&(l.attributesRequired=l.attributesRequired||[],l.attributesRequired.push(p),c.required=!0),"-"===m){delete g[p],v.splice(u(v,p),1);continue}b&&("="===b&&(l.attributesDefault=l.attributesDefault||[],l.attributesDefault.push({name:p,value:_}),c.defaultValue=_),":"===b&&(l.attributesForced=l.attributesForced||[],l.attributesForced.push({name:p,value:_}),c.forcedValue=_),"<"===b&&(c.validValues=a(_,"?"))),
+T.test(p)?(l.attributePatterns=l.attributePatterns||[],c.pattern=d(p),l.attributePatterns.push(c)):(g[p]||v.push(p),g[p]=c)}w||"@"!=h||(w=g,N=v),x&&(l.outputName=h,y[x]=l),T.test(h)?(l.pattern=d(h),C.push(l)):y[h]=l}}function h(e){y={},C=[],f(e),s(N,function(e,t){b[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&(i.text_block_elements=i.block_elements=null,s(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",o=t[2];if(b[o]=b[i],M[o]=i,r||(R[o.toUpperCase()]={},R[o]={}),!y[o]){var a=y[i];a=l({},a),delete a.removeEmptyAttrs,delete a.removeEmpty,y[o]=a}s(b,function(e,t){e[i]&&(b[t]=e=l({},b[t]),e[o]=e[i])})}))}function m(n){var r=/^([+\-]?)(\w+)\[([^\]]+)\]$/;i[e.schema]=null,n&&s(t(n,","),function(e){var n=r.exec(e),i,o;n&&(o=n[1],i=o?b[n[2]]:b[n[2]]={"#comment":{}},i=b[n[2]],s(t(n[3],"|"),function(e){"-"===o?delete i[e]:i[e]={}}))})}function g(e){var t=y[e],n;if(t)return t;for(n=C.length;n--;)if(t=C[n],t.pattern.test(e))return t}var v=this,y={},b={},C=[],x,w,N,E,_,S,k,T,R,A,B,D,L,M={},P={};e=e||{},N=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),x=r(e.valid_styles),w=r(e.invalid_styles,"map"),T=r(e.valid_classes,"map"),E=o("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=o("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),S=o("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),k=o("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),A=o("non_empty_elements","td th iframe video audio object script",S),B=o("move_caret_before_on_enter_elements","table",A),D=o("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),R=o("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption",D),L=o("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),s((e.special||"script noscript style textarea").split(" "),function(e){P[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?h(e.valid_elements):(s(N,function(e,t){y[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},b[t]=e.children}),"html5"!=e.schema&&s(t("strong/b em/i"),function(e){e=t(e,"/"),y[e[1]].outputName=e[0]}),s(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){y[e]&&(y[e].removeEmpty=!0)}),s(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){y[e].paddEmpty=!0}),s(t("span"),function(e){y[e].removeEmptyAttrs=!0})),p(e.custom_elements),m(e.valid_children),f(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&s(c(e.invalid_elements),function(e){y[e]&&delete y[e]}),g("span")||f("span[!data-mce-type|*]"),v.children=b,v.getValidStyles=function(){return x},v.getInvalidStyles=function(){return w},v.getValidClasses=function(){return T},v.getBoolAttrs=function(){return k},v.getBlockElements=function(){return R},v.getTextBlockElements=function(){return D},v.getTextInlineElements=function(){return L},v.getShortEndedElements=function(){return S},v.getSelfClosingElements=function(){return _},v.getNonEmptyElements=function(){return A},v.getMoveCaretBeforeOnEnterElements=function(){return B},v.getWhiteSpaceElements=function(){return E},v.getSpecialElements=function(){return P},v.isValidChild=function(e,t){var n=b[e];return!(!n||!n[t])},v.isValid=function(e,t){var n,r,i=g(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},v.getElementRule=g,v.getCustomElements=function(){return M},v.addValidElements=f,v.setValidElements=h,v.addCustomElements=p,v.addValidChildren=m,v.elements=y}}),r(D,[B,C,m],function(e,t,n){function r(e,t,n){var r=1,i,o,a,s;for(s=e.getShortEndedElements(),a=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g,a.lastIndex=i=n;o=a.exec(t);){if(i=a.lastIndex,"/"===o[1])r--;else if(!o[1]){if(o[2]in s)continue;r++}if(0===r)break}return i}function i(i,a){function s(){}var l=this;i=i||{},l.schema=a=a||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),o("comment cdata text start end pi doctype".split(" "),function(e){e&&(l[e]=i[e]||s)}),l.parse=function(e){function o(e){var t,n;for(t=h.length;t--&&h[t].name!==e;);if(t>=0){for(n=h.length-1;n>=t;n--)e=h[n],e.valid&&l.end(e.name);h.length=t}}function s(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in x?t:z(n||r||o||""),N&&!y&&0!==t.indexOf("data-")){if(a=T[t],!a&&R){for(s=R.length;s--&&(a=R[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(W[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{c=decodeURIComponent(c)}catch(u){c=unescape(c)}if(V.test(c))return;if(!i.allow_html_data_urls&&$.test(c)&&!/^data:image\//i.test(c))return}p.map[t]=n,p.push({name:t,value:n})}var l=this,c,u=0,d,f,h=[],p,m,g,v,y,b,C,x,w,N,E,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F=0,z=t.decode,U,W=n.makeMap("src,href,data,background,formaction,poster"),V=/((java|vb)script|mhtml):/i,$=/^data:/i;for(P=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),O=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,C=a.getShortEndedElements(),M=i.self_closing_elements||a.getSelfClosingElements(),x=a.getBoolAttrs(),N=i.validate,b=i.remove_internals,U=i.fix_self_closing,H=a.getSpecialElements();c=P.exec(e);){if(u<c.index&&l.text(z(e.substr(u,c.index-u))),d=c[6])d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),o(d);else if(d=c[7]){if(d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),w=d in C,U&&M[d]&&h.length>0&&h[h.length-1].name===d&&o(d),!N||(E=a.getElementRule(d))){if(_=!0,N&&(T=E.attributes,R=E.attributePatterns),(k=c[8])?(y=-1!==k.indexOf("data-mce-type"),y&&b&&(_=!1),p=[],p.map={},k.replace(O,s)):(p=[],p.map={}),N&&!y){if(A=E.attributesRequired,B=E.attributesDefault,D=E.attributesForced,L=E.removeEmptyAttrs,L&&!p.length&&(_=!1),D)for(m=D.length;m--;)S=D[m],v=S.name,I=S.value,"{$uid}"===I&&(I="mce_"+F++),p.map[v]=I,p.push({name:v,value:I});if(B)for(m=B.length;m--;)S=B[m],v=S.name,v in p.map||(I=S.value,"{$uid}"===I&&(I="mce_"+F++),p.map[v]=I,p.push({name:v,value:I}));if(A){for(m=A.length;m--&&!(A[m]in p.map););-1===m&&(_=!1)}if(S=p.map["data-mce-bogus"]){if("all"===S){u=r(a,e,P.lastIndex),P.lastIndex=u;continue}_=!1}}_&&l.start(d,p,w)}else _=!1;if(f=H[d]){f.lastIndex=u=c.index+c[0].length,(c=f.exec(e))?(_&&(g=e.substr(u,c.index-u)),u=c.index+c[0].length):(g=e.substr(u),u=e.length),_&&(g.length>0&&l.text(g,!0),l.end(d)),P.lastIndex=u;continue}w||(k&&k.indexOf("/")==k.length-1?_&&l.end(d):h.push({name:d,valid:_}))}else(d=c[1])?(">"===d.charAt(0)&&(d=" "+d),i.allow_conditional_comments||"[if"!==d.substr(0,3)||(d=" "+d),l.comment(d)):(d=c[2])?l.cdata(d):(d=c[3])?l.doctype(d):(d=c[4])&&l.pi(d,c[5]);u=c.index+c[0].length}for(u<e.length&&l.text(z(e.substr(u))),m=h.length-1;m>=0;m--)d=h[m],d.valid&&l.end(d.name)}}var o=n.each;return i.findEndTag=r,i}),r(L,[A,B,D,m],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,h,p,m,g,v,y,b;for(m=i("tr,td,th,tbody,thead,tfoot,table"),p=l.getNonEmptyElements(),g=l.getTextBlockElements(),v=l.getSpecialElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(y=r.next;y&&g[y.name];)y.name="li",y.fixed=!0,r.parent.insert(y,r.parent),y=y.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!m[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),h=0;h<a.length-1;h++){for(l.isValidChild(c.name,a[h].name)?(d=u.filterNode(a[h].clone()),c.append(d)):d=c,f=a[h].firstChild;f&&f!=a[h+1];)b=f.next,d.append(f),f=b;c=d}s.isEmpty(p)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(p)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(y=r.prev,y&&("ul"===y.name||"ul"===y.name)){y.append(r);continue}if(y=r.next,y&&("ul"===y.name||"ul"===y.name)){y.insert(r,y.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):v[r.name]?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],h={},p={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=h[n],r?r.push(e):h[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=p[n],r?r.push(e):p[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(D,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=h[t],i?i.push(r):h[t]=[r]),r}function m(e){var t,n,r,i,o=l.getBlockElements();for(t=e.prev;t&&3===t.type;){if(r=t.value.replace(D,""),r.length>0)return void(t.value=r);if(n=t.next){if(3==n.type&&n.value.length){t=t.prev;continue}if(!o[n.name]&&"script"!=n.name&&"style"!=n.name){t=t.prev;continue}}i=t.prev,t.remove(),t=i}}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,N,E,_,S,k,T,R,A=[],B,D,L,M,P,O,H,I;if(o=o||{},h={},p={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),H=l.getNonEmptyElements(),O=l.children,k=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,P=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,D=/[ \t\r\n]+$/,L=/[ \t\r\n]+/g,M=/^[ \t\r\n]+$/,v=new n({validate:k,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(L," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,m(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,m(b)},start:function(e,t,n){var r,i,o,a,s;if(o=k?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=O[b.name],s&&O[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(_=p[a],_?_.push(r):p[a]=[r]);T[e]&&m(r),n||(b=r),!B&&P[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=k?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(D,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||M.test(i))&&(n.remove(),n=o),n=o}if(B&&P[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(H))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,T[b.name]?b.empty().remove():b.unwrap(),void(b=a);b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),k&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(S in h){for(_=d[S],C=h[S],N=C.length;N--;)C[N].parent||C.splice(N,1);for(x=0,w=_.length;w>x;x++)_[x](C,S,o)}for(x=0,w=f.length;w>x;x++)if(_=f[x],_.name in p){for(C=p[_.name],N=C.length;N--;)C[N].parent||C.splice(N,1);for(N=0,E=_.callbacks.length;E>N;N++)_.callbacks[N](C,_.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,h,p;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(h=l.getElementRule(c.name),h&&(h.removeEmpty?c.remove():h.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(p=new e("#text",3),p.value="\xa0",i.replace(p))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}}),r.validate&&l.getValidClasses()&&u.addAttributeFilter("class",function(e){for(var t=e.length,n,r,i,o,a,s=l.getValidClasses(),c,u;t--;){for(n=e[t],r=n.attr("class").split(" "),a="",i=0;i<r.length;i++)o=r[i],u=!1,c=s["*"],c&&c[o]&&(u=!0),c=s[n.name],!u&&c&&c[o]&&(u=!0),u&&(a&&(a+=" "),a+=o);a.length||(a=null),n.attr("class",a)}})}}),r(M,[C,m],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');!n||l?r[r.length]=">":r[r.length]=" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",s(t),"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(P,[M,B],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,h,p,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1&&(f=[],f.map={},m=r.getElementRule(e.name))){for(h=0,p=m.attributesOrder.length;p>h;h++)u=m.attributesOrder[h],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(h=0,p=c.length;p>h;h++)u=c[h].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(O,[w,L,D,C,P,A,B,d,m,S],function(e,t,n,r,i,o,a,s,l,c){function u(e){function t(e){return e&&"br"===e.name}var n,r;n=e.lastChild,t(n)&&(r=n.prev,t(r)&&(n.remove(),r.remove()))}var d=l.each,f=l.trim,h=e.DOM,p=["data-mce-selected"];return function(e,o){function m(e){var t=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","\\s?("+p.join("|")+')="[^"]+"'].join("|"),"gi");return e=c.trim(e.replace(t,""))}function g(){var e=o.getBody().innerHTML,t=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,r,i,a,s,l,c=o.schema;for(e=m(e),l=c.getShortEndedElements();s=t.exec(e);)i=t.lastIndex,a=s[0].length,r=l[s[1]]?i:n.findEndTag(c,e,i),e=e.substring(0,i-a)+e.substring(r),t.lastIndex=i-a;return f(e)}function v(e){-1===l.inArray(p,e)&&(C.addAttributeFilter(e,function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),p.push(e))}var y,b,C;return o&&(y=o.dom,b=o.schema),y=y||h,b=b||new a(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,C=new t(e,b),C.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),C.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,s=e.url_converter,l=e.url_converter_scope,c;r--;)i=t[r],o=i.attributes.map[a],o!==c?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=y.serializeStyle(y.parseStyle(o),i.name):s&&(o=s.call(l,o,n,i.name)),i.attr(n,o.length>0?o:null))}),C.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class"),r&&(r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null))}),C.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),C.addNodeFilter("noscript",function(e){for(var t=e.length,n;t--;)n=e[t].firstChild,n&&(n.value=r.decode(n.value))}),C.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o,a;r--;)i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t?(a=i.attr("type"),a&&i.attr("type","mce-no/type"==a?null:a.replace(/^mce\-/,"")),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")):o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),C.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),C.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&C.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,"ul"!==r.name&&"ol"!==r.name||n.prev&&"li"===n.prev.name&&n.prev.append(n)}),C.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:b,addNodeFilter:C.addNodeFilter,addAttributeFilter:C.addAttributeFilter,serialize:function(t,n){var r=this,o,a,l,h,p,m;return s.ie&&y.select("script,style,select,map").length>0?(p=t.innerHTML,t=t.cloneNode(!1),y.setHTML(t,p)):t=t.cloneNode(!0),o=document.implementation,o.createHTMLDocument&&(a=o.createHTMLDocument(""),d("BODY"==t.nodeName?t.childNodes:[t],function(e){a.body.appendChild(a.importNode(e,!0))}),t="BODY"!=t.nodeName?a.body.firstChild:a.body,l=y.doc,y.doc=a),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,r.onPreProcess(n)),m=C.parse(f(n.getInner?t.innerHTML:y.getOuterHTML(t)),n),u(m),h=new i(e,b),n.content=h.serialize(m),n.cleanup||(n.content=c.trim(n.content),n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||r.onPostProcess(n),l&&(y.doc=l),n.node=null,n.content},addRules:function(e){b.addValidElements(e)},setRules:function(e){b.setValidElements(e)},onPreProcess:function(e){o&&o.fire("PreProcess",e)},onPostProcess:function(e){o&&o.fire("PostProcess",e)},addTempAttr:v,trimHtml:m,getTrimmedContent:g}}}),r(H,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(3==l.nodeType&&(u=l.nodeValue,s+=u.length,s>=i)){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(3==l.nodeType&&(s+=l.nodeValue.length,s>=i)){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,p;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),t!=f&&t!=f.documentElement||(t=h,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(p=t.childNodes,p.length?(n>=p.length?i.insertAfter(a,p[p.length-1]):t.insertBefore(a,p[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span>&#xFEFF;</span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,h=f.body,p,m;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=h.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="&#xFEFF;":d=null,s.innerHTML="<span>&#xFEFF;</span><span>&#xFEFF;</span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(m=s.childNodes[l],a=h.createControlRange(),a.addElement(m),a.select(),p=e.getRng(),p.item&&m===p.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(I,[d],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(t){return e.mac?t.metaKey:t.ctrlKey&&!t.altKey}}}),r(F,[I,m,u,d,_],function(e,t,n,r,i){function o(e,t){for(;t&&t!=e;){if(s(t)||a(t))return t;t=t.parentNode}return null}var a=i.isContentEditableFalse,s=i.isContentEditableTrue;return function(i,s){function l(e){var t=s.settings.object_resizing;return t===!1||r.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:e==s.getBody()?!1:s.dom.is(e,t))}function c(t){var n,r,i,o,a;n=t.screenX-L,r=t.screenY-M,U=n*B[2]+H,W=r*B[3]+I,U=5>U?5:U,W=5>W?5:W,i="IMG"==k.nodeName&&s.settings.resize_img_proportional!==!1?!e.modifierPressed(t):e.modifierPressed(t)||"IMG"==k.nodeName&&B[2]*B[3]!==0,i&&(j(n)>j(r)?(W=Y(U*F),U=Y(W/F)):(U=Y(W/F),W=Y(U*F))),_.setStyles(T,{width:U,height:W}),o=B.startPos.x+n,a=B.startPos.y+r,o=o>0?o:0,a=a>0?a:0,_.setStyles(R,{left:o,top:a,display:"block"}),R.innerHTML=U+" &times; "+W,B[2]<0&&T.clientWidth<=U&&_.setStyle(T,"left",P+(H-U)),B[3]<0&&T.clientHeight<=W&&_.setStyle(T,"top",O+(I-W)),n=X.scrollWidth-K,r=X.scrollHeight-G,n+r!==0&&_.setStyles(R,{left:o-n,top:a-r}),z||(s.fire("ObjectResizeStart",{target:k,width:H,height:I}),z=!0)}function u(){function e(e,t){t&&(k.style[e]||!s.schema.isValid(k.nodeName.toLowerCase(),e)?_.setStyle(k,e,t):_.setAttrib(k,e,t))}z=!1,e("width",U),e("height",W),_.unbind(V,"mousemove",c),_.unbind(V,"mouseup",u),$!=V&&(_.unbind($,"mousemove",c),_.unbind($,"mouseup",u)),_.remove(T),_.remove(R),q&&"TABLE"!=k.nodeName||d(k),s.fire("ObjectResized",{target:k,width:U,height:W}),_.setAttrib(k,"style",_.getAttrib(k,"style")),s.nodeChanged()}function d(e,t,n){var i,o,a,d,h;f(),x(),i=_.getPos(e,X),P=i.x,O=i.y,h=e.getBoundingClientRect(),o=h.width||h.right-h.left,a=h.height||h.bottom-h.top,k!=e&&(C(),k=e,U=W=0),d=s.fire("ObjectSelected",{target:e}),l(e)&&!d.isDefaultPrevented()?S(A,function(e,i){function s(t){L=t.screenX,M=t.screenY,H=k.clientWidth,I=k.clientHeight,F=I/H,B=e,e.startPos={x:o*e[0]+P,y:a*e[1]+O},K=X.scrollWidth,G=X.scrollHeight,T=k.cloneNode(!0),_.addClass(T,"mce-clonedresizable"),_.setAttrib(T,"data-mce-bogus","all"),T.contentEditable=!1,T.unSelectabe=!0,_.setStyles(T,{left:P,top:O,margin:0}),T.removeAttribute("data-mce-selected"),X.appendChild(T),_.bind(V,"mousemove",c),_.bind(V,"mouseup",u),$!=V&&(_.bind($,"mousemove",c),_.bind($,"mouseup",u)),R=_.add(X,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},H+" &times; "+I)}var l;return t?void(i==t&&s(n)):(l=_.get("mceResizeHandle"+i),l&&_.remove(l),l=_.add(X,"div",{id:"mceResizeHandle"+i,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+i+"-resize; margin:0; padding:0"}),r.ie&&(l.contentEditable=!1),_.bind(l,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),s(e)}),e.elm=l,void _.setStyles(l,{left:o*e[0]+P-l.offsetWidth/2,top:a*e[1]+O-l.offsetHeight/2}))}):f(),k.setAttribute("data-mce-selected","1")}function f(){var e,t;x(),k&&k.removeAttribute("data-mce-selected");for(e in A)t=_.get("mceResizeHandle"+e),t&&(_.unbind(t),_.remove(t))}function h(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n,r;if(!z&&!s.removed)return S(_.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),r="mousedown"==e.type?e.target:i.getNode(),r=_.$(r).closest(q?"table":"table,img,hr")[0],t(r,X)&&(w(),n=i.getStart(!0),t(n,r)&&t(i.getEnd(!0),r)&&(!q||r!=n&&"IMG"!==n.nodeName))?void d(r):void f()}function p(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function m(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function g(e){var t=e.srcElement,n,r,i,o,a,l,c;n=t.getBoundingClientRect(),l=D.clientX-n.left,c=D.clientY-n.top;for(r in A)if(i=A[r],o=t.offsetWidth*i[0],a=t.offsetHeight*i[1],j(o-l)<8&&j(a-c)<8){B=i;break}z=!0,s.fire("ObjectResizeStart",{target:k,width:k.clientWidth,height:k.clientHeight}),s.getDoc().selection.empty(),d(t,r,D)}function v(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function y(e){return a(o(s.getBody(),e))}function b(e){var t=e.srcElement;if(y(t))return void v(e);if(t!=k){if(s.fire("ObjectSelected",{target:t}),C(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);"IMG"!=t.nodeName&&"TABLE"!=t.nodeName||(f(),k=t,p(t,"resizestart",g))}}function C(){m(k,"resizestart",g)}function x(){for(var e in A){var t=A[e];t.elm&&(_.unbind(t.elm),delete t.elm)}}function w(){try{s.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function N(e){var t;if(q){t=V.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function E(){k=T=null,q&&(C(),m(X,"controlselect",b))}var _=s.dom,S=t.each,k,T,R,A,B,D,L,M,P,O,H,I,F,z,U,W,V=s.getDoc(),$=document,q=r.ie&&r.ie<11,j=Math.abs,Y=Math.round,X=s.getBody(),K,G;A={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var J=".mce-content-body";return s.contentStyles.push(J+" div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: box-sizing;background: #FFF;width: 7px;height: 7px;z-index: 10000}"+J+" .mce-resizehandle:hover {background: #000}"+J+" img[data-mce-selected],"+J+" hr[data-mce-selected] {outline: 1px solid black;resize: none}"+J+" .mce-clonedresizable {position: absolute;"+(r.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+J+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}"),s.on("init",function(){q?(s.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(f(),N(e.target))}),p(X,"controlselect",b),s.on("mousedown",function(e){D=e})):(w(),r.ie>=11&&(s.on("mousedown click",function(e){var t=e.target,n=t.nodeName;z||!/^(TABLE|IMG|HR)$/.test(n)||y(t)||(s.selection.select(t,"TABLE"==n),"mousedown"==e.type&&s.nodeChanged())}),s.dom.bind(X,"mscontrolselect",function(e){function t(e){n.setEditorTimeout(s,function(){s.selection.select(e)})}return y(e.target)?(e.preventDefault(),void t(e.target)):void(/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&t(e.target)))})));var e=n.throttle(function(e){s.composing||h(e)});s.on("nodechange ResizeEditor ResizeWindow drop",e),s.on("keyup compositionend",function(t){k&&"TABLE"==k.nodeName&&e(t)}),s.on("hide blur",f)}),s.on("remove",x),{isResizable:l,showResizeRect:d,hideResizeRect:f,updateResizeRect:h,controlSelect:N,destroy:E}}}),r(z,[],function(){function e(e){return function(){return e}}function t(e){return function(t){return!e(t)}}function n(e,t){return function(n){return e(t(n))}}function r(){var e=a.call(arguments);return function(t){for(var n=0;n<e.length;n++)if(e[n](t))return!0;return!1}}function i(){var e=a.call(arguments);
+return function(t){for(var n=0;n<e.length;n++)if(!e[n](t))return!1;return!0}}function o(e){var t=a.call(arguments);return t.length-1>=e.length?e.apply(this,t.slice(1)):function(){var e=t.concat([].slice.call(arguments));return o.apply(this,e)}}var a=[].slice;return{constant:e,negate:t,and:i,or:r,curry:o,compose:n}}),r(U,[_,p,k],function(e,t,n){function r(e){return m(e)?!1:d(e)?!f(e.parentNode):h(e)||u(e)||p(e)||c(e)}function i(e,t){for(e=e.parentNode;e&&e!=t;e=e.parentNode){if(c(e))return!1;if(l(e))return!0}return!0}function o(e){return c(e)?t.reduce(e.getElementsByTagName("*"),function(e,t){return e||l(t)},!1)!==!0:!1}function a(e){return h(e)||o(e)}function s(e,t){return r(e)&&i(e,t)}var l=e.isContentEditableTrue,c=e.isContentEditableFalse,u=e.isBr,d=e.isText,f=e.matchNodeNames("script style textarea"),h=e.matchNodeNames("img input textarea hr iframe video audio object"),p=e.matchNodeNames("table"),m=n.isCaretContainer;return{isCaretCandidate:r,isInEditable:i,isAtomic:a,isEditableCaretCandidate:s}}),r(W,[],function(){function e(e){return e?{left:u(e.left),top:u(e.top),bottom:u(e.bottom),right:u(e.right),width:u(e.width),height:u(e.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0}}function t(t,n){return t=e(t),n?t.right=t.left:(t.left=t.left+t.width,t.right=t.left),t.width=0,t}function n(e,t){return e.left===t.left&&e.top===t.top&&e.bottom===t.bottom&&e.right===t.right}function r(e,t,n){return e>=0&&e<=Math.min(t.height,n.height)/2}function i(e,t){return e.bottom<t.top?!0:e.top>t.bottom?!1:r(t.top-e.bottom,e,t)}function o(e,t){return e.top>t.bottom?!0:e.bottom<t.top?!1:r(t.bottom-e.top,e,t)}function a(e,t){return e.left<t.left}function s(e,t){return e.right>t.right}function l(e,t){return i(e,t)?-1:o(e,t)?1:a(e,t)?-1:s(e,t)?1:0}function c(e,t,n){return t>=e.left&&t<=e.right&&n>=e.top&&n<=e.bottom}var u=Math.round;return{clone:e,collapse:t,isEqual:n,isAbove:i,isBelow:o,isLeft:a,isRight:s,compare:l,containsXY:c}}),r(V,[],function(){function e(e){return"string"==typeof e&&e.charCodeAt(0)>=768&&t.test(e)}var t=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]");return{isExtendingChar:e}}),r($,[z,_,w,T,U,W,V],function(e,t,n,r,i,o,a){function s(e){return"createRange"in e?e.createRange():n.DOM.createRng()}function l(e){return e&&/[\r\n\t ]/.test(e)}function c(e){var t=e.startContainer,n=e.startOffset,r;return!!(l(e.toString())&&v(t.parentNode)&&(r=t.data,l(r[n-1])||l(r[n+1])))}function u(e){function t(e){var t=e.ownerDocument,n=s(t),r=t.createTextNode("\xa0"),i=e.parentNode,a;return i.insertBefore(r,e),n.setStart(r,0),n.setEnd(r,1),a=o.clone(n.getBoundingClientRect()),i.removeChild(r),a}function n(e){var n,r;return r=e.getClientRects(),n=r.length>0?o.clone(r[0]):o.clone(e.getBoundingClientRect()),b(e)&&0===n.left?t(e):n}function r(e,t){return e=o.collapse(e,t),e.width=1,e.right=e.left+1,e}function i(e){0!==e.height&&(u.length>0&&o.isEqual(e,u[u.length-1])||u.push(e))}function l(e,t){var o=s(e.ownerDocument);if(t<e.data.length){if(a.isExtendingChar(e.data[t]))return u;if(a.isExtendingChar(e.data[t-1])&&(o.setStart(e,t),o.setEnd(e,t+1),!c(o)))return i(r(n(o),!1)),u}t>0&&(o.setStart(e,t-1),o.setEnd(e,t),c(o)||i(r(n(o),!1))),t<e.data.length&&(o.setStart(e,t),o.setEnd(e,t+1),c(o)||i(r(n(o),!0)))}var u=[],d,h;if(y(e.container()))return l(e.container(),e.offset()),u;if(f(e.container()))if(e.isAtEnd())h=x(e.container(),e.offset()),y(h)&&l(h,h.data.length),g(h)&&!b(h)&&i(r(n(h),!1));else{if(h=x(e.container(),e.offset()),y(h)&&l(h,0),g(h)&&e.isAtEnd())return i(r(n(h),!1)),u;d=x(e.container(),e.offset()-1),g(d)&&!b(d)&&(p(d)||p(h)||!g(h))&&i(r(n(d),!1)),g(h)&&i(r(n(h),!0))}return u}function d(t,n,r){function i(){return y(t)?0===n:0===n}function o(){return y(t)?n>=t.data.length:n>=t.childNodes.length}function a(){var e;return e=s(t.ownerDocument),e.setStart(t,n),e.setEnd(t,n),e}function l(){return r||(r=u(new d(t,n))),r}function c(){return l().length>0}function f(e){return e&&t===e.container()&&n===e.offset()}function h(e){return x(t,e?n-1:n)}return{container:e.constant(t),offset:e.constant(n),toRange:a,getClientRects:l,isVisible:c,isAtStart:i,isAtEnd:o,isEqual:f,getNode:h}}var f=t.isElement,h=i.isCaretCandidate,p=t.matchStyleValues("display","block table"),m=t.matchStyleValues("float","left right"),g=e.and(f,h,e.negate(m)),v=e.negate(t.matchStyleValues("white-space","pre pre-line pre-wrap")),y=t.isText,b=t.isBr,C=n.nodeIndex,x=r.getNode;return d.fromRangeStart=function(e){return new d(e.startContainer,e.startOffset)},d.fromRangeEnd=function(e){return new d(e.endContainer,e.endOffset)},d.after=function(e){return new d(e.parentNode,C(e)+1)},d.before=function(e){return new d(e.parentNode,C(e))},d}),r(q,[_,w,z,p,$],function(e,t,n,r,i){function o(e){var t=e.parentNode;return v(t)?o(t):t}function a(e){return e?r.reduce(e.childNodes,function(e,t){return v(t)&&"BR"!=t.nodeName?e=e.concat(a(t)):e.push(t),e},[]):[]}function s(e,t){for(;(e=e.previousSibling)&&g(e);)t+=e.data.length;return t}function l(e){return function(t){return e===t}}function c(t){var n,i,s;return n=a(o(t)),i=r.findIndex(n,l(t),t),n=n.slice(0,i+1),s=r.reduce(n,function(e,t,r){return g(t)&&g(n[r-1])&&e++,e},0),n=r.filter(n,e.matchNodeNames(t.nodeName)),i=r.findIndex(n,l(t),t),i-s}function u(e){var t;return t=g(e)?"text()":e.nodeName.toLowerCase(),t+"["+c(e)+"]"}function d(e,t,n){var r=[];for(t=t.parentNode;t!=e&&(!n||!n(t));t=t.parentNode)r.push(t);return r}function f(t,i){var o,a,l=[],c,f,h;return o=i.container(),a=i.offset(),g(o)?c=s(o,a):(f=o.childNodes,a>=f.length?(c="after",a=f.length-1):c="before",o=f[a]),l.push(u(o)),h=d(t,o),h=r.filter(h,n.negate(e.isBogus)),l=l.concat(r.map(h,function(e){return u(e)})),l.reverse().join("/")+","+c}function h(t,n,i){var o=a(t);return o=r.filter(o,function(e,t){return!g(e)||!g(o[t-1])}),o=r.filter(o,e.matchNodeNames(n)),o[i]}function p(e,t){for(var n=e,r=0,o;g(n);){if(o=n.data.length,t>=r&&r+o>=t){e=n,t-=r;break}if(!g(n.nextSibling)){e=n,t=o;break}r+=o,n=n.nextSibling}return t>e.data.length&&(t=e.data.length),new i(e,t)}function m(e,t){var n,o,a;return t?(n=t.split(","),t=n[0].split("/"),a=n.length>1?n[1]:"before",o=r.reduce(t,function(e,t){return(t=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(t))?("text()"===t[1]&&(t[1]="#text"),h(e,t[1],parseInt(t[2],10))):null},e),o?g(o)?p(o,parseInt(a,10)):(a="after"===a?y(o)+1:y(o),new i(o.parentNode,a)):null):null}var g=e.isText,v=e.isBogus,y=t.nodeIndex;return{create:f,resolve:m}}),r(j,[d,m,k,q,$,_],function(e,t,n,r,i,o){function a(a){var l=a.dom;this.getBookmark=function(e,c){function u(e,n){var r=0;return t.each(l.select(e),function(e){return"all"!==e.getAttribute("data-mce-bogus")?e==n?!1:void r++:void 0}),r}function d(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function f(e){function t(e,t){var r=e[t?"startContainer":"endContainer"],i=e[t?"startOffset":"endOffset"],o=[],a,s,u=0;if(3==r.nodeType){if(c)for(a=r.previousSibling;a&&3==a.nodeType;a=a.previousSibling)i+=a.nodeValue.length;o.push(i)}else s=r.childNodes,i>=s.length&&s.length&&(u=1,i=Math.max(0,s.length-1)),o.push(l.nodeIndex(s[i],c)+u);for(;r&&r!=n;r=r.parentNode)o.push(l.nodeIndex(r,c));return o}var n=l.getRoot(),r={};return r.start=t(e,!0),a.isCollapsed()||(r.end=t(e)),r}function h(e){function t(e){var t;if(n.isCaretContainer(e)){if(o.isText(e)&&n.isCaretContainerBlock(e)&&(e=e.parentNode),t=e.previousSibling,s(t))return t;if(t=e.nextSibling,s(t))return t}}return t(e.startContainer)||t(e.endContainer)}var p,m,g,v,y,b,C="&#xFEFF;",x;if(2==e)return b=a.getNode(),y=b?b.nodeName:null,p=a.getRng(),s(b)||"IMG"==y?{name:y,index:u(y,b)}:a.tridentSel?a.tridentSel.getBookmark(e):(b=h(p),b?(y=b.tagName,{name:y,index:u(y,b)}):f(p));if(3==e)return p=a.getRng(),{start:r.create(l.getRoot(),i.fromRangeStart(p)),end:r.create(l.getRoot(),i.fromRangeEnd(p))};if(e)return{rng:a.getRng()};if(p=a.getRng(),g=l.uniqueId(),v=a.isCollapsed(),x="overflow:hidden;line-height:0px",p.duplicate||p.item){if(p.item)return b=p.item(0),y=b.nodeName,{name:y,index:u(y,b)};m=p.duplicate();try{p.collapse(),p.pasteHTML('<span data-mce-type="bookmark" id="'+g+'_start" style="'+x+'">'+C+"</span>"),v||(m.collapse(!1),p.moveToElementText(m.parentElement()),0===p.compareEndPoints("StartToEnd",m)&&m.move("character",-1),m.pasteHTML('<span data-mce-type="bookmark" id="'+g+'_end" style="'+x+'">'+C+"</span>"))}catch(w){return null}}else{if(b=a.getNode(),y=b.nodeName,"IMG"==y)return{name:y,index:u(y,b)};m=d(p.cloneRange()),v||(m.collapse(!1),m.insertNode(l.create("span",{"data-mce-type":"bookmark",id:g+"_end",style:x},C))),p=d(p),p.collapse(!0),p.insertNode(l.create("span",{"data-mce-type":"bookmark",id:g+"_start",style:x},C))}return a.moveToBookmark({id:g,keep:1}),{id:g}},this.moveToBookmark=function(n){function i(e){var t=n[e?"start":"end"],r,i,o,a;if(t){for(o=t[0],i=d,r=t.length-1;r>=1;r--){if(a=i.childNodes,t[r]>a.length-1)return;i=a[t[r]]}3===i.nodeType&&(o=Math.min(t[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(t[0],i.childNodes.length)),e?u.setStart(i,o):u.setEnd(i,o)}return!0}function o(r){var i=l.get(n.id+"_"+r),o,a,s,c,u=n.keep;if(i&&(o=i.parentNode,"start"==r?(u?(o=i.firstChild,a=1):a=l.nodeIndex(i),f=h=o,p=m=a):(u?(o=i.firstChild,a=1):a=l.nodeIndex(i),h=o,m=a),!u)){for(c=i.previousSibling,s=i.nextSibling,t.each(t.grep(i.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});i=l.get(n.id+"_"+r);)l.remove(i,1);c&&s&&c.nodeType==s.nodeType&&3==c.nodeType&&!e.opera&&(a=c.nodeValue.length,c.appendData(s.nodeValue),l.remove(s),"start"==r?(f=h=c,p=m=a):(h=c,m=a))}}function s(t){return!l.isBlock(t)||t.innerHTML||e.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}function c(){var e,t;return e=l.createRng(),t=r.resolve(l.getRoot(),n.start),e.setStart(t.container(),t.offset()),t=r.resolve(l.getRoot(),n.end),e.setEnd(t.container(),t.offset()),e}var u,d,f,h,p,m;if(n)if(t.isArray(n.start)){if(u=l.createRng(),d=l.getRoot(),a.tridentSel)return a.tridentSel.moveToBookmark(n);i(!0)&&i()&&a.setRng(u)}else"string"==typeof n.start?a.setRng(c(n)):n.id?(o("start"),o("end"),f&&(u=l.createRng(),u.setStart(s(f),p),u.setEnd(s(h),m),a.setRng(u))):n.name?a.select(l.select(n.name)[n.index]):n.rng&&a.setRng(n.rng)}}var s=o.isContentEditableFalse;return a.isBookmarkNode=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},a}),r(Y,[y,H,F,T,j,_,d,m,$],function(e,n,r,i,o,a,s,l,c){function u(e,t,i,a){var s=this;s.dom=e,s.win=t,s.serializer=i,s.editor=a,s.bookmarkManager=new o(s),s.controlSelection=new r(s,a),s.win.getSelection||(s.tridentSel=new n(s))}var d=l.each,f=l.trim,h=s.ie;return u.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(e){var t=this,n=t.getRng(),r,i,o,a;if(n.duplicate||n.item){if(n.item)return n.item(0);for(o=n.duplicate(),o.collapse(1),r=o.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),i=a=n.parentElement();a=a.parentNode;)if(a==r){r=i;break}return r}return r=n.startContainer,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[Math.min(r.childNodes.length-1,n.startOffset)])),r&&3==r.nodeType?r.parentNode:r},getEnd:function(e){var t=this,n=t.getRng(),r,i;return n.duplicate||n.item?n.item?n.item(0):(n=n.duplicate(),n.collapse(0),r=n.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),r&&"BODY"==r.nodeName?r.lastChild||r:r):(r=n.endContainer,i=n.endOffset,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[i>0?i-1:i])),r&&3==r.nodeType?r.parentNode:r)},getBookmark:function(e,t){return this.bookmarkManager.getBookmark(e,t)},moveToBookmark:function(e){return this.bookmarkManager.moveToBookmark(e)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a,s,l;if(!n.win)return null;if(a=n.win.document,!e&&n.lastFocusBookmark){var c=n.lastFocusBookmark;return c.startContainer?(i=a.createRange(),i.setStart(c.startContainer,c.startOffset),i.setEnd(c.endContainer,c.endOffset)):i=c,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(u){}if(l=n.editor.fire("GetSelectionRange",{range:i}),l.range!==i)return l.range;if(h&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(u){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r,i,o;if(e)if(e.select){n.explicitRange=null;try{e.select()}catch(a){}}else if(n.tridentSel){if(e.cloneRange)try{n.tridentSel.addRange(e)}catch(a){}}else{if(r=n.getSel(),o=n.editor.fire("SetSelectionRange",{range:e}),e=o.range,r){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(a){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}e.collapsed||e.startContainer!=e.endContainer||!r.setBaseAndExtent||s.ie||e.endOffset-e.startOffset<2&&e.startContainer.hasChildNodes()&&(i=e.startContainer.childNodes[e.startOffset],i&&"IMG"==i.tagName&&n.getSel().setBaseAndExtent(i,0,i,1))}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i,o,a,s,l=t.dom.getRoot();return n?(i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r)):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return s.range&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};d(n.selectorChangedData,function(e,t){d(o,function(n){return i.is(n,t)?(r[t]||(d(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),d(r,function(e,n){a[n]||(delete r[n],d(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){function n(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var r,i,o=this,s=o.dom,l=s.getRoot(),c,u,d=0;if(a.isElement(e)){if(t===!1&&(d=e.offsetHeight),"BODY"!=l.nodeName){var f=o.getScrollContainer();if(f)return r=n(e).y-n(f).y+d,u=f.clientHeight,c=f.scrollTop,void((c>r||r+25>c+u)&&(f.scrollTop=c>r?r:r-u+25))}i=s.getViewPort(o.editor.getWin()),r=s.getPos(e).y+d,c=i.y,u=i.h,(r<i.y||r+25>c+u)&&o.editor.getWin().scrollTo(0,c>r?r:r-u+25)}},placeCaretAt:function(e,t){this.setRng(i.getCaretRangeFromPoint(e,t,this.editor.getDoc()))},_moveEndPoint:function(t,n,r){var i=n,o=new e(n,i),a=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==f(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(s.ie&&s.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?o.next():o.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},getBoundingClientRect:function(){var e=this.getRng();return e.collapsed?c.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){this.win=null,this.controlSelection.destroy()}},u}),r(X,[j,m],function(e,t){function n(t){this.compare=function(n,i){function o(e){var n={};return r(t.getAttribs(e),function(r){var i=r.nodeName.toLowerCase();0!==i.indexOf("_")&&"style"!==i&&0!==i.indexOf("data-")&&(n[i]=t.getAttrib(e,i))}),n}function a(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],"undefined"==typeof n)return!1;if(e[r]!=n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0}return n.nodeName!=i.nodeName?!1:a(o(n),o(i))&&a(t.parseStyle(t.getAttrib(n,"style")),t.parseStyle(t.getAttrib(i,"style")))?!e.isBookmarkNode(n)&&!e.isBookmarkNode(i):!1}}var r=t.each;return n}),r(K,[m],function(e){function t(e,t){function r(e){return e.replace(/%(\w+)/g,"")}var i,o,a=e.dom,s="",l,c;if(c=e.settings.preview_styles,c===!1)return"";if(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return i=t.block||t.inline||"span",o=a.create(i),n(t.styles,function(e,t){e=r(e),e&&a.setStyle(o,t,e)}),n(t.attributes,function(e,t){e=r(e),e&&a.setAttrib(o,t,e)}),n(t.classes,function(e){e=r(e),a.hasClass(o,e)||a.addClass(o,e)}),e.fire("PreviewFormats"),a.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),l=a.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,n(c.split(" "),function(t){var n=a.getStyle(o,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=a.getStyle(e.getBody(),t,!0),"#ffffff"==a.toHex(n).toLowerCase())||"color"==t&&"#000000"==a.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"}"border"==t&&n&&(s+="padding:0 2px;"),s+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),a.remove(o),s}var n=e.each;return{getCssText:t}}),r(G,[p,_,g],function(e,t,n){function r(e,t){var n=o[e];n||(o[e]=n=[]),o[e].push(t)}function i(e,t){s(o[e],function(e){e(t)})}var o=[],a=e.filter,s=e.each;return r("pre",function(r){function i(t){return c(t.previousSibling)&&-1!=e.indexOf(u,t.previousSibling)}function o(e,t){n(t).remove(),n(e).append("<br><br>").append(t.childNodes)}var l=r.selection.getRng(),c,u;c=t.matchNodeNames("pre"),l.collapsed||(u=r.selection.getSelectedBlocks(),s(a(a(u,c),i),function(e){o(e.previousSibling,e)}))}),{postProcess:i}}),r(J,[y,T,j,X,m,K,G],function(e,t,n,r,i,o,a){return function(s){function l(e){return e.nodeType&&(e=e.nodeName),!!s.schema.getTextBlockElements()[e.toLowerCase()]}function c(e){return/^(TH|TD)$/.test(e.nodeName)}function u(e){return e&&/^(IMG)$/.test(e.nodeName)}function d(e,t){return Y.getParents(e,t,Y.getRoot())}function f(e){return 1===e.nodeType&&"_mce_caret"===e.id}function h(){g({valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-center",ceFalseOverride:!0},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right",ceFalseOverride:!0},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){ue(n,function(t,n){Y.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),ue("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){g(e,{block:e,remove:"all"})}),g(s.settings.formats)}function p(){s.addShortcut("meta+b","bold_desc","Bold"),s.addShortcut("meta+i","italic_desc","Italic"),s.addShortcut("meta+u","underline_desc","Underline");for(var e=1;6>=e;e++)s.addShortcut("access+"+e,"",["FormatBlock",!1,"h"+e]);s.addShortcut("access+7","",["FormatBlock",!1,"p"]),s.addShortcut("access+8","",["FormatBlock",!1,"div"]),s.addShortcut("access+9","",["FormatBlock",!1,"address"])}function m(e){return e?j[e]:j}function g(e,t){e&&("string"!=typeof e?ue(e,function(e,t){g(t,e)}):(t=t.length?t:[t],ue(t,function(e){e.deep===oe&&(e.deep=!e.selector),e.split===oe&&(e.split=!e.selector||e.inline),e.remove===oe&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),j[e]=t))}function v(e){return e&&j[e]&&delete j[e],j}function y(e,t){var n=m(t);if(n)for(var r=0;r<n.length;r++)if(n[r].inherit===!1&&Y.is(e,n[r].selector))return!0;return!1}function b(e){var t;return s.dom.getParent(e,function(e){return t=s.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function C(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=b(e.parentNode),s.dom.getStyle(e,"color")&&t?s.dom.setStyle(e,"text-decoration",t):s.dom.getStyle(e,"text-decoration")===t&&s.dom.setStyle(e,"text-decoration",null))}function x(t,n,r){function i(e,t){if(t=t||d,e){if(t.onformat&&t.onformat(e,t,n,r),ue(t.styles,function(t,r){Y.setStyle(e,r,M(t,n))}),t.styles){var i=Y.getAttrib(e,"style");i&&e.setAttribute("data-mce-style",i)}ue(t.attributes,function(t,r){Y.setAttrib(e,r,M(t,n))}),ue(t.classes,function(t){t=M(t,n),Y.hasClass(e,t)||Y.addClass(e,t)})}}function o(){function t(t,n){var i=new e(n);for(r=i.prev2();r;r=i.prev2()){if(3==r.nodeType&&r.data.length>0)return r;if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}}var n=s.selection.getRng(),i=n.startContainer,o=n.endContainer;if(i!=o&&0===n.endOffset){var a=t(i,o),l=3==a.nodeType?a.data.length:a.childNodes.length;n.setEnd(a,l)}return n}function c(e,r,o){var a=[],s,c,h=!0;s=d.inline||d.block,c=Y.create(s),i(c),K.walk(e,function(e){function r(e){var m,v,y,b,C;return C=h,m=e.nodeName.toLowerCase(),v=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&ae(e)&&(C=h,h="true"===ae(e),b=!0),B(m,"br")?(p=0,void(d.block&&Y.remove(e))):d.wrapper&&E(e,t,n)?void(p=0):h&&!b&&d.block&&!d.wrapper&&l(m)&&G(v,s)?(e=Y.rename(e,s),i(e),a.push(e),void(p=0)):d.selector&&(ue(u,function(t){return"collapsed"in t&&t.collapsed!==g?void 0:Y.is(e,t.selector)&&!f(e)?(i(e,t),y=!0,!1):void 0}),!d.inline||y)?void(p=0):void(!h||b||!G(s,m)||!G(v,s)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||f(e)||d.inline&&J(e)?(p=0,ue(de(e.childNodes),r),b&&(h=C),p=0):(p||(p=Y.clone(c,ne),e.parentNode.insertBefore(p,e),a.push(p)),p.appendChild(e)))}var p;ue(e,r)}),d.links===!0&&ue(a,function(e){function t(e){"A"===e.nodeName&&i(e,d),ue(de(e.childNodes),t)}t(e)}),ue(a,function(e){function r(e){var t=0;return ue(e.childNodes,function(e){P(e)||ce(e)||t++}),t}function o(e){var t,n;return ue(e.childNodes,function(e){return 1!=e.nodeType||ce(e)||f(e)?void 0:(t=e,ne)}),t&&!ce(t)&&A(t,d)&&(n=Y.clone(t,ne),i(n),Y.replace(n,e,re),Y.remove(t,1)),n||e}var s;if(s=r(e),(a.length>1||!J(e))&&0===s)return void Y.remove(e,1);if(d.inline||d.wrapper){if(d.exact||1!==s||(e=o(e)),ue(u,function(t){ue(Y.select(t.inline,e),function(e){ce(e)||F(t,n,e,t.exact?e:null)})}),E(e.parentNode,t,n))return Y.remove(e,1),e=0,re;d.merge_with_parents&&Y.getParent(e.parentNode,function(r){return E(r,t,n)?(Y.remove(e,1),e=0,re):void 0}),e&&d.merge_siblings!==!1&&(e=W(U(e),e),e=W(e,U(e,re)))}})}var u=m(t),d=u[0],h,p,g=!r&&X.isCollapsed();if("false"!==ae(X.getNode())){if(d){if(r)r.nodeType?(p=Y.createRng(),p.setStartBefore(r),p.setEndAfter(r),c(H(p,u),null,!0)):c(r,null,!0);else if(g&&d.inline&&!Y.select("td[data-mce-selected],th[data-mce-selected]").length)$("apply",t,n);else{var v=s.selection.getNode();Q||!u[0].defaultBlock||Y.getParent(v,Y.isBlock)||x(u[0].defaultBlock),s.selection.setRng(o()),h=X.getBookmark(),c(H(X.getRng(re),u),h),d.styles&&(d.styles.color||d.styles.textDecoration)&&(fe(v,C,"childNodes"),C(v)),X.moveToBookmark(h),q(X.getRng(re)),s.nodeChanged()}a.postProcess(t,s)}}else{r=X.getNode();for(var y=0,b=u.length;b>y;y++)if(u[y].ceFalseOverride&&Y.is(r,u[y].selector))return void i(r,u[y])}}function w(e,t,n,r){function i(e){var n,r,o,a,s;if(1===e.nodeType&&ae(e)&&(a=y,y="true"===ae(e),s=!0),n=de(e.childNodes),y&&!s)for(r=0,o=h.length;o>r&&!F(h[r],t,e,e);r++);if(p.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(y=a)}}function o(n){var i;return ue(d(n.parentNode).reverse(),function(n){var o;i||"_start"==n.id||"_end"==n.id||(o=E(n,e,t,r),o&&o.split!==!1&&(i=n))}),i}function a(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,
+o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=Y.clone(o,ne),c=0;c<h.length;c++)if(F(h[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||p.mixed&&J(e)||(n=Y.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function l(e){return a(o(e),e,e,!0)}function u(e){var t=Y.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return ce(n)&&(n=n[e?"firstChild":"lastChild"]),3==n.nodeType&&0===n.data.length&&(n=e?t.previousSibling||t.nextSibling:t.nextSibling||t.previousSibling),Y.remove(t,!0),n}function f(e){var t,n,r=e.commonAncestorContainer;if(e=H(e,h,re),p.split){if(t=V(e,re),n=V(e),t!=n){if(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&c(n)&&n.firstChild&&(n=n.firstChild||n),Y.isChildOf(t,n)&&!J(n)&&!c(t)&&!c(n))return t=O(t,"span",{id:"_start","data-mce-type":"bookmark"}),l(t),void(t=u(re));t=O(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=O(n,"span",{id:"_end","data-mce-type":"bookmark"}),l(t),l(n),t=u(re),n=u()}else t=n=l(t);e.startContainer=t.parentNode?t.parentNode:t,e.startOffset=Z(t),e.endContainer=n.parentNode?n.parentNode:n,e.endOffset=Z(n)+1}K.walk(e,function(e){ue(e,function(e){i(e),1===e.nodeType&&"underline"===s.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===b(e.parentNode)&&F({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var h=m(e),p=h[0],g,v,y=!0;if(n)return void(n.nodeType?(v=Y.createRng(),v.setStartBefore(n),v.setEndAfter(n),f(v)):f(n));if("false"!==ae(X.getNode()))X.isCollapsed()&&p.inline&&!Y.select("td[data-mce-selected],th[data-mce-selected]").length?$("remove",e,t,r):(g=X.getBookmark(),f(X.getRng(re)),X.moveToBookmark(g),p.inline&&_(e,t,X.getStart())&&q(X.getRng(!0)),s.nodeChanged());else{n=X.getNode();for(var C=0,x=h.length;x>C&&(!h[C].ceFalseOverride||!F(h[C],t,n,n));C++);}}function N(e,t,n){var r=m(e);!_(e,t,n)||"toggle"in r[0]&&!r[0].toggle?x(e,t,n):w(e,t,n)}function E(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===oe){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?Y.getAttrib(e,o):D(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!B(a,L(M(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?Y.getAttrib(e,s[l]):D(e,s[l]))return t;return t}var o=m(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],A(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!Y.hasClass(e,l[s]))return;return a}}function _(e,t,n){function r(n){var r=Y.getRoot();return n===r?!1:(n=Y.getParent(n,function(n){return y(n,e)?!0:n.parentNode===r||!!E(n,e,t,!0)}),E(n,e,t))}var i;return n?r(n):(n=X.getNode(),r(n)?re:(i=X.getStart(),i!=n&&r(i)?re:ne))}function S(e,t){var n,r=[],i={};return n=X.getStart(),Y.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&E(n,a,t)&&(i[a]=!0,r.push(a))},Y.getRoot()),r}function k(e){var t=m(e),n,r,i,o,a;if(t)for(n=X.getStart(),r=d(n),o=t.length-1;o>=0;o--){if(a=t[o].selector,!a||t[o].defaultBlock)return re;for(i=r.length-1;i>=0;i--)if(Y.is(r[i],a))return re}return ne}function T(e,t,n){var r;return ie||(ie={},r={},s.on("NodeChange",function(e){var t=d(e.element),n={};t=i.grep(t,function(e){return 1==e.nodeType&&!e.getAttribute("data-mce-bogus")}),ue(ie,function(e,i){ue(t,function(o){return E(o,i,{},e.similar)?(r[i]||(ue(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):y(o,i)?!1:void 0})}),ue(r,function(i,o){n[o]||(delete r[o],ue(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),ue(e.split(","),function(e){ie[e]||(ie[e]=[],ie[e].similar=n),ie[e].push(t)}),this}function R(e){return o.getCssText(s,e)}function A(e,t){return B(e,t.inline)?re:B(e,t.block)?re:t.selector?1==e.nodeType&&Y.is(e,t.selector):void 0}function B(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function D(e,t){return L(Y.getStyle(e,t),t)}function L(e,t){return"color"!=t&&"backgroundColor"!=t||(e=Y.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function M(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function P(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function O(e,t,n){var r=Y.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function H(t,n,r){function i(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=Y.getRoot(),3==r.nodeType&&!P(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&J(i))return i;for(o=i[a];o;o=o[a])if(!ce(o)&&!P(o)&&!t(o))return i;if(i==s||i.parentNode==s){r=i;break}i=i.parentNode}return r}function o(e,t){for(t===oe&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function a(e){for(var t=e;t;){if(1===t.nodeType&&ae(t))return"false"===ae(t)?t:e;t=t.parentNode}return e}function c(t,n,i){function o(e,t){var n,o,a=e.nodeValue;return"undefined"==typeof t&&(t=i?a.length:0),i?(n=a.lastIndexOf(" ",t),o=a.lastIndexOf("\xa0",t),n=n>o?n:o,-1===n||r||n++):(n=a.indexOf(" ",t),o=a.indexOf("\xa0",t),n=-1!==n&&(-1===o||o>n)?n:o),n}var a,l,c,u;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};u=t}for(a=new e(t,Y.getParent(t,J)||s.getBody());l=a[i?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(J(l))break;return u?(n=i?0:u.length,{container:u,offset:n}):void 0}function u(e,r){var i,o,a,s;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=d(e),o=0;o<i.length;o++)for(a=0;a<n.length;a++)if(s=n[a],!("collapsed"in s&&s.collapsed!==t.collapsed)&&Y.is(i[o],s.selector))return i[o];return e}function f(e,t){var r,i=Y.getRoot();if(n[0].wrapper||(r=Y.getParent(e,n[0].block,i)),r||(r=Y.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=i&&l(e)})),r&&n[0].wrapper&&(r=d(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!J(r[t])&&(r=r[t],!B(r,"br")););return r||e}var h,p,m,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(h=g.childNodes.length-1,g=g.childNodes[v>h?h:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(h=y.childNodes.length-1,y=y.childNodes[b>h?h:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=a(g),y=a(y),(ce(g.parentNode)||ce(g))&&(g=ce(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(ce(y.parentNode)||ce(y))&&(y=ce(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(m=c(g,v,!0),m&&(g=m.container,v=m.offset),m=c(y,b),m&&(y=m.container,b=m.offset)),p=o(y,b),p.node)){for(;p.node&&0===p.offset&&p.node.previousSibling;)p=o(p.node.previousSibling);p.node&&p.offset>0&&3===p.node.nodeType&&" "===p.node.nodeValue.charAt(p.offset-1)&&p.offset>1&&(y=p.node,y.splitText(p.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=i(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=i())),n[0].selector&&n[0].expand!==ne&&!n[0].inline&&(g=u(g,"previousSibling"),y=u(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(J(g)||(g=i(!0)),J(y)||(y=i()))),1==g.nodeType&&(v=Z(g),g=g.parentNode),1==y.nodeType&&(b=Z(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function I(e,t){return t.links&&"A"==e.tagName}function F(e,t,n,r){var i,o,a;if(!A(n,e)&&!I(n,e))return ne;if("all"!=e.remove)for(ue(e.styles,function(i,o){i=L(M(i,t),o),"number"==typeof o&&(o=i,r=0),(e.remove_similar||!r||B(D(r,o),i))&&Y.setStyle(n,o,""),a=1}),a&&""===Y.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),ue(e.attributes,function(e,i){var o;if(e=M(e,t),"number"==typeof i&&(i=e,r=0),!r||B(Y.getAttrib(r,i),e)){if("class"==i&&(e=Y.getAttrib(n,i),e&&(o="",ue(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void Y.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),te.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),ue(e.classes,function(e){e=M(e,t),r&&!Y.hasClass(r,e)||Y.removeClass(n,e)}),o=Y.getAttribs(n),i=0;i<o.length;i++){var s=o[i].nodeName;if(0!==s.indexOf("_")&&0!==s.indexOf("data-"))return ne}return"none"!=e.remove?(z(n,e),re):void 0}function z(e,t){function n(e,t,n){return e=U(e,t,n),!e||"BR"==e.nodeName||J(e)}var r=e.parentNode,i;t.block&&(Q?r==Y.getRoot()&&(t.list_block&&B(e,t.list_block)||ue(de(e.childNodes),function(e){G(Q,e.nodeName.toLowerCase())?i?i.appendChild(e):(i=O(e,Q),Y.setAttribs(i,s.settings.forced_root_block_attrs)):i=0})):J(e)&&!J(r)&&(n(e,ne)||n(e.firstChild,re,1)||e.insertBefore(Y.create("br"),e.firstChild),n(e,re)||n(e.lastChild,ne,1)||e.appendChild(Y.create("br")))),t.selector&&t.inline&&!B(t.inline,e)||Y.remove(e,1)}function U(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!P(e))return e}function W(e,t){function n(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!ce(i))return i}return e}var i,o,a=new r(Y);if(e&&t&&(e=n(e,"previousSibling"),t=n(t,"nextSibling"),a.compare(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return Y.remove(t),ue(de(t.childNodes),function(t){e.appendChild(t)}),e}return t}function V(t,n){var r,i,o;return r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1==r.nodeType&&(o=r.childNodes.length-1,!n&&i&&i--,r=r.childNodes[i>o?o:i]),3===r.nodeType&&n&&i>=r.nodeValue.length&&(r=new e(r,s.getBody()).next()||r),3!==r.nodeType||n||0!==i||(r=new e(r,s.getBody()).prev()||r),r}function $(t,n,r,i){function o(e){var t=Y.create("span",{id:g,"data-mce-bogus":!0,style:v?"color:red":""});return e&&t.appendChild(s.getDoc().createTextNode(ee)),t}function a(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==ee||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function c(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function u(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=X.getRng(!0),a(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),Y.remove(e)):(n=u(e),n.nodeValue.charAt(0)===ee&&(n.deleteData(0,1),r.startContainer==n&&r.startOffset>0&&r.setStart(n,r.startOffset-1),r.endContainer==n&&r.endOffset>0&&r.setEnd(n,r.endOffset-1)),Y.remove(e,1)),X.setRng(r);else if(e=c(X.getStart()),!e)for(;e=Y.get(g);)d(e,!1)}function f(){var e,t,i,a,s,l,d;e=X.getRng(!0),a=e.startOffset,l=e.startContainer,d=l.nodeValue,t=c(X.getStart()),t&&(i=u(t)),d&&a>0&&a<d.length&&/\w/.test(d.charAt(a))&&/\w/.test(d.charAt(a-1))?(s=X.getBookmark(),e.collapse(!0),e=H(e,m(n)),e=K.split(e),x(n,r,e),X.moveToBookmark(s)):(t&&i.nodeValue===ee?x(n,r,t):(t=o(!0),i=t.firstChild,e.insertNode(t),a=1,x(n,r,t)),X.setCursorLocation(i,a))}function h(){var e=X.getRng(!0),t,a,s,c,u,d,f=[],h,p;for(t=e.startContainer,a=e.startOffset,u=t,3==t.nodeType&&(a!=t.nodeValue.length&&(c=!0),u=u.parentNode);u;){if(E(u,n,r,i)){d=u;break}u.nextSibling&&(c=!0),f.push(u),u=u.parentNode}if(d)if(c)s=X.getBookmark(),e.collapse(!0),e=H(e,m(n),!0),e=K.split(e),w(n,r,e),X.moveToBookmark(s);else{for(p=o(),u=p,h=f.length-1;h>=0;h--)u.appendChild(Y.clone(f[h],!1)),u=u.firstChild;u.appendChild(Y.doc.createTextNode(ee)),u=u.firstChild;var g=Y.getParent(d,l);g&&Y.isEmpty(g)?d.parentNode.replaceChild(p,d):Y.insertAfter(p,d),X.setCursorLocation(u,1),Y.isEmpty(d)&&Y.remove(d)}}function p(){var e;e=c(X.getStart()),e&&!Y.isEmpty(e)&&fe(e,function(e){1!=e.nodeType||e.id===g||Y.isEmpty(e)||Y.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var g="_mce_caret",v=s.settings.caret_debug;s._hasCaretEvents||(le=function(){var e=[],t;if(a(c(X.getStart()),e))for(t=e.length;t--;)Y.setAttrib(e[t],"data-mce-bogus","1")},se=function(e){var t=e.keyCode;d(),8==t&&X.isCollapsed()&&X.getStart().innerHTML==ee&&d(c(X.getStart())),37!=t&&39!=t||d(c(X.getStart())),p()},s.on("SetContent",function(e){e.selection&&p()}),s._hasCaretEvents=!0),"apply"==t?f():h()}function q(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if((t.startContainer!=t.endContainer||!u(t.startContainer.childNodes[t.startOffset]))&&(3==n.nodeType&&r>=n.nodeValue.length&&(r=Z(n),n=n.parentNode,i=!0),1==n.nodeType))for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,Y.getParent(n,Y.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!P(a))return l=Y.create("a",{"data-mce-bogus":"all"},ee),a.parentNode.insertBefore(l,a),t.setStart(a,0),X.setRng(t),void Y.remove(l)}var j={},Y=s.dom,X=s.selection,K=new t(Y),G=s.schema.isValidChild,J=Y.isBlock,Q=s.settings.forced_root_block,Z=Y.nodeIndex,ee="\ufeff",te=/^(src|href|style)$/,ne=!1,re=!0,ie,oe,ae=Y.getContentEditable,se,le,ce=n.isBookmarkNode,ue=i.each,de=i.grep,fe=i.walk,he=i.extend;he(this,{get:m,register:g,unregister:v,apply:x,remove:w,toggle:N,match:_,matchAll:S,matchNode:E,canApply:k,formatChanged:T,getCssText:R}),h(),p(),s.on("BeforeGetContent",function(e){le&&"raw"!=e.format&&le()}),s.on("mouseup keydown",function(e){se&&se(e)})}}),r(Q,[I,d],function(e,t){return function(e){function n(){return e.serializer.getTrimmedContent()}function r(t){e.setDirty(t)}function i(e){o.typing=!1,o.add({},e)}var o=this,a=0,s=[],l,c,u=0;return e.on("init",function(){o.add()}),e.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&o.beforeChange()}),e.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&i(e)}),e.on("ObjectResizeStart Cut",function(){o.beforeChange()}),e.on("SaveContent ObjectResized blur",i),e.on("DragEnd",i),e.on("KeyUp",function(a){var l=a.keyCode;a.isDefaultPrevented()||((l>=33&&36>=l||l>=37&&40>=l||45==l||13==l||a.ctrlKey)&&(i(),e.nodeChanged()),(46==l||8==l||t.mac&&(91==l||93==l))&&e.nodeChanged(),c&&o.typing&&(e.isDirty()||(r(s[0]&&n()!=s[0].content),e.isDirty()&&e.fire("change",{level:s[0],lastLevel:null})),e.fire("TypingUndo"),c=!1,e.nodeChanged()))}),e.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented()){if(t>=33&&36>=t||t>=37&&40>=t||45==t)return void(o.typing&&i(e));var n=e.ctrlKey&&!e.altKey||e.metaKey;!(16>t||t>20)||224==t||91==t||o.typing||n||(o.beforeChange(),o.typing=!0,o.add({},e),c=!0)}}),e.on("MouseDown",function(e){o.typing&&i(e)}),e.addShortcut("meta+z","","Undo"),e.addShortcut("meta+y,meta+shift+z","","Redo"),e.on("AddUndo Undo Redo ClearUndos",function(t){t.isDefaultPrevented()||e.nodeChanged()}),o={data:s,typing:!1,beforeChange:function(){u||(l=e.selection.getBookmark(2,!0))},add:function(t,i){var o,c=e.settings,d;if(t=t||{},t.content=n(),u||e.removed)return null;if(d=s[a],e.fire("BeforeAddUndo",{level:t,lastLevel:d,originalEvent:i}).isDefaultPrevented())return null;if(d&&d.content==t.content)return null;if(s[a]&&(s[a].beforeBookmark=l),c.custom_undo_redo_levels&&s.length>c.custom_undo_redo_levels){for(o=0;o<s.length-1;o++)s[o]=s[o+1];s.length--,a=s.length}t.bookmark=e.selection.getBookmark(2,!0),a<s.length-1&&(s.length=a+1),s.push(t),a=s.length-1;var f={level:t,lastLevel:d,originalEvent:i};return e.fire("AddUndo",f),a>0&&(r(!0),e.fire("change",f)),t},undo:function(){var t;return o.typing&&(o.add(),o.typing=!1),a>0&&(t=s[--a],e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(t.beforeBookmark),r(!0),e.fire("undo",{level:t})),t},redo:function(){var t;return a<s.length-1&&(t=s[++a],e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(t.bookmark),r(!0),e.fire("redo",{level:t})),t},clear:function(){s=[],a=0,o.typing=!1,o.data=s,e.fire("ClearUndos")},hasUndo:function(){return a>0||o.typing&&s[0]&&n()!=s[0].content},hasRedo:function(){return a<s.length-1&&!this.typing},transact:function(e){o.beforeChange();try{u++,e()}finally{u--}return o.add()},extra:function(t,n){var r,i;o.transact(t)&&(i=s[a].bookmark,r=s[a-1],e.setContent(r.content,{format:"raw"}),e.selection.moveToBookmark(r.beforeBookmark),o.transact(n)&&(s[a-1].beforeBookmark=i))}}}}),r(Z,[y,T,d],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function h(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){return e&&/^(TD|TH|CAPTION)$/.test(e.nodeName)}function m(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function g(e){var t=e,n=[],r;if(t){for(;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}}function v(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(t){if(n.ie&&n.ie<9&&M&&M.firstChild&&M.firstChild==M.lastChild&&"BR"==M.firstChild.tagName&&a.remove(M.firstChild),/^(LI|DT|DD)$/.test(t.nodeName)){var d=r(t.firstChild);d&&/^(UL|OL|DL)$/.test(d.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),n.ie||t.normalize(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(f[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!P||9>P)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}}function y(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function b(e){e.innerHTML=r?"":'<br data-mce-bogus="1">'}function C(e){var t=D,n,i,o,s=u.getTextInlineElements();if(e||"TABLE"==z?(n=a.create(e||W),y(n)):n=M.cloneNode(!1),o=n,l.keep_styles!==!1)do if(s[t.nodeName]){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while((t=t.parentNode)&&t!=B);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function x(t){var n,r,i;if(3==D.nodeType&&(t?L>0:L<D.nodeValue.length))return!1;if(D.parentNode==M&&V&&!t)return!0;if(t&&1==D.nodeType&&D==M.firstChild)return!0;if("TABLE"===D.nodeName||D.previousSibling&&"TABLE"==D.previousSibling.nodeName)return V&&!t||!V&&t;for(n=new e(D,M),3==D.nodeType&&(t&&0===L?n.prev():t||L!=D.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function w(e,t){var n,r,o,s,l,c,d=W||"P";if(r=a.getParent(e,a.isBlock),!r||!h(r)){if(r=r||B,c=r==i.getBody()||p(r)?r.nodeName.toLowerCase():r.parentNode.nodeName.toLowerCase(),!r.hasChildNodes())return n=a.create(d),y(n),r.appendChild(n),R.setStart(n,0),R.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),y(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;R.setStart(e,t),R.setEnd(e,t)}}return e}function N(){function e(e){for(var t=F[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===M}function t(){var e=F.parentNode;return/^(LI|DT|DD)$/.test(e.nodeName)?e:F}if(F!=i.getBody()){var n=F.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(W="LI"),H=W?C(W):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(H,t()):a.replace(H,F):e(!0)?"LI"==n?(a.insertAfter(H,t()),H.appendChild(a.doc.createTextNode(" ")),H.appendChild(F)):F.parentNode.insertBefore(H,F):e()?(a.insertAfter(H,t()),m(H)):(F=t(),A=R.cloneRange(),A.setStartAfter(M),A.setEndAfter(F),I=A.extractContents(),"LI"==W&&"LI"==I.firstChild.nodeName?(H=I.firstChild,a.insertAfter(I,F)):(a.insertAfter(I,F),a.insertAfter(H,F))),a.remove(M),v(H),c.add()}}function E(){i.execCommand("InsertLineBreak",!1,o)}function _(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function S(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function k(e){var t;r||(e.normalize(),t=e.lastChild,t&&!/^(left|right)$/gi.test(a.getStyle(t,"float",!0))||a.add(e,"br"))}function T(){H=/^(H[1-6]|PRE|FIGURE)$/.test(z)&&"HGROUP"!=U?C(W):C(),l.end_container_on_empty_block&&h(F)&&a.isEmpty(M)?H=a.split(F,M):a.insertAfter(H,M),v(H)}var R,A,B,D,L,M,P,O,H,I,F,z,U,W,V;if(R=s.getRng(!0),!o.isDefaultPrevented()){if(!R.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(R),D=R.startContainer,L=R.startOffset,W=(l.force_p_newlines?"p":"")||l.forced_root_block,W=W?W.toUpperCase():"",P=a.doc.documentMode,O=o.shiftKey,1==D.nodeType&&D.hasChildNodes()&&(V=L>D.childNodes.length-1,D=D.childNodes[Math.min(L,D.childNodes.length-1)]||D,L=V&&3==D.nodeType?D.nodeValue.length:0),B=S(D)){if(c.beforeChange(),!a.isBlock(B)&&B!=a.getRoot())return void(W&&!O||E());if((W&&!O||!W&&O)&&(D=w(D,L)),M=a.getParent(D,a.isBlock),F=M?a.getParent(M.parentNode,a.isBlock):null,z=M?M.nodeName.toUpperCase():"",U=F?F.nodeName.toUpperCase():"","LI"!=U||o.ctrlKey||(M=F,z=U),/^(LI|DT|DD)$/.test(z)){if(!W&&O)return void E();if(a.isEmpty(M))return void N()}if("PRE"==z&&l.br_in_pre!==!1){if(!O)return void E()}else if(!W&&!O&&"LI"!=z||W&&O)return void E();W&&M===i.getBody()||(W=W||"P",x()?T():x(!0)?(H=M.parentNode.insertBefore(C(),M),m(H),v(M)):(A=R.cloneRange(),A.setEndAfter(M),I=A.extractContents(),_(I),H=I.firstChild,a.insertAfter(I,M),g(H),k(M),a.isEmpty(M)&&b(M),H.normalize(),a.isEmpty(H)?(a.remove(H),T()):v(H)),a.setAttrib(H,"id",""),i.fire("NewBlock",{newBlock:H}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements(),f=u.getMoveCaretBeforeOnEnterElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(ee,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,h,p,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",m),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",m)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){p=t,t=t.nextSibling,r.remove(p);continue}h||(h=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(h,t),g=!0),p=t,t=t.nextSibling,h.appendChild(p)}else h=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(te,[z,y,_,$,k,U],function(e,t,n,r,i,o){function a(e){return e>0}function s(e){return 0>e}function l(e,n,r,i,o){var l=new t(e,i);if(s(n)){if(C(e)&&(e=l.prev(!0),r(e)))return e;for(;e=l.prev(o);)if(r(e))return e}if(a(n)){if(C(e)&&(e=l.next(!0),r(e)))return e;for(;e=l.next(o);)if(r(e))return e}return null}function c(e,t){for(e=e.parentNode;e&&e!=t;e=e.parentNode)if(b(e))return e;return t}function u(e,t){for(;e&&e!=t;){if(x(e))return e;e=e.parentNode}return null}function d(e,t,n){return u(e.container(),n)==u(t.container(),n)}function f(e,t,n){return c(e.container(),n)==c(t.container(),n)}function h(e,t){var n,r;return t?(n=t.container(),r=t.offset(),E(n)?n.childNodes[r+e]:null):null}function p(e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n}function m(e,t,n){return u(t,e)==u(n,e)}function g(e,t,n){var r,i;for(i=e?"previousSibling":"nextSibling";n&&n!=t;){if(r=n[i],w(r)&&(r=r[i]),C(r)){if(m(t,r,n))return r;break}if(_(r))break;n=n.parentNode}return null}function v(e,t,r){var o,a,s,l,c=N(g,!0,t),u=N(g,!1,t);if(a=r.startContainer,s=r.startOffset,i.isCaretContainerBlock(a)){if(E(a)||(a=a.parentNode),l=a.getAttribute("data-mce-caret"),"before"==l&&(o=a.nextSibling,C(o)))return S(o);if("after"==l&&(o=a.previousSibling,C(o)))return k(o)}if(!r.collapsed)return r;if(n.isText(a)){if(w(a)){if(1===e){if(o=u(a))return S(o);if(o=c(a))return k(o)}if(-1===e){if(o=c(a))return k(o);if(o=u(a))return S(o)}return r}if(i.endsWithCaretContainer(a)&&s>=a.data.length-1)return 1===e&&(o=u(a))?S(o):r;if(i.startsWithCaretContainer(a)&&1>=s)return-1===e&&(o=c(a))?k(o):r;if(s===a.data.length)return o=u(a),o?S(o):r;if(0===s)return o=c(a),o?k(o):r}return r}function y(e,t){return C(h(e,t))}var b=n.isContentEditableTrue,C=n.isContentEditableFalse,x=n.matchStyleValues("display","block table table-cell table-caption"),w=i.isCaretContainer,N=e.curry,E=n.isElement,_=o.isCaretCandidate,S=N(p,!0),k=N(p,!1);return{isForwards:a,isBackwards:s,findNode:l,getEditingHost:c,getParentBlock:u,isInSameBlock:d,isInSameEditingHost:f,isBeforeContentEditableFalse:N(y,0),isAfterContentEditableFalse:N(y,-1),normalizeRange:v}}),r(ne,[_,U,$,te,p,z],function(e,t,n,r,i,o){function a(e,t){for(var n=[];e&&e!=t;)n.push(e),e=e.parentNode;return n}function s(e,t){return e.hasChildNodes()&&t<e.childNodes.length?e.childNodes[t]:null}function l(e,t){if(m(e)){if(v(t.previousSibling)&&!f(t.previousSibling))return n.before(t);if(f(t))return n(t,0)}if(g(e)){if(v(t.nextSibling)&&!f(t.nextSibling))return n.after(t);if(f(t))return n(t,t.data.length)}return g(e)?p(t)?n.before(t):n.after(t):n.before(t)}function c(t,i){var o;return e.isBr(t)?(o=u(1,n.after(t),i),o?!r.isInSameBlock(n.before(t),n.before(o),i):!1):!1}function u(e,t,p){var C,x,w,N,E,_,S;if(!h(p)||!t)return null;if(S=t,C=S.container(),x=S.offset(),f(C)){if(g(e)&&x>0)return n(C,--x);if(m(e)&&x<C.length)return n(C,++x);w=C}else{if(g(e)&&x>0&&(N=s(C,x-1),v(N)))return!y(N)&&(E=r.findNode(N,e,b,N))?f(E)?n(E,E.data.length):n.after(E):f(N)?n(N,N.data.length):n.before(N);if(m(e)&&x<C.childNodes.length&&(N=s(C,x),v(N)))return c(N,p)?u(e,n.after(N),p):!y(N)&&(E=r.findNode(N,e,b,N))?f(E)?n(E,0):n.before(E):f(N)?n(N,0):n.after(N);w=S.getNode()}return(m(e)&&S.isAtEnd()||g(e)&&S.isAtStart())&&(w=r.findNode(w,e,o.constant(!0),p,!0),b(w))?l(e,w):(N=r.findNode(w,e,b,p),_=i.last(i.filter(a(C,p),d)),!_||N&&_.contains(N)?N?l(e,N):null:S=m(e)?n.after(_):n.before(_))}var d=e.isContentEditableFalse,f=e.isText,h=e.isElement,p=e.isBr,m=r.isForwards,g=r.isBackwards,v=t.isCaretCandidate,y=t.isAtomic,b=t.isEditableCaretCandidate;return function(e){return{next:function(t){return u(1,t,e)},prev:function(t){return u(-1,t,e)}}}}),r(re,[m,ne,$],function(e,t,n){var r=function(e){var t=e.firstChild,n=e.lastChild;return t&&"meta"===t.name&&(t=t.next),n&&"mce_marker"===n.attr("id")&&(n=n.prev),t&&t===n?"ul"===t.name||"ol"===t.name:!1},i=function(e){var t=e.firstChild,n=e.lastChild;return t&&"META"===t.nodeName&&t.parentNode.removeChild(t),n&&"mce_marker"===n.id&&n.parentNode.removeChild(n),e},o=function(e,t,n){var r=t.serialize(n),o=e.createFragment(r);return i(o)},a=function(t){return e.grep(t.childNodes,function(e){return"LI"===e.nodeName})},s=function(e){return!e.firstChild},l=function(e){return e.length>0&&s(e[e.length-1])?e.slice(0,-1):e},c=function(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null},u=function(e,t){return!!c(e,t)},d=function(e,t){var n=t.cloneRange(),r=t.cloneRange();return n.setStartBefore(e),r.setEndAfter(e),[n.cloneContents(),r.cloneContents()]},f=function(e,r){var i=n.before(e),o=new t(r),a=o.next(i);return a?a.toRange():null},h=function(e,r){var i=n.after(e),o=new t(r),a=o.prev(i);return a?a.toRange():null},p=function(t,n,r,i){var o=d(t,i),a=t.parentNode;return a.insertBefore(o[0],t),e.each(n,function(e){a.insertBefore(e,t)}),a.insertBefore(o[1],t),a.removeChild(t),h(n[n.length-1],r)},m=function(t,n,r){var i=t.parentNode;return e.each(n,function(e){i.insertBefore(e,t)}),f(t,r)},g=function(e,t,n,r){return r.insertAfter(t.reverse(),e),h(t[0],n)},v=function(e,r,i,s){var u=o(r,e,s),d=c(r,i.startContainer),f=l(a(u.firstChild)),h=1,v=2,y=r.getRoot(),b=function(e){var o=n.fromRangeStart(i),a=new t(r.getRoot()),s=e===h?a.prev(o):a.next(o);return s?c(r,s.getNode())!==d:!0};return b(h)?m(d,f,y):b(v)?g(d,f,y,r):p(d,f,y,i)};return{isListFragment:r,insertAtCaret:v,isParentBlockLi:u,trimListItems:l,listItems:a}}),r(ie,[d,m,P,ne,$,X,_,re],function(e,t,n,r,i,o,a,s){var l=a.matchNodeNames("td th"),c=function(a,c,u){function d(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=D.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^&nbsp;/," "):t("previousSibling")||(e=e.replace(/^ /,"&nbsp;")),i<r.length?e=e.replace(/&nbsp;(<br>|)$/," "):t("nextSibling")||(e=e.replace(/(&nbsp;| )(<br>|)$/,"&nbsp;"))),e}function f(){var e,t,n;e=D.getRng(!0),t=e.startContainer,n=e.startOffset,3==t.nodeType&&e.collapsed&&("\xa0"===t.data[n]?(t.deleteData(n,1),/[\u00a0| ]$/.test(c)||(c+=" ")):"\xa0"===t.data[n-1]&&(t.deleteData(n-1,1),/[\u00a0| ]$/.test(c)||(c=" "+c)))}function h(){if(A){var e=a.getBody(),n=new o(L);t.each(L.select("*[data-mce-fragment]"),function(t){for(var r=t.parentNode;r&&r!=e;r=r.parentNode)B[t.nodeName.toLowerCase()]&&n.compare(r,t)&&L.remove(t,!0)})}}function p(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}function m(e){t.each(e.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")})}function g(e){return!!e.getAttribute("data-mce-fragment")}function v(e){return e&&!a.schema.getShortEndedElements()[e.nodeName]}function y(t){function n(e){for(var t=a.getBody();e&&e!==t;e=e.parentNode)if("false"===a.dom.getContentEditable(e))return e;return null}function o(e){var t=i.fromRangeStart(e),n=new r(a.getBody());return t=n.next(t),t?t.toRange():void 0}var s,c,u;if(t){if(D.scrollIntoView(t),s=n(t))return L.remove(t),void D.select(s);S=L.createRng(),k=t.previousSibling,k&&3==k.nodeType?(S.setStart(k,k.nodeValue.length),e.ie||(T=t.nextSibling,T&&3==T.nodeType&&(k.appendData(T.data),T.parentNode.removeChild(T)))):(S.setStartBefore(t),S.setEndBefore(t)),c=L.getParent(t,L.isBlock),L.remove(t),c&&L.isEmpty(c)&&(a.$(c).empty(),S.setStart(c,0),S.setEnd(c,0),l(c)||g(c)||!(u=o(S))?L.add(c,L.create("br",{"data-mce-bogus":"1"})):(S=u,L.remove(c))),D.setRng(S)}}var b,C,x,w,N,E,_,S,k,T,R,A,B=a.schema.getTextInlineElements(),D=a.selection,L=a.dom;/^ | $/.test(c)&&(c=d(c)),b=a.parser,A=u.merge,C=new n({validate:a.settings.validate},a.schema),R='<span id="mce_marker" data-mce-type="bookmark">&#xFEFF;&#x200B;</span>',E={content:c,format:"html",selection:!0},a.fire("BeforeSetContent",E),c=E.content,-1==c.indexOf("{$caret}")&&(c+="{$caret}"),c=c.replace(/\{\$caret\}/,R),S=D.getRng();var M=S.startContainer||(S.parentElement?S.parentElement():null),P=a.getBody();M===P&&D.isCollapsed()&&L.isBlock(P.firstChild)&&v(P.firstChild)&&L.isEmpty(P.firstChild)&&(S=L.createRng(),S.setStart(P.firstChild,0),S.setEnd(P.firstChild,0),D.setRng(S)),D.isCollapsed()||(a.selection.setRng(a.selection.getRng()),a.getDoc().execCommand("Delete",!1,null),
+f()),x=D.getNode();var O={context:x.nodeName.toLowerCase(),data:u.data};if(N=b.parse(c,O),u.paste===!0&&s.isListFragment(N)&&s.isParentBlockLi(L,x))return S=s.insertAtCaret(C,L,a.selection.getRng(!0),N),a.selection.setRng(S),void a.fire("SetContent",E);if(p(N),k=N.lastChild,"mce_marker"==k.attr("id"))for(_=k,k=k.prev;k;k=k.walk(!0))if(3==k.type||!L.isBlock(k.name)){a.schema.isValidChild(k.parent.name,"span")&&k.parent.insert(_,k,"br"===k.name);break}if(a._selectionOverrides.showBlockCaretContainer(x),O.invalid){for(D.setContent(R),x=D.getNode(),w=a.getBody(),9==x.nodeType?x=k=w:k=x;k!==w;)x=k,k=k.parentNode;c=x==w?w.innerHTML:L.getOuterHTML(x),c=C.serialize(b.parse(c.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return C.serialize(N)}))),x==w?L.setHTML(w,c):L.setOuterHTML(x,c)}else c=C.serialize(N),k=x.firstChild,T=x.lastChild,!k||k===T&&"BR"===k.nodeName?L.setHTML(x,c):D.setContent(c);h(),y(L.get("mce_marker")),m(a.getBody()),a.fire("SetContent",E),a.addVisual()},u=function(e){var n;return"string"!=typeof e?(n=t.extend({paste:e.paste,data:{paste:e.paste}},e),{content:e.content,details:n}):{content:e,details:{}}},d=function(e,t){var n=u(t);c(e,n.content,n.details)};return{insertAtCaret:d}}),r(oe,[d,m,T,y,ie],function(e,n,r,i,o){var a=n.each,s=n.extend,l=n.map,c=n.inArray,u=n.explode,d=e.ie&&e.ie<11,f=!0,h=!1;return function(n){function p(e,t,r,i){var o,s,l=0;if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||i&&i.skip_focus||n.focus(),i=n.fire("BeforeExecCommand",{command:e,ui:t,value:r}),i.isDefaultPrevented())return!1;if(s=e.toLowerCase(),o=B.exec[s])return o(s,t,r),n.fire("ExecCommand",{command:e,ui:t,value:r}),!0;if(a(n.plugins,function(i){return i.execCommand&&i.execCommand(e,t,r)?(n.fire("ExecCommand",{command:e,ui:t,value:r}),l=!0,!1):void 0}),l)return l;if(n.theme&&n.theme.execCommand&&n.theme.execCommand(e,t,r))return n.fire("ExecCommand",{command:e,ui:t,value:r}),!0;try{l=n.getDoc().execCommand(e,t,r)}catch(c){}return l?(n.fire("ExecCommand",{command:e,ui:t,value:r}),!0):!1}function m(e){var t;if(!n.quirks.isHidden()){if(e=e.toLowerCase(),t=B.state[e])return t(e);try{return n.getDoc().queryCommandState(e)}catch(r){}return!1}}function g(e){var t;if(!n.quirks.isHidden()){if(e=e.toLowerCase(),t=B.value[e])return t(e);try{return n.getDoc().queryCommandValue(e)}catch(r){}}}function v(e,t){t=t||"exec",a(e,function(e,n){a(n.toLowerCase().split(","),function(n){B[t][n]=e})})}function y(e,t,r){e=e.toLowerCase(),B.exec[e]=function(e,i,o,a){return t.call(r||n,i,o,a)}}function b(e){if(e=e.toLowerCase(),B.exec[e])return!0;try{return n.getDoc().queryCommandSupported(e)}catch(t){}return!1}function C(e,t,r){e=e.toLowerCase(),B.state[e]=function(){return t.call(r||n)}}function x(e,t,r){e=e.toLowerCase(),B.value[e]=function(){return t.call(r||n)}}function w(e){return e=e.toLowerCase(),!!B.exec[e]}function N(e,r,i){return r===t&&(r=h),i===t&&(i=null),n.getDoc().execCommand(e,r,i)}function E(e){return A.match(e)}function _(e,r){A.toggle(e,r?{value:r}:t),n.nodeChanged()}function S(e){L=R.getBookmark(e)}function k(){R.moveToBookmark(L)}var T,R,A,B={state:{},exec:{},value:{}},D=n.settings,L;n.on("PreInit",function(){T=n.dom,R=n.selection,D=n.settings,A=n.formatter}),s(this,{execCommand:p,queryCommandState:m,queryCommandValue:g,queryCommandSupported:b,addCommands:v,addCommand:y,addQueryStateHandler:C,addQueryValueHandler:x,hasCustomCommand:w}),v({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(t){var r=n.getDoc(),i;try{N(t)}catch(o){i=f}if("paste"!==t||r.queryCommandEnabled(t)||(i=!0),i||!r.queryCommandSupported(t)){var a=n.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");e.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),n.notificationManager.open({text:a,type:"error"})}},unlink:function(){if(R.isCollapsed()){var e=R.getNode();return void("A"==e.tagName&&n.dom.remove(e,!0))}A.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"==t&&(t="justify"),a("left,center,right,justify".split(","),function(e){t!=e&&A.remove("align"+e)}),"none"!=t&&_("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;N(e),t=T.getParent(R.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(S(),T.split(n,t),k()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){_(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){_(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=u(D.font_size_style_values),r=u(D.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),_(e,n)},RemoveFormat:function(e){A.remove(e)},mceBlockQuote:function(){_("blockquote")},FormatBlock:function(e,t,n){return _(n||"p")},mceCleanup:function(){var e=R.getBookmark();n.setContent(n.getContent({cleanup:f}),{cleanup:f}),R.moveToBookmark(e)},mceRemoveNode:function(e,t,r){var i=r||R.getNode();i!=n.getBody()&&(S(),n.dom.remove(i,f),k())},mceSelectNodeDepth:function(e,t,r){var i=0;T.getParent(R.getNode(),function(e){return 1==e.nodeType&&i++==r?(R.select(e),h):void 0},n.getBody())},mceSelectNode:function(e,t,n){R.select(n)},mceInsertContent:function(e,t,r){o.insertAtCaret(n,r)},mceInsertRawHTML:function(e,t,r){R.setContent("tiny_mce_marker"),n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return r}))},mceToggleFormat:function(e,t,n){_(n)},mceSetContent:function(e,t,r){n.setContent(r)},"Indent,Outdent":function(e){var t,r,i;t=D.indentation,r=/[a-z%]+$/i.exec(t),t=parseInt(t,10),m("InsertUnorderedList")||m("InsertOrderedList")?N(e):(D.forced_root_block||T.getParent(R.getNode(),T.isBlock)||A.apply("div"),a(R.getSelectedBlocks(),function(o){if("false"!==T.getContentEditable(o)&&"LI"!=o.nodeName){var a=n.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==T.getStyle(o,"direction",!0)?"Right":"Left","outdent"==e?(i=Math.max(0,parseInt(o.style[a]||0,10)-t),T.setStyle(o,a,i?i+r:"")):(i=parseInt(o.style[a]||0,10)+t+r,T.setStyle(o,a,i))}}))},mceRepaint:function(){},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual,n.addVisual()},mceReplaceContent:function(e,t,r){n.execCommand("mceInsertContent",!1,r.replace(/\{\$selection\}/g,R.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=T.getParent(R.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||A.remove("link"),n.href&&A.apply("link",n,r)},selectAll:function(){var e=T.getRoot(),t;R.getRng().setStart?(t=T.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),R.setRng(t)):(t=R.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){N("Delete");var e=n.getBody();T.isEmpty(e)&&(n.setContent(""),e.firstChild&&T.isBlock(e.firstChild)?n.selection.setCursorLocation(e.firstChild,0):n.selection.setCursorLocation(e,0))},mceNewDocument:function(){n.setContent("")},InsertLineBreak:function(e,t,o){function a(){for(var e=new i(m,v),t,r=n.schema.getNonEmptyElements();t=e.next();)if(r[t.nodeName.toLowerCase()]||t.length>0)return!0}var s=o,l,c,u,h=R.getRng(!0);new r(T).normalize(h);var p=h.startOffset,m=h.startContainer;if(1==m.nodeType&&m.hasChildNodes()){var g=p>m.childNodes.length-1;m=m.childNodes[Math.min(p,m.childNodes.length-1)]||m,p=g&&3==m.nodeType?m.nodeValue.length:0}var v=T.getParent(m,T.isBlock),y=v?v.nodeName.toUpperCase():"",b=v?T.getParent(v.parentNode,T.isBlock):null,C=b?b.nodeName.toUpperCase():"",x=s&&s.ctrlKey;"LI"!=C||x||(v=b,y=C),m&&3==m.nodeType&&p>=m.nodeValue.length&&(d||a()||(l=T.create("br"),h.insertNode(l),h.setStartAfter(l),h.setEndAfter(l),c=!0)),l=T.create("br"),h.insertNode(l);var w=T.doc.documentMode;return d&&"PRE"==y&&(!w||8>w)&&l.parentNode.insertBefore(T.doc.createTextNode("\r"),l),u=T.create("span",{},"&nbsp;"),l.parentNode.insertBefore(u,l),R.scrollIntoView(u),T.remove(u),c?(h.setStartBefore(l),h.setEndBefore(l)):(h.setStartAfter(l),h.setEndAfter(l)),R.setRng(h),n.undoManager.add(),f}}),v({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=R.isCollapsed()?[T.getParent(R.getNode(),T.isBlock)]:R.getSelectedBlocks(),r=l(n,function(e){return!!A.matchNode(e,t)});return-1!==c(r,f)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return E(e)},mceBlockQuote:function(){return E("blockquote")},Outdent:function(){var e;if(D.inline_styles){if((e=T.getParent(R.getStart(),T.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return f;if((e=T.getParent(R.getEnd(),T.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return f}return m("InsertUnorderedList")||m("InsertOrderedList")||!D.inline_styles&&!!T.getParent(R.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=T.getParent(R.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),v({"FontSize,FontName":function(e){var t=0,n;return(n=T.getParent(R.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),v({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}),r(ae,[m],function(e){function t(e,o){var a=this,s,l;if(e=r(e),o=a.settings=o||{},s=o.base_uri,/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(a.source=e);var c=0===e.indexOf("//");0!==e.indexOf("/")||c||(e=(s?s.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(l=o.base_uri?o.base_uri.path:new t(location.href).directory,""===o.base_uri.protocol?e="//mce_host"+a.toAbsPath(l,e):(e=/([^#?]*)([#?]?.*)/.exec(e),e=(s&&s.protocol||"http")+"://mce_host"+a.toAbsPath(l,e[1])+e[2])),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(i,function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),a[t]=r}),s&&(a.protocol||(a.protocol=s.protocol),a.userInfo||(a.userInfo=s.userInfo),a.port||"mce_host"!==a.host||(a.port=s.port),a.host&&"mce_host"!==a.host||(a.host=s.host),a.source=""),c&&(a.protocol="")}var n=e.each,r=e.trim,i="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),o={ftp:21,http:80,https:443,mailto:25};return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(n&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=o[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return n.source&&!e||(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t.parseDataUri=function(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}},t.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t},t}),r(se,[m],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],"function"==typeof f&&c[d]?u[d]=s(d,f):u[d]=f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(le,[m],function(e){function t(t){function n(){return!1}function r(){return!0}function i(e,i){var o,s,l,c;if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=u),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=r},i.stopPropagation=function(){i.isPropagationStopped=r},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=r},i.isDefaultPrevented=n,i.isPropagationStopped=n,i.isImmediatePropagationStopped=n),t.beforeFire&&t.beforeFire(i),o=d[e])for(s=0,l=o.length;l>s;s++){if(c=o[s],c.once&&a(e,c.func),i.isImmediatePropagationStopped())return i.stopPropagation(),i;if(c.func.call(u,i)===!1)return i.preventDefault(),i}return i}function o(t,r,i,o){var a,s,l;if(r===!1&&(r=n),r)for(r={func:r},o&&e.extend(r,o),s=t.toLowerCase().split(" "),l=s.length;l--;)t=s[l],a=d[t],a||(a=d[t]=[],f(t,!0)),i?a.unshift(r):a.push(r);return c}function a(e,t){var n,r,i,o,a;if(e)for(o=e.toLowerCase().split(" "),n=o.length;n--;){if(e=o[n],r=d[e],!e){for(i in d)f(i,!1),delete d[i];return c}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),d[e]=r);else r.length=0;r.length||(f(e,!1),delete d[e])}}else{for(e in d)f(e,!1);d={}}return c}function s(e,t,n){return o(e,t,n,{once:!0})}function l(e){return e=e.toLowerCase(),!(!d[e]||0===d[e].length)}var c=this,u,d={},f;t=t||{},u=t.scope||c,f=t.toggleEvent||n,c.fire=i,c.on=o,c.off=a,c.once=s,c.has=l}var n=e.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend"," ");return t.isNative=function(e){return!!n[e.toLowerCase()]},t}),r(ce,[],function(){function e(e){this.create=e.create}return e.create=function(t,n){return new e({create:function(e,r){function i(t){e.set(r,t.value)}function o(e){t.set(n,e.value)}var a;return e.on("change:"+r,o),t.on("change:"+n,i),a=e._bindings,a||(a=e._bindings=[],e.on("destroy",function(){for(var e=a.length;e--;)a[e]()})),a.push(function(){t.off("change:"+n,i)}),t.get(n)}})},e}),r(ue,[le],function(e){function t(t){return t._eventDispatcher||(t._eventDispatcher=new e({scope:t,toggleEvent:function(n,r){e.isNative(n)&&t.toggleNativeEvent&&t.toggleNativeEvent(n,r)}})),t._eventDispatcher}return{fire:function(e,n,r){var i=this;if(i.removed&&"remove"!==e)return n;if(n=t(i).fire(e,n,r),r!==!1&&i.parent)for(var o=i.parent();o&&!n.isPropagationStopped();)o.fire(e,n,!1),o=o.parent();return n},on:function(e,n,r){return t(this).on(e,n,r)},off:function(e,n){return t(this).off(e,n)},once:function(e,n){return t(this).once(e,n)},hasEventListeners:function(e){return t(this).has(e)}}}),r(de,[ce,ue,se,m],function(e,t,n,r){function i(e){return e.nodeType>0}function o(e,t){var n,a;if(e===t)return!0;if(null===e||null===t)return e===t;if("object"!=typeof e||"object"!=typeof t)return e===t;if(r.isArray(t)){if(e.length!==t.length)return!1;for(n=e.length;n--;)if(!o(e[n],t[n]))return!1}if(i(e)||i(t))return e===t;a={};for(n in t){if(!o(e[n],t[n]))return!1;a[n]=!0}for(n in e)if(!a[n]&&!o(e[n],t[n]))return!1;return!0}return n.extend({Mixins:[t],init:function(t){var n,r;t=t||{};for(n in t)r=t[n],r instanceof e&&(t[n]=r.create(this,n));this.data=t},set:function(t,n){var r,i,a=this.data[t];if(n instanceof e&&(n=n.create(this,t)),"object"==typeof t){for(r in t)this.set(r,t[r]);return this}return o(a,n)||(this.data[t]=n,i={target:this,name:t,value:n,oldValue:a},this.fire("change:"+t,i),this.fire("change",i)),this},get:function(e){return this.data[e]},has:function(e){return e in this.data},bind:function(t){return e.create(this,t)},destroy:function(){this.fire("destroy")}})}),r(fe,[se],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.classes.contains(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.pseudo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,h,p;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,p=e,h=0,i=o-1;i>=0;i--)for(c=a[i];p;){if(c.pseudo)for(f=p.parent().items(),u=d=f.length;u--&&f[u]!==p;);for(s=0,l=c.length;l>s;s++)if(!c[s](p,u,d)){s=l+1;break}if(s===l){h++;break}if(i===o-1)break;p=p.parent()}if(h===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(he,[m,fe,se],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].classes.contains(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this},addClass:function(e){return this.each(function(t){t.classes.add(e)})},removeClass:function(e){return this.each(function(t){t.classes.remove(e)})}},e.each("fire on off show hide append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(pe,[d,m,w],function(e,t,n){var r=0,i={id:function(){return"mceu_"+r++},create:function(e,r,i){var o=document.createElement(e);return n.DOM.setAttribs(o,r),"string"==typeof i?o.innerHTML=i:t.each(i,function(e){e.nodeType&&o.appendChild(e)}),o},createFragment:function(e){return n.DOM.createFragment(e)},getWindowSize:function(){return n.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,t){return n.DOM.getPos(e,t||i.getContainer())},getContainer:function(){return e.container?e.container:document.body},getViewPort:function(e){return n.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,t){return n.DOM.addClass(e,t)},removeClass:function(e,t){return n.DOM.removeClass(e,t)},hasClass:function(e,t){return n.DOM.hasClass(e,t)},toggleClass:function(e,t,r){return n.DOM.toggleClass(e,t,r)},css:function(e,t,r){return n.DOM.setStyle(e,t,r)},getRuntimeStyle:function(e,t){return n.DOM.getStyle(e,t,!0)},on:function(e,t,r,i){return n.DOM.bind(e,t,r,i)},off:function(e,t,r){return n.DOM.unbind(e,t,r)},fire:function(e,t,r){return n.DOM.fire(e,t,r)},innerHtml:function(e,t){n.DOM.setHTML(e,t)}};return i}),r(me,[],function(){return{parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}}}}),r(ge,[m],function(e){function t(){}function n(e){this.cls=[],this.cls._map={},this.onchange=e||t,this.prefix=""}return e.extend(n.prototype,{add:function(e){return e&&!this.contains(e)&&(this.cls._map[e]=!0,this.cls.push(e),this._change()),this},remove:function(e){if(this.contains(e)){for(var t=0;t<this.cls.length&&this.cls[t]!==e;t++);this.cls.splice(t,1),delete this.cls._map[e],this._change()}return this},toggle:function(e,t){var n=this.contains(e);return n!==t&&(n?this.remove(e):this.add(e),this._change()),this},contains:function(e){return!!this.cls._map[e]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),n.prototype.toString=function(){var e;if(this.clsValue)return this.clsValue;e="";for(var t=0;t<this.cls.length;t++)t>0&&(e+=" "),e+=this.prefix+this.cls[t];return e},n}),r(ve,[u],function(e){var t={},n;return{add:function(r){var i=r.parent();if(i){if(!i._layout||i._layout.isNative())return;t[i._id]||(t[i._id]=i),n||(n=!0,e.requestAnimationFrame(function(){var e,r;n=!1;for(e in t)r=t[e],r.state.get("rendered")&&r.reflow();t={}},document.body))}},remove:function(e){t[e._id]&&delete t[e._id]}}}),r(ye,[se,m,le,de,he,pe,g,me,ge,ve],function(e,t,n,r,i,o,a,s,l,c){function u(e){return e._eventDispatcher||(e._eventDispatcher=new n({scope:e,toggleEvent:function(t,r){r&&n.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e.state.get("rendered")&&d(e))}})),e._eventDispatcher}function d(e){function t(t){var n=e.getParentCtrl(t.target);n&&n.fire(t.type,t)}function n(){var e=c._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),c._lastHoverCtrl=null)}function r(t){var n=e.getParentCtrl(t.target),r=c._lastHoverCtrl,i=0,o,a,s;if(n!==r){if(c._lastHoverCtrl=n,a=n.parents().toArray().reverse(),a.push(n),r){for(s=r.parents().toArray().reverse(),s.push(r),i=0;i<s.length&&a[i]===s[i];i++);for(o=s.length-1;o>=i;o--)r=s[o],r.fire("mouseleave",{target:r.getEl()})}for(o=i;o<a.length;o++)n=a[o],n.fire("mouseenter",{target:n.getEl()})}}function i(t){t.preventDefault(),"mousewheel"==t.type?(t.deltaY=-1/40*t.wheelDelta,t.wheelDeltaX&&(t.deltaX=-1/40*t.wheelDeltaX)):(t.deltaX=0,t.deltaY=t.detail),t=e.fire("wheel",t)}var o,s,l,c,u,d;if(u=e._nativeEvents){for(l=e.parents().toArray(),l.unshift(e),o=0,s=l.length;!c&&s>o;o++)c=l[o]._eventsRoot;for(c||(c=l[l.length-1]||e),e._eventsRoot=c,s=o,o=0;s>o;o++)l[o]._eventsRoot=c;var p=c._delegates;p||(p=c._delegates={});for(d in u){if(!u)return!1;"wheel"!==d||h?("mouseenter"===d||"mouseleave"===d?c._hasMouseEnter||(a(c.getEl()).on("mouseleave",n).on("mouseover",r),c._hasMouseEnter=1):p[d]||(a(c.getEl()).on(d,t),p[d]=!0),u[d]=!1):f?a(e.getEl()).on("mousewheel",i):a(e.getEl()).on("DOMMouseScroll",i)}}}var f="onmousewheel"in document,h=!1,p="mce-",m,g=0,v={Statics:{classPrefix:p},isRtl:function(){return m.rtl},classPrefix:p,init:function(e){function n(e){var t;for(e=e.split(" "),t=0;t<e.length;t++)i.classes.add(e[t])}var i=this,o,c;i.settings=e=t.extend({},i.Defaults,e),i._id=e.id||"mceu_"+g++,i._aria={role:e.role},i._elmCache={},i.$=a,i.state=new r({visible:!0,active:!1,disabled:!1,value:""}),i.data=new r(e.data),i.classes=new l(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,o=e.classes,o&&(i.Defaults&&(c=i.Defaults.classes,c&&o!=c&&n(c)),n(o)),t.each("title text name visible disabled active value".split(" "),function(t){t in e&&i[t](e[t])}),i.on("click",function(){return i.disabled()?!1:void 0}),i.settings=e,i.borderBox=s.parseBox(e.border),i.paddingBox=s.parseBox(e.padding),i.marginBox=s.parseBox(e.margin),e.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){return o.getContainer()},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},initLayoutRect:function(){var e=this,t=e.settings,n,r,i=e.getEl(),a,l,c,u,d,f,h,p;n=e.borderBox=e.borderBox||s.measureBox(i,"border"),e.paddingBox=e.paddingBox||s.measureBox(i,"padding"),e.marginBox=e.marginBox||s.measureBox(i,"margin"),p=o.getSize(i),f=t.minWidth,h=t.minHeight,c=f||p.width,u=h||p.height,a=t.width,l=t.height,d=t.autoResize,d="undefined"!=typeof d?d:!a&&!l,a=a||c,l=l||u;var m=n.left+n.right,g=n.top+n.bottom,v=t.maxWidth||65535,y=t.maxHeight||65535;return e._layoutRect=r={x:t.x||0,y:t.y||0,w:a,h:l,deltaW:m,deltaH:g,contentW:a-m,contentH:l-g,innerW:a-m,innerH:l-g,startMinWidth:f||0,startMinHeight:h||0,minW:Math.min(c,v),minH:Math.min(u,y),maxW:v,maxH:y,autoResize:d,scrollW:0},e._lastLayoutRect={},r},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,r.x===n.x&&r.y===n.y&&r.w===n.w&&r.h===n.h||(l=m.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o,a,s,l,c,u;c=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,i=e._layoutRect,l=e._lastRepaintRect||{},o=e.borderBox,a=o.left+o.right,s=o.top+o.bottom,i.x!==l.x&&(t.left=c(i.x)+"px",l.x=i.x),i.y!==l.y&&(t.top=c(i.y)+"px",l.y=i.y),i.w!==l.w&&(u=c(i.w-a),t.width=(u>=0?u:0)+"px",l.w=i.w),i.h!==l.h&&(u=c(i.h-s),t.height=(u>=0?u:0)+"px",l.h=i.h),e._hasBody&&i.innerW!==l.innerW&&(u=c(i.innerW),r=e.getEl("body"),r&&(n=r.style,n.width=(u>=0?u:0)+"px"),l.innerW=i.innerW),e._hasBody&&i.innerH!==l.innerH&&(u=c(i.innerH),r=r||e.getEl("body"),r&&(n=n||r.style,n.height=(u>=0?u:0)+"px"),l.innerH=i.innerH),e._lastRepaintRect=l,e.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,o.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){function n(e){var t,n;return"string"!=typeof e?e:function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t?t.call(n,i):(i.action=e,void this.fire("execute",i))}}var r=this;return u(r).on(e,n(t)),r},off:function(e,t){return u(this).off(e,t),this},fire:function(e,t,n){var r=this;if(t=t||{},t.control||(t.control=r),t=u(r).fire(e,t),n!==!1&&r.parent)for(var i=r.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return u(this).has(e)},parents:function(e){var t=this,n,r=new i;for(n=t.parent();n;n=n.parent())r.add(n);return e&&(r=r.filter(e)),r},parentsAndSelf:function(e){return new i(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},innerHtml:function(e){return this.$el.html(e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=a("#"+t)[0]),this._elmCache[t]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return m.translate?m.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r,i;
+if(e.items){var o=e.items().toArray();for(i=o.length;i--;)o[i].remove()}n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t)}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&a(t).off();var s=e.getRoot().controlIdLookup;return s&&delete s[e._id],t&&t.parentNode&&t.parentNode.removeChild(t),e.state.set("rendered",!1),e.state.destroy(),e.fire("remove"),e},renderBefore:function(e){return a(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return a(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var e=this,t=e.settings,n,r,i,o,s;e.$el=a(e.getEl()),e.state.set("rendered",!0);for(o in t)0===o.indexOf("on")&&e.on(o.substr(2),t[o]);if(e._eventsRoot){for(i=e.parent();!s&&i;i=i.parent())s=i._eventsRoot;if(s)for(o in s._nativeEvents)e._nativeEvents[o]=!0}d(e),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e.settings.border&&(r=e.borderBox,e.$el.css({"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var u in e._aria)e.aria(u,e._aria[u]);e.state.get("visible")===!1&&(e.getEl().style.display="none"),e.bindStates(),e.state.on("change:visible",function(t){var n=t.value,r;e.state.get("rendered")&&(e.getEl().style.display=n===!1?"none":"",e.getEl().getBoundingClientRect()),r=e.parent(),r&&(r._lastRect=null),e.fire(n?"show":"hide"),c.add(e)}),e.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){c.remove(this);var e=this.parent();return e._layout&&!e._layout.isNative()&&e.reflow(),this}};return t.each("text title visible disabled active value".split(" "),function(e){v[e]=function(t){return 0===arguments.length?this.state.get(e):("undefined"!=typeof t&&this.state.set(e,t),this)}}),m=e.extend(v)}),r(be,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(Ce,[],function(){return function(e){function t(e){return e&&1===e.nodeType}function n(e){return e=e||C,t(e)?e.getAttribute("role"):null}function r(e){for(var t,r=e||C;r=r.parentNode;)if(t=n(r))return t}function i(e){var n=C;return t(n)?n.getAttribute("aria-"+e):void 0}function o(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t||"SELECT"==t}function a(e){return o(e)&&!e.hidden?!0:!!/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(n(e))}function s(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){a(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||b.getEl()),n}function l(e){var t,n;e=e||x,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function c(e){var t=l(e),n=s(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?u(t.lastAriaIndex,n):u(0,n)}function u(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function d(e,t){var n=-1,r=l();t=t||s(r.getEl());for(var i=0;i<t.length;i++)t[i]===C&&(n=i);n+=e,r.lastAriaIndex=u(n,t)}function f(){var e=r();"tablist"==e?d(-1,s(C.parentNode)):x.parent().submenu?v():d(-1)}function h(){var e=n(),t=r();"tablist"==t?d(1,s(C.parentNode)):"menuitem"==e&&"menu"==t&&i("haspopup")?y():d(1)}function p(){d(-1)}function m(){var e=n(),t=r();"menuitem"==e&&"menubar"==t?y():"button"==e&&i("haspopup")?y({key:"down"}):d(1)}function g(e){var t=r();if("tablist"==t){var n=s(x.getEl("body"))[0];n&&n.focus()}else d(e.shiftKey?-1:1)}function v(){x.fire("cancel")}function y(e){e=e||{},x.fire("click",{target:C,aria:e})}var b=e.root,C,x;try{C=document.activeElement}catch(w){C=document.body}return x=b.getParentCtrl(C),b.on("keydown",function(e){function t(e,t){o(C)||"slider"!==n(C)&&t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,f);break;case 39:t(e,h);break;case 38:t(e,p);break;case 40:t(e,m);break;case 27:v();break;case 14:case 13:case 32:t(e,y);break;case 9:g(e)!==!1&&e.preventDefault()}}),b.on("focusin",function(e){C=e.target,x=e.control}),{focusFirst:c}}}),r(xe,[ye,he,fe,be,Ce,m,g,ge,ve],function(e,t,n,r,i,o,a,s,l){var c={};return e.extend({init:function(e){var n=this;n._super(e),e=n.settings,e.fixed&&n.state.set("fixed",!0),n._items=new t,n.isRtl()&&n.classes.add("rtl"),n.bodyClasses=new s(function(){n.state.get("rendered")&&(n.getEl("body").className=this.toString())}),n.bodyClasses.prefix=n.classPrefix,n.classes.add("container"),n.bodyClasses.add("container-body"),e.containerCls&&n.classes.add(e.containerCls),n._layout=r.create((e.layout||"")+"layout"),n.settings.items?n.add(n.settings.items):n.add(n.render()),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=c[e]=c[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r;t.parent(e),t.state.get("rendered")||(r=e.getEl("body"),r.hasChildNodes()&&n<=r.childNodes.length-1?a(r.childNodes[n]).before(t.renderHtml()):a(r).append(t.renderHtml()),t.postRender(),l.add(t))}),e._layout.applyClasses(e.items().filter(":visible")),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e.state.set("rendered",!0),e.settings.style&&e.$el.css(e.settings.style),e.settings.border&&(t=e.borderBox,e.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(l.remove(this),this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(we,[g],function(e){function t(e){var t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}function n(e){var t,n;if(e.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<t.length;n++)e[t[n]]=e.changedTouches[0][t[n]]}return function(r,i){function o(){return s.getElementById(i.handle||r)}var a,s=i.document||document,l,c,u,d,f,h;i=i||{},c=function(r){var c=t(s),p,m;n(r),r.preventDefault(),l=r.button,p=o(),f=r.screenX,h=r.screenY,m=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,a=e("<div>").css({position:"absolute",top:0,left:0,width:c.width,height:c.height,zIndex:2147483647,opacity:1e-4,cursor:m}).appendTo(s.body),e(s).on("mousemove touchmove",d).on("mouseup touchend",u),i.start(r)},d=function(e){return n(e),e.button!==l?u(e):(e.deltaX=e.screenX-f,e.deltaY=e.screenY-h,e.preventDefault(),void i.drag(e))},u=function(t){n(t),e(s).off("mousemove touchmove",d).off("mouseup touchend",u),a.remove(),i.stop&&i.stop(t)},this.destroy=function(){e(o()).off()},e(o()).on("mousedown touchstart",c)}}),r(Ne,[g,we],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,h,p,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),e(i.getEl("absend")).css(y,i.layoutRect()[l]-1),!c)return void e(f).css("display","none");e(f).css("display","block"),d=i.getEl("body"),h=i.getEl("scroll"+t+"t"),p=d["client"+s]-2*o,p-=n&&r?f["client"+u]:0,m=d["scroll"+s],g=p/m,v={},v[y]=d["offset"+a]+o,v[b]=p,e(f).css(v),v={},v[y]=d["scroll"+a]*g,v[b]=p*g,e(h).css(v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;e(i.getEl()).append('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>'),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e("#"+u).addClass(d+"active")},drag:function(e){var t,u,d,f,h=i.layoutRect();u=h.contentW>h.innerW,d=h.contentH>h.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e("#"+u).removeClass(d+"active")}})}i.classes.add("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e(i.getEl("body")).on("scroll",n)),n())}}}),r(Ee,[xe,Ne],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(_e,[pe],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,h;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t.state.get("fixed")&&"static"==e.getRuntimeStyle(document.body,"position")&&(a-=f.x,s-=f.y),i=t.getEl(),h=e.getSize(i),l=h.width,c=h.height,h=e.getSize(n),u=h.width,d=h.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this.state.get("fixed")){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i.state.get("rendered")?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Se,[pe],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(ke,[Ee,_e,Se,pe,g,u],function(e,t,n,r,i,o){function a(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function s(e){for(var t=v.length;t--;){var n=v[t],r=n.getParentCtrl(e.target);if(n.settings.autohide){if(r&&(a(r,n)||n.parent()===r))continue;e=n.fire("autohide",{target:e.target}),e.isDefaultPrevented()||n.hide()}}}function l(){p||(p=function(e){2!=e.button&&s(e)},i(document).on("click touchstart",p))}function c(){m||(m=function(){var e;for(e=v.length;e--;)d(v[e])},i(window).on("scroll",m))}function u(){if(!g){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;g=function(){document.all&&t==e.clientWidth&&n==e.clientHeight||(t=e.clientWidth,n=e.clientHeight,C.hideAll())},i(window).on("resize",g)}}function d(e){function t(t,n){for(var r,i=0;i<v.length;i++)if(v[i]!=e)for(r=v[i].parent();r&&(r=r.parent());)r==e&&v[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e.state.get("fixed")?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}function f(e,t){var n,r=C.zIndex||65535,o;if(e)y.push(t);else for(n=y.length;n--;)y[n]===t&&y.splice(n,1);if(y.length)for(n=0;n<y.length;n++)y[n].modal&&(r++,o=y[n]),y[n].getEl().style.zIndex=r,y[n].zIndex=r,r++;var a=i("#"+t.classPrefix+"modal-block",t.getContainerElm())[0];o?i(a).css("z-index",o.zIndex-1):a&&(a.parentNode.removeChild(a),b=!1),C.currentZIndex=r}function h(e){var t;for(t=v.length;t--;)v[t]===e&&v.splice(t,1);for(t=y.length;t--;)y[t]===e&&y.splice(t,1)}var p,m,g,v=[],y=[],b,C=e.extend({Mixins:[t,n],init:function(e){var t=this;t._super(e),t._eventsRoot=t,t.classes.add("floatpanel"),e.autohide&&(l(),u(),v.push(t)),e.autofix&&(c(),t.on("move",function(){d(this)})),t.on("postrender show",function(e){if(e.control==t){var n,r=t.classPrefix;t.modal&&!b&&(n=i("#"+r+"modal-block",t.getContainerElm()),n[0]||(n=i('<div id="'+r+'modal-block" class="'+r+"reset "+r+'fade"></div>').appendTo(t.getContainerElm())),o.setTimeout(function(){n.addClass(r+"in"),i(t.getEl()).addClass(r+"in")}),b=!0),f(!0,t)}}),t.on("show",function(){t.parents().each(function(e){return e.state.get("fixed")?(t.fixed(!0),!1):void 0})}),e.popover&&(t._preBodyHtml='<div class="'+t.classPrefix+'arrow"></div>',t.classes.add("popover").add("bottom").add(t.isRtl()?"end":"start")),t.aria("label",e.ariaLabel),t.aria("labelledby",t._id),t.aria("describedby",t.describedBy||t._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!=e){if(t.state.get("rendered")){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e=this,t,n=e._super();for(t=v.length;t--&&v[t]!==e;);return-1===t&&v.push(e),n},hide:function(){return h(this),f(!1,this),this._super()},hideAll:function(){C.hideAll()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||(e.remove(),f(!1,e)),e},remove:function(){h(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return C.hideAll=function(){for(var e=v.length;e--;){var t=v[e];t&&t.settings.autohide&&(t.hide(),v.splice(e,1))}},C}),r(Te,[ke,Ee,pe,g,we,me,d,u],function(e,t,n,r,i,o,a,s){function l(e){var t="width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0",n=r("meta[name=viewport]")[0],i;a.overrideViewPort!==!1&&(n||(n=document.createElement("meta"),n.setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),i=n.getAttribute("content"),i&&"undefined"!=typeof f&&(f=i),n.setAttribute("content",e?t:f))}function c(e){for(var t=0;t<d.length;t++)if(d[t]._fullscreen)return;r([document.documentElement,document.body]).removeClass(e+"fullscreen")}function u(){function e(){var e,t=n.getWindowSize(),r;for(e=0;e<d.length;e++)r=d[e].layoutRect(),d[e].moveTo(d[e].settings.x||Math.max(0,t.w/2-r.w/2),d[e].settings.y||Math.max(0,t.h/2-r.h/2))}if(!a.desktop){var t={w:window.innerWidth,h:window.innerHeight};s.setInterval(function(){var e=window.innerWidth,n=window.innerHeight;t.w==e&&t.h==n||(t={w:e,h:n},r(window).trigger("resize"))},100)}r(window).on("resize",e)}var d=[],f="",h=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var r=this;r._super(e),r.isRtl()&&r.classes.add("rtl"),r.classes.add("window"),r.bodyClasses.add("window-body"),r.state.set("fixed",!0),e.buttons&&(r.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:r.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),r.statusbar.classes.add("foot"),r.statusbar.parent(r)),r.on("click",function(e){var t=r.classPrefix+"close";(n.hasClass(e.target,t)||n.hasClass(e.target.parentNode,t))&&r.close()}),r.on("cancel",function(){r.close()}),r.aria("describedby",r.describedBy||r._id+"-none"),r.aria("label",e.title),r._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=e.settings.x||Math.max(0,a.w/2-t.w/2),t.y=e.settings.y||Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><div id="'+n+'-dragh" class="'+r+'dragh"></div><button type="button" class="'+r+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.bodyClasses+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,i=document.documentElement,a,l=t.classPrefix,c;if(e!=t._fullscreen)if(r(window).on("resize",function(){var e;if(t._fullscreen)if(a)t._timer||(t._timer=s.setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(a=!0)}}),c=t.layoutRect(),t._fullscreen=e,e){t._initial={x:c.x,y:c.y,w:c.w,h:c.h},t.borderBox=o.parseBox("0"),t.getEl("head").style.display="none",c.deltaH-=c.headerH+2,r([i,document.body]).addClass(l+"fullscreen"),t.classes.add("fullscreen");var u=n.getWindowSize();t.moveTo(0,0).resizeTo(u.w,u.h)}else t.borderBox=o.parseBox(t.settings.border),t.getEl("head").style.display="",c.deltaH+=c.headerH,r([i,document.body]).removeClass(l+"fullscreen"),t.classes.remove("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.classes.add("in"),e.fire("open")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new i(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()}),d.push(e),l(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t;for(e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),t=d.length;t--;)d[t]===e&&d.splice(t,1);l(d.length>0),c(e.classPrefix)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return u(),h}),r(Re,[Te],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){function r(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),o(t)}}}var i,o=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:i=[r("Ok",!0,!0),r("Cancel",!1)];break;case t.YES_NO:case t.YES_NO_CANCEL:i=[r("Yes",1,!0),r("No",0)],n.buttons==t.YES_NO_CANCEL&&i.push(r("Cancel",-1));break;default:i=[r("Ok",!0,!0)]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:i,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){o(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(Ae,[Te,Re],function(e,t){return function(n){function r(){return s.length?s[s.length-1]:void 0}function i(e){n.fire("OpenWindow",{win:e})}function o(e){n.fire("CloseWindow",{win:e})}var a=this,s=[];a.windows=s,n.on("remove",function(){for(var e=s.length;e--;)s[e].close()}),a.open=function(t,r){var a;return n.editorManager.setActive(n),t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body,data:t.data,callbacks:t.commands}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){a.find("form")[0].submit()}},{text:"Cancel",onclick:function(){a.close()}}]),a=new e(t),s.push(a),a.on("close",function(){for(var e=s.length;e--;)s[e]===a&&s.splice(e,1);s.length||n.focus(),o(a)}),t.data&&a.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),a.features=t||{},a.params=r||{},1===s.length&&n.nodeChanged(),a=a.renderTo().reflow(),i(a),a},a.alert=function(e,r,a){var s;s=t.alert(e,function(){r?r.call(a||this):n.focus()}),s.on("close",function(){o(s)}),i(s)},a.confirm=function(e,n,r){var a;a=t.confirm(e,function(e){n.call(r||this,e)}),a.on("close",function(){o(a)}),i(a)},a.close=function(){r()&&r().close()},a.getParams=function(){return r()?r().params:null},a.setParams=function(e){r()&&(r().params=e)},a.getWindows=function(){return s}}}),r(Be,[ye,_e],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e.state.get("text"))+"</div></div>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.innerHTML=e.encode(t.value)}),e._super()},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(De,[ye,Be],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.classes.toggle("tooltip-n","bc-tc"==i),r.classes.toggle("tooltip-nw","bc-tl"==i),r.classes.toggle("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){function e(e){n.aria("disabled",e),n.classes.toggle("disabled",e)}function t(e){n.aria("pressed",e),n.classes.toggle("active",e)}var n=this;return n.state.on("change:disabled",function(t){e(t.value)}),n.state.on("change:active",function(e){t(e.value)}),n.state.get("disabled")&&e(!0),n.state.get("active")&&t(!0),n._super()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(Le,[De],function(e){return e.extend({Defaults:{value:0},init:function(e){var t=this;t._super(e),t.classes.add("progress"),t.settings.filter||(t.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this,t=e._id,n=this.classPrefix;return'<div id="'+t+'" class="'+e.classes+'"><div class="'+n+'bar-container"><div class="'+n+'bar"></div></div><div class="'+n+'text">0%</div></div>'},postRender:function(){var e=this;return e._super(),e.value(e.settings.value),e},bindStates:function(){function e(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}var t=this;return t.state.on("change:value",function(t){e(t.value)}),e(t.state.get("value")),t._super()}})}),r(Me,[ye,_e,Le,u],function(e,t,n,r){return e.extend({Mixins:[t],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||e.timeout>0)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new n),t.on("click",function(e){-1!=e.target.className.indexOf(t.classPrefix+"close")&&t.close()})},renderHtml:function(){var e=this,t=e.classPrefix,n="",r="",i="",o="";return e.icon&&(n='<i class="'+t+"ico "+t+"i-"+e.icon+'"></i>'),e.color&&(o=' style="background-color: '+e.color+'"'),e.closeButton&&(r='<button type="button" class="'+t+'close" aria-hidden="true">\xd7</button>'),e.progressBar&&(i=e.progressBar.renderHtml()),'<div id="'+e._id+'" class="'+e.classes+'"'+o+' role="presentation">'+n+'<div class="'+t+'notification-inner">'+e.state.get("text")+"</div>"+i+r+"</div>"},postRender:function(){var e=this;return r.setTimeout(function(){e.$el.addClass(e.classPrefix+"in")}),e._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().childNodes[1].innerHTML=t.value}),e.progressBar&&e.progressBar.bindStates(),e._super()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||e.remove(),e},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Pe,[Me,u],function(e,t){return function(n){function r(){return l.length?l[l.length-1]:void 0}function i(){t.requestAnimationFrame(function(){o(),a()})}function o(){for(var e=0;e<l.length;e++)l[e].moveTo(0,0)}function a(){if(l.length>0){var e=l.slice(0,1)[0],t=n.inline?n.getElement():n.getContentAreaContainer();if(e.moveRel(t,"tc-tc"),l.length>1)for(var r=1;r<l.length;r++)l[r].moveRel(l[r-1].getEl(),"bc-tc")}}var s=this,l=[];s.notifications=l,n.on("remove",function(){for(var e=l.length;e--;)l[e].close()}),n.on("ResizeEditor",a),n.on("ResizeWindow",i),s.open=function(t){var r;return n.editorManager.setActive(n),r=new e(t),l.push(r),t.timeout>0&&(r.timer=setTimeout(function(){r.close()},t.timeout)),r.on("close",function(){var e=l.length;for(r.timer&&n.getWin().clearTimeout(r.timer);e--;)l[e]===r&&l.splice(e,1);a()}),r.renderTo(),a(),r},s.close=function(){r()&&r().close()},s.getNotifications=function(){return l},n.on("SkinLoaded",function(){var e=n.settings.service_message;e&&n.notificationManager.open({text:e,type:"warning",timeout:0,icon:""})})}}),r(Oe,[w],function(e){function t(t,n,r){for(var i=[];n&&n!=t;n=n.parentNode)i.push(e.nodeIndex(n,r));return i}function n(e,t){var n,r,i;for(r=e,n=t.length-1;n>=0;n--){if(i=r.childNodes,t[n]>i.length-1)return null;r=i[t[n]]}return r}return{create:t,resolve:n}}),r(He,[I,T,y,Oe,A,C,d,m,u,k,$,ne],function(e,t,n,r,i,o,a,s,l,c,u,d){return function(f){function h(e,t){try{f.getDoc().execCommand(e,!1,t)}catch(n){}}function p(){var e=f.getDoc().documentMode;return e?e:6}function m(e){return e.isDefaultPrevented()}function g(e){var t,n;e.dataTransfer&&(f.selection.isCollapsed()&&"IMG"==e.target.tagName&&re.select(e.target),t=f.selection.getContent(),t.length>0&&(n=ue+escape(f.id)+","+escape(t),e.dataTransfer.setData(de,n)))}function v(e){var t;return e.dataTransfer&&(t=e.dataTransfer.getData(de),t&&t.indexOf(ue)>=0)?(t=t.substr(ue.length).split(","),{id:unescape(t[0]),html:unescape(t[1])}):null}function y(e){f.queryCommandSupported("mceInsertClipboardContent")?f.execCommand("mceInsertClipboardContent",!1,{content:e}):f.execCommand("mceInsertContent",!1,e)}function b(){function i(e){var t=C.schema.getBlockElements(),n=f.getBody();if("BR"!=e.nodeName)return!1;for(;e!=n&&!t[e.nodeName];e=e.parentNode)if(e.nextSibling)return!1;return!0}function o(e,t){var n;for(n=e.nextSibling;n&&n!=t;n=n.nextSibling)if((3!=n.nodeType||0!==Z.trim(n.data).length)&&n!==t)return!1;return n===t}function a(e,t,r){var o,a,s;for(s=C.schema.getNonEmptyElements(),o=new n(r||e,e);a=o[t?"next":"prev"]();){if(s[a.nodeName]&&!i(a))return a;if(3==a.nodeType&&a.data.length>0)return a}}function c(e){var n,r,i,o,s;if(!e.collapsed&&(n=C.getParent(t.getNode(e.startContainer,e.startOffset),C.isBlock),
+r=C.getParent(t.getNode(e.endContainer,e.endOffset),C.isBlock),s=f.schema.getTextBlockElements(),n!=r&&s[n.nodeName]&&s[r.nodeName]&&"false"!==C.getContentEditable(n)&&"false"!==C.getContentEditable(r)))return e.deleteContents(),i=a(n,!1),o=a(r,!0),C.isEmpty(r)||Z(n).append(r.childNodes),Z(r).remove(),i?1==i.nodeType?"BR"==i.nodeName?(e.setStartBefore(i),e.setEndBefore(i)):(e.setStartAfter(i),e.setEndAfter(i)):(e.setStart(i,i.data.length),e.setEnd(i,i.data.length)):o&&(1==o.nodeType?(e.setStartBefore(o),e.setEndBefore(o)):(e.setStart(o,0),e.setEnd(o,0))),x.setRng(e),!0}function u(e,n){var r,i,s,l,c,u;if(!e.collapsed)return e;if(c=e.startContainer,u=e.startOffset,3==c.nodeType)if(n){if(u<c.data.length)return e}else if(u>0)return e;if(r=t.getNode(e.startContainer,e.startOffset),s=C.getParent(r,C.isBlock),i=a(f.getBody(),n,r),l=C.getParent(i,C.isBlock),!r||!i)return e;if(l&&s!=l)if(n){if(!o(s,l))return e;1==r.nodeType?"BR"==r.nodeName?e.setStartBefore(r):e.setStartAfter(r):e.setStart(r,r.data.length),1==i.nodeType?e.setEnd(i,0):e.setEndBefore(i)}else{if(!o(l,s))return e;1==i.nodeType?"BR"==i.nodeName?e.setStartBefore(i):e.setStartAfter(i):e.setStart(i,i.data.length),1==r.nodeType?e.setEnd(r,0):e.setEndBefore(r)}return e}function d(e){var t=x.getRng();return t=u(t,e),c(t)?!0:void 0}function h(e,t){function n(e,n){return m=Z(n).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),l=e.cloneNode(!1),m=s.map(m,function(e){return e=e.cloneNode(!1),l.hasChildNodes()?(e.appendChild(l.firstChild),l.appendChild(e)):l.appendChild(e),l.appendChild(e),e}),m.length?(p=C.create("br"),m[0].appendChild(p),C.replace(l,e),t.setStartBefore(p),t.setEndBefore(p),f.selection.setRng(t),p):null}function i(e){return e&&f.schema.getTextBlockElements()[e.tagName]}var o,a,l,c,u,d,h,p,m;if(t.collapsed&&(d=t.startContainer,h=t.startOffset,a=C.getParent(d,C.isBlock),i(a)))if(1==d.nodeType){if(d=d.childNodes[h],d&&"BR"!=d.tagName)return;if(u=e?a.nextSibling:a.previousSibling,C.isEmpty(a)&&i(u)&&C.isEmpty(u)&&n(a,d))return C.remove(u),!0}else if(3==d.nodeType){if(o=r.create(a,d),c=a.cloneNode(!0),d=r.resolve(c,o),e){if(h>=d.data.length)return;d.deleteData(h,1)}else{if(0>=h)return;d.deleteData(h-1,1)}if(C.isEmpty(c))return n(a,d)}}function p(e){var t,n,r;d(e)||(s.each(f.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&f.dom.setAttrib(e,"style",f.dom.getAttrib(e,"style"))}),t=new w(function(){}),t.observe(f.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),f.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null),n=f.selection.getRng(),r=n.startContainer.parentNode,s.each(t.takeRecords(),function(e){if(C.isChildOf(e.target,f.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}s.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),C.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),f.selection.setRng(n))}})}}),t.disconnect(),s.each(f.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")}))}var b=f.getDoc(),C=f.dom,x=f.selection,w=window.MutationObserver,N,E;w||(N=!0,w=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),f.on("keydown",function(e){var t=e.keyCode==te,n=e.ctrlKey||e.metaKey;if(!m(e)&&(t||e.keyCode==ee)){var r=f.selection.getRng(),i=r.startContainer,o=r.startOffset;if(t&&e.shiftKey)return;if(h(t,r))return void e.preventDefault();if(!n&&r.collapsed&&3==i.nodeType&&(t?o<i.data.length:o>0))return;e.preventDefault(),n&&f.selection.getSel().modify("extend",t?"forward":"backward",e.metaKey?"lineboundary":"word"),p(t)}}),f.on("keypress",function(t){if(!m(t)&&!x.isCollapsed()&&t.charCode>31&&!e.metaKeyPressed(t)){var n,r,i,o,a,s;n=f.selection.getRng(),s=String.fromCharCode(t.charCode),t.preventDefault(),r=Z(n.startContainer).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),p(!0),r=r.filter(function(e,t){return!Z.contains(f.getBody(),t)}),r.length?(i=C.createFragment(),r.each(function(e,t){t=t.cloneNode(!1),i.hasChildNodes()?(t.appendChild(i.firstChild),i.appendChild(t)):(a=t,i.appendChild(t)),i.appendChild(t)}),a.appendChild(f.getDoc().createTextNode(s)),o=C.getParent(n.startContainer,C.isBlock),C.isEmpty(o)?Z(o).empty().append(i):n.insertNode(i),n.setStart(a.firstChild,1),n.setEnd(a.firstChild,1),f.selection.setRng(n)):f.selection.setContent(s)}}),f.addCommand("Delete",function(){p()}),f.addCommand("ForwardDelete",function(){p(!0)}),N||(f.on("dragstart",function(e){E=x.getRng(),g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);n&&(e.preventDefault(),l.setEditorTimeout(f,function(){var r=t.getCaretRangeFromPoint(e.x,e.y,b);E&&(x.setRng(E),E=null),p(),x.setRng(r),y(n.html)}))}}),f.on("cut",function(e){m(e)||!e.clipboardData||f.selection.isCollapsed()||(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",f.selection.getContent()),e.clipboardData.setData("text/plain",f.selection.getContent({format:"text"})),l.setEditorTimeout(f,function(){p(!0)}))}))}function C(){function e(e){var t=ne.create("body"),n=e.cloneContents();return t.appendChild(n),re.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(f.getBody()),t.compareRanges(n,r)}var i=e(n),o=ne.createRng();o.selectNode(f.getBody());var a=e(o);return i===a}f.on("keydown",function(e){var t=e.keyCode,r,i;if(!m(e)&&(t==te||t==ee)){if(r=f.selection.isCollapsed(),i=f.getBody(),r&&!ne.isEmpty(i))return;if(!r&&!n(f.selection.getRng()))return;e.preventDefault(),f.setContent(""),i.firstChild&&ne.isBlock(i.firstChild)?f.selection.setCursorLocation(i.firstChild,0):f.selection.setCursorLocation(i,0),f.nodeChanged()}})}function x(){f.shortcuts.add("meta+a",null,"SelectAll")}function w(){f.settings.content_editable||ne.bind(f.getDoc(),"mousedown mouseup",function(e){var t;if(e.target==f.getDoc().documentElement)if(t=re.getRng(),f.getBody().focus(),"mousedown"==e.type){if(c.isCaretContainer(t.startContainer))return;re.placeCaretAt(e.clientX,e.clientY)}else re.setRng(t)})}function N(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee){if(!f.getBody().getElementsByTagName("hr").length)return;if(re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return ne.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(ne.remove(n),e.preventDefault())}}})}function E(){window.Range.prototype.getClientRects||f.on("mousedown",function(e){if(!m(e)&&"HTML"===e.target.nodeName){var t=f.getBody();t.blur(),l.setEditorTimeout(f,function(){t.focus()})}})}function _(){f.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==ne.getContentEditableParent(t)&&(e.preventDefault(),re.getSel().setBaseAndExtent(t,0,t,1),f.nodeChanged()),"A"==t.nodeName&&ne.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),re.select(t))})}function S(){function e(){var e=ne.getAttribs(re.getStart().cloneNode(!1));return function(){var t=re.getStart();t!==f.getBody()&&(ne.setAttrib(t,"style",null),Q(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!re.isCollapsed()&&ne.getParent(re.getStart(),ne.isBlock)!=ne.getParent(re.getEnd(),ne.isBlock)}f.on("keypress",function(n){var r;return m(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),f.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),ne.bind(f.getDoc(),"cut",function(n){var r;!m(n)&&t()&&(r=e(),l.setEditorTimeout(f,function(){r()}))})}function k(){document.body.setAttribute("role","application")}function T(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee&&re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function R(){p()>7||(h("RespectVisibilityInDesign",!0),f.contentStyles.push(".mceHideBrInPre pre br {display: none}"),ne.addClass(f.getBody(),"mceHideBrInPre"),oe.addNodeFilter("pre",function(e){for(var t=e.length,n,r,o,a;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)o=n[r],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new i("#text",3),o,!0).value="\n"}),ae.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function A(){ne.bind(f.getBody(),"mouseup",function(){var e,t=re.getNode();"IMG"==t.nodeName&&((e=ne.getStyle(t,"width"))&&(ne.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"width","")),(e=ne.getStyle(t,"height"))&&(ne.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"height","")))})}function B(){f.on("keydown",function(t){var n,r,i,o,a;if(!m(t)&&t.keyCode==e.BACKSPACE&&(n=re.getRng(),r=n.startContainer,i=n.startOffset,o=ne.getRoot(),a=r,n.collapsed&&0===i)){for(;a&&a.parentNode&&a.parentNode.firstChild==a&&a.parentNode!=o;)a=a.parentNode;"BLOCKQUOTE"===a.tagName&&(f.formatter.toggle("blockquote",null,a),n=ne.createRng(),n.setStart(r,0),n.setEnd(r,0),re.setRng(n))}})}function D(){function e(){K(),h("StyleWithCSS",!1),h("enableInlineTableEditing",!1),ie.object_resizing||h("enableObjectResizing",!1)}ie.readonly||f.on("BeforeExecCommand MouseDown",e)}function L(){function e(){Q(ne.select("a"),function(e){var t=e.parentNode,n=ne.getRoot();if(t.lastChild===e){for(;t&&!ne.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}ne.add(t,"br",{"data-mce-bogus":1})}})}f.on("SetContent ExecCommand",function(t){"setcontent"!=t.type&&"mceInsertLink"!==t.command||e()})}function M(){ie.forced_root_block&&f.on("init",function(){h("DefaultParagraphSeparator",ie.forced_root_block)})}function P(){f.on("keydown",function(e){var t;m(e)||e.keyCode!=ee||(t=f.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),f.undoManager.beforeChange(),ne.remove(t.item(0)),f.undoManager.add()))})}function O(){var e;p()>=10&&(e="",Q("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),f.contentStyles.push(e+"{padding-right: 1px !important}"))}function H(){p()<9&&(oe.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),ae.addNodeFilter("noscript",function(e){for(var t=e.length,n,r,a;t--;)n=e[t],r=e[t].firstChild,r?r.value=o.decode(r.value):(a=n.attributes.map["data-mce-innertext"],a&&(n.attr("data-mce-innertext",null),r=new i("#text",3),r.value=a,r.raw=!0,n.append(r)))}))}function I(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),ne.unbind(r,"mouseup",n),ne.unbind(r,"mousemove",t),a=o=0}var r=ne.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,ne.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(ne.bind(r,"mouseup",n),ne.bind(r,"mousemove",t),ne.getRoot().focus(),a.select())}})}function F(){f.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||re.normalize()},!0)}function z(){f.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function U(){f.inline||f.on("keydown",function(){document.activeElement==document.body&&f.getWin().focus()})}function W(){f.inline||(f.contentStyles.push("body {min-height: 150px}"),f.on("click",function(e){var t;if("HTML"==e.target.nodeName){if(a.ie>11)return void f.getBody().focus();t=f.selection.getRng(),f.getBody().focus(),f.selection.setRng(t),f.selection.normalize(),f.nodeChanged()}}))}function V(){a.mac&&f.on("keydown",function(t){!e.metaKeyPressed(t)||t.shiftKey||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),f.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","lineboundary"))})}function $(){h("AutoUrlDetect",!1)}function q(){f.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),f.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function j(){f.on("init",function(){f.dom.bind(f.getBody(),"submit",function(e){e.preventDefault()})})}function Y(){oe.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"==e[t].attr("class")&&e[t].remove()})}function X(){f.on("dragstart",function(e){g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);if(n&&n.id!=f.id){e.preventDefault();var r=t.getCaretRangeFromPoint(e.x,e.y,f.getDoc());re.setRng(r),y(n.html)}}})}function K(){var e,t;G()&&(e=f.getBody(),t=e.parentNode,t.removeChild(e),t.appendChild(e),e.focus())}function G(){var e;return se?(e=f.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}function J(){function t(e){var t=new d(e.getBody()),n=e.selection.getRng(),r=u.fromRangeStart(n),i=u.fromRangeEnd(n);return!e.selection.isCollapsed()&&!t.prev(r)&&!t.next(i)}f.on("keypress",function(n){!m(n)&&!re.isCollapsed()&&n.charCode>31&&!e.metaKeyPressed(n)&&t(f)&&(n.preventDefault(),f.setContent(String.fromCharCode(n.charCode)),f.selection.select(f.getBody(),!0),f.selection.collapse(!1),f.nodeChanged())}),f.on("keydown",function(e){var n=e.keyCode;m(e)||n!=te&&n!=ee||t(f)&&(e.preventDefault(),f.setContent(""),f.nodeChanged())})}var Q=s.each,Z=f.$,ee=e.BACKSPACE,te=e.DELETE,ne=f.dom,re=f.selection,ie=f.settings,oe=f.parser,ae=f.serializer,se=a.gecko,le=a.ie,ce=a.webkit,ue="data:text/mce-internal,",de=le?"Text":"URL";return B(),C(),a.windowsPhone||F(),ce&&(J(),b(),w(),_(),M(),j(),T(),Y(),a.iOS?(U(),W(),q()):x()),le&&a.ie<11&&(N(),k(),R(),A(),P(),O(),H(),I()),a.ie>=11&&(W(),T()),a.ie&&(x(),$(),X()),se&&(J(),N(),E(),S(),D(),L(),z(),V(),T()),{refreshContentEditable:K,isHidden:G}}}),r(Ie,[ue,w,m],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=o.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function i(e,t){function n(e){return!e.hidden&&!e.readonly}var i=r(e,t),s;if(e.delegates||(e.delegates={}),!e.delegates[t])if(e.settings.event_root){if(a||(a={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&a){for(t in a)e.dom.unbind(r(e,t));a=null}})),a[t])return;s=function(r){for(var i=r.target,a=e.editorManager.editors,s=a.length;s--;){var l=a[s].getBody();(l===i||o.isChildOf(i,l))&&n(a[s])&&a[s].fire(t,r)}},a[t]=s,o.bind(i,t,s)}else s=function(r){n(e)&&e.fire(t,r)},o.bind(i,t,s),e.delegates[t]=s}var o=t.DOM,a,s={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(r(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e=this,t;if(e.delegates){for(t in e.delegates)e.dom.unbind(r(e,t),t,e.delegates[t]);delete e.delegates}e.inline||(e.getBody().onload=null,e.dom.unbind(e.getWin()),e.dom.unbind(e.getDoc())),e.dom.unbind(e.getBody()),e.dom.unbind(e.getContainer())}};return s=n.extend({},e,s)}),r(Fe,[],function(){function e(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}}function t(e){var t,n;return t=e.getBody(),n=function(t){e.dom.getParents(t.target,"a").length>0&&t.preventDefault()},e.dom.bind(t,"click",n),{unbind:function(){e.dom.unbind(t,"click",n)}}}function n(n,r){n._clickBlocker&&(n._clickBlocker.unbind(),n._clickBlocker=null),r?(n._clickBlocker=t(n),n.selection.controlSelection.hideResizeRect(),n.readonly=!0,n.getBody().contentEditable=!1):(n.readonly=!1,n.getBody().contentEditable=!0,e(n,"StyleWithCSS",!1),e(n,"enableInlineTableEditing",!1),e(n,"enableObjectResizing",!1),n.focus(),n.nodeChanged())}function r(e,t){var r=e.readonly?"readonly":"design";t!=r&&(e.initialized?n(e,"readonly"==t):e.on("init",function(){n(e,"readonly"==t)}),e.fire("SwitchMode",{mode:t}))}return{setMode:r}}),r(ze,[m,d],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122},o=e.makeMap("alt,ctrl,shift,meta,access");return function(a){function s(e){var a,s,l={};n(r(e,"+"),function(e){e in o?l[e]=!0:/^[0-9]{2,}$/.test(e)?l.keyCode=parseInt(e,10):(l.charCode=e.charCodeAt(0),l.keyCode=i[e]||e.toUpperCase().charCodeAt(0))}),a=[l.keyCode];for(s in o)l[s]?a.push(s):l[s]=!1;return l.id=a.join(","),l.access&&(l.alt=!0,t.mac?l.ctrl=!0:l.shift=!0),l.meta&&(t.mac?l.meta=!0:(l.ctrl=!0,l.meta=!1)),l}function l(t,n,i,o){var l;return l=e.map(r(t,">"),s),l[l.length-1]=e.extend(l[l.length-1],{func:i,scope:o||a}),e.extend(l[0],{desc:a.translate(n),subpatterns:l.slice(1)})}function c(e){return e.altKey||e.ctrlKey||e.metaKey}function u(e){return e.keyCode>=112&&e.keyCode<=123}function d(e,t){return t?t.ctrl!=e.ctrlKey||t.meta!=e.metaKey?!1:t.alt!=e.altKey||t.shift!=e.shiftKey?!1:e.keyCode==t.keyCode||e.charCode&&e.charCode==t.charCode?(e.preventDefault(),!0):!1:!1}function f(e){return e.func?e.func.call(e.scope):null}var h=this,p={},m=[];a.on("keyup keypress keydown",function(e){!c(e)&&!u(e)||e.isDefaultPrevented()||(n(p,function(t){return d(e,t)?(m=t.subpatterns.slice(0),"keydown"==e.type&&f(t),!0):void 0}),d(e,m[0])&&(1===m.length&&"keydown"==e.type&&f(m[0]),m.shift()))}),h.add=function(t,i,o,s){var c;return c=o,"string"==typeof o?o=function(){a.execCommand(c,!1,null)}:e.isArray(c)&&(o=function(){a.execCommand(c[0],c[1],c[2])}),n(r(e.trim(t.toLowerCase())),function(e){var t=l(e,i,o,s);p[t.id]=t}),!0},h.remove=function(e){var t=l(e);return p[t.id]?(delete p[t.id],!0):!1}}}),r(Ue,[c,m,z],function(e,t,n){return function(r,i){function o(e){var t,n;return n={"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"},t=n[e.blob().type.toLowerCase()]||"dat",e.id()+"."+t}function a(e,t){return e?e.replace(/\/$/,"")+"/"+t.replace(/^\//,""):t}function s(e){return{id:e.id,blob:e.blob,base64:e.base64,filename:n.constant(o(e))}}function l(e,t,n,r){var s,l;s=new XMLHttpRequest,s.open("POST",i.url),s.withCredentials=i.credentials,s.upload.onprogress=function(e){r(e.loaded/e.total*100)},s.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+s.status)},s.onload=function(){var e;return 200!=s.status?void n("HTTP Error: "+s.status):(e=JSON.parse(s.responseText),e&&"string"==typeof e.location?void t(a(i.basePath,e.location)):void n("Invalid JSON: "+s.responseText))},l=new FormData,l.append("file",e.blob(),o(e)),s.send(l)}function c(){return new e(function(e){e([])})}function u(e,t){return{url:t,blobInfo:e,status:!0}}function d(e,t){return{url:"",blobInfo:e,status:!1,error:t}}function f(e,n){t.each(y[e],function(e){e(n)}),delete y[e]}function h(t,n,i){return r.markPending(t.blobUri()),new e(function(e){var o,a,l=function(){};try{var c=function(){o&&(o.close(),a=l)},h=function(n){c(),r.markUploaded(t.blobUri(),n),f(t.blobUri(),u(t,n)),e(u(t,n))},p=function(){c(),r.removeFailed(t.blobUri()),f(t.blobUri(),d(t,p)),e(d(t,p))};a=function(e){0>e||e>100||(o||(o=i()),o.progressBar.value(e))},n(s(t),h,p,a)}catch(m){e(d(t,m.message))}})}function p(e){return e===l}function m(t){var n=t.blobUri();return new e(function(e){y[n]=y[n]||[],y[n].push(e)})}function g(n,o){return n=t.grep(n,function(e){return!r.isUploaded(e.blobUri())}),e.all(t.map(n,function(e){return r.isPending(e.blobUri())?m(e):h(e,i.handler,o)}))}function v(e,t){return!i.url&&p(i.handler)?c():g(e,t)}var y={};return i=t.extend({credentials:!1,handler:l},i),{upload:v}}}),r(We,[c],function(e){function t(t){return new e(function(e){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="blob",n.onload=function(){200==this.status&&e(this.response)},n.send()})}function n(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}}function r(t){return new e(function(e){var r,i,o;t=n(t);try{r=atob(t.data)}catch(a){return void e(new Blob([]))}for(i=new Uint8Array(r.length),o=0;o<i.length;o++)i[o]=r.charCodeAt(o);e(new Blob([i],{type:t.type}))})}function i(e){return 0===e.indexOf("blob:")?t(e):0===e.indexOf("data:")?r(e):null}function o(t){return new e(function(e){var n=new FileReader;n.onloadend=function(){e(n.result)},n.readAsDataURL(t)})}return{uriToBlob:i,blobToDataUri:o,parseDataUri:n}}),r(Ve,[c,p,z,We,d],function(e,t,n,r,i){var o=0;return function(a,s){function l(l,u){function d(e,t){var n,i;return 0===e.src.indexOf("blob:")?(i=s.getByUri(e.src),void(i&&t({image:e,blobInfo:i}))):(n=r.parseDataUri(e.src).data,i=s.findFirst(function(e){return e.base64()===n}),void(i?t({image:e,blobInfo:i}):r.uriToBlob(e.src).then(function(r){var i="blobid"+o++,a=s.create(i,r,n);s.add(a),t({image:e,blobInfo:a})})))}var f,h;return u||(u=n.constant(!0)),f=t.filter(l.getElementsByTagName("img"),function(e){var t=e.src;return i.fileApi?e.hasAttribute("data-mce-bogus")?!1:e.hasAttribute("data-mce-placeholder")?!1:t&&t!=i.transparentSrc?0===t.indexOf("blob:")?!a.isUploaded(t):0===t.indexOf("data:")?u(e):!1:!1:!1}),h=t.map(f,function(t){var n;return c[t.src]?new e(function(e){c[t.src].then(function(n){e({image:t,blobInfo:n.blobInfo})})}):(n=new e(function(e){d(t,e)}).then(function(e){return delete c[e.image.src],e})["catch"](function(e){return delete c[t.src],e}),c[t.src]=n,n)}),e.all(h)}var c={};return{findAll:l}}}),r($e,[p,z],function(e,t){return function(){function n(e,t,n){return{id:u(e),blob:u(t),base64:u(n),blobUri:u(URL.createObjectURL(t))}}function r(e){i(e.id())||c.push(e)}function i(e){return o(function(t){return t.id()===e})}function o(t){return e.filter(c,t)[0]}function a(e){return o(function(t){return t.blobUri()==e})}function s(t){c=e.filter(c,function(e){return e.blobUri()===t?(URL.revokeObjectURL(e.blobUri()),!1):!0})}function l(){e.each(c,function(e){URL.revokeObjectURL(e.blobUri())}),c=[]}var c=[],u=t.constant;return{create:n,add:r,get:i,getByUri:a,findFirst:o,removeByUri:s,destroy:l}}}),r(qe,[],function(){return function(){function e(e,t){return{status:e,resultUri:t}}function t(e){return e in d}function n(e){var t=d[e];return t?t.resultUri:null}function r(e){return t(e)?d[e].status===c:!1}function i(e){return t(e)?d[e].status===u:!1}function o(t){d[t]=e(c,null)}function a(t,n){d[t]=e(u,n)}function s(e){delete d[e]}function l(){d={}}var c=1,u=2,d={};return{hasBlobUri:t,getResultUri:n,isPending:r,isUploaded:i,markPending:o,markUploaded:a,removeFailed:s,destroy:l}}}),r(je,[p,Ue,Ve,$e,qe],function(e,t,n,r,i){return function(o){function a(e){return function(t){return o.selection?e(t):[]}}function s(e,t,n){var r=0;do r=e.indexOf(t,r),-1!==r&&(e=e.substring(0,r)+n+e.substr(r+t.length),r+=n.length-t.length+1);while(-1!==r);return e}function l(e,t,n){return e=s(e,'src="'+t+'"','src="'+n+'"'),e=s(e,'data-mce-src="'+t+'"','data-mce-src="'+n+'"')}function c(t,n){e.each(o.undoManager.data,function(e){e.content=l(e.content,t,n)})}function u(){return o.notificationManager.open({text:o.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})}function d(e,t){y.removeByUri(e.src),c(e.src,t),o.$(e).attr({src:t,"data-mce-src":o.convertURL(t,"src")})}function f(n){return b||(b=new t(w,{url:x.images_upload_url,basePath:x.images_upload_base_path,credentials:x.images_upload_credentials,handler:x.images_upload_handler})),m().then(a(function(t){var r;return r=e.map(t,function(e){return e.blobInfo}),b.upload(r,u).then(a(function(r){return r=e.map(r,function(e,n){var r=t[n].image;return e.status&&o.settings.images_replace_blob_uris!==!1&&d(r,e.url),{element:r,status:e.status}}),n&&n(r),r}))}))}function h(e){return x.automatic_uploads!==!1?f(e):void 0}function p(e){return x.images_dataimg_filter?x.images_dataimg_filter(e):!0}function m(){return C||(C=new n(w,y)),C.findAll(o.getBody(),p).then(a(function(t){return e.each(t,function(e){c(e.image.src,e.blobInfo.blobUri()),e.image.src=e.blobInfo.blobUri(),e.image.removeAttribute("data-mce-src")}),t}))}function g(){y.destroy(),w.destroy(),C=b=null}function v(t){return t.replace(/src="(blob:[^"]+)"/g,function(t,n){var r=w.getResultUri(n);if(r)return'src="'+r+'"';var i=y.getByUri(n);return i||(i=e.reduce(o.editorManager.editors,function(e,t){return e||t.editorUpload.blobCache.getByUri(n)},null)),i?'src="data:'+i.blob().type+";base64,"+i.base64()+'"':t})}var y=new r,b,C,x=o.settings,w=new i;return o.on("setContent",function(){o.settings.automatic_uploads!==!1?h():m()}),o.on("RawSaveContent",function(e){e.content=v(e.content)}),o.on("getContent",function(e){e.source_view||"raw"==e.format||(e.content=v(e.content))}),o.on("PostRender",function(){o.parser.addNodeFilter("img",function(t){e.each(t,function(e){var t=e.attr("src");if(!y.getByUri(t)){var n=w.getResultUri(t);n&&e.attr("src",n)}})})}),{blobCache:y,uploadImages:f,uploadImagesAuto:h,scanForImages:m,destroy:g}}}),r(Ye,[k,$,_,T,g,W,u],function(e,t,n,r,i,o,a){var s=n.isContentEditableFalse;return function(t,n){function r(e,n){var r=o.collapse(e.getBoundingClientRect(),n),i,a,s,l,c;return"BODY"==t.tagName?(i=t.ownerDocument.documentElement,a=t.scrollLeft||i.scrollLeft,s=t.scrollTop||i.scrollTop):(c=t.getBoundingClientRect(),a=t.scrollLeft-c.left,s=t.scrollTop-c.top),r.left+=a,r.right+=a,r.top+=s,r.bottom+=s,r.width=1,l=e.offsetWidth-e.clientWidth,l>0&&(n&&(l*=-1),r.left+=l,r.right+=l),r}function l(){var n,r,o,a,s;for(n=i("*[contentEditable=false]",t),a=0;a<n.length;a++)r=n[a],o=r.previousSibling,e.endsWithCaretContainer(o)&&(s=o.data,1==s.length?o.parentNode.removeChild(o):o.deleteData(s.length-1,1)),o=r.nextSibling,e.startsWithCaretContainer(o)&&(s=o.data,1==s.length?o.parentNode.removeChild(o):o.deleteData(0,1));return null}function c(o,a){var l,c,f;return u(),n(a)?(g=e.insertBlock("p",a,o),l=r(a,o),i(g).css("top",l.top),m=i('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(l).appendTo(t),o&&m.addClass("mce-visual-caret-before"),d(),c=a.ownerDocument.createRange(),f=g.firstChild,c.setStart(f,0),c.setEnd(f,1),c):(g=e.insertInline(a,o),c=a.ownerDocument.createRange(),s(g.nextSibling)?(c.setStart(g,0),c.setEnd(g,0)):(c.setStart(g,1),c.setEnd(g,1)),c)}function u(){l(),g&&(e.remove(g),g=null),m&&(m.remove(),m=null),clearInterval(p)}function d(){p=a.setInterval(function(){i("div.mce-visual-caret",t).toggleClass("mce-visual-caret-hidden")},500)}function f(){a.clearInterval(p)}function h(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"}var p,m,g;return{show:c,hide:u,getCss:h,destroy:f}}}),r(Xe,[p,_,W],function(e,t,n){function r(i){function o(t){return e.map(t,function(e){return e=n.clone(e),e.node=i,e})}if(e.isArray(i))return e.reduce(i,function(e,t){return e.concat(r(t))},[]);if(t.isElement(i))return o(i.getClientRects());if(t.isText(i)){var a=i.ownerDocument.createRange();return a.setStart(i,0),a.setEnd(i,i.data.length),o(a.getClientRects())}}return{getClientRects:r}}),r(Ke,[z,p,Xe,U,te,ne,$,W],function(e,t,n,r,i,o,a,s){function l(e,t,n,o){for(;o=i.findNode(o,e,r.isEditableCaretCandidate,t);)if(n(o))return}function c(e,r,i,o,a,s){function c(o){var s,l,c;for(c=n.getClientRects(o),-1==e&&(c=c.reverse()),s=0;s<c.length;s++)if(l=c[s],!i(l,h)){if(f.length>0&&r(l,t.last(f))&&u++,l.line=u,a(l))return!0;f.push(l)}}var u=0,d,f=[],h;return(h=t.last(s.getClientRects()))?(d=s.getNode(),c(d),l(e,o,c,d),f):f}function u(e,t){return t.line>e}function d(e,t){return t.line===e}function f(e,n,r,i){function l(n){return 1==e?t.last(n.getClientRects()):t.last(n.getClientRects())}var c=new o(n),u,d,f,h,p=[],m=0,g,v;1==e?(u=c.next,d=s.isBelow,f=s.isAbove,h=a.after(i)):(u=c.prev,d=s.isAbove,f=s.isBelow,h=a.before(i)),v=l(h);do if(h.isVisible()&&(g=l(h),!f(g,v))){if(p.length>0&&d(g,t.last(p))&&m++,g=s.clone(g),g.position=h,g.line=m,r(g))return p;p.push(g)}while(h=u(h));return p}var h=e.curry,p=h(c,-1,s.isAbove,s.isBelow),m=h(c,1,s.isBelow,s.isAbove);return{upUntil:p,downUntil:m,positionsUntil:f,isAboveLine:h(u),isLine:h(d)}}),r(Ge,[z,p,_,Xe,W,te,U],function(e,t,n,r,i,o,a){function s(e,t){return Math.abs(e.left-t)}function l(e,t){return Math.abs(e.right-t)}function c(e,n){function r(e,t){return e>=t.left&&e<=t.right}return t.reduce(e,function(e,t){var i,o;return i=Math.min(s(e,n),l(e,n)),o=Math.min(s(t,n),l(t,n)),r(n,t)?t:r(n,e)?e:o==i&&m(t.node)?t:i>o?t:e})}function u(e,t,n,r){for(;r=g(r,e,a.isEditableCaretCandidate,t);)if(n(r))return}function d(e,n){function o(e,i){var o;return o=t.filter(r.getClientRects(i),function(t){return!e(t,n)}),a=a.concat(o),0===o.length}var a=[];return a.push(n),u(-1,e,v(o,i.isAbove),n.node),u(1,e,v(o,i.isBelow),n.node),a}function f(e){return t.filter(t.toArray(e.getElementsByTagName("*")),m)}function h(e,t){return{node:e.node,before:s(e,t)<l(e,t)}}function p(e,n,i){var o,a;return o=r.getClientRects(f(e)),o=t.filter(o,function(e){return i>=e.top&&i<=e.bottom}),a=c(o,n),a&&(a=c(d(e,a),n),a&&m(a.node))?h(a,n):null}var m=n.isContentEditableFalse,g=o.findNode,v=e.curry;return{findClosestClientRect:c,findLineNodeRects:d,closestCaret:p}}),r(Je,[],function(){var e=function(e){var t,n,r,i;return i=e.getBoundingClientRect(),t=e.ownerDocument,n=t.documentElement,r=t.defaultView,{top:i.top+r.pageYOffset-n.clientTop,left:i.left+r.pageXOffset-n.clientLeft}},t=function(t){return t.inline?e(t.getBody()):{left:0,top:0}},n=function(e){var t=e.getBody();return e.inline?{left:t.scrollLeft,top:t.scrollTop}:{left:0,top:0}},r=function(e){var t=e.getBody(),n=e.getDoc().documentElement,r={left:t.scrollLeft,top:t.scrollTop},i={left:t.scrollLeft||n.scrollLeft,top:t.scrollTop||n.scrollTop};return e.inline?r:i},i=function(t,n){if(n.target.ownerDocument!==t.getDoc()){var i=e(t.getContentAreaContainer()),o=r(t);return{left:n.pageX-i.left+o.left,top:n.pageY-i.top+o.top}}return{left:n.pageX,top:n.pageY}},o=function(e,t,n){return{pageX:n.left-e.left+t.left,pageY:n.top-e.top+t.top}},a=function(e,r){return o(t(e),n(e),i(e,r))};return{calc:a}}),r(Qe,[_,p,z,u,w,Je],function(e,t,n,r,i,o){var a=e.isContentEditableFalse,s=e.isContentEditableTrue,l=function(e){return a(e)},c=function(e,t,n){return t===n||e.dom.isChildOf(t,n)?!1:!a(t)},u=function(e){var t=e.cloneNode(!0);return t.removeAttribute("data-mce-selected"),t},d=function(e,t,n,r){var i=t.cloneNode(!0);e.dom.setStyles(i,{width:n,height:r}),e.dom.setAttrib(i,"data-mce-selected",null);var o=e.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(o,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(i,{margin:0,boxSizing:"border-box"}),o.appendChild(i),o},f=function(e,t){e.parentNode!==t&&t.appendChild(e)},h=function(e,t,n,r,i,o){var a=0,s=0;e.style.left=t.pageX+"px",e.style.top=t.pageY+"px",t.pageX+n>i&&(a=t.pageX+n-i),
+t.pageY+r>o&&(s=t.pageY+r-o),e.style.width=n-a+"px",e.style.height=r-s+"px"},p=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},m=function(e){return 0===e.button},g=function(e){return e.element},v=function(e,t){return{pageX:t.pageX-e.relX,pageY:t.pageY+5}},y=function(e,r){return function(i){if(m(i)){var o=t.find(r.dom.getParents(i.target),n.or(a,s));if(l(o)){var c=r.dom.getPos(o),u=r.getBody(),f=r.getDoc().documentElement;e.element=o,e.screenX=i.screenX,e.screenY=i.screenY,e.maxX=(r.inline?u.scrollWidth:f.offsetWidth)-2,e.maxY=(r.inline?u.scrollHeight:f.offsetHeight)-2,e.relX=i.pageX-c.x,e.relY=i.pageY-c.y,e.width=o.offsetWidth,e.height=o.offsetHeight,e.ghost=d(r,o,e.width,e.height)}}}},b=function(e,t){var n=r.throttle(function(e,n){t._selectionOverrides.hideFakeCaret(),t.selection.placeCaretAt(e,n)},0);return function(r){var i=Math.max(Math.abs(r.screenX-e.screenX),Math.abs(r.screenY-e.screenY));if(g(e)&&!e.dragging&&i>10){var a=t.fire("dragstart",{target:e.element});if(a.isDefaultPrevented())return;e.dragging=!0,t.focus()}if(e.dragging){var s=v(e,o.calc(t,r));f(e.ghost,t.getBody()),h(e.ghost,s,e.width,e.height,e.maxX,e.maxY),n(r.clientX,r.clientY)}}},C=function(e,t){return function(n){if(e.dragging&&c(t,t.selection.getNode(),e.element)){var r=u(e.element),i=t.fire("drop",{targetClone:r,clientX:n.clientX,clientY:n.clientY});i.isDefaultPrevented()||(r=i.targetClone,t.undoManager.transact(function(){p(e.element),t.insertContent(t.dom.getOuterHTML(r)),t._selectionOverrides.hideFakeCaret()}))}w(e)}},x=function(e,t){return function(){w(e),e.dragging&&t.fire("dragend")}},w=function(e){e.dragging=!1,e.element=null,p(e.ghost)},N=function(e){var t={},n,r,o,a,s,l;n=i.DOM,l=document,r=y(t,e),o=b(t,e),a=C(t,e),s=x(t,e),e.on("mousedown",r),e.on("mousemove",o),e.on("mouseup",a),n.bind(l,"mousemove",o),n.bind(l,"mouseup",s),e.on("remove",function(){n.unbind(l,"mousemove",o),n.unbind(l,"mouseup",s)})},E=function(e){e.on("drop",function(t){var n="undefined"!=typeof t.clientX?e.getDoc().elementFromPoint(t.clientX,t.clientY):null;(a(n)||a(e.dom.getContentEditableParent(n)))&&t.preventDefault()})},_=function(e){N(e),E(e)};return{init:_}}),r(Ze,[d,ne,$,k,te,Ye,Ke,Ge,_,T,W,I,z,p,u,Qe,S],function(e,t,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g){function v(e,t){for(;t=e(t);)if(t.isVisible())return t;return t}function y(c){function y(){var e=c.dom.get(le);return e?e.getElementsByTagName("*")[0]:e}function S(e){return c.dom.isBlock(e)}function k(e){e&&c.selection.setRng(e)}function T(){return c.selection.getRng()}function R(e,t){c.selection.scrollIntoView(e,t)}function A(e,t,n){var r;return r=c.fire("ShowCaret",{target:t,direction:e,before:n}),r.isDefaultPrevented()?null:(R(t,-1===e),se.show(n,t))}function B(e){var t;return se.hide(),t=c.fire("BeforeObjectSelected",{target:e}),t.isDefaultPrevented()?null:D(e)}function D(e){var t=e.ownerDocument.createRange();return t.selectNode(e),t}function L(e,t){var n=i.isInSameBlock(e,t);return!n&&l.isBr(e.getNode())?!0:n}function M(e,t){return t=i.normalizeRange(e,re,t),-1==e?n.fromRangeStart(t):n.fromRangeEnd(t)}function P(e){return r.isCaretContainerBlock(e.startContainer)}function O(e,t,n,r){var i,o,a,s;return!r.collapsed&&(i=_(r),x(i))?A(e,i,-1==e):(s=P(r),o=M(e,r),n(o)?B(o.getNode(-1==e)):(o=t(o))?n(o)?A(e,o.getNode(-1==e),1==e):(a=t(o),n(a)&&L(o,a)?A(e,a.getNode(-1==e),1==e):s?$(o.toRange()):null):s?r:null)}function H(e,t,n){var r,i,o,l,c,u,d,f,p;if(p=_(n),r=M(e,n),i=t(re,a.isAboveLine(1),r),o=h.filter(i,a.isLine(1)),c=h.last(r.getClientRects()),E(r)&&(p=r.getNode()),N(r)&&(p=r.getNode(!0)),!c)return null;if(u=c.left,l=s.findClosestClientRect(o,u),l&&x(l.node))return d=Math.abs(u-l.left),f=Math.abs(u-l.right),A(e,l.node,f>d);if(p){var m=a.positionsUntil(e,re,a.isAboveLine(1),p);if(l=s.findClosestClientRect(h.filter(m,a.isLine(1)),u))return $(l.position.toRange());if(l=h.last(h.filter(m,a.isLine(0))))return $(l.position.toRange())}}function I(t,r){function i(){var t=c.dom.create(c.settings.forced_root_block);return(!e.ie||e.ie>=11)&&(t.innerHTML='<br data-mce-bogus="1">'),t}var o,a,s;if(r.collapsed&&c.settings.forced_root_block){if(o=c.dom.getParent(r.startContainer,"PRE"),!o)return;a=1==t?oe(n.fromRangeStart(r)):ae(n.fromRangeStart(r)),a||(s=i(),1==t?c.$(o).after(s):c.$(o).before(s),c.selection.select(s,!0),c.selection.collapse())}}function F(e,t,n,r){var i;return(i=O(e,t,n,r))?i:(i=I(e,r),i?i:null)}function z(e,t,n){var r;return(r=H(e,t,n))?r:(r=I(e,n),r?r:null)}function U(){return ue("*[data-mce-caret]")[0]}function W(e){e=ue(e),e.attr("data-mce-caret")&&(se.hide(),e.removeAttr("data-mce-caret"),e.removeAttr("data-mce-bogus"),e.removeAttr("style"),k(T()),R(e[0]))}function V(e){var t,r;return e=i.normalizeRange(1,re,e),t=n.fromRangeStart(e),x(t.getNode())?A(1,t.getNode(),!t.isAtEnd()):x(t.getNode(!0))?A(1,t.getNode(!0),!1):(r=c.dom.getParent(t.getNode(),f.or(x,C)),x(r)?A(1,r,!1):(se.hide(),null))}function $(e){var t;return e&&e.collapsed?(t=V(e),t?t:e):e}function q(e){var t,i,o,a;return x(e)?(x(e.previousSibling)&&(o=e.previousSibling),i=ae(n.before(e)),i||(t=oe(n.after(e))),t&&w(t.getNode())&&(a=t.getNode()),r.remove(e.previousSibling),r.remove(e.nextSibling),c.dom.remove(e),ee(),c.dom.isEmpty(c.getBody())?(c.setContent(""),void c.focus()):o?n.after(o).toRange():a?n.before(a).toRange():i?i.toRange():t?t.toRange():null):null}function j(e){var t=c.schema.getTextBlockElements();return e.nodeName in t}function Y(e){return c.dom.isEmpty(e)}function X(e,t,r){var i=c.dom,o,a,s,l;if(o=i.getParent(t.getNode(),i.isBlock),a=i.getParent(r.getNode(),i.isBlock),-1===e){if(l=r.getNode(!0),N(r)&&S(l))return j(o)?(Y(o)&&i.remove(o),n.after(l).toRange()):q(r.getNode(!0))}else if(l=t.getNode(),E(t)&&S(l))return j(a)?(Y(a)&&i.remove(a),n.before(l).toRange()):q(t.getNode());if(o===a||!j(o)||!j(a))return null;for(;s=o.firstChild;)a.appendChild(s);return c.dom.remove(o),r.toRange()}function K(e,t,n,i){var o,a,s,l;return!i.collapsed&&(o=_(i),x(o))?$(q(o)):(a=M(e,i),n(a)&&r.isCaretContainerBlock(i.startContainer)?(l=-1==e?ie.prev(a):ie.next(a),l?$(l.toRange()):i):t(a)?$(q(a.getNode(-1==e))):(s=-1==e?ie.prev(a):ie.next(a),t(s)?-1===e?X(e,a,s):X(e,s,a):void 0))}function G(){function r(e,t){var n=t(T());n&&!e.isDefaultPrevented()&&(e.preventDefault(),k(n))}function i(e){for(var t=c.getBody();e&&e!=t;){if(C(e)||x(e))return e;e=e.parentNode}return null}function o(e,t,n){return n.collapsed?!1:h.reduce(n.getClientRects(),function(n,r){return n||u.containsXY(r,e,t)},!1)}function l(e){var t=!1;e.on("touchstart",function(){t=!1}),e.on("touchmove",function(){t=!0}),e.on("touchend",function(e){var n=i(e.target);x(n)?t||(e.preventDefault(),Z(B(n))):ee()})}function f(){var e,t=i(c.selection.getNode());C(t)&&S(t)&&c.dom.isEmpty(t)&&(e=c.dom.create("br",{"data-mce-bogus":"1"}),c.$(t).empty().append(e),c.selection.setRng(n.before(e).toRange()))}function g(e){var t=U();if(t)return"compositionstart"==e.type?(e.preventDefault(),e.stopPropagation(),void W(t)):void("&nbsp;"!=t.innerHTML&&W(t))}function v(e){var t;switch(e.keyCode){case d.DELETE:t=f();break;case d.BACKSPACE:t=f()}t&&e.preventDefault()}var w=b(F,1,oe,E),_=b(F,-1,ae,N),R=b(K,1,E,N),D=b(K,-1,N,E),L=b(z,-1,a.upUntil),M=b(z,1,a.downUntil);c.on("mouseup",function(){var e=T();e.collapsed&&k(V(e))}),c.on("click",function(e){var t;t=i(e.target),t&&x(t)&&(e.preventDefault(),c.focus())});var P=function(e){var r=new t(e);if(!e.firstChild)return!1;var i=n.before(e.firstChild),o=r.next(i);return o&&!E(o)&&!N(o)},O=function(e,t){var n=c.dom.getParent(e,c.dom.isBlock),r=c.dom.getParent(t,c.dom.isBlock);return n===r},H=function(e,t){var n=c.dom.getParent(e,c.dom.isBlock),r=c.dom.getParent(t,c.dom.isBlock);return n&&!O(n,r)&&P(n)};l(c),c.on("mousedown",function(e){var t;if(t=i(e.target))x(t)?(e.preventDefault(),Z(B(t))):(ee(),o(e.clientX,e.clientY,c.selection.getRng())||c.selection.placeCaretAt(e.clientX,e.clientY));else{ee(),se.hide();var n=s.closestCaret(re,e.clientX,e.clientY);n&&(H(e.target,n.node)||(e.preventDefault(),c.getBody().focus(),k(A(1,n.node,n.before))))}}),c.on("keydown",function(e){if(!d.modifierPressed(e))switch(e.keyCode){case d.RIGHT:r(e,w);break;case d.DOWN:r(e,M);break;case d.LEFT:r(e,_);break;case d.UP:r(e,L);break;case d.DELETE:r(e,R);break;case d.BACKSPACE:r(e,D);break;default:x(c.selection.getNode())&&e.preventDefault()}}),c.on("keyup compositionstart",function(e){g(e),v(e)},!0),c.on("cut",function(){var e=c.selection.getNode();x(e)&&p.setEditorTimeout(c,function(){k($(q(e)))})}),c.on("getSelectionRange",function(e){var t=e.range;if(ce){if(!ce.parentNode)return void(ce=null);t=t.cloneRange(),t.selectNode(ce),e.range=t}}),c.on("setSelectionRange",function(e){var t;t=Z(e.range),t&&(e.range=t)}),c.on("focus",function(){p.setEditorTimeout(c,function(){c.selection.setRng($(c.selection.getRng()))},0)}),c.on("copy",function(t){var n=t.clipboardData;if(!t.isDefaultPrevented()&&t.clipboardData&&!e.ie){var r=y();r&&(t.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),m.init(c)}function J(){var e=c.contentStyles,t=".mce-content-body";e.push(se.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")}function Q(e){return r.isCaretContainer(e.startContainer)||r.isCaretContainer(e.endContainer)}function Z(t){var n,r=c.$,i=c.dom,o,a,s,l,u,d,f,h,p;if(!t)return ee(),null;if(t.collapsed){if(ee(),!Q(t)){if(f=M(1,t),x(f.getNode()))return A(1,f.getNode(),!f.isAtEnd());if(x(f.getNode(!0)))return A(1,f.getNode(!0),!1)}return null}return s=t.startContainer,l=t.startOffset,u=t.endOffset,3==s.nodeType&&0==l&&x(s.parentNode)&&(s=s.parentNode,l=i.nodeIndex(s),s=s.parentNode),1!=s.nodeType?(ee(),null):(u==l+1&&(n=s.childNodes[l]),x(n)?(h=p=n.cloneNode(!0),d=c.fire("ObjectSelected",{target:n,targetClone:h}),d.isDefaultPrevented()?(ee(),null):(h=d.targetClone,o=r("#"+le),0===o.length&&(o=r('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",le),o.appendTo(c.getBody())),t=c.dom.createRng(),h===p&&e.ie?(o.empty().append(g.ZWSP).append(h).append(g.ZWSP),t.setStart(o[0].firstChild,0),t.setEnd(o[0].lastChild,1)):(o.empty().append("\xa0").append(h).append("\xa0"),t.setStart(o[0].firstChild,1),t.setEnd(o[0].lastChild,0)),o.css({top:i.getPos(n,c.getBody()).y}),o[0].focus(),a=c.selection.getSel(),a.removeAllRanges(),a.addRange(t),c.$("*[data-mce-selected]").removeAttr("data-mce-selected"),n.setAttribute("data-mce-selected",1),ce=n,t)):(ee(),null))}function ee(){ce&&(ce.removeAttribute("data-mce-selected"),c.$("#"+le).remove(),ce=null)}function te(){se.destroy(),ce=null}function ne(){se.hide()}var re=c.getBody(),ie=new t(re),oe=b(v,ie.next),ae=b(v,ie.prev),se=new o(c.getBody(),S),le="sel-"+c.dom.uniqueId(),ce,ue=c.$;return e.ceFalse&&(G(),J()),{showBlockCaretContainer:W,hideFakeCaret:ne,destroy:te}}var b=f.curry,C=l.isContentEditableTrue,x=l.isContentEditableFalse,w=l.isElement,N=i.isAfterContentEditableFalse,E=i.isBeforeContentEditableFalse,_=c.getSelectedNode;return y}),r(et,[],function(){var e=0,t=function(){var e=function(){return Math.round(4294967295*Math.random()).toString(36)},t=(new Date).getTime();return"s"+t.toString(36)+e()+e()+e()},n=function(n){return n+e++ +t()};return{uuid:n}}),r(tt,[w,g,E,R,A,O,P,Y,J,Q,Z,ee,oe,ae,N,f,Ae,Pe,B,L,He,d,m,u,Ie,Fe,ze,je,Ze,et],function(e,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v,y,b,C,x,w,N,E,_,S,k,T,R,A){function B(e,t,i){var o=this,a,s,l;a=o.documentBaseUrl=i.documentBaseURL,s=i.baseURI,l=i.defaultSettings,t=P({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:a,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:o.convertURL,url_converter_scope:o,ie7_compat:!0},l,t),l&&l.external_plugins&&t.external_plugins&&(t.external_plugins=P({},l.external_plugins,t.external_plugins)),o.settings=t,r.language=t.language||"en",r.languageLoad=t.language_load,r.baseURL=i.baseURL,o.id=t.id=e,o.setDirty(!1),o.plugins={},o.documentBaseURI=new p(t.document_base_url||a,{base_uri:s}),o.baseURI=s,o.contentCSS=[],o.contentStyles=[],o.shortcuts=new k(o),o.loadedCSS={},o.editorCommands=new h(o),t.target&&(o.targetElm=t.target),o.suffix=i.suffix,o.editorManager=i,o.inline=t.inline,o.settings.content_editable=o.inline,t.cache_suffix&&(w.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),t.override_viewport===!1&&(w.overrideViewPort=!1),i.fire("SetupEditor",o),o.execCallback("setup",o),o.$=n.overrideDefaults(function(){return{context:o.inline?o.getBody():o.getDoc(),element:o.getBody()}})}var D=e.DOM,L=r.ThemeManager,M=r.PluginManager,P=N.extend,O=N.each,H=N.explode,I=N.inArray,F=N.trim,z=N.resolve,U=g.Event,W=w.gecko,V=w.ie;return B.prototype={render:function(){function e(){D.unbind(window,"ready",e),n.render()}function t(){var e=m.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!L.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",L.load(r.theme,t)}N.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),O(r.external_plugins,function(e,t){M.load(t,e),r.plugins+=" "+t}),O(r.plugins.split(/[ ,]/),function(e){if(e=F(e),e&&!M.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=M.dependencies(e);O(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=M.createUrl(t,e),M.load(e.resource,e)})}else M.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!U.domLoaded)return void D.bind(window,"ready",e);if(n.getElement()&&w.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||D.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(D.insertAfter(D.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},D.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.setDirty(!1),a._mceOldSubmit(a)})),n.windowManager=new v(n),n.notificationManager=new y(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=D.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),n.editorManager.add(n),t()}},init:function(){function e(n){var r=M.get(n),i,o;if(i=M.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=F(n),r&&-1===I(m,n)){if(O(M.dependencies(n),function(t){e(t)}),t.plugins[n])return;o=new r(t,i,t.$),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n))}}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,h,p,m=[];if(t.rtl=n.rtl_ui||t.editorManager.i18n.rtl,t.editorManager.i18n.setCode(n.language),n.aria_label=n.aria_label||D.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),t.fire("ScriptsLoaded"),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=L.get(n.theme),t.theme=new c(t,L.urls[n.theme]),t.theme.init&&t.theme.init(t,L.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""),t.$)):t.theme=n.theme),O(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,h=/^[0-9\.]+(|px)$/i,h.test(""+i)&&(i=Math.max(parseInt(i,10),100)),h.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&O(H(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();if(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!w.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',!/#$/.test(document.location.href))for(p=0;p<t.contentCSS.length;p++){var g=t.contentCSS[p];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+N._addCacheSuffix(g)+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),n.content_security_policy&&(t.iframeHTML+='<meta http-equiv="Content-Security-Policy" content="'+n.content_security_policy+'" />'),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" data-id="'+t.id+'"><br></body></html>';var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&w.ie&&w.ie<12&&(u=v);var y=D.create("iframe",{id:t.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}});if(y.onload=function(){y.onload=null,t.fire("load")},D.setAttrib(y,"src",u||'javascript:""'),t.contentAreaContainer=l.iframeContainer,t.iframeElement=y,s=D.add(l.iframeContainer,y),V)try{t.getDoc()}catch(b){s.src=u=v}l.editorContainer&&(D.get(l.editorContainer).style.display=t.orgDisplay,t.hidden=D.isHidden(l.editorContainer)),t.getElement().style.display="none",D.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,r=n.settings,s=n.getElement(),h=n.getDoc(),p,m;r.inline||(n.getElement().style.visibility=n.orgVisibility),t||r.content_editable||(h.open(),h.write(n.iframeHTML),h.close()),r.content_editable&&(n.on("remove",function(){var e=this.getBody();D.removeClass(e,"mce-content-body"),D.removeClass(e,"mce-edit-focus"),D.setAttrib(e,"contentEditable",null)}),D.addClass(s,"mce-content-body"),n.contentDocument=h=r.content_document||document,n.contentWindow=r.content_window||window,n.bodyElement=s,r.content_document=r.content_window=null,r.root_name=s.nodeName.toLowerCase()),p=n.getBody(),p.disabled=!0,n.readonly=r.readonly,n.readonly||(n.inline&&"static"==D.getStyle(p,"position",!0)&&(p.style.position="relative"),p.contentEditable=n.getParam("content_editable_state",!0)),p.disabled=!1,n.editorUpload=new T(n),n.schema=new b(r),n.dom=new e(h,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:r.force_hex_style_colors,class_filter:r.class_filter,update_styles:!0,root_element:n.inline?n.getBody():null,collect:r.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new C(r,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)if(i=e[r],a=i.attr(t),s="data-mce-"+t,!i.attributes.map[s]){if(0===a.indexOf("data:")||0===a.indexOf("blob:"))continue;"style"===t?(a=o.serializeStyle(o.parseStyle(a),i.name),a.length||(a=null),i.attr(s,a),i.attr(t,a)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name))}}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("type")||"no/type",0!==r.indexOf("mce-")&&n.attr("type","mce-"+r)}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,r,i=n.schema.getNonEmptyElements();t--;)r=e[t],r.isEmpty(i)&&(r.append(new o("br",1)).shortEnded=!0)}),n.serializer=new a(r,n),n.selection=new l(n.dom,n.getWin(),n.serializer,n),n.formatter=new c(n),n.undoManager=new u(n),n.forceBlocks=new f(n),n.enterKey=new d(n),n._nodeChangeDispatcher=new i(n),n._selectionOverrides=new R(n),n.fire("PreInit"),r.browser_spellcheck||r.gecko_spellcheck||(h.body.spellcheck=!1,D.setAttrib(p,"spellcheck","false")),n.quirks=new x(n),n.fire("PostRender"),r.directionality&&(p.dir=r.directionality),r.nowrap&&(p.style.whiteSpace="nowrap"),r.protect&&n.on("BeforeSetContent",function(e){O(r.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),r.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.on("compositionstart compositionend",function(e){n.composing="compositionstart"===e.type}),n.contentStyles.length>0&&(m="",O(n.contentStyles,function(e){m+=e+"\r\n"}),n.dom.addStyle(m)),O(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),r.auto_focus&&E.setEditorTimeout(n,function(){var e;e=r.auto_focus===!0?n:n.editorManager.get(r.auto_focus),e.destroyed||e.focus()},100),s=h=p=null},focus:function(e){function t(e){return n.dom.getParent(e,function(e){return"true"===n.dom.getContentEditable(e)})}var n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l=n.getBody(),c;if(!e){if(o=r.getRng(),o.item&&(a=o.item(0)),n.quirks.refreshContentEditable(),c=t(r.getNode()),n.$.contains(l,c))return c.focus(),r.normalize(),void n.editorManager.setActive(n);if(i||(w.opera||n.getBody().focus(),n.getWin().focus()),W||i){if(l.setActive)try{l.setActive()}catch(u){l.focus()}else l.focus();i&&r.normalize()}a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())}n.editorManager.setActive(n)},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?z(r):0,n=z(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?(e=n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}),this.editorManager.translate(e)):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?O(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(e){e=e.split("="),e.length>1?i[F(e[0])]=F(e[1]):i[F(e[0])]=F(e)}):i=r,i):r},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addContextToolbar:function(e,t){var n=this,r;n.contextToolbars=n.contextToolbars||[],"string"==typeof e&&(r=e,e=function(e){return n.dom.is(e,r)}),n.contextToolbars.push({id:A.uuid("mcet"),predicate:e,items:t})},addCommand:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(D.show(e.getContainer()),D.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(V&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(D.hide(e.getContainer()),D.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),"raw"==e.format&&t.fire("RawSaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=D.getParent(t.id,"form"))&&O(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&t.setDirty(!1),r},setContent:function(e,t){var n=this,r=n.getBody(),i,o;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(o=V&&11>V?"":'<br data-mce-bogus="1">',"TABLE"==r.nodeName?e="<tr><td>"+o+"</td></tr>":/^(UL|OL)$/.test(r.nodeName)&&(e="<li>"+o+"</li>"),i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=o,e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):V||e||(e='<br data-mce-bogus="1">'),n.dom.setHTML(r,e),n.fire("SetContent",t)):("raw"!==t.format&&(e=new s({validate:n.validate},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=F(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?t.serializer.getTrimmedContent():"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),"text"!=e.format?e.content=F(n):e.content=n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=P({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!=t&&this.fire("dirty")},setMode:function(e){S.setMode(this,e)},getContainer:function(){var e=this;return e.container||(e.container=D.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=D.get(this.id)),this.targetElm},getWin:function(){var e=this,t;return e.contentWindow||(t=e.iframeElement,t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),O(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||!n.hasVisual?i.removeClass(e,o):i.addClass(e,o));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&n.hasVisual?i.addClass(e,o):i.removeClass(e,o)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&D.remove(e.getElement().nextSibling),e.inline||(V&&10>V&&e.getDoc().execCommand("SelectAll",!1,null),D.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),D.remove(e.getContainer()),e._selectionOverrides.destroy(),e.editorUpload.destroy(),e.destroy())},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),D.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.bodyElement=t.contentDocument=t.contentWindow=null,t.iframeElement=t.targetElm=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},P(B.prototype,_),B}),r(nt,[],function(){var e={},t="en";return{setCode:function(e){e&&(t=e,this.rtl=this.data[e]?"rtl"===this.data[e]._dir:!1)},getCode:function(){return t},rtl:!1,add:function(t,n){var r=e[t];r||(e[t]=r={});for(var i in n)r[i]=n[i];this.setCode(t)},translate:function(n){var r;if(r=e[t],r||(r={}),"undefined"==typeof n)return n;if("string"!=typeof n&&n.raw)return n.raw;if(n.push){var i=n.slice(1);n=(r[n[0]]||n[0]).replace(/\{([0-9]+)\}/g,function(e,t){return i[t]})}return(r[n]||n).replace(/{context:\w+}$/,"")},data:e}}),r(rt,[w,u,d],function(e,t,n){function r(e){function l(){try{return document.activeElement}catch(e){return document.body}}function c(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,
+startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function u(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function d(e){return!!s.getParent(e,r.isEditorUIElement)}function f(r){var f=r.editor;f.on("init",function(){(f.inline||n.ie)&&("onbeforedeactivate"in document&&n.ie<9?f.dom.bind(f.getBody(),"beforedeactivate",function(e){if(e.target==f.getBody())try{f.lastRng=f.selection.getRng()}catch(t){}}):f.on("nodechange mouseup keyup",function(e){var t=l();"nodechange"==e.type&&e.selectionChange||(t&&t.id==f.id+"_ifr"&&(t=f.getBody()),f.dom.isChildOf(t,f.getBody())&&(f.lastRng=f.selection.getRng()))}),n.webkit&&!i&&(i=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(f.lastRng=n)}},s.bind(document,"selectionchange",i)))}),f.on("setcontent",function(){f.lastRng=null}),f.on("mousedown",function(){f.selection.lastFocusBookmark=null}),f.on("focusin",function(){var t=e.focusedEditor,n;f.selection.lastFocusBookmark&&(n=u(f,f.selection.lastFocusBookmark),f.selection.lastFocusBookmark=null,f.selection.setRng(n)),t!=f&&(t&&t.fire("blur",{focusedEditor:f}),e.setActive(f),e.focusedEditor=f,f.fire("focus",{blurredEditor:t}),f.focus(!0)),f.lastRng=null}),f.on("focusout",function(){t.setEditorTimeout(f,function(){var t=e.focusedEditor;d(l())||t!=f||(f.fire("blur",{focusedEditor:null}),e.focusedEditor=null,f.selection&&(f.selection.lastFocusBookmark=null))})}),o||(o=function(t){var n=e.activeEditor,r;r=t.target,n&&r.ownerDocument==document&&(n.selection&&r!=n.getBody()&&(n.selection.lastFocusBookmark=c(n.dom,n.lastRng)),r==document.body||d(r)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},s.bind(document,"focusin",o)),f.inline&&!a&&(a=function(t){var n=e.activeEditor,r=n.dom;if(n.inline&&r&&!r.isChildOf(t.target,n.getBody())){var i=n.selection.getRng();i.collapsed||(n.lastRng=i)}},s.bind(document,"mouseup",a))}function h(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(s.unbind(document,"selectionchange",i),s.unbind(document,"focusin",o),s.unbind(document,"mouseup",a),i=o=a=null)}e.on("AddEditor",f),e.on("RemoveEditor",h)}var i,o,a,s=e.DOM;return r.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},r}),r(it,[tt,g,w,ae,d,m,c,ue,nt,rt],function(e,t,n,r,i,o,a,s,l,c){function u(e){g(C.editors,function(t){"scroll"===e.type?t.fire("ScrollWindow",e):t.fire("ResizeWindow",e)})}function d(e,n){n!==x&&(n?t(window).on("resize scroll",u):t(window).off("resize scroll",u),x=n)}function f(e){var t=C.editors,n;delete t[e.id];for(var r=0;r<t.length;r++)if(t[r]==e){t.splice(r,1),n=!0;break}return C.activeEditor==e&&(C.activeEditor=t[0]),C.focusedEditor==e&&(C.focusedEditor=null),n}function h(e){return e&&e.initialized&&!(e.getContainer()||e.getBody()).parentNode&&(f(e),e.unbindAllNativeEvents(),e.destroy(!0),e.removed=!0,e=null),e}var p=n.DOM,m=o.explode,g=o.each,v=o.extend,y=0,b,C,x=!1;return C={$:t,majorVersion:"4",minorVersion:"4.3",releaseDate:"2016-09-01",editors:[],i18n:l,activeEditor:null,setup:function(){var e=this,t,n,i="",o,a;if(n=r.getDocumentBaseUrl(document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(n)&&(n=n.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/")),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else{for(var s=document.getElementsByTagName("script"),l=0;l<s.length;l++){a=s[l].src;var u=a.substring(a.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(a)){-1!=u.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/"));break}}!t&&document.currentScript&&(a=document.currentScript.src,-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/")))}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new c(e)},overrideDefaults:function(e){var t,n;t=e.base_url,t&&(this.baseURL=new r(this.documentBaseURL).toAbsolute(t.replace(/\/+$/,"")),this.baseURI=new r(this.baseURL)),n=e.suffix,e.suffix&&(this.suffix=n),this.defaultSettings=e},init:function(n){function r(e,t){return e.inline&&t.tagName.toLowerCase()in C}function i(e,t){window.console&&!window.test&&window.console.log(e,t)}function s(e){var t=e.id;return t||(t=e.name,t=t&&!p.get(t)?e.name:p.uniqueId(),e.setAttribute("id",t)),t}function l(e){var t=n[e];if(t)return t.apply(f,Array.prototype.slice.call(arguments,2))}function c(e,t){return t.constructor===RegExp?t.test(e.className):p.hasClass(e,t)}function u(e){var t,n=[];if(e.types)return g(e.types,function(e){n=n.concat(p.select(e.selector))}),n;if(e.selector)return p.select(e.selector);if(e.target)return[e.target];switch(e.mode){case"exact":t=e.elements||"",t.length>0&&g(m(t),function(e){var t;(t=p.get(e))?n.push(t):g(document.forms,function(t){g(t.elements,function(t){t.name===e&&(e="mce_editor_"+y++,p.setAttrib(t,"id",e),n.push(t))})})});break;case"textareas":case"specific_textareas":g(p.select("textarea"),function(t){e.editor_deselector&&c(t,e.editor_deselector)||e.editor_selector&&!c(t,e.editor_selector)||n.push(t)})}return n}function d(){function a(t,n,r){var i=new e(t,n,f);m.push(i),i.on("init",function(){++c===y.length&&x(m)}),i.targetElm=i.targetElm||r,i.render()}var c=0,m=[],y;return p.unbind(window,"ready",d),l("onpageload"),y=t.unique(u(n)),n.types?void g(n.types,function(e){o.each(y,function(t){return p.is(t,e.selector)?(a(s(t),v({},n,e),t),!1):!0})}):(o.each(y,function(e){h(f.get(e.id))}),y=o.grep(y,function(e){return!f.get(e.id)}),void g(y,function(e){r(n,e)?i("Could not initialize inline editor on invalid inline target element",e):a(s(e),n,e)}))}var f=this,b,C;C=o.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var x=function(e){b=e};return f.settings=n,p.bind(window,"ready",d),new a(function(e){b?e(b):x=function(t){e(t)}})},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),d(n,!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),b||(b=function(){t.fire("BeforeUnload")},p.bind(window,"beforeunload",b)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void g(p.select(e),function(e){i=r[e.id],i&&t.remove(i)})):(i=e,r[i.id]?(f(i)&&t.fire("RemoveEditor",{editor:i}),r.length||p.unbind(window,"beforeunload",b),i.remove(),d(r,r.length>0),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){g(this.editors,function(e){e.save()})},addI18n:function(e,t){l.add(e,t)},translate:function(e){return l.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!=e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},v(C,s),C.setup(),window.tinymce=window.tinyMCE=C,C}),r(ot,[it,m],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(n,r){"html4"===t.settings.schema&&e(r,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(at,[ue,m],function(e,t){var n={send:function(e){function r(){!e.async||4==i.readyState||o++>1e4?(e.success&&1e4>o&&200==i.status?e.success.call(e.success_scope,""+i.responseText,i,e):e.error&&e.error.call(e.error_scope,o>1e4?"TIMED_OUT":"GENERAL",i,e),i=null):setTimeout(r,10)}var i,o=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async!==!1,e.data=e.data||"",n.fire("beforeInitialize",{settings:e}),i=new XMLHttpRequest){if(i.overrideMimeType&&i.overrideMimeType(e.content_type),i.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(i.withCredentials=!0),e.content_type&&i.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&t.each(e.requestheaders,function(e){i.setRequestHeader(e.key,e.value)}),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i=n.fire("beforeSend",{xhr:i,settings:e}).xhr,i.send(e.data),!e.async)return r();setTimeout(r,10)}}};return t.extend(n,e),n}),r(st,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb	t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(lt,[st,at,m],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(ct,[w],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(ut,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(dt,[w,f,N,E,m,d],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(ft,[se,m],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t=this,n=t.settings,r,i,o,a;r=n.firstControlClass,i=n.lastControlClass,e.each(function(e){e.classes.remove(r).remove(i).add(n.controlClass),e.visible()&&(o||(o=e),a=e)}),o&&o.classes.add(r),a&&a.classes.add(i)},renderHtml:function(e){var t=this,n="";return t.applyClasses(e.items()),e.items().each(function(e){n+=e.renderHtml()}),n},recalc:function(){},postRender:function(){},isNative:function(){return!1}})}),r(ht,[ft],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(pt,[De],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t._super(e),e=t.settings,n=t.settings.size,t.on("click mousedown",function(e){e.preventDefault()}),t.on("touchstart",function(e){t.fire("click",e),e.preventDefault()}),e.subtype&&t.classes.add(e.subtype),n&&t.classes.add("btn-"+n),e.icon&&t.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e=this.getEl().firstChild,t;e&&(t=e.style,t.width=t.height="100%"),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("icon"),i,o=e.state.get("text"),a="";return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",o&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(o)+"</span>"),r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+a+"</button></div>"},bindStates:function(){function e(e){var i=n("span."+r,t.getEl());e?(i[0]||(n("button:first",t.getEl()).append('<span class="'+r+'"></span>'),i=n("span."+r,t.getEl())),i.html(t.encode(e))):i.remove(),t.classes.toggle("btn-has-text",!!e)}var t=this,n=t.$,r=t.classPrefix+"txt";return t.state.on("change:text",function(t){e(t.value)}),t.state.on("change:icon",function(n){var r=n.value,i=t.classPrefix;t.settings.icon=r,r=r?i+"ico "+i+"i-"+t.settings.icon:"";var o=t.getEl().firstChild,a=o.getElementsByTagName("i")[0];r?(a&&a==o.firstChild||(a=document.createElement("i"),o.insertBefore(a,o.firstChild)),a.className=r):a&&o.removeChild(a),e(t.state.get("text"))}),t._super()}})}),r(mt,[xe],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(gt,[De],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e.state.get("text"))+"</span></div>"},bindStates:function(){function e(e){t.classes.toggle("checked",e),t.aria("checked",e)}var t=this;return t.state.on("change:text",function(e){t.getEl("al").firstChild.data=t.translate(e.value)}),t.state.on("change:checked change:value",function(n){t.fire("change"),e(n.value)}),t.state.on("change:icon",function(e){var n=e.value,r=t.classPrefix;if("undefined"==typeof n)return t.settings.icon;t.settings.icon=n,n=n?r+"ico "+r+"i-"+t.settings.icon:"";var i=t.getEl().firstChild,o=i.getElementsByTagName("i")[0];n?(o&&o==i.firstChild||(o=document.createElement("i"),i.insertBefore(o,i.firstChild)),o.className=n):o&&i.removeChild(o)}),t.state.get("checked")&&e(!0),t._super()}})}),r(vt,[De,be,pe,g],function(e,t,n,r){return e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.classes.add("combobox"),t.subinput=!0,t.ariaTarget="inp",e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){var i=n.target,o=t.getEl();if(r.contains(o,i)||i==o)for(;i&&i!=o;)i.id&&-1!=i.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),i=i.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){var r=t.state.get("value"),i=t.getEl("inp").value;return e.preventDefault(),t.state.set("value",i),r!=i&&t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),t.on("keyup",function(e){"INPUT"==e.target.nodeName&&t.state.set("value",e.target.value)})},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),i=e.getEl("open"),o=e.layoutRect(),a,s;a=i?o.w-n.getSize(i).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documentMode<=8)&&(s=e.layoutRect().h-2+"px"),r(t.firstChild).css({width:a,lineHeight:s}),e._super(),e},postRender:function(){var e=this;return r(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=e.state.get("value")||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e.state.get("text"),(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.classes.add("has-open")),'<div id="'+t+'" class="'+e.classes+'"><input id="'+t+'-inp" class="'+r+'textbox" value="'+e.encode(i,!1)+'" hidefocus="1"'+l+' placeholder="'+e.encode(n.placeholder)+'" />'+s+"</div>"},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl("inp").value!=t.value&&(e.getEl("inp").value=t.value)}),e.state.on("change:disabled",function(t){e.getEl("inp").disabled=t.value}),e._super()},remove:function(){r(this.getEl("inp")).off(),this._super()}})}),r(yt,[vt],function(e){return e.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl().getElementsByTagName("i")[0];if(t)try{t.style.background=e}catch(n){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}})}),r(bt,[pt,ke],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),r(Ct,[bt,w],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("text"),i=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"",a="";return r&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(r)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(i?'<i class="'+i+'"'+o+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+a+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(xt,[],function(){function e(e){function i(e,i,o){var a,s,l,c,u,d;return a=0,s=0,l=0,e/=255,i/=255,o/=255,u=t(e,t(i,o)),d=n(e,n(i,o)),u==d?(l=u,{h:0,s:0,v:100*l}):(c=e==u?i-o:o==u?e-i:o-e,a=e==u?3:o==u?1:5,a=60*(a-c/(d-u)),s=(d-u)/d,l=d,{h:r(a),s:r(100*s),v:r(100*l)})}function o(e,i,o){var a,s,l,c;if(e=(parseInt(e,10)||0)%360,i=parseInt(i,10)/100,o=parseInt(o,10)/100,i=n(0,t(i,1)),o=n(0,t(o,1)),0===i)return void(d=f=h=r(255*o));switch(a=e/60,s=o*i,l=s*(1-Math.abs(a%2-1)),c=o-s,Math.floor(a)){case 0:d=s,f=l,h=0;break;case 1:d=l,f=s,h=0;break;case 2:d=0,f=s,h=l;break;case 3:d=0,f=l,h=s;break;case 4:d=l,f=0,h=s;break;case 5:d=s,f=0,h=l;break;default:d=f=h=0}d=r(255*(d+c)),f=r(255*(f+c)),h=r(255*(h+c))}function a(){function e(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+e(d)+e(f)+e(h)}function s(){return{r:d,g:f,b:h}}function l(){return i(d,f,h)}function c(e){var t;return"object"==typeof e?"r"in e?(d=e.r,f=e.g,h=e.b):"v"in e&&o(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(d=parseInt(t[1],10),f=parseInt(t[2],10),h=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(d=parseInt(t[1],16),f=parseInt(t[2],16),h=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(d=parseInt(t[1]+t[1],16),f=parseInt(t[2]+t[2],16),h=parseInt(t[3]+t[3],16)),d=0>d?0:d>255?255:d,f=0>f?0:f>255?255:f,h=0>h?0:h>255?255:h,u}var u=this,d=0,f=0,h=0;e&&c(e),u.toRgb=s,u.toHsv=l,u.toHex=a,u.parse=c}var t=Math.min,n=Math.max,r=Math.round;return e}),r(wt,[De,we,pe,xt],function(e,t,n,r){return e.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){function e(e,t){var r=n.getPos(e),i,o;return i=t.pageX-r.x,o=t.pageY-r.y,i=Math.max(0,Math.min(i/e.clientWidth,1)),o=Math.max(0,Math.min(o/e.clientHeight,1)),{x:i,y:o}}function i(e,t){var i=(360-e.h)/360;n.css(d,{top:100*i+"%"}),t||n.css(h,{left:e.s+"%",top:100-e.v+"%"}),f.style.background=new r({s:100,v:100,h:e.h}).toHex(),s.color().parse({s:e.s,v:e.v,h:e.h})}function o(t){var n;n=e(f,t),c.s=100*n.x,c.v=100*(1-n.y),i(c),s.fire("change")}function a(t){var n;n=e(u,t),c=l.toHsv(),c.h=360*(1-n.y),i(c,!0),s.fire("change")}var s=this,l=s.color(),c,u,d,f,h;u=s.getEl("h"),d=s.getEl("hp"),f=s.getEl("sv"),h=s.getEl("svp"),s._repaint=function(){c=l.toHsv(),i(c)},s._super(),s._svdraghelper=new t(s._id+"-sv",{start:o,drag:o}),s._hdraghelper=new t(s._id+"-h",{start:a,drag:a}),s._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){var t=this;return arguments.length?(t.color().parse(e),void(t._rendered&&t._repaint())):t.color().toHex()},color:function(){return this._color||(this._color=new r),this._color},renderHtml:function(){function e(){var e,t,n="",i,a;for(i="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",a=o.split(","),e=0,t=a.length-1;t>e;e++)n+='<div class="'+r+'colorpicker-h-chunk" style="height:'+100/t+"%;"+i+a[e]+",endColorstr="+a[e+1]+");-ms-"+i+a[e]+",endColorstr="+a[e+1]+')"></div>';return n}var t=this,n=t._id,r=t.classPrefix,i,o="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",a="background: -ms-linear-gradient(top,"+o+");background: linear-gradient(to bottom,"+o+");";return i='<div id="'+n+'-h" class="'+r+'colorpicker-h" style="'+a+'">'+e()+'<div id="'+n+'-hp" class="'+r+'colorpicker-h-marker"></div></div>','<div id="'+n+'" class="'+t.classes+'"><div id="'+n+'-sv" class="'+r+'colorpicker-sv"><div class="'+r+'colorpicker-overlay1"><div class="'+r+'colorpicker-overlay2"><div id="'+n+'-svp" class="'+r+'colorpicker-selector1"><div class="'+r+'colorpicker-selector2"></div></div></div></div></div>'+i+"</div>"}})}),r(Nt,[De],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.classes.add("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.row()[n],index:n})}),t.row(t.settings.row)},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes+'">'+e._getDataPathHtml(e.state.get("row"))+"</div>"},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(e){var t=this,n=e||[],r,i,o="",a=t.classPrefix;for(r=0,i=n.length;i>r;r++)o+=(r>0?'<div class="'+a+'divider" aria-hidden="true"> '+t.settings.delimiter+" </div>":"")+'<div role="button" class="'+a+"path-item"+(r==i-1?" "+a+"last":"")+'" data-index="'+r+'" tabindex="-1" id="'+t._id+"-"+r+'" aria-level="'+r+'">'+n[r].name+"</div>";return o||(o='<div class="'+a+'path-item">\xa0</div>'),o}})}),r(Et,[Nt],function(e){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var t=this,n=t.settings.editor;return n.settings.elementpath!==!1&&(t.on("select",function(e){n.focus(),n.selection.select(this.row()[e.index].element),n.nodeChanged()}),n.on("nodeChange",function(r){for(var i=[],o=r.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=n.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});if(s.isDefaultPrevented()||i.push({name:s.name,element:o[a]}),s.isPropagationStopped())break}t.row(i)})),t._super()}})}),r(_t,[xe],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(St,[xe,_t,m],function(e,t,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,r=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),r.each(function(r){var i,o=r.settings.label;o&&(i=new t(n.extend({items:{type:"label",id:r._id+"-l",text:o,flex:0,forId:r._id,disabled:r.disabled()}},e.settings.formItemDefaults)),i.type="formitem",r.aria("labelledby",r._id+"-l"),"undefined"==typeof r.settings.flex&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.fromJSON(e.settings.data)},bindStates:function(){function e(){var e=0,n=[],r,i,o;if(t.settings.labelGapCalc!==!1)for(o="children"==t.settings.labelGapCalc?t.find("formitem"):t.items(),o.filter("formitem").each(function(t){var r=t.items()[0],i=r.getEl().clientWidth;e=i>e?i:e,n.push(r)}),i=t.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=e+i}var t=this;t._super(),t.on("show",e),e()}})}),r(kt,[St],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(Tt,[vt,m],function(e,t){return e.extend({init:function(e){var n=this,r=tinymce.activeEditor,i=r.settings,o,a,s;e.spellcheck=!1,s=i.file_picker_types||i.file_browser_callback_types,s&&(s=t.makeMap(s,/[, ]/)),s&&!s[e.filetype]||(a=i.file_picker_callback,!a||s&&!s[e.filetype]?(a=i.file_browser_callback,!a||s&&!s[e.filetype]||(o=function(){a(n.getEl("inp").id,n.value(),e.filetype,window)})):o=function(){var i=n.fire("beforecall").meta;i=t.extend({filetype:e.filetype},i),a.call(r,function(e,t){n.value(e).fire("change",{meta:t})},n.value(),i)}),o&&(e.icon="browse",e.onaction=o),n._super(e)}})}),r(Rt,[ht],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(At,[ht],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v=[],y,b,C,x,w,N,E,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F,z=Math.max,U=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e.paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,"row-reversed"!=f&&"column-reverse"!=f||(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",E="h",_="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",O="left",M="w",D="x",L="innerW",
+P="minW",H="right",I="deltaW",F="contentW"):(S="x",E="w",_="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",O="top",M="h",D="y",L="innerH",P="minH",H="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],N=u=0,t=0,n=r.length;n>t;t++)h=r[t],p=h.layoutRect(),m=h.settings,g=m.flex,d-=n-1>t?c:0,g>0&&(u+=g,p[k]&&v.push(h),p.flex=g),d-=p[_],y=o[O]+p[P]+o[H],y>N&&(N=y);if(x={},0>d?x[_]=i[_]-d+i[A]:x[_]=i[R]-d+i[A],x[P]=N+i[I],x[B]=i[R]-d,x[F]=N,x.minW=U(x.minW,i.maxW),x.minH=U(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)h=v[t],p=h.layoutRect(),b=p[k],y=p[_]+p.flex*C,y>b?(d-=p[k]-p[_],u-=p.flex,p.flex=0,p.maxFlexSize=b):p.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[D]=o[O],t=0,n=r.length;n>t;t++)h=r[t],p=h.layoutRect(),y=p.maxFlexSize||p[_],"center"===s?x[D]=Math.round(i[L]/2-p[M]/2):"stretch"===s?(x[M]=z(p[P]||0,i[L]-o[O]-o[H]),x[D]=o[O]):"end"===s&&(x[D]=i[L]-p[M]-o.top),p.flex>0&&(y+=p.flex*C),x[E]=y,x[S]=w,h.layoutRect(x),h.recalc&&h.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var W=e.parent();W&&(W._lastRect=null,W.recalc())}}})}),r(Bt,[ft],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNative:function(){return!0}})}),r(Dt,[ye,De,ke,m,w,it,d],function(e,t,n,r,i,o,a){function s(e){e.settings.ui_container&&(a.container=i.DOM.select(e.settings.ui_container)[0])}function l(t){t.on("ScriptsLoaded",function(){t.rtl&&(e.rtl=!0)})}function c(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;u(i.parents,function(e){return u(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function r(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function i(){function t(e){var n=[];if(e)return u(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a,o.cmd=e.cmd}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){u(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?e.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var t=this;t.parent().on("show",function(){var n,r;n=t.settings.format,n&&(t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))),r=t.settings.cmd,r&&t.active(e.queryCommandState(r))})},onclick:function(){this.settings.format&&l(this.settings.format),this.settings.cmd&&e.execCommand(this.settings.cmd)}}}}function o(t){return function(){var n=this;e.formatter?e.formatter.formatChanged(t,function(e){n.active(e)}):e.on("init",function(){e.formatter.formatChanged(t,function(e){n.active(e)})})}}function a(t){return function(){function n(){return e.undoManager?e.undoManager[t]():!1}var r=this;t="redo"==t?"hasRedo":"hasUndo",r.disabled(!n()),e.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){r.disabled(e.readonly||!n())})}}function s(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function l(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var c;c=i(),u({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:o(n),onclick:function(){l(n)}})}),u({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),u({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:o(n)})}),e.addButton("undo",{tooltip:"Undo",onPostRender:a("undo"),cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:a("redo"),cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:a("undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:a("redo"),cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:s,cmd:"mceToggleVisualAid"}),e.addButton("remove",{tooltip:"Remove",icon:"remove",cmd:"Delete"}),u({cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"],bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:c}),e.addButton("formatselect",function(){var n=[],i=r(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");return u(i,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:i[0][0],values:n,fixedWidth:!0,onselect:l,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",i=[],o=r(e.settings.font_formats||n);return u(o,function(e){i.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:t(i,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return u(i.split(" "),function(e){var t=e,r=e,i=e.split("=");i.length>1&&(t=i[0],r=i[1]),n.push({text:t,value:r})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:c})}var u=r.each;o.on("AddEditor",function(e){var t=e.editor;l(t),c(t),s(t)}),e.translate=function(e){return o.translate(e)},t.tooltips=!a.iOS}),r(Lt,[ht],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,h,p,m,g,v,y,b,C,x,w,N,E=[],_=[],S,k,T,R,A,B;t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e.paddingBox,A="reverseRows"in t?t.reverseRows:e.isRtl(),C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]);for(d=0;r>d;d++)E.push(0);for(f=0;n>f;f++)_.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),S=c.minW,k=c.minH,E[d]=S>E[d]?S:E[d],_[f]=k>_[f]?k:_[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=E[d]+(d>0?y:0),T-=(d>0?y:0)+E[d];for(R=o.innerH-g.top-g.bottom,N=0,f=0;n>f;f++)N+=_[f]+(f>0?b:0),R-=(f>0?b:0)+_[f];if(w+=g.left+g.right,N+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=N+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:R>0?Math.floor(R/n):0;var L=0,M=t.flexWidths;if(M)for(d=0;d<M.length;d++)L+=M[d];else L=r;var P=T/L;for(d=0;r>d;d++)E[d]+=M?M[d]*P:P;for(p=g.top,f=0;n>f;f++){for(h=g.left,s=_[f]+D,d=0;r>d&&(B=A?f*r+r-1-d:f*r+d,u=i[B],u);d++)m=u.settings,c=u.layoutRect(),a=Math.max(E[d],c.startMinWidth),c.x=h,c.y=p,v=m.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=h+a/2-c.w/2:"right"==v?c.x=h+a-c.w:"stretch"==v&&(c.w=a),v=m.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=p+s/2-c.h/2:"bottom"==v?c.y=p+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),h+=a+y,u.recalc&&u.recalc();p+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var O=e.parent();O&&(O._lastRect=null,O.recalc())}}})}),r(Mt,[De,u],function(e,t){return e.extend({renderHtml:function(){var e=this;return e.classes.add("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,n){var r=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,n&&n()):t.setTimeout(function(){r.html(e)}),this}})}),r(Pt,[De],function(e){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("infobox"),t.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+e.encode(e.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+t+"ico "+t+'i-help"></i></button></div></div>'},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e.state.on("change:help",function(t){e.classes.toggle("has-help",t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}})}),r(Ot,[De,pe],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("label"),t.canFocus=!1,e.multiline&&t.classes.add("autoscroll"),e.strong&&t.classes.add("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.classes.add("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e=this,t,n,r=e.settings.forId;return!r&&(n=e.settings.forName)&&(t=e.getRoot().find("#"+n)[0],t&&(r=t._id)),r?'<label id="'+e._id+'" class="'+e.classes+'"'+(r?' for="'+r+'"':"")+">"+e.encode(e.state.get("text"))+"</label>":'<span id="'+e._id+'" class="'+e.classes+'">'+e.encode(e.state.get("text"))+"</span>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.innerHtml(e.encode(t.value)),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}})}),r(Ht,[xe],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.classes.add("toolbar")},postRender:function(){var e=this;return e.items().each(function(e){e.classes.add("toolbar-item")}),e._super()}})}),r(It,[Ht],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(Ft,[pt,be,It],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),e=t.settings,t.classes.add("menubtn"),e.fixedWidth&&t.classes.add("fixed-width"),t.aria("haspopup",!0),t.state.set("menu",e.menu||t.render())},showMenu:function(){var e=this,n;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(n=e.state.get("menu")||[],n.length?n={type:"menu",items:n}:n.type=n.type||"menu",n.renderTo?e.menu=n.parent(e).show().renderTo():e.menu=t.create(n).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.classes.toggle("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon,o,a=e.state.get("text"),s="";return o=e.settings.image,o?(i="none","string"!=typeof o&&(o=window.getSelection?o[0]:o[1]),o=" style=\"background-image: url('"+o+"')\""):o="",a&&(e.classes.add("btn-has-text"),s='<span class="'+r+'txt">'+e.encode(a)+"</span>"),i=e.settings.icon?r+"ico "+r+"i-"+i:"",e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"'+o+"></i>":"")+s+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},bindStates:function(){var e=this;return e.state.on("change:menu",function(){e.menu&&e.menu.remove(),e.menu=null}),e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(zt,[De,be,d,u],function(e,t,n,r){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this,n;t._super(e),e=t.settings,t.classes.add("menu-item"),e.menu&&t.classes.add("menu-item-expand"),e.preview&&t.classes.add("menu-item-preview"),n=t.state.get("text"),"-"!==n&&"|"!==n||(t.classes.add("menu-item-sep"),t.aria("role","separator"),t.state.set("text","-")),e.selectable&&(t.aria("role","menuitemcheckbox"),t.classes.add("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.classes.add("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("show hide",function(e){e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),r.on("hide",function(t){t.control===r&&e.classes.remove("selected")}),r.submenu=!0),r._parentMenu=i,r.classes.add("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.classes.remove(r._lastRel).add(o),r._lastRel=o,e.classes.add("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){function e(e){var t,r,i={};for(i=n.mac?{alt:"&#x2325;",ctrl:"&#x2318;",shift:"&#x21E7;",meta:"&#x2318;"}:{meta:"Ctrl"},e=e.split("+"),t=0;t<e.length;t++)r=i[e[t].toLowerCase()],r&&(e[t]=r);return e.join("+")}var t=this,r=t._id,i=t.settings,o=t.classPrefix,a=t.encode(t.state.get("text")),s=t.settings.icon,l="",c=i.shortcut;return s&&t.parent().classes.add("menu-has-icons"),i.image&&(l=" style=\"background-image: url('"+i.image+"')\""),c&&(c=e(c)),s=o+"ico "+o+"i-"+(t.settings.icon||"none"),'<div id="'+r+'" class="'+t.classes+'" tabindex="-1">'+("-"!==a?'<i class="'+s+'"'+l+"></i>\xa0":"")+("-"!==a?'<span id="'+r+'-text" class="'+o+'text">'+a+"</span>":"")+(c?'<div id="'+r+'-shortcut" class="'+o+'menu-shortcut">'+c+"</div>":"")+(i.menu?'<div class="'+o+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var i=e.getEl("text");i&&i.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),r.requestAnimationFrame(function(){e.parent().hideAll()})))}),e._super(),e},hover:function(){var e=this;return e.parent().items().each(function(e){e.classes.remove("selected")}),e.classes.toggle("selected",!0),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(Ut,[g,ye,u],function(e,t,n){return function(r,i){var o=this,a,s=t.classPrefix,l;o.show=function(t,c){function u(){a&&(e(r).append('<div class="'+s+"throbber"+(i?" "+s+"throbber-inline":"")+'"></div>'),c&&c())}return o.hide(),a=!0,t?l=n.setTimeout(u,t):u(),o},o.hide=function(){var e=r.lastChild;return n.clearTimeout(l),e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),a=!1,o}}}),r(Wt,[ke,zt,Ut,m],function(e,t,n,r){return e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var n=e.items,i=n.length;i--;)n[i]=r.extend({},e.itemDefaults,n[i]);t._super(e),t.classes.add("menu")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},load:function(){function e(){t.throbber&&(t.throbber.hide(),t.throbber=null)}var t=this,r,i;i=t.settings.itemsFactory,i&&(t.throbber||(t.throbber=new n(t.getEl("body"),!0),0===t.items().length?(t.throbber.show(),t.fire("loading")):t.throbber.show(100,function(){t.items().remove(),t.fire("loading")}),t.on("hide close",e)),t.requestTime=r=(new Date).getTime(),t.settings.itemsFactory(function(n){return 0===n.length?void t.hide():void(t.requestTime===r&&(t.getEl().style.width="",t.getEl("body").style.width="",e(),t.items().remove(),t.getEl("body").innerHTML="",t.add(n),t.renderNew(),t.fire("loaded")))}))},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.image||n.selectable?(e._hasIcons=!0,!1):void 0}),e.settings.itemsFactory&&e.on("postrender",function(){e.settings.itemsFactory&&e.load()}),e._super()}})}),r(Vt,[Ft,Wt],function(e,t){return e.extend({init:function(e){function t(r){for(var a=0;a<r.length;a++){if(i=r[a].selected||e.value===r[a].value)return o=o||r[a].text,n.state.set("value",r[a].value),!0;if(r[a].menu&&t(r[a].menu))return!0}}var n=this,r,i,o,a;n._super(e),e=n.settings,n._values=r=e.values,r&&("undefined"!=typeof e.value&&t(r),!i&&r.length>0&&(o=r[0].text,n.state.set("value",r[0].value)),n.state.set("menu",r)),n.state.set("text",e.text||o),n.classes.add("listbox"),n.on("select",function(t){var r=t.control;a&&(t.lastControl=a),e.multiple?r.active(!r.active()):n.value(t.control.value()),a=r})},bindStates:function(){function e(e,n){e instanceof t&&e.items().each(function(e){e.hasMenus()||e.active(e.value()===n)})}function n(e,t){var r;if(e)for(var i=0;i<e.length;i++){if(e[i].value===t)return e[i];if(e[i].menu&&(r=n(e[i].menu,t)))return r}}var r=this;return r.on("show",function(t){e(t.control,r.value())}),r.state.on("change:value",function(e){var t=n(r.state.get("menu"),e.value);t?r.text(t.text):r.text(r.settings.text)}),r._super()}})}),r($t,[gt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(qt,[De,we],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.classes.add("resizehandle"),"both"==e.settings.direction&&e.classes.add("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(jt,[De],function(e){function t(e){var t="";if(e)for(var n=0;n<e.length;n++)t+='<option value="'+e[n]+'">'+e[n]+"</option>";return t}return e.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var t=this;t._super(e),t.settings.size&&(t.size=t.settings.size),t.settings.options&&(t._options=t.settings.options),t.on("keydown",function(e){var n;13==e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){return e.toJSON?(n=e,!1):void 0}),t.fire("submit",{data:n.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e=this,n,r="";return n=t(e._options),e.size&&(r=' size = "'+e.size+'"'),'<select id="'+e._id+'" class="'+e.classes+'"'+r+">"+n+"</select>"},bindStates:function(){var e=this;return e.state.on("change:options",function(n){e.getEl().innerHTML=t(n.value)}),e._super()}})}),r(Yt,[De,we,pe],function(e,t,n){function r(e,t,n){return t>e&&(e=t),e>n&&(e=n),e}function i(e,t,n){e.setAttribute("aria-"+t,n)}function o(e,t){var r,o,a,s,l,c;"v"==e.settings.orientation?(s="top",a="height",o="h"):(s="left",a="width",o="w"),c=e.getEl("handle"),r=(e.layoutRect()[o]||100)-n.getSize(c)[a],l=r*((t-e._minValue)/(e._maxValue-e._minValue))+"px",c.style[s]=l,c.style.height=e.layoutRect().h+"px",i(c,"valuenow",t),i(c,"valuetext",""+e.settings.previewFilter(t)),i(c,"valuemin",e._minValue),i(c,"valuemax",e._maxValue)}return e.extend({init:function(e){var t=this;e.previewFilter||(e.previewFilter=function(e){return Math.round(100*e)/100}),t._super(e),t.classes.add("slider"),"v"==e.orientation&&t.classes.add("vertical"),t._minValue=e.minValue||0,t._maxValue=e.maxValue||100,t._initValue=t.state.get("value")},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'"><div id="'+t+'-handle" class="'+n+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){function e(e,t,n){return(n+e)/(t-e)}function i(e,t,n){return n*(t-e)-e}function o(t,n){function o(o){var a;a=s.value(),a=i(t,n,e(t,n,a)+.05*o),a=r(a,t,n),s.value(a),s.fire("dragstart",{value:a}),s.fire("drag",{value:a}),s.fire("dragend",{value:a})}s.on("keydown",function(e){switch(e.keyCode){case 37:case 38:o(-1);break;case 39:case 40:o(1)}})}function a(e,i,o){var a,l,c,p,m;s._dragHelper=new t(s._id,{handle:s._id+"-handle",start:function(e){a=e[u],l=parseInt(s.getEl("handle").style[d],10),c=(s.layoutRect()[h]||100)-n.getSize(o)[f],s.fire("dragstart",{value:m})},drag:function(t){var n=t[u]-a;p=r(l+n,0,c),o.style[d]=p+"px",m=e+p/c*(i-e),s.value(m),s.tooltip().text(""+s.settings.previewFilter(m)).show().moveRel(o,"bc tc"),s.fire("drag",{value:m})},stop:function(){s.tooltip().hide(),s.fire("dragend",{value:m})}})}var s=this,l,c,u,d,f,h;l=s._minValue,c=s._maxValue,"v"==s.settings.orientation?(u="screenY",d="top",f="height",h="h"):(u="screenX",d="left",f="width",h="w"),s._super(),o(l,c,s.getEl("handle")),a(l,c,s.getEl("handle"))},repaint:function(){this._super(),o(this,this.value())},bindStates:function(){var e=this;return e.state.on("change:value",function(t){o(e,t.value)}),e._super()}})}),r(Xt,[De],function(e){return e.extend({renderHtml:function(){var e=this;return e.classes.add("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"></div>'}})}),r(Kt,[Ft,pe,g],function(e,t,n){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,r=e.getEl(),i=e.layoutRect(),o,a;return e._super(),o=r.firstChild,a=r.lastChild,n(o).css({width:i.w-t.getSize(a).width,height:i.h-2}),n(a).css({height:i.h-2}),e},activeMenu:function(e){var t=this;n(t.getEl().lastChild).toggleClass(t.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r,i=e.state.get("icon"),o=e.state.get("text"),a="";return r=e.settings.image,r?(i="none","string"!=typeof r&&(r=window.getSelection?r[0]:r[1]),r=" style=\"background-image: url('"+r+"')\""):r="",i=e.settings.icon?n+"ico "+n+"i-"+i:"",o&&(e.classes.add("btn-has-text"),a='<span class="'+n+'txt">'+e.encode(o)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(i?'<i class="'+i+'"'+r+"></i>":"")+a+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1">'+(e._menuBtnText?(i?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void(t&&t.call(this,e));n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(Gt,[Bt],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}})}),r(Jt,[Ee,g,pe],function(e,t,n){return e.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t(n).removeClass(this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t(n).addClass(this.classPrefix+"active"),this.items()[e].show().fire("showtab"),this.reflow(),this.items().each(function(t,n){e!=n&&t.hide()})},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,t,r,i;r=n.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(e){r=Math.max(r,e.layoutRect().minW),i=Math.max(i,e.layoutRect().minH)}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=n.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,t=e._super(),t.deltaH+=o,t.innerH=t.h-t.deltaH,t}})}),r(Qt,[De,m,pe],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("textbox"),e.multiline?t.classes.add("multiline"):(t.on("keydown",function(e){var n;13==e.keyCode&&(e.preventDefault(),t.parents().reverse().each(function(e){return e.toJSON?(n=e,!1):void 0}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){t.state.set("value",e.target.value)}))},repaint:function(){var e=this,t,n,r,i,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e.borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,r=e.settings,i,o;return i={id:e._id,hidefocus:"1"},t.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(e){i[e]=r[e]}),e.disabled()&&(i.disabled="disabled"),r.subtype&&(i.type=r.subtype),o=n.create(r.multiline?"textarea":"input",i),o.value=e.state.get("value"),o.className=e.classes,o.outerHTML},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var e=this;e.getEl().value=e.state.get("value"),e._super(),e.$el.on("change",function(t){
+e.state.set("value",t.target.value),e.fire("change",t)})},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl().value!=t.value&&(e.getEl().value=t.value)}),e.state.on("change:disabled",function(t){e.getEl().disabled=t.value}),e._super()},remove:function(){this.$el.off(),this._super()}})}),r(Zt,[],function(){var e=this||window,t=function(){return e.tinymce};return"function"==typeof e.define&&(e.define.amd||e.define("ephox/tinymce",[],t)),{}}),a([l,c,u,d,f,h,m,g,v,y,C,w,N,E,T,A,B,D,L,M,P,O,I,F,j,Y,J,Q,oe,ae,se,le,ue,fe,he,ve,ye,be,Ce,xe,we,Ne,Ee,_e,Se,ke,Te,Re,Ae,Be,De,Le,Me,Pe,Ie,ze,tt,nt,rt,it,at,st,lt,ct,ut,dt,ft,ht,pt,mt,gt,vt,yt,bt,Ct,xt,wt,Nt,Et,_t,St,kt,Tt,Rt,At,Bt,Dt,Lt,Mt,Pt,Ot,Ht,It,Ft,zt,Ut,Wt,Vt,$t,qt,jt,Yt,Xt,Kt,Gt,Jt,Qt])}(this);
\ No newline at end of file
diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz
index 20d22c43dc4fe82a5715d371d80b7c78190785c5..4d5ca926beeeee8d56b508b394d9709a65f4d206 100644
GIT binary patch
literal 171848
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
Hl$`+p{>~7V

literal 170397
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
IxWvu?0P~iH-2eap

diff --git a/wp-includes/js/twemoji.js b/wp-includes/js/twemoji.js
index b268d7e49..9033d7f65 100644
--- a/wp-includes/js/twemoji.js
+++ b/wp-includes/js/twemoji.js
@@ -225,7 +225,7 @@ var twemoji = (function (
 
     // RegExp based on emoji's official Unicode standards
     // http://www.unicode.org/Public/UNIDATA/EmojiSources.txt
-    re = /\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|(?:[\u0023\u002a\u0030-\u0039])\ufe0f?\u20e3|(?:(?:\ud83c\udfcb|\ud83d[\udd75\udd90]|[\u261d\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0]|\ud83e[\udd18-\udd1e\udd26\udd30\udd33-\udd39\udd3c-\udd3e]|[\u270a\u270b])(?:\ud83c[\udffb-\udfff]|)|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a-\udc6d\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\udecc\uded0-\uded2\udeeb\udeec\udef4-\udef6]|\ud83e[\udd10-\udd17\udd20-\udd25\udd27\udd3a\udd40-\udd45\udd47-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|[\u23e9-\u23ec\u23f0\u23f3\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a]|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcc-\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd74\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u00a9\u00ae\u203c\u2049\u2122\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2694\u2696\u2697\u2699\u269b\u269c\u26a0\u26a1\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f7\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))/g,
+    re = /\ud83d[\udc68-\udc69](?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92])|(?:\ud83c[\udfcb\udfcc]|\ud83d\udd75|\u26f9)(?:\ufe0f|\ud83c[\udffb-\udfff])\u200d[\u2640\u2642]\ufe0f|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd37-\udd39\udd3d\udd3e])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|(?:[\u0023\u002a\u0030-\u0039])\ufe0f?\u20e3|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd18-\udd1c\udd1e\udd26\udd30\udd33-\udd39\udd3d\udd3e]|[\u270a\u270b])(?:\ud83c[\udffb-\udfff]|)|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud800\udc00|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a-\udc6d\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\udeeb\udeec\udef4-\udef6]|\ud83e[\udd10-\udd17\udd1d\udd20-\udd25\udd27\udd3a\udd3c\udd40-\udd45\udd47-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|[\u23e9-\u23ec\u23f0\u23f3\u2640\u2642\u2695\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a]|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u00a9\u00ae\u203c\u2049\u2122\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2694\u2696\u2697\u2699\u269b\u269c\u26a0\u26a1\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))/g,
 
     // avoid runtime RegExp creation for not so smart,
     // not JIT based, and old browsers / engines
diff --git a/wp-includes/js/twemoji.min.js b/wp-includes/js/twemoji.min.js
index 78c0f6a67..5fe4fe5e4 100644
--- a/wp-includes/js/twemoji.min.js
+++ b/wp-includes/js/twemoji.min.js
@@ -1 +1 @@
-var twemoji=function(){"use strict";function a(a){return document.createTextNode(a)}function b(a){return a.replace(u,h)}function c(a,b){return"".concat(b.base,b.size,"/",a,b.ext)}function d(a,b){for(var c,e,f=a.childNodes,g=f.length;g--;)c=f[g],e=c.nodeType,3===e?b.push(c):1!==e||v.test(c.nodeName)||d(c,b);return b}function e(a){return o(a.indexOf(t)<0?a.replace(s,""):a)}function f(b,c){for(var f,g,h,i,j,k,l,m,n,o,p,q,s,t=d(b,[]),u=t.length;u--;){for(h=!1,i=document.createDocumentFragment(),j=t[u],k=j.nodeValue,m=0;l=r.exec(k);){if(n=l.index,n!==m&&i.appendChild(a(k.slice(m,n))),p=l[0],q=e(p),m=n+p.length,s=c.callback(q,c)){o=new Image,o.onerror=c.onerror,o.setAttribute("draggable","false"),f=c.attributes(p,q);for(g in f)f.hasOwnProperty(g)&&0!==g.indexOf("on")&&!o.hasAttribute(g)&&o.setAttribute(g,f[g]);o.className=c.className,o.alt=p,o.src=s,h=!0,i.appendChild(o)}o||i.appendChild(a(p)),o=null}h&&(m<k.length&&i.appendChild(a(k.slice(m))),j.parentNode.replaceChild(i,j))}return b}function g(a,c){return m(a,function(a){var d,f,g=a,h=e(a),i=c.callback(h,c);if(i){g="<img ".concat('class="',c.className,'" ','draggable="false" ','alt="',a,'"',' src="',i,'"'),d=c.attributes(a,h);for(f in d)d.hasOwnProperty(f)&&0!==f.indexOf("on")&&g.indexOf(" "+f+"=")===-1&&(g=g.concat(" ",f,'="',b(d[f]),'"'));g=g.concat(">")}return g})}function h(a){return q[a]}function i(){return null}function j(a){return"number"==typeof a?a+"x"+a:a}function k(a){var b="string"==typeof a?parseInt(a,16):a;return b<65536?w(b):(b-=65536,w(55296+(b>>10),56320+(1023&b)))}function l(a,b){return b&&"function"!=typeof b||(b={callback:b}),("string"==typeof a?g:f)(a,{callback:b.callback||c,attributes:"function"==typeof b.attributes?b.attributes:i,base:"string"==typeof b.base?b.base:p.base,ext:b.ext||p.ext,size:b.folder||j(b.size||p.size),className:b.className||p.className,onerror:b.onerror||p.onerror})}function m(a,b){return String(a).replace(r,b)}function n(a){r.lastIndex=0;var b=r.test(a);return r.lastIndex=0,b}function o(a,b){for(var c=[],d=0,e=0,f=0;f<a.length;)d=a.charCodeAt(f++),e?(c.push((65536+(e-55296<<10)+(d-56320)).toString(16)),e=0):55296<=d&&d<=56319?e=d:c.push(d.toString(16));return c.join(b||"-")}var p={base:"https://twemoji.maxcdn.com/2/",ext:".png",size:"72x72",className:"emoji",convert:{fromCodePoint:k,toCodePoint:o},onerror:function(){this.parentNode&&this.parentNode.replaceChild(a(this.alt),this)},parse:l,replace:m,test:n},q={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},r=/\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|(?:[\u0023\u002a\u0030-\u0039])\ufe0f?\u20e3|(?:(?:\ud83c\udfcb|\ud83d[\udd75\udd90]|[\u261d\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0]|\ud83e[\udd18-\udd1e\udd26\udd30\udd33-\udd39\udd3c-\udd3e]|[\u270a\u270b])(?:\ud83c[\udffb-\udfff]|)|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a-\udc6d\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\udecc\uded0-\uded2\udeeb\udeec\udef4-\udef6]|\ud83e[\udd10-\udd17\udd20-\udd25\udd27\udd3a\udd40-\udd45\udd47-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|[\u23e9-\u23ec\u23f0\u23f3\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a]|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcc-\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd74\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u00a9\u00ae\u203c\u2049\u2122\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2694\u2696\u2697\u2699\u269b\u269c\u26a0\u26a1\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f7\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))/g,s=/\uFE0F/g,t=String.fromCharCode(8205),u=/[&<>'"]/g,v=/IFRAME|NOFRAMES|NOSCRIPT|SCRIPT|SELECT|STYLE|TEXTAREA|[a-z]/,w=String.fromCharCode;return p}();
\ No newline at end of file
+var twemoji=function(){"use strict";function a(a){return document.createTextNode(a)}function b(a){return a.replace(u,h)}function c(a,b){return"".concat(b.base,b.size,"/",a,b.ext)}function d(a,b){for(var c,e,f=a.childNodes,g=f.length;g--;)c=f[g],e=c.nodeType,3===e?b.push(c):1!==e||v.test(c.nodeName)||d(c,b);return b}function e(a){return o(a.indexOf(t)<0?a.replace(s,""):a)}function f(b,c){for(var f,g,h,i,j,k,l,m,n,o,p,q,s,t=d(b,[]),u=t.length;u--;){for(h=!1,i=document.createDocumentFragment(),j=t[u],k=j.nodeValue,m=0;l=r.exec(k);){if(n=l.index,n!==m&&i.appendChild(a(k.slice(m,n))),p=l[0],q=e(p),m=n+p.length,s=c.callback(q,c)){o=new Image,o.onerror=c.onerror,o.setAttribute("draggable","false"),f=c.attributes(p,q);for(g in f)f.hasOwnProperty(g)&&0!==g.indexOf("on")&&!o.hasAttribute(g)&&o.setAttribute(g,f[g]);o.className=c.className,o.alt=p,o.src=s,h=!0,i.appendChild(o)}o||i.appendChild(a(p)),o=null}h&&(m<k.length&&i.appendChild(a(k.slice(m))),j.parentNode.replaceChild(i,j))}return b}function g(a,c){return m(a,function(a){var d,f,g=a,h=e(a),i=c.callback(h,c);if(i){g="<img ".concat('class="',c.className,'" ','draggable="false" ','alt="',a,'"',' src="',i,'"'),d=c.attributes(a,h);for(f in d)d.hasOwnProperty(f)&&0!==f.indexOf("on")&&g.indexOf(" "+f+"=")===-1&&(g=g.concat(" ",f,'="',b(d[f]),'"'));g=g.concat(">")}return g})}function h(a){return q[a]}function i(){return null}function j(a){return"number"==typeof a?a+"x"+a:a}function k(a){var b="string"==typeof a?parseInt(a,16):a;return b<65536?w(b):(b-=65536,w(55296+(b>>10),56320+(1023&b)))}function l(a,b){return b&&"function"!=typeof b||(b={callback:b}),("string"==typeof a?g:f)(a,{callback:b.callback||c,attributes:"function"==typeof b.attributes?b.attributes:i,base:"string"==typeof b.base?b.base:p.base,ext:b.ext||p.ext,size:b.folder||j(b.size||p.size),className:b.className||p.className,onerror:b.onerror||p.onerror})}function m(a,b){return String(a).replace(r,b)}function n(a){r.lastIndex=0;var b=r.test(a);return r.lastIndex=0,b}function o(a,b){for(var c=[],d=0,e=0,f=0;f<a.length;)d=a.charCodeAt(f++),e?(c.push((65536+(e-55296<<10)+(d-56320)).toString(16)),e=0):55296<=d&&d<=56319?e=d:c.push(d.toString(16));return c.join(b||"-")}var p={base:"https://twemoji.maxcdn.com/2/",ext:".png",size:"72x72",className:"emoji",convert:{fromCodePoint:k,toCodePoint:o},onerror:function(){this.parentNode&&this.parentNode.replaceChild(a(this.alt),this)},parse:l,replace:m,test:n},q={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},r=/\ud83d[\udc68-\udc69](?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92])|(?:\ud83c[\udfcb\udfcc]|\ud83d\udd75|\u26f9)(?:\ufe0f|\ud83c[\udffb-\udfff])\u200d[\u2640\u2642]\ufe0f|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd37-\udd39\udd3d\udd3e])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|(?:[\u0023\u002a\u0030-\u0039])\ufe0f?\u20e3|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd18-\udd1c\udd1e\udd26\udd30\udd33-\udd39\udd3d\udd3e]|[\u270a\u270b])(?:\ud83c[\udffb-\udfff]|)|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud800\udc00|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a-\udc6d\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\udeeb\udeec\udef4-\udef6]|\ud83e[\udd10-\udd17\udd1d\udd20-\udd25\udd27\udd3a\udd3c\udd40-\udd45\udd47-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|[\u23e9-\u23ec\u23f0\u23f3\u2640\u2642\u2695\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a]|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u00a9\u00ae\u203c\u2049\u2122\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2694\u2696\u2697\u2699\u269b\u269c\u26a0\u26a1\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))/g,s=/\uFE0F/g,t=String.fromCharCode(8205),u=/[&<>'"]/g,v=/IFRAME|NOFRAMES|NOSCRIPT|SCRIPT|SELECT|STYLE|TEXTAREA|[a-z]/,w=String.fromCharCode;return p}();
\ No newline at end of file
diff --git a/wp-includes/js/utils.js b/wp-includes/js/utils.js
index 60c274620..d8fa7d8d2 100644
--- a/wp-includes/js/utils.js
+++ b/wp-includes/js/utils.js
@@ -110,7 +110,7 @@ var wpCookies = {
 		if ( typeof( expires ) === 'object' && expires.toGMTString ) {
 			expires = expires.toGMTString();
 		} else if ( parseInt( expires, 10 ) ) {
-			d.setTime( d.getTime() + ( parseInt( expires, 10 ) * 1000 ) ); // time must be in miliseconds
+			d.setTime( d.getTime() + ( parseInt( expires, 10 ) * 1000 ) ); // time must be in milliseconds
 			expires = d.toGMTString();
 		} else {
 			expires = '';
diff --git a/wp-includes/js/wp-ajax-response.js b/wp-includes/js/wp-ajax-response.js
index d35632102..50c66525a 100644
--- a/wp-includes/js/wp-ajax-response.js
+++ b/wp-includes/js/wp-ajax-response.js
@@ -56,7 +56,7 @@ var wpAjax = jQuery.extend( {
 		selector = jQuery( selector );
 		return !wpAjax.invalidateForm( selector.find('.form-required').filter( function() { return jQuery('input:visible', this).val() === ''; } ) ).length;
 	}
-}, wpAjax || { noPerm: 'You do not have permission to do that.', broken: 'An unidentified error has occurred.' } );
+}, wpAjax || { noPerm: 'Sorry, you are not allowed to do that.', broken: 'An unidentified error has occurred.' } );
 
 // Basic form validation
 jQuery(document).ready( function($){
diff --git a/wp-includes/js/wp-ajax-response.min.js b/wp-includes/js/wp-ajax-response.min.js
index 51a3503ca..5f1ed6644 100644
--- a/wp-includes/js/wp-ajax-response.min.js
+++ b/wp-includes/js/wp-ajax-response.min.js
@@ -1 +1 @@
-var wpAjax=jQuery.extend({unserialize:function(a){var b,c,d,e,f={};if(!a)return f;b=a.split("?"),b[1]&&(a=b[1]),c=a.split("&");for(d in c)jQuery.isFunction(c.hasOwnProperty)&&!c.hasOwnProperty(d)||(e=c[d].split("="),f[e[0]]=e[1]);return f},parseAjaxResponse:function(a,b,c){var d={},e=jQuery("#"+b).empty(),f="";return a&&"object"==typeof a&&a.getElementsByTagName("wp_ajax")?(d.responses=[],d.errors=!1,jQuery("response",a).each(function(){var b,e=jQuery(this),g=jQuery(this.firstChild);b={action:e.attr("action"),what:g.get(0).nodeName,id:g.attr("id"),oldId:g.attr("old_id"),position:g.attr("position")},b.data=jQuery("response_data",g).text(),b.supplemental={},jQuery("supplemental",g).children().each(function(){b.supplemental[this.nodeName]=jQuery(this).text()}).length||(b.supplemental=!1),b.errors=[],jQuery("wp_error",g).each(function(){var e,g,h,i=jQuery(this).attr("code");e={code:i,message:this.firstChild.nodeValue,data:!1},g=jQuery('wp_error_data[code="'+i+'"]',a),g&&(e.data=g.get()),h=jQuery("form-field",g).text(),h&&(i=h),c&&wpAjax.invalidateForm(jQuery("#"+c+' :input[name="'+i+'"]').parents(".form-field:first")),f+="<p>"+e.message+"</p>",b.errors.push(e),d.errors=!0}).length||(b.errors=!1),d.responses.push(b)}),f.length&&e.html('<div class="error">'+f+"</div>"),d):isNaN(a)?!e.html('<div class="error"><p>'+a+"</p></div>"):(a=parseInt(a,10),-1==a?!e.html('<div class="error"><p>'+wpAjax.noPerm+"</p></div>"):0!==a||!e.html('<div class="error"><p>'+wpAjax.broken+"</p></div>"))},invalidateForm:function(a){return jQuery(a).addClass("form-invalid").find("input").one("change wp-check-valid-field",function(){jQuery(this).closest(".form-invalid").removeClass("form-invalid")})},validateForm:function(a){return a=jQuery(a),!wpAjax.invalidateForm(a.find(".form-required").filter(function(){return""===jQuery("input:visible",this).val()})).length}},wpAjax||{noPerm:"You do not have permission to do that.",broken:"An unidentified error has occurred."});jQuery(document).ready(function(a){a("form.validate").submit(function(){return wpAjax.validateForm(a(this))})});
\ No newline at end of file
+var wpAjax=jQuery.extend({unserialize:function(a){var b,c,d,e,f={};if(!a)return f;b=a.split("?"),b[1]&&(a=b[1]),c=a.split("&");for(d in c)jQuery.isFunction(c.hasOwnProperty)&&!c.hasOwnProperty(d)||(e=c[d].split("="),f[e[0]]=e[1]);return f},parseAjaxResponse:function(a,b,c){var d={},e=jQuery("#"+b).empty(),f="";return a&&"object"==typeof a&&a.getElementsByTagName("wp_ajax")?(d.responses=[],d.errors=!1,jQuery("response",a).each(function(){var b,e=jQuery(this),g=jQuery(this.firstChild);b={action:e.attr("action"),what:g.get(0).nodeName,id:g.attr("id"),oldId:g.attr("old_id"),position:g.attr("position")},b.data=jQuery("response_data",g).text(),b.supplemental={},jQuery("supplemental",g).children().each(function(){b.supplemental[this.nodeName]=jQuery(this).text()}).length||(b.supplemental=!1),b.errors=[],jQuery("wp_error",g).each(function(){var e,g,h,i=jQuery(this).attr("code");e={code:i,message:this.firstChild.nodeValue,data:!1},g=jQuery('wp_error_data[code="'+i+'"]',a),g&&(e.data=g.get()),h=jQuery("form-field",g).text(),h&&(i=h),c&&wpAjax.invalidateForm(jQuery("#"+c+' :input[name="'+i+'"]').parents(".form-field:first")),f+="<p>"+e.message+"</p>",b.errors.push(e),d.errors=!0}).length||(b.errors=!1),d.responses.push(b)}),f.length&&e.html('<div class="error">'+f+"</div>"),d):isNaN(a)?!e.html('<div class="error"><p>'+a+"</p></div>"):(a=parseInt(a,10),-1==a?!e.html('<div class="error"><p>'+wpAjax.noPerm+"</p></div>"):0!==a||!e.html('<div class="error"><p>'+wpAjax.broken+"</p></div>"))},invalidateForm:function(a){return jQuery(a).addClass("form-invalid").find("input").one("change wp-check-valid-field",function(){jQuery(this).closest(".form-invalid").removeClass("form-invalid")})},validateForm:function(a){return a=jQuery(a),!wpAjax.invalidateForm(a.find(".form-required").filter(function(){return""===jQuery("input:visible",this).val()})).length}},wpAjax||{noPerm:"Sorry, you are not allowed to do that.",broken:"An unidentified error has occurred."});jQuery(document).ready(function(a){a("form.validate").submit(function(){return wpAjax.validateForm(a(this))})});
\ No newline at end of file
diff --git a/wp-includes/js/wp-api.js b/wp-includes/js/wp-api.js
new file mode 100644
index 000000000..a14d21fae
--- /dev/null
+++ b/wp-includes/js/wp-api.js
@@ -0,0 +1,1337 @@
+(function( window, undefined ) {
+
+	'use strict';
+
+	/**
+	 * Initialise the WP_API.
+	 */
+	function WP_API() {
+		this.models = {};
+		this.collections = {};
+		this.views = {};
+	}
+
+	window.wp            = window.wp || {};
+	wp.api               = wp.api || new WP_API();
+	wp.api.versionString = wp.api.versionString || 'wp/v2/';
+
+	// Alias _includes to _.contains, ensuring it is available if lodash is used.
+	if ( ! _.isFunction( _.includes ) && _.isFunction( _.contains ) ) {
+	  _.includes = _.contains;
+	}
+
+})( window );
+
+(function( window, undefined ) {
+
+	'use strict';
+
+	var pad, r;
+
+	window.wp = window.wp || {};
+	wp.api = wp.api || {};
+	wp.api.utils = wp.api.utils || {};
+
+	/**
+	 * ECMAScript 5 shim, adapted from MDN.
+	 * @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
+	 */
+	if ( ! Date.prototype.toISOString ) {
+		pad = function( number ) {
+			r = String( number );
+			if ( 1 === r.length ) {
+				r = '0' + r;
+			}
+
+			return r;
+		};
+
+		Date.prototype.toISOString = function() {
+			return this.getUTCFullYear() +
+				'-' + pad( this.getUTCMonth() + 1 ) +
+				'-' + pad( this.getUTCDate() ) +
+				'T' + pad( this.getUTCHours() ) +
+				':' + pad( this.getUTCMinutes() ) +
+				':' + pad( this.getUTCSeconds() ) +
+				'.' + String( ( this.getUTCMilliseconds() / 1000 ).toFixed( 3 ) ).slice( 2, 5 ) +
+				'Z';
+		};
+	}
+
+	/**
+	 * Parse date into ISO8601 format.
+	 *
+	 * @param {Date} date.
+	 */
+	wp.api.utils.parseISO8601 = function( date ) {
+		var timestamp, struct, i, k,
+			minutesOffset = 0,
+			numericKeys = [ 1, 4, 5, 6, 7, 10, 11 ];
+
+		// ES5 §15.9.4.2 states that the string should attempt to be parsed as a Date Time String Format string
+		// before falling back to any implementation-specific date parsing, so that’s what we do, even if native
+		// implementations could be faster.
+		//              1 YYYY                2 MM       3 DD           4 HH    5 mm       6 ss        7 msec        8 Z 9 ±    10 tzHH    11 tzmm
+		if ( ( struct = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec( date ) ) ) {
+
+			// Avoid NaN timestamps caused by “undefined” values being passed to Date.UTC.
+			for ( i = 0; ( k = numericKeys[i] ); ++i ) {
+				struct[k] = +struct[k] || 0;
+			}
+
+			// Allow undefined days and months.
+			struct[2] = ( +struct[2] || 1 ) - 1;
+			struct[3] = +struct[3] || 1;
+
+			if ( 'Z' !== struct[8]  && undefined !== struct[9] ) {
+				minutesOffset = struct[10] * 60 + struct[11];
+
+				if ( '+' === struct[9] ) {
+					minutesOffset = 0 - minutesOffset;
+				}
+			}
+
+			timestamp = Date.UTC( struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7] );
+		} else {
+			timestamp = Date.parse ? Date.parse( date ) : NaN;
+		}
+
+		return timestamp;
+	};
+
+	/**
+	 * Helper function for getting the root URL.
+	 * @return {[type]} [description]
+	 */
+	wp.api.utils.getRootUrl = function() {
+		return window.location.origin ?
+			window.location.origin + '/' :
+			window.location.protocol + '/' + window.location.host + '/';
+	};
+
+	/**
+	 * Helper for capitalizing strings.
+	 */
+	wp.api.utils.capitalize = function( str ) {
+		if ( _.isUndefined( str ) ) {
+			return str;
+		}
+		return str.charAt( 0 ).toUpperCase() + str.slice( 1 );
+	};
+
+	/**
+	 * Extract a route part based on negative index.
+	 *
+	 * @param {string} route The endpoint route.
+	 * @param {int}    part  The number of parts from the end of the route to retrieve. Default 1.
+	 *                       Example route `/a/b/c`: part 1 is `c`, part 2 is `b`, part 3 is `a`.
+	 */
+	wp.api.utils.extractRoutePart = function( route, part ) {
+		var routeParts;
+
+		part  = part || 1;
+
+		// Remove versions string from route to avoid returning it.
+		route = route.replace( wp.api.versionString, '' );
+		routeParts = route.split( '/' ).reverse();
+		if ( _.isUndefined( routeParts[ --part ] ) ) {
+			return '';
+		}
+		return routeParts[ part ];
+	};
+
+	/**
+	 * Extract a parent name from a passed route.
+	 *
+	 * @param {string} route The route to extract a name from.
+	 */
+	wp.api.utils.extractParentName = function( route ) {
+		var name,
+			lastSlash = route.lastIndexOf( '_id>[\\d]+)/' );
+
+		if ( lastSlash < 0 ) {
+			return '';
+		}
+		name = route.substr( 0, lastSlash - 1 );
+		name = name.split( '/' );
+		name.pop();
+		name = name.pop();
+		return name;
+	};
+
+	/**
+	 * Add args and options to a model prototype from a route's endpoints.
+	 *
+	 * @param {array}  routeEndpoints Array of route endpoints.
+	 * @param {Object} modelInstance  An instance of the model (or collection)
+	 *                                to add the args to.
+	 */
+	wp.api.utils.decorateFromRoute = function( routeEndpoints, modelInstance ) {
+
+		/**
+		 * Build the args based on route endpoint data.
+		 */
+		_.each( routeEndpoints, function( routeEndpoint ) {
+
+			// Add post and edit endpoints as model args.
+			if ( _.includes( routeEndpoint.methods, 'POST' ) || _.includes( routeEndpoint.methods, 'PUT' ) ) {
+
+				// Add any non empty args, merging them into the args object.
+				if ( ! _.isEmpty( routeEndpoint.args ) ) {
+
+					// Set as default if no args yet.
+					if ( _.isEmpty( modelInstance.prototype.args ) ) {
+						modelInstance.prototype.args = routeEndpoint.args;
+					} else {
+
+						// We already have args, merge these new args in.
+						modelInstance.prototype.args = _.union( routeEndpoint.args, modelInstance.prototype.defaults );
+					}
+				}
+			} else {
+
+				// Add GET method as model options.
+				if ( _.includes( routeEndpoint.methods, 'GET' ) ) {
+
+					// Add any non empty args, merging them into the defaults object.
+					if ( ! _.isEmpty( routeEndpoint.args ) ) {
+
+						// Set as default if no defaults yet.
+						if ( _.isEmpty( modelInstance.prototype.options ) ) {
+							modelInstance.prototype.options = routeEndpoint.args;
+						} else {
+
+							// We already have options, merge these new args in.
+							modelInstance.prototype.options = _.union( routeEndpoint.args, modelInstance.prototype.options );
+						}
+					}
+
+				}
+			}
+
+		} );
+
+	};
+
+	/**
+	 * Add mixins and helpers to models depending on their defaults.
+	 *
+	 * @param {Backbone Model} model          The model to attach helpers and mixins to.
+	 * @param {string}         modelClassName The classname of the constructed model.
+	 * @param {Object} 	       loadingObjects An object containing the models and collections we are building.
+	 */
+	wp.api.utils.addMixinsAndHelpers = function( model, modelClassName, loadingObjects ) {
+
+		var hasDate = false,
+
+			/**
+			 * Array of parseable dates.
+			 *
+			 * @type {string[]}.
+			 */
+			parseableDates = [ 'date', 'modified', 'date_gmt', 'modified_gmt' ],
+
+			/**
+			 * Mixin for all content that is time stamped.
+			 *
+			 * This mixin converts between mysql timestamps and JavaScript Dates when syncing a model
+			 * to or from the server. For example, a date stored as `2015-12-27T21:22:24` on the server
+			 * gets expanded to `Sun Dec 27 2015 14:22:24 GMT-0700 (MST)` when the model is fetched.
+			 *
+			 * @type {{toJSON: toJSON, parse: parse}}.
+			 */
+			TimeStampedMixin = {
+
+				/**
+				 * Prepare a JavaScript Date for transmitting to the server.
+				 *
+				 * This helper function accepts a field and Date object. It converts the passed Date
+				 * to an ISO string and sets that on the model field.
+				 *
+				 * @param {Date}   date   A JavaScript date object. WordPress expects dates in UTC.
+				 * @param {string} field  The date field to set. One of 'date', 'date_gmt', 'date_modified'
+				 *                        or 'date_modified_gmt'. Optional, defaults to 'date'.
+				 */
+				setDate: function( date, field ) {
+					var theField = field || 'date';
+
+					// Don't alter non parsable date fields.
+					if ( _.indexOf( parseableDates, theField ) < 0 ) {
+						return false;
+					}
+
+					this.set( theField, date.toISOString() );
+				},
+
+				/**
+				 * Get a JavaScript Date from the passed field.
+				 *
+				 * WordPress returns 'date' and 'date_modified' in the timezone of the server as well as
+				 * UTC dates as 'date_gmt' and 'date_modified_gmt'. Draft posts do not include UTC dates.
+				 *
+				 * @param {string} field  The date field to set. One of 'date', 'date_gmt', 'date_modified'
+				 *                        or 'date_modified_gmt'. Optional, defaults to 'date'.
+				 */
+				getDate: function( field ) {
+					var theField   = field || 'date',
+						theISODate = this.get( theField );
+
+					// Only get date fields and non null values.
+					if ( _.indexOf( parseableDates, theField ) < 0 || _.isNull( theISODate ) ) {
+						return false;
+					}
+
+					return new Date( wp.api.utils.parseISO8601( theISODate ) );
+				}
+			},
+
+			/**
+			 * Build a helper function to retrieve related model.
+			 *
+			 * @param  {string} parentModel      The parent model.
+			 * @param  {int}    modelId          The model ID if the object to request
+			 * @param  {string} modelName        The model name to use when constructing the model.
+			 * @param  {string} embedSourcePoint Where to check the embedds object for _embed data.
+			 * @param  {string} embedCheckField  Which model field to check to see if the model has data.
+			 *
+			 * @return {Deferred.promise}        A promise which resolves to the constructed model.
+			 */
+			buildModelGetter = function( parentModel, modelId, modelName, embedSourcePoint, embedCheckField ) {
+				var getModel, embeddeds, attributes, deferred;
+
+				deferred  = jQuery.Deferred();
+				embeddeds = parentModel.get( '_embedded' ) || {};
+
+				// Verify that we have a valid object id.
+				if ( ! _.isNumber( modelId ) || 0 === modelId ) {
+					deferred.reject();
+					return deferred;
+				}
+
+				// If we have embedded object data, use that when constructing the getModel.
+				if ( embeddeds[ embedSourcePoint ] ) {
+					attributes = _.findWhere( embeddeds[ embedSourcePoint ], { id: modelId } );
+				}
+
+				// Otherwise use the modelId.
+				if ( ! attributes ) {
+					attributes = { id: modelId };
+				}
+
+				// Create the new getModel model.
+				getModel = new wp.api.models[ modelName ]( attributes );
+
+				// If we didn’t have an embedded getModel, fetch the getModel data.
+				if ( ! getModel.get( embedCheckField ) ) {
+					getModel.fetch( { success: function( getModel ) {
+						deferred.resolve( getModel );
+					} } );
+				} else {
+					deferred.resolve( getModel );
+				}
+
+				// Return a promise.
+				return deferred.promise();
+			},
+
+			/**
+			 * Build a helper to retrieve a collection.
+			 *
+			 * @param  {string} parentModel      The parent model.
+			 * @param  {string} collectionName   The name to use when constructing the collection.
+			 * @param  {string} embedSourcePoint Where to check the embedds object for _embed data.
+			 * @param  {string} embedIndex       An addiitonal optional index for the _embed data.
+			 *
+			 * @return {Deferred.promise}        A promise which resolves to the constructed collection.
+			 */
+			buildCollectionGetter = function( parentModel, collectionName, embedSourcePoint, embedIndex ) {
+				/**
+				 * Returns a promise that resolves to the requested collection
+				 *
+				 * Uses the embedded data if available, otherwises fetches the
+				 * data from the server.
+				 *
+				 * @return {Deferred.promise} promise Resolves to a wp.api.collections[ collectionName ]
+				 * collection.
+				 */
+				var postId, embeddeds, getObjects,
+					classProperties = '',
+					properties      = '',
+					deferred        = jQuery.Deferred();
+
+				postId    = parentModel.get( 'id' );
+				embeddeds = parentModel.get( '_embedded' ) || {};
+
+				// Verify that we have a valid post id.
+				if ( ! _.isNumber( postId ) || 0 === postId ) {
+					deferred.reject();
+					return deferred;
+				}
+
+				// If we have embedded getObjects data, use that when constructing the getObjects.
+				if ( ! _.isUndefined( embedSourcePoint ) && ! _.isUndefined( embeddeds[ embedSourcePoint ] ) ) {
+
+					// Some embeds also include an index offset, check for that.
+					if ( _.isUndefined( embedIndex ) ) {
+
+						// Use the embed source point directly.
+						properties = embeddeds[ embedSourcePoint ];
+					} else {
+
+						// Add the index to the embed source point.
+						properties = embeddeds[ embedSourcePoint ][ embedIndex ];
+					}
+				} else {
+
+					// Otherwise use the postId.
+					classProperties = { parent: postId };
+				}
+
+				// Create the new getObjects collection.
+				getObjects = new wp.api.collections[ collectionName ]( properties, classProperties );
+
+				// If we didn’t have embedded getObjects, fetch the getObjects data.
+				if ( _.isUndefined( getObjects.models[0] ) ) {
+					getObjects.fetch( { success: function( getObjects ) {
+
+						// Add a helper 'parent_post' attribute onto the model.
+						setHelperParentPost( getObjects, postId );
+						deferred.resolve( getObjects );
+					} } );
+				} else {
+
+					// Add a helper 'parent_post' attribute onto the model.
+					setHelperParentPost( getObjects, postId );
+					deferred.resolve( getObjects );
+				}
+
+				// Return a promise.
+				return deferred.promise();
+
+			},
+
+			/**
+			 * Set the model post parent.
+			 */
+			setHelperParentPost = function( collection, postId ) {
+
+				// Attach post_parent id to the collection.
+				_.each( collection.models, function( model ) {
+					model.set( 'parent_post', postId );
+				} );
+			},
+
+			/**
+			 * Add a helper function to handle post Meta.
+			 */
+			MetaMixin = {
+				getMeta: function() {
+					return buildCollectionGetter( this, 'PostMeta', 'https://api.w.org/meta' );
+				}
+			},
+
+			/**
+			 * Add a helper function to handle post Revisions.
+			 */
+			RevisionsMixin = {
+				getRevisions: function() {
+					return buildCollectionGetter( this, 'PostRevisions' );
+				}
+			},
+
+			/**
+			 * Add a helper function to handle post Tags.
+			 */
+			TagsMixin = {
+
+				/**
+				 * Get the tags for a post.
+				 *
+				 * @return {Deferred.promise} promise Resolves to an array of tags.
+				 */
+				getTags: function() {
+					var tagIds = this.get( 'tags' ),
+						tags  = new wp.api.collections.Tags();
+
+					// Resolve with an empty array if no tags.
+					if ( _.isEmpty( tagIds ) ) {
+						return jQuery.Deferred().resolve( [] );
+					}
+
+					return tags.fetch( { data: { include: tagIds } } );
+				},
+
+				/**
+				 * Set the tags for a post.
+				 *
+				 * Accepts an array of tag slugs, or a Tags collection.
+				 *
+				 * @param {array|Backbone.Collection} tags The tags to set on the post.
+				 *
+				 */
+				setTags: function( tags ) {
+					var allTags, newTag,
+						self = this,
+						newTags = [];
+
+					if ( _.isString( tags ) ) {
+						return false;
+					}
+
+					// If this is an array of slugs, build a collection.
+					if ( _.isArray( tags ) ) {
+
+						// Get all the tags.
+						allTags = new wp.api.collections.Tags();
+						allTags.fetch( {
+							data:    { per_page: 100 },
+							success: function( alltags ) {
+
+								// Find the passed tags and set them up.
+								_.each( tags, function( tag ) {
+									newTag = new wp.api.models.Tag( alltags.findWhere( { slug: tag } ) );
+
+									// Tie the new tag to the post.
+									newTag.set( 'parent_post', self.get( 'id' ) );
+
+									// Add the new tag to the collection.
+									newTags.push( newTag );
+								} );
+								tags = new wp.api.collections.Tags( newTags );
+								self.setTagsWithCollection( tags );
+							}
+						} );
+
+					} else {
+						this.setTagsWithCollection( tags );
+					}
+				},
+
+				/**
+				 * Set the tags for a post.
+				 *
+				 * Accepts a Tags collection.
+				 *
+				 * @param {array|Backbone.Collection} tags The tags to set on the post.
+				 *
+				 */
+				setTagsWithCollection: function( tags ) {
+
+					// Pluck out the category ids.
+					this.set( 'tags', tags.pluck( 'id' ) );
+					return this.save();
+				}
+			},
+
+			/**
+			 * Add a helper function to handle post Categories.
+			 */
+			CategoriesMixin = {
+
+				/**
+				 * Get a the categories for a post.
+				 *
+				 * @return {Deferred.promise} promise Resolves to an array of categories.
+				 */
+				getCategories: function() {
+					var categoryIds = this.get( 'categories' ),
+						categories  = new wp.api.collections.Categories();
+
+					// Resolve with an empty array if no categories.
+					if ( _.isEmpty( categoryIds ) ) {
+						return jQuery.Deferred().resolve( [] );
+					}
+
+					return categories.fetch( { data: { include: categoryIds } } );
+				},
+
+				/**
+				 * Set the categories for a post.
+				 *
+				 * Accepts an array of category slugs, or a Categories collection.
+				 *
+				 * @param {array|Backbone.Collection} categories The categories to set on the post.
+				 *
+				 */
+				setCategories: function( categories ) {
+					var allCategories, newCategory,
+						self = this,
+						newCategories = [];
+
+					if ( _.isString( categories ) ) {
+						return false;
+					}
+
+					// If this is an array of slugs, build a collection.
+					if ( _.isArray( categories ) ) {
+
+						// Get all the categories.
+						allCategories = new wp.api.collections.Categories();
+						allCategories.fetch( {
+							data:    { per_page: 100 },
+							success: function( allcats ) {
+
+								// Find the passed categories and set them up.
+								_.each( categories, function( category ) {
+									newCategory = new wp.api.models.Category( allcats.findWhere( { slug: category } ) );
+
+									// Tie the new category to the post.
+									newCategory.set( 'parent_post', self.get( 'id' ) );
+
+									// Add the new category to the collection.
+									newCategories.push( newCategory );
+								} );
+								categories = new wp.api.collections.Categories( newCategories );
+								self.setCategoriesWithCollection( categories );
+							}
+						} );
+
+					} else {
+						this.setCategoriesWithCollection( categories );
+					}
+
+				},
+
+				/**
+				 * Set the categories for a post.
+				 *
+				 * Accepts Categories collection.
+				 *
+				 * @param {array|Backbone.Collection} categories The categories to set on the post.
+				 *
+				 */
+				setCategoriesWithCollection: function( categories ) {
+
+					// Pluck out the category ids.
+					this.set( 'categories', categories.pluck( 'id' ) );
+					return this.save();
+				}
+			},
+
+			/**
+			 * Add a helper function to retrieve the author user model.
+			 */
+			AuthorMixin = {
+				getAuthorUser: function() {
+					return buildModelGetter( this, this.get( 'author' ), 'User', 'author', 'name' );
+				}
+			},
+
+			/**
+			 * Add a helper function to retrieve the featured media.
+			 */
+			FeaturedMediaMixin = {
+				getFeaturedMedia: function() {
+					return buildModelGetter( this, this.get( 'featured_media' ), 'Media', 'wp:featuredmedia', 'source_url' );
+				}
+			};
+
+		// Exit if we don't have valid model defaults.
+		if ( _.isUndefined( model.prototype.args ) ) {
+			return model;
+		}
+
+		// Go thru the parsable date fields, if our model contains any of them it gets the TimeStampedMixin.
+		_.each( parseableDates, function( theDateKey ) {
+			if ( ! _.isUndefined( model.prototype.args[ theDateKey ] ) ) {
+				hasDate = true;
+			}
+		} );
+
+		// Add the TimeStampedMixin for models that contain a date field.
+		if ( hasDate ) {
+			model = model.extend( TimeStampedMixin );
+		}
+
+		// Add the AuthorMixin for models that contain an author.
+		if ( ! _.isUndefined( model.prototype.args.author ) ) {
+			model = model.extend( AuthorMixin );
+		}
+
+		// Add the FeaturedMediaMixin for models that contain a featured_media.
+		if ( ! _.isUndefined( model.prototype.args.featured_media ) ) {
+			model = model.extend( FeaturedMediaMixin );
+		}
+
+		// Add the CategoriesMixin for models that support categories collections.
+		if ( ! _.isUndefined( model.prototype.args.categories ) ) {
+			model = model.extend( CategoriesMixin );
+		}
+
+		// Add the MetaMixin for models that support meta collections.
+		if ( ! _.isUndefined( loadingObjects.collections[ modelClassName + 'Meta' ] ) ) {
+			model = model.extend( MetaMixin );
+		}
+
+		// Add the TagsMixin for models that support tags collections.
+		if ( ! _.isUndefined( model.prototype.args.tags ) ) {
+			model = model.extend( TagsMixin );
+		}
+
+		// Add the RevisionsMixin for models that support revisions collections.
+		if ( ! _.isUndefined( loadingObjects.collections[ modelClassName + 'Revisions' ] ) ) {
+			model = model.extend( RevisionsMixin );
+		}
+
+		return model;
+	};
+
+})( window );
+
+/* global wpApiSettings:false */
+
+// Suppress warning about parse function's unused "options" argument:
+/* jshint unused:false */
+(function() {
+
+	'use strict';
+
+	var wpApiSettings = window.wpApiSettings || {};
+
+	/**
+	 * Backbone base model for all models.
+	 */
+	wp.api.WPApiBaseModel = Backbone.Model.extend(
+		/** @lends WPApiBaseModel.prototype  */
+		{
+			/**
+			 * Set nonce header before every Backbone sync.
+			 *
+			 * @param {string} method.
+			 * @param {Backbone.Model} model.
+			 * @param {{beforeSend}, *} options.
+			 * @returns {*}.
+			 */
+			sync: function( method, model, options ) {
+				var beforeSend;
+
+				options = options || {};
+
+				// Remove date_gmt if null.
+				if ( _.isNull( model.get( 'date_gmt' ) ) ) {
+					model.unset( 'date_gmt' );
+				}
+
+				// Remove slug if empty.
+				if ( _.isEmpty( model.get( 'slug' ) ) ) {
+					model.unset( 'slug' );
+				}
+
+				if ( ! _.isUndefined( wpApiSettings.nonce ) && ! _.isNull( wpApiSettings.nonce ) ) {
+					beforeSend = options.beforeSend;
+
+					// @todo enable option for jsonp endpoints
+					// options.dataType = 'jsonp';
+
+					options.beforeSend = function( xhr ) {
+						xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce );
+
+						if ( beforeSend ) {
+							return beforeSend.apply( this, arguments );
+						}
+					};
+				}
+
+				// Add '?force=true' to use delete method when required.
+				if ( this.requireForceForDelete && 'delete' === method ) {
+					model.url = model.url() + '?force=true';
+				}
+				return Backbone.sync( method, model, options );
+			},
+
+			/**
+			 * Save is only allowed when the PUT OR POST methods are available for the endpoint.
+			 */
+			save: function( attrs, options ) {
+
+				// Do we have the put method, then execute the save.
+				if ( _.includes( this.methods, 'PUT' ) || _.includes( this.methods, 'POST' ) ) {
+
+					// Proxy the call to the original save function.
+					return Backbone.Model.prototype.save.call( this, attrs, options );
+				} else {
+
+					// Otherwise bail, disallowing action.
+					return false;
+				}
+			},
+
+			/**
+			 * Delete is only allowed when the DELETE method is available for the endpoint.
+			 */
+			destroy: function( options ) {
+
+				// Do we have the DELETE method, then execute the destroy.
+				if ( _.includes( this.methods, 'DELETE' ) ) {
+
+					// Proxy the call to the original save function.
+					return Backbone.Model.prototype.destroy.call( this, options );
+				} else {
+
+					// Otherwise bail, disallowing action.
+					return false;
+				}
+			}
+
+		}
+	);
+
+	/**
+	 * API Schema model. Contains meta information about the API.
+	 */
+	wp.api.models.Schema = wp.api.WPApiBaseModel.extend(
+		/** @lends Schema.prototype  */
+		{
+			defaults: {
+				_links: {},
+				namespace: null,
+				routes: {}
+			},
+
+			initialize: function( attributes, options ) {
+				var model = this;
+				options = options || {};
+
+				wp.api.WPApiBaseModel.prototype.initialize.call( model, attributes, options );
+
+				model.apiRoot = options.apiRoot || wpApiSettings.root;
+				model.versionString = options.versionString || wpApiSettings.versionString;
+			},
+
+			url: function() {
+				return this.apiRoot + this.versionString;
+			}
+		}
+	);
+})();
+
+( function() {
+
+	'use strict';
+
+	var wpApiSettings = window.wpApiSettings || {};
+
+	/**
+	 * Contains basic collection functionality such as pagination.
+	 */
+	wp.api.WPApiBaseCollection = Backbone.Collection.extend(
+		/** @lends BaseCollection.prototype  */
+		{
+
+			/**
+			 * Setup default state.
+			 */
+			initialize: function( models, options ) {
+				this.state = {
+					data: {},
+					currentPage: null,
+					totalPages: null,
+					totalObjects: null
+				};
+				if ( _.isUndefined( options ) ) {
+					this.parent = '';
+				} else {
+					this.parent = options.parent;
+				}
+			},
+
+			/**
+			 * Extend Backbone.Collection.sync to add nince and pagination support.
+			 *
+			 * Set nonce header before every Backbone sync.
+			 *
+			 * @param {string} method.
+			 * @param {Backbone.Model} model.
+			 * @param {{success}, *} options.
+			 * @returns {*}.
+			 */
+			sync: function( method, model, options ) {
+				var beforeSend, success,
+					self = this;
+
+				options    = options || {};
+				beforeSend = options.beforeSend;
+
+				// If we have a localized nonce, pass that along with each sync.
+				if ( 'undefined' !== typeof wpApiSettings.nonce ) {
+					options.beforeSend = function( xhr ) {
+						xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce );
+
+						if ( beforeSend ) {
+							return beforeSend.apply( self, arguments );
+						}
+					};
+				}
+
+				// When reading, add pagination data.
+				if ( 'read' === method ) {
+					if ( options.data ) {
+						self.state.data = _.clone( options.data );
+
+						delete self.state.data.page;
+					} else {
+						self.state.data = options.data = {};
+					}
+
+					if ( 'undefined' === typeof options.data.page ) {
+						self.state.currentPage  = null;
+						self.state.totalPages   = null;
+						self.state.totalObjects = null;
+					} else {
+						self.state.currentPage = options.data.page - 1;
+					}
+
+					success = options.success;
+					options.success = function( data, textStatus, request ) {
+						if ( ! _.isUndefined( request ) ) {
+							self.state.totalPages   = parseInt( request.getResponseHeader( 'x-wp-totalpages' ), 10 );
+							self.state.totalObjects = parseInt( request.getResponseHeader( 'x-wp-total' ), 10 );
+						}
+
+						if ( null === self.state.currentPage ) {
+							self.state.currentPage = 1;
+						} else {
+							self.state.currentPage++;
+						}
+
+						if ( success ) {
+							return success.apply( this, arguments );
+						}
+					};
+				}
+
+				// Continue by calling Bacckbone's sync.
+				return Backbone.sync( method, model, options );
+			},
+
+			/**
+			 * Fetches the next page of objects if a new page exists.
+			 *
+			 * @param {data: {page}} options.
+			 * @returns {*}.
+			 */
+			more: function( options ) {
+				options = options || {};
+				options.data = options.data || {};
+
+				_.extend( options.data, this.state.data );
+
+				if ( 'undefined' === typeof options.data.page ) {
+					if ( ! this.hasMore() ) {
+						return false;
+					}
+
+					if ( null === this.state.currentPage || this.state.currentPage <= 1 ) {
+						options.data.page = 2;
+					} else {
+						options.data.page = this.state.currentPage + 1;
+					}
+				}
+
+				return this.fetch( options );
+			},
+
+			/**
+			 * Returns true if there are more pages of objects available.
+			 *
+			 * @returns null|boolean.
+			 */
+			hasMore: function() {
+				if ( null === this.state.totalPages ||
+					 null === this.state.totalObjects ||
+					 null === this.state.currentPage ) {
+					return null;
+				} else {
+					return ( this.state.currentPage < this.state.totalPages );
+				}
+			}
+		}
+	);
+
+} )();
+
+( function() {
+
+	'use strict';
+
+	var Endpoint, initializedDeferreds = {},
+		wpApiSettings = window.wpApiSettings || {};
+	window.wp = window.wp || {};
+	wp.api    = wp.api || {};
+
+	// If wpApiSettings is unavailable, try the default.
+	if ( _.isEmpty( wpApiSettings ) ) {
+		wpApiSettings.root = window.location.origin + '/wp-json/';
+	}
+
+	Endpoint = Backbone.Model.extend( {
+		defaults: {
+			apiRoot: wpApiSettings.root,
+			versionString: wp.api.versionString,
+			schema: null,
+			models: {},
+			collections: {}
+		},
+
+		/**
+		 * Initialize the Endpoint model.
+		 */
+		initialize: function() {
+			var model = this, deferred;
+
+			Backbone.Model.prototype.initialize.apply( model, arguments );
+
+			deferred = jQuery.Deferred();
+			model.schemaConstructed = deferred.promise();
+
+			model.schemaModel = new wp.api.models.Schema( null, {
+				apiRoot: model.get( 'apiRoot' ),
+				versionString: model.get( 'versionString' )
+			} );
+
+			// When the model loads, resolve the promise.
+			model.schemaModel.once( 'change', function() {
+				model.constructFromSchema();
+				deferred.resolve( model );
+			} );
+
+			if ( model.get( 'schema' ) ) {
+
+				// Use schema supplied as model attribute.
+				model.schemaModel.set( model.schemaModel.parse( model.get( 'schema' ) ) );
+			} else if (
+				! _.isUndefined( sessionStorage ) &&
+				( _.isUndefined( wpApiSettings.cacheSchema ) || wpApiSettings.cacheSchema ) &&
+				sessionStorage.getItem( 'wp-api-schema-model' + model.get( 'apiRoot' ) + model.get( 'versionString' ) )
+			) {
+
+				// Used a cached copy of the schema model if available.
+				model.schemaModel.set( model.schemaModel.parse( JSON.parse( sessionStorage.getItem( 'wp-api-schema-model' + model.get( 'apiRoot' ) + model.get( 'versionString' ) ) ) ) );
+			} else {
+				model.schemaModel.fetch( {
+					/**
+					 * When the server returns the schema model data, store the data in a sessionCache so we don't
+					 * have to retrieve it again for this session. Then, construct the models and collections based
+					 * on the schema model data.
+					 */
+					success: function( newSchemaModel ) {
+
+						// Store a copy of the schema model in the session cache if available.
+						if ( ! _.isUndefined( sessionStorage ) && ( _.isUndefined( wpApiSettings.cacheSchema ) || wpApiSettings.cacheSchema ) ) {
+							try {
+								sessionStorage.setItem( 'wp-api-schema-model' + model.get( 'apiRoot' ) + model.get( 'versionString' ), JSON.stringify( newSchemaModel ) );
+							} catch ( error ) {
+
+								// Fail silently, fixes errors in safari private mode.
+							}
+						}
+					},
+
+					// Log the error condition.
+					error: function( err ) {
+						window.console.log( err );
+					}
+				} );
+			}
+		},
+
+		constructFromSchema: function() {
+			var routeModel = this, modelRoutes, collectionRoutes, schemaRoot, loadingObjects,
+
+			/**
+			 * Set up the model and collection name mapping options. As the schema is built, the
+			 * model and collection names will be adjusted if they are found in the mapping object.
+			 *
+			 * Localizing a variable wpApiSettings.mapping will over-ride the default mapping options.
+			 *
+			 */
+			mapping = wpApiSettings.mapping || {
+				models: {
+					'Categories':      'Category',
+					'Comments':        'Comment',
+					'Pages':           'Page',
+					'PagesMeta':       'PageMeta',
+					'PagesRevisions':  'PageRevision',
+					'Posts':           'Post',
+					'PostsCategories': 'PostCategory',
+					'PostsRevisions':  'PostRevision',
+					'PostsTags':       'PostTag',
+					'Schema':          'Schema',
+					'Statuses':        'Status',
+					'Tags':            'Tag',
+					'Taxonomies':      'Taxonomy',
+					'Types':           'Type',
+					'Users':           'User'
+				},
+				collections: {
+					'PagesMeta':       'PageMeta',
+					'PagesRevisions':  'PageRevisions',
+					'PostsCategories': 'PostCategories',
+					'PostsMeta':       'PostMeta',
+					'PostsRevisions':  'PostRevisions',
+					'PostsTags':       'PostTags'
+				}
+			};
+
+			/**
+			 * Iterate thru the routes, picking up models and collections to build. Builds two arrays,
+			 * one for models and one for collections.
+			 */
+			modelRoutes      = [];
+			collectionRoutes = [];
+			schemaRoot       = routeModel.get( 'apiRoot' ).replace( wp.api.utils.getRootUrl(), '' );
+			loadingObjects   = {};
+
+			/**
+			 * Tracking objects for models and collections.
+			 */
+			loadingObjects.models      = routeModel.get( 'models' );
+			loadingObjects.collections = routeModel.get( 'collections' );
+
+			_.each( routeModel.schemaModel.get( 'routes' ), function( route, index ) {
+
+				// Skip the schema root if included in the schema.
+				if ( index !== routeModel.get( ' versionString' ) &&
+						index !== schemaRoot &&
+						index !== ( '/' + routeModel.get( 'versionString' ).slice( 0, -1 ) )
+				) {
+
+					// Single items end with a regex (or the special case 'me').
+					if ( /(?:.*[+)]|\/me)$/.test( index ) ) {
+						modelRoutes.push( { index: index, route: route } );
+					} else {
+
+						// Collections end in a name.
+						collectionRoutes.push( { index: index, route: route } );
+					}
+				}
+			} );
+
+			/**
+			 * Construct the models.
+			 *
+			 * Base the class name on the route endpoint.
+			 */
+			_.each( modelRoutes, function( modelRoute ) {
+
+				// Extract the name and any parent from the route.
+				var modelClassName,
+						routeName  = wp.api.utils.extractRoutePart( modelRoute.index, 2 ),
+						parentName = wp.api.utils.extractRoutePart( modelRoute.index, 4 ),
+						routeEnd   = wp.api.utils.extractRoutePart( modelRoute.index, 1 );
+
+				// Handle the special case of the 'me' route.
+				if ( 'me' === routeEnd ) {
+					routeName = 'me';
+				}
+
+				// If the model has a parent in its route, add that to its class name.
+				if ( '' !== parentName && parentName !== routeName ) {
+					modelClassName = wp.api.utils.capitalize( parentName ) + wp.api.utils.capitalize( routeName );
+					modelClassName = mapping.models[ modelClassName ] || modelClassName;
+					loadingObjects.models[ modelClassName ] = wp.api.WPApiBaseModel.extend( {
+
+						// Return a constructed url based on the parent and id.
+						url: function() {
+							var url = routeModel.get( 'apiRoot' ) + routeModel.get( 'versionString' ) +
+									parentName +  '/' +
+									( ( _.isUndefined( this.get( 'parent' ) ) || 0 === this.get( 'parent' ) ) ?
+										this.get( 'parent_post' ) :
+										this.get( 'parent' ) ) + '/' +
+									routeName;
+							if ( ! _.isUndefined( this.get( 'id' ) ) ) {
+								url +=  '/' + this.get( 'id' );
+							}
+							return url;
+						},
+
+						// Include a reference to the original route object.
+						route: modelRoute,
+
+						// Include a reference to the original class name.
+						name: modelClassName,
+
+						// Include the array of route methods for easy reference.
+						methods: modelRoute.route.methods,
+
+						initialize: function() {
+
+							/**
+							 * Posts and pages support trashing, other types don't support a trash
+							 * and require that you pass ?force=true to actually delete them.
+							 *
+							 * @todo we should be getting trashability from the Schema, not hard coding types here.
+							 */
+							if (
+								'Posts' !== this.name &&
+								'Pages' !== this.name &&
+								_.includes( this.methods, 'DELETE' )
+							) {
+								this.requireForceForDelete = true;
+							}
+						}
+					} );
+				} else {
+
+					// This is a model without a parent in its route
+					modelClassName = wp.api.utils.capitalize( routeName );
+					modelClassName = mapping.models[ modelClassName ] || modelClassName;
+					loadingObjects.models[ modelClassName ] = wp.api.WPApiBaseModel.extend( {
+
+						// Function that returns a constructed url based on the id.
+						url: function() {
+							var url = routeModel.get( 'apiRoot' ) +
+								routeModel.get( 'versionString' ) +
+								( ( 'me' === routeName ) ? 'users/me' : routeName );
+
+							if ( ! _.isUndefined( this.get( 'id' ) ) ) {
+								url +=  '/' + this.get( 'id' );
+							}
+							return url;
+						},
+
+						// Include a reference to the original route object.
+						route: modelRoute,
+
+						// Include a reference to the original class name.
+						name: modelClassName,
+
+						// Include the array of route methods for easy reference.
+						methods: modelRoute.route.methods
+					} );
+				}
+
+				// Add defaults to the new model, pulled form the endpoint.
+				wp.api.utils.decorateFromRoute( modelRoute.route.endpoints, loadingObjects.models[ modelClassName ] );
+
+			} );
+
+			/**
+			 * Construct the collections.
+			 *
+			 * Base the class name on the route endpoint.
+			 */
+			_.each( collectionRoutes, function( collectionRoute ) {
+
+				// Extract the name and any parent from the route.
+				var collectionClassName, modelClassName,
+						routeName  = collectionRoute.index.slice( collectionRoute.index.lastIndexOf( '/' ) + 1 ),
+						parentName = wp.api.utils.extractRoutePart( collectionRoute.index, 3 );
+
+				// If the collection has a parent in its route, add that to its class name.
+				if ( '' !== parentName && parentName !== routeName ) {
+
+					collectionClassName = wp.api.utils.capitalize( parentName ) + wp.api.utils.capitalize( routeName );
+					modelClassName      = mapping.models[ collectionClassName ] || collectionClassName;
+					collectionClassName = mapping.collections[ collectionClassName ] || collectionClassName;
+					loadingObjects.collections[ collectionClassName ] = wp.api.WPApiBaseCollection.extend( {
+
+						// Function that returns a constructed url passed on the parent.
+						url: function() {
+							return routeModel.get( 'apiRoot' ) + routeModel.get( 'versionString' ) +
+									parentName + '/' + this.parent + '/' +
+									routeName;
+						},
+
+						// Specify the model that this collection contains.
+						model: loadingObjects.models[ modelClassName ],
+
+						// Include a reference to the original class name.
+						name: collectionClassName,
+
+						// Include a reference to the original route object.
+						route: collectionRoute,
+
+						// Include the array of route methods for easy reference.
+						methods: collectionRoute.route.methods
+					} );
+				} else {
+
+					// This is a collection without a parent in its route.
+					collectionClassName = wp.api.utils.capitalize( routeName );
+					modelClassName      = mapping.models[ collectionClassName ] || collectionClassName;
+					collectionClassName = mapping.collections[ collectionClassName ] || collectionClassName;
+					loadingObjects.collections[ collectionClassName ] = wp.api.WPApiBaseCollection.extend( {
+
+						// For the url of a root level collection, use a string.
+						url: routeModel.get( 'apiRoot' ) + routeModel.get( 'versionString' ) + routeName,
+
+						// Specify the model that this collection contains.
+						model: loadingObjects.models[ modelClassName ],
+
+						// Include a reference to the original class name.
+						name: collectionClassName,
+
+						// Include a reference to the original route object.
+						route: collectionRoute,
+
+						// Include the array of route methods for easy reference.
+						methods: collectionRoute.route.methods
+					} );
+				}
+
+				// Add defaults to the new model, pulled form the endpoint.
+				wp.api.utils.decorateFromRoute( collectionRoute.route.endpoints, loadingObjects.collections[ collectionClassName ] );
+			} );
+
+			// Add mixins and helpers for each of the models.
+			_.each( loadingObjects.models, function( model, index ) {
+				loadingObjects.models[ index ] = wp.api.utils.addMixinsAndHelpers( model, index, loadingObjects );
+			} );
+
+		}
+
+	} );
+
+	wp.api.endpoints = new Backbone.Collection( {
+		model: Endpoint
+	} );
+
+	/**
+	 * Initialize the wp-api, optionally passing the API root.
+	 *
+	 * @param {object} [args]
+	 * @param {string} [args.apiRoot] The api root. Optional, defaults to wpApiSettings.root.
+	 * @param {string} [args.versionString] The version string. Optional, defaults to wpApiSettings.root.
+	 * @param {object} [args.schema] The schema. Optional, will be fetched from API if not provided.
+	 */
+	wp.api.init = function( args ) {
+		var endpoint, attributes = {}, deferred, promise;
+
+		args                     = args || {};
+		attributes.apiRoot       = args.apiRoot || wpApiSettings.root;
+		attributes.versionString = args.versionString || wpApiSettings.versionString;
+		attributes.schema        = args.schema || null;
+		if ( ! attributes.schema && attributes.apiRoot === wpApiSettings.root && attributes.versionString === wpApiSettings.versionString ) {
+			attributes.schema = wpApiSettings.schema;
+		}
+
+		if ( ! initializedDeferreds[ attributes.apiRoot + attributes.versionString ] ) {
+			endpoint = wp.api.endpoints.findWhere( { apiRoot: attributes.apiRoot, versionString: attributes.versionString } );
+			if ( ! endpoint ) {
+				endpoint = new Endpoint( attributes );
+				wp.api.endpoints.add( endpoint );
+			}
+			deferred = jQuery.Deferred();
+			promise = deferred.promise();
+
+			endpoint.schemaConstructed.done( function( endpoint ) {
+
+				// Map the default endpoints, extending any already present items (including Schema model).
+				wp.api.models      = _.extend( endpoint.get( 'models' ), wp.api.models );
+				wp.api.collections = _.extend( endpoint.get( 'collections' ), wp.api.collections );
+				deferred.resolveWith( wp.api, [ endpoint ] );
+			} );
+			initializedDeferreds[ attributes.apiRoot + attributes.versionString ] = promise;
+		}
+		return initializedDeferreds[ attributes.apiRoot + attributes.versionString ];
+	};
+
+	/**
+	 * Construct the default endpoints and add to an endpoints collection.
+	 */
+
+	// The wp.api.init function returns a promise that will resolve with the endpoint once it is ready.
+	wp.api.loadPromise = wp.api.init();
+
+} )();
diff --git a/wp-includes/js/wp-api.min.js b/wp-includes/js/wp-api.min.js
new file mode 100644
index 000000000..8231d1a35
--- /dev/null
+++ b/wp-includes/js/wp-api.min.js
@@ -0,0 +1 @@
+!function(a,b){"use strict";function c(){this.models={},this.collections={},this.views={}}a.wp=a.wp||{},wp.api=wp.api||new c,wp.api.versionString=wp.api.versionString||"wp/v2/",!_.isFunction(_.includes)&&_.isFunction(_.contains)&&(_.includes=_.contains)}(window),function(a,b){"use strict";var c,d;a.wp=a.wp||{},wp.api=wp.api||{},wp.api.utils=wp.api.utils||{},Date.prototype.toISOString||(c=function(a){return d=String(a),1===d.length&&(d="0"+d),d},Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+c(this.getUTCMonth()+1)+"-"+c(this.getUTCDate())+"T"+c(this.getUTCHours())+":"+c(this.getUTCMinutes())+":"+c(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}),wp.api.utils.parseISO8601=function(a){var c,d,e,f,g=0,h=[1,4,5,6,7,10,11];if(d=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(a)){for(e=0;f=h[e];++e)d[f]=+d[f]||0;d[2]=(+d[2]||1)-1,d[3]=+d[3]||1,"Z"!==d[8]&&b!==d[9]&&(g=60*d[10]+d[11],"+"===d[9]&&(g=0-g)),c=Date.UTC(d[1],d[2],d[3],d[4],d[5]+g,d[6],d[7])}else c=Date.parse?Date.parse(a):NaN;return c},wp.api.utils.getRootUrl=function(){return a.location.origin?a.location.origin+"/":a.location.protocol+"/"+a.location.host+"/"},wp.api.utils.capitalize=function(a){return _.isUndefined(a)?a:a.charAt(0).toUpperCase()+a.slice(1)},wp.api.utils.extractRoutePart=function(a,b){var c;return b=b||1,a=a.replace(wp.api.versionString,""),c=a.split("/").reverse(),_.isUndefined(c[--b])?"":c[b]},wp.api.utils.extractParentName=function(a){var b,c=a.lastIndexOf("_id>[\\d]+)/");return c<0?"":(b=a.substr(0,c-1),b=b.split("/"),b.pop(),b=b.pop())},wp.api.utils.decorateFromRoute=function(a,b){_.each(a,function(a){_.includes(a.methods,"POST")||_.includes(a.methods,"PUT")?_.isEmpty(a.args)||(_.isEmpty(b.prototype.args)?b.prototype.args=a.args:b.prototype.args=_.union(a.args,b.prototype.defaults)):_.includes(a.methods,"GET")&&(_.isEmpty(a.args)||(_.isEmpty(b.prototype.options)?b.prototype.options=a.args:b.prototype.options=_.union(a.args,b.prototype.options)))})},wp.api.utils.addMixinsAndHelpers=function(a,b,c){var d=!1,e=["date","modified","date_gmt","modified_gmt"],f={setDate:function(a,b){var c=b||"date";return!(_.indexOf(e,c)<0)&&void this.set(c,a.toISOString())},getDate:function(a){var b=a||"date",c=this.get(b);return!(_.indexOf(e,b)<0||_.isNull(c))&&new Date(wp.api.utils.parseISO8601(c))}},g=function(a,b,c,d,e){var f,g,h,i;return i=jQuery.Deferred(),g=a.get("_embedded")||{},_.isNumber(b)&&0!==b?(g[d]&&(h=_.findWhere(g[d],{id:b})),h||(h={id:b}),f=new wp.api.models[c](h),f.get(e)?i.resolve(f):f.fetch({success:function(a){i.resolve(a)}}),i.promise()):(i.reject(),i)},h=function(a,b,c,d){var e,f,g,h="",j="",k=jQuery.Deferred();return e=a.get("id"),f=a.get("_embedded")||{},_.isNumber(e)&&0!==e?(_.isUndefined(c)||_.isUndefined(f[c])?h={parent:e}:j=_.isUndefined(d)?f[c]:f[c][d],g=new wp.api.collections[b](j,h),_.isUndefined(g.models[0])?g.fetch({success:function(a){i(a,e),k.resolve(a)}}):(i(g,e),k.resolve(g)),k.promise()):(k.reject(),k)},i=function(a,b){_.each(a.models,function(a){a.set("parent_post",b)})},j={getMeta:function(){return h(this,"PostMeta","https://api.w.org/meta")}},k={getRevisions:function(){return h(this,"PostRevisions")}},l={getTags:function(){var a=this.get("tags"),b=new wp.api.collections.Tags;return _.isEmpty(a)?jQuery.Deferred().resolve([]):b.fetch({data:{include:a}})},setTags:function(a){var b,c,d=this,e=[];return!_.isString(a)&&void(_.isArray(a)?(b=new wp.api.collections.Tags,b.fetch({data:{per_page:100},success:function(b){_.each(a,function(a){c=new wp.api.models.Tag(b.findWhere({slug:a})),c.set("parent_post",d.get("id")),e.push(c)}),a=new wp.api.collections.Tags(e),d.setTagsWithCollection(a)}})):this.setTagsWithCollection(a))},setTagsWithCollection:function(a){return this.set("tags",a.pluck("id")),this.save()}},m={getCategories:function(){var a=this.get("categories"),b=new wp.api.collections.Categories;return _.isEmpty(a)?jQuery.Deferred().resolve([]):b.fetch({data:{include:a}})},setCategories:function(a){var b,c,d=this,e=[];return!_.isString(a)&&void(_.isArray(a)?(b=new wp.api.collections.Categories,b.fetch({data:{per_page:100},success:function(b){_.each(a,function(a){c=new wp.api.models.Category(b.findWhere({slug:a})),c.set("parent_post",d.get("id")),e.push(c)}),a=new wp.api.collections.Categories(e),d.setCategoriesWithCollection(a)}})):this.setCategoriesWithCollection(a))},setCategoriesWithCollection:function(a){return this.set("categories",a.pluck("id")),this.save()}},n={getAuthorUser:function(){return g(this,this.get("author"),"User","author","name")}},o={getFeaturedMedia:function(){return g(this,this.get("featured_media"),"Media","wp:featuredmedia","source_url")}};return _.isUndefined(a.prototype.args)?a:(_.each(e,function(b){_.isUndefined(a.prototype.args[b])||(d=!0)}),d&&(a=a.extend(f)),_.isUndefined(a.prototype.args.author)||(a=a.extend(n)),_.isUndefined(a.prototype.args.featured_media)||(a=a.extend(o)),_.isUndefined(a.prototype.args.categories)||(a=a.extend(m)),_.isUndefined(c.collections[b+"Meta"])||(a=a.extend(j)),_.isUndefined(a.prototype.args.tags)||(a=a.extend(l)),_.isUndefined(c.collections[b+"Revisions"])||(a=a.extend(k)),a)}}(window),function(){"use strict";var a=window.wpApiSettings||{};wp.api.WPApiBaseModel=Backbone.Model.extend({sync:function(b,c,d){var e;return d=d||{},_.isNull(c.get("date_gmt"))&&c.unset("date_gmt"),_.isEmpty(c.get("slug"))&&c.unset("slug"),_.isUndefined(a.nonce)||_.isNull(a.nonce)||(e=d.beforeSend,d.beforeSend=function(b){if(b.setRequestHeader("X-WP-Nonce",a.nonce),e)return e.apply(this,arguments)}),this.requireForceForDelete&&"delete"===b&&(c.url=c.url()+"?force=true"),Backbone.sync(b,c,d)},save:function(a,b){return!(!_.includes(this.methods,"PUT")&&!_.includes(this.methods,"POST"))&&Backbone.Model.prototype.save.call(this,a,b)},destroy:function(a){return!!_.includes(this.methods,"DELETE")&&Backbone.Model.prototype.destroy.call(this,a)}}),wp.api.models.Schema=wp.api.WPApiBaseModel.extend({defaults:{_links:{},namespace:null,routes:{}},initialize:function(b,c){var d=this;c=c||{},wp.api.WPApiBaseModel.prototype.initialize.call(d,b,c),d.apiRoot=c.apiRoot||a.root,d.versionString=c.versionString||a.versionString},url:function(){return this.apiRoot+this.versionString}})}(),function(){"use strict";var a=window.wpApiSettings||{};wp.api.WPApiBaseCollection=Backbone.Collection.extend({initialize:function(a,b){this.state={data:{},currentPage:null,totalPages:null,totalObjects:null},_.isUndefined(b)?this.parent="":this.parent=b.parent},sync:function(b,c,d){var e,f,g=this;return d=d||{},e=d.beforeSend,"undefined"!=typeof a.nonce&&(d.beforeSend=function(b){if(b.setRequestHeader("X-WP-Nonce",a.nonce),e)return e.apply(g,arguments)}),"read"===b&&(d.data?(g.state.data=_.clone(d.data),delete g.state.data.page):g.state.data=d.data={},"undefined"==typeof d.data.page?(g.state.currentPage=null,g.state.totalPages=null,g.state.totalObjects=null):g.state.currentPage=d.data.page-1,f=d.success,d.success=function(a,b,c){if(_.isUndefined(c)||(g.state.totalPages=parseInt(c.getResponseHeader("x-wp-totalpages"),10),g.state.totalObjects=parseInt(c.getResponseHeader("x-wp-total"),10)),null===g.state.currentPage?g.state.currentPage=1:g.state.currentPage++,f)return f.apply(this,arguments)}),Backbone.sync(b,c,d)},more:function(a){if(a=a||{},a.data=a.data||{},_.extend(a.data,this.state.data),"undefined"==typeof a.data.page){if(!this.hasMore())return!1;null===this.state.currentPage||this.state.currentPage<=1?a.data.page=2:a.data.page=this.state.currentPage+1}return this.fetch(a)},hasMore:function(){return null===this.state.totalPages||null===this.state.totalObjects||null===this.state.currentPage?null:this.state.currentPage<this.state.totalPages}})}(),function(){"use strict";var a,b={},c=window.wpApiSettings||{};window.wp=window.wp||{},wp.api=wp.api||{},_.isEmpty(c)&&(c.root=window.location.origin+"/wp-json/"),a=Backbone.Model.extend({defaults:{apiRoot:c.root,versionString:wp.api.versionString,schema:null,models:{},collections:{}},initialize:function(){var a,b=this;Backbone.Model.prototype.initialize.apply(b,arguments),a=jQuery.Deferred(),b.schemaConstructed=a.promise(),b.schemaModel=new wp.api.models.Schema(null,{apiRoot:b.get("apiRoot"),versionString:b.get("versionString")}),b.schemaModel.once("change",function(){b.constructFromSchema(),a.resolve(b)}),b.get("schema")?b.schemaModel.set(b.schemaModel.parse(b.get("schema"))):!_.isUndefined(sessionStorage)&&(_.isUndefined(c.cacheSchema)||c.cacheSchema)&&sessionStorage.getItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"))?b.schemaModel.set(b.schemaModel.parse(JSON.parse(sessionStorage.getItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"))))):b.schemaModel.fetch({success:function(a){if(!_.isUndefined(sessionStorage)&&(_.isUndefined(c.cacheSchema)||c.cacheSchema))try{sessionStorage.setItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"),JSON.stringify(a))}catch(d){}},error:function(a){window.console.log(a)}})},constructFromSchema:function(){var a,b,d,e,f=this,g=c.mapping||{models:{Categories:"Category",Comments:"Comment",Pages:"Page",PagesMeta:"PageMeta",PagesRevisions:"PageRevision",Posts:"Post",PostsCategories:"PostCategory",PostsRevisions:"PostRevision",PostsTags:"PostTag",Schema:"Schema",Statuses:"Status",Tags:"Tag",Taxonomies:"Taxonomy",Types:"Type",Users:"User"},collections:{PagesMeta:"PageMeta",PagesRevisions:"PageRevisions",PostsCategories:"PostCategories",PostsMeta:"PostMeta",PostsRevisions:"PostRevisions",PostsTags:"PostTags"}};a=[],b=[],d=f.get("apiRoot").replace(wp.api.utils.getRootUrl(),""),e={},e.models=f.get("models"),e.collections=f.get("collections"),_.each(f.schemaModel.get("routes"),function(c,e){e!==f.get(" versionString")&&e!==d&&e!=="/"+f.get("versionString").slice(0,-1)&&(/(?:.*[+)]|\/me)$/.test(e)?a.push({index:e,route:c}):b.push({index:e,route:c}))}),_.each(a,function(a){var b,c=wp.api.utils.extractRoutePart(a.index,2),d=wp.api.utils.extractRoutePart(a.index,4),h=wp.api.utils.extractRoutePart(a.index,1);"me"===h&&(c="me"),""!==d&&d!==c?(b=wp.api.utils.capitalize(d)+wp.api.utils.capitalize(c),b=g.models[b]||b,e.models[b]=wp.api.WPApiBaseModel.extend({url:function(){var a=f.get("apiRoot")+f.get("versionString")+d+"/"+(_.isUndefined(this.get("parent"))||0===this.get("parent")?this.get("parent_post"):this.get("parent"))+"/"+c;return _.isUndefined(this.get("id"))||(a+="/"+this.get("id")),a},route:a,name:b,methods:a.route.methods,initialize:function(){"Posts"!==this.name&&"Pages"!==this.name&&_.includes(this.methods,"DELETE")&&(this.requireForceForDelete=!0)}})):(b=wp.api.utils.capitalize(c),b=g.models[b]||b,e.models[b]=wp.api.WPApiBaseModel.extend({url:function(){var a=f.get("apiRoot")+f.get("versionString")+("me"===c?"users/me":c);return _.isUndefined(this.get("id"))||(a+="/"+this.get("id")),a},route:a,name:b,methods:a.route.methods})),wp.api.utils.decorateFromRoute(a.route.endpoints,e.models[b])}),_.each(b,function(a){var b,c,d=a.index.slice(a.index.lastIndexOf("/")+1),h=wp.api.utils.extractRoutePart(a.index,3);""!==h&&h!==d?(b=wp.api.utils.capitalize(h)+wp.api.utils.capitalize(d),c=g.models[b]||b,b=g.collections[b]||b,e.collections[b]=wp.api.WPApiBaseCollection.extend({url:function(){return f.get("apiRoot")+f.get("versionString")+h+"/"+this.parent+"/"+d},model:e.models[c],name:b,route:a,methods:a.route.methods})):(b=wp.api.utils.capitalize(d),c=g.models[b]||b,b=g.collections[b]||b,e.collections[b]=wp.api.WPApiBaseCollection.extend({url:f.get("apiRoot")+f.get("versionString")+d,model:e.models[c],name:b,route:a,methods:a.route.methods})),wp.api.utils.decorateFromRoute(a.route.endpoints,e.collections[b])}),_.each(e.models,function(a,b){e.models[b]=wp.api.utils.addMixinsAndHelpers(a,b,e)})}}),wp.api.endpoints=new Backbone.Collection({model:a}),wp.api.init=function(d){var e,f,g,h={};return d=d||{},h.apiRoot=d.apiRoot||c.root,h.versionString=d.versionString||c.versionString,h.schema=d.schema||null,h.schema||h.apiRoot!==c.root||h.versionString!==c.versionString||(h.schema=c.schema),b[h.apiRoot+h.versionString]||(e=wp.api.endpoints.findWhere({apiRoot:h.apiRoot,versionString:h.versionString}),e||(e=new a(h),wp.api.endpoints.add(e)),f=jQuery.Deferred(),g=f.promise(),e.schemaConstructed.done(function(a){wp.api.models=_.extend(a.get("models"),wp.api.models),wp.api.collections=_.extend(a.get("collections"),wp.api.collections),f.resolveWith(wp.api,[a])}),b[h.apiRoot+h.versionString]=g),b[h.apiRoot+h.versionString]},wp.api.loadPromise=wp.api.init()}();
\ No newline at end of file
diff --git a/wp-includes/js/wp-custom-header.js b/wp-includes/js/wp-custom-header.js
new file mode 100644
index 000000000..b2979f12e
--- /dev/null
+++ b/wp-includes/js/wp-custom-header.js
@@ -0,0 +1,450 @@
+/* global YT */
+(function( window, settings ) {
+
+	var NativeHandler, YouTubeHandler;
+
+	window.wp = window.wp || {};
+
+	// Fail gracefully in unsupported browsers.
+	if ( ! ( 'addEventListener' in window ) ) {
+		return;
+	}
+
+	/**
+	 * Trigger an event.
+	 *
+	 * @param {Element} target HTML element to dispatch the event on.
+	 * @param {string} name Event name.
+	 */
+	function trigger( target, name ) {
+		var evt;
+
+		if ( 'function' === typeof window.Event ) {
+			evt = new Event( name );
+		} else {
+			evt = document.createEvent( 'Event' );
+			evt.initEvent( name, true, true );
+		}
+
+		target.dispatchEvent( evt );
+	}
+
+	/**
+	 * Create a custom header instance.
+	 *
+	 * @class CustomHeader
+	 */
+	function CustomHeader() {
+		this.handlers = {
+			nativeVideo: new NativeHandler(),
+			youtube: new YouTubeHandler()
+		};
+	}
+
+	CustomHeader.prototype = {
+		/**
+		 * Initalize the custom header.
+		 *
+		 * If the environment supports video, loops through registered handlers
+		 * until one is found that can handle the video.
+		 */
+		initialize: function() {
+			if ( this.supportsVideo() ) {
+				for ( var id in this.handlers ) {
+					var handler = this.handlers[ id ];
+
+					if ( 'test' in handler && handler.test( settings ) ) {
+						this.activeHandler = handler.initialize.call( handler, settings );
+
+						// Dispatch custom event when the video is loaded.
+						trigger( document, 'wp-custom-header-video-loaded' );
+						break;
+					}
+				}
+			}
+		},
+
+		/**
+		 * Determines if the current environment supports video.
+		 *
+		 * Themes and plugins can override this method to change the criteria.
+		 *
+		 * @return {boolean}
+		 */
+		supportsVideo: function() {
+			// Don't load video on small screens. @todo: consider bandwidth and other factors.
+			if ( window.innerWidth < settings.minWidth || window.innerHeight < settings.minHeight ) {
+				return false;
+			}
+
+			return true;
+		},
+
+		/**
+		 * Base handler for custom handlers to extend.
+		 *
+		 * @type {BaseHandler}
+		 */
+		BaseVideoHandler: BaseHandler
+	};
+
+	/**
+	 * Create a video handler instance.
+	 *
+	 * @class BaseHandler
+	 */
+	function BaseHandler() {}
+
+	BaseHandler.prototype = {
+		/**
+		 * Initialize the video handler.
+		 *
+		 * @param {object} settings Video settings.
+		 */
+		initialize: function( settings ) {
+			var handler = this,
+				button = document.createElement( 'button' );
+
+			this.settings = settings;
+			this.container = document.getElementById( 'wp-custom-header' );
+			this.button = button;
+
+			button.setAttribute( 'type', 'button' );
+			button.setAttribute( 'id', 'wp-custom-header-video-button' );
+			button.setAttribute( 'class', 'wp-custom-header-video-button wp-custom-header-video-play' );
+			button.innerHTML = settings.l10n.play;
+
+			// Toggle video playback when the button is clicked.
+			button.addEventListener( 'click', function() {
+				if ( handler.isPaused() ) {
+					handler.play();
+				} else {
+					handler.pause();
+				}
+			});
+
+			// Update the button class and text when the video state changes.
+			this.container.addEventListener( 'play', function() {
+				button.className = 'wp-custom-header-video-button wp-custom-header-video-play';
+				button.innerHTML = settings.l10n.pause;
+				if ( 'a11y' in window.wp ) {
+					window.wp.a11y.speak( settings.l10n.playSpeak);
+				}
+			});
+
+			this.container.addEventListener( 'pause', function() {
+				button.className = 'wp-custom-header-video-button wp-custom-header-video-pause';
+				button.innerHTML = settings.l10n.play;
+				if ( 'a11y' in window.wp ) {
+					window.wp.a11y.speak( settings.l10n.pauseSpeak);
+				}
+			});
+
+			this.ready();
+		},
+
+		/**
+		 * Ready method called after a handler is initialized.
+		 *
+		 * @abstract
+		 */
+		ready: function() {},
+
+		/**
+		 * Whether the video is paused.
+		 *
+		 * @abstract
+		 * @return {boolean}
+		 */
+		isPaused: function() {},
+
+		/**
+		 * Pause the video.
+		 *
+		 * @abstract
+		 */
+		pause: function() {},
+
+		/**
+		 * Play the video.
+		 *
+		 * @abstract
+		 */
+		play: function() {},
+
+		/**
+		 * Append a video node to the header container.
+		 *
+		 * @param {Element} node HTML element.
+		 */
+		setVideo: function( node ) {
+			var editShortcutNode,
+				editShortcut = this.container.getElementsByClassName( 'customize-partial-edit-shortcut' );
+
+			if ( editShortcut.length ) {
+				editShortcutNode = this.container.removeChild( editShortcut[0] );
+			}
+
+			this.container.innerHTML = '';
+			this.container.appendChild( node );
+
+			if ( editShortcutNode ) {
+				this.container.appendChild( editShortcutNode );
+			}
+		},
+
+		/**
+		 * Show the video controls.
+		 *
+		 * Appends a play/pause button to header container.
+		 */
+		showControls: function() {
+			if ( ! this.container.contains( this.button ) ) {
+				this.container.appendChild( this.button );
+			}
+		},
+
+		/**
+		 * Whether the handler can process a video.
+		 *
+		 * @abstract
+		 * @param {object} settings Video settings.
+		 * @return {boolean}
+		 */
+		test: function() {
+			return false;
+		},
+
+		/**
+		 * Trigger an event on the header container.
+		 *
+		 * @param {string} name Event name.
+		 */
+		trigger: function( name ) {
+			trigger( this.container, name );
+		}
+	};
+
+	/**
+	 * Create a custom handler.
+	 *
+	 * @param {object} protoProps Properties to apply to the prototype.
+	 * @return CustomHandler The subclass.
+	 */
+	BaseHandler.extend = function( protoProps ) {
+		var prop;
+
+		function CustomHandler() {
+			var result = BaseHandler.apply( this, arguments );
+			return result;
+		}
+
+		CustomHandler.prototype = Object.create( BaseHandler.prototype );
+		CustomHandler.prototype.constructor = CustomHandler;
+
+		for ( prop in protoProps ) {
+			CustomHandler.prototype[ prop ] = protoProps[ prop ];
+		}
+
+		return CustomHandler;
+	};
+
+	/**
+	 * Native video handler.
+	 *
+	 * @class NativeHandler
+	 */
+	NativeHandler = BaseHandler.extend({
+		/**
+		 * Whether the native handler supports a video.
+		 *
+		 * @param {object} settings Video settings.
+		 * @return {boolean}
+		 */
+		test: function( settings ) {
+			var video = document.createElement( 'video' );
+			return video.canPlayType( settings.mimeType );
+		},
+
+		/**
+		 * Set up a native video element.
+		 */
+		ready: function() {
+			var handler = this,
+				video = document.createElement( 'video' );
+
+			video.id = 'wp-custom-header-video';
+			video.autoplay = 'autoplay';
+			video.loop = 'loop';
+			video.muted = 'muted';
+			video.width = this.settings.width;
+			video.height = this.settings.height;
+
+			video.addEventListener( 'play', function() {
+				handler.trigger( 'play' );
+			});
+
+			video.addEventListener( 'pause', function() {
+				handler.trigger( 'pause' );
+			});
+
+			video.addEventListener( 'canplay', function() {
+				handler.showControls();
+			});
+
+			this.video = video;
+			handler.setVideo( video );
+			video.src = this.settings.videoUrl;
+		},
+
+		/**
+		 * Whether the video is paused.
+		 *
+		 * @return {boolean}
+		 */
+		isPaused: function() {
+			return this.video.paused;
+		},
+
+		/**
+		 * Pause the video.
+		 */
+		pause: function() {
+			this.video.pause();
+		},
+
+		/**
+		 * Play the video.
+		 */
+		play: function() {
+			this.video.play();
+		}
+	});
+
+	/**
+	 * YouTube video handler.
+	 *
+	 * @class YouTubeHandler
+	 */
+	YouTubeHandler = BaseHandler.extend({
+		/**
+		 * Whether the handler supports a video.
+		 *
+		 * @param {object} settings Video settings.
+		 * @return {boolean}
+		 */
+		test: function( settings ) {
+			return 'video/x-youtube' === settings.mimeType;
+		},
+
+		/**
+		 * Set up a YouTube iframe.
+		 *
+		 * Loads the YouTube IFrame API if the 'YT' global doesn't exist.
+		 */
+		ready: function() {
+			var handler = this;
+
+			if ( 'YT' in window ) {
+				YT.ready( handler.loadVideo.bind( handler ) );
+			} else {
+				var tag = document.createElement( 'script' );
+				tag.src = 'https://www.youtube.com/iframe_api';
+				tag.onload = function () {
+					YT.ready( handler.loadVideo.bind( handler ) );
+				};
+
+				document.getElementsByTagName( 'head' )[0].appendChild( tag );
+			}
+		},
+
+		/**
+		 * Load a YouTube video.
+		 */
+		loadVideo: function() {
+			var handler = this,
+				video = document.createElement( 'div' ),
+				// @link http://stackoverflow.com/a/27728417
+				VIDEO_ID_REGEX = /^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/;
+
+			video.id = 'wp-custom-header-video';
+			handler.setVideo( video );
+
+			handler.player = new YT.Player( video, {
+				height: this.settings.height,
+				width: this.settings.width,
+				videoId: this.settings.videoUrl.match( VIDEO_ID_REGEX )[1],
+				events: {
+					onReady: function( e ) {
+						e.target.mute();
+						handler.showControls();
+					},
+					onStateChange: function( e ) {
+						if ( YT.PlayerState.PLAYING === e.data ) {
+							handler.trigger( 'play' );
+						} else if ( YT.PlayerState.PAUSED === e.data ) {
+							handler.trigger( 'pause' );
+						} else if ( YT.PlayerState.ENDED === e.data ) {
+							e.target.playVideo();
+						}
+					}
+				},
+				playerVars: {
+					autoplay: 1,
+					controls: 0,
+					disablekb: 1,
+					fs: 0,
+					iv_load_policy: 3,
+					loop: 1,
+					modestbranding: 1,
+					playsinline: 1,
+					rel: 0,
+					showinfo: 0
+				}
+			});
+		},
+
+		/**
+		 * Whether the video is paused.
+		 *
+		 * @return {boolean}
+		 */
+		isPaused: function() {
+			return YT.PlayerState.PAUSED === this.player.getPlayerState();
+		},
+
+		/**
+		 * Pause the video.
+		 */
+		pause: function() {
+			this.player.pauseVideo();
+		},
+
+		/**
+		 * Play the video.
+		 */
+		play: function() {
+			this.player.playVideo();
+		}
+	});
+
+	// Initialize the custom header when the DOM is ready.
+	window.wp.customHeader = new CustomHeader();
+	document.addEventListener( 'DOMContentLoaded', window.wp.customHeader.initialize.bind( window.wp.customHeader ), false );
+
+	// Selective refresh support in the Customizer.
+	if ( 'customize' in window.wp ) {
+		window.wp.customize.selectiveRefresh.bind( 'render-partials-response', function( response ) {
+			if ( 'custom_header_settings' in response ) {
+				settings = response.custom_header_settings;
+			}
+		});
+
+		window.wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) {
+			if ( 'custom_header' === placement.partial.id ) {
+				window.wp.customHeader.initialize();
+			}
+		});
+	}
+
+})( window, window._wpCustomHeaderSettings || {} );
diff --git a/wp-includes/js/wp-custom-header.min.js b/wp-includes/js/wp-custom-header.min.js
new file mode 100644
index 000000000..22bd491a1
--- /dev/null
+++ b/wp-includes/js/wp-custom-header.min.js
@@ -0,0 +1 @@
+!function(a,b){function c(b,c){var d;"function"==typeof a.Event?d=new Event(c):(d=document.createEvent("Event"),d.initEvent(c,!0,!0)),b.dispatchEvent(d)}function d(){this.handlers={nativeVideo:new f,youtube:new g}}function e(){}var f,g;a.wp=a.wp||{},"addEventListener"in a&&(d.prototype={initialize:function(){if(this.supportsVideo())for(var a in this.handlers){var d=this.handlers[a];if("test"in d&&d.test(b)){this.activeHandler=d.initialize.call(d,b),c(document,"wp-custom-header-video-loaded");break}}},supportsVideo:function(){return!(a.innerWidth<b.minWidth||a.innerHeight<b.minHeight)},BaseVideoHandler:e},e.prototype={initialize:function(b){var c=this,d=document.createElement("button");this.settings=b,this.container=document.getElementById("wp-custom-header"),this.button=d,d.setAttribute("type","button"),d.setAttribute("id","wp-custom-header-video-button"),d.setAttribute("class","wp-custom-header-video-button wp-custom-header-video-play"),d.innerHTML=b.l10n.play,d.addEventListener("click",function(){c.isPaused()?c.play():c.pause()}),this.container.addEventListener("play",function(){d.className="wp-custom-header-video-button wp-custom-header-video-play",d.innerHTML=b.l10n.pause,"a11y"in a.wp&&a.wp.a11y.speak(b.l10n.playSpeak)}),this.container.addEventListener("pause",function(){d.className="wp-custom-header-video-button wp-custom-header-video-pause",d.innerHTML=b.l10n.play,"a11y"in a.wp&&a.wp.a11y.speak(b.l10n.pauseSpeak)}),this.ready()},ready:function(){},isPaused:function(){},pause:function(){},play:function(){},setVideo:function(a){var b,c=this.container.getElementsByClassName("customize-partial-edit-shortcut");c.length&&(b=this.container.removeChild(c[0])),this.container.innerHTML="",this.container.appendChild(a),b&&this.container.appendChild(b)},showControls:function(){this.container.contains(this.button)||this.container.appendChild(this.button)},test:function(){return!1},trigger:function(a){c(this.container,a)}},e.extend=function(a){function b(){var a=e.apply(this,arguments);return a}var c;b.prototype=Object.create(e.prototype),b.prototype.constructor=b;for(c in a)b.prototype[c]=a[c];return b},f=e.extend({test:function(a){var b=document.createElement("video");return b.canPlayType(a.mimeType)},ready:function(){var a=this,b=document.createElement("video");b.id="wp-custom-header-video",b.autoplay="autoplay",b.loop="loop",b.muted="muted",b.width=this.settings.width,b.height=this.settings.height,b.addEventListener("play",function(){a.trigger("play")}),b.addEventListener("pause",function(){a.trigger("pause")}),b.addEventListener("canplay",function(){a.showControls()}),this.video=b,a.setVideo(b),b.src=this.settings.videoUrl},isPaused:function(){return this.video.paused},pause:function(){this.video.pause()},play:function(){this.video.play()}}),g=e.extend({test:function(a){return"video/x-youtube"===a.mimeType},ready:function(){var b=this;if("YT"in a)YT.ready(b.loadVideo.bind(b));else{var c=document.createElement("script");c.src="https://www.youtube.com/iframe_api",c.onload=function(){YT.ready(b.loadVideo.bind(b))},document.getElementsByTagName("head")[0].appendChild(c)}},loadVideo:function(){var a=this,b=document.createElement("div"),c=/^.*(?:(?:youtu\.be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|\&v(?:i)?=))([^#\&\?]*).*/;b.id="wp-custom-header-video",a.setVideo(b),a.player=new YT.Player(b,{height:this.settings.height,width:this.settings.width,videoId:this.settings.videoUrl.match(c)[1],events:{onReady:function(b){b.target.mute(),a.showControls()},onStateChange:function(b){YT.PlayerState.PLAYING===b.data?a.trigger("play"):YT.PlayerState.PAUSED===b.data?a.trigger("pause"):YT.PlayerState.ENDED===b.data&&b.target.playVideo()}},playerVars:{autoplay:1,controls:0,disablekb:1,fs:0,iv_load_policy:3,loop:1,modestbranding:1,playsinline:1,rel:0,showinfo:0}})},isPaused:function(){return YT.PlayerState.PAUSED===this.player.getPlayerState()},pause:function(){this.player.pauseVideo()},play:function(){this.player.playVideo()}}),a.wp.customHeader=new d,document.addEventListener("DOMContentLoaded",a.wp.customHeader.initialize.bind(a.wp.customHeader),!1),"customize"in a.wp&&(a.wp.customize.selectiveRefresh.bind("render-partials-response",function(a){"custom_header_settings"in a&&(b=a.custom_header_settings)}),a.wp.customize.selectiveRefresh.bind("partial-content-rendered",function(b){"custom_header"===b.partial.id&&a.wp.customHeader.initialize()})))}(window,window._wpCustomHeaderSettings||{});
\ No newline at end of file
diff --git a/wp-includes/js/wp-embed.js b/wp-includes/js/wp-embed.js
index 966a41f74..3be0dc724 100644
--- a/wp-includes/js/wp-embed.js
+++ b/wp-includes/js/wp-embed.js
@@ -97,15 +97,13 @@
 		for ( i = 0; i < iframes.length; i++ ) {
 			source = iframes[ i ];
 
-			if ( source.getAttribute( 'data-secret' ) ) {
-				continue;
+			if ( ! source.getAttribute( 'data-secret' ) ) {
+				/* Add secret to iframe */
+				secret = Math.random().toString( 36 ).substr( 2, 10 );
+				source.src += '#?secret=' + secret;
+				source.setAttribute( 'data-secret', secret );
 			}
 
-			/* Add secret to iframe */
-			secret = Math.random().toString( 36 ).substr( 2, 10 );
-			source.src += '#?secret=' + secret;
-			source.setAttribute( 'data-secret', secret );
-
 			/* Remove security attribute from iframes in IE10 and IE11. */
 			if ( ( isIE10 || isIE11 ) ) {
 				iframeClone = source.cloneNode( true );
diff --git a/wp-includes/js/wp-embed.min.js b/wp-includes/js/wp-embed.min.js
index 029214149..69c1f01c5 100644
--- a/wp-includes/js/wp-embed.min.js
+++ b/wp-includes/js/wp-embed.min.js
@@ -1 +1 @@
-!function(a,b){"use strict";function c(){if(!e){e=!0;var a,c,d,f,g=-1!==navigator.appVersion.indexOf("MSIE 10"),h=!!navigator.userAgent.match(/Trident.*rv:11\./),i=b.querySelectorAll("iframe.wp-embedded-content");for(c=0;c<i.length;c++)if(d=i[c],!d.getAttribute("data-secret")){if(f=Math.random().toString(36).substr(2,10),d.src+="#?secret="+f,d.setAttribute("data-secret",f),g||h)a=d.cloneNode(!0),a.removeAttribute("security"),d.parentNode.replaceChild(a,d)}else;}}var d=!1,e=!1;if(b.querySelector)if(a.addEventListener)d=!0;if(a.wp=a.wp||{},!a.wp.receiveEmbedMessage)if(a.wp.receiveEmbedMessage=function(c){var d=c.data;if(d.secret||d.message||d.value)if(!/[^a-zA-Z0-9]/.test(d.secret)){var e,f,g,h,i,j=b.querySelectorAll('iframe[data-secret="'+d.secret+'"]'),k=b.querySelectorAll('blockquote[data-secret="'+d.secret+'"]');for(e=0;e<k.length;e++)k[e].style.display="none";for(e=0;e<j.length;e++)if(f=j[e],c.source===f.contentWindow){if(f.removeAttribute("style"),"height"===d.message){if(g=parseInt(d.value,10),g>1e3)g=1e3;else if(~~g<200)g=200;f.height=g}if("link"===d.message)if(h=b.createElement("a"),i=b.createElement("a"),h.href=f.getAttribute("src"),i.href=d.value,i.host===h.host)if(b.activeElement===f)a.top.location.href=d.value}else;}},d)a.addEventListener("message",a.wp.receiveEmbedMessage,!1),b.addEventListener("DOMContentLoaded",c,!1),a.addEventListener("load",c,!1)}(window,document);
\ No newline at end of file
+!function(a,b){"use strict";function c(){if(!e){e=!0;var a,c,d,f,g=-1!==navigator.appVersion.indexOf("MSIE 10"),h=!!navigator.userAgent.match(/Trident.*rv:11\./),i=b.querySelectorAll("iframe.wp-embedded-content");for(c=0;c<i.length;c++){if(d=i[c],!d.getAttribute("data-secret"))f=Math.random().toString(36).substr(2,10),d.src+="#?secret="+f,d.setAttribute("data-secret",f);if(g||h)a=d.cloneNode(!0),a.removeAttribute("security"),d.parentNode.replaceChild(a,d)}}}var d=!1,e=!1;if(b.querySelector)if(a.addEventListener)d=!0;if(a.wp=a.wp||{},!a.wp.receiveEmbedMessage)if(a.wp.receiveEmbedMessage=function(c){var d=c.data;if(d.secret||d.message||d.value)if(!/[^a-zA-Z0-9]/.test(d.secret)){var e,f,g,h,i,j=b.querySelectorAll('iframe[data-secret="'+d.secret+'"]'),k=b.querySelectorAll('blockquote[data-secret="'+d.secret+'"]');for(e=0;e<k.length;e++)k[e].style.display="none";for(e=0;e<j.length;e++)if(f=j[e],c.source===f.contentWindow){if(f.removeAttribute("style"),"height"===d.message){if(g=parseInt(d.value,10),g>1e3)g=1e3;else if(~~g<200)g=200;f.height=g}if("link"===d.message)if(h=b.createElement("a"),i=b.createElement("a"),h.href=f.getAttribute("src"),i.href=d.value,i.host===h.host)if(b.activeElement===f)a.top.location.href=d.value}else;}},d)a.addEventListener("message",a.wp.receiveEmbedMessage,!1),b.addEventListener("DOMContentLoaded",c,!1),a.addEventListener("load",c,!1)}(window,document);
\ No newline at end of file
diff --git a/wp-includes/js/wp-emoji-loader.js b/wp-includes/js/wp-emoji-loader.js
index ff73a885c..0b474f83f 100644
--- a/wp-includes/js/wp-emoji-loader.js
+++ b/wp-includes/js/wp-emoji-loader.js
@@ -1,25 +1,33 @@
 ( function( window, document, settings ) {
 	var src, ready, ii, tests;
 
+	/*
+	 * Create a canvas element for testing native browser support
+	 * of emoji.
+	 */
+	var canvas = document.createElement( 'canvas' );
+	var context = canvas.getContext && canvas.getContext( '2d' );
+
 	/**
 	 * Detect if the browser supports rendering emoji or flag emoji. Flag emoji are a single glyph
 	 * made of two characters, so some browsers (notably, Firefox OS X) don't support them.
 	 *
 	 * @since 4.2.0
 	 *
-	 * @param type {String} Whether to test for support of "simple", "flag", "diversity" or "unicode8" emoji.
+	 * @param type {String} Whether to test for support of "flag" or "emoji4" emoji.
 	 * @return {Boolean} True if the browser can render emoji, false if it cannot.
 	 */
 	function browserSupportsEmoji( type ) {
-		var canvas = document.createElement( 'canvas' ),
-			context = canvas.getContext && canvas.getContext( '2d' ),
-			stringFromCharCode = String.fromCharCode,
-			flag, flag2, tonedata, tone, tone2;
+		var stringFromCharCode = String.fromCharCode,
+			flag, flag2, technologist, technologist2;
 
 		if ( ! context || ! context.fillText ) {
 			return false;
 		}
 
+		// Cleanup from previous test.
+		context.clearRect( 0, 0, canvas.width, canvas.height );
+
 		/*
 		 * Chrome on OS X added native emoji rendering in M41. Unfortunately,
 		 * it doesn't work when the font is bolder than 500 weight. So, we
@@ -33,13 +41,13 @@
 				/*
 				 * This works because the image will be one of three things:
 				 * - Two empty squares, if the browser doesn't render emoji
-				 * - Two squares with 'A' and 'U' in them, if the browser doesn't render flag emoji
-				 * - The Australian flag
+				 * - Two squares with 'U' and 'N' in them, if the browser doesn't render flag emoji
+				 * - The United Nations flag
 				 *
 				 * The first two will encode to small images (1-2KB data URLs), the third will encode
 				 * to a larger image (4-5KB data URL).
 				 */
-				context.fillText( stringFromCharCode( 55356, 56806, 55356, 56826 ), 0, 0 );
+				context.fillText( stringFromCharCode( 55356, 56826, 55356, 56819 ), 0, 0 );
 				if ( canvas.toDataURL().length < 3000 ) {
 					return false;
 				}
@@ -63,45 +71,23 @@
 				flag2 = canvas.toDataURL();
 
 				return flag !== flag2;
-			case 'diversity':
-				/*
-				 * This tests if the browser supports the Emoji Diversity specification, by rendering an
-				 * emoji with no skin tone specified (in this case, Santa). It then adds a skin tone, and
-				 * compares if the emoji rendering has changed.
-				 */
-				context.fillText( stringFromCharCode( 55356, 57221 ), 0, 0 );
-				tonedata = context.getImageData( 16, 16, 1, 1 ).data;
-				tone = tonedata[0] + ',' + tonedata[1] + ',' + tonedata[2] + ',' + tonedata[3];
-
-				context.fillText( stringFromCharCode( 55356, 57221, 55356, 57343 ), 0, 0 );
-				// Chrome has issues comparing arrays, and Safari has issues converting arrays to strings.
-				// So, we create our own string and compare that, instead.
-				tonedata = context.getImageData( 16, 16, 1, 1 ).data;
-				tone2 = tonedata[0] + ',' + tonedata[1] + ',' + tonedata[2] + ',' + tonedata[3];
-
-				return tone !== tone2;
-			case 'simple':
-				/*
-				 * This creates a smiling emoji, and checks to see if there is any image data in the
-				 * center pixel. In browsers that don't support emoji, the character will be rendered
-				 * as an empty square, so the center pixel will be blank.
-				 */
-				context.fillText( stringFromCharCode( 55357, 56835 ), 0, 0 );
-				return context.getImageData( 16, 16, 1, 1 ).data[0] !== 0;
-			case 'unicode8':
+			case 'emoji4':
 				/*
-				 * To check for Unicode 8 support, let's try rendering the most important advancement
-				 * that the Unicode Consortium have made in years: the burrito.
-				 */
-				context.fillText( stringFromCharCode( 55356, 57135 ), 0, 0 );
-				return context.getImageData( 16, 16, 1, 1 ).data[0] !== 0;
-			case 'unicode9':
-				/*
-				 * Do Unicode 9 emoji render?
-				 * ¯\_(ツ)_/¯
+				 * Emoji 4 has the best technologists. So does WordPress!
+				 *
+				 * To test for support, try to render a new emoji (woman technologist: medium skin tone),
+				 * then compare it to how it would look if the browser doesn't render it correctly
+				 * (woman technologist: medium skin tone + personal computer).
 				 */
-				context.fillText( stringFromCharCode( 55358, 56631 ), 0, 0 );
-				return context.getImageData( 16, 16, 1, 1 ).data[0] !== 0;
+				context.fillText( stringFromCharCode( 55357, 56425, 55356, 57341, 8205, 55357, 56507), 0, 0 );
+				technologist = canvas.toDataURL();
+
+				context.clearRect( 0, 0, canvas.width, canvas.height );
+
+				context.fillText( stringFromCharCode( 55357, 56425, 55356, 57341, 55357, 56507), 0, 0 );
+				technologist2 = canvas.toDataURL();
+
+				return technologist !== technologist2;
 		}
 
 		return false;
@@ -111,11 +97,11 @@
 		var script = document.createElement( 'script' );
 
 		script.src = src;
-		script.type = 'text/javascript';
+		script.defer = script.type = 'text/javascript';
 		document.getElementsByTagName( 'head' )[0].appendChild( script );
 	}
 
-	tests = Array( 'simple', 'flag', 'unicode8', 'diversity', 'unicode9' );
+	tests = Array( 'flag', 'emoji4' );
 
 	settings.supports = {
 		everything: true,
diff --git a/wp-includes/js/wp-emoji-loader.min.js b/wp-includes/js/wp-emoji-loader.min.js
index 8ad29f710..86442dcdf 100644
--- a/wp-includes/js/wp-emoji-loader.min.js
+++ b/wp-includes/js/wp-emoji-loader.min.js
@@ -1 +1 @@
-!function(a,b,c){function d(a){var c,d,e,f,g,h=b.createElement("canvas"),i=h.getContext&&h.getContext("2d"),j=String.fromCharCode;if(!i||!i.fillText)return!1;switch(i.textBaseline="top",i.font="600 32px Arial",a){case"flag":return i.fillText(j(55356,56806,55356,56826),0,0),!(h.toDataURL().length<3e3)&&(i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,65039,8205,55356,57096),0,0),c=h.toDataURL(),i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,55356,57096),0,0),d=h.toDataURL(),c!==d);case"diversity":return i.fillText(j(55356,57221),0,0),e=i.getImageData(16,16,1,1).data,f=e[0]+","+e[1]+","+e[2]+","+e[3],i.fillText(j(55356,57221,55356,57343),0,0),e=i.getImageData(16,16,1,1).data,g=e[0]+","+e[1]+","+e[2]+","+e[3],f!==g;case"simple":return i.fillText(j(55357,56835),0,0),0!==i.getImageData(16,16,1,1).data[0];case"unicode8":return i.fillText(j(55356,57135),0,0),0!==i.getImageData(16,16,1,1).data[0];case"unicode9":return i.fillText(j(55358,56631),0,0),0!==i.getImageData(16,16,1,1).data[0]}return!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i;for(i=Array("simple","flag","unicode8","diversity","unicode9"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
\ No newline at end of file
+!function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),!(j.toDataURL().length<3e3)&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,65039,8205,55356,57096),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,55356,57096),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55357,56425,55356,57341,8205,55357,56507),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55357,56425,55356,57341,55357,56507),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
\ No newline at end of file
diff --git a/wp-includes/js/wp-emoji-release.min.js b/wp-includes/js/wp-emoji-release.min.js
index ef72bc4f3..c2faec0ad 100644
--- a/wp-includes/js/wp-emoji-release.min.js
+++ b/wp-includes/js/wp-emoji-release.min.js
@@ -1,4 +1,4 @@
 // Source: wp-includes/js/twemoji.min.js
-var twemoji=function(){"use strict";function a(a){return document.createTextNode(a)}function b(a){return a.replace(u,h)}function c(a,b){return"".concat(b.base,b.size,"/",a,b.ext)}function d(a,b){for(var c,e,f=a.childNodes,g=f.length;g--;)c=f[g],e=c.nodeType,3===e?b.push(c):1!==e||v.test(c.nodeName)||d(c,b);return b}function e(a){return o(a.indexOf(t)<0?a.replace(s,""):a)}function f(b,c){for(var f,g,h,i,j,k,l,m,n,o,p,q,s,t=d(b,[]),u=t.length;u--;){for(h=!1,i=document.createDocumentFragment(),j=t[u],k=j.nodeValue,m=0;l=r.exec(k);){if(n=l.index,n!==m&&i.appendChild(a(k.slice(m,n))),p=l[0],q=e(p),m=n+p.length,s=c.callback(q,c)){o=new Image,o.onerror=c.onerror,o.setAttribute("draggable","false"),f=c.attributes(p,q);for(g in f)f.hasOwnProperty(g)&&0!==g.indexOf("on")&&!o.hasAttribute(g)&&o.setAttribute(g,f[g]);o.className=c.className,o.alt=p,o.src=s,h=!0,i.appendChild(o)}o||i.appendChild(a(p)),o=null}h&&(m<k.length&&i.appendChild(a(k.slice(m))),j.parentNode.replaceChild(i,j))}return b}function g(a,c){return m(a,function(a){var d,f,g=a,h=e(a),i=c.callback(h,c);if(i){g="<img ".concat('class="',c.className,'" ','draggable="false" ','alt="',a,'"',' src="',i,'"'),d=c.attributes(a,h);for(f in d)d.hasOwnProperty(f)&&0!==f.indexOf("on")&&g.indexOf(" "+f+"=")===-1&&(g=g.concat(" ",f,'="',b(d[f]),'"'));g=g.concat(">")}return g})}function h(a){return q[a]}function i(){return null}function j(a){return"number"==typeof a?a+"x"+a:a}function k(a){var b="string"==typeof a?parseInt(a,16):a;return b<65536?w(b):(b-=65536,w(55296+(b>>10),56320+(1023&b)))}function l(a,b){return b&&"function"!=typeof b||(b={callback:b}),("string"==typeof a?g:f)(a,{callback:b.callback||c,attributes:"function"==typeof b.attributes?b.attributes:i,base:"string"==typeof b.base?b.base:p.base,ext:b.ext||p.ext,size:b.folder||j(b.size||p.size),className:b.className||p.className,onerror:b.onerror||p.onerror})}function m(a,b){return String(a).replace(r,b)}function n(a){r.lastIndex=0;var b=r.test(a);return r.lastIndex=0,b}function o(a,b){for(var c=[],d=0,e=0,f=0;f<a.length;)d=a.charCodeAt(f++),e?(c.push((65536+(e-55296<<10)+(d-56320)).toString(16)),e=0):55296<=d&&d<=56319?e=d:c.push(d.toString(16));return c.join(b||"-")}var p={base:"https://twemoji.maxcdn.com/2/",ext:".png",size:"72x72",className:"emoji",convert:{fromCodePoint:k,toCodePoint:o},onerror:function(){this.parentNode&&this.parentNode.replaceChild(a(this.alt),this)},parse:l,replace:m,test:n},q={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},r=/\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|(?:[\u0023\u002a\u0030-\u0039])\ufe0f?\u20e3|(?:(?:\ud83c\udfcb|\ud83d[\udd75\udd90]|[\u261d\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0]|\ud83e[\udd18-\udd1e\udd26\udd30\udd33-\udd39\udd3c-\udd3e]|[\u270a\u270b])(?:\ud83c[\udffb-\udfff]|)|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a-\udc6d\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\udecc\uded0-\uded2\udeeb\udeec\udef4-\udef6]|\ud83e[\udd10-\udd17\udd20-\udd25\udd27\udd3a\udd40-\udd45\udd47-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|[\u23e9-\u23ec\u23f0\u23f3\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a]|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcc-\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd74\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u00a9\u00ae\u203c\u2049\u2122\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2694\u2696\u2697\u2699\u269b\u269c\u26a0\u26a1\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f7\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))/g,s=/\uFE0F/g,t=String.fromCharCode(8205),u=/[&<>'"]/g,v=/IFRAME|NOFRAMES|NOSCRIPT|SCRIPT|SELECT|STYLE|TEXTAREA|[a-z]/,w=String.fromCharCode;return p}();
+var twemoji=function(){"use strict";function a(a){return document.createTextNode(a)}function b(a){return a.replace(u,h)}function c(a,b){return"".concat(b.base,b.size,"/",a,b.ext)}function d(a,b){for(var c,e,f=a.childNodes,g=f.length;g--;)c=f[g],e=c.nodeType,3===e?b.push(c):1!==e||v.test(c.nodeName)||d(c,b);return b}function e(a){return o(a.indexOf(t)<0?a.replace(s,""):a)}function f(b,c){for(var f,g,h,i,j,k,l,m,n,o,p,q,s,t=d(b,[]),u=t.length;u--;){for(h=!1,i=document.createDocumentFragment(),j=t[u],k=j.nodeValue,m=0;l=r.exec(k);){if(n=l.index,n!==m&&i.appendChild(a(k.slice(m,n))),p=l[0],q=e(p),m=n+p.length,s=c.callback(q,c)){o=new Image,o.onerror=c.onerror,o.setAttribute("draggable","false"),f=c.attributes(p,q);for(g in f)f.hasOwnProperty(g)&&0!==g.indexOf("on")&&!o.hasAttribute(g)&&o.setAttribute(g,f[g]);o.className=c.className,o.alt=p,o.src=s,h=!0,i.appendChild(o)}o||i.appendChild(a(p)),o=null}h&&(m<k.length&&i.appendChild(a(k.slice(m))),j.parentNode.replaceChild(i,j))}return b}function g(a,c){return m(a,function(a){var d,f,g=a,h=e(a),i=c.callback(h,c);if(i){g="<img ".concat('class="',c.className,'" ','draggable="false" ','alt="',a,'"',' src="',i,'"'),d=c.attributes(a,h);for(f in d)d.hasOwnProperty(f)&&0!==f.indexOf("on")&&g.indexOf(" "+f+"=")===-1&&(g=g.concat(" ",f,'="',b(d[f]),'"'));g=g.concat(">")}return g})}function h(a){return q[a]}function i(){return null}function j(a){return"number"==typeof a?a+"x"+a:a}function k(a){var b="string"==typeof a?parseInt(a,16):a;return b<65536?w(b):(b-=65536,w(55296+(b>>10),56320+(1023&b)))}function l(a,b){return b&&"function"!=typeof b||(b={callback:b}),("string"==typeof a?g:f)(a,{callback:b.callback||c,attributes:"function"==typeof b.attributes?b.attributes:i,base:"string"==typeof b.base?b.base:p.base,ext:b.ext||p.ext,size:b.folder||j(b.size||p.size),className:b.className||p.className,onerror:b.onerror||p.onerror})}function m(a,b){return String(a).replace(r,b)}function n(a){r.lastIndex=0;var b=r.test(a);return r.lastIndex=0,b}function o(a,b){for(var c=[],d=0,e=0,f=0;f<a.length;)d=a.charCodeAt(f++),e?(c.push((65536+(e-55296<<10)+(d-56320)).toString(16)),e=0):55296<=d&&d<=56319?e=d:c.push(d.toString(16));return c.join(b||"-")}var p={base:"https://twemoji.maxcdn.com/2/",ext:".png",size:"72x72",className:"emoji",convert:{fromCodePoint:k,toCodePoint:o},onerror:function(){this.parentNode&&this.parentNode.replaceChild(a(this.alt),this)},parse:l,replace:m,test:n},q={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},r=/\ud83d[\udc68-\udc69](?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92])|(?:\ud83c[\udfcb\udfcc]|\ud83d\udd75|\u26f9)(?:\ufe0f|\ud83c[\udffb-\udfff])\u200d[\u2640\u2642]\ufe0f|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd37-\udd39\udd3d\udd3e])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|(?:[\u0023\u002a\u0030-\u0039])\ufe0f?\u20e3|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd18-\udd1c\udd1e\udd26\udd30\udd33-\udd39\udd3d\udd3e]|[\u270a\u270b])(?:\ud83c[\udffb-\udfff]|)|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud800\udc00|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a-\udc6d\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\udeeb\udeec\udef4-\udef6]|\ud83e[\udd10-\udd17\udd1d\udd20-\udd25\udd27\udd3a\udd3c\udd40-\udd45\udd47-\udd4b\udd50-\udd5e\udd80-\udd91\uddc0]|[\u23e9-\u23ec\u23f0\u23f3\u2640\u2642\u2695\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a]|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u00a9\u00ae\u203c\u2049\u2122\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2694\u2696\u2697\u2699\u269b\u269c\u26a0\u26a1\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))/g,s=/\uFE0F/g,t=String.fromCharCode(8205),u=/[&<>'"]/g,v=/IFRAME|NOFRAMES|NOSCRIPT|SCRIPT|SELECT|STYLE|TEXTAREA|[a-z]/,w=String.fromCharCode;return p}();
 // Source: wp-includes/js/wp-emoji.min.js
 !function(a,b){function c(){function c(){return!j.implementation.hasFeature||j.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image","1.1")}function d(){if(!k){if("undefined"==typeof a.twemoji){if(l>600)return;return a.clearTimeout(h),h=a.setTimeout(d,50),void l++}g=a.twemoji,k=!0,i&&new i(function(a){for(var b,c,d,g,h=a.length;h--;){if(b=a[h].addedNodes,c=a[h].removedNodes,d=b.length,1===d&&1===c.length&&3===b[0].nodeType&&"IMG"===c[0].nodeName&&b[0].data===c[0].alt&&"load-failed"===c[0].getAttribute("data-error"))return;for(;d--;){if(g=b[d],3===g.nodeType){if(!g.parentNode)continue;if(m)for(;g.nextSibling&&3===g.nextSibling.nodeType;)g.nodeValue=g.nodeValue+g.nextSibling.nodeValue,g.parentNode.removeChild(g.nextSibling);g=g.parentNode}!g||1!==g.nodeType||g.className&&"string"==typeof g.className&&g.className.indexOf("wp-exclude-emoji")!==-1||e(g.textContent)&&f(g)}}}).observe(j.body,{childList:!0,subtree:!0}),f(j.body)}}function e(a){var b=/[\u203C\u2049\u20E3\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2300\u231A\u231B\u2328\u2388\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638\u2639\u263A\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692\u2693\u2694\u2696\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753\u2754\u2755\u2757\u2763\u2764\u2795\u2796\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05\u2B06\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]/,c=/[\uDC00-\uDFFF]/;return!!a&&(c.test(a)||b.test(a))}function f(a,d){var e;return!b.supports.everything&&g&&a&&("string"==typeof a||a.childNodes&&a.childNodes.length)?(d=d||{},e={base:c()?b.svgUrl:b.baseUrl,ext:c()?b.svgExt:b.ext,className:d.className||"emoji",callback:function(a,c){switch(a){case"a9":case"ae":case"2122":case"2194":case"2660":case"2663":case"2665":case"2666":return!1}return!(b.supports.everythingExceptFlag&&!/^1f1(?:e[6-9a-f]|f[0-9a-f])-1f1(?:e[6-9a-f]|f[0-9a-f])$/.test(a)&&!/^(1f3f3-fe0f-200d-1f308|1f3f4-200d-2620-fe0f)$/.test(a))&&"".concat(c.base,a,c.ext)},onerror:function(){g.parentNode&&(this.setAttribute("data-error","load-failed"),g.parentNode.replaceChild(j.createTextNode(g.alt),g))}},"object"==typeof d.imgAttr&&(e.attributes=function(){return d.imgAttr}),g.parse(a,e)):a}var g,h,i=a.MutationObserver||a.WebKitMutationObserver||a.MozMutationObserver,j=a.document,k=!1,l=0,m=a.navigator.userAgent.indexOf("Trident/7.0")>0;return b&&(b.DOMReady?d():b.readyCallback=d),{parse:f,test:e}}a.wp=a.wp||{},a.wp.emoji=new c}(window,window._wpemojiSettings);
\ No newline at end of file
diff --git a/wp-includes/js/wp-lists.js b/wp-includes/js/wp-lists.js
index 2b8e51339..c73471dbc 100644
--- a/wp-includes/js/wp-lists.js
+++ b/wp-includes/js/wp-lists.js
@@ -1,501 +1,854 @@
 /* global ajaxurl, wpAjax */
-(function($) {
-var fs = {add:'ajaxAdd',del:'ajaxDel',dim:'ajaxDim',process:'process',recolor:'recolor'}, wpList;
 
+/**
+ * @param {jQuery} $ jQuery object.
+ */
+( function( $ ) {
+var functions = {
+	add:     'ajaxAdd',
+	del:     'ajaxDel',
+	dim:     'ajaxDim',
+	process: 'process',
+	recolor: 'recolor'
+}, wpList;
+
+/**
+ * @namespace
+ */
 wpList = {
+
+	/**
+	 * @member {object}
+	 */
 	settings: {
-		url: ajaxurl, type: 'POST',
+
+		/**
+		 * URL for Ajax requests.
+		 *
+		 * @member {string}
+		 */
+		url: ajaxurl,
+
+		/**
+		 * The HTTP method to use for Ajax requests.
+		 *
+		 * @member {string}
+		 */
+		type: 'POST',
+
+		/**
+		 * ID of the element the parsed Ajax response will be stored in.
+		 *
+		 * @member {string}
+		 */
 		response: 'ajax-response',
 
+		/**
+		 * The type of list.
+		 *
+		 * @member {string}
+		 */
 		what: '',
-		alt: 'alternate', altOffset: 0,
-		addColor: null, delColor: null, dimAddColor: null, dimDelColor: null,
 
+		/**
+		 * CSS class name for alternate styling.
+		 *
+		 * @member {string}
+		 */
+		alt: 'alternate',
+
+		/**
+		 * Offset to start alternate styling from.
+		 *
+		 * @member {number}
+		 */
+		altOffset: 0,
+
+		/**
+		 * Color used in animation when adding an element.
+		 *
+		 * Can be 'none' to disable the animation.
+		 *
+		 * @member {string}
+		 */
+		addColor: '#ffff33',
+
+		/**
+		 * Color used in animation when deleting an element.
+		 *
+		 * Can be 'none' to disable the animation.
+		 *
+		 * @member {string}
+		 */
+		delColor: '#faafaa',
+
+		/**
+		 * Color used in dim add animation.
+		 *
+		 * Can be 'none' to disable the animation.
+		 *
+		 * @member {string}
+		 */
+		dimAddColor: '#ffff33',
+
+		/**
+		 * Color used in dim delete animation.
+		 *
+		 * Can be 'none' to disable the animation.
+		 *
+		 * @member {string}
+		 */
+		dimDelColor: '#ff3333',
+
+		/**
+		 * Callback that's run before a request is made.
+		 *
+		 * @callback wpList~confirm
+		 * @param {object}      this
+		 * @param {HTMLElement} list            The list DOM element.
+		 * @param {object}      settings        Settings for the current list.
+		 * @param {string}      action          The type of action to perform: 'add', 'delete', or 'dim'.
+		 * @param {string}      backgroundColor Background color of the list's DOM element.
+		 * @returns {boolean} Whether to proceed with the action or not.
+		 */
 		confirm: null,
-		addBefore: null, addAfter: null,
-		delBefore: null, delAfter: null,
-		dimBefore: null, dimAfter: null
+
+		/**
+		 * Callback that's run before an item gets added to the list.
+		 *
+		 * Allows to cancel the request.
+		 *
+		 * @callback wpList~addBefore
+		 * @param {object} settings Settings for the Ajax request.
+		 * @returns {object|boolean} Settings for the Ajax request or false to abort.
+		 */
+		addBefore: null,
+
+		/**
+		 * Callback that's run after an item got added to the list.
+		 *
+		 * @callback wpList~addAfter
+		 * @param {XML}    returnedResponse Raw response returned from the server.
+		 * @param {object} settings         Settings for the Ajax request.
+		 * @param {jqXHR}  settings.xml     jQuery XMLHttpRequest object.
+		 * @param {string} settings.status  Status of the request: 'success', 'notmodified', 'nocontent', 'error',
+		 *                                  'timeout', 'abort', or 'parsererror'.
+		 * @param {object} settings.parsed  Parsed response object.
+		 */
+		addAfter: null,
+
+		/**
+		 * Callback that's run before an item gets deleted from the list.
+		 *
+		 * Allows to cancel the request.
+		 *
+		 * @callback wpList~delBefore
+		 * @param {object}      settings Settings for the Ajax request.
+		 * @param {HTMLElement} list     The list DOM element.
+		 * @returns {object|boolean} Settings for the Ajax request or false to abort.
+		 */
+		delBefore: null,
+
+		/**
+		 * Callback that's run after an item got deleted from the list.
+		 *
+		 * @callback wpList~delAfter
+		 * @param {XML}    returnedResponse Raw response returned from the server.
+		 * @param {object} settings         Settings for the Ajax request.
+		 * @param {jqXHR}  settings.xml     jQuery XMLHttpRequest object.
+		 * @param {string} settings.status  Status of the request: 'success', 'notmodified', 'nocontent', 'error',
+		 *                                  'timeout', 'abort', or 'parsererror'.
+		 * @param {object} settings.parsed  Parsed response object.
+		 */
+		delAfter: null,
+
+		/**
+		 * Callback that's run before an item gets dim'd.
+		 *
+		 * Allows to cancel the request.
+		 *
+		 * @callback wpList~dimBefore
+		 * @param {object} settings Settings for the Ajax request.
+		 * @returns {object|boolean} Settings for the Ajax request or false to abort.
+		 */
+		dimBefore: null,
+
+		/**
+		 * Callback that's run after an item got dim'd.
+		 *
+		 * @callback wpList~dimAfter
+		 * @param {XML}    returnedResponse Raw response returned from the server.
+		 * @param {object} settings         Settings for the Ajax request.
+		 * @param {jqXHR}  settings.xml     jQuery XMLHttpRequest object.
+		 * @param {string} settings.status  Status of the request: 'success', 'notmodified', 'nocontent', 'error',
+		 *                                  'timeout', 'abort', or 'parsererror'.
+		 * @param {object} settings.parsed  Parsed response object.
+		 */
+		dimAfter: null
 	},
 
-	nonce: function(e,s) {
-		var url = wpAjax.unserialize(e.attr('href'));
-		return s.nonce || url._ajax_nonce || $('#' + s.element + ' input[name="_ajax_nonce"]').val() || url._wpnonce || $('#' + s.element + ' input[name="_wpnonce"]').val() || 0;
+	/**
+	 * Finds a nonce.
+	 *
+	 * 1. Nonce in settings.
+	 * 2. `_ajax_nonce` value in element's href attribute.
+	 * 3. `_ajax_nonce` input field that is a descendant of element.
+	 * 4. `_wpnonce` value in element's href attribute.
+	 * 5. `_wpnonce` input field that is a descendant of element.
+	 * 6. 0 if none can be found.
+	 *
+	 * @param {jQuery} element  Element that triggered the request.
+	 * @param {object} settings Settings for the Ajax request.
+	 * @returns {string|number} Nonce
+	 */
+	nonce: function( element, settings ) {
+		var url      = wpAjax.unserialize( element.attr( 'href' ) ),
+			$element = $( '#' + settings.element );
+
+		return settings.nonce || url._ajax_nonce || $element.find( 'input[name="_ajax_nonce"]' ).val() || url._wpnonce || $element.find( 'input[name="_wpnonce"]' ).val() || 0;
 	},
 
 	/**
 	 * Extract list item data from a DOM element.
 	 *
-	 * @param  {HTMLElement} e The DOM element.
-	 * @param  {string}      t
-	 * @return {array}
+	 * Example 1: data-wp-lists="delete:the-comment-list:comment-{comment_ID}:66cc66:unspam=1"
+	 * Example 2: data-wp-lists="dim:the-comment-list:comment-{comment_ID}:unapproved:e7e7d3:e7e7d3:new=approved"
+	 *
+	 * Returns an unassociated array with the following data:
+	 * data[0] - Data identifier: 'list', 'add', 'delete', or 'dim'.
+	 * data[1] - ID of the corresponding list. If data[0] is 'list', the type of list ('comment', 'category', etc).
+	 * data[2] - ID of the parent element of all inputs necessary for the request.
+	 * data[3] - Hex color to be used in this request. If data[0] is 'dim', dim class.
+	 * data[4] - Additional arguments in query syntax that are added to the request. Example: 'post_id=1234'.
+	 *           If data[0] is 'dim', dim add color.
+	 * data[5] - Only available if data[0] is 'dim', dim delete color.
+	 * data[6] - Only available if data[0] is 'dim', additional arguments in query syntax that are added to the request.
+	 *
+	 * Result for Example 1:
+	 * data[0] - delete
+	 * data[1] - the-comment-list
+	 * data[2] - comment-{comment_ID}
+	 * data[3] - 66cc66
+	 * data[4] - unspam=1
+	 *
+	 * @param  {HTMLElement} element The DOM element.
+	 * @param  {string}      type    The type of data to look for: 'list', 'add', 'delete', or 'dim'.
+	 * @returns {Array} Extracted list item data.
 	 */
-	parseData: function(e,t) {
-		var d = [], wpListsData;
+	parseData: function( element, type ) {
+		var data = [], wpListsData;
 
 		try {
-			wpListsData = $(e).attr('data-wp-lists') || '';
-			wpListsData = wpListsData.match(new RegExp(t+':[\\S]+'));
+			wpListsData = $( element ).data( 'wp-lists' ) || '';
+			wpListsData = wpListsData.match( new RegExp( type + ':[\\S]+' ) );
 
-			if ( wpListsData )
-				d = wpListsData[0].split(':');
-		} catch(r) {}
+			if ( wpListsData ) {
+				data = wpListsData[0].split( ':' );
+			}
+		} catch ( error ) {}
 
-		return d;
+		return data;
 	},
 
-	pre: function(e,s,a) {
-		var bg, r;
+	/**
+	 * Calls a confirm callback to verify the action that is about to be performed.
+	 *
+	 * @param {HTMLElement} list     The DOM element.
+	 * @param {object}      settings Settings for this list.
+	 * @param {string}      action   The type of action to perform: 'add', 'delete', or 'dim'.
+	 * @returns {object|boolean} Settings if confirmed, false if not.
+	 */
+	pre: function( list, settings, action ) {
+		var $element, backgroundColor, confirmed;
 
-		s = $.extend( {}, this.wpList.settings, {
+		settings = $.extend( {}, this.wpList.settings, {
 			element: null,
-			nonce: 0,
-			target: e.get(0)
-		}, s || {} );
-
-		if ( $.isFunction( s.confirm ) ) {
-			if ( 'add' != a ) {
-				bg = $('#' + s.element).css('backgroundColor');
-				$('#' + s.element).css('backgroundColor', '#FF9966');
+			nonce:   0,
+			target:  list.get( 0 )
+		}, settings || {} );
+
+		if ( $.isFunction( settings.confirm ) ) {
+			$element = $( '#' + settings.element );
+
+			if ( 'add' !== action ) {
+				backgroundColor = $element.css( 'backgroundColor' );
+				$element.css( 'backgroundColor', '#ff9966' );
 			}
-			r = s.confirm.call(this, e, s, a, bg);
 
-			if ( 'add' != a )
-				$('#' + s.element).css('backgroundColor', bg );
+			confirmed = settings.confirm.call( this, list, settings, action, backgroundColor );
 
-			if ( !r )
+			if ( 'add' !== action ) {
+				$element.css( 'backgroundColor', backgroundColor );
+			}
+
+			if ( ! confirmed ) {
 				return false;
+			}
 		}
 
-		return s;
+		return settings;
 	},
 
-	ajaxAdd: function( e, s ) {
-		e = $(e);
-		s = s || {};
-		var list = this, data = wpList.parseData(e,'add'), es, valid, formData, res, rres;
-
-		s = wpList.pre.call( list, e, s, 'add' );
+	/**
+	 * Adds an item to the list via AJAX.
+	 *
+	 * @param {HTMLElement} element  The DOM element.
+	 * @param {object}      settings Settings for this list.
+	 * @returns {boolean} Whether the item was added.
+	 */
+	ajaxAdd: function( element, settings ) {
+		var list     = this,
+			$element = $( element ),
+			data     = wpList.parseData( $element, 'add' ),
+			formValues, formData, parsedResponse, returnedResponse;
 
-		s.element = data[2] || e.attr( 'id' ) || s.element || null;
+		settings = settings || {};
+		settings = wpList.pre.call( list, $element, settings, 'add' );
 
-		if ( data[3] )
-			s.addColor = '#' + data[3];
-		else
-			s.addColor = s.addColor || '#FFFF33';
+		settings.element  = data[2] || $element.prop( 'id' ) || settings.element || null;
+		settings.addColor = data[3] ? '#' + data[3] : settings.addColor;
 
-		if ( !s )
+		if ( ! settings ) {
 			return false;
+		}
 
-		if ( !e.is('[id="' + s.element + '-submit"]') )
-			return !wpList.add.call( list, e, s );
+		if ( ! $element.is( '[id="' + settings.element + '-submit"]' ) ) {
+			return ! wpList.add.call( list, $element, settings );
+		}
 
-		if ( !s.element )
+		if ( ! settings.element ) {
 			return true;
+		}
 
-		s.action = 'add-' + s.what;
+		settings.action = 'add-' + settings.what;
+		settings.nonce  = wpList.nonce( $element, settings );
 
-		s.nonce = wpList.nonce(e,s);
+		if ( ! wpAjax.validateForm( '#' + settings.element ) ) {
+			return false;
+		}
 
-		es = $('#' + s.element + ' :input').not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]');
-		valid = wpAjax.validateForm( '#' + s.element );
+		settings.data = $.param( $.extend( {
+			_ajax_nonce: settings.nonce,
+			action:      settings.action
+		}, wpAjax.unserialize( data[4] || '' ) ) );
 
-		if ( !valid )
-			return false;
+		formValues = $( '#' + settings.element + ' :input' ).not( '[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]' );
+		formData   = $.isFunction( formValues.fieldSerialize ) ? formValues.fieldSerialize() : formValues.serialize();
 
-		s.data = $.param( $.extend( { _ajax_nonce: s.nonce, action: s.action }, wpAjax.unserialize( data[4] || '' ) ) );
-		formData = $.isFunction(es.fieldSerialize) ? es.fieldSerialize() : es.serialize();
+		if ( formData ) {
+			settings.data += '&' + formData;
+		}
 
-		if ( formData )
-			s.data += '&' + formData;
+		if ( $.isFunction( settings.addBefore ) ) {
+			settings = settings.addBefore( settings );
 
-		if ( $.isFunction(s.addBefore) ) {
-			s = s.addBefore( s );
-			if ( !s )
+			if ( ! settings ) {
 				return true;
+			}
 		}
 
-		if ( !s.data.match(/_ajax_nonce=[a-f0-9]+/) )
+		if ( ! settings.data.match( /_ajax_nonce=[a-f0-9]+/ ) ) {
 			return true;
+		}
 
-		s.success = function(r) {
-			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
-
-			rres = r;
+		settings.success = function( response ) {
+			parsedResponse   = wpAjax.parseAjaxResponse( response, settings.response, settings.element );
+			returnedResponse = response;
 
-			if ( !res || res.errors )
+			if ( ! parsedResponse || parsedResponse.errors ) {
 				return false;
+			}
 
-			if ( true === res )
+			if ( true === parsedResponse ) {
 				return true;
+			}
 
-			jQuery.each( res.responses, function() {
-				wpList.add.call( list, this.data, $.extend( {}, s, { // this.firstChild.nodevalue
-					pos: this.position || 0,
-					id: this.id || 0,
-					oldId: this.oldId || null
+			$.each( parsedResponse.responses, function() {
+				wpList.add.call( list, this.data, $.extend( {}, settings, { // this.firstChild.nodevalue
+					position: this.position || 0,
+					id:       this.id || 0,
+					oldId:    this.oldId || null
 				} ) );
 			} );
 
 			list.wpList.recolor();
-			$(list).trigger( 'wpListAddEnd', [ s, list.wpList ] );
-			wpList.clear.call(list,'#' + s.element);
+			$( list ).trigger( 'wpListAddEnd', [ settings, list.wpList ] );
+			wpList.clear.call( list, '#' + settings.element );
 		};
 
-		s.complete = function(x, st) {
-			if ( $.isFunction(s.addAfter) ) {
-				var _s = $.extend( { xml: x, status: st, parsed: res }, s );
-				s.addAfter( rres, _s );
+		settings.complete = function( jqXHR, status ) {
+			if ( $.isFunction( settings.addAfter ) ) {
+				settings.addAfter( returnedResponse, $.extend( {
+					xml:    jqXHR,
+					status: status,
+					parsed: parsedResponse
+				}, settings ) );
 			}
 		};
 
-		$.ajax( s );
+		$.ajax( settings );
+
 		return false;
 	},
 
 	/**
 	 * Delete an item in the list via AJAX.
 	 *
-	 * @param  {HTMLElement} e A DOM element containing item data.
-	 * @param  {Object}      s
-	 * @return {boolean}
+	 * @param {HTMLElement} element  A DOM element containing item data.
+	 * @param {object}      settings Settings for this list.
+	 * @returns {boolean} Whether the item was deleted.
 	 */
-	ajaxDel: function( e, s ) {
-		e = $(e);
-		s = s || {};
-		var list = this, data = wpList.parseData(e,'delete'), element, res, rres;
+	ajaxDel: function( element, settings ) {
+		var list     = this,
+			$element = $( element ),
+			data     = wpList.parseData( $element, 'delete' ),
+			$eventTarget, parsedResponse, returnedResponse;
 
-		s = wpList.pre.call( list, e, s, 'delete' );
+		settings = settings || {};
+		settings = wpList.pre.call( list, $element, settings, 'delete' );
 
-		s.element = data[2] || s.element || null;
+		settings.element  = data[2] || settings.element || null;
+		settings.delColor = data[3] ? '#' + data[3] : settings.delColor;
 
-		if ( data[3] )
-			s.delColor = '#' + data[3];
-		else
-			s.delColor = s.delColor || '#faa';
-
-		if ( !s || !s.element )
+		if ( ! settings || ! settings.element ) {
 			return false;
+		}
 
-		s.action = 'delete-' + s.what;
+		settings.action = 'delete-' + settings.what;
+		settings.nonce  = wpList.nonce( $element, settings );
 
-		s.nonce = wpList.nonce(e,s);
+		settings.data = $.extend( {
+			_ajax_nonce: settings.nonce,
+			action:      settings.action,
+			id:          settings.element.split( '-' ).pop()
+		}, wpAjax.unserialize( data[4] || '' ) );
 
-		s.data = $.extend(
-			{ action: s.action, id: s.element.split('-').pop(), _ajax_nonce: s.nonce },
-			wpAjax.unserialize( data[4] || '' )
-		);
+		if ( $.isFunction( settings.delBefore ) ) {
+			settings = settings.delBefore( settings, list );
 
-		if ( $.isFunction(s.delBefore) ) {
-			s = s.delBefore( s, list );
-			if ( !s )
+			if ( ! settings ) {
 				return true;
+			}
 		}
 
-		if ( !s.data._ajax_nonce )
+		if ( ! settings.data._ajax_nonce ) {
 			return true;
+		}
 
-		element = $('#' + s.element);
+		$eventTarget = $( '#' + settings.element );
 
-		if ( 'none' != s.delColor ) {
-			element.css( 'backgroundColor', s.delColor ).fadeOut( 350, function(){
+		if ( 'none' !== settings.delColor ) {
+			$eventTarget.css( 'backgroundColor', settings.delColor ).fadeOut( 350, function() {
 				list.wpList.recolor();
-				$(list).trigger( 'wpListDelEnd', [ s, list.wpList ] );
-			});
+				$( list ).trigger( 'wpListDelEnd', [ settings, list.wpList ] );
+			} );
 		} else {
 			list.wpList.recolor();
-			$(list).trigger( 'wpListDelEnd', [ s, list.wpList ] );
+			$( list ).trigger( 'wpListDelEnd', [ settings, list.wpList ] );
 		}
 
-		s.success = function(r) {
-			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
-			rres = r;
+		settings.success = function( response ) {
+			parsedResponse   = wpAjax.parseAjaxResponse( response, settings.response, settings.element );
+			returnedResponse = response;
+
+			if ( ! parsedResponse || parsedResponse.errors ) {
+				$eventTarget.stop().stop().css( 'backgroundColor', '#faa' ).show().queue( function() {
+					list.wpList.recolor();
+					$( this ).dequeue();
+				} );
 
-			if ( !res || res.errors ) {
-				element.stop().stop().css( 'backgroundColor', '#faa' ).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } );
 				return false;
 			}
 		};
 
-		s.complete = function(x, st) {
-			if ( $.isFunction(s.delAfter) ) {
-				element.queue( function() {
-					var _s = $.extend( { xml: x, status: st, parsed: res }, s );
-					s.delAfter( rres, _s );
-				}).dequeue();
+		settings.complete = function( jqXHR, status ) {
+			if ( $.isFunction( settings.delAfter ) ) {
+				$eventTarget.queue( function() {
+					settings.delAfter( returnedResponse, $.extend( {
+						xml:    jqXHR,
+						status: status,
+						parsed: parsedResponse
+					}, settings ) );
+				} ).dequeue();
 			}
 		};
 
-		$.ajax( s );
+		$.ajax( settings );
+
 		return false;
 	},
 
-	ajaxDim: function( e, s ) {
-		if ( $(e).parent().css('display') == 'none' ) // Prevent hidden links from being clicked by hotkeys
+	/**
+	 * Dim an item in the list via AJAX.
+	 *
+	 * @param {HTMLElement} element  A DOM element containing item data.
+	 * @param {object}      settings Settings for this list.
+	 * @returns {boolean} Whether the item was dim'ed.
+	 */
+	ajaxDim: function( element, settings ) {
+		var list     = this,
+			$element = $( element ),
+			data     = wpList.parseData( $element, 'dim' ),
+			$eventTarget, isClass, color, dimColor, parsedResponse, returnedResponse;
+
+		// Prevent hidden links from being clicked by hotkeys.
+		if ( 'none' === $element.parent().css( 'display' ) ) {
 			return false;
+		}
 
-		e = $(e);
-		s = s || {};
-
-		var list = this, data = wpList.parseData(e,'dim'), element, isClass, color, dimColor, res, rres;
-
-		s = wpList.pre.call( list, e, s, 'dim' );
-
-		s.element = data[2] || s.element || null;
-		s.dimClass =  data[3] || s.dimClass || null;
-
-		if ( data[4] )
-			s.dimAddColor = '#' + data[4];
-		else
-			s.dimAddColor = s.dimAddColor || '#FFFF33';
+		settings = settings || {};
+		settings = wpList.pre.call( list, $element, settings, 'dim' );
 
-		if ( data[5] )
-			s.dimDelColor = '#' + data[5];
-		else
-			s.dimDelColor = s.dimDelColor || '#FF3333';
+		settings.element     = data[2] || settings.element || null;
+		settings.dimClass    = data[3] || settings.dimClass || null;
+		settings.dimAddColor = data[4] ? '#' + data[4] : settings.dimAddColor;
+		settings.dimDelColor = data[5] ? '#' + data[5] : settings.dimDelColor;
 
-		if ( !s || !s.element || !s.dimClass )
+		if ( ! settings || ! settings.element || ! settings.dimClass ) {
 			return true;
+		}
 
-		s.action = 'dim-' + s.what;
+		settings.action = 'dim-' + settings.what;
+		settings.nonce  = wpList.nonce( $element, settings );
 
-		s.nonce = wpList.nonce(e,s);
+		settings.data = $.extend( {
+			_ajax_nonce: settings.nonce,
+			action:      settings.action,
+			id:          settings.element.split( '-' ).pop(),
+			dimClass:    settings.dimClass
+		}, wpAjax.unserialize( data[6] || '' ) );
 
-		s.data = $.extend(
-			{ action: s.action, id: s.element.split('-').pop(), dimClass: s.dimClass, _ajax_nonce : s.nonce },
-			wpAjax.unserialize( data[6] || '' )
-		);
+		if ( $.isFunction( settings.dimBefore ) ) {
+			settings = settings.dimBefore( settings );
 
-		if ( $.isFunction(s.dimBefore) ) {
-			s = s.dimBefore( s );
-			if ( !s )
+			if ( ! settings ) {
 				return true;
+			}
 		}
 
-		element = $('#' + s.element);
-		isClass = element.toggleClass(s.dimClass).is('.' + s.dimClass);
-		color = wpList.getColor( element );
-		element.toggleClass( s.dimClass );
-		dimColor = isClass ? s.dimAddColor : s.dimDelColor;
+		$eventTarget = $( '#' + settings.element );
+		isClass      = $eventTarget.toggleClass( settings.dimClass ).is( '.' + settings.dimClass );
+		color        = wpList.getColor( $eventTarget );
+		dimColor     = isClass ? settings.dimAddColor : settings.dimDelColor;
+		$eventTarget.toggleClass( settings.dimClass );
 
-		if ( 'none' != dimColor ) {
-			element
+		if ( 'none' !== dimColor ) {
+			$eventTarget
 				.animate( { backgroundColor: dimColor }, 'fast' )
-				.queue( function() { element.toggleClass(s.dimClass); $(this).dequeue(); } )
-				.animate( { backgroundColor: color }, { complete: function() {
-						$(this).css( 'backgroundColor', '' );
-						$(list).trigger( 'wpListDimEnd', [ s, list.wpList ] );
+				.queue( function() {
+					$eventTarget.toggleClass( settings.dimClass );
+					$( this ).dequeue();
+				} )
+				.animate( { backgroundColor: color }, {
+					complete: function() {
+						$( this ).css( 'backgroundColor', '' );
+						$( list ).trigger( 'wpListDimEnd', [ settings, list.wpList ] );
 					}
-				});
+				} );
 		} else {
-			$(list).trigger( 'wpListDimEnd', [ s, list.wpList ] );
+			$( list ).trigger( 'wpListDimEnd', [ settings, list.wpList ] );
 		}
 
-		if ( !s.data._ajax_nonce )
+		if ( ! settings.data._ajax_nonce ) {
 			return true;
+		}
 
-		s.success = function(r) {
-			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
-			rres = r;
+		settings.success = function( response ) {
+			parsedResponse   = wpAjax.parseAjaxResponse( response, settings.response, settings.element );
+			returnedResponse = response;
 
-			if ( true === res ) {
+			if ( true === parsedResponse ) {
 				return true;
 			}
 
-			if ( ! res || res.errors ) {
-				element.stop().stop().css( 'backgroundColor', '#FF3333' )[isClass?'removeClass':'addClass'](s.dimClass).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } );
+			if ( ! parsedResponse || parsedResponse.errors ) {
+				$eventTarget.stop().stop().css( 'backgroundColor', '#ff3333' )[isClass ? 'removeClass' : 'addClass']( settings.dimClass ).show().queue( function() {
+					list.wpList.recolor();
+					$( this ).dequeue();
+				} );
+
 				return false;
 			}
 
-			if ( 'undefined' !== typeof res.responses[0].supplemental.comment_link ) {
-				var submittedOn = element.find( '.submitted-on' ),
-					commentLink = submittedOn.find( 'a' );
+			/** @property {string} comment_link Link of the comment to be dimmed. */
+			if ( 'undefined' !== typeof parsedResponse.responses[0].supplemental.comment_link ) {
+				var $submittedOn = $element.find( '.submitted-on' ),
+					$commentLink = $submittedOn.find( 'a' );
 
 				// Comment is approved; link the date field.
-				if ( '' !== res.responses[0].supplemental.comment_link ) {
-					submittedOn.html( $('<a></a>').text( submittedOn.text() ).prop( 'href', res.responses[0].supplemental.comment_link ) );
+				if ( '' !== parsedResponse.responses[0].supplemental.comment_link ) {
+					$submittedOn.html( $('<a></a>').text( $submittedOn.text() ).prop( 'href', parsedResponse.responses[0].supplemental.comment_link ) );
 
 				// Comment is not approved; unlink the date field.
-				} else if ( commentLink.length ) {
-					submittedOn.text( commentLink.text() );
+				} else if ( $commentLink.length ) {
+					$submittedOn.text( $commentLink.text() );
 				}
 			}
 		};
 
-		s.complete = function(x, st) {
-			if ( $.isFunction(s.dimAfter) ) {
-				element.queue( function() {
-					var _s = $.extend( { xml: x, status: st, parsed: res }, s );
-					s.dimAfter( rres, _s );
-				}).dequeue();
+		settings.complete = function( jqXHR, status ) {
+			if ( $.isFunction( settings.dimAfter ) ) {
+				$eventTarget.queue( function() {
+					settings.dimAfter( returnedResponse, $.extend( {
+						xml:    jqXHR,
+						status: status,
+						parsed: parsedResponse
+					}, settings ) );
+				} ).dequeue();
 			}
 		};
 
-		$.ajax( s );
+		$.ajax( settings );
+
 		return false;
 	},
 
-	getColor: function( el ) {
-		var color = jQuery(el).css('backgroundColor');
-
-		return color || '#ffffff';
+	/**
+	 * Returns the background color of the passed element.
+	 *
+	 * @param {jQuery|string} element Element to check.
+	 * @returns {string} Background color value in HEX. Default: '#ffffff'.
+	 */
+	getColor: function( element ) {
+		return $( element ).css( 'backgroundColor' ) || '#ffffff';
 	},
 
-	add: function( e, s ) {
-		if ( 'string' == typeof e ) {
-			e = $( $.trim( e ) ); // Trim leading whitespaces
-		} else {
-			e = $( e );
+	/**
+	 * Adds something.
+	 *
+	 * @param {HTMLElement} element  A DOM element containing item data.
+	 * @param {object}      settings Settings for this list.
+	 * @returns {boolean} Whether the item was added.
+	 */
+	add: function( element, settings ) {
+		var $list    = $( this ),
+			$element = $( element ),
+			old      = false,
+			position, reference;
+
+		if ( 'string' === typeof settings ) {
+			settings = { what: settings };
 		}
 
-		var list = $(this), old = false, _s = { pos: 0, id: 0, oldId: null }, ba, ref, color;
-
-		if ( 'string' == typeof s )
-			s = { what: s };
-
-		s = $.extend(_s, this.wpList.settings, s);
+		settings = $.extend( { position: 0, id: 0, oldId: null }, this.wpList.settings, settings );
 
-		if ( !e.length || !s.what )
+		if ( ! $element.length || ! settings.what ) {
 			return false;
+		}
 
-		if ( s.oldId )
-			old = $('#' + s.what + '-' + s.oldId);
+		if ( settings.oldId ) {
+			old = $( '#' + settings.what + '-' + settings.oldId );
+		}
 
-		if ( s.id && ( s.id != s.oldId || !old || !old.length ) )
-			$('#' + s.what + '-' + s.id).remove();
+		if ( settings.id && ( settings.id !== settings.oldId || ! old || ! old.length ) ) {
+			$( '#' + settings.what + '-' + settings.id ).remove();
+		}
 
 		if ( old && old.length ) {
-			old.before(e);
+			old.before( $element );
 			old.remove();
-		} else if ( isNaN(s.pos) ) {
-			ba = 'after';
 
-			if ( '-' == s.pos.substr(0,1) ) {
-				s.pos = s.pos.substr(1);
-				ba = 'before';
+		} else if ( isNaN( settings.position ) ) {
+			position = 'after';
+
+			if ( '-' === settings.position.substr( 0, 1 ) ) {
+				settings.position = settings.position.substr( 1 );
+				position = 'before';
 			}
 
-			ref = list.find( '#' + s.pos );
+			reference = $list.find( '#' + settings.position );
 
-			if ( 1 === ref.length )
-				ref[ba](e);
-			else
-				list.append(e);
+			if ( 1 === reference.length ) {
+				reference[position]( $element );
+			} else {
+				$list.append( $element );
+			}
 
-		} else if ( 'comment' != s.what || 0 === $('#' + s.element).length ) {
-			if ( s.pos < 0 ) {
-				list.prepend(e);
+		} else if ( 'comment' !== settings.what || 0 === $( '#' + settings.element ).length ) {
+			if ( settings.position < 0 ) {
+				$list.prepend( $element );
 			} else {
-				list.append(e);
+				$list.append( $element );
 			}
 		}
 
-		if ( s.alt ) {
-			if ( ( list.children(':visible').index( e[0] ) + s.altOffset ) % 2 ) { e.removeClass( s.alt ); }
-			else { e.addClass( s.alt ); }
+		if ( settings.alt ) {
+			$element.toggleClass( settings.alt, ( $list.children( ':visible' ).index( $element[0] ) + settings.altOffset ) % 2 );
 		}
 
-		if ( 'none' != s.addColor ) {
-			color = wpList.getColor( e );
-			e.css( 'backgroundColor', s.addColor ).animate( { backgroundColor: color }, { complete: function() { $(this).css( 'backgroundColor', '' ); } } );
+		if ( 'none' !== settings.addColor ) {
+			$element.css( 'backgroundColor', settings.addColor ).animate( { backgroundColor: wpList.getColor( $element ) }, {
+				complete: function() {
+					$( this ).css( 'backgroundColor', '' );
+				}
+			} );
 		}
-		list.each( function() { this.wpList.process( e ); } );
-		return e;
-	},
 
-	clear: function(e) {
-		var list = this, t, tag;
+		// Add event handlers.
+		$list.each( function( index, list ) {
+			list.wpList.process( $element );
+		} );
 
-		e = $(e);
+		return $element;
+	},
 
-		if ( list.wpList && e.parents( '#' + list.id ).length )
+	/**
+	 * Clears all input fields within the element passed.
+	 *
+	 * @param {string} elementId ID of the element to check, including leading #.
+	 */
+	clear: function( elementId ) {
+		var list     = this,
+			$element = $( elementId ),
+			type, tagName;
+
+		// Bail if we're within the list.
+		if ( list.wpList && $element.parents( '#' + list.id ).length ) {
 			return;
+		}
+
+		// Check each input field.
+		$element.find( ':input' ).each( function( index, input ) {
 
-		e.find(':input').each( function() {
-			if ( $(this).parents('.form-no-clear').length )
+			// Bail if the form was marked to not to be cleared.
+			if ( $( input ).parents( '.form-no-clear' ).length ) {
 				return;
+			}
+
+			type    = input.type.toLowerCase();
+			tagName = input.tagName.toLowerCase();
+
+			if ( 'text' === type || 'password' === type || 'textarea' === tagName ) {
+				input.value = '';
 
-			t = this.type.toLowerCase();
-			tag = this.tagName.toLowerCase();
+			} else if ( 'checkbox' === type || 'radio' === type ) {
+				input.checked = false;
 
-			if ( 'text' == t || 'password' == t || 'textarea' == tag )
-				this.value = '';
-			else if ( 'checkbox' == t || 'radio' == t )
-				this.checked = false;
-			else if ( 'select' == tag )
-				this.selectedIndex = null;
-		});
+			} else if ( 'select' === tagName ) {
+				input.selectedIndex = null;
+			}
+		} );
 	},
 
-	process: function(el) {
-		var list = this,
-			$el = $(el || document);
+	/**
+	 * Registers event handlers to add, delete, and dim items.
+	 *
+	 * @param {string} elementId
+	 */
+	process: function( elementId ) {
+		var list     = this,
+			$element = $( elementId || document );
 
-		$el.delegate( 'form[data-wp-lists^="add:' + list.id + ':"]', 'submit', function(){
-			return list.wpList.add(this);
-		});
+		$element.on( 'submit', 'form[data-wp-lists^="add:' + list.id + ':"]', function() {
+			return list.wpList.add( this );
+		} );
 
-		$el.delegate( 'a[data-wp-lists^="add:' + list.id + ':"], input[data-wp-lists^="add:' + list.id + ':"]', 'click', function(){
-			return list.wpList.add(this);
-		});
+		$element.on( 'click', 'a[data-wp-lists^="add:' + list.id + ':"], input[data-wp-lists^="add:' + list.id + ':"]', function() {
+			return list.wpList.add( this );
+		} );
 
-		$el.delegate( '[data-wp-lists^="delete:' + list.id + ':"]', 'click', function(){
-			return list.wpList.del(this);
-		});
+		$element.on( 'click', '[data-wp-lists^="delete:' + list.id + ':"]', function() {
+			return list.wpList.del( this );
+		} );
 
-		$el.delegate( '[data-wp-lists^="dim:' + list.id + ':"]', 'click', function(){
-			return list.wpList.dim(this);
-		});
+		$element.on( 'click', '[data-wp-lists^="dim:' + list.id + ':"]', function() {
+			return list.wpList.dim( this );
+		} );
 	},
 
+	/**
+	 * Updates list item background colors.
+	 */
 	recolor: function() {
-		var list = this, items, eo;
+		var list    = this,
+			evenOdd = [':even', ':odd'],
+			items;
 
-		if ( !list.wpList.settings.alt )
+		// Bail if there is no alternate class name specified.
+		if ( ! list.wpList.settings.alt ) {
 			return;
+		}
 
-		items = $('.list-item:visible', list);
-
-		if ( !items.length )
-			items = $(list).children(':visible');
+		items = $( '.list-item:visible', list );
 
-		eo = [':even',':odd'];
+		if ( ! items.length ) {
+			items = $( list ).children( ':visible' );
+		}
 
-		if ( list.wpList.settings.altOffset % 2 )
-			eo.reverse();
+		if ( list.wpList.settings.altOffset % 2 ) {
+			evenOdd.reverse();
+		}
 
-		items.filter(eo[0]).addClass(list.wpList.settings.alt).end().filter(eo[1]).removeClass(list.wpList.settings.alt);
+		items.filter( evenOdd[0] ).addClass( list.wpList.settings.alt ).end();
+		items.filter( evenOdd[1] ).removeClass( list.wpList.settings.alt );
 	},
 
+	/**
+	 * Sets up `process()` and `recolor()` functions.
+	 */
 	init: function() {
-		var lists = this;
+		var $list = this;
 
-		lists.wpList.process = function(a) {
-			lists.each( function() {
-				this.wpList.process(a);
+		$list.wpList.process = function( element ) {
+			$list.each( function() {
+				this.wpList.process( element );
 			} );
 		};
 
-		lists.wpList.recolor = function() {
-			lists.each( function() {
+		$list.wpList.recolor = function() {
+			$list.each( function() {
 				this.wpList.recolor();
 			} );
 		};
 	}
 };
 
+/**
+ * Initializes wpList object.
+ *
+ * @param {Object}           settings
+ * @param {string}           settings.url         URL for ajax calls. Default: ajaxurl.
+ * @param {string}           settings.type        The HTTP method to use for Ajax requests. Default: 'POST'.
+ * @param {string}           settings.response    ID of the element the parsed ajax response will be stored in.
+ *                                                Default: 'ajax-response'.
+ *
+ * @param {string}           settings.what        Default: ''.
+ * @param {string}           settings.alt         CSS class name for alternate styling. Default: 'alternate'.
+ * @param {number}           settings.altOffset   Offset to start alternate styling from. Default: 0.
+ * @param {string}           settings.addColor    Hex code or 'none' to disable animation. Default: '#ffff33'.
+ * @param {string}           settings.delColor    Hex code or 'none' to disable animation. Default: '#faafaa'.
+ * @param {string}           settings.dimAddColor Hex code or 'none' to disable animation. Default: '#ffff33'.
+ * @param {string}           settings.dimDelColor Hex code or 'none' to disable animation. Default: '#ff3333'.
+ *
+ * @param {wpList~confirm}   settings.confirm     Callback that's run before a request is made. Default: null.
+ * @param {wpList~addBefore} settings.addBefore   Callback that's run before an item gets added to the list.
+ *                                                Default: null.
+ * @param {wpList~addAfter}  settings.addAfter    Callback that's run after an item got added to the list.
+ *                                                Default: null.
+ * @param {wpList~delBefore} settings.delBefore   Callback that's run before an item gets deleted from the list.
+ *                                                Default: null.
+ * @param {wpList~delAfter}  settings.delAfter    Callback that's run after an item got deleted from the list.
+ *                                                Default: null.
+ * @param {wpList~dimBefore} settings.dimBefore   Callback that's run before an item gets dim'd. Default: null.
+ * @param {wpList~dimAfter}  settings.dimAfter    Callback that's run after an item got dim'd. Default: null.
+ * @returns {$.fn} wpList API function.
+ */
 $.fn.wpList = function( settings ) {
-	this.each( function() {
-		var _this = this;
+	this.each( function( index, list ) {
+		list.wpList = {
+			settings: $.extend( {}, wpList.settings, { what: wpList.parseData( list, 'list' )[1] || '' }, settings )
+		};
 
-		this.wpList = { settings: $.extend( {}, wpList.settings, { what: wpList.parseData(this,'list')[1] || '' }, settings ) };
-		$.each( fs, function(i,f) { _this.wpList[i] = function( e, s ) { return wpList[f].call( _this, e, s ); }; } );
+		$.each( functions, function( func, callback ) {
+			list.wpList[func] = function( element, setting ) {
+				return wpList[callback].call( list, element, setting );
+			};
+		} );
 	} );
 
-	wpList.init.call(this);
-
+	wpList.init.call( this );
 	this.wpList.process();
 
 	return this;
 };
-
-})(jQuery);
+} ) ( jQuery );
diff --git a/wp-includes/js/wp-lists.min.js b/wp-includes/js/wp-lists.min.js
index 719aa1aeb..4e8493a88 100644
--- a/wp-includes/js/wp-lists.min.js
+++ b/wp-includes/js/wp-lists.min.js
@@ -1 +1 @@
-!function(a){var b,c={add:"ajaxAdd",del:"ajaxDel",dim:"ajaxDim",process:"process",recolor:"recolor"};b={settings:{url:ajaxurl,type:"POST",response:"ajax-response",what:"",alt:"alternate",altOffset:0,addColor:null,delColor:null,dimAddColor:null,dimDelColor:null,confirm:null,addBefore:null,addAfter:null,delBefore:null,delAfter:null,dimBefore:null,dimAfter:null},nonce:function(b,c){var d=wpAjax.unserialize(b.attr("href"));return c.nonce||d._ajax_nonce||a("#"+c.element+' input[name="_ajax_nonce"]').val()||d._wpnonce||a("#"+c.element+' input[name="_wpnonce"]').val()||0},parseData:function(b,c){var d,e=[];try{d=a(b).attr("data-wp-lists")||"",d=d.match(new RegExp(c+":[\\S]+")),d&&(e=d[0].split(":"))}catch(f){}return e},pre:function(b,c,d){var e,f;return c=a.extend({},this.wpList.settings,{element:null,nonce:0,target:b.get(0)},c||{}),!(a.isFunction(c.confirm)&&("add"!=d&&(e=a("#"+c.element).css("backgroundColor"),a("#"+c.element).css("backgroundColor","#FF9966")),f=c.confirm.call(this,b,c,d,e),"add"!=d&&a("#"+c.element).css("backgroundColor",e),!f))&&c},ajaxAdd:function(c,d){c=a(c),d=d||{};var e,f,g,h,i,j=this,k=b.parseData(c,"add");return d=b.pre.call(j,c,d,"add"),d.element=k[2]||c.attr("id")||d.element||null,k[3]?d.addColor="#"+k[3]:d.addColor=d.addColor||"#FFFF33",!!d&&(c.is('[id="'+d.element+'-submit"]')?!d.element||(d.action="add-"+d.what,d.nonce=b.nonce(c,d),e=a("#"+d.element+" :input").not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]'),!!(f=wpAjax.validateForm("#"+d.element))&&(d.data=a.param(a.extend({_ajax_nonce:d.nonce,action:d.action},wpAjax.unserialize(k[4]||""))),g=a.isFunction(e.fieldSerialize)?e.fieldSerialize():e.serialize(),g&&(d.data+="&"+g),!(!a.isFunction(d.addBefore)||(d=d.addBefore(d)))||(!d.data.match(/_ajax_nonce=[a-f0-9]+/)||(d.success=function(c){return h=wpAjax.parseAjaxResponse(c,d.response,d.element),i=c,!(!h||h.errors)&&(!0===h||(jQuery.each(h.responses,function(){b.add.call(j,this.data,a.extend({},d,{pos:this.position||0,id:this.id||0,oldId:this.oldId||null}))}),j.wpList.recolor(),a(j).trigger("wpListAddEnd",[d,j.wpList]),void b.clear.call(j,"#"+d.element)))},d.complete=function(b,c){if(a.isFunction(d.addAfter)){var e=a.extend({xml:b,status:c,parsed:h},d);d.addAfter(i,e)}},a.ajax(d),!1)))):!b.add.call(j,c,d))},ajaxDel:function(c,d){c=a(c),d=d||{};var e,f,g,h=this,i=b.parseData(c,"delete");return d=b.pre.call(h,c,d,"delete"),d.element=i[2]||d.element||null,i[3]?d.delColor="#"+i[3]:d.delColor=d.delColor||"#faa",!(!d||!d.element)&&(d.action="delete-"+d.what,d.nonce=b.nonce(c,d),d.data=a.extend({action:d.action,id:d.element.split("-").pop(),_ajax_nonce:d.nonce},wpAjax.unserialize(i[4]||"")),!(!a.isFunction(d.delBefore)||(d=d.delBefore(d,h)))||(!d.data._ajax_nonce||(e=a("#"+d.element),"none"!=d.delColor?e.css("backgroundColor",d.delColor).fadeOut(350,function(){h.wpList.recolor(),a(h).trigger("wpListDelEnd",[d,h.wpList])}):(h.wpList.recolor(),a(h).trigger("wpListDelEnd",[d,h.wpList])),d.success=function(b){if(f=wpAjax.parseAjaxResponse(b,d.response,d.element),g=b,!f||f.errors)return e.stop().stop().css("backgroundColor","#faa").show().queue(function(){h.wpList.recolor(),a(this).dequeue()}),!1},d.complete=function(b,c){a.isFunction(d.delAfter)&&e.queue(function(){var e=a.extend({xml:b,status:c,parsed:f},d);d.delAfter(g,e)}).dequeue()},a.ajax(d),!1)))},ajaxDim:function(c,d){if("none"==a(c).parent().css("display"))return!1;c=a(c),d=d||{};var e,f,g,h,i,j,k=this,l=b.parseData(c,"dim");return d=b.pre.call(k,c,d,"dim"),d.element=l[2]||d.element||null,d.dimClass=l[3]||d.dimClass||null,l[4]?d.dimAddColor="#"+l[4]:d.dimAddColor=d.dimAddColor||"#FFFF33",l[5]?d.dimDelColor="#"+l[5]:d.dimDelColor=d.dimDelColor||"#FF3333",!(d&&d.element&&d.dimClass)||(d.action="dim-"+d.what,d.nonce=b.nonce(c,d),d.data=a.extend({action:d.action,id:d.element.split("-").pop(),dimClass:d.dimClass,_ajax_nonce:d.nonce},wpAjax.unserialize(l[6]||"")),!(!a.isFunction(d.dimBefore)||(d=d.dimBefore(d)))||(e=a("#"+d.element),f=e.toggleClass(d.dimClass).is("."+d.dimClass),g=b.getColor(e),e.toggleClass(d.dimClass),h=f?d.dimAddColor:d.dimDelColor,"none"!=h?e.animate({backgroundColor:h},"fast").queue(function(){e.toggleClass(d.dimClass),a(this).dequeue()}).animate({backgroundColor:g},{complete:function(){a(this).css("backgroundColor",""),a(k).trigger("wpListDimEnd",[d,k.wpList])}}):a(k).trigger("wpListDimEnd",[d,k.wpList]),!d.data._ajax_nonce||(d.success=function(b){if(i=wpAjax.parseAjaxResponse(b,d.response,d.element),j=b,!0===i)return!0;if(!i||i.errors)return e.stop().stop().css("backgroundColor","#FF3333")[f?"removeClass":"addClass"](d.dimClass).show().queue(function(){k.wpList.recolor(),a(this).dequeue()}),!1;if("undefined"!=typeof i.responses[0].supplemental.comment_link){var c=e.find(".submitted-on"),g=c.find("a");""!==i.responses[0].supplemental.comment_link?c.html(a("<a></a>").text(c.text()).prop("href",i.responses[0].supplemental.comment_link)):g.length&&c.text(g.text())}},d.complete=function(b,c){a.isFunction(d.dimAfter)&&e.queue(function(){var e=a.extend({xml:b,status:c,parsed:i},d);d.dimAfter(j,e)}).dequeue()},a.ajax(d),!1)))},getColor:function(a){var b=jQuery(a).css("backgroundColor");return b||"#ffffff"},add:function(c,d){c=a("string"==typeof c?a.trim(c):c);var e,f,g,h=a(this),i=!1,j={pos:0,id:0,oldId:null};return"string"==typeof d&&(d={what:d}),d=a.extend(j,this.wpList.settings,d),!(!c.length||!d.what)&&(d.oldId&&(i=a("#"+d.what+"-"+d.oldId)),!d.id||d.id==d.oldId&&i&&i.length||a("#"+d.what+"-"+d.id).remove(),i&&i.length?(i.before(c),i.remove()):isNaN(d.pos)?(e="after","-"==d.pos.substr(0,1)&&(d.pos=d.pos.substr(1),e="before"),f=h.find("#"+d.pos),1===f.length?f[e](c):h.append(c)):"comment"==d.what&&0!==a("#"+d.element).length||(d.pos<0?h.prepend(c):h.append(c)),d.alt&&((h.children(":visible").index(c[0])+d.altOffset)%2?c.removeClass(d.alt):c.addClass(d.alt)),"none"!=d.addColor&&(g=b.getColor(c),c.css("backgroundColor",d.addColor).animate({backgroundColor:g},{complete:function(){a(this).css("backgroundColor","")}})),h.each(function(){this.wpList.process(c)}),c)},clear:function(b){var c,d,e=this;b=a(b),e.wpList&&b.parents("#"+e.id).length||b.find(":input").each(function(){a(this).parents(".form-no-clear").length||(c=this.type.toLowerCase(),d=this.tagName.toLowerCase(),"text"==c||"password"==c||"textarea"==d?this.value="":"checkbox"==c||"radio"==c?this.checked=!1:"select"==d&&(this.selectedIndex=null))})},process:function(b){var c=this,d=a(b||document);d.delegate('form[data-wp-lists^="add:'+c.id+':"]',"submit",function(){return c.wpList.add(this)}),d.delegate('a[data-wp-lists^="add:'+c.id+':"], input[data-wp-lists^="add:'+c.id+':"]',"click",function(){return c.wpList.add(this)}),d.delegate('[data-wp-lists^="delete:'+c.id+':"]',"click",function(){return c.wpList.del(this)}),d.delegate('[data-wp-lists^="dim:'+c.id+':"]',"click",function(){return c.wpList.dim(this)})},recolor:function(){var b,c,d=this;d.wpList.settings.alt&&(b=a(".list-item:visible",d),b.length||(b=a(d).children(":visible")),c=[":even",":odd"],d.wpList.settings.altOffset%2&&c.reverse(),b.filter(c[0]).addClass(d.wpList.settings.alt).end().filter(c[1]).removeClass(d.wpList.settings.alt))},init:function(){var a=this;a.wpList.process=function(b){a.each(function(){this.wpList.process(b)})},a.wpList.recolor=function(){a.each(function(){this.wpList.recolor()})}}},a.fn.wpList=function(d){return this.each(function(){var e=this;this.wpList={settings:a.extend({},b.settings,{what:b.parseData(this,"list")[1]||""},d)},a.each(c,function(a,c){e.wpList[a]=function(a,d){return b[c].call(e,a,d)}})}),b.init.call(this),this.wpList.process(),this}}(jQuery);
\ No newline at end of file
+!function(a){var b,c={add:"ajaxAdd",del:"ajaxDel",dim:"ajaxDim",process:"process",recolor:"recolor"};b={settings:{url:ajaxurl,type:"POST",response:"ajax-response",what:"",alt:"alternate",altOffset:0,addColor:"#ffff33",delColor:"#faafaa",dimAddColor:"#ffff33",dimDelColor:"#ff3333",confirm:null,addBefore:null,addAfter:null,delBefore:null,delAfter:null,dimBefore:null,dimAfter:null},nonce:function(b,c){var d=wpAjax.unserialize(b.attr("href")),e=a("#"+c.element);return c.nonce||d._ajax_nonce||e.find('input[name="_ajax_nonce"]').val()||d._wpnonce||e.find('input[name="_wpnonce"]').val()||0},parseData:function(b,c){var d,e=[];try{d=a(b).data("wp-lists")||"",d=d.match(new RegExp(c+":[\\S]+")),d&&(e=d[0].split(":"))}catch(f){}return e},pre:function(b,c,d){var e,f,g;return c=a.extend({},this.wpList.settings,{element:null,nonce:0,target:b.get(0)},c||{}),!(a.isFunction(c.confirm)&&(e=a("#"+c.element),"add"!==d&&(f=e.css("backgroundColor"),e.css("backgroundColor","#ff9966")),g=c.confirm.call(this,b,c,d,f),"add"!==d&&e.css("backgroundColor",f),!g))&&c},ajaxAdd:function(c,d){var e,f,g,h,i=this,j=a(c),k=b.parseData(j,"add");return d=d||{},d=b.pre.call(i,j,d,"add"),d.element=k[2]||j.prop("id")||d.element||null,d.addColor=k[3]?"#"+k[3]:d.addColor,!!d&&(j.is('[id="'+d.element+'-submit"]')?!d.element||(d.action="add-"+d.what,d.nonce=b.nonce(j,d),!!wpAjax.validateForm("#"+d.element)&&(d.data=a.param(a.extend({_ajax_nonce:d.nonce,action:d.action},wpAjax.unserialize(k[4]||""))),e=a("#"+d.element+" :input").not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]'),f=a.isFunction(e.fieldSerialize)?e.fieldSerialize():e.serialize(),f&&(d.data+="&"+f),!(!a.isFunction(d.addBefore)||(d=d.addBefore(d)))||(!d.data.match(/_ajax_nonce=[a-f0-9]+/)||(d.success=function(c){return g=wpAjax.parseAjaxResponse(c,d.response,d.element),h=c,!(!g||g.errors)&&(!0===g||(a.each(g.responses,function(){b.add.call(i,this.data,a.extend({},d,{position:this.position||0,id:this.id||0,oldId:this.oldId||null}))}),i.wpList.recolor(),a(i).trigger("wpListAddEnd",[d,i.wpList]),void b.clear.call(i,"#"+d.element)))},d.complete=function(b,c){a.isFunction(d.addAfter)&&d.addAfter(h,a.extend({xml:b,status:c,parsed:g},d))},a.ajax(d),!1)))):!b.add.call(i,j,d))},ajaxDel:function(c,d){var e,f,g,h=this,i=a(c),j=b.parseData(i,"delete");return d=d||{},d=b.pre.call(h,i,d,"delete"),d.element=j[2]||d.element||null,d.delColor=j[3]?"#"+j[3]:d.delColor,!(!d||!d.element)&&(d.action="delete-"+d.what,d.nonce=b.nonce(i,d),d.data=a.extend({_ajax_nonce:d.nonce,action:d.action,id:d.element.split("-").pop()},wpAjax.unserialize(j[4]||"")),!(!a.isFunction(d.delBefore)||(d=d.delBefore(d,h)))||(!d.data._ajax_nonce||(e=a("#"+d.element),"none"!==d.delColor?e.css("backgroundColor",d.delColor).fadeOut(350,function(){h.wpList.recolor(),a(h).trigger("wpListDelEnd",[d,h.wpList])}):(h.wpList.recolor(),a(h).trigger("wpListDelEnd",[d,h.wpList])),d.success=function(b){if(f=wpAjax.parseAjaxResponse(b,d.response,d.element),g=b,!f||f.errors)return e.stop().stop().css("backgroundColor","#faa").show().queue(function(){h.wpList.recolor(),a(this).dequeue()}),!1},d.complete=function(b,c){a.isFunction(d.delAfter)&&e.queue(function(){d.delAfter(g,a.extend({xml:b,status:c,parsed:f},d))}).dequeue()},a.ajax(d),!1)))},ajaxDim:function(c,d){var e,f,g,h,i,j,k=this,l=a(c),m=b.parseData(l,"dim");return"none"!==l.parent().css("display")&&(d=d||{},d=b.pre.call(k,l,d,"dim"),d.element=m[2]||d.element||null,d.dimClass=m[3]||d.dimClass||null,d.dimAddColor=m[4]?"#"+m[4]:d.dimAddColor,d.dimDelColor=m[5]?"#"+m[5]:d.dimDelColor,!(d&&d.element&&d.dimClass)||(d.action="dim-"+d.what,d.nonce=b.nonce(l,d),d.data=a.extend({_ajax_nonce:d.nonce,action:d.action,id:d.element.split("-").pop(),dimClass:d.dimClass},wpAjax.unserialize(m[6]||"")),!(!a.isFunction(d.dimBefore)||(d=d.dimBefore(d)))||(e=a("#"+d.element),f=e.toggleClass(d.dimClass).is("."+d.dimClass),g=b.getColor(e),h=f?d.dimAddColor:d.dimDelColor,e.toggleClass(d.dimClass),"none"!==h?e.animate({backgroundColor:h},"fast").queue(function(){e.toggleClass(d.dimClass),a(this).dequeue()}).animate({backgroundColor:g},{complete:function(){a(this).css("backgroundColor",""),a(k).trigger("wpListDimEnd",[d,k.wpList])}}):a(k).trigger("wpListDimEnd",[d,k.wpList]),!d.data._ajax_nonce||(d.success=function(b){if(i=wpAjax.parseAjaxResponse(b,d.response,d.element),j=b,!0===i)return!0;if(!i||i.errors)return e.stop().stop().css("backgroundColor","#ff3333")[f?"removeClass":"addClass"](d.dimClass).show().queue(function(){k.wpList.recolor(),a(this).dequeue()}),!1;if("undefined"!=typeof i.responses[0].supplemental.comment_link){var c=l.find(".submitted-on"),g=c.find("a");""!==i.responses[0].supplemental.comment_link?c.html(a("<a></a>").text(c.text()).prop("href",i.responses[0].supplemental.comment_link)):g.length&&c.text(g.text())}},d.complete=function(b,c){a.isFunction(d.dimAfter)&&e.queue(function(){d.dimAfter(j,a.extend({xml:b,status:c,parsed:i},d))}).dequeue()},a.ajax(d),!1))))},getColor:function(b){return a(b).css("backgroundColor")||"#ffffff"},add:function(c,d){var e,f,g=a(this),h=a(c),i=!1;return"string"==typeof d&&(d={what:d}),d=a.extend({position:0,id:0,oldId:null},this.wpList.settings,d),!(!h.length||!d.what)&&(d.oldId&&(i=a("#"+d.what+"-"+d.oldId)),!d.id||d.id===d.oldId&&i&&i.length||a("#"+d.what+"-"+d.id).remove(),i&&i.length?(i.before(h),i.remove()):isNaN(d.position)?(e="after","-"===d.position.substr(0,1)&&(d.position=d.position.substr(1),e="before"),f=g.find("#"+d.position),1===f.length?f[e](h):g.append(h)):"comment"===d.what&&0!==a("#"+d.element).length||(d.position<0?g.prepend(h):g.append(h)),d.alt&&h.toggleClass(d.alt,(g.children(":visible").index(h[0])+d.altOffset)%2),"none"!==d.addColor&&h.css("backgroundColor",d.addColor).animate({backgroundColor:b.getColor(h)},{complete:function(){a(this).css("backgroundColor","")}}),g.each(function(a,b){b.wpList.process(h)}),h)},clear:function(b){var c,d,e=this,f=a(b);e.wpList&&f.parents("#"+e.id).length||f.find(":input").each(function(b,e){a(e).parents(".form-no-clear").length||(c=e.type.toLowerCase(),d=e.tagName.toLowerCase(),"text"===c||"password"===c||"textarea"===d?e.value="":"checkbox"===c||"radio"===c?e.checked=!1:"select"===d&&(e.selectedIndex=null))})},process:function(b){var c=this,d=a(b||document);d.on("submit",'form[data-wp-lists^="add:'+c.id+':"]',function(){return c.wpList.add(this)}),d.on("click",'a[data-wp-lists^="add:'+c.id+':"], input[data-wp-lists^="add:'+c.id+':"]',function(){return c.wpList.add(this)}),d.on("click",'[data-wp-lists^="delete:'+c.id+':"]',function(){return c.wpList.del(this)}),d.on("click",'[data-wp-lists^="dim:'+c.id+':"]',function(){return c.wpList.dim(this)})},recolor:function(){var b,c=this,d=[":even",":odd"];c.wpList.settings.alt&&(b=a(".list-item:visible",c),b.length||(b=a(c).children(":visible")),c.wpList.settings.altOffset%2&&d.reverse(),b.filter(d[0]).addClass(c.wpList.settings.alt).end(),b.filter(d[1]).removeClass(c.wpList.settings.alt))},init:function(){var a=this;a.wpList.process=function(b){a.each(function(){this.wpList.process(b)})},a.wpList.recolor=function(){a.each(function(){this.wpList.recolor()})}}},a.fn.wpList=function(d){return this.each(function(e,f){f.wpList={settings:a.extend({},b.settings,{what:b.parseData(f,"list")[1]||""},d)},a.each(c,function(a,c){f.wpList[a]=function(a,d){return b[c].call(f,a,d)}})}),b.init.call(this),this.wpList.process(),this}}(jQuery);
\ No newline at end of file
diff --git a/wp-includes/js/wplink.js b/wp-includes/js/wplink.js
index db03036fa..1318632c0 100644
--- a/wp-includes/js/wplink.js
+++ b/wp-includes/js/wplink.js
@@ -125,10 +125,6 @@ var wpLink;
 				} else {
 					editor = null;
 				}
-
-				if ( editor && window.tinymce.isIE ) {
-					editor.windowManager.wplinkBookmark = editor.selection.getBookmark();
-				}
 			}
 
 			if ( ! wpLink.isMCE() && document.selection ) {
@@ -306,10 +302,15 @@ var wpLink;
 		getAttrs: function() {
 			wpLink.correctURL();
 
-			return {
-				href: $.trim( inputs.url.val() ),
-				target: inputs.openInNewTab.prop( 'checked' ) ? '_blank' : ''
+			var attrs = {
+				href: $.trim( inputs.url.val() )
 			};
+
+			if ( inputs.openInNewTab.prop( 'checked' ) ) {
+				attrs.target = '_blank';
+			}
+
+			return attrs;
 		},
 
 		buildHtml: function(attrs) {
@@ -391,12 +392,7 @@ var wpLink;
 
 		mceUpdate: function() {
 			var attrs = wpLink.getAttrs(),
-				link, text;
-
-			if ( window.tinymce.isIE && editor.windowManager.wplinkBookmark ) {
-				editor.selection.moveToBookmark( editor.windowManager.wplinkBookmark );
-				editor.windowManager.wplinkBookmark = null;
-			}
+				$link, text, hasText, $mceCaret;
 
 			if ( ! attrs.href ) {
 				editor.execCommand( 'unlink' );
@@ -404,40 +400,54 @@ var wpLink;
 				return;
 			}
 
-			link = getLink();
-
-			if ( inputs.wrap.hasClass( 'has-text-field' ) ) {
-				text = inputs.text.val() || attrs.href;
-			}
+			$link = editor.$( getLink() );
 
-			if ( link ) {
-				if ( text ) {
-					if ( 'innerText' in link ) {
-						link.innerText = text;
-					} else {
-						link.textContent = text;
-					}
+			editor.undoManager.transact( function() {
+				if ( ! $link.length ) {
+					editor.execCommand( 'mceInsertLink', false, { href: '_wp_link_placeholder', 'data-wp-temp-link': 1 } );
+					$link = editor.$( 'a[data-wp-temp-link="1"]' ).removeAttr( 'data-wp-temp-link' );
+					hasText = $.trim( $link.text() );
 				}
 
-				// Not editing any more
-				attrs['data-wplink-edit'] = null;
-				editor.dom.setAttribs( link, attrs );
-			} else {
-				if ( text ) {
-					editor.selection.setNode( editor.dom.create( 'a', attrs, editor.dom.encode( text ) ) );
+				if ( ! $link.length ) {
+					editor.execCommand( 'unlink' );
 				} else {
-					editor.execCommand( 'mceInsertLink', false, attrs );
+					if ( inputs.wrap.hasClass( 'has-text-field' ) ) {
+						text = inputs.text.val();
+
+						if ( text ) {
+							$link.text( text );
+						} else if ( ! hasText ) {
+							$link.text( attrs.href );
+						}
+					}
+
+					attrs['data-wplink-edit'] = null;
+					attrs['data-mce-href'] = null; // attrs.href
+					$link.attr( attrs );
 				}
-			}
+			} );
 
 			wpLink.close( 'noReset' );
 			editor.focus();
-			editor.nodeChanged();
 
-			if ( link && editor.plugins.wplink ) {
-				editor.plugins.wplink.checkLink( link );
+			if ( $link.length ) {
+				$mceCaret = $link.parent( '#_mce_caret' );
+
+				if ( $mceCaret.length ) {
+					$mceCaret.before( $link.removeAttr( 'data-mce-bogus' ) );
+				}
+
+				editor.selection.select( $link[0] );
+				editor.selection.collapse();
+
+				if ( editor.plugins.wplink ) {
+					editor.plugins.wplink.checkLink( $link[0] );
+				}
 			}
 
+			editor.nodeChanged();
+
 			// Audible confirmation message when a link has been inserted in the Editor.
 			wp.a11y.speak( wpLinkL10n.linkInserted );
 		},
diff --git a/wp-includes/js/wplink.min.js b/wp-includes/js/wplink.min.js
index 327bcbd7c..c93abca80 100644
--- a/wp-includes/js/wplink.min.js
+++ b/wp-includes/js/wplink.min.js
@@ -1 +1 @@
-var wpLink;!function(a,b,c){function d(){return j||e.dom.getParent(e.selection.getNode(),"a[href]")}var e,f,g,h,i,j,k=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,63}$/i,l=/^(https?|ftp):\/\/[A-Z0-9.-]+\.[A-Z]{2,63}[^ "]*$/i,m={},n={},o="ontouchend"in document;wpLink={timeToTriggerRiver:150,minRiverAJAXDuration:200,riverBottomThreshold:5,keySensitivity:100,lastSearch:"",textarea:"",modalOpen:!1,init:function(){m.wrap=a("#wp-link-wrap"),m.dialog=a("#wp-link"),m.backdrop=a("#wp-link-backdrop"),m.submit=a("#wp-link-submit"),m.close=a("#wp-link-close"),m.text=a("#wp-link-text"),m.url=a("#wp-link-url"),m.nonce=a("#_ajax_linking_nonce"),m.openInNewTab=a("#wp-link-target"),m.search=a("#wp-link-search"),n.search=new g(a("#search-results")),n.recent=new g(a("#most-recent-results")),n.elements=m.dialog.find(".query-results"),m.queryNotice=a("#query-notice-message"),m.queryNoticeTextDefault=m.queryNotice.find(".query-notice-default"),m.queryNoticeTextHint=m.queryNotice.find(".query-notice-hint"),m.dialog.keydown(wpLink.keydown),m.dialog.keyup(wpLink.keyup),m.submit.click(function(a){a.preventDefault(),wpLink.update()}),m.close.add(m.backdrop).add("#wp-link-cancel button").click(function(a){a.preventDefault(),wpLink.close()}),n.elements.on("river-select",wpLink.updateFields),m.search.on("focus.wplink",function(){m.queryNoticeTextDefault.hide(),m.queryNoticeTextHint.removeClass("screen-reader-text").show()}).on("blur.wplink",function(){m.queryNoticeTextDefault.show(),m.queryNoticeTextHint.addClass("screen-reader-text").hide()}),m.search.on("keyup input",function(){window.clearTimeout(f),f=window.setTimeout(function(){wpLink.searchInternalLinks()},500)}),m.url.on("paste",function(){setTimeout(wpLink.correctURL,0)}),m.url.on("blur",wpLink.correctURL)},correctURL:function(){var b=a.trim(m.url.val());b&&i!==b&&!/^(?:[a-z]+:|#|\?|\.|\/)/.test(b)&&(m.url.val("http://"+b),i=b)},open:function(b,c,d,f){var g,h=a(document.body);h.addClass("modal-open"),wpLink.modalOpen=!0,j=f,wpLink.range=null,b&&(window.wpActiveEditor=b),window.wpActiveEditor&&(this.textarea=a("#"+window.wpActiveEditor).get(0),"undefined"!=typeof window.tinymce&&(h.append(m.backdrop,m.wrap),g=window.tinymce.get(window.wpActiveEditor),e=g&&!g.isHidden()?g:null,e&&window.tinymce.isIE&&(e.windowManager.wplinkBookmark=e.selection.getBookmark())),!wpLink.isMCE()&&document.selection&&(this.textarea.focus(),this.range=document.selection.createRange()),m.wrap.show(),m.backdrop.show(),wpLink.refresh(c,d),a(document).trigger("wplink-open",m.wrap))},isMCE:function(){return e&&!e.isHidden()},refresh:function(a,b){var c="";n.search.refresh(),n.recent.refresh(),wpLink.isMCE()?wpLink.mceRefresh(a,b):(m.wrap.hasClass("has-text-field")||m.wrap.addClass("has-text-field"),document.selection?c=document.selection.createRange().text||b||"":"undefined"!=typeof this.textarea.selectionStart&&this.textarea.selectionStart!==this.textarea.selectionEnd&&(b=this.textarea.value.substring(this.textarea.selectionStart,this.textarea.selectionEnd)||b||""),m.text.val(b),wpLink.setDefaultValues()),o?m.url.focus().blur():window.setTimeout(function(){m.url[0].select(),m.url.focus()}),n.recent.ul.children().length||n.recent.ajax(),i=m.url.val().replace(/^http:\/\//,"")},hasSelectedText:function(a){var b,c,d,f=e.selection.getContent();if(/</.test(f)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(f)||f.indexOf("href=")===-1))return!1;if(a){if(c=a.childNodes,0===c.length)return!1;for(d=c.length-1;d>=0;d--)if(b=c[d],3!=b.nodeType&&!window.tinymce.dom.BookmarkManager.isBookmarkNode(b))return!1}return!0},mceRefresh:function(c,f){var g,h,i=d(),j=this.hasSelectedText(i);i?(g=i.textContent||i.innerText,h=e.dom.getAttrib(i,"href"),a.trim(g)||(g=f||""),c&&(l.test(c)||k.test(c))&&(h=c),"_wp_link_placeholder"!==h?(m.url.val(h),m.openInNewTab.prop("checked","_blank"===e.dom.getAttrib(i,"target")),m.submit.val(b.update)):this.setDefaultValues(g),c&&c!==h?m.search.val(c):m.search.val(""),window.setTimeout(function(){wpLink.searchInternalLinks()})):(g=e.selection.getContent({format:"text"})||f||"",this.setDefaultValues(g)),j?(m.text.val(g),m.wrap.addClass("has-text-field")):(m.text.val(""),m.wrap.removeClass("has-text-field"))},close:function(b){a(document.body).removeClass("modal-open"),wpLink.modalOpen=!1,"noReset"!==b&&(wpLink.isMCE()?(e.plugins.wplink&&e.plugins.wplink.close(),e.focus()):(wpLink.textarea.focus(),wpLink.range&&(wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select()))),m.backdrop.hide(),m.wrap.hide(),i=!1,a(document).trigger("wplink-close",m.wrap)},getAttrs:function(){return wpLink.correctURL(),{href:a.trim(m.url.val()),target:m.openInNewTab.prop("checked")?"_blank":""}},buildHtml:function(a){var b='<a href="'+a.href+'"';return a.target&&(b+=' target="'+a.target+'"'),b+">"},update:function(){wpLink.isMCE()?wpLink.mceUpdate():wpLink.htmlUpdate()},htmlUpdate:function(){var a,d,e,f,g,h,i,j=wpLink.textarea;j&&(a=wpLink.getAttrs(),d=m.text.val(),a.href&&(e=wpLink.buildHtml(a),document.selection&&wpLink.range?(j.focus(),wpLink.range.text=e+(d||wpLink.range.text)+"</a>",wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select(),wpLink.range=null):"undefined"!=typeof j.selectionStart&&(f=j.selectionStart,g=j.selectionEnd,i=d||j.value.substring(f,g),e=e+i+"</a>",h=f+e.length,f!==g||i||(h-=4),j.value=j.value.substring(0,f)+e+j.value.substring(g,j.value.length),j.selectionStart=j.selectionEnd=h),wpLink.close(),j.focus(),c.a11y.speak(b.linkInserted)))},mceUpdate:function(){var a,f,g=wpLink.getAttrs();return window.tinymce.isIE&&e.windowManager.wplinkBookmark&&(e.selection.moveToBookmark(e.windowManager.wplinkBookmark),e.windowManager.wplinkBookmark=null),g.href?(a=d(),m.wrap.hasClass("has-text-field")&&(f=m.text.val()||g.href),a?(f&&("innerText"in a?a.innerText=f:a.textContent=f),g["data-wplink-edit"]=null,e.dom.setAttribs(a,g)):f?e.selection.setNode(e.dom.create("a",g,e.dom.encode(f))):e.execCommand("mceInsertLink",!1,g),wpLink.close("noReset"),e.focus(),e.nodeChanged(),a&&e.plugins.wplink&&e.plugins.wplink.checkLink(a),void c.a11y.speak(b.linkInserted)):(e.execCommand("unlink"),void wpLink.close())},updateFields:function(a,b){m.url.val(b.children(".item-permalink").val())},getUrlFromSelection:function(b){return b||(this.isMCE()?b=e.selection.getContent({format:"text"}):document.selection&&wpLink.range?b=wpLink.range.text:"undefined"!=typeof this.textarea.selectionStart&&(b=this.textarea.value.substring(this.textarea.selectionStart,this.textarea.selectionEnd))),b=a.trim(b),b&&k.test(b)?"mailto:"+b:b&&l.test(b)?b.replace(/&amp;|&#0?38;/gi,"&"):""},setDefaultValues:function(a){m.url.val(this.getUrlFromSelection(a)),m.search.val(""),wpLink.searchInternalLinks(),m.submit.val(b.save)},searchInternalLinks:function(){var a,b=m.search.val()||"";if(b.length>2){if(n.recent.hide(),n.search.show(),wpLink.lastSearch==b)return;wpLink.lastSearch=b,a=m.search.parent().find(".spinner").addClass("is-active"),n.search.change(b),n.search.ajax(function(){a.removeClass("is-active")})}else n.search.hide(),n.recent.show()},next:function(){n.search.next(),n.recent.next()},prev:function(){n.search.prev(),n.recent.prev()},keydown:function(a){var b,c;27===a.keyCode?(wpLink.close(),a.stopImmediatePropagation()):9===a.keyCode&&(c=a.target.id,"wp-link-submit"!==c||a.shiftKey?"wp-link-close"===c&&a.shiftKey&&(m.submit.focus(),a.preventDefault()):(m.close.focus(),a.preventDefault())),38!==a.keyCode&&40!==a.keyCode||(!document.activeElement||"link-title-field"!==document.activeElement.id&&"url-field"!==document.activeElement.id)&&(b=38===a.keyCode?"prev":"next",clearInterval(wpLink.keyInterval),wpLink[b](),wpLink.keyInterval=setInterval(wpLink[b],wpLink.keySensitivity),a.preventDefault())},keyup:function(a){38!==a.keyCode&&40!==a.keyCode||(clearInterval(wpLink.keyInterval),a.preventDefault())},delayedCallback:function(a,b){var c,d,e,f;return b?(setTimeout(function(){return d?a.apply(f,e):void(c=!0)},b),function(){return c?a.apply(this,arguments):(e=arguments,f=this,void(d=!0))}):a}},g=function(b,c){var d=this;this.element=b,this.ul=b.children("ul"),this.contentHeight=b.children("#link-selector-height"),this.waiting=b.find(".river-waiting"),this.change(c),this.refresh(),a("#wp-link .query-results, #wp-link #link-selector").scroll(function(){d.maybeLoad()}),b.on("click","li",function(b){d.select(a(this),b)})},a.extend(g.prototype,{refresh:function(){this.deselect(),this.visible=this.element.is(":visible")},show:function(){this.visible||(this.deselect(),this.element.show(),this.visible=!0)},hide:function(){this.element.hide(),this.visible=!1},select:function(a,b){var c,d,e,f;a.hasClass("unselectable")||a==this.selected||(this.deselect(),this.selected=a.addClass("selected"),c=a.outerHeight(),d=this.element.height(),e=a.position().top,f=this.element.scrollTop(),e<0?this.element.scrollTop(f+e):e+c>d&&this.element.scrollTop(f+e-d+c),this.element.trigger("river-select",[a,b,this]))},deselect:function(){this.selected&&this.selected.removeClass("selected"),this.selected=!1},prev:function(){if(this.visible){var a;this.selected&&(a=this.selected.prev("li"),a.length&&this.select(a))}},next:function(){if(this.visible){var b=this.selected?this.selected.next("li"):a("li:not(.unselectable):first",this.element);b.length&&this.select(b)}},ajax:function(a){var b=this,c=1==this.query.page?0:wpLink.minRiverAJAXDuration,d=wpLink.delayedCallback(function(c,d){b.process(c,d),a&&a(c,d)},c);this.query.ajax(d)},change:function(a){this.query&&this._search==a||(this._search=a,this.query=new h(a),this.element.scrollTop(0))},process:function(c,d){var e="",f=!0,g="",h=1==d.page;c?a.each(c,function(){g=f?"alternate":"",g+=this.title?"":" no-title",e+=g?'<li class="'+g+'">':"<li>",e+='<input type="hidden" class="item-permalink" value="'+this.permalink+'" />',e+='<span class="item-title">',e+=this.title?this.title:b.noTitle,e+='</span><span class="item-info">'+this.info+"</span></li>",f=!f}):h&&(e+='<li class="unselectable no-matches-found"><span class="item-title"><em>'+b.noMatchesFound+"</em></span></li>"),this.ul[h?"html":"append"](e)},maybeLoad:function(){var a=this,b=this.element,c=b.scrollTop()+b.height();!this.query.ready()||c<this.contentHeight.height()-wpLink.riverBottomThreshold||setTimeout(function(){var c=b.scrollTop(),d=c+b.height();!a.query.ready()||d<a.contentHeight.height()-wpLink.riverBottomThreshold||(a.waiting.addClass("is-active"),b.scrollTop(c+a.waiting.outerHeight()),a.ajax(function(){a.waiting.removeClass("is-active")}))},wpLink.timeToTriggerRiver)}}),h=function(a){this.page=1,this.allLoaded=!1,this.querying=!1,this.search=a},a.extend(h.prototype,{ready:function(){return!(this.querying||this.allLoaded)},ajax:function(b){var c=this,d={action:"wp-link-ajax",page:this.page,_ajax_linking_nonce:m.nonce.val()};this.search&&(d.search=this.search),this.querying=!0,a.post(window.ajaxurl,d,function(a){c.page++,c.querying=!1,c.allLoaded=!a,b(a,d)},"json")}}),a(document).ready(wpLink.init)}(jQuery,window.wpLinkL10n,window.wp);
\ No newline at end of file
+var wpLink;!function(a,b,c){function d(){return j||e.dom.getParent(e.selection.getNode(),"a[href]")}var e,f,g,h,i,j,k=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,63}$/i,l=/^(https?|ftp):\/\/[A-Z0-9.-]+\.[A-Z]{2,63}[^ "]*$/i,m={},n={},o="ontouchend"in document;wpLink={timeToTriggerRiver:150,minRiverAJAXDuration:200,riverBottomThreshold:5,keySensitivity:100,lastSearch:"",textarea:"",modalOpen:!1,init:function(){m.wrap=a("#wp-link-wrap"),m.dialog=a("#wp-link"),m.backdrop=a("#wp-link-backdrop"),m.submit=a("#wp-link-submit"),m.close=a("#wp-link-close"),m.text=a("#wp-link-text"),m.url=a("#wp-link-url"),m.nonce=a("#_ajax_linking_nonce"),m.openInNewTab=a("#wp-link-target"),m.search=a("#wp-link-search"),n.search=new g(a("#search-results")),n.recent=new g(a("#most-recent-results")),n.elements=m.dialog.find(".query-results"),m.queryNotice=a("#query-notice-message"),m.queryNoticeTextDefault=m.queryNotice.find(".query-notice-default"),m.queryNoticeTextHint=m.queryNotice.find(".query-notice-hint"),m.dialog.keydown(wpLink.keydown),m.dialog.keyup(wpLink.keyup),m.submit.click(function(a){a.preventDefault(),wpLink.update()}),m.close.add(m.backdrop).add("#wp-link-cancel button").click(function(a){a.preventDefault(),wpLink.close()}),n.elements.on("river-select",wpLink.updateFields),m.search.on("focus.wplink",function(){m.queryNoticeTextDefault.hide(),m.queryNoticeTextHint.removeClass("screen-reader-text").show()}).on("blur.wplink",function(){m.queryNoticeTextDefault.show(),m.queryNoticeTextHint.addClass("screen-reader-text").hide()}),m.search.on("keyup input",function(){window.clearTimeout(f),f=window.setTimeout(function(){wpLink.searchInternalLinks()},500)}),m.url.on("paste",function(){setTimeout(wpLink.correctURL,0)}),m.url.on("blur",wpLink.correctURL)},correctURL:function(){var b=a.trim(m.url.val());b&&i!==b&&!/^(?:[a-z]+:|#|\?|\.|\/)/.test(b)&&(m.url.val("http://"+b),i=b)},open:function(b,c,d,f){var g,h=a(document.body);h.addClass("modal-open"),wpLink.modalOpen=!0,j=f,wpLink.range=null,b&&(window.wpActiveEditor=b),window.wpActiveEditor&&(this.textarea=a("#"+window.wpActiveEditor).get(0),"undefined"!=typeof window.tinymce&&(h.append(m.backdrop,m.wrap),g=window.tinymce.get(window.wpActiveEditor),e=g&&!g.isHidden()?g:null),!wpLink.isMCE()&&document.selection&&(this.textarea.focus(),this.range=document.selection.createRange()),m.wrap.show(),m.backdrop.show(),wpLink.refresh(c,d),a(document).trigger("wplink-open",m.wrap))},isMCE:function(){return e&&!e.isHidden()},refresh:function(a,b){var c="";n.search.refresh(),n.recent.refresh(),wpLink.isMCE()?wpLink.mceRefresh(a,b):(m.wrap.hasClass("has-text-field")||m.wrap.addClass("has-text-field"),document.selection?c=document.selection.createRange().text||b||"":"undefined"!=typeof this.textarea.selectionStart&&this.textarea.selectionStart!==this.textarea.selectionEnd&&(b=this.textarea.value.substring(this.textarea.selectionStart,this.textarea.selectionEnd)||b||""),m.text.val(b),wpLink.setDefaultValues()),o?m.url.focus().blur():window.setTimeout(function(){m.url[0].select(),m.url.focus()}),n.recent.ul.children().length||n.recent.ajax(),i=m.url.val().replace(/^http:\/\//,"")},hasSelectedText:function(a){var b,c,d,f=e.selection.getContent();if(/</.test(f)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(f)||f.indexOf("href=")===-1))return!1;if(a){if(c=a.childNodes,0===c.length)return!1;for(d=c.length-1;d>=0;d--)if(b=c[d],3!=b.nodeType&&!window.tinymce.dom.BookmarkManager.isBookmarkNode(b))return!1}return!0},mceRefresh:function(c,f){var g,h,i=d(),j=this.hasSelectedText(i);i?(g=i.textContent||i.innerText,h=e.dom.getAttrib(i,"href"),a.trim(g)||(g=f||""),c&&(l.test(c)||k.test(c))&&(h=c),"_wp_link_placeholder"!==h?(m.url.val(h),m.openInNewTab.prop("checked","_blank"===e.dom.getAttrib(i,"target")),m.submit.val(b.update)):this.setDefaultValues(g),c&&c!==h?m.search.val(c):m.search.val(""),window.setTimeout(function(){wpLink.searchInternalLinks()})):(g=e.selection.getContent({format:"text"})||f||"",this.setDefaultValues(g)),j?(m.text.val(g),m.wrap.addClass("has-text-field")):(m.text.val(""),m.wrap.removeClass("has-text-field"))},close:function(b){a(document.body).removeClass("modal-open"),wpLink.modalOpen=!1,"noReset"!==b&&(wpLink.isMCE()?(e.plugins.wplink&&e.plugins.wplink.close(),e.focus()):(wpLink.textarea.focus(),wpLink.range&&(wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select()))),m.backdrop.hide(),m.wrap.hide(),i=!1,a(document).trigger("wplink-close",m.wrap)},getAttrs:function(){wpLink.correctURL();var b={href:a.trim(m.url.val())};return m.openInNewTab.prop("checked")&&(b.target="_blank"),b},buildHtml:function(a){var b='<a href="'+a.href+'"';return a.target&&(b+=' target="'+a.target+'"'),b+">"},update:function(){wpLink.isMCE()?wpLink.mceUpdate():wpLink.htmlUpdate()},htmlUpdate:function(){var a,d,e,f,g,h,i,j=wpLink.textarea;j&&(a=wpLink.getAttrs(),d=m.text.val(),a.href&&(e=wpLink.buildHtml(a),document.selection&&wpLink.range?(j.focus(),wpLink.range.text=e+(d||wpLink.range.text)+"</a>",wpLink.range.moveToBookmark(wpLink.range.getBookmark()),wpLink.range.select(),wpLink.range=null):"undefined"!=typeof j.selectionStart&&(f=j.selectionStart,g=j.selectionEnd,i=d||j.value.substring(f,g),e=e+i+"</a>",h=f+e.length,f!==g||i||(h-=4),j.value=j.value.substring(0,f)+e+j.value.substring(g,j.value.length),j.selectionStart=j.selectionEnd=h),wpLink.close(),j.focus(),c.a11y.speak(b.linkInserted)))},mceUpdate:function(){var f,g,h,i,j=wpLink.getAttrs();return j.href?(f=e.$(d()),e.undoManager.transact(function(){f.length||(e.execCommand("mceInsertLink",!1,{href:"_wp_link_placeholder","data-wp-temp-link":1}),f=e.$('a[data-wp-temp-link="1"]').removeAttr("data-wp-temp-link"),h=a.trim(f.text())),f.length?(m.wrap.hasClass("has-text-field")&&(g=m.text.val(),g?f.text(g):h||f.text(j.href)),j["data-wplink-edit"]=null,j["data-mce-href"]=null,f.attr(j)):e.execCommand("unlink")}),wpLink.close("noReset"),e.focus(),f.length&&(i=f.parent("#_mce_caret"),i.length&&i.before(f.removeAttr("data-mce-bogus")),e.selection.select(f[0]),e.selection.collapse(),e.plugins.wplink&&e.plugins.wplink.checkLink(f[0])),e.nodeChanged(),void c.a11y.speak(b.linkInserted)):(e.execCommand("unlink"),void wpLink.close())},updateFields:function(a,b){m.url.val(b.children(".item-permalink").val())},getUrlFromSelection:function(b){return b||(this.isMCE()?b=e.selection.getContent({format:"text"}):document.selection&&wpLink.range?b=wpLink.range.text:"undefined"!=typeof this.textarea.selectionStart&&(b=this.textarea.value.substring(this.textarea.selectionStart,this.textarea.selectionEnd))),b=a.trim(b),b&&k.test(b)?"mailto:"+b:b&&l.test(b)?b.replace(/&amp;|&#0?38;/gi,"&"):""},setDefaultValues:function(a){m.url.val(this.getUrlFromSelection(a)),m.search.val(""),wpLink.searchInternalLinks(),m.submit.val(b.save)},searchInternalLinks:function(){var a,b=m.search.val()||"";if(b.length>2){if(n.recent.hide(),n.search.show(),wpLink.lastSearch==b)return;wpLink.lastSearch=b,a=m.search.parent().find(".spinner").addClass("is-active"),n.search.change(b),n.search.ajax(function(){a.removeClass("is-active")})}else n.search.hide(),n.recent.show()},next:function(){n.search.next(),n.recent.next()},prev:function(){n.search.prev(),n.recent.prev()},keydown:function(a){var b,c;27===a.keyCode?(wpLink.close(),a.stopImmediatePropagation()):9===a.keyCode&&(c=a.target.id,"wp-link-submit"!==c||a.shiftKey?"wp-link-close"===c&&a.shiftKey&&(m.submit.focus(),a.preventDefault()):(m.close.focus(),a.preventDefault())),38!==a.keyCode&&40!==a.keyCode||(!document.activeElement||"link-title-field"!==document.activeElement.id&&"url-field"!==document.activeElement.id)&&(b=38===a.keyCode?"prev":"next",clearInterval(wpLink.keyInterval),wpLink[b](),wpLink.keyInterval=setInterval(wpLink[b],wpLink.keySensitivity),a.preventDefault())},keyup:function(a){38!==a.keyCode&&40!==a.keyCode||(clearInterval(wpLink.keyInterval),a.preventDefault())},delayedCallback:function(a,b){var c,d,e,f;return b?(setTimeout(function(){return d?a.apply(f,e):void(c=!0)},b),function(){return c?a.apply(this,arguments):(e=arguments,f=this,void(d=!0))}):a}},g=function(b,c){var d=this;this.element=b,this.ul=b.children("ul"),this.contentHeight=b.children("#link-selector-height"),this.waiting=b.find(".river-waiting"),this.change(c),this.refresh(),a("#wp-link .query-results, #wp-link #link-selector").scroll(function(){d.maybeLoad()}),b.on("click","li",function(b){d.select(a(this),b)})},a.extend(g.prototype,{refresh:function(){this.deselect(),this.visible=this.element.is(":visible")},show:function(){this.visible||(this.deselect(),this.element.show(),this.visible=!0)},hide:function(){this.element.hide(),this.visible=!1},select:function(a,b){var c,d,e,f;a.hasClass("unselectable")||a==this.selected||(this.deselect(),this.selected=a.addClass("selected"),c=a.outerHeight(),d=this.element.height(),e=a.position().top,f=this.element.scrollTop(),e<0?this.element.scrollTop(f+e):e+c>d&&this.element.scrollTop(f+e-d+c),this.element.trigger("river-select",[a,b,this]))},deselect:function(){this.selected&&this.selected.removeClass("selected"),this.selected=!1},prev:function(){if(this.visible){var a;this.selected&&(a=this.selected.prev("li"),a.length&&this.select(a))}},next:function(){if(this.visible){var b=this.selected?this.selected.next("li"):a("li:not(.unselectable):first",this.element);b.length&&this.select(b)}},ajax:function(a){var b=this,c=1==this.query.page?0:wpLink.minRiverAJAXDuration,d=wpLink.delayedCallback(function(c,d){b.process(c,d),a&&a(c,d)},c);this.query.ajax(d)},change:function(a){this.query&&this._search==a||(this._search=a,this.query=new h(a),this.element.scrollTop(0))},process:function(c,d){var e="",f=!0,g="",h=1==d.page;c?a.each(c,function(){g=f?"alternate":"",g+=this.title?"":" no-title",e+=g?'<li class="'+g+'">':"<li>",e+='<input type="hidden" class="item-permalink" value="'+this.permalink+'" />',e+='<span class="item-title">',e+=this.title?this.title:b.noTitle,e+='</span><span class="item-info">'+this.info+"</span></li>",f=!f}):h&&(e+='<li class="unselectable no-matches-found"><span class="item-title"><em>'+b.noMatchesFound+"</em></span></li>"),this.ul[h?"html":"append"](e)},maybeLoad:function(){var a=this,b=this.element,c=b.scrollTop()+b.height();!this.query.ready()||c<this.contentHeight.height()-wpLink.riverBottomThreshold||setTimeout(function(){var c=b.scrollTop(),d=c+b.height();!a.query.ready()||d<a.contentHeight.height()-wpLink.riverBottomThreshold||(a.waiting.addClass("is-active"),b.scrollTop(c+a.waiting.outerHeight()),a.ajax(function(){a.waiting.removeClass("is-active")}))},wpLink.timeToTriggerRiver)}}),h=function(a){this.page=1,this.allLoaded=!1,this.querying=!1,this.search=a},a.extend(h.prototype,{ready:function(){return!(this.querying||this.allLoaded)},ajax:function(b){var c=this,d={action:"wp-link-ajax",page:this.page,_ajax_linking_nonce:m.nonce.val()};this.search&&(d.search=this.search),this.querying=!0,a.post(window.ajaxurl,d,function(a){c.page++,c.querying=!1,c.allLoaded=!a,b(a,d)},"json")}}),a(document).ready(wpLink.init)}(jQuery,window.wpLinkL10n,window.wp);
\ No newline at end of file
diff --git a/wp-includes/kses.php b/wp-includes/kses.php
index 8be3f79d5..4745d8d7e 100644
--- a/wp-includes/kses.php
+++ b/wp-includes/kses.php
@@ -527,7 +527,6 @@ function wp_kses( $string, $allowed_html, $allowed_protocols = array() ) {
 	if ( empty( $allowed_protocols ) )
 		$allowed_protocols = wp_allowed_protocols();
 	$string = wp_kses_no_null( $string, array( 'slash_zero' => 'keep' ) );
-	$string = wp_kses_js_entities($string);
 	$string = wp_kses_normalize_entities($string);
 	$string = wp_kses_hook($string, $allowed_html, $allowed_protocols); // WP changed the order of these funcs and added args to wp_kses_hook
 	return wp_kses_split($string, $allowed_html, $allowed_protocols);
@@ -550,7 +549,6 @@ function wp_kses_one_attr( $string, $element ) {
 	$allowed_html = wp_kses_allowed_html( 'post' );
 	$allowed_protocols = wp_allowed_protocols();
 	$string = wp_kses_no_null( $string, array( 'slash_zero' => 'keep' ) );
-	$string = wp_kses_js_entities( $string );
 	
 	// Preserve leading and trailing whitespace.
 	$matches = array();
@@ -781,7 +779,7 @@ function wp_kses_split2($string, $allowed_html, $allowed_protocols) {
 	}
 	// Allow HTML comments
 
-	if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9]+)([^>]*)>?$%', $string, $matches))
+	if (!preg_match('%^<\s*(/\s*)?([a-zA-Z0-9-]+)([^>]*)>?$%', $string, $matches))
 		return '';
 	// It's seriously malformed
 
@@ -1295,18 +1293,6 @@ function wp_kses_array_lc($inarray) {
 	return $outarray;
 }
 
-/**
- * Removes the HTML JavaScript entities found in early versions of Netscape 4.
- *
- * @since 1.0.0
- *
- * @param string $string
- * @return string
- */
-function wp_kses_js_entities($string) {
-	return preg_replace('%&\s*\{[^}]*(\}\s*;?|$)%', '', $string);
-}
-
 /**
  * Handles parsing errors in wp_kses_hair().
  *
diff --git a/wp-includes/l10n.php b/wp-includes/l10n.php
index c63777451..20a18f96a 100644
--- a/wp-includes/l10n.php
+++ b/wp-includes/l10n.php
@@ -75,6 +75,35 @@ function get_locale() {
 	return apply_filters( 'locale', $locale );
 }
 
+/**
+ * Retrieves the locale of a user.
+ *
+ * If the user has a locale set to a non-empty string then it will be
+ * returned. Otherwise it returns the locale of get_locale().
+ *
+ * @since 4.7.0
+ *
+ * @param int|WP_User $user_id User's ID or a WP_User object. Defaults to current user.
+ * @return string The locale of the user.
+ */
+function get_user_locale( $user_id = 0 ) {
+	$user = false;
+	if ( 0 === $user_id && function_exists( 'wp_get_current_user' ) ) {
+		$user = wp_get_current_user();
+	} elseif ( $user_id instanceof WP_User ) {
+		$user = $user_id;
+	} elseif ( $user_id && is_numeric( $user_id ) ) {
+		$user = get_user_by( 'id', $user_id );
+	}
+
+	if ( ! $user ) {
+		return get_locale();
+	}
+
+	$locale = $user->locale;
+	return $locale ? $locale : get_locale();
+}
+
 /**
  * Retrieve the translation of $text.
  *
@@ -91,18 +120,18 @@ function get_locale() {
  */
 function translate( $text, $domain = 'default' ) {
 	$translations = get_translations_for_domain( $domain );
-	$translations = $translations->translate( $text );
+	$translation  = $translations->translate( $text );
 
 	/**
 	 * Filters text with its translation.
 	 *
 	 * @since 2.0.11
 	 *
-	 * @param string $translations Translated text.
+	 * @param string $translation  Translated text.
 	 * @param string $text         Text to translate.
 	 * @param string $domain       Text domain. Unique identifier for retrieving translated strings.
 	 */
-	return apply_filters( 'gettext', $translations, $text, $domain );
+	return apply_filters( 'gettext', $translation, $text, $domain );
 }
 
 /**
@@ -143,18 +172,18 @@ function before_last_bar( $string ) {
  */
 function translate_with_gettext_context( $text, $context, $domain = 'default' ) {
 	$translations = get_translations_for_domain( $domain );
-	$translations = $translations->translate( $text, $context );
+	$translation  = $translations->translate( $text, $context );
 	/**
 	 * Filters text with its translation based on context information.
 	 *
 	 * @since 2.8.0
 	 *
-	 * @param string $translations Translated text.
+	 * @param string $translation  Translated text.
 	 * @param string $text         Text to translate.
 	 * @param string $context      Context information for the translators.
 	 * @param string $domain       Text domain. Unique identifier for retrieving translated strings.
 	 */
-	return apply_filters( 'gettext_with_context', $translations, $text, $context, $domain );
+	return apply_filters( 'gettext_with_context', $translation, $text, $context, $domain );
 }
 
 /**
@@ -318,7 +347,7 @@ function esc_html_x( $text, $context, $domain = 'default' ) {
  *
  * Example:
  *
- *     $people = sprintf( _n( '%s person', '%s people', $count, 'text-domain' ), number_format_i18n( $count ) );
+ *     printf( _n( '%s person', '%s people', $count, 'text-domain' ), number_format_i18n( $count ) );
  *
  * @since 2.8.0
  *
@@ -331,7 +360,7 @@ function esc_html_x( $text, $context, $domain = 'default' ) {
  */
 function _n( $single, $plural, $number, $domain = 'default' ) {
 	$translations = get_translations_for_domain( $domain );
-	$translation = $translations->translate_plural( $single, $plural, $number );
+	$translation  = $translations->translate_plural( $single, $plural, $number );
 
 	/**
 	 * Filters the singular or plural form of a string.
@@ -355,9 +384,10 @@ function _n( $single, $plural, $number, $domain = 'default' ) {
  * Used when you want to use the appropriate form of a string with context based on whether a
  * number is singular or plural.
  *
- * Example:
+ * Example of a generic phrase which is disambiguated via the context parameter:
  *
- *     $people = sprintf( _n( '%s person', '%s people', $count, 'context', 'text-domain' ), number_format_i18n( $count ) );
+ *     printf( _nx( '%s group', '%s groups', $people, 'group of people', 'text-domain' ), number_format_i18n( $people ) );
+ *     printf( _nx( '%s group', '%s groups', $animals, 'group of animals', 'text-domain' ), number_format_i18n( $animals ) );
  *
  * @since 2.8.0
  *
@@ -371,7 +401,7 @@ function _n( $single, $plural, $number, $domain = 'default' ) {
  */
 function _nx($single, $plural, $number, $context, $domain = 'default') {
 	$translations = get_translations_for_domain( $domain );
-	$translation = $translations->translate_plural( $single, $plural, $number, $context );
+	$translation  = $translations->translate_plural( $single, $plural, $number, $context );
 
 	/**
 	 * Filters the singular or plural form of a string with gettext context.
@@ -396,13 +426,9 @@ function _nx($single, $plural, $number, $context, $domain = 'default') {
  *
  * Example:
  *
- *     $messages = array(
- *      	'post' => _n_noop( '%s post', '%s posts', 'text-domain' ),
- *      	'page' => _n_noop( '%s pages', '%s pages', 'text-domain' ),
- *     );
+ *     $message = _n_noop( '%s post', '%s posts', 'text-domain' );
  *     ...
- *     $message = $messages[ $type ];
- *     $usable_text = sprintf( translate_nooped_plural( $message, $count, 'text-domain' ), number_format_i18n( $count ) );
+ *     printf( translate_nooped_plural( $message, $count, 'text-domain' ), number_format_i18n( $count ) );
  *
  * @since 2.5.0
  *
@@ -431,15 +457,15 @@ function _n_noop( $singular, $plural, $domain = null ) {
  * Used when you want to keep structures with translatable plural
  * strings and use them later when the number is known.
  *
- * Example:
+ * Example of a generic phrase which is disambiguated via the context parameter:
  *
  *     $messages = array(
- *      	'post' => _n_noop( '%s post', '%s posts', 'context', 'text-domain' ),
- *      	'page' => _n_noop( '%s pages', '%s pages', 'context', 'text-domain' ),
+ *      	'people'  => _nx_noop( '%s group', '%s groups', 'people', 'text-domain' ),
+ *      	'animals' => _nx_noop( '%s group', '%s groups', 'animals', 'text-domain' ),
  *     );
  *     ...
  *     $message = $messages[ $type ];
- *     $usable_text = sprintf( translate_nooped_plural( $message, $count, 'text-domain' ), number_format_i18n( $count ) );
+ *     printf( translate_nooped_plural( $message, $count, 'text-domain' ), number_format_i18n( $count ) );
  *
  * @since 2.8.0
  *
@@ -472,13 +498,9 @@ function _nx_noop( $singular, $plural, $context, $domain = null ) {
  *
  * Example:
  *
- *     $messages = array(
- *      	'post' => _n_noop( '%s post', '%s posts', 'text-domain' ),
- *      	'page' => _n_noop( '%s pages', '%s pages', 'text-domain' ),
- *     );
+ *     $message = _n_noop( '%s post', '%s posts', 'text-domain' );
  *     ...
- *     $message = $messages[ $type ];
- *     $usable_text = sprintf( translate_nooped_plural( $message, $count, 'text-domain' ), number_format_i18n( $count ) );
+ *     printf( translate_nooped_plural( $message, $count, 'text-domain' ), number_format_i18n( $count ) );
  *
  * @since 3.1.0
  *
@@ -640,7 +662,7 @@ function unload_textdomain( $domain ) {
  */
 function load_default_textdomain( $locale = null ) {
 	if ( null === $locale ) {
-		$locale = get_locale();
+		$locale = is_admin() ? get_user_locale() : get_locale();
 	}
 
 	// Unload previously loaded strings so we can switch translations.
@@ -674,7 +696,7 @@ function load_default_textdomain( $locale = null ) {
  * @since 4.6.0 The function now tries to load the .mo file from the languages directory first.
  *
  * @param string $domain          Unique identifier for retrieving translated strings
- * @param string $deprecated      Optional. Use the $plugin_rel_path parameter instead. Defaukt false.
+ * @param string $deprecated      Optional. Use the $plugin_rel_path parameter instead. Default false.
  * @param string $plugin_rel_path Optional. Relative path to WP_PLUGIN_DIR where the .mo file resides.
  *                                Default false.
  * @return bool True when textdomain is successfully loaded, false otherwise.
@@ -688,7 +710,7 @@ function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path
 	 * @param string $locale The plugin's current locale.
 	 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
 	 */
-	$locale = apply_filters( 'plugin_locale', get_locale(), $domain );
+	$locale = apply_filters( 'plugin_locale', is_admin() ? get_user_locale() : get_locale(), $domain );
 
 	$mofile = $domain . '-' . $locale . '.mo';
 
@@ -722,7 +744,7 @@ function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path
  */
 function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) {
 	/** This filter is documented in wp-includes/l10n.php */
-	$locale = apply_filters( 'plugin_locale', get_locale(), $domain );
+	$locale = apply_filters( 'plugin_locale', is_admin() ? get_user_locale() : get_locale(), $domain );
 
 	$mofile = $domain . '-' . $locale . '.mo';
 
@@ -761,7 +783,7 @@ function load_theme_textdomain( $domain, $path = false ) {
 	 * @param string $locale The theme's current locale.
 	 * @param string $domain Text domain. Unique identifier for retrieving translated strings.
 	 */
-	$locale = apply_filters( 'theme_locale', get_locale(), $domain );
+	$locale = apply_filters( 'theme_locale', is_admin() ? get_user_locale() : get_locale(), $domain );
 
 	$mofile = $domain . '-' . $locale . '.mo';
 
@@ -805,8 +827,6 @@ function load_child_theme_textdomain( $domain, $path = false ) {
  * the translation file from `wp-content/languages`, removing the need
  * to call load_plugin_texdomain() or load_theme_texdomain().
  *
- * Holds a cached list of available .mo files to improve performance.
- *
  * @since 4.6.0
  * @access private
  *
@@ -821,13 +841,63 @@ function _load_textdomain_just_in_time( $domain ) {
 
 	$l10n_unloaded = (array) $l10n_unloaded;
 
-	static $cached_mofiles = null;
-
 	// Short-circuit if domain is 'default' which is reserved for core.
 	if ( 'default' === $domain || isset( $l10n_unloaded[ $domain ] ) ) {
 		return false;
 	}
 
+	$translation_path = _get_path_to_translation( $domain );
+	if ( false === $translation_path ) {
+		return false;
+	}
+
+	return load_textdomain( $domain, $translation_path );
+}
+
+/**
+ * Gets the path to a translation file for loading a textdomain just in time.
+ *
+ * Caches the retrieved results internally.
+ *
+ * @since 4.7.0
+ * @access private
+ *
+ * @see _load_textdomain_just_in_time()
+ *
+ * @param string $domain Text domain. Unique identifier for retrieving translated strings.
+ * @param bool   $reset  Whether to reset the internal cache. Used by the switch to locale functionality.
+ * @return string|false The path to the translation file or false if no translation file was found.
+ */
+function _get_path_to_translation( $domain, $reset = false ) {
+	static $available_translations = array();
+
+	if ( true === $reset ) {
+		$available_translations = array();
+	}
+
+	if ( ! isset( $available_translations[ $domain ] ) ) {
+		$available_translations[ $domain ] = _get_path_to_translation_from_lang_dir( $domain );
+	}
+
+	return $available_translations[ $domain ];
+}
+
+/**
+ * Gets the path to a translation file in the languages directory for the current locale.
+ *
+ * Holds a cached list of available .mo files to improve performance.
+ *
+ * @since 4.7.0
+ * @access private
+ *
+ * @see _get_path_to_translation()
+ *
+ * @param string $domain Text domain. Unique identifier for retrieving translated strings.
+ * @return string|false The path to the translation file or false if no translation file was found.
+ */
+function _get_path_to_translation_from_lang_dir( $domain ) {
+	static $cached_mofiles = null;
+
 	if ( null === $cached_mofiles ) {
 		$cached_mofiles = array();
 
@@ -837,21 +907,24 @@ function _load_textdomain_just_in_time( $domain ) {
 		);
 
 		foreach ( $locations as $location ) {
-			foreach ( get_available_languages( $location ) as $file ) {
-				$cached_mofiles[] = "{$location}/{$file}.mo";
+			$mofiles = glob( $location . '/*.mo' );
+			if ( $mofiles ) {
+				$cached_mofiles = array_merge( $cached_mofiles, $mofiles );
 			}
 		}
 	}
 
-	$locale = get_locale();
+	$locale = is_admin() ? get_user_locale() : get_locale();
 	$mofile = "{$domain}-{$locale}.mo";
 
-	if ( in_array( WP_LANG_DIR . '/plugins/' . $mofile, $cached_mofiles ) ) {
-		return load_textdomain( $domain, WP_LANG_DIR . '/plugins/' . $mofile );
+	$path = WP_LANG_DIR . '/plugins/' . $mofile;
+	if ( in_array( $path, $cached_mofiles ) ) {
+		return $path;
 	}
 
-	if ( in_array( WP_LANG_DIR . '/themes/' . $mofile, $cached_mofiles ) ) {
-		return load_textdomain( $domain, WP_LANG_DIR . '/themes/' . $mofile );
+	$path = WP_LANG_DIR . '/themes/' . $mofile;
+	if ( in_array( $path, $cached_mofiles ) ) {
+		return $path;
 	}
 
 	return false;
@@ -867,7 +940,7 @@ function _load_textdomain_just_in_time( $domain ) {
  * @global array $l10n
  *
  * @param string $domain Text domain. Unique identifier for retrieving translated strings.
- * @return NOOP_Translations A Translations instance.
+ * @return Translations|NOOP_Translations A Translations instance.
  */
 function get_translations_for_domain( $domain ) {
 	global $l10n;
@@ -925,6 +998,7 @@ function translate_user_role( $name ) {
  * The default directory is WP_LANG_DIR.
  *
  * @since 3.0.0
+ * @since 4.7.0 The results are now filterable with the {@see 'get_available_languages'} filter.
  *
  * @param string $dir A directory to search for language files.
  *                    Default WP_LANG_DIR.
@@ -933,7 +1007,7 @@ function translate_user_role( $name ) {
 function get_available_languages( $dir = null ) {
 	$languages = array();
 
-	$lang_files = glob( ( is_null( $dir) ? WP_LANG_DIR : $dir ) . '/*.mo' );
+	$lang_files = glob( ( is_null( $dir ) ? WP_LANG_DIR : $dir ) . '/*.mo' );
 	if ( $lang_files ) {
 		foreach ( $lang_files as $lang_file ) {
 			$lang_file = basename( $lang_file, '.mo' );
@@ -944,7 +1018,15 @@ function get_available_languages( $dir = null ) {
 		}
 	}
 
-	return $languages;
+	/**
+	 * Filters the list of available language codes.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array  $languages An array of available language codes.
+	 * @param string $dir       The directory where the language files were found.
+	 */
+	return apply_filters( 'get_available_languages', $languages, $dir );
 }
 
 /**
@@ -1026,6 +1108,7 @@ function wp_get_pomo_file_data( $po_file ) {
  *
  * @since 4.0.0
  * @since 4.3.0 Introduced the `echo` argument.
+ * @since 4.7.0 Introduced the `show_option_site_default` argument.
  *
  * @see get_available_languages()
  * @see wp_get_available_translations()
@@ -1043,6 +1126,7 @@ function wp_get_pomo_file_data( $po_file ) {
  *     @type bool|int $echo                         Whether to echo the generated markup. Accepts 0, 1, or their
  *                                                  boolean equivalents. Default 1.
  *     @type bool     $show_available_translations  Whether to show available translations. Default true.
+ *     @type bool     $show_option_site_default     Whether to show an option to fall back to the site's locale. Default false.
  * }
  * @return string HTML content
  */
@@ -1056,8 +1140,14 @@ function wp_dropdown_languages( $args = array() ) {
 		'selected'     => '',
 		'echo'         => 1,
 		'show_available_translations' => true,
+		'show_option_site_default'    => false,
 	) );
 
+	// English (United States) uses an empty string for the value attribute.
+	if ( 'en_US' === $args['selected'] ) {
+		$args['selected'] = '';
+	}
+
 	$translations = $args['translations'];
 	if ( empty( $translations ) ) {
 		require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
@@ -1100,7 +1190,20 @@ function wp_dropdown_languages( $args = array() ) {
 	if ( $translations_available ) {
 		$structure[] = '<optgroup label="' . esc_attr_x( 'Installed', 'translations' ) . '">';
 	}
-	$structure[] = '<option value="" lang="en" data-installed="1">English (United States)</option>';
+
+	if ( $args['show_option_site_default'] ) {
+		$structure[] = sprintf(
+			'<option value="site-default" data-installed="1"%s>%s</option>',
+			selected( 'site-default', $args['selected'], false ),
+			_x( 'Site Default', 'default site language' )
+		);
+	}
+
+	$structure[] = sprintf(
+		'<option value="" lang="en" data-installed="1"%s>English (United States)</option>',
+		selected( '', $args['selected'], false )
+	);
+
 	foreach ( $languages as $language ) {
 		$structure[] = sprintf(
 			'<option value="%s" lang="%s"%s data-installed="1">%s</option>',
@@ -1139,3 +1242,85 @@ function wp_dropdown_languages( $args = array() ) {
 
 	return $output;
 }
+
+/**
+ * Checks if current locale is RTL.
+ *
+ * @since 3.0.0
+ *
+ * @global WP_Locale $wp_locale
+ *
+ * @return bool Whether locale is RTL.
+ */
+function is_rtl() {
+	global $wp_locale;
+	if ( ! ( $wp_locale instanceof WP_Locale ) ) {
+		return false;
+	}
+	return $wp_locale->is_rtl();
+}
+
+/**
+ * Switches the translations according to the given locale.
+ *
+ * @since 4.7.0
+ *
+ * @global WP_Locale_Switcher $wp_locale_switcher
+ *
+ * @param string $locale The locale.
+ * @return bool True on success, false on failure.
+ */
+function switch_to_locale( $locale ) {
+	/* @var WP_Locale_Switcher $wp_locale_switcher */
+	global $wp_locale_switcher;
+
+	return $wp_locale_switcher->switch_to_locale( $locale );
+}
+
+/**
+ * Restores the translations according to the previous locale.
+ *
+ * @since 4.7.0
+ *
+ * @global WP_Locale_Switcher $wp_locale_switcher
+ *
+ * @return string|false Locale on success, false on error.
+ */
+function restore_previous_locale() {
+	/* @var WP_Locale_Switcher $wp_locale_switcher */
+	global $wp_locale_switcher;
+
+	return $wp_locale_switcher->restore_previous_locale();
+}
+
+/**
+ * Restores the translations according to the original locale.
+ *
+ * @since 4.7.0
+ *
+ * @global WP_Locale_Switcher $wp_locale_switcher
+ *
+ * @return string|false Locale on success, false on error.
+ */
+function restore_current_locale() {
+	/* @var WP_Locale_Switcher $wp_locale_switcher */
+	global $wp_locale_switcher;
+
+	return $wp_locale_switcher->restore_current_locale();
+}
+
+/**
+ * Whether switch_to_locale() is in effect.
+ *
+ * @since 4.7.0
+ *
+ * @global WP_Locale_Switcher $wp_locale_switcher
+ *
+ * @return bool True if the locale has been switched, false otherwise.
+ */
+function is_locale_switched() {
+	/* @var WP_Locale_Switcher $wp_locale_switcher */
+	global $wp_locale_switcher;
+
+	return $wp_locale_switcher->is_switched();
+}
diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php
index 9d7a5f6c0..009ed06ce 100644
--- a/wp-includes/link-template.php
+++ b/wp-includes/link-template.php
@@ -58,8 +58,8 @@ function user_trailingslashit($string, $type_of_url = '') {
 	 *
 	 * @param string $string      URL with or without a trailing slash.
 	 * @param string $type_of_url The type of URL being considered. Accepts 'single', 'single_trackback',
-	 *                            'single_feed', 'single_paged', 'feed', 'category', 'page', 'year',
-	 *                            'month', 'day', 'paged', 'post_type_archive'.
+	 *                            'single_feed', 'single_paged', 'commentpaged', 'paged', 'home', 'feed',
+	 *                            'category', 'page', 'year', 'month', 'day', 'post_type_archive'.
 	 */
 	return apply_filters( 'user_trailingslashit', $string, $type_of_url );
 }
@@ -169,15 +169,17 @@ function get_permalink( $post = 0, $leavename = false ) {
 		if ( strpos($permalink, '%category%') !== false ) {
 			$cats = get_the_category($post->ID);
 			if ( $cats ) {
-				usort($cats, '_usort_terms_by_ID'); // order by ID
+				$cats = wp_list_sort( $cats, array(
+					'term_id' => 'ASC',
+				) );
 
 				/**
 				 * Filters the category that gets used in the %category% permalink token.
 				 *
 				 * @since 3.5.0
 				 *
-				 * @param stdClass $cat  The category to use in the permalink.
-				 * @param array    $cats Array of all categories associated with the post.
+				 * @param WP_Term  $cat  The category to use in the permalink.
+				 * @param array    $cats Array of all categories (WP_Term objects) associated with the post.
 				 * @param WP_Post  $post The post in question.
 				 */
 				$category_object = apply_filters( 'post_link_category', $cats[0], $cats, $post );
@@ -930,7 +932,7 @@ function get_edit_term_link( $term_id, $taxonomy = '', $object_type = '' ) {
 	}
 
 	$tax = get_taxonomy( $term->taxonomy );
-	if ( ! $tax || ! current_user_can( $tax->cap->edit_terms ) ) {
+	if ( ! $tax || ! current_user_can( 'edit_term', $term->term_id ) ) {
 		return;
 	}
 
@@ -984,8 +986,9 @@ function edit_term_link( $link = '', $before = '', $after = '', $term = null, $e
 		return;
 
 	$tax = get_taxonomy( $term->taxonomy );
-	if ( ! current_user_can( $tax->cap->edit_terms ) )
+	if ( ! current_user_can( 'edit_term', $term->term_id ) ) {
 		return;
+	}
 
 	if ( empty( $link ) )
 		$link = __('Edit This');
@@ -2528,8 +2531,8 @@ function get_the_posts_pagination( $args = array() ) {
 	if ( $GLOBALS['wp_query']->max_num_pages > 1 ) {
 		$args = wp_parse_args( $args, array(
 			'mid_size'           => 1,
-			'prev_text'          => _x( 'Previous', 'previous post' ),
-			'next_text'          => _x( 'Next', 'next post' ),
+			'prev_text'          => _x( 'Previous', 'previous set of posts' ),
+			'next_text'          => _x( 'Next', 'next set of posts' ),
 			'screen_reader_text' => __( 'Posts navigation' ),
 		) );
 
@@ -2897,20 +2900,13 @@ function the_comments_pagination( $args = array() ) {
  *
  * @since 2.6.0
  *
- * @global bool   $is_IE      Whether the browser matches an Internet Explorer user agent.
- * @global string $wp_version WP version.
- *
- * @global bool          $is_IE
- * @global string        $wp_version
- * @global WP_Press_This $wp_press_this
- *
- * @return string The Press This bookmarklet link URL.
+ * @global bool          $is_IE      Whether the browser matches an Internet Explorer user agent.
  */
 function get_shortcut_link() {
-	global $is_IE, $wp_version;
+	global $is_IE;
 
 	include_once( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' );
-	$bookmarklet_version = $GLOBALS['wp_press_this']->version;
+
 	$link = '';
 
 	if ( $is_IE ) {
@@ -2928,7 +2924,7 @@ function get_shortcut_link() {
 
 			$link = 'javascript:var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,' .
 				's=(e?e():(k)?k():(x?x.createRange().text:0)),f=' . $url . ',l=d.location,e=encodeURIComponent,' .
-				'u=f+"?u="+e(l.href)+"&t="+e(d.title)+"&s="+e(s)+"&v=' . $bookmarklet_version . '";' .
+				'u=f+"?u="+e(l.href)+"&t="+e(d.title)+"&s="+e(s)+"&v=' . WP_Press_This::VERSION . '";' .
 				'a=function(){if(!w.open(u,"t","toolbar=0,resizable=1,scrollbars=1,status=1,width=600,height=700"))l.href=u;};' .
 				'if(/Firefox/.test(navigator.userAgent))setTimeout(a,0);else a();void(0)';
 		}
@@ -2938,7 +2934,7 @@ function get_shortcut_link() {
 		$src = @file_get_contents( ABSPATH . 'wp-admin/js/bookmarklet.min.js' );
 
 		if ( $src ) {
-			$url = wp_json_encode( admin_url( 'press-this.php' ) . '?v=' . $bookmarklet_version );
+			$url = wp_json_encode( admin_url( 'press-this.php' ) . '?v=' . WP_Press_This::VERSION );
 			$link = 'javascript:' . str_replace( 'window.pt_url', $url, $src );
 		}
 	}
@@ -2958,9 +2954,9 @@ function get_shortcut_link() {
 /**
  * Retrieves the URL for the current site where the front end is accessible.
  *
- * Returns the 'home' option with the appropriate protocol, 'https' if
- * is_ssl() and 'http' otherwise. If `$scheme` is 'http' or 'https',
- * `is_ssl()` is overridden.
+ * Returns the 'home' option with the appropriate protocol. The protocol will be 'https'
+ * if is_ssl() evaluates to true; otherwise, it will be the same as the 'home' option.
+ * If `$scheme` is 'http' or 'https', is_ssl() is overridden.
  *
  * @since 3.0.0
  *
@@ -2976,9 +2972,9 @@ function home_url( $path = '', $scheme = null ) {
 /**
  * Retrieves the URL for a given site where the front end is accessible.
  *
- * Returns the 'home' option with the appropriate protocol, 'https' if
- * is_ssl() and 'http' otherwise. If `$scheme` is 'http' or 'https',
- * `is_ssl()` is overridden.
+ * Returns the 'home' option with the appropriate protocol. The protocol will be 'https'
+ * if is_ssl() evaluates to true; otherwise, it will be the same as the 'home' option.
+ * If `$scheme` is 'http' or 'https', is_ssl() is overridden.
  *
  * @since 3.0.0
  *
@@ -3261,12 +3257,12 @@ function network_site_url( $path = '', $scheme = null ) {
 	if ( ! is_multisite() )
 		return site_url($path, $scheme);
 
-	$current_site = get_current_site();
+	$current_network = get_network();
 
 	if ( 'relative' == $scheme )
-		$url = $current_site->path;
+		$url = $current_network->path;
 	else
-		$url = set_url_scheme( 'http://' . $current_site->domain . $current_site->path, $scheme );
+		$url = set_url_scheme( 'http://' . $current_network->domain . $current_network->path, $scheme );
 
 	if ( $path && is_string( $path ) )
 		$url .= ltrim( $path, '/' );
@@ -3303,16 +3299,16 @@ function network_home_url( $path = '', $scheme = null ) {
 	if ( ! is_multisite() )
 		return home_url($path, $scheme);
 
-	$current_site = get_current_site();
+	$current_network = get_network();
 	$orig_scheme = $scheme;
 
 	if ( ! in_array( $scheme, array( 'http', 'https', 'relative' ) ) )
 		$scheme = is_ssl() && ! is_admin() ? 'https' : 'http';
 
 	if ( 'relative' == $scheme )
-		$url = $current_site->path;
+		$url = $current_network->path;
 	else
-		$url = set_url_scheme( 'http://' . $current_site->domain . $current_site->path, $scheme );
+		$url = set_url_scheme( 'http://' . $current_network->domain . $current_network->path, $scheme );
 
 	if ( $path && is_string( $path ) )
 		$url .= ltrim( $path, '/' );
@@ -4026,3 +4022,125 @@ function get_avatar_data( $id_or_email, $args = null ) {
 	 */
 	return apply_filters( 'get_avatar_data', $args, $id_or_email );
 }
+
+/**
+ * Retrieves the URL of a file in the theme.
+ *
+ * Searches in the stylesheet directory before the template directory so themes
+ * which inherit from a parent theme can just override one file.
+ *
+ * @since 4.7.0
+ *
+ * @param string $file Optional. File to search for in the stylesheet directory.
+ * @return string The URL of the file.
+ */
+function get_theme_file_uri( $file = '' ) {
+	$file = ltrim( $file, '/' );
+
+	if ( empty( $file ) ) {
+		$url = get_stylesheet_directory_uri();
+	} elseif ( file_exists( get_stylesheet_directory() . '/' . $file ) ) {
+		$url = get_stylesheet_directory_uri() . '/' . $file;
+	} else {
+		$url = get_template_directory_uri() . '/' . $file;
+	}
+
+	/**
+	 * Filters the URL to a file in the theme.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $url  The file URL.
+	 * @param string $file The requested file to search for.
+	 */
+	return apply_filters( 'theme_file_uri', $url, $file );
+}
+
+/**
+ * Retrieves the URL of a file in the parent theme.
+ *
+ * @since 4.7.0
+ *
+ * @param string $file Optional. File to return the URL for in the template directory.
+ * @return string The URL of the file.
+ */
+function get_parent_theme_file_uri( $file = '' ) {
+	$file = ltrim( $file, '/' );
+
+	if ( empty( $file ) ) {
+		$url = get_template_directory_uri();
+	} else {
+		$url = get_template_directory_uri() . '/' . $file;
+	}
+
+	/**
+	 * Filters the URL to a file in the parent theme.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $url  The file URL.
+	 * @param string $file The requested file to search for.
+	 */
+	return apply_filters( 'parent_theme_file_uri', $url, $file );
+}
+
+/**
+ * Retrieves the path of a file in the theme.
+ *
+ * Searches in the stylesheet directory before the template directory so themes
+ * which inherit from a parent theme can just override one file.
+ *
+ * @since 4.7.0
+ *
+ * @param string $file Optional. File to search for in the stylesheet directory.
+ * @return string The path of the file.
+ */
+function get_theme_file_path( $file = '' ) {
+	$file = ltrim( $file, '/' );
+
+	if ( empty( $file ) ) {
+		$path = get_stylesheet_directory();
+	} elseif ( file_exists( get_stylesheet_directory() . '/' . $file ) ) {
+		$path = get_stylesheet_directory() . '/' . $file;
+	} else {
+		$path = get_template_directory() . '/' . $file;
+	}
+
+	/**
+	 * Filters the path to a file in the theme.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $path The file path.
+	 * @param string $file The requested file to search for.
+	 */
+	return apply_filters( 'theme_file_path', $path, $file );
+}
+
+/**
+ * Retrieves the path of a file in the parent theme.
+ *
+ * @since 4.7.0
+ *
+ * @param string $file Optional. File to return the path for in the template directory.
+ * @return string The path of the file.
+ */
+function get_parent_theme_file_path( $file = '' ) {
+	$file = ltrim( $file, '/' );
+
+	if ( empty( $file ) ) {
+		$path = get_template_directory();
+	} else {
+		$path = get_template_directory() . '/' . $file;
+	}
+
+	/**
+	 * Filters the path to a file in the parent theme.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $path The file path.
+	 * @param string $file The requested file to search for.
+	 */
+	return apply_filters( 'parent_theme_file_path', $path, $file );
+}
diff --git a/wp-includes/load.php b/wp-includes/load.php
index b69c0d5ea..669cf65d0 100644
--- a/wp-includes/load.php
+++ b/wp-includes/load.php
@@ -2,8 +2,6 @@
 /**
  * These functions are needed to load WordPress.
  *
- * @internal This file must be parsable by PHP4.
- *
  * @package WordPress
  */
 
@@ -130,6 +128,7 @@ function wp_check_php_mysql_versions() {
 		$protocol = wp_get_server_protocol();
 		header( sprintf( '%s 500 Internal Server Error', $protocol ), true, 500 );
 		header( 'Content-Type: text/html; charset=utf-8' );
+		/* translators: 1: Current PHP version number, 2: WordPress version number, 3: Minimum required PHP version number */
 		die( sprintf( __( 'Your server is running PHP version %1$s but WordPress %2$s requires at least %3$s.' ), $php_version, $wp_version, $required_php_version ) );
 	}
 
@@ -334,7 +333,7 @@ function wp_debug_mode() {
 		error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR );
 	}
 
-	if ( defined( 'XMLRPC_REQUEST' ) || defined( 'REST_REQUEST' ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
+	if ( defined( 'XMLRPC_REQUEST' ) || defined( 'REST_REQUEST' ) || ( defined( 'WP_INSTALLING' ) && WP_INSTALLING ) || wp_doing_ajax() ) {
 		@ini_set( 'display_errors', 0 );
 	}
 }
@@ -398,8 +397,9 @@ function require_wp_db() {
 	if ( file_exists( WP_CONTENT_DIR . '/db.php' ) )
 		require_once( WP_CONTENT_DIR . '/db.php' );
 
-	if ( isset( $wpdb ) )
+	if ( isset( $wpdb ) ) {
 		return;
+	}
 
 	$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
 }
@@ -470,18 +470,15 @@ function wp_using_ext_object_cache( $using = null ) {
  *
  * @since 3.0.0
  * @access private
- *
- * @global int $blog_id Blog ID.
  */
 function wp_start_object_cache() {
-	global $blog_id;
-
 	$first_init = false;
  	if ( ! function_exists( 'wp_cache_init' ) ) {
 		if ( file_exists( WP_CONTENT_DIR . '/object-cache.php' ) ) {
 			require_once ( WP_CONTENT_DIR . '/object-cache.php' );
-			if ( function_exists( 'wp_cache_init' ) )
+			if ( function_exists( 'wp_cache_init' ) ) {
 				wp_using_ext_object_cache( true );
+			}
 		}
 
 		$first_init = true;
@@ -495,18 +492,20 @@ function wp_start_object_cache() {
 		wp_using_ext_object_cache( true );
 	}
 
-	if ( ! wp_using_ext_object_cache() )
+	if ( ! wp_using_ext_object_cache() ) {
 		require_once ( ABSPATH . WPINC . '/cache.php' );
+	}
 
 	/*
 	 * If cache supports reset, reset instead of init if already
 	 * initialized. Reset signals to the cache that global IDs
 	 * have changed and it may need to update keys and cleanup caches.
 	 */
-	if ( ! $first_init && function_exists( 'wp_cache_switch_to_blog' ) )
-		wp_cache_switch_to_blog( $blog_id );
-	elseif ( function_exists( 'wp_cache_init' ) )
+	if ( ! $first_init && function_exists( 'wp_cache_switch_to_blog' ) ) {
+		wp_cache_switch_to_blog( get_current_blog_id() );
+	} elseif ( function_exists( 'wp_cache_init' ) ) {
 		wp_cache_init();
+	}
 
 	if ( function_exists( 'wp_cache_add_global_groups' ) ) {
 		wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'site-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites' ) );
@@ -814,8 +813,6 @@ function get_current_blog_id() {
  *
  * @since 4.6.0
  *
- * @global WP_Network $current_site The current network.
- *
  * @return int The ID of the current network.
  */
 function get_current_network_id() {
@@ -823,13 +820,13 @@ function get_current_network_id() {
 		return 1;
 	}
 
-	$current_site = get_current_site();
+	$current_network = get_network();
 
-	if ( ! isset( $current_site->id ) ) {
+	if ( ! isset( $current_network->id ) ) {
 		return get_main_network_id();
 	}
 
-	return absint( $current_site->id );
+	return absint( $current_network->id );
 }
 
 /**
@@ -845,13 +842,12 @@ function get_current_network_id() {
  * @since 3.4.0
  * @access private
  *
- * @global string    $text_direction
- * @global WP_Locale $wp_locale      The WordPress date and time locale object.
+ * @global WP_Locale $wp_locale The WordPress date and time locale object.
  *
  * @staticvar bool $loaded
  */
 function wp_load_translations_early() {
-	global $text_direction, $wp_locale;
+	global $wp_locale;
 
 	static $loaded = false;
 	if ( $loaded )
@@ -867,7 +863,8 @@ function wp_load_translations_early() {
 	// Translation and localization
 	require_once ABSPATH . WPINC . '/pomo/mo.php';
 	require_once ABSPATH . WPINC . '/l10n.php';
-	require_once ABSPATH . WPINC . '/locale.php';
+	require_once ABSPATH . WPINC . '/class-wp-locale.php';
+	require_once ABSPATH . WPINC . '/class-wp-locale-switcher.php';
 
 	// General libraries
 	require_once ABSPATH . WPINC . '/plugin.php';
@@ -981,8 +978,8 @@ function is_ssl() {
  * @since 2.3.0
  * @since 4.6.0 Moved from media.php to load.php.
  *
- * @link http://php.net/manual/en/function.ini-get.php
- * @link http://php.net/manual/en/faq.using.php#faq.using.shorthandbytes
+ * @link https://secure.php.net/manual/en/function.ini-get.php
+ * @link https://secure.php.net/manual/en/faq.using.php#faq.using.shorthandbytes
  *
  * @param string $value A (PHP ini) byte value, either shorthand or ordinary.
  * @return int An integer byte value.
@@ -1008,7 +1005,7 @@ function wp_convert_hr_to_bytes( $value ) {
  *
  * @since 4.6.0
  *
- * @link http://php.net/manual/en/function.ini-get-all.php
+ * @link https://secure.php.net/manual/en/function.ini-get-all.php
  *
  * @param string $setting The name of the ini setting to check.
  * @return bool True if the value is changeable at runtime. False otherwise.
@@ -1036,3 +1033,35 @@ function wp_is_ini_value_changeable( $setting ) {
 
 	return false;
 }
+
+/**
+ * Determines whether the current request is a WordPress Ajax request.
+ *
+ * @since 4.7.0
+ *
+ * @return bool True if it's a WordPress Ajax request, false otherwise.
+ */
+function wp_doing_ajax() {
+	/**
+	 * Filters whether the current request is a WordPress Ajax request.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param bool $wp_doing_ajax Whether the current request is a WordPress Ajax request.
+	 */
+	return apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX );
+}
+
+/**
+ * Check whether variable is a WordPress Error.
+ *
+ * Returns true if $thing is an object of the WP_Error class.
+ *
+ * @since 2.1.0
+ *
+ * @param mixed $thing Check if unknown variable is a WP_Error object.
+ * @return bool True, if WP_Error. False, if not WP_Error.
+ */
+function is_wp_error( $thing ) {
+	return ( $thing instanceof WP_Error );
+}
diff --git a/wp-includes/locale.php b/wp-includes/locale.php
index b8ad46372..6a459e3e3 100644
--- a/wp-includes/locale.php
+++ b/wp-includes/locale.php
@@ -7,19 +7,4 @@
  * @since 1.2.0
  */
 
-/** WP_Locale class */
-require_once ABSPATH . WPINC . '/class-wp-locale.php';
-
-/**
- * Checks if current locale is RTL.
- *
- * @since 3.0.0
- *
- * @global WP_Locale $wp_locale
- *
- * @return bool Whether locale is RTL.
- */
-function is_rtl() {
-	global $wp_locale;
-	return $wp_locale->is_rtl();
-}
+_deprecated_file( basename( __FILE__ ), '4.7.0' );
diff --git a/wp-includes/media-template.php b/wp-includes/media-template.php
index 7d2d2bf48..f12b11cff 100644
--- a/wp-includes/media-template.php
+++ b/wp-includes/media-template.php
@@ -290,9 +290,9 @@ function wp_print_media_templates() {
 			<div class="thumbnail thumbnail-{{ data.type }}">
 				<# if ( data.uploading ) { #>
 					<div class="media-progress-bar"><div></div></div>
-				<# } else if ( 'image' === data.type && data.sizes && data.sizes.large ) { #>
+				<# } else if ( data.sizes && data.sizes.large ) { #>
 					<img class="details-image" src="{{ data.sizes.large.url }}" draggable="false" alt="" />
-				<# } else if ( 'image' === data.type && data.sizes && data.sizes.full ) { #>
+				<# } else if ( data.sizes && data.sizes.full ) { #>
 					<img class="details-image" src="{{ data.sizes.full.url }}" draggable="false" alt="" />
 				<# } else if ( -1 === jQuery.inArray( data.type, [ 'audio', 'video' ] ) ) { #>
 					<img class="details-image icon" src="{{ data.icon }}" draggable="false" alt="" />
@@ -325,6 +325,8 @@ function wp_print_media_templates() {
 				<div class="attachment-actions">
 					<# if ( 'image' === data.type && ! data.uploading && data.sizes && data.can.save ) { #>
 					<button type="button" class="button edit-attachment"><?php _e( 'Edit Image' ); ?></button>
+					<# } else if ( 'pdf' === data.subtype && data.sizes ) { #>
+					<?php _e( 'Document Preview' ); ?>
 					<# } #>
 				</div>
 			</div>
@@ -454,6 +456,8 @@ function wp_print_media_templates() {
 					<div class="centered">
 						<# if ( data.image && data.image.src && data.image.src !== data.icon ) { #>
 							<img src="{{ data.image.src }}" class="thumbnail" draggable="false" alt="" />
+						<# } else if ( data.sizes && data.sizes.medium ) { #>
+							<img src="{{ data.sizes.medium.url }}" class="thumbnail" draggable="false" alt="" />
 						<# } else { #>
 							<img src="{{ data.icon }}" class="icon" draggable="false" alt="" />
 						<# } #>
@@ -610,16 +614,16 @@ function wp_print_media_templates() {
 					<# } #>>
 
 					<option value="left">
-						<?php esc_attr_e('Left'); ?>
+						<?php esc_html_e( 'Left' ); ?>
 					</option>
 					<option value="center">
-						<?php esc_attr_e('Center'); ?>
+						<?php esc_html_e( 'Center' ); ?>
 					</option>
 					<option value="right">
-						<?php esc_attr_e('Right'); ?>
+						<?php esc_html_e( 'Right' ); ?>
 					</option>
 					<option value="none" selected>
-						<?php esc_attr_e('None'); ?>
+						<?php esc_html_e( 'None' ); ?>
 					</option>
 				</select>
 			</label>
@@ -641,31 +645,31 @@ function wp_print_media_templates() {
 
 				<# if ( data.model.canEmbed ) { #>
 					<option value="embed" selected>
-						<?php esc_attr_e('Embed Media Player'); ?>
+						<?php esc_html_e( 'Embed Media Player' ); ?>
 					</option>
 					<option value="file">
 				<# } else { #>
 					<option value="none" selected>
-						<?php esc_attr_e('None'); ?>
+						<?php esc_html_e( 'None' ); ?>
 					</option>
 					<option value="file">
 				<# } #>
 					<# if ( data.model.canEmbed ) { #>
-						<?php esc_attr_e('Link to Media File'); ?>
+						<?php esc_html_e( 'Link to Media File' ); ?>
 					<# } else { #>
-						<?php esc_attr_e('Media File'); ?>
+						<?php esc_html_e( 'Media File' ); ?>
 					<# } #>
 					</option>
 					<option value="post">
 					<# if ( data.model.canEmbed ) { #>
-						<?php esc_attr_e('Link to Attachment Page'); ?>
+						<?php esc_html_e( 'Link to Attachment Page' ); ?>
 					<# } else { #>
-						<?php esc_attr_e('Attachment Page'); ?>
+						<?php esc_html_e( 'Attachment Page' ); ?>
 					<# } #>
 					</option>
 				<# if ( 'image' === data.type ) { #>
 					<option value="custom">
-						<?php esc_attr_e('Custom URL'); ?>
+						<?php esc_html_e( 'Custom URL' ); ?>
 					</option>
 				<# } #>
 				</select>
@@ -718,13 +722,13 @@ function wp_print_media_templates() {
 				<option value="post" <# if ( ! wp.media.galleryDefaults.link || 'post' == wp.media.galleryDefaults.link ) {
 					#>selected="selected"<# }
 				#>>
-					<?php esc_attr_e('Attachment Page'); ?>
+					<?php esc_html_e( 'Attachment Page' ); ?>
 				</option>
 				<option value="file" <# if ( 'file' == wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>>
-					<?php esc_attr_e('Media File'); ?>
+					<?php esc_html_e( 'Media File' ); ?>
 				</option>
 				<option value="none" <# if ( 'none' == wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>>
-					<?php esc_attr_e('None'); ?>
+					<?php esc_html_e( 'None' ); ?>
 				</option>
 			</select>
 		</label>
@@ -841,16 +845,16 @@ function wp_print_media_templates() {
 			<span><?php _e('Align'); ?></span>
 			<div class="button-group button-large" data-setting="align">
 				<button class="button" value="left">
-					<?php esc_attr_e('Left'); ?>
+					<?php esc_html_e( 'Left' ); ?>
 				</button>
 				<button class="button" value="center">
-					<?php esc_attr_e('Center'); ?>
+					<?php esc_html_e( 'Center' ); ?>
 				</button>
 				<button class="button" value="right">
-					<?php esc_attr_e('Right'); ?>
+					<?php esc_html_e( 'Right' ); ?>
 				</button>
 				<button class="button active" value="none">
-					<?php esc_attr_e('None'); ?>
+					<?php esc_html_e( 'None' ); ?>
 				</button>
 			</div>
 		</div>
@@ -859,13 +863,13 @@ function wp_print_media_templates() {
 			<span><?php _e('Link To'); ?></span>
 			<div class="button-group button-large" data-setting="link">
 				<button class="button" value="file">
-					<?php esc_attr_e('Image URL'); ?>
+					<?php esc_html_e( 'Image URL' ); ?>
 				</button>
 				<button class="button" value="custom">
-					<?php esc_attr_e('Custom URL'); ?>
+					<?php esc_html_e( 'Custom URL' ); ?>
 				</button>
 				<button class="button active" value="none">
-					<?php esc_attr_e('None'); ?>
+					<?php esc_html_e( 'None' ); ?>
 				</button>
 			</div>
 			<input type="text" class="link-to-custom" data-setting="linkUrl" />
@@ -907,16 +911,16 @@ function wp_print_media_templates() {
 						<span><?php _e('Align'); ?></span>
 						<div class="button-group button-large" data-setting="align">
 							<button class="button" value="left">
-								<?php esc_attr_e('Left'); ?>
+								<?php esc_html_e( 'Left' ); ?>
 							</button>
 							<button class="button" value="center">
-								<?php esc_attr_e('Center'); ?>
+								<?php esc_html_e( 'Center' ); ?>
 							</button>
 							<button class="button" value="right">
-								<?php esc_attr_e('Right'); ?>
+								<?php esc_html_e( 'Right' ); ?>
 							</button>
 							<button class="button active" value="none">
-								<?php esc_attr_e('None'); ?>
+								<?php esc_html_e( 'None' ); ?>
 							</button>
 						</div>
 					</div>
@@ -964,21 +968,21 @@ function wp_print_media_templates() {
 						<select data-setting="link">
 						<# if ( data.attachment ) { #>
 							<option value="file">
-								<?php esc_attr_e('Media File'); ?>
+								<?php esc_html_e( 'Media File' ); ?>
 							</option>
 							<option value="post">
-								<?php esc_attr_e('Attachment Page'); ?>
+								<?php esc_html_e( 'Attachment Page' ); ?>
 							</option>
 						<# } else { #>
 							<option value="file">
-								<?php esc_attr_e('Image URL'); ?>
+								<?php esc_html_e( 'Image URL' ); ?>
 							</option>
 						<# } #>
 							<option value="custom">
-								<?php esc_attr_e('Custom URL'); ?>
+								<?php esc_html_e( 'Custom URL' ); ?>
 							</option>
 							<option value="none">
-								<?php esc_attr_e('None'); ?>
+								<?php esc_html_e( 'None' ); ?>
 							</option>
 						</select>
 						<input type="text" class="link-to-custom" data-setting="linkUrl" />
diff --git a/wp-includes/media.php b/wp-includes/media.php
index bc7a90ced..ba5255593 100644
--- a/wp-includes/media.php
+++ b/wp-includes/media.php
@@ -6,6 +6,23 @@
  * @subpackage Media
  */
 
+/**
+ * Retrieve additional image sizes.
+ *
+ * @since 4.7.0
+ *
+ * @global array $_wp_additional_image_sizes
+ *
+ * @return array Additional images size data.
+ */
+function wp_get_additional_image_sizes() {
+	global $_wp_additional_image_sizes;
+	if ( ! $_wp_additional_image_sizes ) {
+		$_wp_additional_image_sizes = array();
+	}
+	return $_wp_additional_image_sizes;
+}
+
 /**
  * Scale down the default size of an image.
  *
@@ -27,7 +44,6 @@
  * @since 2.5.0
  *
  * @global int   $content_width
- * @global array $_wp_additional_image_sizes
  *
  * @param int          $width   Width of the image in pixels.
  * @param int          $height  Height of the image in pixels.
@@ -39,7 +55,9 @@
  * @return array Width and height of what the result image should resize to.
  */
 function image_constrain_size_for_editor( $width, $height, $size = 'medium', $context = null ) {
-	global $content_width, $_wp_additional_image_sizes;
+	global $content_width;
+
+	$_wp_additional_image_sizes = wp_get_additional_image_sizes();
 
 	if ( ! $context )
 		$context = is_admin() ? 'edit' : 'display';
@@ -82,11 +100,13 @@ function image_constrain_size_for_editor( $width, $height, $size = 'medium', $co
 		if ( intval($content_width) > 0 ) {
 			$max_width = min( intval($content_width), $max_width );
 		}
-	} elseif ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) && in_array( $size, array_keys( $_wp_additional_image_sizes ) ) ) {
+	} elseif ( ! empty( $_wp_additional_image_sizes ) && in_array( $size, array_keys( $_wp_additional_image_sizes ) ) ) {
 		$max_width = intval( $_wp_additional_image_sizes[$size]['width'] );
 		$max_height = intval( $_wp_additional_image_sizes[$size]['height'] );
-		if ( intval($content_width) > 0 && 'edit' == $context ) // Only in admin. Assume that theme authors know what they're doing.
-			$max_width = min( intval($content_width), $max_width );
+		// Only in admin. Assume that theme authors know what they're doing.
+		if ( intval( $content_width ) > 0 && 'edit' === $context ) {
+			$max_width = min( intval( $content_width ), $max_width );
+		}
 	}
 	// $size == 'full' has no constraint
 	else {
@@ -163,9 +183,7 @@ function image_hwstring( $width, $height ) {
  *                     the image is an intermediate size. False on failure.
  */
 function image_downsize( $id, $size = 'medium' ) {
-
-	if ( !wp_attachment_is_image($id) )
-		return false;
+	$is_image = wp_attachment_is_image( $id );
 
 	/**
 	 * Filters whether to preempt the output of image_downsize().
@@ -190,6 +208,19 @@ function image_downsize( $id, $size = 'medium' ) {
 	$is_intermediate = false;
 	$img_url_basename = wp_basename($img_url);
 
+	// If the file isn't an image, attempt to replace its URL with a rendered image from its meta.
+	// Otherwise, a non-image type could be returned.
+	if ( ! $is_image ) {
+		if ( ! empty( $meta['sizes'] ) ) {
+			$img_url = str_replace( $img_url_basename, $meta['sizes']['full']['file'], $img_url );
+			$img_url_basename = $meta['sizes']['full']['file'];
+			$width = $meta['sizes']['full']['width'];
+			$height = $meta['sizes']['full']['height'];
+		} else {
+			return false;
+		}
+	}
+
 	// try for a new style intermediate size
 	if ( $intermediate = image_get_intermediate_size($id, $size) ) {
 		$img_url = str_replace($img_url_basename, $intermediate['file'], $img_url);
@@ -258,15 +289,12 @@ function add_image_size( $name, $width = 0, $height = 0, $crop = false ) {
  *
  * @since 3.9.0
  *
- * @global array $_wp_additional_image_sizes
- *
  * @param string $name The image size to check.
  * @return bool True if the image size exists, false if not.
  */
 function has_image_size( $name ) {
-	global $_wp_additional_image_sizes;
-
-	return isset( $_wp_additional_image_sizes[ $name ] );
+	$sizes = wp_get_additional_image_sizes();
+	return isset( $sizes[ $name ] );
 }
 
 /**
@@ -668,6 +696,11 @@ function image_get_intermediate_size( $post_id, $size = 'thumbnail' ) {
 	if ( is_array( $size ) ) {
 		$candidates = array();
 
+		if ( ! isset( $imagedata['file'] ) && isset( $imagedata['sizes']['full'] ) ) {
+			$imagedata['height'] = $imagedata['sizes']['full']['height'];
+			$imagedata['width']  = $imagedata['sizes']['full']['width'];
+		}
+
 		foreach ( $imagedata['sizes'] as $_size => $data ) {
 			// If there's an exact match to an existing image size, short circuit.
 			if ( $data['width'] == $size[0] && $data['height'] == $size[1] ) {
@@ -721,7 +754,7 @@ function image_get_intermediate_size( $post_id, $size = 'thumbnail' ) {
 	}
 
 	// include the full filesystem path of the intermediate file
-	if ( empty($data['path']) && !empty($data['file']) ) {
+	if ( empty( $data['path'] ) && ! empty( $data['file'] ) && ! empty( $imagedata['file'] ) ) {
 		$file_url = wp_get_attachment_url($post_id);
 		$data['path'] = path_join( dirname($imagedata['file']), $data['file'] );
 		$data['url'] = path_join( dirname($file_url), $data['file'] );
@@ -748,15 +781,14 @@ function image_get_intermediate_size( $post_id, $size = 'thumbnail' ) {
  *
  * @since 3.0.0
  *
- * @global array $_wp_additional_image_sizes
- *
  * @return array Returns a filtered array of image size strings.
  */
 function get_intermediate_image_sizes() {
-	global $_wp_additional_image_sizes;
+	$_wp_additional_image_sizes = wp_get_additional_image_sizes();
 	$image_sizes = array('thumbnail', 'medium', 'medium_large', 'large'); // Standard sizes
-	if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
+	if ( ! empty( $_wp_additional_image_sizes ) ) {
 		$image_sizes = array_merge( $image_sizes, array_keys( $_wp_additional_image_sizes ) );
+	}
 
 	/**
 	 * Filters the list of intermediate image sizes.
@@ -850,18 +882,14 @@ function wp_get_attachment_image($attachment_id, $size = 'thumbnail', $icon = fa
 		$default_attr = array(
 			'src'	=> $src,
 			'class'	=> "attachment-$size_class size-$size_class",
-			'alt'	=> trim(strip_tags( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) )), // Use Alt field first
+			'alt'	=> trim( strip_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) ),
 		);
-		if ( empty($default_attr['alt']) )
-			$default_attr['alt'] = trim(strip_tags( $attachment->post_excerpt )); // If not, Use the Caption
-		if ( empty($default_attr['alt']) )
-			$default_attr['alt'] = trim(strip_tags( $attachment->post_title )); // Finally, use the title
 
 		$attr = wp_parse_args( $attr, $default_attr );
 
 		// Generate 'srcset' and 'sizes' if not already present.
 		if ( empty( $attr['srcset'] ) ) {
-			$image_meta = get_post_meta( $attachment_id, '_wp_attachment_metadata', true );
+			$image_meta = wp_get_attachment_metadata( $attachment_id );
 
 			if ( is_array( $image_meta ) ) {
 				$size_array = array( absint( $width ), absint( $height ) );
@@ -990,7 +1018,7 @@ function wp_get_attachment_image_srcset( $attachment_id, $size = 'medium', $imag
 	}
 
 	if ( ! is_array( $image_meta ) ) {
-		$image_meta = get_post_meta( $attachment_id, '_wp_attachment_metadata', true );
+		$image_meta = wp_get_attachment_metadata( $attachment_id );
 	}
 
 	$image_src = $image[0];
@@ -1206,7 +1234,7 @@ function wp_get_attachment_image_sizes( $attachment_id, $size = 'medium', $image
 	}
 
 	if ( ! is_array( $image_meta ) ) {
-		$image_meta = get_post_meta( $attachment_id, '_wp_attachment_metadata', true );
+		$image_meta = wp_get_attachment_metadata( $attachment_id );
 	}
 
 	$image_src = $image[0];
@@ -1239,7 +1267,7 @@ function wp_calculate_image_sizes( $size, $image_src = null, $image_meta = null,
 		$width = absint( $size[0] );
 	} elseif ( is_string( $size ) ) {
 		if ( ! $image_meta && $attachment_id ) {
-			$image_meta = get_post_meta( $attachment_id, '_wp_attachment_metadata', true );
+			$image_meta = wp_get_attachment_metadata( $attachment_id );
 		}
 
 		if ( is_array( $image_meta ) ) {
@@ -1314,7 +1342,7 @@ function wp_make_content_images_responsive( $content ) {
 	}
 
 	foreach ( $selected_images as $image => $attachment_id ) {
-		$image_meta = get_post_meta( $attachment_id, '_wp_attachment_metadata', true );
+		$image_meta = wp_get_attachment_metadata( $attachment_id );
 		$content = str_replace( $image, wp_image_add_srcset_and_sizes( $image, $image_meta, $attachment_id ), $content );
 	}
 
@@ -1549,10 +1577,10 @@ function img_caption_shortcode( $attr, $content = null ) {
 	$caption_width = apply_filters( 'img_caption_shortcode_width', $width, $atts, $content );
 
 	$style = '';
-	if ( $caption_width )
+	if ( $caption_width ) {
 		$style = 'style="width: ' . (int) $caption_width . 'px" ';
+	}
 
-	$html = '';
 	if ( $html5 ) {
 		$html = '<figure ' . $atts['id'] . $style . 'class="' . esc_attr( $class ) . '">'
 		. do_shortcode( $content ) . '<figcaption class="wp-caption-text">' . $atts['caption'] . '</figcaption></figure>';
@@ -2587,7 +2615,7 @@ function wp_video_shortcode( $attr, $content = '' ) {
 
 	$width_rule = '';
 	if ( ! empty( $atts['width'] ) ) {
-		$width_rule = sprintf( 'width: %dpx; ', $atts['width'] );
+		$width_rule = sprintf( 'width: %dpx;', $atts['width'] );
 	}
 	$output = sprintf( '<div style="%s" class="wp-video">%s</div>', $width_rule, $html );
 
@@ -2694,11 +2722,15 @@ function adjacent_image_link( $prev = true, $size = 'thumbnail', $text = false )
  * Retrieves taxonomies attached to given the attachment.
  *
  * @since 2.5.0
+ * @since 4.7.0 Introduced the `$output` parameter.
  *
  * @param int|array|object $attachment Attachment ID, data array, or data object.
+ * @param string           $output     Output type. 'names' to return an array of taxonomy names,
+ *                                     or 'objects' to return an array of taxonomy objects.
+ *                                     Default is 'names'.
  * @return array Empty array on failure. List of taxonomies on success.
  */
-function get_attachment_taxonomies( $attachment ) {
+function get_attachment_taxonomies( $attachment, $output = 'names' ) {
 	if ( is_int( $attachment ) ) {
 		$attachment = get_post( $attachment );
 	} elseif ( is_array( $attachment ) ) {
@@ -2723,11 +2755,17 @@ function get_attachment_taxonomies( $attachment ) {
 	}
 
 	$taxonomies = array();
-	foreach ( $objects as $object )
-		if ( $taxes = get_object_taxonomies($object) )
-			$taxonomies = array_merge($taxonomies, $taxes);
+	foreach ( $objects as $object ) {
+		if ( $taxes = get_object_taxonomies( $object, $output ) ) {
+			$taxonomies = array_merge( $taxonomies, $taxes );
+		}
+	}
 
-	return array_unique($taxonomies);
+	if ( 'names' === $output ) {
+		$taxonomies = array_unique( $taxonomies );
+	}
+
+	return $taxonomies;
 }
 
 /**
@@ -2890,7 +2928,6 @@ function _wp_image_editor_choose( $args = array() ) {
 	require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
 	require_once ABSPATH . WPINC . '/class-wp-image-editor-gd.php';
 	require_once ABSPATH . WPINC . '/class-wp-image-editor-imagick.php';
-
 	/**
 	 * Filters the list of image editing library classes.
 	 *
@@ -3102,7 +3139,7 @@ function wp_prepare_attachment_for_js( $attachment ) {
 	if ( current_user_can( 'delete_post', $attachment->ID ) )
 		$response['nonces']['delete'] = wp_create_nonce( 'delete-post_' . $attachment->ID );
 
-	if ( $meta && 'image' === $type ) {
+	if ( $meta && ( 'image' === $type || ! empty( $meta['sizes'] ) ) ) {
 		$sizes = array();
 
 		/** This filter is documented in wp-admin/includes/media.php */
@@ -3122,8 +3159,10 @@ function wp_prepare_attachment_for_js( $attachment ) {
 
 			/** This filter is documented in wp-includes/media.php */
 			if ( $downsize = apply_filters( 'image_downsize', false, $attachment->ID, $size ) ) {
-				if ( ! $downsize[3] )
+				if ( empty( $downsize[3] ) ) {
 					continue;
+				}
+
 				$sizes[ $size ] = array(
 					'height'      => $downsize[2],
 					'width'       => $downsize[1],
@@ -3150,16 +3189,29 @@ function wp_prepare_attachment_for_js( $attachment ) {
 			}
 		}
 
-		$sizes['full'] = array( 'url' => $attachment_url );
+		if ( 'image' === $type ) {
+			$sizes['full'] = array( 'url' => $attachment_url );
 
-		if ( isset( $meta['height'], $meta['width'] ) ) {
-			$sizes['full']['height'] = $meta['height'];
-			$sizes['full']['width'] = $meta['width'];
-			$sizes['full']['orientation'] = $meta['height'] > $meta['width'] ? 'portrait' : 'landscape';
+			if ( isset( $meta['height'], $meta['width'] ) ) {
+				$sizes['full']['height'] = $meta['height'];
+				$sizes['full']['width'] = $meta['width'];
+				$sizes['full']['orientation'] = $meta['height'] > $meta['width'] ? 'portrait' : 'landscape';
+			}
+
+			$response = array_merge( $response, $sizes['full'] );
+		} elseif ( $meta['sizes']['full']['file'] ) {
+			$sizes['full'] = array(
+				'url'         => $base_url . $meta['sizes']['full']['file'],
+				'height'      => $meta['sizes']['full']['height'],
+				'width'       => $meta['sizes']['full']['width'],
+				'orientation' => $meta['sizes']['full']['height'] > $meta['sizes']['full']['width'] ? 'portrait' : 'landscape'
+			);
 		}
 
-		$response = array_merge( $response, array( 'sizes' => $sizes ), $sizes['full'] );
-	} elseif ( $meta && 'video' === $type ) {
+		$response = array_merge( $response, array( 'sizes' => $sizes ) );
+	}
+
+	if ( $meta && 'video' === $type ) {
 		if ( isset( $meta['width'] ) )
 			$response['width'] = (int) $meta['width'];
 		if ( isset( $meta['height'] ) )
@@ -3395,6 +3447,7 @@ function wp_enqueue_media( $args = array() ) {
 		'filterByDate'           => __( 'Filter by date' ),
 		'filterByType'           => __( 'Filter by type' ),
 		'searchMediaLabel'       => __( 'Search Media' ),
+		'searchMediaPlaceholder' => __( 'Search media items...' ), // placeholder (no ellipsis)
 		'noMedia'                => __( 'No media files found.' ),
 
 		// Library Details
@@ -3788,12 +3841,10 @@ function attachment_url_to_postid( $url ) {
  *
  * @since 4.0.0
  *
- * @global string $wp_version
- *
  * @return array The relevant CSS file URLs.
  */
 function wpview_media_sandbox_styles() {
- 	$version = 'ver=' . $GLOBALS['wp_version'];
+ 	$version = 'ver=' . get_bloginfo( 'version' );
  	$mediaelement = includes_url( "js/mediaelement/mediaelementplayer.min.css?$version" );
  	$wpmediaelement = includes_url( "js/mediaelement/wp-mediaelement.css?$version" );
 
diff --git a/wp-includes/meta.php b/wp-includes/meta.php
index 8833d3e98..cfb9d95a9 100644
--- a/wp-includes/meta.php
+++ b/wp-includes/meta.php
@@ -567,12 +567,12 @@ function metadata_exists( $meta_type, $object_id, $meta_key ) {
 function get_metadata_by_mid( $meta_type, $meta_id ) {
 	global $wpdb;
 
-	if ( ! $meta_type || ! is_numeric( $meta_id ) ) {
+	if ( ! $meta_type || ! is_numeric( $meta_id ) || floor( $meta_id ) != $meta_id ) {
 		return false;
 	}
 
-	$meta_id = absint( $meta_id );
-	if ( ! $meta_id ) {
+	$meta_id = intval( $meta_id );
+	if ( $meta_id <= 0 ) {
 		return false;
 	}
 
@@ -611,12 +611,12 @@ function update_metadata_by_mid( $meta_type, $meta_id, $meta_value, $meta_key =
 	global $wpdb;
 
 	// Make sure everything is valid.
-	if ( ! $meta_type || ! is_numeric( $meta_id ) ) {
+	if ( ! $meta_type || ! is_numeric( $meta_id ) || floor( $meta_id ) != $meta_id ) {
 		return false;
 	}
 
-	$meta_id = absint( $meta_id );
-	if ( ! $meta_id ) {
+	$meta_id = intval( $meta_id );
+	if ( $meta_id <= 0 ) {
 		return false;
 	}
 
@@ -702,12 +702,12 @@ function delete_metadata_by_mid( $meta_type, $meta_id ) {
 	global $wpdb;
 
 	// Make sure everything is valid.
-	if ( ! $meta_type || ! is_numeric( $meta_id ) ) {
+	if ( ! $meta_type || ! is_numeric( $meta_id ) || floor( $meta_id ) != $meta_id ) {
 		return false;
 	}
 
-	$meta_id = absint( $meta_id );
-	if ( ! $meta_id ) {
+	$meta_id = intval( $meta_id );
+	if ( $meta_id <= 0 ) {
 		return false;
 	}
 
@@ -964,7 +964,7 @@ function sanitize_meta( $meta_key, $meta_value, $object_type ) {
  * Registers a meta key.
  *
  * @since 3.3.0
- * @since 4.6.0 {@link https://make.wordpress.org/core/2016/07/08/enhancing-register_meta-in-4-6/ Modified
+ * @since 4.6.0 {@link https://core.trac.wordpress.org/ticket/35658 Modified
  *              to support an array of data to attach to registered meta keys}. Previous arguments for
  *              `$sanitize_callback` and `$auth_callback` have been folded into this array.
  *
diff --git a/wp-includes/ms-blogs.php b/wp-includes/ms-blogs.php
index ccafd0476..918875038 100644
--- a/wp-includes/ms-blogs.php
+++ b/wp-includes/ms-blogs.php
@@ -38,7 +38,7 @@ function wpmu_update_blogs_date() {
  * @return string Full URL of the blog if found. Empty string if not.
  */
 function get_blogaddress_by_id( $blog_id ) {
-	$bloginfo = get_blog_details( (int) $blog_id );
+	$bloginfo = get_site( (int) $blog_id );
 
 	if ( empty( $bloginfo ) ) {
 		return '';
@@ -72,36 +72,38 @@ function get_blogaddress_by_name( $blogname ) {
 }
 
 /**
- * Given a blog's (subdomain or directory) slug, retrieve its id.
+ * Retrieves a sites ID given its (subdomain or directory) slug.
  *
  * @since MU
+ * @since 4.7.0 Converted to use get_sites().
  *
- * @global wpdb $wpdb WordPress database abstraction object.
- *
- * @param string $slug
- * @return int A blog id
+ * @param string $slug A site's slug.
+ * @return int|null The site ID, or null if no site is found for the given slug.
  */
 function get_id_from_blogname( $slug ) {
-	global $wpdb;
-
-	$current_site = get_current_site();
+	$current_network = get_network();
 	$slug = trim( $slug, '/' );
 
-	$blog_id = wp_cache_get( 'get_id_from_blogname_' . $slug, 'blog-details' );
-	if ( $blog_id )
-		return $blog_id;
-
 	if ( is_subdomain_install() ) {
-		$domain = $slug . '.' . $current_site->domain;
-		$path = $current_site->path;
+		$domain = $slug . '.' . preg_replace( '|^www\.|', '', $current_network->domain );
+		$path = $current_network->path;
 	} else {
-		$domain = $current_site->domain;
-		$path = $current_site->path . $slug . '/';
+		$domain = $current_network->domain;
+		$path = $current_network->path . $slug . '/';
 	}
 
-	$blog_id = $wpdb->get_var( $wpdb->prepare("SELECT blog_id FROM {$wpdb->blogs} WHERE domain = %s AND path = %s", $domain, $path) );
-	wp_cache_set( 'get_id_from_blogname_' . $slug, $blog_id, 'blog-details' );
-	return $blog_id;
+	$site_ids = get_sites( array(
+		'number' => 1,
+		'fields' => 'ids',
+		'domain' => $domain,
+		'path' => $path,
+	) );
+
+	if ( empty( $site_ids ) ) {
+		return null;
+	}
+
+	return array_shift( $site_ids );
 }
 
 /**
@@ -238,10 +240,11 @@ function get_blog_details( $fields = null, $get_all = true ) {
 	 * Filters a blog's details.
 	 *
 	 * @since MU
+	 * @deprecated 4.7.0 Use site_details
 	 *
 	 * @param object $details The blog details.
 	 */
-	$details = apply_filters( 'blog_details', $details );
+	$details = apply_filters_deprecated( 'blog_details', array( $details ), '4.7.0', 'site_details' );
 
 	wp_cache_set( $blog_id . $all, $details, 'blog-details' );
 
@@ -264,7 +267,7 @@ function refresh_blog_details( $blog_id = 0 ) {
 		$blog_id = get_current_blog_id();
 	}
 
-	$details = get_blog_details( $blog_id, false );
+	$details = get_site( $blog_id );
 	if ( ! $details ) {
 		// Make sure clean_blog_cache() gets the blog ID
 		// when the blog has been previously cached as
@@ -308,7 +311,7 @@ function update_blog_details( $blog_id, $details = array() ) {
 	if ( is_object($details) )
 		$details = get_object_vars($details);
 
-	$current_details = get_blog_details($blog_id, false);
+	$current_details = get_site( $blog_id );
 	if ( empty($current_details) )
 		return false;
 
@@ -440,7 +443,7 @@ function update_blog_details( $blog_id, $details = array() ) {
  *
  * @since 3.5.0
  *
- * @param WP_Site $blog The blog details as returned from get_blog_details()
+ * @param WP_Site $blog The site object to be cleared from cache.
  */
 function clean_blog_cache( $blog ) {
 	$blog_id = $blog->blog_id;
@@ -453,7 +456,6 @@ function clean_blog_cache( $blog ) {
 	wp_cache_delete(  $domain_path_key, 'blog-lookup' );
 	wp_cache_delete( 'current_blog_' . $blog->domain, 'site-options' );
 	wp_cache_delete( 'current_blog_' . $blog->domain . $blog->path, 'site-options' );
-	wp_cache_delete( 'get_id_from_blogname_' . trim( $blog->path, '/' ), 'blog-details' );
 	wp_cache_delete( $domain_path_key, 'blog-id-cache' );
 
 	/**
@@ -566,10 +568,10 @@ function update_site_cache( $sites ) {
  *                                           Default false.
  *     @type array        $date_query        Date query clauses to limit sites by. See WP_Date_Query.
  *                                           Default null.
- *     @type string       $fields            Site fields to return. Accepts 'ids' for site IDs only or empty
- *                                           for all fields. Default empty.
+ *     @type string       $fields            Site fields to return. Accepts 'ids' (returns an array of site IDs)
+ *                                           or empty (returns an array of complete site objects). Default empty.
  *     @type int          $ID                A site ID to only return that site. Default empty.
- *     @type int          $number            Maximum number of sites to retrieve. Default null (no limit).
+ *     @type int          $number            Maximum number of sites to retrieve. Default 100.
  *     @type int          $offset            Number of sites to offset the query. Used to build LIMIT clause.
  *                                           Default 0.
  *     @type bool         $no_found_rows     Whether to disable the `SQL_CALC_FOUND_ROWS` query. Default true.
@@ -579,16 +581,14 @@ function update_site_cache( $sites ) {
  *                                           an empty array, or 'none' to disable `ORDER BY` clause.
  *                                           Default 'id'.
  *     @type string       $order             How to order retrieved sites. Accepts 'ASC', 'DESC'. Default 'ASC'.
- *     @type int          $network_id        Limit results to those affiliated with a given network ID.
- *                                           Default current network ID.
+ *     @type int          $network_id        Limit results to those affiliated with a given network ID. If 0,
+ *                                           include all networks. Default 0.
  *     @type array        $network__in       Array of network IDs to include affiliated sites for. Default empty.
  *     @type array        $network__not_in   Array of network IDs to exclude affiliated sites for. Default empty.
- *     @type string       $domain            Limit results to those affiliated with a given domain.
- *                                           Default empty.
+ *     @type string       $domain            Limit results to those affiliated with a given domain. Default empty.
  *     @type array        $domain__in        Array of domains to include affiliated sites for. Default empty.
  *     @type array        $domain__not_in    Array of domains to exclude affiliated sites for. Default empty.
- *     @type string       $path              Limit results to those affiliated with a given path.
- *                                           Default empty.
+ *     @type string       $path              Limit results to those affiliated with a given path. Default empty.
  *     @type array        $path__in          Array of paths to include affiliated sites for. Default empty.
  *     @type array        $path__not_in      Array of paths to exclude affiliated sites for. Default empty.
  *     @type int          $public            Limit results to public sites. Accepts '1' or '0'. Default empty.
@@ -597,6 +597,8 @@ function update_site_cache( $sites ) {
  *     @type int          $spam              Limit results to spam sites. Accepts '1' or '0'. Default empty.
  *     @type int          $deleted           Limit results to deleted sites. Accepts '1' or '0'. Default empty.
  *     @type string       $search            Search term(s) to retrieve matching sites for. Default empty.
+ *     @type array        $search_columns    Array of column names to be searched. Accepts 'domain' and 'path'.
+ *                                           Default empty array.
  *     @type bool         $update_site_cache Whether to prime the cache for found sites. Default false.
  * }
  * @return array List of sites.
@@ -764,19 +766,21 @@ function update_blog_option( $id, $option, $value, $deprecated = null ) {
  * @return true Always returns True.
  */
 function switch_to_blog( $new_blog, $deprecated = null ) {
-	global $wpdb;
+	global $wpdb, $wp_roles;
 
-	if ( empty( $new_blog ) )
-		$new_blog = $GLOBALS['blog_id'];
+	$blog_id = get_current_blog_id();
+	if ( empty( $new_blog ) ) {
+		$new_blog = $blog_id;
+	}
 
-	$GLOBALS['_wp_switched_stack'][] = $GLOBALS['blog_id'];
+	$GLOBALS['_wp_switched_stack'][] = $blog_id;
 
 	/*
 	 * If we're switching to the same blog id that we're on,
 	 * set the right vars, do the associated actions, but skip
 	 * the extra unnecessary work
 	 */
-	if ( $new_blog == $GLOBALS['blog_id'] ) {
+	if ( $new_blog == $blog_id ) {
 		/**
 		 * Fires when the blog is switched.
 		 *
@@ -792,7 +796,7 @@ function switch_to_blog( $new_blog, $deprecated = null ) {
 
 	$wpdb->set_blog_id( $new_blog );
 	$GLOBALS['table_prefix'] = $wpdb->get_blog_prefix();
-	$prev_blog_id = $GLOBALS['blog_id'];
+	$prev_blog_id = $blog_id;
 	$GLOBALS['blog_id'] = $new_blog;
 
 	if ( function_exists( 'wp_cache_switch_to_blog' ) ) {
@@ -800,11 +804,11 @@ function switch_to_blog( $new_blog, $deprecated = null ) {
 	} else {
 		global $wp_object_cache;
 
-		if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) )
+		if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) ) {
 			$global_groups = $wp_object_cache->global_groups;
-		else
+		} else {
 			$global_groups = false;
-
+		}
 		wp_cache_init();
 
 		if ( function_exists( 'wp_cache_add_global_groups' ) ) {
@@ -818,7 +822,7 @@ function switch_to_blog( $new_blog, $deprecated = null ) {
 	}
 
 	if ( did_action( 'init' ) ) {
-		wp_roles()->reinit();
+		$wp_roles = new WP_Roles();
 		$current_user = wp_get_current_user();
 		$current_user->for_blog( $new_blog );
 	}
@@ -846,14 +850,16 @@ function switch_to_blog( $new_blog, $deprecated = null ) {
  * @return bool True on success, false if we're already on the current blog
  */
 function restore_current_blog() {
-	global $wpdb;
+	global $wpdb, $wp_roles;
 
-	if ( empty( $GLOBALS['_wp_switched_stack'] ) )
+	if ( empty( $GLOBALS['_wp_switched_stack'] ) ) {
 		return false;
+	}
 
 	$blog = array_pop( $GLOBALS['_wp_switched_stack'] );
+	$blog_id = get_current_blog_id();
 
-	if ( $GLOBALS['blog_id'] == $blog ) {
+	if ( $blog_id == $blog ) {
 		/** This filter is documented in wp-includes/ms-blogs.php */
 		do_action( 'switch_blog', $blog, $blog );
 		// If we still have items in the switched stack, consider ourselves still 'switched'
@@ -862,7 +868,7 @@ function restore_current_blog() {
 	}
 
 	$wpdb->set_blog_id( $blog );
-	$prev_blog_id = $GLOBALS['blog_id'];
+	$prev_blog_id = $blog_id;
 	$GLOBALS['blog_id'] = $blog;
 	$GLOBALS['table_prefix'] = $wpdb->get_blog_prefix();
 
@@ -871,10 +877,11 @@ function restore_current_blog() {
 	} else {
 		global $wp_object_cache;
 
-		if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) )
+		if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) ) {
 			$global_groups = $wp_object_cache->global_groups;
-		else
+		} else {
 			$global_groups = false;
+		}
 
 		wp_cache_init();
 
@@ -889,7 +896,7 @@ function restore_current_blog() {
 	}
 
 	if ( did_action( 'init' ) ) {
-		wp_roles()->reinit();
+		$wp_roles = new WP_Roles();
 		$current_user = wp_get_current_user();
 		$current_user->for_blog( $blog );
 	}
@@ -1032,7 +1039,7 @@ function update_blog_status( $blog_id, $pref, $value, $deprecated = null ) {
 function get_blog_status( $id, $pref ) {
 	global $wpdb;
 
-	$details = get_blog_details( $id, false );
+	$details = get_site( $id );
 	if ( $details )
 		return $details->$pref;
 
diff --git a/wp-includes/ms-default-constants.php b/wp-includes/ms-default-constants.php
index 98719f8ba..5a54b88dc 100644
--- a/wp-includes/ms-default-constants.php
+++ b/wp-includes/ms-default-constants.php
@@ -47,19 +47,19 @@ function ms_upload_constants() {
  * @since 3.0.0
  */
 function ms_cookie_constants(  ) {
-	$current_site = get_current_site();
+	$current_network = get_network();
 
 	/**
 	 * @since 1.2.0
 	 */
 	if ( !defined( 'COOKIEPATH' ) )
-		define( 'COOKIEPATH', $current_site->path );
+		define( 'COOKIEPATH', $current_network->path );
 
 	/**
 	 * @since 1.5.0
 	 */
 	if ( !defined( 'SITECOOKIEPATH' ) )
-		define( 'SITECOOKIEPATH', $current_site->path );
+		define( 'SITECOOKIEPATH', $current_network->path );
 
 	/**
 	 * @since 2.6.0
@@ -76,10 +76,10 @@ function ms_cookie_constants(  ) {
 	 * @since 2.0.0
 	 */
 	if ( !defined('COOKIE_DOMAIN') && is_subdomain_install() ) {
-		if ( !empty( $current_site->cookie_domain ) )
-			define('COOKIE_DOMAIN', '.' . $current_site->cookie_domain);
+		if ( !empty( $current_network->cookie_domain ) )
+			define('COOKIE_DOMAIN', '.' . $current_network->cookie_domain);
 		else
-			define('COOKIE_DOMAIN', '.' . $current_site->domain);
+			define('COOKIE_DOMAIN', '.' . $current_network->domain);
 	}
 }
 
diff --git a/wp-includes/ms-deprecated.php b/wp-includes/ms-deprecated.php
index 7e43fccd8..cd35f55c6 100644
--- a/wp-includes/ms-deprecated.php
+++ b/wp-includes/ms-deprecated.php
@@ -18,17 +18,18 @@
  * Dashboard blog functionality was removed in WordPress 3.1, replaced by the user admin.
  *
  * @since MU
- * @deprecated 3.1.0 Use get_blog_details()
- * @see get_blog_details()
+ * @deprecated 3.1.0 Use get_site()
+ * @see get_site()
  *
- * @return int Current site ID.
+ * @return WP_Site Current site object.
  */
 function get_dashboard_blog() {
     _deprecated_function( __FUNCTION__, '3.1.0' );
-    if ( $blog = get_site_option( 'dashboard_blog' ) )
-        return get_blog_details( $blog );
+    if ( $blog = get_site_option( 'dashboard_blog' ) ) {
+	    return get_site( $blog );
+    }
 
-    return get_blog_details( $GLOBALS['current_site']->blog_id );
+    return get_site( get_network()->site_id );
 }
 
 /**
diff --git a/wp-includes/ms-files.php b/wp-includes/ms-files.php
index 87fa70f4b..e5c1db3f8 100644
--- a/wp-includes/ms-files.php
+++ b/wp-includes/ms-files.php
@@ -80,3 +80,4 @@ if ( ( $client_last_modified && $client_etag )
 
 // If we made it this far, just serve the file
 readfile( $file );
+flush();
diff --git a/wp-includes/ms-functions.php b/wp-includes/ms-functions.php
index a253a61da..2e9ca946d 100644
--- a/wp-includes/ms-functions.php
+++ b/wp-includes/ms-functions.php
@@ -53,9 +53,9 @@ function get_active_blog_for_user( $user_id ) {
 	if ( false !== $primary_blog ) {
 		if ( ! isset( $blogs[ $primary_blog ] ) ) {
 			update_user_meta( $user_id, 'primary_blog', $first_blog->userblog_id );
-			$primary = get_blog_details( $first_blog->userblog_id );
+			$primary = get_site( $first_blog->userblog_id );
 		} else {
-			$primary = get_blog_details( $primary_blog );
+			$primary = get_site( $primary_blog );
 		}
 	} else {
 		//TODO Review this call to add_user_to_blog too - to get here the user must have a role on this blog?
@@ -71,7 +71,7 @@ function get_active_blog_for_user( $user_id ) {
 			foreach ( (array) $blogs as $blog_id => $blog ) {
 				if ( $blog->site_id != $wpdb->siteid )
 					continue;
-				$details = get_blog_details( $blog_id );
+				$details = get_site( $blog_id );
 				if ( is_object( $details ) && $details->archived == 0 && $details->spam == 0 && $details->deleted == 0 ) {
 					$ret = $blog;
 					if ( get_user_meta( $user_id , 'primary_blog', true ) != $blog_id )
@@ -161,8 +161,8 @@ function add_user_to_blog( $blog_id, $user_id, $role ) {
 
 	if ( !get_user_meta($user_id, 'primary_blog', true) ) {
 		update_user_meta($user_id, 'primary_blog', $blog_id);
-		$details = get_blog_details($blog_id);
-		update_user_meta($user_id, 'source_domain', $details->domain);
+		$site = get_site( $blog_id );
+		update_user_meta( $user_id, 'source_domain', $site->domain );
 	}
 
 	$user->set_role($role);
@@ -546,8 +546,8 @@ function wpmu_validate_user_signup($user_name, $user_email) {
 function wpmu_validate_blog_signup( $blogname, $blog_title, $user = '' ) {
 	global $wpdb, $domain;
 
-	$current_site = get_current_site();
-	$base = $current_site->path;
+	$current_network = get_network();
+	$base = $current_network->path;
 
 	$blog_title = strip_tags( $blog_title );
 
@@ -580,7 +580,7 @@ function wpmu_validate_blog_signup( $blogname, $blog_title, $user = '' ) {
 		$errors->add('blogname',  __( 'Site name must be at least 4 characters.' ) );
 
 	// do not allow users to create a blog that conflicts with a page on the main blog.
-	if ( !is_subdomain_install() && $wpdb->get_var( $wpdb->prepare( "SELECT post_name FROM " . $wpdb->get_blog_prefix( $current_site->blog_id ) . "posts WHERE post_type = 'page' AND post_name = %s", $blogname ) ) )
+	if ( !is_subdomain_install() && $wpdb->get_var( $wpdb->prepare( "SELECT post_name FROM " . $wpdb->get_blog_prefix( $current_network->site_id ) . "posts WHERE post_type = 'page' AND post_name = %s", $blogname ) ) )
 		$errors->add( 'blogname', __( 'Sorry, you may not use that site name.' ) );
 
 	// all numeric?
@@ -612,7 +612,7 @@ function wpmu_validate_blog_signup( $blogname, $blog_title, $user = '' ) {
 		$mydomain = "$domain";
 		$path = $base.$blogname.'/';
 	}
-	if ( domain_exists($mydomain, $path, $current_site->id) )
+	if ( domain_exists($mydomain, $path, $current_network->id) )
 		$errors->add( 'blogname', __( 'Sorry, that site already exists!' ) );
 
 	if ( username_exists( $blogname ) ) {
@@ -764,13 +764,13 @@ function wpmu_signup_user( $user, $user_email, $meta = array() ) {
  * @param string $domain     The new blog domain.
  * @param string $path       The new blog path.
  * @param string $title      The site title.
- * @param string $user       The user's login name.
+ * @param string $user_login The user's login name.
  * @param string $user_email The user's email address.
  * @param string $key        The activation key created in wpmu_signup_blog()
  * @param array  $meta       By default, contains the requested privacy setting and lang_id.
  * @return bool
  */
-function wpmu_signup_blog_notification( $domain, $path, $title, $user, $user_email, $key, $meta = array() ) {
+function wpmu_signup_blog_notification( $domain, $path, $title, $user_login, $user_email, $key, $meta = array() ) {
 	/**
 	 * Filters whether to bypass the new site email notification.
 	 *
@@ -779,17 +779,17 @@ function wpmu_signup_blog_notification( $domain, $path, $title, $user, $user_ema
 	 * @param string|bool $domain     Site domain.
 	 * @param string      $path       Site path.
 	 * @param string      $title      Site title.
-	 * @param string      $user       User login name.
+	 * @param string      $user_login User login name.
 	 * @param string      $user_email User email address.
 	 * @param string      $key        Activation key created in wpmu_signup_blog().
 	 * @param array       $meta       By default, contains the requested privacy setting and lang_id.
 	 */
-	if ( ! apply_filters( 'wpmu_signup_blog_notification', $domain, $path, $title, $user, $user_email, $key, $meta ) ) {
+	if ( ! apply_filters( 'wpmu_signup_blog_notification', $domain, $path, $title, $user_login, $user_email, $key, $meta ) ) {
 		return false;
 	}
 
 	// Send email with activation link.
-	if ( !is_subdomain_install() || get_current_site()->id != 1 )
+	if ( !is_subdomain_install() || get_current_network_id() != 1 )
 		$activate_url = network_site_url("wp-activate.php?key=$key");
 	else
 		$activate_url = "http://{$domain}{$path}wp-activate.php?key=$key"; // @todo use *_url() API
@@ -800,6 +800,10 @@ function wpmu_signup_blog_notification( $domain, $path, $title, $user, $user_ema
 		$admin_email = 'support@' . $_SERVER['SERVER_NAME'];
 	$from_name = get_site_option( 'site_name' ) == '' ? 'WordPress' : esc_html( get_site_option( 'site_name' ) );
 	$message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
+
+	$user = get_user_by( 'login', $user_login );
+	$switched_locale = switch_to_locale( get_user_locale( $user ) );
+
 	$message = sprintf(
 		/**
 		 * Filters the message content of the new blog notification email.
@@ -812,14 +816,14 @@ function wpmu_signup_blog_notification( $domain, $path, $title, $user, $user_ema
 		 * @param string $domain     Site domain.
 		 * @param string $path       Site path.
 		 * @param string $title      Site title.
-		 * @param string $user       User login name.
+		 * @param string $user_login User login name.
 		 * @param string $user_email User email address.
 		 * @param string $key        Activation key created in wpmu_signup_blog().
 		 * @param array  $meta       By default, contains the requested privacy setting and lang_id.
 		 */
 		apply_filters( 'wpmu_signup_blog_notification_email',
 			__( "To activate your blog, please click the following link:\n\n%s\n\nAfter you activate, you will receive *another email* with your login.\n\nAfter you activate, you can visit your site here:\n\n%s" ),
-			$domain, $path, $title, $user, $user_email, $key, $meta
+			$domain, $path, $title, $user_login, $user_email, $key, $meta
 		),
 		$activate_url,
 		esc_url( "http://{$domain}{$path}" ),
@@ -836,19 +840,25 @@ function wpmu_signup_blog_notification( $domain, $path, $title, $user, $user_ema
 		 * @param string $domain     Site domain.
 		 * @param string $path       Site path.
 		 * @param string $title      Site title.
-		 * @param string $user       User login name.
+		 * @param string $user_login User login name.
 		 * @param string $user_email User email address.
 		 * @param string $key        Activation key created in wpmu_signup_blog().
 		 * @param array  $meta       By default, contains the requested privacy setting and lang_id.
 		 */
 		apply_filters( 'wpmu_signup_blog_notification_subject',
-			__( '[%1$s] Activate %2$s' ),
-			$domain, $path, $title, $user, $user_email, $key, $meta
+			/* translators: New site notification email subject. 1: Network name, 2: New site URL */
+			_x( '[%1$s] Activate %2$s', 'New site notification email subject' ),
+			$domain, $path, $title, $user_login, $user_email, $key, $meta
 		),
 		$from_name,
 		esc_url( 'http://' . $domain . $path )
 	);
 	wp_mail( $user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
+
 	return true;
 }
 
@@ -867,26 +877,29 @@ function wpmu_signup_blog_notification( $domain, $path, $title, $user, $user_ema
  *
  * @since MU
  *
- * @param string $user       The user's login name.
+ * @param string $user_login The user's login name.
  * @param string $user_email The user's email address.
  * @param string $key        The activation key created in wpmu_signup_user()
  * @param array  $meta       By default, an empty array.
  * @return bool
  */
-function wpmu_signup_user_notification( $user, $user_email, $key, $meta = array() ) {
+function wpmu_signup_user_notification( $user_login, $user_email, $key, $meta = array() ) {
 	/**
 	 * Filters whether to bypass the email notification for new user sign-up.
 	 *
 	 * @since MU
 	 *
-	 * @param string $user       User login name.
+	 * @param string $user_login User login name.
 	 * @param string $user_email User email address.
 	 * @param string $key        Activation key created in wpmu_signup_user().
 	 * @param array  $meta       Signup meta data.
 	 */
-	if ( ! apply_filters( 'wpmu_signup_user_notification', $user, $user_email, $key, $meta ) )
+	if ( ! apply_filters( 'wpmu_signup_user_notification', $user_login, $user_email, $key, $meta ) )
 		return false;
 
+	$user = get_user_by( 'login', $user_login );
+	$switched_locale = switch_to_locale( get_user_locale( $user ) );
+
 	// Send email with activation link.
 	$admin_email = get_site_option( 'admin_email' );
 	if ( $admin_email == '' )
@@ -902,14 +915,14 @@ function wpmu_signup_user_notification( $user, $user_email, $key, $meta = array(
 		 * @since MU
 		 *
 		 * @param string $content    Content of the notification email.
-		 * @param string $user       User login name.
+		 * @param string $user_login User login name.
 		 * @param string $user_email User email address.
 		 * @param string $key        Activation key created in wpmu_signup_user().
 		 * @param array  $meta       Signup meta data.
 		 */
 		apply_filters( 'wpmu_signup_user_notification_email',
 			__( "To activate your user, please click the following link:\n\n%s\n\nAfter you activate, you will receive *another email* with your login." ),
-			$user, $user_email, $key, $meta
+			$user_login, $user_email, $key, $meta
 		),
 		site_url( "wp-activate.php?key=$key" )
 	);
@@ -921,19 +934,25 @@ function wpmu_signup_user_notification( $user, $user_email, $key, $meta = array(
 		 * @since MU
 		 *
 		 * @param string $subject    Subject of the notification email.
-		 * @param string $user       User login name.
+		 * @param string $user_login User login name.
 		 * @param string $user_email User email address.
 		 * @param string $key        Activation key created in wpmu_signup_user().
 		 * @param array  $meta       Signup meta data.
 		 */
 		apply_filters( 'wpmu_signup_user_notification_subject',
-			__( '[%1$s] Activate %2$s' ),
-			$user, $user_email, $key, $meta
+			/* translators: New user notification email subject. 1: Network name, 2: New user login */
+			_x( '[%1$s] Activate %2$s', 'New user notification email subject' ),
+			$user_login, $user_email, $key, $meta
 		),
 		$from_name,
-		$user
+		$user_login
 	);
 	wp_mail( $user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
+
 	return true;
 }
 
@@ -1092,7 +1111,10 @@ function wpmu_create_user( $user_name, $password, $email ) {
  * @return int|WP_Error Returns WP_Error object on failure, int $blog_id on success
  */
 function wpmu_create_blog( $domain, $path, $title, $user_id, $meta = array(), $site_id = 1 ) {
-	$defaults = array( 'public' => 0 );
+	$defaults = array(
+		'public' => 0,
+		'WPLANG' => get_site_option( 'WPLANG' ),
+	);
 	$meta = wp_parse_args( $meta, $defaults );
 
 	$domain = preg_replace( '/\s+/', '', sanitize_user( $domain, true ) );
@@ -1130,7 +1152,6 @@ function wpmu_create_blog( $domain, $path, $title, $user_id, $meta = array(), $s
 			update_option( $key, $value );
 	}
 
-	add_option( 'WPLANG', get_site_option( 'WPLANG' ) );
 	update_option( 'blog_public', (int) $meta['public'] );
 
 	if ( ! is_super_admin( $user_id ) && ! get_user_meta( $user_id, 'primary_blog', true ) )
@@ -1183,6 +1204,7 @@ function newblog_notify_siteadmin( $blog_id, $deprecated = '' ) {
 	$siteurl = site_url();
 	restore_current_blog();
 
+	/* translators: New site notification email. 1: Site URL, 2: User IP address, 3: Settings screen URL */
 	$msg = sprintf( __( 'New Site: %1$s
 URL: %2$s
 Remote IP: %3$s
@@ -1225,6 +1247,7 @@ function newuser_notify_siteadmin( $user_id ) {
 	$user = get_userdata( $user_id );
 
 	$options_site_url = esc_url(network_admin_url('settings.php'));
+	/* translators: New user notification email. 1: User login, 2: User IP address, 3: Settings screen URL */
 	$msg = sprintf(__('New User: %1$s
 Remote IP: %2$s
 
@@ -1332,7 +1355,7 @@ function insert_blog($domain, $path, $site_id) {
  * @param string $blog_title The title of the new site.
  */
 function install_blog( $blog_id, $blog_title = '' ) {
-	global $wpdb, $wp_roles, $current_site;
+	global $wpdb, $wp_roles;
 
 	// Cast for security
 	$blog_id = (int) $blog_id;
@@ -1361,7 +1384,7 @@ function install_blog( $blog_id, $blog_title = '' ) {
  		if ( 'https' === parse_url( get_site_option( 'siteurl' ), PHP_URL_SCHEME ) ) {
  			$siteurl = set_url_scheme( $siteurl, 'https' );
  		}
- 		if ( 'https' === parse_url( get_home_url( $current_site->blog_id ), PHP_URL_SCHEME ) ) {
+ 		if ( 'https' === parse_url( get_home_url( get_network()->site_id ), PHP_URL_SCHEME ) ) {
  			$home = set_url_scheme( $home, 'https' );
  		}
 
@@ -1373,7 +1396,7 @@ function install_blog( $blog_id, $blog_title = '' ) {
 	if ( get_site_option( 'ms_files_rewriting' ) )
 		update_option( 'upload_path', UPLOADBLOGSDIR . "/$blog_id/files" );
 	else
-		update_option( 'upload_path', get_blog_option( get_current_site()->blog_id, 'upload_path' ) );
+		update_option( 'upload_path', get_blog_option( get_network()->site_id, 'upload_path' ) );
 
 	update_option( 'blogname', wp_unslash( $blog_title ) );
 	update_option( 'admin_email', '' );
@@ -1428,7 +1451,7 @@ function install_blog_defaults($blog_id, $user_id) {
  * @return bool
  */
 function wpmu_welcome_notification( $blog_id, $user_id, $password, $title, $meta = array() ) {
-	$current_site = get_current_site();
+	$current_network = get_network();
 
 	/**
 	 * Filters whether to bypass the welcome email after site activation.
@@ -1446,6 +1469,10 @@ function wpmu_welcome_notification( $blog_id, $user_id, $password, $title, $meta
 	if ( ! apply_filters( 'wpmu_welcome_notification', $blog_id, $user_id, $password, $title, $meta ) )
 		return false;
 
+	$user = get_userdata( $user_id );
+
+	$switched_locale = switch_to_locale( get_user_locale( $user ) );
+
 	$welcome_email = get_site_option( 'welcome_email' );
 	if ( $welcome_email == false ) {
 		/* translators: Do not translate USERNAME, SITE_NAME, BLOG_URL, PASSWORD: those are placeholders. */
@@ -1466,9 +1493,8 @@ We hope you enjoy your new site. Thanks!
 	}
 
 	$url = get_blogaddress_by_id($blog_id);
-	$user = get_userdata( $user_id );
 
-	$welcome_email = str_replace( 'SITE_NAME', $current_site->site_name, $welcome_email );
+	$welcome_email = str_replace( 'SITE_NAME', $current_network->site_name, $welcome_email );
 	$welcome_email = str_replace( 'BLOG_TITLE', $title, $welcome_email );
 	$welcome_email = str_replace( 'BLOG_URL', $url, $welcome_email );
 	$welcome_email = str_replace( 'USERNAME', $user->user_login, $welcome_email );
@@ -1498,8 +1524,11 @@ We hope you enjoy your new site. Thanks!
 	$message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
 	$message = $welcome_email;
 
-	if ( empty( $current_site->site_name ) )
-		$current_site->site_name = 'WordPress';
+	if ( empty( $current_network->site_name ) )
+		$current_network->site_name = 'WordPress';
+
+	/* translators: New site notification email subject. 1: Network name, 2: New site name */
+	$subject = __( 'New %1$s Site: %2$s' );
 
 	/**
 	 * Filters the subject of the welcome email after site activation.
@@ -1508,8 +1537,13 @@ We hope you enjoy your new site. Thanks!
 	 *
 	 * @param string $subject Subject of the email.
 	 */
-	$subject = apply_filters( 'update_welcome_subject', sprintf( __( 'New %1$s Site: %2$s' ), $current_site->site_name, wp_unslash( $title ) ) );
+	$subject = apply_filters( 'update_welcome_subject', sprintf( $subject, $current_network->site_name, wp_unslash( $title ) ) );
 	wp_mail( $user->user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
+
 	return true;
 }
 
@@ -1529,7 +1563,7 @@ We hope you enjoy your new site. Thanks!
  * @return bool
  */
 function wpmu_welcome_user_notification( $user_id, $password, $meta = array() ) {
-	$current_site = get_current_site();
+	$current_network = get_network();
 
 	/**
  	 * Filters whether to bypass the welcome email after user activation.
@@ -1549,6 +1583,8 @@ function wpmu_welcome_user_notification( $user_id, $password, $meta = array() )
 
 	$user = get_userdata( $user_id );
 
+	$switched_locale = switch_to_locale( get_user_locale( $user ) );
+
 	/**
 	 * Filters the content of the welcome email after user activation.
 	 *
@@ -1562,7 +1598,7 @@ function wpmu_welcome_user_notification( $user_id, $password, $meta = array() )
 	 * @param array  $meta          Signup meta data.
 	 */
 	$welcome_email = apply_filters( 'update_welcome_user_email', $welcome_email, $user_id, $password, $meta );
-	$welcome_email = str_replace( 'SITE_NAME', $current_site->site_name, $welcome_email );
+	$welcome_email = str_replace( 'SITE_NAME', $current_network->site_name, $welcome_email );
 	$welcome_email = str_replace( 'USERNAME', $user->user_login, $welcome_email );
 	$welcome_email = str_replace( 'PASSWORD', $password, $welcome_email );
 	$welcome_email = str_replace( 'LOGINLINK', wp_login_url(), $welcome_email );
@@ -1576,8 +1612,11 @@ function wpmu_welcome_user_notification( $user_id, $password, $meta = array() )
 	$message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
 	$message = $welcome_email;
 
-	if ( empty( $current_site->site_name ) )
-		$current_site->site_name = 'WordPress';
+	if ( empty( $current_network->site_name ) )
+		$current_network->site_name = 'WordPress';
+
+	/* translators: New user notification email subject. 1: Network name, 2: New user login */
+	$subject = __( 'New %1$s User: %2$s' );
 
 	/**
 	 * Filters the subject of the welcome email after user activation.
@@ -1586,8 +1625,13 @@ function wpmu_welcome_user_notification( $user_id, $password, $meta = array() )
 	 *
 	 * @param string $subject Subject of the email.
 	 */
-	$subject = apply_filters( 'update_welcome_user_subject', sprintf( __( 'New %1$s User: %2$s' ), $current_site->site_name, $user->user_login) );
+	$subject = apply_filters( 'update_welcome_user_subject', sprintf( $subject, $current_network->site_name, $user->user_login) );
 	wp_mail( $user->user_email, wp_specialchars_decode( $subject ), $message, $message_headers );
+
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
+
 	return true;
 }
 
@@ -1760,8 +1804,8 @@ function check_upload_mimes( $mimes ) {
  *
  * WordPress MS stores a blog's post count as an option so as
  * to avoid extraneous COUNTs when a blog's details are fetched
- * with get_blog_details(). This function is called when posts
- * are published or unpublished to make sure the count stays current.
+ * with get_site(). This function is called when posts are published
+ * or unpublished to make sure the count stays current.
  *
  * @since MU
  *
@@ -1875,7 +1919,7 @@ function global_terms( $term_id, $deprecated = '' ) {
  * @return array The current site's domain
  */
 function redirect_this_site( $deprecated = '' ) {
-	return array( get_current_site()->domain );
+	return array( get_network()->domain );
 }
 
 /**
@@ -1985,15 +2029,12 @@ function maybe_add_existing_user_to_blog() {
  *
  * @since MU
  *
- * @global int $blog_id
- *
  * @param array $details
  * @return true|WP_Error|void
  */
 function add_existing_user_to_blog( $details = false ) {
-	global $blog_id;
-
 	if ( is_array( $details ) ) {
+		$blog_id = get_current_blog_id();
 		$result = add_user_to_blog( $blog_id, $details[ 'user_id' ], $details[ 'role' ] );
 		/**
 		 * Fires immediately after an existing user is added to a site.
@@ -2025,7 +2066,7 @@ function add_new_user_to_blog( $user_id, $password, $meta ) {
 	if ( !empty( $meta[ 'add_to_blog' ] ) ) {
 		$blog_id = $meta[ 'add_to_blog' ];
 		$role = $meta[ 'new_role' ];
-		remove_user_from_blog($user_id, get_current_site()->blog_id); // remove user from main blog.
+		remove_user_from_blog($user_id, get_network()->site_id); // remove user from main blog.
 		add_user_to_blog( $blog_id, $user_id, $role );
 		update_user_meta( $user_id, 'primary_blog', $blog_id );
 	}
@@ -2039,7 +2080,7 @@ function add_new_user_to_blog( $user_id, $password, $meta ) {
  * @param PHPMailer $phpmailer The PHPMailer instance, passed by reference.
  */
 function fix_phpmailer_messageid( $phpmailer ) {
-	$phpmailer->Hostname = get_current_site()->domain;
+	$phpmailer->Hostname = get_network()->domain;
 }
 
 /**
diff --git a/wp-includes/ms-load.php b/wp-includes/ms-load.php
index 9fbaa5fa0..cf564990c 100644
--- a/wp-includes/ms-load.php
+++ b/wp-includes/ms-load.php
@@ -84,7 +84,7 @@ function ms_site_check() {
 	if ( is_super_admin() )
 		return true;
 
-	$blog = get_blog_details();
+	$blog = get_site();
 
 	if ( '1' == $blog->deleted ) {
 		if ( file_exists( WP_CONTENT_DIR . '/blog-deleted.php' ) )
@@ -97,7 +97,7 @@ function ms_site_check() {
 		if ( file_exists( WP_CONTENT_DIR . '/blog-inactive.php' ) ) {
 			return WP_CONTENT_DIR . '/blog-inactive.php';
 		} else {
-			$admin_email = str_replace( '@', ' AT ', get_site_option( 'admin_email', 'support@' . get_current_site()->domain ) );
+			$admin_email = str_replace( '@', ' AT ', get_site_option( 'admin_email', 'support@' . get_network()->domain ) );
 			wp_die(
 				/* translators: %s: admin email link */
 				sprintf( __( 'This site has not been activated yet. If you are having problems activating your site, please contact %s.' ),
@@ -134,35 +134,24 @@ function get_network_by_path( $domain, $path, $segments = null ) {
 }
 
 /**
- * Retrieve an object containing information about the requested network.
- *
- * @since 3.9.0
- *
- * @internal In 4.6.0, converted to use get_network()
+ * Retrieves the closest matching site object by its domain and path.
+ * 
+ * This will not necessarily return an exact match for a domain and path. Instead, it
+ * breaks the domain and path into pieces that are then used to match the closest
+ * possibility from a query.
  *
- * @param object|int $network The network's database row or ID.
- * @return WP_Network|false Object containing network information if found, false if not.
- */
-function wp_get_network( $network ) {
-	$network = get_network( $network );
-	if ( null === $network ) {
-		return false;
-	}
-
-	return $network;
-}
-
-/**
- * Retrieve a site object by its domain and path.
+ * The intent of this method is to match a site object during bootstrap for a
+ * requested site address
  *
  * @since 3.9.0
+ * @since 4.7.0 Updated to always return a `WP_Site` object.
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param string   $domain   Domain to check.
  * @param string   $path     Path to check.
  * @param int|null $segments Path segments to use. Defaults to null, or the full path.
- * @return object|false Site object if successful. False when no site is found.
+ * @return WP_Site|false Site object if successful. False when no site is found.
  */
 function get_site_by_path( $domain, $path, $segments = null ) {
 	$path_segments = array_filter( explode( '/', trim( $path, '/' ) ) );
@@ -205,21 +194,24 @@ function get_site_by_path( $domain, $path, $segments = null ) {
 	 *
 	 * @since 3.9.0
 	 *
-	 * @param null|bool|object $site     Site value to return by path.
-	 * @param string           $domain   The requested domain.
-	 * @param string           $path     The requested path, in full.
-	 * @param int|null         $segments The suggested number of paths to consult.
-	 *                                   Default null, meaning the entire path was to be consulted.
-	 * @param array            $paths    The paths to search for, based on $path and $segments.
+	 * @param null|bool|WP_Site $site     Site value to return by path.
+	 * @param string            $domain   The requested domain.
+	 * @param string            $path     The requested path, in full.
+	 * @param int|null          $segments The suggested number of paths to consult.
+	 *                                    Default null, meaning the entire path was to be consulted.
+	 * @param array             $paths    The paths to search for, based on $path and $segments.
 	 */
 	$pre = apply_filters( 'pre_get_site_by_path', null, $domain, $path, $segments, $paths );
 	if ( null !== $pre ) {
+		if ( false !== $pre && ! $pre instanceof WP_Site ) {
+			$pre = new WP_Site( $pre );
+		}
 		return $pre;
 	}
 
 	/*
 	 * @todo
-	 * get_blog_details(), caching, etc. Consider alternative optimization routes,
+	 * caching, etc. Consider alternative optimization routes,
 	 * perhaps as an opt-in for plugins, rather than using the pre_* filter.
 	 * For example: The segments filter can expand or ignore paths.
 	 * If persistent caching is enabled, we could query the DB for a path <> '/'
@@ -251,7 +243,6 @@ function get_site_by_path( $domain, $path, $segments = null ) {
 	$site = array_shift( $result );
 
 	if ( $site ) {
-		// @todo get_blog_details()
 		return $site;
 	}
 
@@ -542,3 +533,26 @@ function wpmu_current_site() {
 	_deprecated_function( __FUNCTION__, '3.9.0' );
 	return $current_site;
 }
+
+/**
+ * Retrieve an object containing information about the requested network.
+ *
+ * @since 3.9.0
+ * @deprecated 4.7.0 Use `get_network()`
+ * @see get_network()
+ *
+ * @internal In 4.6.0, converted to use get_network()
+ *
+ * @param object|int $network The network's database row or ID.
+ * @return WP_Network|false Object containing network information if found, false if not.
+ */
+function wp_get_network( $network ) {
+	_deprecated_function( __FUNCTION__, '4.7.0', 'get_network()' );
+
+	$network = get_network( $network );
+	if ( null === $network ) {
+		return false;
+	}
+
+	return $network;
+}
diff --git a/wp-includes/nav-menu-template.php b/wp-includes/nav-menu-template.php
index 62a66d39a..889547698 100644
--- a/wp-includes/nav-menu-template.php
+++ b/wp-includes/nav-menu-template.php
@@ -14,32 +14,34 @@ require_once ABSPATH . WPINC . '/class-walker-nav-menu.php';
  * Displays a navigation menu.
  *
  * @since 3.0.0
+ * @since 4.7.0 Added the `item_spacing` argument.
  *
  * @staticvar array $menu_id_slugs
  *
  * @param array $args {
  *     Optional. Array of nav menu arguments.
  *
- *     @type string        $menu            Desired menu. Accepts (matching in order) id, slug, name. Default empty.
- *     @type string        $menu_class      CSS class to use for the ul element which forms the menu. Default 'menu'.
- *     @type string        $menu_id         The ID that is applied to the ul element which forms the menu.
- *                                          Default is the menu slug, incremented.
- *     @type string        $container       Whether to wrap the ul, and what to wrap it with. Default 'div'.
- *     @type string        $container_class Class that is applied to the container. Default 'menu-{menu slug}-container'.
- *     @type string        $container_id    The ID that is applied to the container. Default empty.
- *     @type callable|bool $fallback_cb     If the menu doesn't exists, a callback function will fire.
- *                                          Default is 'wp_page_menu'. Set to false for no fallback.
- *     @type string        $before          Text before the link markup. Default empty.
- *     @type string        $after           Text after the link markup. Default empty.
- *     @type string        $link_before     Text before the link text. Default empty.
- *     @type string        $link_after      Text after the link text. Default empty.
- *     @type bool          $echo            Whether to echo the menu or return it. Default true.
- *     @type int           $depth           How many levels of the hierarchy are to be included. 0 means all. Default 0.
- *     @type object        $walker          Instance of a custom walker class. Default empty.
- *     @type string        $theme_location  Theme location to be used. Must be registered with register_nav_menu()
- *                                          in order to be selectable by the user.
- *     @type string        $items_wrap      How the list items should be wrapped. Default is a ul with an id and class.
- *                                          Uses printf() format with numbered placeholders.
+ *     @type int|string|WP_Term $menu            Desired menu. Accepts (matching in order) id, slug, name, menu object. Default empty.
+ *     @type string             $menu_class      CSS class to use for the ul element which forms the menu. Default 'menu'.
+ *     @type string             $menu_id         The ID that is applied to the ul element which forms the menu.
+ *                                               Default is the menu slug, incremented.
+ *     @type string             $container       Whether to wrap the ul, and what to wrap it with. Default 'div'.
+ *     @type string             $container_class Class that is applied to the container. Default 'menu-{menu slug}-container'.
+ *     @type string             $container_id    The ID that is applied to the container. Default empty.
+ *     @type callable|bool      $fallback_cb     If the menu doesn't exists, a callback function will fire.
+ *                                               Default is 'wp_page_menu'. Set to false for no fallback.
+ *     @type string             $before          Text before the link markup. Default empty.
+ *     @type string             $after           Text after the link markup. Default empty.
+ *     @type string             $link_before     Text before the link text. Default empty.
+ *     @type string             $link_after      Text after the link text. Default empty.
+ *     @type bool               $echo            Whether to echo the menu or return it. Default true.
+ *     @type int                $depth           How many levels of the hierarchy are to be included. 0 means all. Default 0.
+ *     @type object             $walker          Instance of a custom walker class. Default empty.
+ *     @type string             $theme_location  Theme location to be used. Must be registered with register_nav_menu()
+ *                                               in order to be selectable by the user.
+ *     @type string             $items_wrap      How the list items should be wrapped. Default is a ul with an id and class.
+ *                                               Uses printf() format with numbered placeholders.
+ *     @type string             $item_spacing    Whether to preserve whitespace within the menu's HTML. Accepts 'preserve' or 'discard'. Default 'preserve'.
  * }
  * @return object|false|void Menu output if $echo is false, false if there are no items or no menu was found.
  */
@@ -47,10 +49,16 @@ function wp_nav_menu( $args = array() ) {
 	static $menu_id_slugs = array();
 
 	$defaults = array( 'menu' => '', 'container' => 'div', 'container_class' => '', 'container_id' => '', 'menu_class' => 'menu', 'menu_id' => '',
-	'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
+	'echo' => true, 'fallback_cb' => 'wp_page_menu', 'before' => '', 'after' => '', 'link_before' => '', 'link_after' => '', 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 'item_spacing' => 'preserve',
 	'depth' => 0, 'walker' => '', 'theme_location' => '' );
 
 	$args = wp_parse_args( $args, $defaults );
+
+	if ( ! in_array( $args['item_spacing'], array( 'preserve', 'discard' ), true ) ) {
+		// invalid value, fall back to default.
+		$args['item_spacing'] = $defaults['item_spacing'];
+	}
+
 	/**
 	 * Filters the arguments used to display a navigation menu.
 	 *
@@ -75,7 +83,7 @@ function wp_nav_menu( $args = array() ) {
 	 * @see wp_nav_menu()
 	 *
 	 * @param string|null $output Nav menu output to short-circuit with. Default null.
-	 * @param object      $args   An object containing wp_nav_menu() arguments.
+	 * @param stdClass    $args   An object containing wp_nav_menu() arguments.
 	 */
 	$nav_menu = apply_filters( 'pre_wp_nav_menu', null, $args );
 
@@ -175,8 +183,8 @@ function wp_nav_menu( $args = array() ) {
 	 *
 	 * @since 3.1.0
 	 *
-	 * @param array  $sorted_menu_items The menu items, sorted by each menu item's menu order.
-	 * @param object $args              An object containing wp_nav_menu() arguments.
+	 * @param array    $sorted_menu_items The menu items, sorted by each menu item's menu order.
+	 * @param stdClass $args              An object containing wp_nav_menu() arguments.
 	 */
 	$sorted_menu_items = apply_filters( 'wp_nav_menu_objects', $sorted_menu_items, $args );
 
@@ -206,8 +214,8 @@ function wp_nav_menu( $args = array() ) {
 	 *
 	 * @see wp_nav_menu()
 	 *
-	 * @param string $items The HTML list content for the menu items.
-	 * @param object $args  An object containing wp_nav_menu() arguments.
+	 * @param string   $items The HTML list content for the menu items.
+	 * @param stdClass $args  An object containing wp_nav_menu() arguments.
 	 */
 	$items = apply_filters( 'wp_nav_menu_items', $items, $args );
 	/**
@@ -217,8 +225,8 @@ function wp_nav_menu( $args = array() ) {
 	 *
 	 * @see wp_nav_menu()
 	 *
-	 * @param string $items The HTML list content for the menu items.
-	 * @param object $args  An object containing wp_nav_menu() arguments.
+	 * @param string   $items The HTML list content for the menu items.
+	 * @param stdClass $args  An object containing wp_nav_menu() arguments.
 	 */
 	$items = apply_filters( "wp_nav_menu_{$menu->slug}_items", $items, $args );
 
@@ -239,8 +247,8 @@ function wp_nav_menu( $args = array() ) {
 	 *
 	 * @see wp_nav_menu()
 	 *
-	 * @param string $nav_menu The HTML content for the navigation menu.
-	 * @param object $args     An object containing wp_nav_menu() arguments.
+	 * @param string   $nav_menu The HTML content for the navigation menu.
+	 * @param stdClass $args     An object containing wp_nav_menu() arguments.
 	 */
 	$nav_menu = apply_filters( 'wp_nav_menu', $nav_menu, $args );
 
@@ -326,6 +334,7 @@ function _wp_menu_item_classes_by_context( &$menu_items ) {
 	$possible_object_parents = array_filter( $possible_object_parents );
 
 	$front_page_url = home_url();
+	$front_page_id  = (int) get_option( 'page_on_front' );
 
 	foreach ( (array) $menu_items as $key => $menu_item ) {
 
@@ -336,6 +345,11 @@ function _wp_menu_item_classes_by_context( &$menu_items ) {
 		$classes[] = 'menu-item-type-' . $menu_item->type;
 		$classes[] = 'menu-item-object-' . $menu_item->object;
 
+		// This menu item is set as the 'Front Page'.
+		if ( 'post_type' === $menu_item->type && $front_page_id === (int) $menu_item->object_id ) {
+			$classes[] = 'menu-item-home';
+		}
+
 		// if the menu item corresponds to a taxonomy term for the currently-queried non-hierarchical post object
 		if ( $wp_query->is_singular && 'taxonomy' == $menu_item->type && in_array( $menu_item->object_id, $possible_object_parents ) ) {
 			$active_parent_object_ids[] = (int) $menu_item->object_id;
@@ -368,6 +382,7 @@ function _wp_menu_item_classes_by_context( &$menu_items ) {
 				$classes[] = 'page-item-' . $menu_item->object_id;
 				$classes[] = 'current_page_item';
 			}
+
 			$active_parent_item_ids[] = (int) $menu_item->menu_item_parent;
 			$active_parent_object_ids[] = (int) $menu_item->post_parent;
 			$active_object = $menu_item->object;
@@ -488,10 +503,10 @@ function _wp_menu_item_classes_by_context( &$menu_items ) {
  * @uses Walker_Nav_Menu to create HTML list content.
  * @since 3.0.0
  *
- * @param array  $items
- * @param int    $depth
- * @param object $r
- * @return string
+ * @param array    $items The menu items, sorted by each menu item's menu order.
+ * @param int      $depth Depth of the item in reference to parents.
+ * @param stdClass $r     An object containing wp_nav_menu() arguments.
+ * @return string The HTML list content for the menu items.
  */
 function walk_nav_menu_tree( $items, $depth, $r ) {
 	$walker = ( empty($r->walker) ) ? new Walker_Nav_Menu : $r->walker;
diff --git a/wp-includes/nav-menu.php b/wp-includes/nav-menu.php
index ae573c5c3..30039f420 100644
--- a/wp-includes/nav-menu.php
+++ b/wp-includes/nav-menu.php
@@ -12,8 +12,8 @@
  *
  * @since 3.0.0
  *
- * @param string $menu Menu ID, slug, or name - or the menu object.
- * @return object|false False if $menu param isn't supplied or term does not exist, menu object if successful.
+ * @param int|string|WP_Term $menu Menu ID, slug, or name - or the menu object.
+ * @return WP_Term|false False if $menu param isn't supplied or term does not exist, menu object if successful.
  */
 function wp_get_nav_menu_object( $menu ) {
 	$menu_obj = false;
@@ -557,38 +557,6 @@ function wp_get_nav_menus( $args = array() ) {
 	return apply_filters( 'wp_get_nav_menus', get_terms( 'nav_menu',  $args), $args );
 }
 
-/**
- * Sort menu items by the desired key.
- *
- * @since 3.0.0
- * @access private
- *
- * @global string $_menu_item_sort_prop
- *
- * @param object $a The first object to compare
- * @param object $b The second object to compare
- * @return int -1, 0, or 1 if $a is considered to be respectively less than, equal to, or greater than $b.
- */
-function _sort_nav_menu_items( $a, $b ) {
-	global $_menu_item_sort_prop;
-
-	if ( empty( $_menu_item_sort_prop ) )
-		return 0;
-
-	if ( ! isset( $a->$_menu_item_sort_prop ) || ! isset( $b->$_menu_item_sort_prop ) )
-		return 0;
-
-	$_a = (int) $a->$_menu_item_sort_prop;
-	$_b = (int) $b->$_menu_item_sort_prop;
-
-	if ( $a->$_menu_item_sort_prop == $b->$_menu_item_sort_prop )
-		return 0;
-	elseif ( $_a == $a->$_menu_item_sort_prop && $_b == $b->$_menu_item_sort_prop )
-		return $_a < $_b ? -1 : 1;
-	else
-		return strcmp( $a->$_menu_item_sort_prop, $b->$_menu_item_sort_prop );
-}
-
 /**
  * Return if a menu item is valid.
  *
@@ -682,8 +650,9 @@ function wp_get_nav_menu_items( $menu, $args = array() ) {
 	}
 
 	if ( ARRAY_A == $args['output'] ) {
-		$GLOBALS['_menu_item_sort_prop'] = $args['output_key'];
-		usort($items, '_sort_nav_menu_items');
+		$items = wp_list_sort( $items, array(
+			$args['output_key'] => 'ASC',
+		) );
 		$i = 1;
 		foreach ( $items as $k => $item ) {
 			$items[$k]->{$args['output_key']} = $i++;
@@ -747,6 +716,10 @@ function wp_setup_nav_menu_item( $menu_item ) {
 					$menu_item->_invalid = true;
 				}
 
+				if ( 'trash' === get_post_status( $menu_item->object_id ) ) {
+					$menu_item->_invalid = true;
+				}
+
 				$menu_item->url = get_permalink( $menu_item->object_id );
 
 				$original_object = get_post( $menu_item->object_id );
@@ -772,7 +745,7 @@ function wp_setup_nav_menu_item( $menu_item ) {
 
 				$menu_item->type_label = __( 'Post Type Archive' );
 				$post_content = wp_trim_words( $menu_item->post_content, 200 );
-				$post_type_description = '' == $post_content ? $post_type_description : $post_content; 
+				$post_type_description = '' == $post_content ? $post_type_description : $post_content;
 				$menu_item->url = get_post_type_archive_link( $menu_item->object );
 			} elseif ( 'taxonomy' == $menu_item->type ) {
 				$object = get_taxonomy( $menu_item->object );
diff --git a/wp-includes/option.php b/wp-includes/option.php
index 2f3cdd1e7..ac17c2f50 100644
--- a/wp-includes/option.php
+++ b/wp-includes/option.php
@@ -49,13 +49,16 @@ function get_option( $option, $default = false ) {
 	 *                               Default false to skip it.
 	 * @param string     $option     Option name.
 	 */
-	$pre = apply_filters( 'pre_option_' . $option, false, $option );
+	$pre = apply_filters( "pre_option_{$option}", false, $option );
 	if ( false !== $pre )
 		return $pre;
 
 	if ( defined( 'WP_SETUP_CONFIG' ) )
 		return false;
 
+	// Distinguish between `false` as a default, and not passing one.
+	$passed_default = func_num_args() > 1;
+
 	if ( ! wp_installing() ) {
 		// prevent non-existent options from triggering multiple queries
 		$notoptions = wp_cache_get( 'notoptions', 'options' );
@@ -67,12 +70,14 @@ function get_option( $option, $default = false ) {
 			 *
 			 * @since 3.4.0
 			 * @since 4.4.0 The `$option` parameter was added.
+			 * @since 4.7.0 The `$passed_default` parameter was added to distinguish between a `false` value and the default parameter value.
 			 *
 			 * @param mixed  $default The default value to return if the option does not exist
 			 *                        in the database.
 			 * @param string $option  Option name.
+			 * @param bool   $passed_default Was `get_option()` passed a default value?
 			 */
-			return apply_filters( 'default_option_' . $option, $default, $option );
+			return apply_filters( "default_option_{$option}", $default, $option, $passed_default );
 		}
 
 		$alloptions = wp_load_alloptions();
@@ -97,7 +102,7 @@ function get_option( $option, $default = false ) {
 					wp_cache_set( 'notoptions', $notoptions, 'options' );
 
 					/** This filter is documented in wp-includes/option.php */
-					return apply_filters( 'default_option_' . $option, $default, $option );
+					return apply_filters( 'default_option_' . $option, $default, $option, $passed_default );
 				}
 			}
 		}
@@ -109,7 +114,7 @@ function get_option( $option, $default = false ) {
 			$value = $row->option_value;
 		} else {
 			/** This filter is documented in wp-includes/option.php */
-			return apply_filters( 'default_option_' . $option, $default, $option );
+			return apply_filters( 'default_option_' . $option, $default, $option, $passed_default );
 		}
 	}
 
@@ -133,7 +138,7 @@ function get_option( $option, $default = false ) {
 	 *                       unserialized prior to being returned.
 	 * @param string $option Option name.
 	 */
-	return apply_filters( 'option_' . $option, maybe_unserialize( $value ), $option );
+	return apply_filters( "option_{$option}", maybe_unserialize( $value ), $option );
 }
 
 /**
@@ -277,7 +282,7 @@ function update_option( $option, $value, $autoload = null ) {
 	 * @param mixed  $old_value The old option value.
 	 * @param string $option    Option name.
 	 */
-	$value = apply_filters( 'pre_update_option_' . $option, $value, $old_value, $option );
+	$value = apply_filters( "pre_update_option_{$option}", $value, $old_value, $option );
 
 	/**
 	 * Filters an option before its value is (maybe) serialized and updated.
@@ -295,7 +300,7 @@ function update_option( $option, $value, $autoload = null ) {
 		return false;
 
 	/** This filter is documented in wp-includes/option.php */
-	if ( apply_filters( 'default_option_' . $option, false, $option ) === $old_value ) {
+	if ( apply_filters( 'default_option_' . $option, false, $option, false ) === $old_value ) {
 		// Default setting for new options is 'yes'.
 		if ( null === $autoload ) {
 			$autoload = 'yes';
@@ -416,7 +421,7 @@ function add_option( $option, $value = '', $deprecated = '', $autoload = 'yes' )
 	$notoptions = wp_cache_get( 'notoptions', 'options' );
 	if ( !is_array( $notoptions ) || !isset( $notoptions[$option] ) )
 		/** This filter is documented in wp-includes/option.php */
-		if ( apply_filters( 'default_option_' . $option, false, $option ) !== get_option( $option ) )
+		if ( apply_filters( 'default_option_' . $option, false, $option, false ) !== get_option( $option ) )
 			return false;
 
 	$serialized_value = maybe_serialize( $value );
@@ -534,7 +539,7 @@ function delete_option( $option ) {
 		 *
 		 * @param string $option Name of the deleted option.
 		 */
-		do_action( "delete_option_$option", $option );
+		do_action( "delete_option_{$option}", $option );
 
 		/**
 		 * Fires after an option has been deleted.
@@ -568,7 +573,7 @@ function delete_transient( $transient ) {
 	 *
 	 * @param string $transient Transient name.
 	 */
-	do_action( 'delete_transient_' . $transient, $transient );
+	do_action( "delete_transient_{$transient}", $transient );
 
 	if ( wp_using_ext_object_cache() ) {
 		$result = wp_cache_delete( $transient, 'transient' );
@@ -624,7 +629,7 @@ function get_transient( $transient ) {
 	 *                              of the transient, and return the returned value.
 	 * @param string $transient     Transient name.
 	 */
-	$pre = apply_filters( 'pre_transient_' . $transient, false, $transient );
+	$pre = apply_filters( "pre_transient_{$transient}", false, $transient );
 	if ( false !== $pre )
 		return $pre;
 
@@ -661,7 +666,7 @@ function get_transient( $transient ) {
 	 * @param mixed  $value     Value of transient.
 	 * @param string $transient Transient name.
 	 */
-	return apply_filters( 'transient_' . $transient, $value, $transient );
+	return apply_filters( "transient_{$transient}", $value, $transient );
 }
 
 /**
@@ -696,7 +701,7 @@ function set_transient( $transient, $value, $expiration = 0 ) {
 	 * @param int    $expiration Time until expiration in seconds.
 	 * @param string $transient  Transient name.
 	 */
-	$value = apply_filters( 'pre_set_transient_' . $transient, $value, $expiration, $transient );
+	$value = apply_filters( "pre_set_transient_{$transient}", $value, $expiration, $transient );
 
 	/**
 	 * Filters the expiration for a transient before its value is set.
@@ -709,7 +714,7 @@ function set_transient( $transient, $value, $expiration = 0 ) {
 	 * @param mixed  $value      New value of transient.
 	 * @param string $transient  Transient name.
 	 */
-	$expiration = apply_filters( 'expiration_of_transient_' . $transient, $expiration, $value, $transient );
+	$expiration = apply_filters( "expiration_of_transient_{$transient}", $expiration, $value, $transient );
 
 	if ( wp_using_ext_object_cache() ) {
 		$result = wp_cache_set( $transient, $value, 'transient', $expiration );
@@ -758,7 +763,7 @@ function set_transient( $transient, $value, $expiration = 0 ) {
 		 * @param int    $expiration Time until expiration in seconds.
 		 * @param string $transient  The name of the transient.
 		 */
-		do_action( 'set_transient_' . $transient, $value, $expiration, $transient );
+		do_action( "set_transient_{$transient}", $value, $expiration, $transient );
 
 		/**
 		 * Fires after the value for a transient has been set.
@@ -786,7 +791,7 @@ function set_transient( $transient, $value, $expiration = 0 ) {
  */
 function wp_user_settings() {
 
-	if ( ! is_admin() || defined( 'DOING_AJAX' ) ) {
+	if ( ! is_admin() || wp_doing_ajax() ) {
 		return;
 	}
 
@@ -1069,8 +1074,7 @@ function update_site_option( $option, $value ) {
  *
  * @see get_option()
  *
- * @global wpdb   $wpdb
- * @global object $current_site
+ * @global wpdb $wpdb
  *
  * @param int      $network_id ID of the network. Can be null to default to the current network ID.
  * @param string   $option     Name of option to retrieve. Expected to not be SQL-escaped.
@@ -1078,7 +1082,7 @@ function update_site_option( $option, $value ) {
  * @return mixed Value set for the option.
  */
 function get_network_option( $network_id, $option, $default = false ) {
-	global $wpdb, $current_site;
+	global $wpdb;
 
 	if ( $network_id && ! is_numeric( $network_id ) ) {
 		return false;
@@ -1087,8 +1091,8 @@ function get_network_option( $network_id, $option, $default = false ) {
 	$network_id = (int) $network_id;
 
 	// Fallback to the current network if a network ID is not specified.
-	if ( ! $network_id && is_multisite() ) {
-		$network_id = $current_site->id;
+	if ( ! $network_id ) {
+		$network_id = get_current_network_id();
 	}
 
 	/**
@@ -1101,12 +1105,14 @@ function get_network_option( $network_id, $option, $default = false ) {
 	 *
 	 * @since 2.9.0 As 'pre_site_option_' . $key
 	 * @since 3.0.0
-	 * @since 4.4.0 The `$option` parameter was added
+	 * @since 4.4.0 The `$option` parameter was added.
+	 * @since 4.7.0 The `$network_id` parameter was added.
 	 *
 	 * @param mixed  $pre_option The default value to return if the option does not exist.
 	 * @param string $option     Option name.
+	 * @param int    $network_id ID of the network.
 	 */
-	$pre = apply_filters( 'pre_site_option_' . $option, false, $option );
+	$pre = apply_filters( "pre_site_option_{$option}", false, $option, $network_id );
 
 	if ( false !== $pre ) {
 		return $pre;
@@ -1125,17 +1131,19 @@ function get_network_option( $network_id, $option, $default = false ) {
 		 *
 		 * @since 3.4.0
 		 * @since 4.4.0 The `$option` parameter was added.
+		 * @since 4.7.0 The `$network_id` parameter was added.
 		 *
-		 * @param mixed  $default The value to return if the site option does not exist
-		 *                        in the database.
-		 * @param string $option  Option name.
+		 * @param mixed  $default    The value to return if the site option does not exist
+		 *                           in the database.
+		 * @param string $option     Option name.
+		 * @param int    $network_id ID of the network.
 		 */
-		return apply_filters( 'default_site_option_' . $option, $default, $option );
+		return apply_filters( "default_site_option_{$option}", $default, $option, $network_id );
 	}
 
 	if ( ! is_multisite() ) {
 		/** This filter is documented in wp-includes/option.php */
-		$default = apply_filters( 'default_site_option_' . $option, $default, $option );
+		$default = apply_filters( 'default_site_option_' . $option, $default, $option, $network_id );
 		$value = get_option( $option, $default );
 	} else {
 		$cache_key = "$network_id:$option";
@@ -1157,7 +1165,7 @@ function get_network_option( $network_id, $option, $default = false ) {
 				wp_cache_set( $notoptions_key, $notoptions, 'site-options' );
 
 				/** This filter is documented in wp-includes/option.php */
-				$value = apply_filters( 'default_site_option_' . $option, $default, $option );
+				$value = apply_filters( 'default_site_option_' . $option, $default, $option, $network_id );
 			}
 		}
 	}
@@ -1169,12 +1177,14 @@ function get_network_option( $network_id, $option, $default = false ) {
 	 *
 	 * @since 2.9.0 As 'site_option_' . $key
 	 * @since 3.0.0
-	 * @since 4.4.0 The `$option` parameter was added
+	 * @since 4.4.0 The `$option` parameter was added.
+	 * @since 4.7.0 The `$network_id` parameter was added.
 	 *
-	 * @param mixed  $value  Value of network option.
-	 * @param string $option Option name.
+	 * @param mixed  $value      Value of network option.
+	 * @param string $option     Option name.
+	 * @param int    $network_id ID of the network.
 	 */
-	return apply_filters( 'site_option_' . $option, $value, $option );
+	return apply_filters( "site_option_{$option}", $value, $option, $network_id );
 }
 
 /**
@@ -1186,8 +1196,7 @@ function get_network_option( $network_id, $option, $default = false ) {
  *
  * @see add_option()
  *
- * @global wpdb   $wpdb
- * @global object $current_site
+ * @global wpdb $wpdb
  *
  * @param int    $network_id ID of the network. Can be null to default to the current network ID.
  * @param string $option     Name of option to add. Expected to not be SQL-escaped.
@@ -1195,7 +1204,7 @@ function get_network_option( $network_id, $option, $default = false ) {
  * @return bool False if option was not added and true if option was added.
  */
 function add_network_option( $network_id, $option, $value ) {
-	global $wpdb, $current_site;
+	global $wpdb;
 
 	if ( $network_id && ! is_numeric( $network_id ) ) {
 		return false;
@@ -1204,8 +1213,8 @@ function add_network_option( $network_id, $option, $value ) {
 	$network_id = (int) $network_id;
 
 	// Fallback to the current network if a network ID is not specified.
-	if ( ! $network_id && is_multisite() ) {
-		$network_id = $current_site->id;
+	if ( ! $network_id ) {
+		$network_id = get_current_network_id();
 	}
 
 	wp_protect_special_option( $option );
@@ -1217,12 +1226,14 @@ function add_network_option( $network_id, $option, $value ) {
 	 *
 	 * @since 2.9.0 As 'pre_add_site_option_' . $key
 	 * @since 3.0.0
-	 * @since 4.4.0 The `$option` parameter was added
+	 * @since 4.4.0 The `$option` parameter was added.
+	 * @since 4.7.0 The `$network_id` parameter was added.
 	 *
-	 * @param mixed  $value  Value of network option.
-	 * @param string $option Option name.
+	 * @param mixed  $value      Value of network option.
+	 * @param string $option     Option name.
+	 * @param int    $network_id ID of the network.
 	 */
-	$value = apply_filters( 'pre_add_site_option_' . $option, $value, $option );
+	$value = apply_filters( "pre_add_site_option_{$option}", $value, $option, $network_id );
 
 	$notoptions_key = "$network_id:notoptions";
 
@@ -1267,21 +1278,25 @@ function add_network_option( $network_id, $option, $value ) {
 		 *
 		 * @since 2.9.0 As "add_site_option_{$key}"
 		 * @since 3.0.0
+		 * @since 4.7.0 The `$network_id` parameter was added.
 		 *
-		 * @param string $option Name of the network option.
-		 * @param mixed  $value  Value of the network option.
+		 * @param string $option     Name of the network option.
+		 * @param mixed  $value      Value of the network option.
+		 * @param int    $network_id ID of the network.
 		 */
-		do_action( 'add_site_option_' . $option, $option, $value );
+		do_action( "add_site_option_{$option}", $option, $value, $network_id );
 
 		/**
 		 * Fires after a network option has been successfully added.
 		 *
 		 * @since 3.0.0
+		 * @since 4.7.0 The `$network_id` parameter was added.
 		 *
-		 * @param string $option Name of the network option.
-		 * @param mixed  $value  Value of the network option.
+		 * @param string $option     Name of the network option.
+		 * @param mixed  $value      Value of the network option.
+		 * @param int    $network_id ID of the network.
 		 */
-		do_action( 'add_site_option', $option, $value );
+		do_action( 'add_site_option', $option, $value, $network_id );
 
 		return true;
 	}
@@ -1296,15 +1311,14 @@ function add_network_option( $network_id, $option, $value ) {
  *
  * @see delete_option()
  *
- * @global wpdb   $wpdb
- * @global object $current_site
+ * @global wpdb $wpdb
  *
  * @param int    $network_id ID of the network. Can be null to default to the current network ID.
  * @param string $option     Name of option to remove. Expected to not be SQL-escaped.
  * @return bool True, if succeed. False, if failure.
  */
 function delete_network_option( $network_id, $option ) {
-	global $wpdb, $current_site;
+	global $wpdb;
 
 	if ( $network_id && ! is_numeric( $network_id ) ) {
 		return false;
@@ -1313,8 +1327,8 @@ function delete_network_option( $network_id, $option ) {
 	$network_id = (int) $network_id;
 
 	// Fallback to the current network if a network ID is not specified.
-	if ( ! $network_id && is_multisite() ) {
-		$network_id = $current_site->id;
+	if ( ! $network_id ) {
+		$network_id = get_current_network_id();
 	}
 
 	/**
@@ -1323,11 +1337,13 @@ function delete_network_option( $network_id, $option ) {
 	 * The dynamic portion of the hook name, `$option`, refers to the option name.
 	 *
 	 * @since 3.0.0
-	 * @since 4.4.0 The `$option` parameter was added
+	 * @since 4.4.0 The `$option` parameter was added.
+	 * @since 4.7.0 The `$network_id` parameter was added.
 	 *
-	 * @param string $option Option name.
+	 * @param string $option     Option name.
+	 * @param int    $network_id ID of the network.
 	 */
-	do_action( 'pre_delete_site_option_' . $option, $option );
+	do_action( "pre_delete_site_option_{$option}", $option, $network_id );
 
 	if ( ! is_multisite() ) {
 		$result = delete_option( $option );
@@ -1351,19 +1367,23 @@ function delete_network_option( $network_id, $option ) {
 		 *
 		 * @since 2.9.0 As "delete_site_option_{$key}"
 		 * @since 3.0.0
+		 * @since 4.7.0 The `$network_id` parameter was added.
 		 *
-		 * @param string $option Name of the network option.
+		 * @param string $option     Name of the network option.
+		 * @param int    $network_id ID of the network.
 		 */
-		do_action( 'delete_site_option_' . $option, $option );
+		do_action( "delete_site_option_{$option}", $option, $network_id );
 
 		/**
 		 * Fires after a network option has been deleted.
 		 *
 		 * @since 3.0.0
+		 * @since 4.7.0 The `$network_id` parameter was added.
 		 *
-		 * @param string $option Name of the network option.
+		 * @param string $option     Name of the network option.
+		 * @param int    $network_id ID of the network.
 		 */
-		do_action( 'delete_site_option', $option );
+		do_action( 'delete_site_option', $option, $network_id );
 
 		return true;
 	}
@@ -1378,8 +1398,7 @@ function delete_network_option( $network_id, $option ) {
  *
  * @see update_option()
  *
- * @global wpdb   $wpdb
- * @global object $current_site
+ * @global wpdb $wpdb
  *
  * @param int      $network_id ID of the network. Can be null to default to the current network ID.
  * @param string   $option     Name of option. Expected to not be SQL-escaped.
@@ -1387,7 +1406,7 @@ function delete_network_option( $network_id, $option ) {
  * @return bool False if value was not updated and true if value was updated.
  */
 function update_network_option( $network_id, $option, $value ) {
-	global $wpdb, $current_site;
+	global $wpdb;
 
 	if ( $network_id && ! is_numeric( $network_id ) ) {
 		return false;
@@ -1396,8 +1415,8 @@ function update_network_option( $network_id, $option, $value ) {
 	$network_id = (int) $network_id;
 
 	// Fallback to the current network if a network ID is not specified.
-	if ( ! $network_id && is_multisite() ) {
-		$network_id = $current_site->id;
+	if ( ! $network_id ) {
+		$network_id = get_current_network_id();
 	}
 
 	wp_protect_special_option( $option );
@@ -1411,13 +1430,15 @@ function update_network_option( $network_id, $option, $value ) {
 	 *
 	 * @since 2.9.0 As 'pre_update_site_option_' . $key
 	 * @since 3.0.0
-	 * @since 4.4.0 The `$option` parameter was added
+	 * @since 4.4.0 The `$option` parameter was added.
+	 * @since 4.7.0 The `$network_id` parameter was added.
 	 *
-	 * @param mixed  $value     New value of the network option.
-	 * @param mixed  $old_value Old value of the network option.
-	 * @param string $option    Option name.
+	 * @param mixed  $value      New value of the network option.
+	 * @param mixed  $old_value  Old value of the network option.
+	 * @param string $option     Option name.
+	 * @param int    $network_id ID of the network.
 	 */
-	$value = apply_filters( 'pre_update_site_option_' . $option, $value, $old_value, $option );
+	$value = apply_filters( "pre_update_site_option_{$option}", $value, $old_value, $option, $network_id );
 
 	if ( $value === $old_value ) {
 		return false;
@@ -1457,23 +1478,27 @@ function update_network_option( $network_id, $option, $value ) {
 		 *
 		 * @since 2.9.0 As "update_site_option_{$key}"
 		 * @since 3.0.0
+		 * @since 4.7.0 The `$network_id` parameter was added.
 		 *
-		 * @param string $option    Name of the network option.
-		 * @param mixed  $value     Current value of the network option.
-		 * @param mixed  $old_value Old value of the network option.
+		 * @param string $option     Name of the network option.
+		 * @param mixed  $value      Current value of the network option.
+		 * @param mixed  $old_value  Old value of the network option.
+		 * @param int    $network_id ID of the network.
 		 */
-		do_action( 'update_site_option_' . $option, $option, $value, $old_value );
+		do_action( "update_site_option_{$option}", $option, $value, $old_value, $network_id );
 
 		/**
 		 * Fires after the value of a network option has been successfully updated.
 		 *
 		 * @since 3.0.0
+		 * @since 4.7.0 The `$network_id` parameter was added.
 		 *
-		 * @param string $option    Name of the network option.
-		 * @param mixed  $value     Current value of the network option.
-		 * @param mixed  $old_value Old value of the network option.
+		 * @param string $option     Name of the network option.
+		 * @param mixed  $value      Current value of the network option.
+		 * @param mixed  $old_value  Old value of the network option.
+		 * @param int    $network_id ID of the network.
 		 */
-		do_action( 'update_site_option', $option, $value, $old_value );
+		do_action( 'update_site_option', $option, $value, $old_value, $network_id );
 
 		return true;
 	}
@@ -1500,7 +1525,7 @@ function delete_site_transient( $transient ) {
 	 *
 	 * @param string $transient Transient name.
 	 */
-	do_action( 'delete_site_transient_' . $transient, $transient );
+	do_action( "delete_site_transient_{$transient}", $transient );
 
 	if ( wp_using_ext_object_cache() ) {
 		$result = wp_cache_delete( $transient, 'site-transient' );
@@ -1557,7 +1582,7 @@ function get_site_transient( $transient ) {
 	 *                                   of the transient, and return the returned value.
 	 * @param string $transient          Transient name.
 	 */
-	$pre = apply_filters( 'pre_site_transient_' . $transient, false, $transient );
+	$pre = apply_filters( "pre_site_transient_{$transient}", false, $transient );
 
 	if ( false !== $pre )
 		return $pre;
@@ -1593,7 +1618,7 @@ function get_site_transient( $transient ) {
 	 * @param mixed  $value     Value of site transient.
 	 * @param string $transient Transient name.
 	 */
-	return apply_filters( 'site_transient_' . $transient, $value, $transient );
+	return apply_filters( "site_transient_{$transient}", $value, $transient );
 }
 
 /**
@@ -1625,7 +1650,7 @@ function set_site_transient( $transient, $value, $expiration = 0 ) {
 	 * @param mixed  $value     New value of site transient.
 	 * @param string $transient Transient name.
 	 */
-	$value = apply_filters( 'pre_set_site_transient_' . $transient, $value, $transient );
+	$value = apply_filters( "pre_set_site_transient_{$transient}", $value, $transient );
 
 	$expiration = (int) $expiration;
 
@@ -1640,7 +1665,7 @@ function set_site_transient( $transient, $value, $expiration = 0 ) {
 	 * @param mixed  $value      New value of site transient.
 	 * @param string $transient  Transient name.
 	 */
-	$expiration = apply_filters( 'expiration_of_site_transient_' . $transient, $expiration, $value, $transient );
+	$expiration = apply_filters( "expiration_of_site_transient_{$transient}", $expiration, $value, $transient );
 
 	if ( wp_using_ext_object_cache() ) {
 		$result = wp_cache_set( $transient, $value, 'site-transient', $expiration );
@@ -1671,7 +1696,7 @@ function set_site_transient( $transient, $value, $expiration = 0 ) {
 		 * @param int    $expiration Time until expiration in seconds.
 		 * @param string $transient  Transient name.
 		 */
-		do_action( 'set_site_transient_' . $transient, $value, $expiration, $transient );
+		do_action( "set_site_transient_{$transient}", $value, $expiration, $transient );
 
 		/**
 		 * Fires after the value for a site transient has been set.
@@ -1686,3 +1711,302 @@ function set_site_transient( $transient, $value, $expiration = 0 ) {
 	}
 	return $result;
 }
+
+/**
+ * Register default settings available in WordPress.
+ *
+ * The settings registered here are primarily useful for the REST API, so this
+ * does not encompass all settings available in WordPress.
+ *
+ * @since 4.7.0
+ */
+function register_initial_settings() {
+	register_setting( 'general', 'blogname', array(
+		'show_in_rest' => array(
+			'name' => 'title',
+		),
+		'type'         => 'string',
+		'description'  => __( 'Site title.' ),
+	) );
+
+	register_setting( 'general', 'blogdescription', array(
+		'show_in_rest' => array(
+			'name' => 'description',
+		),
+		'type'         => 'string',
+		'description'  => __( 'Site tagline.' ),
+	) );
+
+	if ( ! is_multisite() ) {
+		register_setting( 'general', 'siteurl', array(
+			'show_in_rest' => array(
+				'name'    => 'url',
+				'schema'  => array(
+					'format' => 'uri',
+				),
+			),
+			'type'         => 'string',
+			'description'  => __( 'Site URL.' ),
+		) );
+	}
+
+	if ( ! is_multisite() ) {
+		register_setting( 'general', 'admin_email', array(
+			'show_in_rest' => array(
+				'name'    => 'email',
+				'schema'  => array(
+					'format' => 'email',
+				),
+			),
+			'type'         => 'string',
+			'description'  => __( 'This address is used for admin purposes, like new user notification.' ),
+		) );
+	}
+
+	register_setting( 'general', 'timezone_string', array(
+		'show_in_rest' => array(
+			'name' => 'timezone',
+		),
+		'type'         => 'string',
+		'description'  => __( 'A city in the same timezone as you.' ),
+	) );
+
+	register_setting( 'general', 'date_format', array(
+		'show_in_rest' => true,
+		'type'         => 'string',
+		'description'  => __( 'A date format for all date strings.' ),
+	) );
+
+	register_setting( 'general', 'time_format', array(
+		'show_in_rest' => true,
+		'type'         => 'string',
+		'description'  => __( 'A time format for all time strings.' ),
+	) );
+
+	register_setting( 'general', 'start_of_week', array(
+		'show_in_rest' => true,
+		'type'         => 'integer',
+		'description'  => __( 'A day number of the week that the week should start on.' ),
+	) );
+
+	register_setting( 'general', 'WPLANG', array(
+		'show_in_rest' => array(
+			'name' => 'language',
+		),
+		'type'         => 'string',
+		'description'  => __( 'WordPress locale code.' ),
+		'default'      => 'en_US',
+	) );
+
+	register_setting( 'writing', 'use_smilies', array(
+		'show_in_rest' => true,
+		'type'         => 'boolean',
+		'description'  => __( 'Convert emoticons like :-) and :-P to graphics on display.' ),
+		'default'      => true,
+	) );
+
+	register_setting( 'writing', 'default_category', array(
+		'show_in_rest' => true,
+		'type'         => 'integer',
+		'description'  => __( 'Default post category.' ),
+	) );
+
+	register_setting( 'writing', 'default_post_format', array(
+		'show_in_rest' => true,
+		'type'         => 'string',
+		'description'  => __( 'Default post format.' ),
+	) );
+
+	register_setting( 'reading', 'posts_per_page', array(
+		'show_in_rest' => true,
+		'type'         => 'integer',
+		'description'  => __( 'Blog pages show at most.' ),
+		'default'      => 10,
+	) );
+
+	register_setting( 'discussion', 'default_ping_status', array(
+		'show_in_rest' => array(
+			'schema'   => array(
+				'enum' => array( 'open', 'closed' ),
+			),
+		),
+		'type'         => 'string',
+		'description'  => __( 'Allow link notifications from other blogs (pingbacks and trackbacks) on new articles.' ),
+	) );
+
+	register_setting( 'discussion', 'default_comment_status', array(
+		'show_in_rest' => array(
+			'schema'   => array(
+				'enum' => array( 'open', 'closed' ),
+			),
+		),
+		'type'         => 'string',
+		'description'  => __( 'Allow people to post comments on new articles.' ),
+	) );
+
+}
+
+/**
+ * Register a setting and its data.
+ *
+ * @since 2.7.0
+ * @since 4.7.0 `$args` can be passed to set flags on the setting, similar to `register_meta()`.
+ *
+ * @global array $new_whitelist_options
+ * @global array $wp_registered_settings
+ *
+ * @param string $option_group A settings group name. Should correspond to a whitelisted option key name.
+ * 	Default whitelisted option key names include "general," "discussion," and "reading," among others.
+ * @param string $option_name The name of an option to sanitize and save.
+ * @param array  $args {
+ *     Data used to describe the setting when registered.
+ *
+ *     @type string   $type              The type of data associated with this setting.
+ *     @type string   $description       A description of the data attached to this setting.
+ *     @type callable $sanitize_callback A callback function that sanitizes the option's value.
+ *     @type bool     $show_in_rest      Whether data associated with this setting should be included in the REST API.
+ *     @type mixed    $default           Default value when calling `get_option()`.
+ * }
+ */
+function register_setting( $option_group, $option_name, $args = array() ) {
+	global $new_whitelist_options, $wp_registered_settings;
+
+	$defaults = array(
+		'type'              => 'string',
+		'group'             => $option_group,
+		'description'       => '',
+		'sanitize_callback' => null,
+		'show_in_rest'      => false,
+	);
+
+	// Back-compat: old sanitize callback is added.
+	if ( is_callable( $args ) ) {
+		$args = array(
+			'sanitize_callback' => $args,
+		);
+	}
+
+	/**
+	 * Filters the registration arguments when registering a setting.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array  $args         Array of setting registration arguments.
+	 * @param array  $defaults     Array of default arguments.
+	 * @param string $option_group Setting group.
+	 * @param string $option_name  Setting name.
+	 */
+	$args = apply_filters( 'register_setting_args', $args, $defaults, $option_group, $option_name );
+	$args = wp_parse_args( $args, $defaults );
+
+	if ( ! is_array( $wp_registered_settings ) ) {
+		$wp_registered_settings = array();
+	}
+
+	if ( 'misc' == $option_group ) {
+		_deprecated_argument( __FUNCTION__, '3.0.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'misc' ) );
+		$option_group = 'general';
+	}
+
+	if ( 'privacy' == $option_group ) {
+		_deprecated_argument( __FUNCTION__, '3.5.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'privacy' ) );
+		$option_group = 'reading';
+	}
+
+	$new_whitelist_options[ $option_group ][] = $option_name;
+	if ( ! empty( $args['sanitize_callback'] ) ) {
+		add_filter( "sanitize_option_{$option_name}", $args['sanitize_callback'] );
+	}
+	if ( array_key_exists( 'default', $args ) ) {
+		add_filter( "default_option_{$option_name}", 'filter_default_option', 10, 3 );
+	}
+
+	$wp_registered_settings[ $option_name ] = $args;
+}
+
+/**
+ * Unregister a setting.
+ *
+ * @since 2.7.0
+ * @since 4.7.0 `$sanitize_callback` was deprecated. The callback from `register_setting()` is now used instead.
+ *
+ * @global array $new_whitelist_options
+ *
+ * @param string   $option_group      The settings group name used during registration.
+ * @param string   $option_name       The name of the option to unregister.
+ * @param callable $deprecated        Deprecated.
+ */
+function unregister_setting( $option_group, $option_name, $deprecated = '' ) {
+	global $new_whitelist_options, $wp_registered_settings;
+
+	if ( 'misc' == $option_group ) {
+		_deprecated_argument( __FUNCTION__, '3.0.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'misc' ) );
+		$option_group = 'general';
+	}
+
+	if ( 'privacy' == $option_group ) {
+		_deprecated_argument( __FUNCTION__, '3.5.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'privacy' ) );
+		$option_group = 'reading';
+	}
+
+	$pos = array_search( $option_name, (array) $new_whitelist_options[ $option_group ] );
+	if ( $pos !== false ) {
+		unset( $new_whitelist_options[ $option_group ][ $pos ] );
+	}
+	if ( '' !== $deprecated ) {
+		_deprecated_argument( __FUNCTION__, '4.7.0', __( '$sanitize_callback is deprecated. The callback from register_setting() is used instead.' ) );
+		remove_filter( "sanitize_option_{$option_name}", $deprecated );
+	}
+
+	if ( isset( $wp_registered_settings[ $option_name ] ) ) {
+		// Remove the sanitize callback if one was set during registration.
+		if ( ! empty( $wp_registered_settings[ $option_name ]['sanitize_callback'] ) ) {
+			remove_filter( "sanitize_option_{$option_name}", $wp_registered_settings[ $option_name ]['sanitize_callback'] );
+		}
+
+		unset( $wp_registered_settings[ $option_name ] );
+	}
+}
+
+/**
+ * Retrieves an array of registered settings.
+ *
+ * @since 4.7.0
+ *
+ * @return array List of registered settings, keyed by option name.
+ */
+function get_registered_settings() {
+	global $wp_registered_settings;
+
+	if ( ! is_array( $wp_registered_settings ) ) {
+		return array();
+	}
+
+	return $wp_registered_settings;
+}
+
+/**
+ * Filter the default value for the option.
+ *
+ * For settings which register a default setting in `register_setting()`, this
+ * function is added as a filter to `default_option_{$option}`.
+ *
+ * @since 4.7.0
+ *
+ * @param mixed $default Existing default value to return.
+ * @param string $option Option name.
+ * @param bool $passed_default Was `get_option()` passed a default value?
+ * @return mixed Filtered default value.
+ */
+function filter_default_option( $default, $option, $passed_default ) {
+	if ( $passed_default ) {
+		return $default;
+	}
+
+	$registered = get_registered_settings();
+	if ( empty( $registered[ $option ] ) ) {
+		return $default;
+	}
+
+	return $registered[ $option ]['default'];
+}
diff --git a/wp-includes/pluggable.php b/wp-includes/pluggable.php
index 5c7747774..0c5106221 100644
--- a/wp-includes/pluggable.php
+++ b/wp-includes/pluggable.php
@@ -472,16 +472,17 @@ function wp_mail( $to, $subject, $message, $headers = '', $attachments = array()
 	} catch ( phpmailerException $e ) {
 
 		$mail_error_data = compact( 'to', 'subject', 'message', 'headers', 'attachments' );
+		$mail_error_data['phpmailer_exception_code'] = $e->getCode();
 
 		/**
 		 * Fires after a phpmailerException is caught.
 		 *
 		 * @since 4.4.0
 		 *
-		 * @param WP_Error $error A WP_Error object with the phpmailerException code, message, and an array
+		 * @param WP_Error $error A WP_Error object with the phpmailerException message, and an array
 		 *                        containing the mail recipient, subject, message, headers, and attachments.
 		 */
- 		do_action( 'wp_mail_failed', new WP_Error( $e->getCode(), $e->getMessage(), $mail_error_data ) );
+		do_action( 'wp_mail_failed', new WP_Error( 'wp_mail_failed', $e->getMessage(), $mail_error_data ) );
 
 		return false;
 	}
@@ -603,7 +604,7 @@ function wp_validate_auth_cookie($cookie = '', $scheme = '') {
 	$expired = $expiration = $cookie_elements['expiration'];
 
 	// Allow a grace period for POST and Ajax requests
-	if ( defined('DOING_AJAX') || 'POST' == $_SERVER['REQUEST_METHOD'] ) {
+	if ( wp_doing_ajax() || 'POST' == $_SERVER['REQUEST_METHOD'] ) {
 		$expired += HOUR_IN_SECONDS;
 	}
 
@@ -1081,6 +1082,10 @@ if ( !function_exists('check_ajax_referer') ) :
  *                   0-12 hours ago, 2 if the nonce is valid and generated between 12-24 hours ago.
  */
 function check_ajax_referer( $action = -1, $query_arg = false, $die = true ) {
+	if ( -1 == $action ) {
+		_doing_it_wrong( __FUNCTION__, __( 'You should specify a nonce action to be verified by using the first parameter.' ), '4.7' );
+	}
+
 	$nonce = '';
 
 	if ( $query_arg && isset( $_REQUEST[ $query_arg ] ) )
@@ -1104,8 +1109,8 @@ function check_ajax_referer( $action = -1, $query_arg = false, $die = true ) {
 	do_action( 'check_ajax_referer', $action, $result );
 
 	if ( $die && false === $result ) {
-		if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
-			wp_die( -1 );
+		if ( wp_doing_ajax() ) {
+			wp_die( -1, 403 );
 		} else {
 			die( '-1' );
 		}
@@ -1128,7 +1133,7 @@ if ( !function_exists('wp_redirect') ) :
  * Exiting can also be selectively manipulated by using wp_redirect() as a conditional
  * in conjunction with the {@see 'wp_redirect'} and {@see 'wp_redirect_location'} hooks:
  *
- *     if ( wp_redirect( $url ) {
+ *     if ( wp_redirect( $url ) ) {
  *         exit;
  *     }
  *
@@ -1414,6 +1419,8 @@ function wp_notify_postauthor( $comment_id, $deprecated = null ) {
 		$emails = array_flip( $emails );
 	}
 
+	$switched_locale = switch_to_locale( get_locale() );
+
 	$comment_author_domain = @gethostbyaddr($comment->comment_author_IP);
 
 	// The blogname option is escaped with esc_html on the way into the database in sanitize_option
@@ -1423,8 +1430,9 @@ function wp_notify_postauthor( $comment_id, $deprecated = null ) {
 
 	switch ( $comment->comment_type ) {
 		case 'trackback':
+			/* translators: 1: Post title */
 			$notify_message  = sprintf( __( 'New trackback on your post "%s"' ), $post->post_title ) . "\r\n";
-			/* translators: 1: website name, 2: website IP, 3: website hostname */
+			/* translators: 1: Trackback/pingback website name, 2: website IP, 3: website hostname */
 			$notify_message .= sprintf( __('Website: %1$s (IP: %2$s, %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
 			$notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
 			$notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
@@ -1433,8 +1441,9 @@ function wp_notify_postauthor( $comment_id, $deprecated = null ) {
 			$subject = sprintf( __('[%1$s] Trackback: "%2$s"'), $blogname, $post->post_title );
 			break;
 		case 'pingback':
+			/* translators: 1: Post title */
 			$notify_message  = sprintf( __( 'New pingback on your post "%s"' ), $post->post_title ) . "\r\n";
-			/* translators: 1: website name, 2: website IP, 3: website hostname */
+			/* translators: 1: Trackback/pingback website name, 2: website IP, 3: website hostname */
 			$notify_message .= sprintf( __('Website: %1$s (IP: %2$s, %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
 			$notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
 			$notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
@@ -1518,6 +1527,10 @@ function wp_notify_postauthor( $comment_id, $deprecated = null ) {
 		@wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers );
 	}
 
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
+
 	return true;
 }
 endif;
@@ -1565,6 +1578,8 @@ function wp_notify_moderator($comment_id) {
 			$emails[] = $user->user_email;
 	}
 
+	$switched_locale = switch_to_locale( get_locale() );
+
 	$comment_author_domain = @gethostbyaddr($comment->comment_author_IP);
 	$comments_waiting = $wpdb->get_var("SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'");
 
@@ -1575,44 +1590,60 @@ function wp_notify_moderator($comment_id) {
 
 	switch ( $comment->comment_type ) {
 		case 'trackback':
+			/* translators: 1: Post title */
 			$notify_message  = sprintf( __('A new trackback on the post "%s" is waiting for your approval'), $post->post_title ) . "\r\n";
 			$notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n";
-			/* translators: 1: website name, 2: website IP, 3: website hostname */
+			/* translators: 1: Trackback/pingback website name, 2: website IP, 3: website hostname */
 			$notify_message .= sprintf( __( 'Website: %1$s (IP: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+			/* translators: 1: Trackback/pingback/comment author URL */
 			$notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
 			$notify_message .= __('Trackback excerpt: ') . "\r\n" . $comment_content . "\r\n\r\n";
 			break;
 		case 'pingback':
+			/* translators: 1: Post title */
 			$notify_message  = sprintf( __('A new pingback on the post "%s" is waiting for your approval'), $post->post_title ) . "\r\n";
 			$notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n";
-			/* translators: 1: website name, 2: website IP, 3: website hostname */
+			/* translators: 1: Trackback/pingback website name, 2: website IP, 3: website hostname */
 			$notify_message .= sprintf( __( 'Website: %1$s (IP: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+			/* translators: 1: Trackback/pingback/comment author URL */
 			$notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
 			$notify_message .= __('Pingback excerpt: ') . "\r\n" . $comment_content . "\r\n\r\n";
 			break;
 		default: // Comments
+			/* translators: 1: Post title */
 			$notify_message  = sprintf( __('A new comment on the post "%s" is waiting for your approval'), $post->post_title ) . "\r\n";
 			$notify_message .= get_permalink($comment->comment_post_ID) . "\r\n\r\n";
+			/* translators: 1: Comment author name, 2: comment author's IP, 3: comment author IP's hostname */
 			$notify_message .= sprintf( __( 'Author: %1$s (IP: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+			/* translators: 1: Comment author URL */
 			$notify_message .= sprintf( __( 'Email: %s' ), $comment->comment_author_email ) . "\r\n";
+			/* translators: 1: Trackback/pingback/comment author URL */
 			$notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
+			/* translators: 1: Comment text */
 			$notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
 			break;
 	}
 
+	/* translators: Comment moderation. 1: Comment action URL */
 	$notify_message .= sprintf( __( 'Approve it: %s' ), admin_url( "comment.php?action=approve&c={$comment_id}#wpbody-content" ) ) . "\r\n";
 
-	if ( EMPTY_TRASH_DAYS )
+	if ( EMPTY_TRASH_DAYS ) {
+		/* translators: Comment moderation. 1: Comment action URL */
 		$notify_message .= sprintf( __( 'Trash it: %s' ), admin_url( "comment.php?action=trash&c={$comment_id}#wpbody-content" ) ) . "\r\n";
-	else
+	} else {
+		/* translators: Comment moderation. 1: Comment action URL */
 		$notify_message .= sprintf( __( 'Delete it: %s' ), admin_url( "comment.php?action=delete&c={$comment_id}#wpbody-content" ) ) . "\r\n";
+	}
 
+	/* translators: Comment moderation. 1: Comment action URL */
 	$notify_message .= sprintf( __( 'Spam it: %s' ), admin_url( "comment.php?action=spam&c={$comment_id}#wpbody-content" ) ) . "\r\n";
 
+	/* translators: Comment moderation. 1: Number of comments awaiting approval */
 	$notify_message .= sprintf( _n('Currently %s comment is waiting for approval. Please visit the moderation panel:',
  		'Currently %s comments are waiting for approval. Please visit the moderation panel:', $comments_waiting), number_format_i18n($comments_waiting) ) . "\r\n";
 	$notify_message .= admin_url( "edit-comments.php?comment_status=moderated#wpbody-content" ) . "\r\n";
 
+	/* translators: Comment moderation notification email subject. 1: Site name, 2: Post title */
 	$subject = sprintf( __('[%1$s] Please moderate: "%2$s"'), $blogname, $post->post_title );
 	$message_headers = '';
 
@@ -1660,6 +1691,10 @@ function wp_notify_moderator($comment_id) {
 		@wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers );
 	}
 
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
+
 	return true;
 }
 endif;
@@ -1719,14 +1754,19 @@ function wp_new_user_notification( $user_id, $deprecated = null, $notify = '' )
 	$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
 
 	if ( 'user' !== $notify ) {
+		$switched_locale = switch_to_locale( get_locale() );
 		$message  = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "\r\n\r\n";
 		$message .= sprintf( __( 'Username: %s' ), $user->user_login ) . "\r\n\r\n";
 		$message .= sprintf( __( 'Email: %s' ), $user->user_email ) . "\r\n";
 
 		@wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] New User Registration' ), $blogname ), $message );
+
+		if ( $switched_locale ) {
+			restore_previous_locale();
+		}
 	}
 
-	// `$deprecated was pre-4.3 `$plaintext_pass`. An empty `$plaintext_pass` didn't sent a user notifcation.
+	// `$deprecated was pre-4.3 `$plaintext_pass`. An empty `$plaintext_pass` didn't sent a user notification.
 	if ( 'admin' === $notify || ( empty( $deprecated ) && empty( $notify ) ) ) {
 		return;
 	}
@@ -1739,12 +1779,13 @@ function wp_new_user_notification( $user_id, $deprecated = null, $notify = '' )
 
 	// Now insert the key, hashed, into the DB.
 	if ( empty( $wp_hasher ) ) {
-		require_once ABSPATH . WPINC . '/class-phpass.php';
 		$wp_hasher = new PasswordHash( 8, true );
 	}
 	$hashed = time() . ':' . $wp_hasher->HashPassword( $key );
 	$wpdb->update( $wpdb->users, array( 'user_activation_key' => $hashed ), array( 'user_login' => $user->user_login ) );
 
+	$switched_locale = switch_to_locale( get_user_locale( $user ) );
+
 	$message = sprintf(__('Username: %s'), $user->user_login) . "\r\n\r\n";
 	$message .= __('To set your password, visit the following address:') . "\r\n\r\n";
 	$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . ">\r\n\r\n";
@@ -1752,6 +1793,10 @@ function wp_new_user_notification( $user_id, $deprecated = null, $notify = '' )
 	$message .= wp_login_url() . "\r\n";
 
 	wp_mail($user->user_email, sprintf(__('[%s] Your username and password info'), $blogname), $message);
+
+	if ( $switched_locale ) {
+		restore_previous_locale();
+	}
 }
 endif;
 
@@ -2014,7 +2059,6 @@ function wp_hash_password($password) {
 	global $wp_hasher;
 
 	if ( empty($wp_hasher) ) {
-		require_once( ABSPATH . WPINC . '/class-phpass.php');
 		// By default, use the portable hash from phpass
 		$wp_hasher = new PasswordHash(8, true);
 	}
@@ -2074,7 +2118,6 @@ function wp_check_password($password, $hash, $user_id = '') {
 	// If the stored hash is longer than an MD5, presume the
 	// new style phpass portable hash.
 	if ( empty($wp_hasher) ) {
-		require_once( ABSPATH . WPINC . '/class-phpass.php');
 		// By default, use the portable hash from phpass
 		$wp_hasher = new PasswordHash(8, true);
 	}
diff --git a/wp-includes/plugin.php b/wp-includes/plugin.php
index ca4985f1f..86f1c3b31 100644
--- a/wp-includes/plugin.php
+++ b/wp-includes/plugin.php
@@ -14,23 +14,28 @@
  * Also see the {@link https://codex.wordpress.org/Plugin_API Plugin API} for
  * more information and examples on how to use a lot of these functions.
  *
+ * This file should have no external dependencies.
+ *
  * @package WordPress
  * @subpackage Plugin
  * @since 1.5.0
  */
 
 // Initialize the filter globals.
-global $wp_filter, $wp_actions, $merged_filters, $wp_current_filter;
+require( dirname( __FILE__ ) . '/class-wp-hook.php' );
+
+/** @var WP_Hook[] $wp_filter */
+global $wp_filter, $wp_actions, $wp_current_filter;
 
-if ( ! isset( $wp_filter ) )
+if ( $wp_filter ) {
+	$wp_filter = WP_Hook::build_preinitialized_hooks( $wp_filter );
+} else {
 	$wp_filter = array();
+}
 
 if ( ! isset( $wp_actions ) )
 	$wp_actions = array();
 
-if ( ! isset( $merged_filters ) )
-	$merged_filters = array();
-
 if ( ! isset( $wp_current_filter ) )
 	$wp_current_filter = array();
 
@@ -87,8 +92,6 @@ if ( ! isset( $wp_current_filter ) )
  * @since 0.71
  *
  * @global array $wp_filter      A multidimensional array of all hooks and the callbacks hooked to them.
- * @global array $merged_filters Tracks the tags that need to be merged for later. If the hook is added,
- *                               it doesn't need to run through that process.
  *
  * @param string   $tag             The name of the filter to hook the $function_to_add callback to.
  * @param callable $function_to_add The callback to be run when the filter is applied.
@@ -101,11 +104,11 @@ if ( ! isset( $wp_current_filter ) )
  * @return true
  */
 function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1 ) {
-	global $wp_filter, $merged_filters;
-
-	$idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
-	$wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args);
-	unset( $merged_filters[ $tag ] );
+	global $wp_filter;
+	if ( ! isset( $wp_filter[ $tag ] ) ) {
+		$wp_filter[ $tag ] = new WP_Hook();
+	}
+	$wp_filter[ $tag ]->add_filter( $tag, $function_to_add, $priority, $accepted_args );
 	return true;
 }
 
@@ -126,38 +129,13 @@ function add_filter( $tag, $function_to_add, $priority = 10, $accepted_args = 1
  *                   return value.
  */
 function has_filter($tag, $function_to_check = false) {
-	// Don't reset the internal array pointer
-	$wp_filter = $GLOBALS['wp_filter'];
-
-	$has = ! empty( $wp_filter[ $tag ] );
-
-	// Make sure at least one priority has a filter callback
-	if ( $has ) {
-		$exists = false;
-		foreach ( $wp_filter[ $tag ] as $callbacks ) {
-			if ( ! empty( $callbacks ) ) {
-				$exists = true;
-				break;
-			}
-		}
-
-		if ( ! $exists ) {
-			$has = false;
-		}
-	}
-
-	if ( false === $function_to_check || false === $has )
-		return $has;
+	global $wp_filter;
 
-	if ( !$idx = _wp_filter_build_unique_id($tag, $function_to_check, false) )
+	if ( ! isset( $wp_filter[ $tag ] ) ) {
 		return false;
-
-	foreach ( (array) array_keys($wp_filter[$tag]) as $priority ) {
-		if ( isset($wp_filter[$tag][$priority][$idx]) )
-			return $priority;
 	}
 
-	return false;
+	return $wp_filter[ $tag ]->has_filter( $tag, $function_to_check );
 }
 
 /**
@@ -188,7 +166,6 @@ function has_filter($tag, $function_to_check = false) {
  * @since 0.71
  *
  * @global array $wp_filter         Stores all of the filters.
- * @global array $merged_filters    Merges the filter hooks using this function.
  * @global array $wp_current_filter Stores the list of current filters with the current one last.
  *
  * @param string $tag     The name of the filter hook.
@@ -197,7 +174,7 @@ function has_filter($tag, $function_to_check = false) {
  * @return mixed The filtered value after all hooked functions are applied to it.
  */
 function apply_filters( $tag, $value ) {
-	global $wp_filter, $merged_filters, $wp_current_filter;
+	global $wp_filter, $wp_current_filter;
 
 	$args = array();
 
@@ -217,29 +194,17 @@ function apply_filters( $tag, $value ) {
 	if ( !isset($wp_filter['all']) )
 		$wp_current_filter[] = $tag;
 
-	// Sort.
-	if ( !isset( $merged_filters[ $tag ] ) ) {
-		ksort($wp_filter[$tag]);
-		$merged_filters[ $tag ] = true;
-	}
-
-	reset( $wp_filter[ $tag ] );
-
 	if ( empty($args) )
 		$args = func_get_args();
 
-	do {
-		foreach ( (array) current($wp_filter[$tag]) as $the_ )
-			if ( !is_null($the_['function']) ){
-				$args[1] = $value;
-				$value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args']));
-			}
+	// don't pass the tag name to WP_Hook
+	array_shift( $args );
 
-	} while ( next($wp_filter[$tag]) !== false );
+	$filtered = $wp_filter[ $tag ]->apply_filters( $value, $args );
 
 	array_pop( $wp_current_filter );
 
-	return $value;
+	return $filtered;
 }
 
 /**
@@ -251,7 +216,6 @@ function apply_filters( $tag, $value ) {
  * functions hooked to `$tag` are supplied using an array.
  *
  * @global array $wp_filter         Stores all of the filters
- * @global array $merged_filters    Merges the filter hooks using this function.
  * @global array $wp_current_filter Stores the list of current filters with the current one last
  *
  * @param string $tag  The name of the filter hook.
@@ -259,7 +223,7 @@ function apply_filters( $tag, $value ) {
  * @return mixed The filtered value after all hooked functions are applied to it.
  */
 function apply_filters_ref_array($tag, $args) {
-	global $wp_filter, $merged_filters, $wp_current_filter;
+	global $wp_filter, $wp_current_filter;
 
 	// Do 'all' actions first
 	if ( isset($wp_filter['all']) ) {
@@ -277,24 +241,11 @@ function apply_filters_ref_array($tag, $args) {
 	if ( !isset($wp_filter['all']) )
 		$wp_current_filter[] = $tag;
 
-	// Sort
-	if ( !isset( $merged_filters[ $tag ] ) ) {
-		ksort($wp_filter[$tag]);
-		$merged_filters[ $tag ] = true;
-	}
-
-	reset( $wp_filter[ $tag ] );
-
-	do {
-		foreach ( (array) current($wp_filter[$tag]) as $the_ )
-			if ( !is_null($the_['function']) )
-				$args[0] = call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
-
-	} while ( next($wp_filter[$tag]) !== false );
+	$filtered = $wp_filter[ $tag ]->apply_filters( $args[0], $args );
 
 	array_pop( $wp_current_filter );
 
-	return $args[0];
+	return $filtered;
 }
 
 /**
@@ -311,7 +262,6 @@ function apply_filters_ref_array($tag, $args) {
  * @since 1.2.0
  *
  * @global array $wp_filter         Stores all of the filters
- * @global array $merged_filters    Merges the filter hooks using this function.
  *
  * @param string   $tag                The filter hook to which the function to be removed is hooked.
  * @param callable $function_to_remove The name of the function which should be removed.
@@ -319,19 +269,14 @@ function apply_filters_ref_array($tag, $args) {
  * @return bool    Whether the function existed before it was removed.
  */
 function remove_filter( $tag, $function_to_remove, $priority = 10 ) {
-	$function_to_remove = _wp_filter_build_unique_id( $tag, $function_to_remove, $priority );
-
-	$r = isset( $GLOBALS['wp_filter'][ $tag ][ $priority ][ $function_to_remove ] );
+	global $wp_filter;
 
-	if ( true === $r ) {
-		unset( $GLOBALS['wp_filter'][ $tag ][ $priority ][ $function_to_remove ] );
-		if ( empty( $GLOBALS['wp_filter'][ $tag ][ $priority ] ) ) {
-			unset( $GLOBALS['wp_filter'][ $tag ][ $priority ] );
+	$r = false;
+	if ( isset( $wp_filter[ $tag ] ) ) {
+		$r = $wp_filter[ $tag ]->remove_filter( $tag, $function_to_remove, $priority );
+		if ( ! $wp_filter[ $tag ]->callbacks ) {
+			unset( $wp_filter[ $tag ] );
 		}
-		if ( empty( $GLOBALS['wp_filter'][ $tag ] ) ) {
-			$GLOBALS['wp_filter'][ $tag ] = array();
-		}
-		unset( $GLOBALS['merged_filters'][ $tag ] );
 	}
 
 	return $r;
@@ -342,26 +287,22 @@ function remove_filter( $tag, $function_to_remove, $priority = 10 ) {
  *
  * @since 2.7.0
  *
- * @global array $wp_filter         Stores all of the filters
- * @global array $merged_filters    Merges the filter hooks using this function.
+ * @global array $wp_filter  Stores all of the filters
  *
  * @param string   $tag      The filter to remove hooks from.
  * @param int|bool $priority Optional. The priority number to remove. Default false.
  * @return true True when finished.
  */
 function remove_all_filters( $tag, $priority = false ) {
-	global $wp_filter, $merged_filters;
+	global $wp_filter;
 
 	if ( isset( $wp_filter[ $tag ]) ) {
-		if ( false === $priority ) {
-			$wp_filter[ $tag ] = array();
-		} elseif ( isset( $wp_filter[ $tag ][ $priority ] ) ) {
-			$wp_filter[ $tag ][ $priority ] = array();
+		$wp_filter[ $tag ]->remove_all_filters( $priority );
+		if ( ! $wp_filter[ $tag ]->has_filters() ) {
+			unset( $wp_filter[ $tag ] );
 		}
 	}
 
-	unset( $merged_filters[ $tag ] );
-
 	return true;
 }
 
@@ -471,7 +412,6 @@ function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1)
  *
  * @global array $wp_filter         Stores all of the filters
  * @global array $wp_actions        Increments the amount of times action was triggered.
- * @global array $merged_filters    Merges the filter hooks using this function.
  * @global array $wp_current_filter Stores the list of current filters with the current one last
  *
  * @param string $tag     The name of the action to be executed.
@@ -479,7 +419,7 @@ function add_action($tag, $function_to_add, $priority = 10, $accepted_args = 1)
  *                        functions hooked to the action. Default empty.
  */
 function do_action($tag, $arg = '') {
-	global $wp_filter, $wp_actions, $merged_filters, $wp_current_filter;
+	global $wp_filter, $wp_actions, $wp_current_filter;
 
 	if ( ! isset($wp_actions[$tag]) )
 		$wp_actions[$tag] = 1;
@@ -510,20 +450,7 @@ function do_action($tag, $arg = '') {
 	for ( $a = 2, $num = func_num_args(); $a < $num; $a++ )
 		$args[] = func_get_arg($a);
 
-	// Sort
-	if ( !isset( $merged_filters[ $tag ] ) ) {
-		ksort($wp_filter[$tag]);
-		$merged_filters[ $tag ] = true;
-	}
-
-	reset( $wp_filter[ $tag ] );
-
-	do {
-		foreach ( (array) current($wp_filter[$tag]) as $the_ )
-			if ( !is_null($the_['function']) )
-				call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
-
-	} while ( next($wp_filter[$tag]) !== false );
+	$wp_filter[ $tag ]->do_action( $args );
 
 	array_pop($wp_current_filter);
 }
@@ -556,14 +483,13 @@ function did_action($tag) {
  *                  functions hooked to $tag< are supplied using an array.
  * @global array $wp_filter         Stores all of the filters
  * @global array $wp_actions        Increments the amount of times action was triggered.
- * @global array $merged_filters    Merges the filter hooks using this function.
  * @global array $wp_current_filter Stores the list of current filters with the current one last
  *
  * @param string $tag  The name of the action to be executed.
  * @param array  $args The arguments supplied to the functions hooked to `$tag`.
  */
 function do_action_ref_array($tag, $args) {
-	global $wp_filter, $wp_actions, $merged_filters, $wp_current_filter;
+	global $wp_filter, $wp_actions, $wp_current_filter;
 
 	if ( ! isset($wp_actions[$tag]) )
 		$wp_actions[$tag] = 1;
@@ -586,20 +512,7 @@ function do_action_ref_array($tag, $args) {
 	if ( !isset($wp_filter['all']) )
 		$wp_current_filter[] = $tag;
 
-	// Sort
-	if ( !isset( $merged_filters[ $tag ] ) ) {
-		ksort($wp_filter[$tag]);
-		$merged_filters[ $tag ] = true;
-	}
-
-	reset( $wp_filter[ $tag ] );
-
-	do {
-		foreach ( (array) current($wp_filter[$tag]) as $the_ )
-			if ( !is_null($the_['function']) )
-				call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args']));
-
-	} while ( next($wp_filter[$tag]) !== false );
+	$wp_filter[ $tag ]->do_action( $args );
 
 	array_pop($wp_current_filter);
 }
@@ -921,13 +834,7 @@ function register_uninstall_hook( $file, $callback ) {
 function _wp_call_all_hook($args) {
 	global $wp_filter;
 
-	reset( $wp_filter['all'] );
-	do {
-		foreach ( (array) current($wp_filter['all']) as $the_ )
-			if ( !is_null($the_['function']) )
-				call_user_func_array($the_['function'], $args);
-
-	} while ( next($wp_filter['all']) !== false );
+	$wp_filter['all']->do_all_hook( $args );
 }
 
 /**
diff --git a/wp-includes/pomo/mo.php b/wp-includes/pomo/mo.php
index 6bc44d614..47e9b6afe 100644
--- a/wp-includes/pomo/mo.php
+++ b/wp-includes/pomo/mo.php
@@ -15,16 +15,37 @@ class MO extends Gettext_Translations {
 
 	var $_nplurals = 2;
 
+	/**
+	 * Loaded MO file.
+	 *
+	 * @var string
+	 */
+	private $filename = '';
+
+	/**
+	 * Returns the loaded MO file.
+	 *
+	 * @return string The loaded MO file.
+	 */
+	public function get_filename() {
+		return $this->filename;
+	}
+
 	/**
 	 * Fills up with the entries from MO file $filename
 	 *
 	 * @param string $filename MO file to load
 	 */
 	function import_from_file($filename) {
-		$reader = new POMO_FileReader($filename);
-		if (!$reader->is_resource())
+		$reader = new POMO_FileReader( $filename );
+
+		if ( ! $reader->is_resource() ) {
 			return false;
-		return $this->import_from_reader($reader);
+		}
+
+		$this->filename = (string) $filename;
+
+		return $this->import_from_reader( $reader );
 	}
 
 	/**
@@ -299,4 +320,4 @@ class MO extends Gettext_Translations {
 		return $this->_nplurals;
 	}
 }
-endif;
\ No newline at end of file
+endif;
diff --git a/wp-includes/pomo/translations.php b/wp-includes/pomo/translations.php
index 66971d959..6623a9f02 100644
--- a/wp-includes/pomo/translations.php
+++ b/wp-includes/pomo/translations.php
@@ -102,7 +102,7 @@ class Translations {
 	 * Here, in the base Translations class, the common logic for English is implemented:
 	 * 	0 if there is one element, 1 otherwise
 	 *
-	 * This function should be overrided by the sub-classes. For example MO/PO can derive the logic
+	 * This function should be overridden by the sub-classes. For example MO/PO can derive the logic
 	 * from their headers.
 	 *
 	 * @param integer $count number of items
diff --git a/wp-includes/post-template.php b/wp-includes/post-template.php
index be152523f..ac8864334 100644
--- a/wp-includes/post-template.php
+++ b/wp-includes/post-template.php
@@ -30,14 +30,14 @@ function get_the_ID() {
 }
 
 /**
- * Display or retrieve the current post title with optional content.
+ * Display or retrieve the current post title with optional markup.
  *
  * @since 0.71
  *
- * @param string $before Optional. Content to prepend to the title.
- * @param string $after  Optional. Content to append to the title.
- * @param bool   $echo   Optional, default to true.Whether to display or return.
- * @return string|void String if $echo parameter is false.
+ * @param string $before Optional. Markup to prepend to the title. Default empty.
+ * @param string $after  Optional. Markup to append to the title. Default empty.
+ * @param bool   $echo   Optional. Whether to echo or return the title. Default true for echo.
+ * @return string|void Current post title if $echo is false.
  */
 function the_title( $before = '', $after = '', $echo = true ) {
 	$title = get_the_title();
@@ -247,11 +247,11 @@ function the_content( $more_link_text = null, $strip_teaser = false) {
  *
  * @since 0.71
  *
- * @global int   $page
- * @global int   $more
- * @global bool  $preview
- * @global array $pages
- * @global int   $multipage
+ * @global int   $page      Page number of a single post/page.
+ * @global int   $more      Boolean indicator for whether single post/page is being viewed.
+ * @global bool  $preview   Whether post/page is in preview mode.
+ * @global array $pages     Array of all pages in post/page. Each array element contains part of the content separated by the <!--nextpage--> tag.
+ * @global int   $multipage Boolean indicator for whether multiple pages are in play.
  *
  * @param string $more_link_text Optional. Content for when there is more text.
  * @param bool   $strip_teaser   Optional. Strip teaser content before the more text. Default is false.
@@ -594,23 +594,40 @@ function get_body_class( $class = '' ) {
 	if ( is_404() )
 		$classes[] = 'error404';
 
-	if ( is_single() ) {
+	if ( is_singular() ) {
 		$post_id = $wp_query->get_queried_object_id();
 		$post = $wp_query->get_queried_object();
+		$post_type = $post->post_type;
 
-		$classes[] = 'single';
-		if ( isset( $post->post_type ) ) {
-			$classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
-			$classes[] = 'postid-' . $post_id;
+		if ( is_page_template() ) {
+			$classes[] = "{$post_type}-template";
 
-			// Post Format
-			if ( post_type_supports( $post->post_type, 'post-formats' ) ) {
-				$post_format = get_post_format( $post->ID );
+			$template_slug  = get_page_template_slug( $post_id );
+			$template_parts = explode( '/', $template_slug );
 
-				if ( $post_format && !is_wp_error($post_format) )
-					$classes[] = 'single-format-' . sanitize_html_class( $post_format );
-				else
-					$classes[] = 'single-format-standard';
+			foreach ( $template_parts as $part ) {
+				$classes[] = "{$post_type}-template-" . sanitize_html_class( str_replace( array( '.', '/' ), '-', basename( $part, '.php' ) ) );
+			}
+			$classes[] = "{$post_type}-template-" . sanitize_html_class( str_replace( '.', '-', $template_slug ) );
+		} else {
+			$classes[] = "{$post_type}-template-default";
+		}
+
+		if ( is_single() ) {
+			$classes[] = 'single';
+			if ( isset( $post->post_type ) ) {
+				$classes[] = 'single-' . sanitize_html_class( $post->post_type, $post_id );
+				$classes[] = 'postid-' . $post_id;
+
+				// Post Format
+				if ( post_type_supports( $post->post_type, 'post-formats' ) ) {
+					$post_format = get_post_format( $post->ID );
+
+					if ( $post_format && !is_wp_error($post_format) )
+						$classes[] = 'single-format-' . sanitize_html_class( $post_format );
+					else
+						$classes[] = 'single-format-standard';
+				}
 			}
 		}
 
@@ -619,6 +636,23 @@ function get_body_class( $class = '' ) {
 			$mime_prefix = array( 'application/', 'image/', 'text/', 'audio/', 'video/', 'music/' );
 			$classes[] = 'attachmentid-' . $post_id;
 			$classes[] = 'attachment-' . str_replace( $mime_prefix, '', $mime_type );
+		} elseif ( is_page() ) {
+			$classes[] = 'page';
+
+			$page_id = $wp_query->get_queried_object_id();
+
+			$post = get_post($page_id);
+
+			$classes[] = 'page-id-' . $page_id;
+
+			if ( get_pages( array( 'parent' => $page_id, 'number' => 1 ) ) ) {
+				$classes[] = 'page-parent';
+			}
+
+			if ( $post->post_parent ) {
+				$classes[] = 'page-child';
+				$classes[] = 'parent-pageid-' . $post->post_parent;
+			}
 		}
 	} elseif ( is_archive() ) {
 		if ( is_post_type_archive() ) {
@@ -671,36 +705,6 @@ function get_body_class( $class = '' ) {
 				$classes[] = 'term-' . $term->term_id;
 			}
 		}
-	} elseif ( is_page() ) {
-		$classes[] = 'page';
-
-		$page_id = $wp_query->get_queried_object_id();
-
-		$post = get_post($page_id);
-
-		$classes[] = 'page-id-' . $page_id;
-
-		if ( get_pages( array( 'parent' => $page_id, 'number' => 1 ) ) ) {
-			$classes[] = 'page-parent';
-		}
-
-		if ( $post->post_parent ) {
-			$classes[] = 'page-child';
-			$classes[] = 'parent-pageid-' . $post->post_parent;
-		}
-		if ( is_page_template() ) {
-			$classes[] = 'page-template';
-
-			$template_slug  = get_page_template_slug( $page_id );
-			$template_parts = explode( '/', $template_slug );
-
-			foreach ( $template_parts as $part ) {
-				$classes[] = 'page-template-' . sanitize_html_class( str_replace( array( '.', '/' ), '-', basename( $part, '.php' ) ) );
-			}
-			$classes[] = 'page-template-' . sanitize_html_class( str_replace( '.', '-', $template_slug ) );
-		} else {
-			$classes[] = 'page-template-default';
-		}
 	}
 
 	if ( is_user_logged_in() )
@@ -779,20 +783,35 @@ function get_body_class( $class = '' ) {
 function post_password_required( $post = null ) {
 	$post = get_post($post);
 
-	if ( empty( $post->post_password ) )
-		return false;
+	if ( empty( $post->post_password ) ) {
+		/** This filter is documented in wp-includes/post.php */
+		return apply_filters( 'post_password_required', false, $post );
+	}
 
-	if ( ! isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
-		return true;
+	if ( ! isset( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] ) ) {
+		/** This filter is documented in wp-includes/post.php */
+		return apply_filters( 'post_password_required', true, $post );
+	}
 
-	require_once ABSPATH . WPINC . '/class-phpass.php';
 	$hasher = new PasswordHash( 8, true );
 
 	$hash = wp_unslash( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] );
-	if ( 0 !== strpos( $hash, '$P$B' ) )
-		return true;
+	if ( 0 !== strpos( $hash, '$P$B' ) ) {
+		$required = true;
+	} else {
+		$required = ! $hasher->CheckPassword( $post->post_password, $hash );
+	}
 
-	return ! $hasher->CheckPassword( $post->post_password, $hash );
+	/**
+	 * Filters whether a post requires the user to supply a password.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param bool    $required Whether the user needs to supply a password. True if password has not been
+	 *                          provided or is incorrect, false if password has been supplied or is not required.
+	 * @param WP_Post $post     Post data.
+	 */
+	return apply_filters( 'post_password_required', $required, $post );
 }
 
 //
@@ -1110,6 +1129,7 @@ function wp_dropdown_pages( $args = '' ) {
  * Retrieve or display list of pages in list (li) format.
  *
  * @since 1.5.0
+ * @since 4.7.0 Added the `item_spacing` argument.
  *
  * @see get_pages()
  *
@@ -1118,43 +1138,57 @@ function wp_dropdown_pages( $args = '' ) {
  * @param array|string $args {
  *     Array or string of arguments. Optional.
  *
- *     @type int    $child_of     Display only the sub-pages of a single page by ID. Default 0 (all pages).
- *     @type string $authors      Comma-separated list of author IDs. Default empty (all authors).
- *     @type string $date_format  PHP date format to use for the listed pages. Relies on the 'show_date' parameter.
- *                                Default is the value of 'date_format' option.
- *     @type int    $depth        Number of levels in the hierarchy of pages to include in the generated list.
- *                                Accepts -1 (any depth), 0 (all pages), 1 (top-level pages only), and n (pages to
- *                                the given n depth). Default 0.
- *     @type bool   $echo         Whether or not to echo the list of pages. Default true.
- *     @type string $exclude      Comma-separated list of page IDs to exclude. Default empty.
- *     @type array  $include      Comma-separated list of page IDs to include. Default empty.
- *     @type string $link_after   Text or HTML to follow the page link label. Default null.
- *     @type string $link_before  Text or HTML to precede the page link label. Default null.
- *     @type string $post_type    Post type to query for. Default 'page'.
- *     @type string $post_status  Comma-separated list of post statuses to include. Default 'publish'.
- *     @type string $show_date	  Whether to display the page publish or modified date for each page. Accepts
- *                                'modified' or any other value. An empty value hides the date. Default empty.
- *     @type string $sort_column  Comma-separated list of column names to sort the pages by. Accepts 'post_author',
- *                                'post_date', 'post_title', 'post_name', 'post_modified', 'post_modified_gmt',
- *                                'menu_order', 'post_parent', 'ID', 'rand', or 'comment_count'. Default 'post_title'.
- *     @type string $title_li     List heading. Passing a null or empty value will result in no heading, and the list
- *                                will not be wrapped with unordered list `<ul>` tags. Default 'Pages'.
- *     @type Walker $walker       Walker instance to use for listing pages. Default empty (Walker_Page).
+ *     @type int          $child_of     Display only the sub-pages of a single page by ID. Default 0 (all pages).
+ *     @type string       $authors      Comma-separated list of author IDs. Default empty (all authors).
+ *     @type string       $date_format  PHP date format to use for the listed pages. Relies on the 'show_date' parameter.
+ *                                      Default is the value of 'date_format' option.
+ *     @type int          $depth        Number of levels in the hierarchy of pages to include in the generated list.
+ *                                      Accepts -1 (any depth), 0 (all pages), 1 (top-level pages only), and n (pages to
+ *                                      the given n depth). Default 0.
+ *     @type bool         $echo         Whether or not to echo the list of pages. Default true.
+ *     @type string       $exclude      Comma-separated list of page IDs to exclude. Default empty.
+ *     @type array        $include      Comma-separated list of page IDs to include. Default empty.
+ *     @type string       $link_after   Text or HTML to follow the page link label. Default null.
+ *     @type string       $link_before  Text or HTML to precede the page link label. Default null.
+ *     @type string       $post_type    Post type to query for. Default 'page'.
+ *     @type string|array $post_status  Comma-separated list or array of post statuses to include. Default 'publish'.
+ *     @type string       $show_date    Whether to display the page publish or modified date for each page. Accepts
+ *                                      'modified' or any other value. An empty value hides the date. Default empty.
+ *     @type string       $sort_column  Comma-separated list of column names to sort the pages by. Accepts 'post_author',
+ *                                      'post_date', 'post_title', 'post_name', 'post_modified', 'post_modified_gmt',
+ *                                      'menu_order', 'post_parent', 'ID', 'rand', or 'comment_count'. Default 'post_title'.
+ *     @type string       $title_li     List heading. Passing a null or empty value will result in no heading, and the list
+ *                                      will not be wrapped with unordered list `<ul>` tags. Default 'Pages'.
+ *     @type string       $item_spacing Whether to preserve whitespace within the menu's HTML. Accepts 'preserve' or 'discard'.
+ *                                      Default 'preserve'.
+ *     @type Walker       $walker       Walker instance to use for listing pages. Default empty (Walker_Page).
  * }
  * @return string|void HTML list of pages.
  */
 function wp_list_pages( $args = '' ) {
 	$defaults = array(
-		'depth' => 0, 'show_date' => '',
-		'date_format' => get_option( 'date_format' ),
-		'child_of' => 0, 'exclude' => '',
-		'title_li' => __( 'Pages' ), 'echo' => 1,
-		'authors' => '', 'sort_column' => 'menu_order, post_title',
-		'link_before' => '', 'link_after' => '', 'walker' => '',
+		'depth'        => 0,
+		'show_date'    => '',
+		'date_format'  => get_option( 'date_format' ),
+		'child_of'     => 0,
+		'exclude'      => '',
+		'title_li'     => __( 'Pages' ),
+		'echo'         => 1,
+		'authors'      => '',
+		'sort_column'  => 'menu_order, post_title',
+		'link_before'  => '',
+		'link_after'   => '',
+		'item_spacing' => 'preserve',
+		'walker'       => '',
 	);
 
 	$r = wp_parse_args( $args, $defaults );
 
+	if ( ! in_array( $r['item_spacing'], array( 'preserve', 'discard' ), true ) ) {
+		// invalid value, fall back to default.
+		$r['item_spacing'] = $defaults['item_spacing'];
+	}
+
 	$output = '';
 	$current_page = 0;
 
@@ -1227,42 +1261,58 @@ function wp_list_pages( $args = '' ) {
  *
  * @since 2.7.0
  * @since 4.4.0 Added `menu_id`, `container`, `before`, `after`, and `walker` arguments.
+ * @since 4.7.0 Added the `item_spacing` argument.
  *
  * @param array|string $args {
  *     Optional. Arguments to generate a page menu. See wp_list_pages() for additional arguments.
  *
- *     @type string          $sort_column How to short the list of pages. Accepts post column names.
- *                                        Default 'menu_order, post_title'.
- *     @type string          $menu_id     ID for the div containing the page list. Default is empty string.
- *     @type string          $menu_class  Class to use for the element containing the page list. Default 'menu'.
- *     @type string          $container   Element to use for the element containing the page list. Default 'div'.
- *     @type bool            $echo        Whether to echo the list or return it. Accepts true (echo) or false (return).
- *                                        Default true.
- *     @type int|bool|string $show_home   Whether to display the link to the home page. Can just enter the text
- *                                        you'd like shown for the home link. 1|true defaults to 'Home'.
- *     @type string          $link_before The HTML or text to prepend to $show_home text. Default empty.
- *     @type string          $link_after  The HTML or text to append to $show_home text. Default empty.
- *     @type string          $before      The HTML or text to prepend to the menu. Default is '<ul>'.
- *     @type string          $after       The HTML or text to append to the menu. Default is '</ul>'.
- *     @type Walker          $walker      Walker instance to use for listing pages. Default empty (Walker_Page).
+ *     @type string          $sort_column  How to short the list of pages. Accepts post column names.
+ *                                         Default 'menu_order, post_title'.
+ *     @type string          $menu_id      ID for the div containing the page list. Default is empty string.
+ *     @type string          $menu_class   Class to use for the element containing the page list. Default 'menu'.
+ *     @type string          $container    Element to use for the element containing the page list. Default 'div'.
+ *     @type bool            $echo         Whether to echo the list or return it. Accepts true (echo) or false (return).
+ *                                         Default true.
+ *     @type int|bool|string $show_home    Whether to display the link to the home page. Can just enter the text
+ *                                         you'd like shown for the home link. 1|true defaults to 'Home'.
+ *     @type string          $link_before  The HTML or text to prepend to $show_home text. Default empty.
+ *     @type string          $link_after   The HTML or text to append to $show_home text. Default empty.
+ *     @type string          $before       The HTML or text to prepend to the menu. Default is '<ul>'.
+ *     @type string          $after        The HTML or text to append to the menu. Default is '</ul>'.
+ *     @type string          $item_spacing Whether to preserve whitespace within the menu's HTML. Accepts 'preserve' or 'discard'. Default 'discard'.
+ *     @type Walker          $walker       Walker instance to use for listing pages. Default empty (Walker_Page).
  * }
  * @return string|void HTML menu
  */
 function wp_page_menu( $args = array() ) {
 	$defaults = array(
-		'sort_column' => 'menu_order, post_title',
-		'menu_id'     => '',
-		'menu_class'  => 'menu',
-		'container'   => 'div',
-		'echo'        => true,
-		'link_before' => '',
-		'link_after'  => '',
-		'before'      => '<ul>',
-		'after'       => '</ul>',
-		'walker'      => '',
+		'sort_column'  => 'menu_order, post_title',
+		'menu_id'      => '',
+		'menu_class'   => 'menu',
+		'container'    => 'div',
+		'echo'         => true,
+		'link_before'  => '',
+		'link_after'   => '',
+		'before'       => '<ul>',
+		'after'        => '</ul>',
+		'item_spacing' => 'discard',
+		'walker'       => '',
 	);
 	$args = wp_parse_args( $args, $defaults );
 
+	if ( ! in_array( $args['item_spacing'], array( 'preserve', 'discard' ) ) ) {
+		// invalid value, fall back to default.
+		$args['item_spacing'] = $defaults['item_spacing'];
+	}
+
+	if ( 'preserve' === $args['item_spacing'] ) {
+		$t = "\t";
+		$n = "\n";
+	} else {
+		$t = '';
+		$n = '';
+	}
+
 	/**
 	 * Filters the arguments used to generate a page-based menu.
 	 *
@@ -1301,7 +1351,7 @@ function wp_page_menu( $args = array() ) {
 
 	$list_args['echo'] = false;
 	$list_args['title_li'] = '';
-	$menu .= str_replace( array( "\r", "\n", "\t" ), '', wp_list_pages($list_args) );
+	$menu .= wp_list_pages( $list_args );
 
 	$container = sanitize_text_field( $args['container'] );
 
@@ -1316,7 +1366,7 @@ function wp_page_menu( $args = array() ) {
 		if ( isset( $args['fallback_cb'] ) &&
 			'wp_page_menu' === $args['fallback_cb'] &&
 			'ul' !== $container ) {
-			$args['before'] = '<ul>';
+			$args['before'] = "<ul>{$n}";
 			$args['after'] = '</ul>';
 		}
 
@@ -1332,7 +1382,7 @@ function wp_page_menu( $args = array() ) {
 		$attrs .= ' class="' . esc_attr( $args['menu_class'] ) . '"';
 	}
 
-	$menu = "<{$container}{$attrs}>" . $menu . "</{$container}>\n";
+	$menu = "<{$container}{$attrs}>" . $menu . "</{$container}>{$n}";
 
 	/**
 	 * Filters the HTML output of a page-based menu.
@@ -1445,11 +1495,13 @@ function the_attachment_link( $id = 0, $fullsize = false, $deprecated = false, $
 function wp_get_attachment_link( $id = 0, $size = 'thumbnail', $permalink = false, $icon = false, $text = false, $attr = '' ) {
 	$_post = get_post( $id );
 
-	if ( empty( $_post ) || ( 'attachment' != $_post->post_type ) || ! $url = wp_get_attachment_url( $_post->ID ) )
+	if ( empty( $_post ) || ( 'attachment' !== $_post->post_type ) || ! $url = wp_get_attachment_url( $_post->ID ) ) {
 		return __( 'Missing Attachment' );
+	}
 
-	if ( $permalink )
+	if ( $permalink ) {
 		$url = get_attachment_link( $_post->ID );
+	}
 
 	if ( $text ) {
 		$link_text = $text;
@@ -1459,9 +1511,13 @@ function wp_get_attachment_link( $id = 0, $size = 'thumbnail', $permalink = fals
 		$link_text = '';
 	}
 
-	if ( trim( $link_text ) == '' )
+	if ( '' === trim( $link_text ) ) {
 		$link_text = $_post->post_title;
+	}
 
+	if ( '' === trim( $link_text ) ) {
+		$link_text = esc_html( pathinfo( get_attached_file( $_post->ID ), PATHINFO_FILENAME ) );
+	}
 	/**
 	 * Filters a retrieved attachment page link.
 	 *
@@ -1569,14 +1625,12 @@ function get_the_password_form( $post = 0 ) {
  *
  * @since 2.5.0
  * @since 4.2.0 The `$template` parameter was changed to also accept an array of page templates.
+ * @since 4.7.0 Now works with any post type, not just pages.
  *
  * @param string|array $template The specific template name or array of templates to match.
  * @return bool True on success, false on failure.
  */
 function is_page_template( $template = '' ) {
-	if ( ! is_page() )
-		return false;
-
 	$page_template = get_page_template_slug( get_queried_object_id() );
 
 	if ( empty( $template ) )
@@ -1597,21 +1651,28 @@ function is_page_template( $template = '' ) {
 }
 
 /**
- * Get the specific template name for a page.
+ * Get the specific template name for a given post.
  *
  * @since 3.4.0
+ * @since 4.7.0 Now works with any post type, not just pages.
  *
- * @param int $post_id Optional. The page ID to check. Defaults to the current post, when used in the loop.
+ * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post.
  * @return string|false Page template filename. Returns an empty string when the default page template
- * 	is in use. Returns false if the post is not a page.
+ * 	is in use. Returns false if the post does not exist.
  */
-function get_page_template_slug( $post_id = null ) {
-	$post = get_post( $post_id );
-	if ( ! $post || 'page' != $post->post_type )
+function get_page_template_slug( $post = null ) {
+	$post = get_post( $post );
+
+	if ( ! $post ) {
 		return false;
+	}
+
 	$template = get_post_meta( $post->ID, '_wp_page_template', true );
-	if ( ! $template || 'default' == $template )
+
+	if ( ! $template || 'default' == $template ) {
 		return '';
+	}
+
 	return $template;
 }
 
@@ -1633,10 +1694,10 @@ function wp_post_revision_title( $revision, $link = true ) {
 
 	/* translators: revision date format, see https://secure.php.net/date */
 	$datef = _x( 'F j, Y @ H:i:s', 'revision date format' );
-	/* translators: 1: date */
-	$autosavef = _x( '%1$s [Autosave]', 'post revision title extra' );
-	/* translators: 1: date */
-	$currentf  = _x( '%1$s [Current Revision]', 'post revision title extra' );
+	/* translators: %s: revision date */
+	$autosavef = __( '%s [Autosave]' );
+	/* translators: %s: revision date */
+	$currentf  = __( '%s [Current Revision]' );
 
 	$date = date_i18n( $datef, strtotime( $revision->post_modified ) );
 	if ( $link && current_user_can( 'edit_post', $revision->ID ) && $link = get_edit_post_link( $revision->ID ) )
@@ -1678,15 +1739,17 @@ function wp_post_revision_title_expanded( $revision, $link = true ) {
 
 	$revision_date_author = sprintf(
 		/* translators: post revision title: 1: author avatar, 2: author name, 3: time ago, 4: date */
-		_x( '%1$s %2$s, %3$s ago (%4$s)', 'post revision title' ),
+		__( '%1$s %2$s, %3$s ago (%4$s)' ),
 		$gravatar,
 		$author,
 		human_time_diff( strtotime( $revision->post_modified ), current_time( 'timestamp' ) ),
 		$date
 	);
 
-	$autosavef = __( '%1$s [Autosave]' );
-	$currentf  = __( '%1$s [Current Revision]' );
+	/* translators: %s: revision date with author avatar */
+	$autosavef = __( '%s [Autosave]' );
+	/* translators: %s: revision date with author avatar */
+	$currentf  = __( '%s [Current Revision]' );
 
 	if ( !wp_is_post_revision( $revision ) )
 		$revision_date_author = sprintf( $currentf, $revision_date_author );
diff --git a/wp-includes/post.php b/wp-includes/post.php
index d03317276..c81f5c589 100644
--- a/wp-includes/post.php
+++ b/wp-includes/post.php
@@ -20,7 +20,7 @@
 function create_initial_post_types() {
 	register_post_type( 'post', array(
 		'labels' => array(
-			'name_admin_bar' => _x( 'Post', 'add new on admin bar' ),
+			'name_admin_bar' => _x( 'Post', 'add new from admin bar' ),
 		),
 		'public'  => true,
 		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
@@ -33,11 +33,14 @@ function create_initial_post_types() {
 		'query_var' => false,
 		'delete_with_user' => true,
 		'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ),
+		'show_in_rest' => true,
+		'rest_base' => 'posts',
+		'rest_controller_class' => 'WP_REST_Posts_Controller',
 	) );
 
 	register_post_type( 'page', array(
 		'labels' => array(
-			'name_admin_bar' => _x( 'Page', 'add new on admin bar' ),
+			'name_admin_bar' => _x( 'Page', 'add new from admin bar' ),
 		),
 		'public' => true,
 		'publicly_queryable' => false,
@@ -51,6 +54,9 @@ function create_initial_post_types() {
 		'query_var' => false,
 		'delete_with_user' => true,
 		'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions' ),
+		'show_in_rest' => true,
+		'rest_base' => 'pages',
+		'rest_controller_class' => 'WP_REST_Posts_Controller',
 	) );
 
 	register_post_type( 'attachment', array(
@@ -60,6 +66,7 @@ function create_initial_post_types() {
 			'add_new' => _x( 'Add New', 'add new media' ),
  			'edit_item' => __( 'Edit Media' ),
  			'view_item' => __( 'View Attachment Page' ),
+			'attributes' => __( 'Attachment Attributes' ),
 		),
 		'public' => true,
 		'show_ui' => true,
@@ -76,6 +83,9 @@ function create_initial_post_types() {
 		'show_in_nav_menus' => false,
 		'delete_with_user' => true,
 		'supports' => array( 'title', 'author', 'comments' ),
+		'show_in_rest' => true,
+		'rest_base' => 'media',
+		'rest_controller_class' => 'WP_REST_Attachments_Controller',
 	) );
 	add_post_type_support( 'attachment:audio', 'thumbnail' );
 	add_post_type_support( 'attachment:video', 'thumbnail' );
@@ -111,6 +121,80 @@ function create_initial_post_types() {
 		'query_var' => false,
 	) );
 
+	register_post_type( 'custom_css', array(
+		'labels' => array(
+			'name'          => __( 'Custom CSS' ),
+			'singular_name' => __( 'Custom CSS' ),
+		),
+		'public'           => false,
+		'hierarchical'     => false,
+		'rewrite'          => false,
+		'query_var'        => false,
+		'delete_with_user' => false,
+		'can_export'       => true,
+		'_builtin'         => true, /* internal use only. don't use this when registering your own post type. */
+		'supports'         => array( 'title', 'revisions' ),
+		'capabilities'     => array(
+			'delete_posts'           => 'edit_theme_options',
+			'delete_post'            => 'edit_theme_options',
+			'delete_published_posts' => 'edit_theme_options',
+			'delete_private_posts'   => 'edit_theme_options',
+			'delete_others_posts'    => 'edit_theme_options',
+			'edit_post'              => 'edit_css',
+			'edit_posts'             => 'edit_css',
+			'edit_others_posts'      => 'edit_css',
+			'edit_published_posts'   => 'edit_css',
+			'read_post'              => 'read',
+			'read_private_posts'     => 'read',
+			'publish_posts'          => 'edit_theme_options',
+		),
+	) );
+
+	register_post_type( 'customize_changeset', array(
+		'labels' => array(
+			'name'               => _x( 'Changesets', 'post type general name' ),
+			'singular_name'      => _x( 'Changeset', 'post type singular name' ),
+			'menu_name'          => _x( 'Changesets', 'admin menu' ),
+			'name_admin_bar'     => _x( 'Changeset', 'add new on admin bar' ),
+			'add_new'            => _x( 'Add New', 'Customize Changeset' ),
+			'add_new_item'       => __( 'Add New Changeset' ),
+			'new_item'           => __( 'New Changeset' ),
+			'edit_item'          => __( 'Edit Changeset' ),
+			'view_item'          => __( 'View Changeset' ),
+			'all_items'          => __( 'All Changesets' ),
+			'search_items'       => __( 'Search Changesets' ),
+			'not_found'          => __( 'No changesets found.' ),
+			'not_found_in_trash' => __( 'No changesets found in Trash.' ),
+		),
+		'public' => false,
+		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
+		'map_meta_cap' => true,
+		'hierarchical' => false,
+		'rewrite' => false,
+		'query_var' => false,
+		'can_export' => false,
+		'delete_with_user' => false,
+		'supports' => array( 'title', 'author' ),
+		'capability_type' => 'customize_changeset',
+		'capabilities' => array(
+			'create_posts' => 'customize',
+			'delete_others_posts' => 'customize',
+			'delete_post' => 'customize',
+			'delete_posts' => 'customize',
+			'delete_private_posts' => 'customize',
+			'delete_published_posts' => 'customize',
+			'edit_others_posts' => 'customize',
+			'edit_post' => 'customize',
+			'edit_posts' => 'customize',
+			'edit_private_posts' => 'customize',
+			'edit_published_posts' => 'do_not_allow',
+			'publish_posts' => 'customize',
+			'read' => 'read',
+			'read_post' => 'customize',
+			'read_private_posts' => 'customize',
+		),
+	) );
+
 	register_post_status( 'publish', array(
 		'label'       => _x( 'Published', 'post status' ),
 		'public'      => true,
@@ -317,8 +401,8 @@ function _wp_relative_upload_path( $path ) {
  * @global WP_Post $post
  *
  * @param mixed  $args   Optional. User defined arguments for replacing the defaults. Default empty.
- * @param string $output Optional. Constant for return type. Accepts OBJECT, ARRAY_A, ARRAY_N.
- *                       Default OBJECT.
+ * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                       a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @return array Array of children, where the type of each element is determined by $output parameter.
  *               Empty array on failure.
  */
@@ -421,8 +505,8 @@ function get_extended( $post ) {
  * @global WP_Post $post
  *
  * @param int|WP_Post|null $post   Optional. Post ID or post object. Defaults to global $post.
- * @param string           $output Optional, default is Object. Accepts OBJECT, ARRAY_A, or ARRAY_N.
- *                                 Default OBJECT.
+ * @param string           $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                                 a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string           $filter Optional. Type of filter to apply. Accepts 'raw', 'edit', 'db',
  *                                 or 'display'. Default 'raw'.
  * @return WP_Post|array|null Type corresponding to $output on success or null on failure.
@@ -901,6 +985,8 @@ function get_post_types( $args = array(), $output = 'names', $operator = 'and' )
  * @since 4.4.0 The `show_ui` argument is now enforced on the post type listing
  *              screen and post editing screen.
  * @since 4.6.0 Post type object returned is now an instance of WP_Post_Type.
+ * @since 4.7.0 Introduced `show_in_rest`, 'rest_base' and 'rest_controller_class'
+ *              arguments to register the post type in REST API.
  *
  * @global array $wp_post_types List of post types.
  *
@@ -910,76 +996,79 @@ function get_post_types( $args = array(), $output = 'names', $operator = 'and' )
  * @param array|string $args {
  *     Array or string of arguments for registering a post type.
  *
- *     @type string      $label                Name of the post type shown in the menu. Usually plural.
- *                                             Default is value of $labels['name'].
- *     @type array       $labels               An array of labels for this post type. If not set, post
- *                                             labels are inherited for non-hierarchical types and page
- *                                             labels for hierarchical ones. See get_post_type_labels() for a full
- *                                             list of supported labels.
- *     @type string      $description          A short descriptive summary of what the post type is.
- *                                             Default empty.
- *     @type bool        $public               Whether a post type is intended for use publicly either via
- *                                             the admin interface or by front-end users. While the default
- *                                             settings of $exclude_from_search, $publicly_queryable, $show_ui,
- *                                             and $show_in_nav_menus are inherited from public, each does not
- *                                             rely on this relationship and controls a very specific intention.
- *                                             Default false.
- *     @type bool        $hierarchical         Whether the post type is hierarchical (e.g. page). Default false.
- *     @type bool        $exclude_from_search  Whether to exclude posts with this post type from front end search
- *                                             results. Default is the opposite value of $public.
- *     @type bool        $publicly_queryable   Whether queries can be performed on the front end for the post type
- *                                             as part of parse_request(). Endpoints would include:
- *                                             * ?post_type={post_type_key}
- *                                             * ?{post_type_key}={single_post_slug}
- *                                             * ?{post_type_query_var}={single_post_slug}
- *                                             If not set, the default is inherited from $public.
- *     @type bool        $show_ui              Whether to generate and allow a UI for managing this post type in the
- *                                             admin. Default is value of $public.
- *     @type bool        $show_in_menu         Where to show the post type in the admin menu. To work, $show_ui
- *                                             must be true. If true, the post type is shown in its own top level
- *                                             menu. If false, no menu is shown. If a string of an existing top
- *                                             level menu (eg. 'tools.php' or 'edit.php?post_type=page'), the post
- *                                             type will be placed as a sub-menu of that.
- *                                             Default is value of $show_ui.
- *     @type bool        $show_in_nav_menus    Makes this post type available for selection in navigation menus.
- *                                             Default is value $public.
- *     @type bool        $show_in_admin_bar    Makes this post type available via the admin bar. Default is value
- *                                             of $show_in_menu.
- *     @type int         $menu_position        The position in the menu order the post type should appear. To work,
- *                                             $show_in_menu must be true. Default null (at the bottom).
- *     @type string      $menu_icon            The url to the icon to be used for this menu. Pass a base64-encoded
- *                                             SVG using a data URI, which will be colored to match the color scheme
- *                                             -- this should begin with 'data:image/svg+xml;base64,'. Pass the name
- *                                             of a Dashicons helper class to use a font icon, e.g.
- *                                             'dashicons-chart-pie'. Pass 'none' to leave div.wp-menu-image empty
- *                                             so an icon can be added via CSS. Defaults to use the posts icon.
- *     @type string      $capability_type      The string to use to build the read, edit, and delete capabilities.
- *                                             May be passed as an array to allow for alternative plurals when using
- *                                             this argument as a base to construct the capabilities, e.g.
- *                                             array('story', 'stories'). Default 'post'.
- *     @type array       $capabilities         Array of capabilities for this post type. $capability_type is used
- *                                             as a base to construct capabilities by default.
- *                                             See get_post_type_capabilities().
- *     @type bool        $map_meta_cap         Whether to use the internal default meta capability handling.
- *                                             Default false.
- *     @type array       $supports             Core feature(s) the post type supports. Serves as an alias for calling
- *                                             add_post_type_support() directly. Core features include 'title',
- *                                             'editor', 'comments', 'revisions', 'trackbacks', 'author', 'excerpt',
- *                                             'page-attributes', 'thumbnail', 'custom-fields', and 'post-formats'.
- *                                             Additionally, the 'revisions' feature dictates whether the post type
- *                                             will store revisions, and the 'comments' feature dictates whether the
- *                                             comments count will show on the edit screen. Defaults is an array
- *                                             containing 'title' and 'editor'.
- *     @type callable    $register_meta_box_cb Provide a callback function that sets up the meta boxes for the
- *                                             edit form. Do remove_meta_box() and add_meta_box() calls in the
- *                                             callback. Default null.
- *     @type array       $taxonomies           An array of taxonomy identifiers that will be registered for the
- *                                             post type. Taxonomies can be registered later with register_taxonomy()
- *                                             or register_taxonomy_for_object_type().
- *                                             Default empty array.
- *     @type bool|string $has_archive          Whether there should be post type archives, or if a string, the
- *                                             archive slug to use. Will generate the proper rewrite rules if
- *                                             $rewrite is enabled. Default false.
+ *     @type string      $label                 Name of the post type shown in the menu. Usually plural.
+ *                                              Default is value of $labels['name'].
+ *     @type array       $labels                An array of labels for this post type. If not set, post
+ *                                              labels are inherited for non-hierarchical types and page
+ *                                              labels for hierarchical ones. See get_post_type_labels() for a full
+ *                                              list of supported labels.
+ *     @type string      $description           A short descriptive summary of what the post type is.
+ *                                              Default empty.
+ *     @type bool        $public                Whether a post type is intended for use publicly either via
+ *                                              the admin interface or by front-end users. While the default
+ *                                              settings of $exclude_from_search, $publicly_queryable, $show_ui,
+ *                                              and $show_in_nav_menus are inherited from public, each does not
+ *                                              rely on this relationship and controls a very specific intention.
+ *                                              Default false.
+ *     @type bool        $hierarchical          Whether the post type is hierarchical (e.g. page). Default false.
+ *     @type bool        $exclude_from_search   Whether to exclude posts with this post type from front end search
+ *                                              results. Default is the opposite value of $public.
+ *     @type bool        $publicly_queryable    Whether queries can be performed on the front end for the post type
+ *                                              as part of parse_request(). Endpoints would include:
+ *                                              * ?post_type={post_type_key}
+ *                                              * ?{post_type_key}={single_post_slug}
+ *                                              * ?{post_type_query_var}={single_post_slug}
+ *                                              If not set, the default is inherited from $public.
+ *     @type bool        $show_ui               Whether to generate and allow a UI for managing this post type in the
+ *                                              admin. Default is value of $public.
+ *     @type bool        $show_in_menu          Where to show the post type in the admin menu. To work, $show_ui
+ *                                              must be true. If true, the post type is shown in its own top level
+ *                                              menu. If false, no menu is shown. If a string of an existing top
+ *                                              level menu (eg. 'tools.php' or 'edit.php?post_type=page'), the post
+ *                                              type will be placed as a sub-menu of that.
+ *                                              Default is value of $show_ui.
+ *     @type bool        $show_in_nav_menus     Makes this post type available for selection in navigation menus.
+ *                                              Default is value $public.
+ *     @type bool        $show_in_admin_bar     Makes this post type available via the admin bar. Default is value
+ *                                              of $show_in_menu.
+ *     @type bool        $show_in_rest          Whether to add the post type route in the REST API 'wp/v2' namespace.
+ *     @type string      $rest_base             To change the base url of REST API route. Default is $post_type.
+ *     @type string      $rest_controller_class REST API Controller class name. Default is 'WP_REST_Posts_Controller'.
+ *     @type int         $menu_position         The position in the menu order the post type should appear. To work,
+ *                                              $show_in_menu must be true. Default null (at the bottom).
+ *     @type string      $menu_icon             The url to the icon to be used for this menu. Pass a base64-encoded
+ *                                              SVG using a data URI, which will be colored to match the color scheme
+ *                                              -- this should begin with 'data:image/svg+xml;base64,'. Pass the name
+ *                                              of a Dashicons helper class to use a font icon, e.g.
+ *                                              'dashicons-chart-pie'. Pass 'none' to leave div.wp-menu-image empty
+ *                                              so an icon can be added via CSS. Defaults to use the posts icon.
+ *     @type string      $capability_type       The string to use to build the read, edit, and delete capabilities.
+ *                                              May be passed as an array to allow for alternative plurals when using
+ *                                              this argument as a base to construct the capabilities, e.g.
+ *                                              array('story', 'stories'). Default 'post'.
+ *     @type array       $capabilities          Array of capabilities for this post type. $capability_type is used
+ *                                              as a base to construct capabilities by default.
+ *                                              See get_post_type_capabilities().
+ *     @type bool        $map_meta_cap          Whether to use the internal default meta capability handling.
+ *                                              Default false.
+ *     @type array       $supports              Core feature(s) the post type supports. Serves as an alias for calling
+ *                                              add_post_type_support() directly. Core features include 'title',
+ *                                              'editor', 'comments', 'revisions', 'trackbacks', 'author', 'excerpt',
+ *                                              'page-attributes', 'thumbnail', 'custom-fields', and 'post-formats'.
+ *                                              Additionally, the 'revisions' feature dictates whether the post type
+ *                                              will store revisions, and the 'comments' feature dictates whether the
+ *                                              comments count will show on the edit screen. Defaults is an array
+ *                                              containing 'title' and 'editor'.
+ *     @type callable    $register_meta_box_cb  Provide a callback function that sets up the meta boxes for the
+ *                                              edit form. Do remove_meta_box() and add_meta_box() calls in the
+ *                                              callback. Default null.
+ *     @type array       $taxonomies            An array of taxonomy identifiers that will be registered for the
+ *                                              post type. Taxonomies can be registered later with register_taxonomy()
+ *                                              or register_taxonomy_for_object_type().
+ *                                              Default empty array.
+ *     @type bool|string $has_archive           Whether there should be post type archives, or if a string, the
+ *                                              archive slug to use. Will generate the proper rewrite rules if
+ *                                              $rewrite is enabled. Default false.
  *     @type bool|array  $rewrite              {
  *         Triggers the handling of rewrites for this post type. To prevent rewrite, set to false.
  *         Defaults to true, using $post_type as slug. To specify rewrite rules, an array can be
@@ -995,21 +1084,21 @@ function get_post_types( $args = array(), $output = 'names', $operator = 'and' )
  *                                  inherits from $permalink_epmask. If not specified and permalink_epmask
  *                                  is not set, defaults to EP_PERMALINK.
  *     }
- *     @type string|bool $query_var            Sets the query_var key for this post type. Defaults to $post_type
- *                                             key. If false, a post type cannot be loaded at
- *                                             ?{query_var}={post_slug}. If specified as a string, the query
- *                                             ?{query_var_string}={post_slug} will be valid.
- *     @type bool        $can_export           Whether to allow this post type to be exported. Default true.
- *     @type bool        $delete_with_user     Whether to delete posts of this type when deleting a user. If true,
- *                                             posts of this type belonging to the user will be moved to trash
- *                                             when then user is deleted. If false, posts of this type belonging
- *                                             to the user will *not* be trashed or deleted. If not set (the default),
- *                                             posts are trashed if post_type_supports('author'). Otherwise posts
- *                                             are not trashed or deleted. Default null.
- *     @type bool        $_builtin             FOR INTERNAL USE ONLY! True if this post type is a native or
- *                                             "built-in" post_type. Default false.
- *     @type string      $_edit_link           FOR INTERNAL USE ONLY! URL segment to use for edit link of
- *                                             this post type. Default 'post.php?post=%d'.
+ *     @type string|bool $query_var             Sets the query_var key for this post type. Defaults to $post_type
+ *                                              key. If false, a post type cannot be loaded at
+ *                                              ?{query_var}={post_slug}. If specified as a string, the query
+ *                                              ?{query_var_string}={post_slug} will be valid.
+ *     @type bool        $can_export            Whether to allow this post type to be exported. Default true.
+ *     @type bool        $delete_with_user      Whether to delete posts of this type when deleting a user. If true,
+ *                                              posts of this type belonging to the user will be moved to trash
+ *                                              when then user is deleted. If false, posts of this type belonging
+ *                                              to the user will *not* be trashed or deleted. If not set (the default),
+ *                                              posts are trashed if post_type_supports('author'). Otherwise posts
+ *                                              are not trashed or deleted. Default null.
+ *     @type bool        $_builtin              FOR INTERNAL USE ONLY! True if this post type is a native or
+ *                                              "built-in" post_type. Default false.
+ *     @type string      $_edit_link            FOR INTERNAL USE ONLY! URL segment to use for edit link of
+ *                                              this post type. Default 'post.php?post=%d'.
  * }
  * @return WP_Post_Type|WP_Error The registered post type object, or an error object.
  */
@@ -1234,6 +1323,7 @@ function _post_type_meta_capabilities( $capabilities = null ) {
  * - `edit_item` - Label for editing a singular item. Default is 'Edit Post' / 'Edit Page'.
  * - `new_item` - Label for the new item page title. Default is 'New Post' / 'New Page'.
  * - `view_item` - Label for viewing a singular item. Default is 'View Post' / 'View Page'.
+ * - `view_items` - Label for viewing post type archives. Default is 'View Posts' / 'View Pages'.
  * - `search_items` - Label for searching plural items. Default is 'Search Posts' / 'Search Pages'.
  * - `not_found` - Label used when no items are found. Default is 'No posts found' / 'No pages found'.
  * - `not_found_in_trash` - Label used when no items are in the trash. Default is 'No posts found in Trash' /
@@ -1242,6 +1332,7 @@ function _post_type_meta_capabilities( $capabilities = null ) {
  *                       post types. Default is 'Parent Page:'.
  * - `all_items` - Label to signify all items in a submenu link. Default is 'All Posts' / 'All Pages'.
  * - `archives` - Label for archives in nav menus. Default is 'Post Archives' / 'Page Archives'.
+ * - `attributes` - Label for the attributes meta box. Default is 'Post Attributes' / 'Page Attributes'.
  * - `insert_into_item` - Label for the media frame button. Default is 'Insert into post' / 'Insert into page'.
  * - `uploaded_to_this_item` - Label for the media frame filter. Default is 'Uploaded to this post' /
  *                           'Uploaded to this page'.
@@ -1267,6 +1358,7 @@ function _post_type_meta_capabilities( $capabilities = null ) {
  * @since 4.4.0 Added the `insert_into_item`, `uploaded_to_this_item`, `filter_items_list`,
  *              `items_list_navigation`, and `items_list` labels.
  * @since 4.6.0 Converted the `$post_type` parameter to accept a WP_Post_Type object.
+ * @since 4.7.0 Added the `view_items` and `attributes` labels.
  *
  * @access private
  *
@@ -1282,12 +1374,14 @@ function get_post_type_labels( $post_type_object ) {
 		'edit_item' => array( __('Edit Post'), __('Edit Page') ),
 		'new_item' => array( __('New Post'), __('New Page') ),
 		'view_item' => array( __('View Post'), __('View Page') ),
+		'view_items' => array( __('View Posts'), __('View Pages') ),
 		'search_items' => array( __('Search Posts'), __('Search Pages') ),
 		'not_found' => array( __('No posts found.'), __('No pages found.') ),
 		'not_found_in_trash' => array( __('No posts found in Trash.'), __('No pages found in Trash.') ),
 		'parent_item_colon' => array( null, __('Parent Page:') ),
 		'all_items' => array( __( 'All Posts' ), __( 'All Pages' ) ),
 		'archives' => array( __( 'Post Archives' ), __( 'Page Archives' ) ),
+		'attributes' => array( __( 'Post Attributes' ), __( 'Page Attributes' ) ),
 		'insert_into_item' => array( __( 'Insert into post' ), __( 'Insert into page' ) ),
 		'uploaded_to_this_item' => array( __( 'Uploaded to this post' ), __( 'Uploaded to this page' ) ),
 		'featured_image' => array( __( 'Featured Image' ), __( 'Featured Image' ) ),
@@ -2773,9 +2867,11 @@ function wp_get_post_terms( $post_id = 0, $taxonomy = 'post_tag', $args = array(
  *
  * @see get_posts()
  *
- * @param array  $args       Optional. Arguments to retrieve posts. Default empty array.
- * @param string $output     Optional. Type of output. Accepts ARRAY_A or ''. Default ARRAY_A.
- * @return array|false Associative array if $output equals ARRAY_A, array or false if no results.
+ * @param array  $args   Optional. Arguments to retrieve posts. Default empty array.
+ * @param string $output Optional. The required return type. One of OBJECT or ARRAY_A, which correspond to
+ *                       a WP_Post object or an associative array, respectively. Default ARRAY_A.
+ * @return array|false Array of recent posts, where the type of each element is determined by $output parameter.
+ *                     Empty array on failure.
  */
 function wp_get_recent_posts( $args = array(), $output = ARRAY_A ) {
 
@@ -2866,7 +2962,7 @@ function wp_get_recent_posts( $args = array(), $output = ARRAY_A ) {
  *     @type array  $tax_input             Array of taxonomy terms keyed by their taxonomy name. Default empty.
  *     @type array  $meta_input            Array of post meta values keyed by their post meta key. Default empty.
  * }
- * @param bool  $wp_error Optional. Whether to allow return of WP_Error on failure. Default false.
+ * @param bool  $wp_error Optional. Whether to return a WP_Error on failure. Default false.
  * @return int|WP_Error The post ID on success. The value 0 or WP_Error on failure.
  */
 function wp_insert_post( $postarr, $wp_error = false ) {
@@ -2967,7 +3063,7 @@ function wp_insert_post( $postarr, $wp_error = false ) {
 	}
 
 	$post_status = empty( $postarr['post_status'] ) ? 'draft' : $postarr['post_status'];
-	if ( 'attachment' === $post_type && ! in_array( $post_status, array( 'inherit', 'private', 'trash' ) ) ) {
+	if ( 'attachment' === $post_type && ! in_array( $post_status, array( 'inherit', 'private', 'trash', 'auto-draft' ), true ) ) {
 		$post_status = 'inherit';
 	}
 
@@ -3032,7 +3128,7 @@ function wp_insert_post( $postarr, $wp_error = false ) {
 	$valid_date = wp_checkdate( $mm, $jj, $aa, $post_date );
 	if ( ! $valid_date ) {
 		if ( $wp_error ) {
-			return new WP_Error( 'invalid_date', __( 'Whoops, the provided date is invalid.' ) );
+			return new WP_Error( 'invalid_date', __( 'Invalid date.' ) );
 		} else {
 			return 0;
 		}
@@ -3307,12 +3403,12 @@ function wp_insert_post( $postarr, $wp_error = false ) {
 
 	$post = get_post( $post_ID );
 
-	if ( ! empty( $postarr['page_template'] ) && 'page' == $data['post_type'] ) {
+	if ( ! empty( $postarr['page_template'] ) ) {
 		$post->page_template = $postarr['page_template'];
 		$page_templates = wp_get_theme()->get_page_templates( $post );
 		if ( 'default' != $postarr['page_template'] && ! isset( $page_templates[ $postarr['page_template'] ] ) ) {
 			if ( $wp_error ) {
-				return new WP_Error('invalid_page_template', __('The page template is invalid.'));
+				return new WP_Error( 'invalid_page_template', __( 'Invalid page template.' ) );
 			}
 			update_post_meta( $post_ID, '_wp_page_template', 'default' );
 		} else {
@@ -3905,19 +4001,32 @@ function wp_transition_post_status( $new_status, $old_status, $post ) {
  * Add a URL to those already pinged.
  *
  * @since 1.5.0
+ * @since 4.7.0 $post_id can be a WP_Post object.
+ * @since 4.7.0 $uri can be an array of URIs.
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
- * @param int    $post_id Post ID.
- * @param string $uri     Ping URI.
+ * @param int|WP_Post  $post_id Post object or ID.
+ * @param string|array $uri     Ping URI or array of URIs.
  * @return int|false How many rows were updated.
  */
 function add_ping( $post_id, $uri ) {
 	global $wpdb;
-	$pung = $wpdb->get_var( $wpdb->prepare( "SELECT pinged FROM $wpdb->posts WHERE ID = %d", $post_id ));
-	$pung = trim($pung);
-	$pung = preg_split('/\s/', $pung);
-	$pung[] = $uri;
+
+	$post = get_post( $post_id );
+	if ( ! $post ) {
+		return false;
+	}
+
+	$pung = trim( $post->pinged );
+	$pung = preg_split( '/\s/', $pung );
+
+	if ( is_array( $uri ) ) {
+		$pung = array_merge( $pung, $uri );
+	}
+	else {
+		$pung[] = $uri;
+	}
 	$new = implode("\n", $pung);
 
 	/**
@@ -3929,9 +4038,9 @@ function add_ping( $post_id, $uri ) {
 	 */
 	$new = apply_filters( 'add_ping', $new );
 
-	// expected_slashed ($new).
-	$new = wp_unslash($new);
-	return $wpdb->update( $wpdb->posts, array( 'pinged' => $new ), array( 'ID' => $post_id ) );
+	$return = $wpdb->update( $wpdb->posts, array( 'pinged' => $new ), array( 'ID' => $post->ID ) );
+	clean_post_cache( $post->ID );
+	return $return;
 }
 
 /**
@@ -3973,16 +4082,19 @@ function get_enclosed( $post_id ) {
  *
  * @since 1.5.0
  *
- * @global wpdb $wpdb WordPress database abstraction object.
+ * @since 4.7.0 $post_id can be a WP_Post object.
  *
- * @param int $post_id Post ID.
+ * @param int|WP_Post $post_id Post ID or object.
  * @return array
  */
 function get_pung( $post_id ) {
-	global $wpdb;
-	$pung = $wpdb->get_var( $wpdb->prepare( "SELECT pinged FROM $wpdb->posts WHERE ID = %d", $post_id ));
-	$pung = trim($pung);
-	$pung = preg_split('/\s/', $pung);
+	$post = get_post( $post_id );
+	if ( ! $post ) {
+		return false;
+	}
+
+	$pung = trim( $post->pinged );
+	$pung = preg_split( '/\s/', $pung );
 
 	/**
 	 * Filters the list of already-pinged URLs for the given post.
@@ -3998,16 +4110,19 @@ function get_pung( $post_id ) {
  * Retrieve URLs that need to be pinged.
  *
  * @since 1.5.0
+ * @since 4.7.0 $post_id can be a WP_Post object.
  *
- * @global wpdb $wpdb WordPress database abstraction object.
- *
- * @param int $post_id Post ID
+ * @param int|WP_Post $post_id Post Object or ID
  * @return array
  */
 function get_to_ping( $post_id ) {
-	global $wpdb;
-	$to_ping = $wpdb->get_var( $wpdb->prepare( "SELECT to_ping FROM $wpdb->posts WHERE ID = %d", $post_id ));
-	$to_ping = sanitize_trackback_urls( $to_ping );
+	$post = get_post( $post_id );
+
+	if ( ! $post ) {
+		return false;
+	}
+
+	$to_ping = sanitize_trackback_urls( $post->to_ping );
 	$to_ping = preg_split('/\s/', $to_ping, -1, PREG_SPLIT_NO_EMPTY);
 
 	/**
@@ -4082,11 +4197,11 @@ function get_all_page_ids() {
  * @deprecated 3.5.0 Use get_post()
  *
  * @param mixed  $page   Page object or page ID. Passed by reference.
- * @param string $output Optional. What to output. Accepts OBJECT, ARRAY_A, or ARRAY_N.
- *                       Default OBJECT.
+ * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                       a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string $filter Optional. How the return value should be filtered. Accepts 'raw',
  *                       'edit', 'db', 'display'. Default 'raw'.
- * @return WP_Post|array|null WP_Post on success or null on failure.
+ * @return WP_Post|array|null WP_Post (or array) on success, or null on failure.
  */
 function get_page( $page, $output = OBJECT, $filter = 'raw') {
 	return get_post( $page, $output, $filter );
@@ -4100,19 +4215,15 @@ function get_page( $page, $output = OBJECT, $filter = 'raw') {
  * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param string       $page_path Page path.
- * @param string       $output    Optional. Output type. Accepts OBJECT, ARRAY_N, or ARRAY_A.
- *                                Default OBJECT.
+ * @param string       $output    Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                                a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string|array $post_type Optional. Post type or array of post types. Default 'page'.
- * @return WP_Post|array|void WP_Post on success.
+ * @return WP_Post|array|null WP_Post (or array) on success, or null on failure.
  */
 function get_page_by_path( $page_path, $output = OBJECT, $post_type = 'page' ) {
 	global $wpdb;
 
-	$last_changed = wp_cache_get( 'last_changed', 'posts' );
-	if ( false === $last_changed ) {
-		$last_changed = microtime();
-		wp_cache_set( 'last_changed', $last_changed, 'posts' );
-	}
+	$last_changed = wp_cache_get_last_changed( 'posts' );
 
 	$hash = md5( $page_path . serialize( $post_type ) );
 	$cache_key = "get_page_by_path:$hash:$last_changed";
@@ -4196,10 +4307,10 @@ function get_page_by_path( $page_path, $output = OBJECT, $post_type = 'page' ) {
  * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param string       $page_title Page title
- * @param string       $output     Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A.
- *                                 Default OBJECT.
+ * @param string       $output     Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                                 a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string|array $post_type  Optional. Post type or array of post types. Default 'page'.
- * @return WP_Post|array|void WP_Post on success or null on failure
+ * @return WP_Post|array|null WP_Post (or array) on success, or null on failure.
  */
 function get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' ) {
 	global $wpdb;
@@ -4396,7 +4507,7 @@ function get_page_uri( $page = 0 ) {
  *     @type int          $offset       The number of pages to skip before returning. Requires `$number`.
  *                                      Default 0.
  *     @type string       $post_type    The post type to query. Default 'page'.
- *     @type string       $post_status  A comma-separated list of post status types to include.
+ *     @type string|array $post_status  A comma-separated list or array of post statuses to include.
  *                                      Default 'publish'.
  * }
  * @return array|false List of pages matching defaults or `$args`.
@@ -4405,13 +4516,21 @@ function get_pages( $args = array() ) {
 	global $wpdb;
 
 	$defaults = array(
-		'child_of' => 0, 'sort_order' => 'ASC',
-		'sort_column' => 'post_title', 'hierarchical' => 1,
-		'exclude' => array(), 'include' => array(),
-		'meta_key' => '', 'meta_value' => '',
-		'authors' => '', 'parent' => -1, 'exclude_tree' => array(),
-		'number' => '', 'offset' => 0,
-		'post_type' => 'page', 'post_status' => 'publish',
+		'child_of'     => 0,
+		'sort_order'   => 'ASC',
+		'sort_column'  => 'post_title',
+		'hierarchical' => 1,
+		'exclude'      => array(),
+		'include'      => array(),
+		'meta_key'     => '',
+		'meta_value'   => '',
+		'authors'      => '',
+		'parent'       => -1,
+		'exclude_tree' => array(),
+		'number'       => '',
+		'offset'       => 0,
+		'post_type'    => 'page',
+		'post_status'  => 'publish',
 	);
 
 	$r = wp_parse_args( $args, $defaults );
@@ -4446,11 +4565,7 @@ function get_pages( $args = array() ) {
 
 	// $args can be whatever, only use the args defined in defaults to compute the key.
 	$key = md5( serialize( wp_array_slice_assoc( $r, array_keys( $defaults ) ) ) );
-	$last_changed = wp_cache_get( 'last_changed', 'posts' );
-	if ( ! $last_changed ) {
-		$last_changed = microtime();
-		wp_cache_set( 'last_changed', $last_changed, 'posts' );
-	}
+	$last_changed = wp_cache_get_last_changed( 'posts' );
 
 	$cache_key = "get_pages:$key:$last_changed";
 	if ( $cache = wp_cache_get( $cache_key, 'posts' ) ) {
@@ -4694,15 +4809,17 @@ function is_local_attachment($url) {
  * setting the value for the 'comment_status' key.
  *
  * @since 2.0.0
+ * @since 4.7.0 Added the `$wp_error` parameter to allow a WP_Error to be returned on failure.
  *
  * @see wp_insert_post()
  *
- * @param string|array $args   Arguments for inserting an attachment.
- * @param string       $file   Optional. Filename.
- * @param int          $parent Optional. Parent post ID.
- * @return int Attachment ID.
+ * @param string|array $args     Arguments for inserting an attachment.
+ * @param string       $file     Optional. Filename.
+ * @param int          $parent   Optional. Parent post ID.
+ * @param bool         $wp_error Optional. Whether to return a WP_Error on failure. Default false.
+ * @return int|WP_Error The attachment ID on success. The value 0 or WP_Error on failure.
  */
-function wp_insert_attachment( $args, $file = false, $parent = 0 ) {
+function wp_insert_attachment( $args, $file = false, $parent = 0, $wp_error = false ) {
 	$defaults = array(
 		'file'        => $file,
 		'post_parent' => 0
@@ -4716,7 +4833,7 @@ function wp_insert_attachment( $args, $file = false, $parent = 0 ) {
 
 	$data['post_type'] = 'attachment';
 
-	return wp_insert_post( $data );
+	return wp_insert_post( $data, $wp_error );
 }
 
 /**
@@ -5505,35 +5622,38 @@ function _get_last_post_time( $timezone, $field, $post_type = 'any' ) {
 	}
 
 	$date = wp_cache_get( $key, 'timeinfo' );
+	if ( false !== $date ) {
+		return $date;
+	}
 
-	if ( ! $date ) {
-		if ( 'any' === $post_type ) {
-			$post_types = get_post_types( array( 'public' => true ) );
-			array_walk( $post_types, array( $wpdb, 'escape_by_ref' ) );
-			$post_types = "'" . implode( "', '", $post_types ) . "'";
-		} else {
-			$post_types = "'" . sanitize_key( $post_type ) . "'";
-		}
+	if ( 'any' === $post_type ) {
+		$post_types = get_post_types( array( 'public' => true ) );
+		array_walk( $post_types, array( $wpdb, 'escape_by_ref' ) );
+		$post_types = "'" . implode( "', '", $post_types ) . "'";
+	} else {
+		$post_types = "'" . sanitize_key( $post_type ) . "'";
+	}
 
-		switch ( $timezone ) {
-			case 'gmt':
-				$date = $wpdb->get_var("SELECT post_{$field}_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1");
-				break;
-			case 'blog':
-				$date = $wpdb->get_var("SELECT post_{$field} FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1");
-				break;
-			case 'server':
-				$add_seconds_server = date( 'Z' );
-				$date = $wpdb->get_var("SELECT DATE_ADD(post_{$field}_gmt, INTERVAL '$add_seconds_server' SECOND) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1");
-				break;
-		}
+	switch ( $timezone ) {
+		case 'gmt':
+			$date = $wpdb->get_var("SELECT post_{$field}_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1");
+			break;
+		case 'blog':
+			$date = $wpdb->get_var("SELECT post_{$field} FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1");
+			break;
+		case 'server':
+			$add_seconds_server = date( 'Z' );
+			$date = $wpdb->get_var("SELECT DATE_ADD(post_{$field}_gmt, INTERVAL '$add_seconds_server' SECOND) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type IN ({$post_types}) ORDER BY post_{$field}_gmt DESC LIMIT 1");
+			break;
+	}
 
-		if ( $date ) {
-			wp_cache_set( $key, $date, 'timeinfo' );
-		}
+	if ( $date ) {
+		wp_cache_set( $key, $date, 'timeinfo' );
+
+		return $date;
 	}
 
-	return $date;
+	return false;
 }
 
 /**
diff --git a/wp-includes/query.php b/wp-includes/query.php
index c5c1ae657..744610f42 100644
--- a/wp-includes/query.php
+++ b/wp-includes/query.php
@@ -837,4089 +837,6 @@ function the_comment() {
 	return $wp_query->the_comment();
 }
 
-/*
- * WP_Query
- */
-
-/**
- * The WordPress Query class.
- *
- * @link https://codex.wordpress.org/Function_Reference/WP_Query Codex page.
- *
- * @since 1.5.0
- * @since 4.5.0 Removed the `$comments_popup` property.
- */
-class WP_Query {
-
-	/**
-	 * Query vars set by the user
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var array
-	 */
-	public $query;
-
-	/**
-	 * Query vars, after parsing
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var array
-	 */
-	public $query_vars = array();
-
-	/**
-	 * Taxonomy query, as passed to get_tax_sql()
-	 *
-	 * @since 3.1.0
-	 * @access public
-	 * @var object WP_Tax_Query
-	 */
-	public $tax_query;
-
-	/**
-	 * Metadata query container
-	 *
-	 * @since 3.2.0
-	 * @access public
-	 * @var object WP_Meta_Query
-	 */
-	public $meta_query = false;
-
-	/**
-	 * Date query container
-	 *
-	 * @since 3.7.0
-	 * @access public
-	 * @var object WP_Date_Query
-	 */
-	public $date_query = false;
-
-	/**
-	 * Holds the data for a single object that is queried.
-	 *
-	 * Holds the contents of a post, page, category, attachment.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var object|array
-	 */
-	public $queried_object;
-
-	/**
-	 * The ID of the queried object.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var int
-	 */
-	public $queried_object_id;
-
-	/**
-	 * Get post database query.
-	 *
-	 * @since 2.0.1
-	 * @access public
-	 * @var string
-	 */
-	public $request;
-
-	/**
-	 * List of posts.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var array
-	 */
-	public $posts;
-
-	/**
-	 * The amount of posts for the current query.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var int
-	 */
-	public $post_count = 0;
-
-	/**
-	 * Index of the current item in the loop.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var int
-	 */
-	public $current_post = -1;
-
-	/**
-	 * Whether the loop has started and the caller is in the loop.
-	 *
-	 * @since 2.0.0
-	 * @access public
-	 * @var bool
-	 */
-	public $in_the_loop = false;
-
-	/**
-	 * The current post.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var WP_Post
-	 */
-	public $post;
-
-	/**
-	 * The list of comments for current post.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 * @var array
-	 */
-	public $comments;
-
-	/**
-	 * The amount of comments for the posts.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 * @var int
-	 */
-	public $comment_count = 0;
-
-	/**
-	 * The index of the comment in the comment loop.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 * @var int
-	 */
-	public $current_comment = -1;
-
-	/**
-	 * Current comment ID.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 * @var int
-	 */
-	public $comment;
-
-	/**
-	 * The amount of found posts for the current query.
-	 *
-	 * If limit clause was not used, equals $post_count.
-	 *
-	 * @since 2.1.0
-	 * @access public
-	 * @var int
-	 */
-	public $found_posts = 0;
-
-	/**
-	 * The amount of pages.
-	 *
-	 * @since 2.1.0
-	 * @access public
-	 * @var int
-	 */
-	public $max_num_pages = 0;
-
-	/**
-	 * The amount of comment pages.
-	 *
-	 * @since 2.7.0
-	 * @access public
-	 * @var int
-	 */
-	public $max_num_comment_pages = 0;
-
-	/**
-	 * Set if query is single post.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_single = false;
-
-	/**
-	 * Set if query is preview of blog.
-	 *
-	 * @since 2.0.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_preview = false;
-
-	/**
-	 * Set if query returns a page.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_page = false;
-
-	/**
-	 * Set if query is an archive list.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_archive = false;
-
-	/**
-	 * Set if query is part of a date.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_date = false;
-
-	/**
-	 * Set if query contains a year.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_year = false;
-
-	/**
-	 * Set if query contains a month.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_month = false;
-
-	/**
-	 * Set if query contains a day.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_day = false;
-
-	/**
-	 * Set if query contains time.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_time = false;
-
-	/**
-	 * Set if query contains an author.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_author = false;
-
-	/**
-	 * Set if query contains category.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_category = false;
-
-	/**
-	 * Set if query contains tag.
-	 *
-	 * @since 2.3.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_tag = false;
-
-	/**
-	 * Set if query contains taxonomy.
-	 *
-	 * @since 2.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_tax = false;
-
-	/**
-	 * Set if query was part of a search result.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_search = false;
-
-	/**
-	 * Set if query is feed display.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_feed = false;
-
-	/**
-	 * Set if query is comment feed display.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_comment_feed = false;
-
-	/**
-	 * Set if query is trackback.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_trackback = false;
-
-	/**
-	 * Set if query is blog homepage.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_home = false;
-
-	/**
-	 * Set if query couldn't found anything.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_404 = false;
-
-	/**
-	 * Set if query is embed.
-	 *
-	 * @since 4.4.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_embed = false;
-
-	/**
-	 * Set if query is paged
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_paged = false;
-
-	/**
-	 * Set if query is part of administration page.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_admin = false;
-
-	/**
-	 * Set if query is an attachment.
-	 *
-	 * @since 2.0.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_attachment = false;
-
-	/**
-	 * Set if is single, is a page, or is an attachment.
-	 *
-	 * @since 2.1.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_singular = false;
-
-	/**
-	 * Set if query is for robots.
-	 *
-	 * @since 2.1.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_robots = false;
-
-	/**
-	 * Set if query contains posts.
-	 *
-	 * Basically, the homepage if the option isn't set for the static homepage.
-	 *
-	 * @since 2.1.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_posts_page = false;
-
-	/**
-	 * Set if query is for a post type archive.
-	 *
-	 * @since 3.1.0
-	 * @access public
-	 * @var bool
-	 */
-	public $is_post_type_archive = false;
-
-	/**
-	 * Stores the ->query_vars state like md5(serialize( $this->query_vars ) ) so we know
-	 * whether we have to re-parse because something has changed
-	 *
-	 * @since 3.1.0
-	 * @access private
-	 * @var bool|string
-	 */
-	private $query_vars_hash = false;
-
-	/**
-	 * Whether query vars have changed since the initial parse_query() call. Used to catch modifications to query vars made
-	 * via pre_get_posts hooks.
-	 *
-	 * @since 3.1.1
-	 * @access private
-	 */
-	private $query_vars_changed = true;
-
-	/**
-	 * Set if post thumbnails are cached
-	 *
-	 * @since 3.2.0
-	 * @access public
-	 * @var bool
-	 */
-	 public $thumbnails_cached = false;
-
-	/**
-	 * Cached list of search stopwords.
-	 *
-	 * @since 3.7.0
-	 * @var array
-	 */
-	private $stopwords;
-
-	private $compat_fields = array( 'query_vars_hash', 'query_vars_changed' );
-
-	private $compat_methods = array( 'init_query_flags', 'parse_tax_query' );
-
-	/**
-	 * Resets query flags to false.
-	 *
-	 * The query flags are what page info WordPress was able to figure out.
-	 *
-	 * @since 2.0.0
-	 * @access private
-	 */
-	private function init_query_flags() {
-		$this->is_single = false;
-		$this->is_preview = false;
-		$this->is_page = false;
-		$this->is_archive = false;
-		$this->is_date = false;
-		$this->is_year = false;
-		$this->is_month = false;
-		$this->is_day = false;
-		$this->is_time = false;
-		$this->is_author = false;
-		$this->is_category = false;
-		$this->is_tag = false;
-		$this->is_tax = false;
-		$this->is_search = false;
-		$this->is_feed = false;
-		$this->is_comment_feed = false;
-		$this->is_trackback = false;
-		$this->is_home = false;
-		$this->is_404 = false;
-		$this->is_paged = false;
-		$this->is_admin = false;
-		$this->is_attachment = false;
-		$this->is_singular = false;
-		$this->is_robots = false;
-		$this->is_posts_page = false;
-		$this->is_post_type_archive = false;
-	}
-
-	/**
-	 * Initiates object properties and sets default values.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 */
-	public function init() {
-		unset($this->posts);
-		unset($this->query);
-		$this->query_vars = array();
-		unset($this->queried_object);
-		unset($this->queried_object_id);
-		$this->post_count = 0;
-		$this->current_post = -1;
-		$this->in_the_loop = false;
-		unset( $this->request );
-		unset( $this->post );
-		unset( $this->comments );
-		unset( $this->comment );
-		$this->comment_count = 0;
-		$this->current_comment = -1;
-		$this->found_posts = 0;
-		$this->max_num_pages = 0;
-		$this->max_num_comment_pages = 0;
-
-		$this->init_query_flags();
-	}
-
-	/**
-	 * Reparse the query vars.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 */
-	public function parse_query_vars() {
-		$this->parse_query();
-	}
-
-	/**
-	 * Fills in the query variables, which do not exist within the parameter.
-	 *
-	 * @since 2.1.0
-	 * @since 4.4.0 Removed the `comments_popup` public query variable.
-	 * @access public
-	 *
-	 * @param array $array Defined query variables.
-	 * @return array Complete query variables with undefined ones filled in empty.
-	 */
-	public function fill_query_vars($array) {
-		$keys = array(
-			'error'
-			, 'm'
-			, 'p'
-			, 'post_parent'
-			, 'subpost'
-			, 'subpost_id'
-			, 'attachment'
-			, 'attachment_id'
-			, 'name'
-			, 'static'
-			, 'pagename'
-			, 'page_id'
-			, 'second'
-			, 'minute'
-			, 'hour'
-			, 'day'
-			, 'monthnum'
-			, 'year'
-			, 'w'
-			, 'category_name'
-			, 'tag'
-			, 'cat'
-			, 'tag_id'
-			, 'author'
-			, 'author_name'
-			, 'feed'
-			, 'tb'
-			, 'paged'
-			, 'meta_key'
-			, 'meta_value'
-			, 'preview'
-			, 's'
-			, 'sentence'
-			, 'title'
-			, 'fields'
-			, 'menu_order'
-			, 'embed'
-		);
-
-		foreach ( $keys as $key ) {
-			if ( !isset($array[$key]) )
-				$array[$key] = '';
-		}
-
-		$array_keys = array( 'category__in', 'category__not_in', 'category__and', 'post__in', 'post__not_in', 'post_name__in',
-			'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and', 'post_parent__in', 'post_parent__not_in',
-			'author__in', 'author__not_in' );
-
-		foreach ( $array_keys as $key ) {
-			if ( !isset($array[$key]) )
-				$array[$key] = array();
-		}
-		return $array;
-	}
-
-	/**
-	 * Parse a query string and set query type booleans.
-	 *
-	 * @since 1.5.0
-	 * @since 4.2.0 Introduced the ability to order by specific clauses of a `$meta_query`, by passing the clause's
-	 *              array key to `$orderby`.
-	 * @since 4.4.0 Introduced `$post_name__in` and `$title` parameters. `$s` was updated to support excluded
-	 *              search terms, by prepending a hyphen.
-	 * @since 4.5.0 Removed the `$comments_popup` parameter.
-	 *              Introduced the `$comment_status` and `$ping_status` parameters.
-	 *              Introduced `RAND(x)` syntax for `$orderby`, which allows an integer seed value to random sorts.
-	 * @since 4.6.0 Added 'post_name__in' support for `$orderby`. Introduced the `$lazy_load_term_meta` argument.
-	 * @access public
-	 *
-	 * @param string|array $query {
-	 *     Optional. Array or string of Query parameters.
-	 *
-	 *     @type int          $attachment_id           Attachment post ID. Used for 'attachment' post_type.
-	 *     @type int|string   $author                  Author ID, or comma-separated list of IDs.
-	 *     @type string       $author_name             User 'user_nicename'.
-	 *     @type array        $author__in              An array of author IDs to query from.
-	 *     @type array        $author__not_in          An array of author IDs not to query from.
-	 *     @type bool         $cache_results           Whether to cache post information. Default true.
-	 *     @type int|string   $cat                     Category ID or comma-separated list of IDs (this or any children).
-	 *     @type array        $category__and           An array of category IDs (AND in).
-	 *     @type array        $category__in            An array of category IDs (OR in, no children).
-	 *     @type array        $category__not_in        An array of category IDs (NOT in).
-	 *     @type string       $category_name           Use category slug (not name, this or any children).
-	 *     @type string       $comment_status          Comment status.
-	 *     @type int          $comments_per_page       The number of comments to return per page.
-	 *                                                 Default 'comments_per_page' option.
-	 *     @type array        $date_query              An associative array of WP_Date_Query arguments.
-	 *                                                 See WP_Date_Query::__construct().
-	 *     @type int          $day                     Day of the month. Default empty. Accepts numbers 1-31.
-	 *     @type bool         $exact                   Whether to search by exact keyword. Default false.
-	 *     @type string|array $fields                  Which fields to return. Single field or all fields (string),
-	 *                                                 or array of fields. 'id=>parent' uses 'id' and 'post_parent'.
-	 *                                                 Default all fields. Accepts 'ids', 'id=>parent'.
-	 *     @type int          $hour                    Hour of the day. Default empty. Accepts numbers 0-23.
-	 *     @type int|bool     $ignore_sticky_posts     Whether to ignore sticky posts or not. Setting this to false
-	 *                                                 excludes stickies from 'post__in'. Accepts 1|true, 0|false.
-	 *                                                 Default 0|false.
-	 *     @type int          $m                       Combination YearMonth. Accepts any four-digit year and month
-	 *                                                 numbers 1-12. Default empty.
-	 *     @type string       $meta_compare            Comparison operator to test the 'meta_value'.
-	 *     @type string       $meta_key                Custom field key.
-	 *     @type array        $meta_query              An associative array of WP_Meta_Query arguments. See WP_Meta_Query.
-	 *     @type string       $meta_value              Custom field value.
-	 *     @type int          $meta_value_num          Custom field value number.
-	 *     @type int          $menu_order              The menu order of the posts.
-	 *     @type int          $monthnum                The two-digit month. Default empty. Accepts numbers 1-12.
-	 *     @type string       $name                    Post slug.
-	 *     @type bool         $nopaging                Show all posts (true) or paginate (false). Default false.
-	 *     @type bool         $no_found_rows           Whether to skip counting the total rows found. Enabling can improve
-	 *                                                 performance. Default false.
-	 *     @type int          $offset                  The number of posts to offset before retrieval.
-	 *     @type string       $order                   Designates ascending or descending order of posts. Default 'DESC'.
-	 *                                                 Accepts 'ASC', 'DESC'.
-	 *     @type string|array $orderby                 Sort retrieved posts by parameter. One or more options may be
-	 *                                                 passed. To use 'meta_value', or 'meta_value_num',
-	 *                                                 'meta_key=keyname' must be also be defined. To sort by a
-	 *                                                 specific `$meta_query` clause, use that clause's array key.
-	 *                                                 Default 'date'. Accepts 'none', 'name', 'author', 'date',
-	 *                                                 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand',
-	 *                                                 'RAND(x)' (where 'x' is an integer seed value),
-	 *                                                 'comment_count', 'meta_value', 'meta_value_num', 'post__in',
-	 *                                                 'post_name__in', 'post_parent__in', and the array keys
-	 *                                                 of `$meta_query`.
-	 *     @type int          $p                       Post ID.
-	 *     @type int          $page                    Show the number of posts that would show up on page X of a
-	 *                                                 static front page.
-	 *     @type int          $paged                   The number of the current page.
-	 *     @type int          $page_id                 Page ID.
-	 *     @type string       $pagename                Page slug.
-	 *     @type string       $perm                    Show posts if user has the appropriate capability.
-	 *     @type string       $ping_status             Ping status.
-	 *     @type array        $post__in                An array of post IDs to retrieve, sticky posts will be included
-	 *     @type string       $post_mime_type          The mime type of the post. Used for 'attachment' post_type.
-	 *     @type array        $post__not_in            An array of post IDs not to retrieve. Note: a string of comma-
-	 *                                                 separated IDs will NOT work.
-	 *     @type int          $post_parent             Page ID to retrieve child pages for. Use 0 to only retrieve
-	 *                                                 top-level pages.
-	 *     @type array        $post_parent__in         An array containing parent page IDs to query child pages from.
-	 *     @type array        $post_parent__not_in     An array containing parent page IDs not to query child pages from.
-	 *     @type string|array $post_type               A post type slug (string) or array of post type slugs.
-	 *                                                 Default 'any' if using 'tax_query'.
-	 *     @type string|array $post_status             A post status (string) or array of post statuses.
-	 *     @type int          $posts_per_page          The number of posts to query for. Use -1 to request all posts.
-	 *     @type int          $posts_per_archive_page  The number of posts to query for by archive page. Overrides
-	 *                                                 'posts_per_page' when is_archive(), or is_search() are true.
-	 *     @type array        $post_name__in           An array of post slugs that results must match.
-	 *     @type string       $s                       Search keyword(s). Prepending a term with a hyphen will
-	 *                                                 exclude posts matching that term. Eg, 'pillow -sofa' will
-	 *                                                 return posts containing 'pillow' but not 'sofa'.
-	 *     @type int          $second                  Second of the minute. Default empty. Accepts numbers 0-60.
-	 *     @type bool         $sentence                Whether to search by phrase. Default false.
-	 *     @type bool         $suppress_filters        Whether to suppress filters. Default false.
-	 *     @type string       $tag                     Tag slug. Comma-separated (either), Plus-separated (all).
-	 *     @type array        $tag__and                An array of tag ids (AND in).
-	 *     @type array        $tag__in                 An array of tag ids (OR in).
-	 *     @type array        $tag__not_in             An array of tag ids (NOT in).
-	 *     @type int          $tag_id                  Tag id or comma-separated list of IDs.
-	 *     @type array        $tag_slug__and           An array of tag slugs (AND in).
-	 *     @type array        $tag_slug__in            An array of tag slugs (OR in). unless 'ignore_sticky_posts' is
-	 *                                                 true. Note: a string of comma-separated IDs will NOT work.
-	 *     @type array        $tax_query               An associative array of WP_Tax_Query arguments.
-	 *                                                 See WP_Tax_Query->queries.
-	 *     @type string       $title                   Post title.
-	 *     @type bool         $update_post_meta_cache  Whether to update the post meta cache. Default true.
-	 *     @type bool         $update_post_term_cache  Whether to update the post term cache. Default true.
-	 *     @type bool         $lazy_load_term_meta     Whether to lazy-load term meta. Setting to false will
-	 *                                                 disable cache priming for term meta, so that each
-	 *                                                 get_term_meta() call will hit the database.
-	 *                                                 Defaults to the value of `$update_post_term_cache`.
-	 *     @type int          $w                       The week number of the year. Default empty. Accepts numbers 0-53.
-	 *     @type int          $year                    The four-digit year. Default empty. Accepts any four-digit year.
-	 * }
-	 */
-	public function parse_query( $query =  '' ) {
-		if ( ! empty( $query ) ) {
-			$this->init();
-			$this->query = $this->query_vars = wp_parse_args( $query );
-		} elseif ( ! isset( $this->query ) ) {
-			$this->query = $this->query_vars;
-		}
-
-		$this->query_vars = $this->fill_query_vars($this->query_vars);
-		$qv = &$this->query_vars;
-		$this->query_vars_changed = true;
-
-		if ( ! empty($qv['robots']) )
-			$this->is_robots = true;
-
-		$qv['p'] =  absint($qv['p']);
-		$qv['page_id'] =  absint($qv['page_id']);
-		$qv['year'] = absint($qv['year']);
-		$qv['monthnum'] = absint($qv['monthnum']);
-		$qv['day'] = absint($qv['day']);
-		$qv['w'] = absint($qv['w']);
-		$qv['m'] = is_scalar( $qv['m'] ) ? preg_replace( '|[^0-9]|', '', $qv['m'] ) : '';
-		$qv['paged'] = absint($qv['paged']);
-		$qv['cat'] = preg_replace( '|[^0-9,-]|', '', $qv['cat'] ); // comma separated list of positive or negative integers
-		$qv['author'] = preg_replace( '|[^0-9,-]|', '', $qv['author'] ); // comma separated list of positive or negative integers
-		$qv['pagename'] = trim( $qv['pagename'] );
-		$qv['name'] = trim( $qv['name'] );
-		$qv['title'] = trim( $qv['title'] );
-		if ( '' !== $qv['hour'] ) $qv['hour'] = absint($qv['hour']);
-		if ( '' !== $qv['minute'] ) $qv['minute'] = absint($qv['minute']);
-		if ( '' !== $qv['second'] ) $qv['second'] = absint($qv['second']);
-		if ( '' !== $qv['menu_order'] ) $qv['menu_order'] = absint($qv['menu_order']);
-
-		// Fairly insane upper bound for search string lengths.
-		if ( ! is_scalar( $qv['s'] ) || ( ! empty( $qv['s'] ) && strlen( $qv['s'] ) > 1600 ) ) {
-			$qv['s'] = '';
-		}
-
-		// Compat. Map subpost to attachment.
-		if ( '' != $qv['subpost'] )
-			$qv['attachment'] = $qv['subpost'];
-		if ( '' != $qv['subpost_id'] )
-			$qv['attachment_id'] = $qv['subpost_id'];
-
-		$qv['attachment_id'] = absint($qv['attachment_id']);
-
-		if ( ('' != $qv['attachment']) || !empty($qv['attachment_id']) ) {
-			$this->is_single = true;
-			$this->is_attachment = true;
-		} elseif ( '' != $qv['name'] ) {
-			$this->is_single = true;
-		} elseif ( $qv['p'] ) {
-			$this->is_single = true;
-		} elseif ( ('' !== $qv['hour']) && ('' !== $qv['minute']) &&('' !== $qv['second']) && ('' != $qv['year']) && ('' != $qv['monthnum']) && ('' != $qv['day']) ) {
-			// If year, month, day, hour, minute, and second are set, a single
-			// post is being queried.
-			$this->is_single = true;
-		} elseif ( '' != $qv['static'] || '' != $qv['pagename'] || !empty($qv['page_id']) ) {
-			$this->is_page = true;
-			$this->is_single = false;
-		} else {
-			// Look for archive queries. Dates, categories, authors, search, post type archives.
-
-			if ( isset( $this->query['s'] ) ) {
-				$this->is_search = true;
-			}
-
-			if ( '' !== $qv['second'] ) {
-				$this->is_time = true;
-				$this->is_date = true;
-			}
-
-			if ( '' !== $qv['minute'] ) {
-				$this->is_time = true;
-				$this->is_date = true;
-			}
-
-			if ( '' !== $qv['hour'] ) {
-				$this->is_time = true;
-				$this->is_date = true;
-			}
-
-			if ( $qv['day'] ) {
-				if ( ! $this->is_date ) {
-					$date = sprintf( '%04d-%02d-%02d', $qv['year'], $qv['monthnum'], $qv['day'] );
-					if ( $qv['monthnum'] && $qv['year'] && ! wp_checkdate( $qv['monthnum'], $qv['day'], $qv['year'], $date ) ) {
-						$qv['error'] = '404';
-					} else {
-						$this->is_day = true;
-						$this->is_date = true;
-					}
-				}
-			}
-
-			if ( $qv['monthnum'] ) {
-				if ( ! $this->is_date ) {
-					if ( 12 < $qv['monthnum'] ) {
-						$qv['error'] = '404';
-					} else {
-						$this->is_month = true;
-						$this->is_date = true;
-					}
-				}
-			}
-
-			if ( $qv['year'] ) {
-				if ( ! $this->is_date ) {
-					$this->is_year = true;
-					$this->is_date = true;
-				}
-			}
-
-			if ( $qv['m'] ) {
-				$this->is_date = true;
-				if ( strlen($qv['m']) > 9 ) {
-					$this->is_time = true;
-				} elseif ( strlen( $qv['m'] ) > 7 ) {
-					$this->is_day = true;
-				} elseif ( strlen( $qv['m'] ) > 5 ) {
-					$this->is_month = true;
-				} else {
-					$this->is_year = true;
-				}
-			}
-
-			if ( '' != $qv['w'] ) {
-				$this->is_date = true;
-			}
-
-			$this->query_vars_hash = false;
-			$this->parse_tax_query( $qv );
-
-			foreach ( $this->tax_query->queries as $tax_query ) {
-				if ( ! is_array( $tax_query ) ) {
-					continue;
-				}
-
-				if ( isset( $tax_query['operator'] ) && 'NOT IN' != $tax_query['operator'] ) {
-					switch ( $tax_query['taxonomy'] ) {
-						case 'category':
-							$this->is_category = true;
-							break;
-						case 'post_tag':
-							$this->is_tag = true;
-							break;
-						default:
-							$this->is_tax = true;
-					}
-				}
-			}
-			unset( $tax_query );
-
-			if ( empty($qv['author']) || ($qv['author'] == '0') ) {
-				$this->is_author = false;
-			} else {
-				$this->is_author = true;
-			}
-
-			if ( '' != $qv['author_name'] )
-				$this->is_author = true;
-
-			if ( !empty( $qv['post_type'] ) && ! is_array( $qv['post_type'] ) ) {
-				$post_type_obj = get_post_type_object( $qv['post_type'] );
-				if ( ! empty( $post_type_obj->has_archive ) )
-					$this->is_post_type_archive = true;
-			}
-
-			if ( $this->is_post_type_archive || $this->is_date || $this->is_author || $this->is_category || $this->is_tag || $this->is_tax )
-				$this->is_archive = true;
-		}
-
-		if ( '' != $qv['feed'] )
-			$this->is_feed = true;
-
-		if ( '' != $qv['embed'] ) {
-			$this->is_embed = true;
-		}
-
-		if ( '' != $qv['tb'] )
-			$this->is_trackback = true;
-
-		if ( '' != $qv['paged'] && ( intval($qv['paged']) > 1 ) )
-			$this->is_paged = true;
-
-		// if we're previewing inside the write screen
-		if ( '' != $qv['preview'] )
-			$this->is_preview = true;
-
-		if ( is_admin() )
-			$this->is_admin = true;
-
-		if ( false !== strpos($qv['feed'], 'comments-') ) {
-			$qv['feed'] = str_replace('comments-', '', $qv['feed']);
-			$qv['withcomments'] = 1;
-		}
-
-		$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
-
-		if ( $this->is_feed && ( !empty($qv['withcomments']) || ( empty($qv['withoutcomments']) && $this->is_singular ) ) )
-			$this->is_comment_feed = true;
-
-		if ( !( $this->is_singular || $this->is_archive || $this->is_search || $this->is_feed || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) || $this->is_trackback || $this->is_404 || $this->is_admin || $this->is_robots ) )
-			$this->is_home = true;
-
-		// Correct is_* for page_on_front and page_for_posts
-		if ( $this->is_home && 'page' == get_option('show_on_front') && get_option('page_on_front') ) {
-			$_query = wp_parse_args($this->query);
-			// pagename can be set and empty depending on matched rewrite rules. Ignore an empty pagename.
-			if ( isset($_query['pagename']) && '' == $_query['pagename'] )
-				unset($_query['pagename']);
-
-			unset( $_query['embed'] );
-
-			if ( empty($_query) || !array_diff( array_keys($_query), array('preview', 'page', 'paged', 'cpage') ) ) {
-				$this->is_page = true;
-				$this->is_home = false;
-				$qv['page_id'] = get_option('page_on_front');
-				// Correct <!--nextpage--> for page_on_front
-				if ( !empty($qv['paged']) ) {
-					$qv['page'] = $qv['paged'];
-					unset($qv['paged']);
-				}
-			}
-		}
-
-		if ( '' != $qv['pagename'] ) {
-			$this->queried_object = get_page_by_path( $qv['pagename'] );
-
-			if ( $this->queried_object && 'attachment' == $this->queried_object->post_type ) {
-				if ( preg_match( "/^[^%]*%(?:postname)%/", get_option( 'permalink_structure' ) ) ) {
-					// See if we also have a post with the same slug
-					$post = get_page_by_path( $qv['pagename'], OBJECT, 'post' );
-					if ( $post ) {
-						$this->queried_object = $post;
-						$this->is_page = false;
-						$this->is_single = true;
-					}
-				}
-			}
-
-			if ( ! empty( $this->queried_object ) ) {
-				$this->queried_object_id = (int) $this->queried_object->ID;
-			} else {
-				unset( $this->queried_object );
-			}
-
-			if  ( 'page' == get_option('show_on_front') && isset($this->queried_object_id) && $this->queried_object_id == get_option('page_for_posts') ) {
-				$this->is_page = false;
-				$this->is_home = true;
-				$this->is_posts_page = true;
-			}
-		}
-
-		if ( $qv['page_id'] ) {
-			if  ( 'page' == get_option('show_on_front') && $qv['page_id'] == get_option('page_for_posts') ) {
-				$this->is_page = false;
-				$this->is_home = true;
-				$this->is_posts_page = true;
-			}
-		}
-
-		if ( !empty($qv['post_type']) ) {
-			if ( is_array($qv['post_type']) )
-				$qv['post_type'] = array_map('sanitize_key', $qv['post_type']);
-			else
-				$qv['post_type'] = sanitize_key($qv['post_type']);
-		}
-
-		if ( ! empty( $qv['post_status'] ) ) {
-			if ( is_array( $qv['post_status'] ) )
-				$qv['post_status'] = array_map('sanitize_key', $qv['post_status']);
-			else
-				$qv['post_status'] = preg_replace('|[^a-z0-9_,-]|', '', $qv['post_status']);
-		}
-
-		if ( $this->is_posts_page && ( ! isset($qv['withcomments']) || ! $qv['withcomments'] ) )
-			$this->is_comment_feed = false;
-
-		$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
-		// Done correcting is_* for page_on_front and page_for_posts
-
-		if ( '404' == $qv['error'] )
-			$this->set_404();
-
-		$this->is_embed = $this->is_embed && ( $this->is_singular || $this->is_404 );
-
-		$this->query_vars_hash = md5( serialize( $this->query_vars ) );
-		$this->query_vars_changed = false;
-
-		/**
-		 * Fires after the main query vars have been parsed.
-		 *
-		 * @since 1.5.0
-		 *
-		 * @param WP_Query &$this The WP_Query instance (passed by reference).
-		 */
-		do_action_ref_array( 'parse_query', array( &$this ) );
-	}
-
-	/**
-	 * Parses various taxonomy related query vars.
-	 *
-	 * For BC, this method is not marked as protected. See [28987].
-	 *
-	 * @access protected
-	 * @since 3.1.0
-	 *
-	 * @param array $q The query variables. Passed by reference.
-	 */
-	public function parse_tax_query( &$q ) {
-		if ( ! empty( $q['tax_query'] ) && is_array( $q['tax_query'] ) ) {
-			$tax_query = $q['tax_query'];
-		} else {
-			$tax_query = array();
-		}
-
-		if ( !empty($q['taxonomy']) && !empty($q['term']) ) {
-			$tax_query[] = array(
-				'taxonomy' => $q['taxonomy'],
-				'terms' => array( $q['term'] ),
-				'field' => 'slug',
-			);
-		}
-
-		foreach ( get_taxonomies( array() , 'objects' ) as $taxonomy => $t ) {
-			if ( 'post_tag' == $taxonomy )
-				continue;	// Handled further down in the $q['tag'] block
-
-			if ( $t->query_var && !empty( $q[$t->query_var] ) ) {
-				$tax_query_defaults = array(
-					'taxonomy' => $taxonomy,
-					'field' => 'slug',
-				);
-
- 				if ( isset( $t->rewrite['hierarchical'] ) && $t->rewrite['hierarchical'] ) {
-					$q[$t->query_var] = wp_basename( $q[$t->query_var] );
-				}
-
-				$term = $q[$t->query_var];
-
-				if ( is_array( $term ) ) {
-					$term = implode( ',', $term );
-				}
-
-				if ( strpos($term, '+') !== false ) {
-					$terms = preg_split( '/[+]+/', $term );
-					foreach ( $terms as $term ) {
-						$tax_query[] = array_merge( $tax_query_defaults, array(
-							'terms' => array( $term )
-						) );
-					}
-				} else {
-					$tax_query[] = array_merge( $tax_query_defaults, array(
-						'terms' => preg_split( '/[,]+/', $term )
-					) );
-				}
-			}
-		}
-
-		// If querystring 'cat' is an array, implode it.
-		if ( is_array( $q['cat'] ) ) {
-			$q['cat'] = implode( ',', $q['cat'] );
-		}
-
-		// Category stuff
-		if ( ! empty( $q['cat'] ) && ! $this->is_singular ) {
-			$cat_in = $cat_not_in = array();
-
-			$cat_array = preg_split( '/[,\s]+/', urldecode( $q['cat'] ) );
-			$cat_array = array_map( 'intval', $cat_array );
-			$q['cat'] = implode( ',', $cat_array );
-
-			foreach ( $cat_array as $cat ) {
-				if ( $cat > 0 )
-					$cat_in[] = $cat;
-				elseif ( $cat < 0 )
-					$cat_not_in[] = abs( $cat );
-			}
-
-			if ( ! empty( $cat_in ) ) {
-				$tax_query[] = array(
-					'taxonomy' => 'category',
-					'terms' => $cat_in,
-					'field' => 'term_id',
-					'include_children' => true
-				);
-			}
-
-			if ( ! empty( $cat_not_in ) ) {
-				$tax_query[] = array(
-					'taxonomy' => 'category',
-					'terms' => $cat_not_in,
-					'field' => 'term_id',
-					'operator' => 'NOT IN',
-					'include_children' => true
-				);
-			}
-			unset( $cat_array, $cat_in, $cat_not_in );
-		}
-
-		if ( ! empty( $q['category__and'] ) && 1 === count( (array) $q['category__and'] ) ) {
-			$q['category__and'] = (array) $q['category__and'];
-			if ( ! isset( $q['category__in'] ) )
-				$q['category__in'] = array();
-			$q['category__in'][] = absint( reset( $q['category__and'] ) );
-			unset( $q['category__and'] );
-		}
-
-		if ( ! empty( $q['category__in'] ) ) {
-			$q['category__in'] = array_map( 'absint', array_unique( (array) $q['category__in'] ) );
-			$tax_query[] = array(
-				'taxonomy' => 'category',
-				'terms' => $q['category__in'],
-				'field' => 'term_id',
-				'include_children' => false
-			);
-		}
-
-		if ( ! empty($q['category__not_in']) ) {
-			$q['category__not_in'] = array_map( 'absint', array_unique( (array) $q['category__not_in'] ) );
-			$tax_query[] = array(
-				'taxonomy' => 'category',
-				'terms' => $q['category__not_in'],
-				'operator' => 'NOT IN',
-				'include_children' => false
-			);
-		}
-
-		if ( ! empty($q['category__and']) ) {
-			$q['category__and'] = array_map( 'absint', array_unique( (array) $q['category__and'] ) );
-			$tax_query[] = array(
-				'taxonomy' => 'category',
-				'terms' => $q['category__and'],
-				'field' => 'term_id',
-				'operator' => 'AND',
-				'include_children' => false
-			);
-		}
-
-		// If querystring 'tag' is array, implode it.
-		if ( is_array( $q['tag'] ) ) {
-			$q['tag'] = implode( ',', $q['tag'] );
-		}
-
-		// Tag stuff
-		if ( '' != $q['tag'] && !$this->is_singular && $this->query_vars_changed ) {
-			if ( strpos($q['tag'], ',') !== false ) {
-				$tags = preg_split('/[,\r\n\t ]+/', $q['tag']);
-				foreach ( (array) $tags as $tag ) {
-					$tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
-					$q['tag_slug__in'][] = $tag;
-				}
-			} elseif ( preg_match('/[+\r\n\t ]+/', $q['tag'] ) || ! empty( $q['cat'] ) ) {
-				$tags = preg_split('/[+\r\n\t ]+/', $q['tag']);
-				foreach ( (array) $tags as $tag ) {
-					$tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
-					$q['tag_slug__and'][] = $tag;
-				}
-			} else {
-				$q['tag'] = sanitize_term_field('slug', $q['tag'], 0, 'post_tag', 'db');
-				$q['tag_slug__in'][] = $q['tag'];
-			}
-		}
-
-		if ( !empty($q['tag_id']) ) {
-			$q['tag_id'] = absint( $q['tag_id'] );
-			$tax_query[] = array(
-				'taxonomy' => 'post_tag',
-				'terms' => $q['tag_id']
-			);
-		}
-
-		if ( !empty($q['tag__in']) ) {
-			$q['tag__in'] = array_map('absint', array_unique( (array) $q['tag__in'] ) );
-			$tax_query[] = array(
-				'taxonomy' => 'post_tag',
-				'terms' => $q['tag__in']
-			);
-		}
-
-		if ( !empty($q['tag__not_in']) ) {
-			$q['tag__not_in'] = array_map('absint', array_unique( (array) $q['tag__not_in'] ) );
-			$tax_query[] = array(
-				'taxonomy' => 'post_tag',
-				'terms' => $q['tag__not_in'],
-				'operator' => 'NOT IN'
-			);
-		}
-
-		if ( !empty($q['tag__and']) ) {
-			$q['tag__and'] = array_map('absint', array_unique( (array) $q['tag__and'] ) );
-			$tax_query[] = array(
-				'taxonomy' => 'post_tag',
-				'terms' => $q['tag__and'],
-				'operator' => 'AND'
-			);
-		}
-
-		if ( !empty($q['tag_slug__in']) ) {
-			$q['tag_slug__in'] = array_map('sanitize_title_for_query', array_unique( (array) $q['tag_slug__in'] ) );
-			$tax_query[] = array(
-				'taxonomy' => 'post_tag',
-				'terms' => $q['tag_slug__in'],
-				'field' => 'slug'
-			);
-		}
-
-		if ( !empty($q['tag_slug__and']) ) {
-			$q['tag_slug__and'] = array_map('sanitize_title_for_query', array_unique( (array) $q['tag_slug__and'] ) );
-			$tax_query[] = array(
-				'taxonomy' => 'post_tag',
-				'terms' => $q['tag_slug__and'],
-				'field' => 'slug',
-				'operator' => 'AND'
-			);
-		}
-
-		$this->tax_query = new WP_Tax_Query( $tax_query );
-
-		/**
-		 * Fires after taxonomy-related query vars have been parsed.
-		 *
-		 * @since 3.7.0
-		 *
-		 * @param WP_Query $this The WP_Query instance.
-		 */
-		do_action( 'parse_tax_query', $this );
-	}
-
-	/**
-	 * Generate SQL for the WHERE clause based on passed search terms.
-	 *
-	 * @since 3.7.0
-	 *
-	 * @global wpdb $wpdb WordPress database abstraction object.
-	 *
-	 * @param array $q Query variables.
-	 * @return string WHERE clause.
-	 */
-	protected function parse_search( &$q ) {
-		global $wpdb;
-
-		$search = '';
-
-		// added slashes screw with quote grouping when done early, so done later
-		$q['s'] = stripslashes( $q['s'] );
-		if ( empty( $_GET['s'] ) && $this->is_main_query() )
-			$q['s'] = urldecode( $q['s'] );
-		// there are no line breaks in <input /> fields
-		$q['s'] = str_replace( array( "\r", "\n" ), '', $q['s'] );
-		$q['search_terms_count'] = 1;
-		if ( ! empty( $q['sentence'] ) ) {
-			$q['search_terms'] = array( $q['s'] );
-		} else {
-			if ( preg_match_all( '/".*?("|$)|((?<=[\t ",+])|^)[^\t ",+]+/', $q['s'], $matches ) ) {
-				$q['search_terms_count'] = count( $matches[0] );
-				$q['search_terms'] = $this->parse_search_terms( $matches[0] );
-				// if the search string has only short terms or stopwords, or is 10+ terms long, match it as sentence
-				if ( empty( $q['search_terms'] ) || count( $q['search_terms'] ) > 9 )
-					$q['search_terms'] = array( $q['s'] );
-			} else {
-				$q['search_terms'] = array( $q['s'] );
-			}
-		}
-
-		$n = ! empty( $q['exact'] ) ? '' : '%';
-		$searchand = '';
-		$q['search_orderby_title'] = array();
-		foreach ( $q['search_terms'] as $term ) {
-			// Terms prefixed with '-' should be excluded.
-			$include = '-' !== substr( $term, 0, 1 );
-			if ( $include ) {
-				$like_op  = 'LIKE';
-				$andor_op = 'OR';
-			} else {
-				$like_op  = 'NOT LIKE';
-				$andor_op = 'AND';
-				$term     = substr( $term, 1 );
-			}
-
-			if ( $n && $include ) {
-				$like = '%' . $wpdb->esc_like( $term ) . '%';
-				$q['search_orderby_title'][] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $like );
-			}
-
-			$like = $n . $wpdb->esc_like( $term ) . $n;
-			$search .= $wpdb->prepare( "{$searchand}(($wpdb->posts.post_title $like_op %s) $andor_op ($wpdb->posts.post_excerpt $like_op %s) $andor_op ($wpdb->posts.post_content $like_op %s))", $like, $like, $like );
-			$searchand = ' AND ';
-		}
-
-		if ( ! empty( $search ) ) {
-			$search = " AND ({$search}) ";
-			if ( ! is_user_logged_in() )
-				$search .= " AND ($wpdb->posts.post_password = '') ";
-		}
-
-		return $search;
-	}
-
-	/**
-	 * Check if the terms are suitable for searching.
-	 *
-	 * Uses an array of stopwords (terms) that are excluded from the separate
-	 * term matching when searching for posts. The list of English stopwords is
-	 * the approximate search engines list, and is translatable.
-	 *
-	 * @since 3.7.0
-	 *
-	 * @param array $terms Terms to check.
-	 * @return array Terms that are not stopwords.
-	 */
-	protected function parse_search_terms( $terms ) {
-		$strtolower = function_exists( 'mb_strtolower' ) ? 'mb_strtolower' : 'strtolower';
-		$checked = array();
-
-		$stopwords = $this->get_search_stopwords();
-
-		foreach ( $terms as $term ) {
-			// keep before/after spaces when term is for exact match
-			if ( preg_match( '/^".+"$/', $term ) )
-				$term = trim( $term, "\"'" );
-			else
-				$term = trim( $term, "\"' " );
-
-			// Avoid single A-Z and single dashes.
-			if ( ! $term || ( 1 === strlen( $term ) && preg_match( '/^[a-z\-]$/i', $term ) ) )
-				continue;
-
-			if ( in_array( call_user_func( $strtolower, $term ), $stopwords, true ) )
-				continue;
-
-			$checked[] = $term;
-		}
-
-		return $checked;
-	}
-
-	/**
-	 * Retrieve stopwords used when parsing search terms.
-	 *
-	 * @since 3.7.0
-	 *
-	 * @return array Stopwords.
-	 */
-	protected function get_search_stopwords() {
-		if ( isset( $this->stopwords ) )
-			return $this->stopwords;
-
-		/* translators: This is a comma-separated list of very common words that should be excluded from a search,
-		 * like a, an, and the. These are usually called "stopwords". You should not simply translate these individual
-		 * words into your language. Instead, look for and provide commonly accepted stopwords in your language.
-		 */
-		$words = explode( ',', _x( 'about,an,are,as,at,be,by,com,for,from,how,in,is,it,of,on,or,that,the,this,to,was,what,when,where,who,will,with,www',
-			'Comma-separated list of search stopwords in your language' ) );
-
-		$stopwords = array();
-		foreach ( $words as $word ) {
-			$word = trim( $word, "\r\n\t " );
-			if ( $word )
-				$stopwords[] = $word;
-		}
-
-		/**
-		 * Filters stopwords used when parsing search terms.
-		 *
-		 * @since 3.7.0
-		 *
-		 * @param array $stopwords Stopwords.
-		 */
-		$this->stopwords = apply_filters( 'wp_search_stopwords', $stopwords );
-		return $this->stopwords;
-	}
-
-	/**
-	 * Generate SQL for the ORDER BY condition based on passed search terms.
-	 *
-	 * @global wpdb $wpdb WordPress database abstraction object.
-	 *
-	 * @param array $q Query variables.
-	 * @return string ORDER BY clause.
-	 */
-	protected function parse_search_order( &$q ) {
-		global $wpdb;
-
-		if ( $q['search_terms_count'] > 1 ) {
-			$num_terms = count( $q['search_orderby_title'] );
-
-			// If the search terms contain negative queries, don't bother ordering by sentence matches.
-			$like = '';
-			if ( ! preg_match( '/(?:\s|^)\-/', $q['s'] ) ) {
-				$like = '%' . $wpdb->esc_like( $q['s'] ) . '%';
-			}
-
-			$search_orderby = '';
-
-			// sentence match in 'post_title'
-			if ( $like ) {
-				$search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_title LIKE %s THEN 1 ", $like );
-			}
-
-			// sanity limit, sort as sentence when more than 6 terms
-			// (few searches are longer than 6 terms and most titles are not)
-			if ( $num_terms < 7 ) {
-				// all words in title
-				$search_orderby .= 'WHEN ' . implode( ' AND ', $q['search_orderby_title'] ) . ' THEN 2 ';
-				// any word in title, not needed when $num_terms == 1
-				if ( $num_terms > 1 )
-					$search_orderby .= 'WHEN ' . implode( ' OR ', $q['search_orderby_title'] ) . ' THEN 3 ';
-			}
-
-			// Sentence match in 'post_content' and 'post_excerpt'.
-			if ( $like ) {
-				$search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_excerpt LIKE %s THEN 4 ", $like );
-				$search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_content LIKE %s THEN 5 ", $like );
-			}
-
-			if ( $search_orderby ) {
-				$search_orderby = '(CASE ' . $search_orderby . 'ELSE 6 END)';
-			}
-		} else {
-			// single word or sentence search
-			$search_orderby = reset( $q['search_orderby_title'] ) . ' DESC';
-		}
-
-		return $search_orderby;
-	}
-
-	/**
-	 * If the passed orderby value is allowed, convert the alias to a
-	 * properly-prefixed orderby value.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @global wpdb $wpdb WordPress database abstraction object.
-	 *
-	 * @param string $orderby Alias for the field to order by.
-	 * @return string|false Table-prefixed value to used in the ORDER clause. False otherwise.
-	 */
-	protected function parse_orderby( $orderby ) {
-		global $wpdb;
-
-		// Used to filter values.
-		$allowed_keys = array(
-			'post_name', 'post_author', 'post_date', 'post_title', 'post_modified',
-			'post_parent', 'post_type', 'name', 'author', 'date', 'title', 'modified',
-			'parent', 'type', 'ID', 'menu_order', 'comment_count', 'rand',
-		);
-
-		$primary_meta_key = '';
-		$primary_meta_query = false;
-		$meta_clauses = $this->meta_query->get_clauses();
-		if ( ! empty( $meta_clauses ) ) {
-			$primary_meta_query = reset( $meta_clauses );
-
-			if ( ! empty( $primary_meta_query['key'] ) ) {
-				$primary_meta_key = $primary_meta_query['key'];
-				$allowed_keys[] = $primary_meta_key;
-			}
-
-			$allowed_keys[] = 'meta_value';
-			$allowed_keys[] = 'meta_value_num';
-			$allowed_keys   = array_merge( $allowed_keys, array_keys( $meta_clauses ) );
-		}
-
-		// If RAND() contains a seed value, sanitize and add to allowed keys.
-		$rand_with_seed = false;
-		if ( preg_match( '/RAND\(([0-9]+)\)/i', $orderby, $matches ) ) {
-			$orderby = sprintf( 'RAND(%s)', intval( $matches[1] ) );
-			$allowed_keys[] = $orderby;
-			$rand_with_seed = true;
-		}
-
-		if ( ! in_array( $orderby, $allowed_keys, true ) ) {
-			return false;
-		}
-
-		switch ( $orderby ) {
-			case 'post_name':
-			case 'post_author':
-			case 'post_date':
-			case 'post_title':
-			case 'post_modified':
-			case 'post_parent':
-			case 'post_type':
-			case 'ID':
-			case 'menu_order':
-			case 'comment_count':
-				$orderby_clause = "$wpdb->posts.{$orderby}";
-				break;
-			case 'rand':
-				$orderby_clause = 'RAND()';
-				break;
-			case $primary_meta_key:
-			case 'meta_value':
-				if ( ! empty( $primary_meta_query['type'] ) ) {
-					$orderby_clause = "CAST({$primary_meta_query['alias']}.meta_value AS {$primary_meta_query['cast']})";
-				} else {
-					$orderby_clause = "{$primary_meta_query['alias']}.meta_value";
-				}
-				break;
-			case 'meta_value_num':
-				$orderby_clause = "{$primary_meta_query['alias']}.meta_value+0";
-				break;
-			default:
-				if ( array_key_exists( $orderby, $meta_clauses ) ) {
-					// $orderby corresponds to a meta_query clause.
-					$meta_clause = $meta_clauses[ $orderby ];
-					$orderby_clause = "CAST({$meta_clause['alias']}.meta_value AS {$meta_clause['cast']})";
-				} elseif ( $rand_with_seed ) {
-					$orderby_clause = $orderby;
-				} else {
-					// Default: order by post field.
-					$orderby_clause = "$wpdb->posts.post_" . sanitize_key( $orderby );
-				}
-
-				break;
-		}
-
-		return $orderby_clause;
-	}
-
-	/**
-	 * Parse an 'order' query variable and cast it to ASC or DESC as necessary.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param string $order The 'order' query variable.
-	 * @return string The sanitized 'order' query variable.
-	 */
-	protected function parse_order( $order ) {
-		if ( ! is_string( $order ) || empty( $order ) ) {
-			return 'DESC';
-		}
-
-		if ( 'ASC' === strtoupper( $order ) ) {
-			return 'ASC';
-		} else {
-			return 'DESC';
-		}
-	}
-
-	/**
-	 * Sets the 404 property and saves whether query is feed.
-	 *
-	 * @since 2.0.0
-	 * @access public
-	 */
-	public function set_404() {
-		$is_feed = $this->is_feed;
-
-		$this->init_query_flags();
-		$this->is_404 = true;
-
-		$this->is_feed = $is_feed;
-	}
-
-	/**
-	 * Retrieve query variable.
-	 *
-	 * @since 1.5.0
-	 * @since 3.9.0 The `$default` argument was introduced.
-	 *
-	 * @access public
-	 *
-	 * @param string $query_var Query variable key.
-	 * @param mixed  $default   Optional. Value to return if the query variable is not set. Default empty.
-	 * @return mixed Contents of the query variable.
-	 */
-	public function get( $query_var, $default = '' ) {
-		if ( isset( $this->query_vars[ $query_var ] ) ) {
-			return $this->query_vars[ $query_var ];
-		}
-
-		return $default;
-	}
-
-	/**
-	 * Set query variable.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @param string $query_var Query variable key.
-	 * @param mixed  $value     Query variable value.
-	 */
-	public function set($query_var, $value) {
-		$this->query_vars[$query_var] = $value;
-	}
-
-	/**
-	 * Retrieve the posts based on query variables.
-	 *
-	 * There are a few filters and actions that can be used to modify the post
-	 * database query.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @global wpdb $wpdb WordPress database abstraction object.
-	 *
-	 * @return array List of posts.
-	 */
-	public function get_posts() {
-		global $wpdb;
-
-		$this->parse_query();
-
-		/**
-		 * Fires after the query variable object is created, but before the actual query is run.
-		 *
-		 * Note: If using conditional tags, use the method versions within the passed instance
-		 * (e.g. $this->is_main_query() instead of is_main_query()). This is because the functions
-		 * like is_main_query() test against the global $wp_query instance, not the passed one.
-		 *
-		 * @since 2.0.0
-		 *
-		 * @param WP_Query &$this The WP_Query instance (passed by reference).
-		 */
-		do_action_ref_array( 'pre_get_posts', array( &$this ) );
-
-		// Shorthand.
-		$q = &$this->query_vars;
-
-		// Fill again in case pre_get_posts unset some vars.
-		$q = $this->fill_query_vars($q);
-
-		// Parse meta query
-		$this->meta_query = new WP_Meta_Query();
-		$this->meta_query->parse_query_vars( $q );
-
-		// Set a flag if a pre_get_posts hook changed the query vars.
-		$hash = md5( serialize( $this->query_vars ) );
-		if ( $hash != $this->query_vars_hash ) {
-			$this->query_vars_changed = true;
-			$this->query_vars_hash = $hash;
-		}
-		unset($hash);
-
-		// First let's clear some variables
-		$distinct = '';
-		$whichauthor = '';
-		$whichmimetype = '';
-		$where = '';
-		$limits = '';
-		$join = '';
-		$search = '';
-		$groupby = '';
-		$post_status_join = false;
-		$page = 1;
-
-		if ( isset( $q['caller_get_posts'] ) ) {
-			_deprecated_argument( 'WP_Query', '3.1.0', __( '"caller_get_posts" is deprecated. Use "ignore_sticky_posts" instead.' ) );
-			if ( !isset( $q['ignore_sticky_posts'] ) )
-				$q['ignore_sticky_posts'] = $q['caller_get_posts'];
-		}
-
-		if ( !isset( $q['ignore_sticky_posts'] ) )
-			$q['ignore_sticky_posts'] = false;
-
-		if ( !isset($q['suppress_filters']) )
-			$q['suppress_filters'] = false;
-
-		if ( !isset($q['cache_results']) ) {
-			if ( wp_using_ext_object_cache() )
-				$q['cache_results'] = false;
-			else
-				$q['cache_results'] = true;
-		}
-
-		if ( !isset($q['update_post_term_cache']) )
-			$q['update_post_term_cache'] = true;
-
-		if ( ! isset( $q['lazy_load_term_meta'] ) ) {
-			$q['lazy_load_term_meta'] = $q['update_post_term_cache'];
-		}
-
-		if ( !isset($q['update_post_meta_cache']) )
-			$q['update_post_meta_cache'] = true;
-
-		if ( !isset($q['post_type']) ) {
-			if ( $this->is_search )
-				$q['post_type'] = 'any';
-			else
-				$q['post_type'] = '';
-		}
-		$post_type = $q['post_type'];
-		if ( empty( $q['posts_per_page'] ) ) {
-			$q['posts_per_page'] = get_option( 'posts_per_page' );
-		}
-		if ( isset($q['showposts']) && $q['showposts'] ) {
-			$q['showposts'] = (int) $q['showposts'];
-			$q['posts_per_page'] = $q['showposts'];
-		}
-		if ( (isset($q['posts_per_archive_page']) && $q['posts_per_archive_page'] != 0) && ($this->is_archive || $this->is_search) )
-			$q['posts_per_page'] = $q['posts_per_archive_page'];
-		if ( !isset($q['nopaging']) ) {
-			if ( $q['posts_per_page'] == -1 ) {
-				$q['nopaging'] = true;
-			} else {
-				$q['nopaging'] = false;
-			}
-		}
-
-		if ( $this->is_feed ) {
-			// This overrides posts_per_page.
-			if ( ! empty( $q['posts_per_rss'] ) ) {
-				$q['posts_per_page'] = $q['posts_per_rss'];
-			} else {
-				$q['posts_per_page'] = get_option( 'posts_per_rss' );
-			}
-			$q['nopaging'] = false;
-		}
-		$q['posts_per_page'] = (int) $q['posts_per_page'];
-		if ( $q['posts_per_page'] < -1 )
-			$q['posts_per_page'] = abs($q['posts_per_page']);
-		elseif ( $q['posts_per_page'] == 0 )
-			$q['posts_per_page'] = 1;
-
-		if ( !isset($q['comments_per_page']) || $q['comments_per_page'] == 0 )
-			$q['comments_per_page'] = get_option('comments_per_page');
-
-		if ( $this->is_home && (empty($this->query) || $q['preview'] == 'true') && ( 'page' == get_option('show_on_front') ) && get_option('page_on_front') ) {
-			$this->is_page = true;
-			$this->is_home = false;
-			$q['page_id'] = get_option('page_on_front');
-		}
-
-		if ( isset($q['page']) ) {
-			$q['page'] = trim($q['page'], '/');
-			$q['page'] = absint($q['page']);
-		}
-
-		// If true, forcibly turns off SQL_CALC_FOUND_ROWS even when limits are present.
-		if ( isset($q['no_found_rows']) )
-			$q['no_found_rows'] = (bool) $q['no_found_rows'];
-		else
-			$q['no_found_rows'] = false;
-
-		switch ( $q['fields'] ) {
-			case 'ids':
-				$fields = "$wpdb->posts.ID";
-				break;
-			case 'id=>parent':
-				$fields = "$wpdb->posts.ID, $wpdb->posts.post_parent";
-				break;
-			default:
-				$fields = "$wpdb->posts.*";
-		}
-
-		if ( '' !== $q['menu_order'] )
-			$where .= " AND $wpdb->posts.menu_order = " . $q['menu_order'];
-
-		// The "m" parameter is meant for months but accepts datetimes of varying specificity
-		if ( $q['m'] ) {
-			$where .= " AND YEAR($wpdb->posts.post_date)=" . substr($q['m'], 0, 4);
-			if ( strlen($q['m']) > 5 )
-				$where .= " AND MONTH($wpdb->posts.post_date)=" . substr($q['m'], 4, 2);
-			if ( strlen($q['m']) > 7 )
-				$where .= " AND DAYOFMONTH($wpdb->posts.post_date)=" . substr($q['m'], 6, 2);
-			if ( strlen($q['m']) > 9 )
-				$where .= " AND HOUR($wpdb->posts.post_date)=" . substr($q['m'], 8, 2);
-			if ( strlen($q['m']) > 11 )
-				$where .= " AND MINUTE($wpdb->posts.post_date)=" . substr($q['m'], 10, 2);
-			if ( strlen($q['m']) > 13 )
-				$where .= " AND SECOND($wpdb->posts.post_date)=" . substr($q['m'], 12, 2);
-		}
-
-		// Handle the other individual date parameters
-		$date_parameters = array();
-
-		if ( '' !== $q['hour'] )
-			$date_parameters['hour'] = $q['hour'];
-
-		if ( '' !== $q['minute'] )
-			$date_parameters['minute'] = $q['minute'];
-
-		if ( '' !== $q['second'] )
-			$date_parameters['second'] = $q['second'];
-
-		if ( $q['year'] )
-			$date_parameters['year'] = $q['year'];
-
-		if ( $q['monthnum'] )
-			$date_parameters['monthnum'] = $q['monthnum'];
-
-		if ( $q['w'] )
-			$date_parameters['week'] = $q['w'];
-
-		if ( $q['day'] )
-			$date_parameters['day'] = $q['day'];
-
-		if ( $date_parameters ) {
-			$date_query = new WP_Date_Query( array( $date_parameters ) );
-			$where .= $date_query->get_sql();
-		}
-		unset( $date_parameters, $date_query );
-
-		// Handle complex date queries
-		if ( ! empty( $q['date_query'] ) ) {
-			$this->date_query = new WP_Date_Query( $q['date_query'] );
-			$where .= $this->date_query->get_sql();
-		}
-
-
-		// If we've got a post_type AND it's not "any" post_type.
-		if ( !empty($q['post_type']) && 'any' != $q['post_type'] ) {
-			foreach ( (array)$q['post_type'] as $_post_type ) {
-				$ptype_obj = get_post_type_object($_post_type);
-				if ( !$ptype_obj || !$ptype_obj->query_var || empty($q[ $ptype_obj->query_var ]) )
-					continue;
-
-				if ( ! $ptype_obj->hierarchical ) {
-					// Non-hierarchical post types can directly use 'name'.
-					$q['name'] = $q[ $ptype_obj->query_var ];
-				} else {
-					// Hierarchical post types will operate through 'pagename'.
-					$q['pagename'] = $q[ $ptype_obj->query_var ];
-					$q['name'] = '';
-				}
-
-				// Only one request for a slug is possible, this is why name & pagename are overwritten above.
-				break;
-			} //end foreach
-			unset($ptype_obj);
-		}
-
-		if ( '' !== $q['title'] ) {
-			$where .= $wpdb->prepare( " AND $wpdb->posts.post_title = %s", stripslashes( $q['title'] ) );
-		}
-
-		// Parameters related to 'post_name'.
-		if ( '' != $q['name'] ) {
-			$q['name'] = sanitize_title_for_query( $q['name'] );
-			$where .= " AND $wpdb->posts.post_name = '" . $q['name'] . "'";
-		} elseif ( '' != $q['pagename'] ) {
-			if ( isset($this->queried_object_id) ) {
-				$reqpage = $this->queried_object_id;
-			} else {
-				if ( 'page' != $q['post_type'] ) {
-					foreach ( (array)$q['post_type'] as $_post_type ) {
-						$ptype_obj = get_post_type_object($_post_type);
-						if ( !$ptype_obj || !$ptype_obj->hierarchical )
-							continue;
-
-						$reqpage = get_page_by_path($q['pagename'], OBJECT, $_post_type);
-						if ( $reqpage )
-							break;
-					}
-					unset($ptype_obj);
-				} else {
-					$reqpage = get_page_by_path($q['pagename']);
-				}
-				if ( !empty($reqpage) )
-					$reqpage = $reqpage->ID;
-				else
-					$reqpage = 0;
-			}
-
-			$page_for_posts = get_option('page_for_posts');
-			if  ( ('page' != get_option('show_on_front') ) || empty($page_for_posts) || ( $reqpage != $page_for_posts ) ) {
-				$q['pagename'] = sanitize_title_for_query( wp_basename( $q['pagename'] ) );
-				$q['name'] = $q['pagename'];
-				$where .= " AND ($wpdb->posts.ID = '$reqpage')";
-				$reqpage_obj = get_post( $reqpage );
-				if ( is_object($reqpage_obj) && 'attachment' == $reqpage_obj->post_type ) {
-					$this->is_attachment = true;
-					$post_type = $q['post_type'] = 'attachment';
-					$this->is_page = true;
-					$q['attachment_id'] = $reqpage;
-				}
-			}
-		} elseif ( '' != $q['attachment'] ) {
-			$q['attachment'] = sanitize_title_for_query( wp_basename( $q['attachment'] ) );
-			$q['name'] = $q['attachment'];
-			$where .= " AND $wpdb->posts.post_name = '" . $q['attachment'] . "'";
-		} elseif ( is_array( $q['post_name__in'] ) && ! empty( $q['post_name__in'] ) ) {
-			$q['post_name__in'] = array_map( 'sanitize_title_for_query', $q['post_name__in'] );
-			$post_name__in = "'" . implode( "','", $q['post_name__in'] ) . "'";
-			$where .= " AND $wpdb->posts.post_name IN ($post_name__in)";
-		}
-
-		// If an attachment is requested by number, let it supersede any post number.
-		if ( $q['attachment_id'] )
-			$q['p'] = absint($q['attachment_id']);
-
-		// If a post number is specified, load that post
-		if ( $q['p'] ) {
-			$where .= " AND {$wpdb->posts}.ID = " . $q['p'];
-		} elseif ( $q['post__in'] ) {
-			$post__in = implode(',', array_map( 'absint', $q['post__in'] ));
-			$where .= " AND {$wpdb->posts}.ID IN ($post__in)";
-		} elseif ( $q['post__not_in'] ) {
-			$post__not_in = implode(',',  array_map( 'absint', $q['post__not_in'] ));
-			$where .= " AND {$wpdb->posts}.ID NOT IN ($post__not_in)";
-		}
-
-		if ( is_numeric( $q['post_parent'] ) ) {
-			$where .= $wpdb->prepare( " AND $wpdb->posts.post_parent = %d ", $q['post_parent'] );
-		} elseif ( $q['post_parent__in'] ) {
-			$post_parent__in = implode( ',', array_map( 'absint', $q['post_parent__in'] ) );
-			$where .= " AND {$wpdb->posts}.post_parent IN ($post_parent__in)";
-		} elseif ( $q['post_parent__not_in'] ) {
-			$post_parent__not_in = implode( ',',  array_map( 'absint', $q['post_parent__not_in'] ) );
-			$where .= " AND {$wpdb->posts}.post_parent NOT IN ($post_parent__not_in)";
-		}
-
-		if ( $q['page_id'] ) {
-			if  ( ('page' != get_option('show_on_front') ) || ( $q['page_id'] != get_option('page_for_posts') ) ) {
-				$q['p'] = $q['page_id'];
-				$where = " AND {$wpdb->posts}.ID = " . $q['page_id'];
-			}
-		}
-
-		// If a search pattern is specified, load the posts that match.
-		if ( strlen( $q['s'] ) ) {
-			$search = $this->parse_search( $q );
-		}
-
-		if ( ! $q['suppress_filters'] ) {
-			/**
-			 * Filters the search SQL that is used in the WHERE clause of WP_Query.
-			 *
-			 * @since 3.0.0
-			 *
-			 * @param string   $search Search SQL for WHERE clause.
-			 * @param WP_Query $this   The current WP_Query object.
-			 */
-			$search = apply_filters_ref_array( 'posts_search', array( $search, &$this ) );
-		}
-
-		// Taxonomies
-		if ( !$this->is_singular ) {
-			$this->parse_tax_query( $q );
-
-			$clauses = $this->tax_query->get_sql( $wpdb->posts, 'ID' );
-
-			$join .= $clauses['join'];
-			$where .= $clauses['where'];
-		}
-
-		if ( $this->is_tax ) {
-			if ( empty($post_type) ) {
-				// Do a fully inclusive search for currently registered post types of queried taxonomies
-				$post_type = array();
-				$taxonomies = array_keys( $this->tax_query->queried_terms );
-				foreach ( get_post_types( array( 'exclude_from_search' => false ) ) as $pt ) {
-					$object_taxonomies = $pt === 'attachment' ? get_taxonomies_for_attachments() : get_object_taxonomies( $pt );
-					if ( array_intersect( $taxonomies, $object_taxonomies ) )
-						$post_type[] = $pt;
-				}
-				if ( ! $post_type )
-					$post_type = 'any';
-				elseif ( count( $post_type ) == 1 )
-					$post_type = $post_type[0];
-
-				$post_status_join = true;
-			} elseif ( in_array('attachment', (array) $post_type) ) {
-				$post_status_join = true;
-			}
-		}
-
-		/*
-		 * Ensure that 'taxonomy', 'term', 'term_id', 'cat', and
-		 * 'category_name' vars are set for backward compatibility.
-		 */
-		if ( ! empty( $this->tax_query->queried_terms ) ) {
-
-			/*
-			 * Set 'taxonomy', 'term', and 'term_id' to the
-			 * first taxonomy other than 'post_tag' or 'category'.
-			 */
-			if ( ! isset( $q['taxonomy'] ) ) {
-				foreach ( $this->tax_query->queried_terms as $queried_taxonomy => $queried_items ) {
-					if ( empty( $queried_items['terms'][0] ) ) {
-						continue;
-					}
-
-					if ( ! in_array( $queried_taxonomy, array( 'category', 'post_tag' ) ) ) {
-						$q['taxonomy'] = $queried_taxonomy;
-
-						if ( 'slug' === $queried_items['field'] ) {
-							$q['term'] = $queried_items['terms'][0];
-						} else {
-							$q['term_id'] = $queried_items['terms'][0];
-						}
-
-						// Take the first one we find.
-						break;
-					}
-				}
-			}
-
-			// 'cat', 'category_name', 'tag_id'
-			foreach ( $this->tax_query->queried_terms as $queried_taxonomy => $queried_items ) {
-				if ( empty( $queried_items['terms'][0] ) ) {
-					continue;
-				}
-
-				if ( 'category' === $queried_taxonomy ) {
-					$the_cat = get_term_by( $queried_items['field'], $queried_items['terms'][0], 'category' );
-					if ( $the_cat ) {
-						$this->set( 'cat', $the_cat->term_id );
-						$this->set( 'category_name', $the_cat->slug );
-					}
-					unset( $the_cat );
-				}
-
-				if ( 'post_tag' === $queried_taxonomy ) {
-					$the_tag = get_term_by( $queried_items['field'], $queried_items['terms'][0], 'post_tag' );
-					if ( $the_tag ) {
-						$this->set( 'tag_id', $the_tag->term_id );
-					}
-					unset( $the_tag );
-				}
-			}
-		}
-
-		if ( !empty( $this->tax_query->queries ) || !empty( $this->meta_query->queries ) ) {
-			$groupby = "{$wpdb->posts}.ID";
-		}
-
-		// Author/user stuff
-
-		if ( ! empty( $q['author'] ) && $q['author'] != '0' ) {
-			$q['author'] = addslashes_gpc( '' . urldecode( $q['author'] ) );
-			$authors = array_unique( array_map( 'intval', preg_split( '/[,\s]+/', $q['author'] ) ) );
-			foreach ( $authors as $author ) {
-				$key = $author > 0 ? 'author__in' : 'author__not_in';
-				$q[$key][] = abs( $author );
-			}
-			$q['author'] = implode( ',', $authors );
-		}
-
-		if ( ! empty( $q['author__not_in'] ) ) {
-			$author__not_in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__not_in'] ) ) );
-			$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";
-		} elseif ( ! empty( $q['author__in'] ) ) {
-			$author__in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__in'] ) ) );
-			$where .= " AND {$wpdb->posts}.post_author IN ($author__in) ";
-		}
-
-		// Author stuff for nice URLs
-
-		if ( '' != $q['author_name'] ) {
-			if ( strpos($q['author_name'], '/') !== false ) {
-				$q['author_name'] = explode('/', $q['author_name']);
-				if ( $q['author_name'][ count($q['author_name'])-1 ] ) {
-					$q['author_name'] = $q['author_name'][count($q['author_name'])-1]; // no trailing slash
-				} else {
-					$q['author_name'] = $q['author_name'][count($q['author_name'])-2]; // there was a trailing slash
-				}
-			}
-			$q['author_name'] = sanitize_title_for_query( $q['author_name'] );
-			$q['author'] = get_user_by('slug', $q['author_name']);
-			if ( $q['author'] )
-				$q['author'] = $q['author']->ID;
-			$whichauthor .= " AND ($wpdb->posts.post_author = " . absint($q['author']) . ')';
-		}
-
-		// MIME-Type stuff for attachment browsing
-
-		if ( isset( $q['post_mime_type'] ) && '' != $q['post_mime_type'] )
-			$whichmimetype = wp_post_mime_type_where( $q['post_mime_type'], $wpdb->posts );
-
-		$where .= $search . $whichauthor . $whichmimetype;
-
-		if ( ! empty( $this->meta_query->queries ) ) {
-			$clauses = $this->meta_query->get_sql( 'post', $wpdb->posts, 'ID', $this );
-			$join   .= $clauses['join'];
-			$where  .= $clauses['where'];
-		}
-
-		$rand = ( isset( $q['orderby'] ) && 'rand' === $q['orderby'] );
-		if ( ! isset( $q['order'] ) ) {
-			$q['order'] = $rand ? '' : 'DESC';
-		} else {
-			$q['order'] = $rand ? '' : $this->parse_order( $q['order'] );
-		}
-
-		// Order by.
-		if ( empty( $q['orderby'] ) ) {
-			/*
-			 * Boolean false or empty array blanks out ORDER BY,
-			 * while leaving the value unset or otherwise empty sets the default.
-			 */
-			if ( isset( $q['orderby'] ) && ( is_array( $q['orderby'] ) || false === $q['orderby'] ) ) {
-				$orderby = '';
-			} else {
-				$orderby = "$wpdb->posts.post_date " . $q['order'];
-			}
-		} elseif ( 'none' == $q['orderby'] ) {
-			$orderby = '';
-		} elseif ( $q['orderby'] == 'post__in' && ! empty( $post__in ) ) {
-			$orderby = "FIELD( {$wpdb->posts}.ID, $post__in )";
-		} elseif ( $q['orderby'] == 'post_parent__in' && ! empty( $post_parent__in ) ) {
-			$orderby = "FIELD( {$wpdb->posts}.post_parent, $post_parent__in )";
-		} elseif ( $q['orderby'] == 'post_name__in' && ! empty( $post_name__in ) ) {
-			$orderby = "FIELD( {$wpdb->posts}.post_name, $post_name__in )";
-		} else {
-			$orderby_array = array();
-			if ( is_array( $q['orderby'] ) ) {
-				foreach ( $q['orderby'] as $_orderby => $order ) {
-					$orderby = addslashes_gpc( urldecode( $_orderby ) );
-					$parsed  = $this->parse_orderby( $orderby );
-
-					if ( ! $parsed ) {
-						continue;
-					}
-
-					$orderby_array[] = $parsed . ' ' . $this->parse_order( $order );
-				}
-				$orderby = implode( ', ', $orderby_array );
-
-			} else {
-				$q['orderby'] = urldecode( $q['orderby'] );
-				$q['orderby'] = addslashes_gpc( $q['orderby'] );
-
-				foreach ( explode( ' ', $q['orderby'] ) as $i => $orderby ) {
-					$parsed = $this->parse_orderby( $orderby );
-					// Only allow certain values for safety.
-					if ( ! $parsed ) {
-						continue;
-					}
-
-					$orderby_array[] = $parsed;
-				}
-				$orderby = implode( ' ' . $q['order'] . ', ', $orderby_array );
-
-				if ( empty( $orderby ) ) {
-					$orderby = "$wpdb->posts.post_date " . $q['order'];
-				} elseif ( ! empty( $q['order'] ) ) {
-					$orderby .= " {$q['order']}";
-				}
-			}
-		}
-
-		// Order search results by relevance only when another "orderby" is not specified in the query.
-		if ( ! empty( $q['s'] ) ) {
-			$search_orderby = '';
-			if ( ! empty( $q['search_orderby_title'] ) && ( empty( $q['orderby'] ) && ! $this->is_feed ) || ( isset( $q['orderby'] ) && 'relevance' === $q['orderby'] ) )
-				$search_orderby = $this->parse_search_order( $q );
-
-			if ( ! $q['suppress_filters'] ) {
-				/**
-				 * Filters the ORDER BY used when ordering search results.
-				 *
-				 * @since 3.7.0
-				 *
-				 * @param string   $search_orderby The ORDER BY clause.
-				 * @param WP_Query $this           The current WP_Query instance.
-				 */
-				$search_orderby = apply_filters( 'posts_search_orderby', $search_orderby, $this );
-			}
-
-			if ( $search_orderby )
-				$orderby = $orderby ? $search_orderby . ', ' . $orderby : $search_orderby;
-		}
-
-		if ( is_array( $post_type ) && count( $post_type ) > 1 ) {
-			$post_type_cap = 'multiple_post_type';
-		} else {
-			if ( is_array( $post_type ) )
-				$post_type = reset( $post_type );
-			$post_type_object = get_post_type_object( $post_type );
-			if ( empty( $post_type_object ) )
-				$post_type_cap = $post_type;
-		}
-
-		if ( isset( $q['post_password'] ) ) {
-			$where .= $wpdb->prepare( " AND $wpdb->posts.post_password = %s", $q['post_password'] );
-			if ( empty( $q['perm'] ) ) {
-				$q['perm'] = 'readable';
-			}
-		} elseif ( isset( $q['has_password'] ) ) {
-			$where .= sprintf( " AND $wpdb->posts.post_password %s ''", $q['has_password'] ? '!=' : '=' );
-		}
-
-		if ( ! empty( $q['comment_status'] ) ) {
-			$where .= $wpdb->prepare( " AND $wpdb->posts.comment_status = %s ", $q['comment_status'] );
-		}
-
-		if ( ! empty( $q['ping_status'] ) )  {
-			$where .= $wpdb->prepare( " AND $wpdb->posts.ping_status = %s ", $q['ping_status'] );
-		}
-
-		if ( 'any' == $post_type ) {
-			$in_search_post_types = get_post_types( array('exclude_from_search' => false) );
-			if ( empty( $in_search_post_types ) )
-				$where .= ' AND 1=0 ';
-			else
-				$where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $in_search_post_types ) . "')";
-		} elseif ( !empty( $post_type ) && is_array( $post_type ) ) {
-			$where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $post_type) . "')";
-		} elseif ( ! empty( $post_type ) ) {
-			$where .= " AND $wpdb->posts.post_type = '$post_type'";
-			$post_type_object = get_post_type_object ( $post_type );
-		} elseif ( $this->is_attachment ) {
-			$where .= " AND $wpdb->posts.post_type = 'attachment'";
-			$post_type_object = get_post_type_object ( 'attachment' );
-		} elseif ( $this->is_page ) {
-			$where .= " AND $wpdb->posts.post_type = 'page'";
-			$post_type_object = get_post_type_object ( 'page' );
-		} else {
-			$where .= " AND $wpdb->posts.post_type = 'post'";
-			$post_type_object = get_post_type_object ( 'post' );
-		}
-
-		$edit_cap = 'edit_post';
-		$read_cap = 'read_post';
-
-		if ( ! empty( $post_type_object ) ) {
-			$edit_others_cap = $post_type_object->cap->edit_others_posts;
-			$read_private_cap = $post_type_object->cap->read_private_posts;
-		} else {
-			$edit_others_cap = 'edit_others_' . $post_type_cap . 's';
-			$read_private_cap = 'read_private_' . $post_type_cap . 's';
-		}
-
-		$user_id = get_current_user_id();
-
-		$q_status = array();
-		if ( ! empty( $q['post_status'] ) ) {
-			$statuswheres = array();
-			$q_status = $q['post_status'];
-			if ( ! is_array( $q_status ) )
-				$q_status = explode(',', $q_status);
-			$r_status = array();
-			$p_status = array();
-			$e_status = array();
-			if ( in_array( 'any', $q_status ) ) {
-				foreach ( get_post_stati( array( 'exclude_from_search' => true ) ) as $status ) {
-					if ( ! in_array( $status, $q_status ) ) {
-						$e_status[] = "$wpdb->posts.post_status <> '$status'";
-					}
-				}
-			} else {
-				foreach ( get_post_stati() as $status ) {
-					if ( in_array( $status, $q_status ) ) {
-						if ( 'private' == $status )
-							$p_status[] = "$wpdb->posts.post_status = '$status'";
-						else
-							$r_status[] = "$wpdb->posts.post_status = '$status'";
-					}
-				}
-			}
-
-			if ( empty($q['perm'] ) || 'readable' != $q['perm'] ) {
-				$r_status = array_merge($r_status, $p_status);
-				unset($p_status);
-			}
-
-			if ( !empty($e_status) ) {
-				$statuswheres[] = "(" . join( ' AND ', $e_status ) . ")";
-			}
-			if ( !empty($r_status) ) {
-				if ( !empty($q['perm'] ) && 'editable' == $q['perm'] && !current_user_can($edit_others_cap) )
-					$statuswheres[] = "($wpdb->posts.post_author = $user_id " . "AND (" . join( ' OR ', $r_status ) . "))";
-				else
-					$statuswheres[] = "(" . join( ' OR ', $r_status ) . ")";
-			}
-			if ( !empty($p_status) ) {
-				if ( !empty($q['perm'] ) && 'readable' == $q['perm'] && !current_user_can($read_private_cap) )
-					$statuswheres[] = "($wpdb->posts.post_author = $user_id " . "AND (" . join( ' OR ', $p_status ) . "))";
-				else
-					$statuswheres[] = "(" . join( ' OR ', $p_status ) . ")";
-			}
-			if ( $post_status_join ) {
-				$join .= " LEFT JOIN $wpdb->posts AS p2 ON ($wpdb->posts.post_parent = p2.ID) ";
-				foreach ( $statuswheres as $index => $statuswhere )
-					$statuswheres[$index] = "($statuswhere OR ($wpdb->posts.post_status = 'inherit' AND " . str_replace($wpdb->posts, 'p2', $statuswhere) . "))";
-			}
-			$where_status = implode( ' OR ', $statuswheres );
-			if ( ! empty( $where_status ) ) {
-				$where .= " AND ($where_status)";
-			}
-		} elseif ( !$this->is_singular ) {
-			$where .= " AND ($wpdb->posts.post_status = 'publish'";
-
-			// Add public states.
-			$public_states = get_post_stati( array('public' => true) );
-			foreach ( (array) $public_states as $state ) {
-				if ( 'publish' == $state ) // Publish is hard-coded above.
-					continue;
-				$where .= " OR $wpdb->posts.post_status = '$state'";
-			}
-
-			if ( $this->is_admin ) {
-				// Add protected states that should show in the admin all list.
-				$admin_all_states = get_post_stati( array('protected' => true, 'show_in_admin_all_list' => true) );
-				foreach ( (array) $admin_all_states as $state )
-					$where .= " OR $wpdb->posts.post_status = '$state'";
-			}
-
-			if ( is_user_logged_in() ) {
-				// Add private states that are limited to viewing by the author of a post or someone who has caps to read private states.
-				$private_states = get_post_stati( array('private' => true) );
-				foreach ( (array) $private_states as $state )
-					$where .= current_user_can( $read_private_cap ) ? " OR $wpdb->posts.post_status = '$state'" : " OR $wpdb->posts.post_author = $user_id AND $wpdb->posts.post_status = '$state'";
-			}
-
-			$where .= ')';
-		}
-
-		/*
-		 * Apply filters on where and join prior to paging so that any
-		 * manipulations to them are reflected in the paging by day queries.
-		 */
-		if ( !$q['suppress_filters'] ) {
-			/**
-			 * Filters the WHERE clause of the query.
-			 *
-			 * @since 1.5.0
-			 *
-			 * @param string   $where The WHERE clause of the query.
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			$where = apply_filters_ref_array( 'posts_where', array( $where, &$this ) );
-
-			/**
-			 * Filters the JOIN clause of the query.
-			 *
-			 * @since 1.5.0
-			 *
-			 * @param string   $where The JOIN clause of the query.
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			$join = apply_filters_ref_array( 'posts_join', array( $join, &$this ) );
-		}
-
-		// Paging
-		if ( empty($q['nopaging']) && !$this->is_singular ) {
-			$page = absint($q['paged']);
-			if ( !$page )
-				$page = 1;
-
-			// If 'offset' is provided, it takes precedence over 'paged'.
-			if ( isset( $q['offset'] ) && is_numeric( $q['offset'] ) ) {
-				$q['offset'] = absint( $q['offset'] );
-				$pgstrt = $q['offset'] . ', ';
-			} else {
-				$pgstrt = absint( ( $page - 1 ) * $q['posts_per_page'] ) . ', ';
-			}
-			$limits = 'LIMIT ' . $pgstrt . $q['posts_per_page'];
-		}
-
-		// Comments feeds
-		if ( $this->is_comment_feed && ! $this->is_singular ) {
-			if ( $this->is_archive || $this->is_search ) {
-				$cjoin = "JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) $join ";
-				$cwhere = "WHERE comment_approved = '1' $where";
-				$cgroupby = "$wpdb->comments.comment_id";
-			} else { // Other non singular e.g. front
-				$cjoin = "JOIN $wpdb->posts ON ( $wpdb->comments.comment_post_ID = $wpdb->posts.ID )";
-				$cwhere = "WHERE ( post_status = 'publish' OR ( post_status = 'inherit' && post_type = 'attachment' ) ) AND comment_approved = '1'";
-				$cgroupby = '';
-			}
-
-			if ( !$q['suppress_filters'] ) {
-				/**
-				 * Filters the JOIN clause of the comments feed query before sending.
-				 *
-				 * @since 2.2.0
-				 *
-				 * @param string   $cjoin The JOIN clause of the query.
-				 * @param WP_Query &$this The WP_Query instance (passed by reference).
-				 */
-				$cjoin = apply_filters_ref_array( 'comment_feed_join', array( $cjoin, &$this ) );
-
-				/**
-				 * Filters the WHERE clause of the comments feed query before sending.
-				 *
-				 * @since 2.2.0
-				 *
-				 * @param string   $cwhere The WHERE clause of the query.
-				 * @param WP_Query &$this  The WP_Query instance (passed by reference).
-				 */
-				$cwhere = apply_filters_ref_array( 'comment_feed_where', array( $cwhere, &$this ) );
-
-				/**
-				 * Filters the GROUP BY clause of the comments feed query before sending.
-				 *
-				 * @since 2.2.0
-				 *
-				 * @param string   $cgroupby The GROUP BY clause of the query.
-				 * @param WP_Query &$this    The WP_Query instance (passed by reference).
-				 */
-				$cgroupby = apply_filters_ref_array( 'comment_feed_groupby', array( $cgroupby, &$this ) );
-
-				/**
-				 * Filters the ORDER BY clause of the comments feed query before sending.
-				 *
-				 * @since 2.8.0
-				 *
-				 * @param string   $corderby The ORDER BY clause of the query.
-				 * @param WP_Query &$this    The WP_Query instance (passed by reference).
-				 */
-				$corderby = apply_filters_ref_array( 'comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
-
-				/**
-				 * Filters the LIMIT clause of the comments feed query before sending.
-				 *
-				 * @since 2.8.0
-				 *
-				 * @param string   $climits The JOIN clause of the query.
-				 * @param WP_Query &$this   The WP_Query instance (passed by reference).
-				 */
-				$climits = apply_filters_ref_array( 'comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
-			}
-			$cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
-			$corderby = ( ! empty( $corderby ) ) ? 'ORDER BY ' . $corderby : '';
-
-			$comments = (array) $wpdb->get_results("SELECT $distinct $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits");
-			// Convert to WP_Comment
-			$this->comments = array_map( 'get_comment', $comments );
-			$this->comment_count = count($this->comments);
-
-			$post_ids = array();
-
-			foreach ( $this->comments as $comment )
-				$post_ids[] = (int) $comment->comment_post_ID;
-
-			$post_ids = join(',', $post_ids);
-			$join = '';
-			if ( $post_ids )
-				$where = "AND $wpdb->posts.ID IN ($post_ids) ";
-			else
-				$where = "AND 0";
-		}
-
-		$pieces = array( 'where', 'groupby', 'join', 'orderby', 'distinct', 'fields', 'limits' );
-
-		/*
-		 * Apply post-paging filters on where and join. Only plugins that
-		 * manipulate paging queries should use these hooks.
-		 */
-		if ( !$q['suppress_filters'] ) {
-			/**
-			 * Filters the WHERE clause of the query.
-			 *
-			 * Specifically for manipulating paging queries.
-			 *
-			 * @since 1.5.0
-			 *
-			 * @param string   $where The WHERE clause of the query.
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			$where = apply_filters_ref_array( 'posts_where_paged', array( $where, &$this ) );
-
-			/**
-			 * Filters the GROUP BY clause of the query.
-			 *
-			 * @since 2.0.0
-			 *
-			 * @param string   $groupby The GROUP BY clause of the query.
-			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
-			 */
-			$groupby = apply_filters_ref_array( 'posts_groupby', array( $groupby, &$this ) );
-
-			/**
-			 * Filters the JOIN clause of the query.
-			 *
-			 * Specifically for manipulating paging queries.
-			 *
-			 * @since 1.5.0
-			 *
-			 * @param string   $join  The JOIN clause of the query.
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			$join = apply_filters_ref_array( 'posts_join_paged', array( $join, &$this ) );
-
-			/**
-			 * Filters the ORDER BY clause of the query.
-			 *
-			 * @since 1.5.1
-			 *
-			 * @param string   $orderby The ORDER BY clause of the query.
-			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
-			 */
-			$orderby = apply_filters_ref_array( 'posts_orderby', array( $orderby, &$this ) );
-
-			/**
-			 * Filters the DISTINCT clause of the query.
-			 *
-			 * @since 2.1.0
-			 *
-			 * @param string   $distinct The DISTINCT clause of the query.
-			 * @param WP_Query &$this    The WP_Query instance (passed by reference).
-			 */
-			$distinct = apply_filters_ref_array( 'posts_distinct', array( $distinct, &$this ) );
-
-			/**
-			 * Filters the LIMIT clause of the query.
-			 *
-			 * @since 2.1.0
-			 *
-			 * @param string   $limits The LIMIT clause of the query.
-			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
-			 */
-			$limits = apply_filters_ref_array( 'post_limits', array( $limits, &$this ) );
-
-			/**
-			 * Filters the SELECT clause of the query.
-			 *
-			 * @since 2.1.0
-			 *
-			 * @param string   $fields The SELECT clause of the query.
-			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
-			 */
-			$fields = apply_filters_ref_array( 'posts_fields', array( $fields, &$this ) );
-
-			/**
-			 * Filters all query clauses at once, for convenience.
-			 *
-			 * Covers the WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT,
-			 * fields (SELECT), and LIMITS clauses.
-			 *
-			 * @since 3.1.0
-			 *
-			 * @param array    $clauses The list of clauses for the query.
-			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
-			 */
-			$clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );
-
-			$where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
-			$groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
-			$join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
-			$orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
-			$distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
-			$fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
-			$limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
-		}
-
-		/**
-		 * Fires to announce the query's current selection parameters.
-		 *
-		 * For use by caching plugins.
-		 *
-		 * @since 2.3.0
-		 *
-		 * @param string $selection The assembled selection query.
-		 */
-		do_action( 'posts_selection', $where . $groupby . $orderby . $limits . $join );
-
-		/*
-		 * Filters again for the benefit of caching plugins.
-		 * Regular plugins should use the hooks above.
-		 */
-		if ( !$q['suppress_filters'] ) {
-			/**
-			 * Filters the WHERE clause of the query.
-			 *
-			 * For use by caching plugins.
-			 *
-			 * @since 2.5.0
-			 *
-			 * @param string   $where The WHERE clause of the query.
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			$where = apply_filters_ref_array( 'posts_where_request', array( $where, &$this ) );
-
-			/**
-			 * Filters the GROUP BY clause of the query.
-			 *
-			 * For use by caching plugins.
-			 *
-			 * @since 2.5.0
-			 *
-			 * @param string   $groupby The GROUP BY clause of the query.
-			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
-			 */
-			$groupby = apply_filters_ref_array( 'posts_groupby_request', array( $groupby, &$this ) );
-
-			/**
-			 * Filters the JOIN clause of the query.
-			 *
-			 * For use by caching plugins.
-			 *
-			 * @since 2.5.0
-			 *
-			 * @param string   $join  The JOIN clause of the query.
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			$join = apply_filters_ref_array( 'posts_join_request', array( $join, &$this ) );
-
-			/**
-			 * Filters the ORDER BY clause of the query.
-			 *
-			 * For use by caching plugins.
-			 *
-			 * @since 2.5.0
-			 *
-			 * @param string   $orderby The ORDER BY clause of the query.
-			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
-			 */
-			$orderby = apply_filters_ref_array( 'posts_orderby_request', array( $orderby, &$this ) );
-
-			/**
-			 * Filters the DISTINCT clause of the query.
-			 *
-			 * For use by caching plugins.
-			 *
-			 * @since 2.5.0
-			 *
-			 * @param string   $distinct The DISTINCT clause of the query.
-			 * @param WP_Query &$this    The WP_Query instance (passed by reference).
-			 */
-			$distinct = apply_filters_ref_array( 'posts_distinct_request', array( $distinct, &$this ) );
-
-			/**
-			 * Filters the SELECT clause of the query.
-			 *
-			 * For use by caching plugins.
-			 *
-			 * @since 2.5.0
-			 *
-			 * @param string   $fields The SELECT clause of the query.
-			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
-			 */
-			$fields = apply_filters_ref_array( 'posts_fields_request', array( $fields, &$this ) );
-
-			/**
-			 * Filters the LIMIT clause of the query.
-			 *
-			 * For use by caching plugins.
-			 *
-			 * @since 2.5.0
-			 *
-			 * @param string   $limits The LIMIT clause of the query.
-			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
-			 */
-			$limits = apply_filters_ref_array( 'post_limits_request', array( $limits, &$this ) );
-
-			/**
-			 * Filters all query clauses at once, for convenience.
-			 *
-			 * For use by caching plugins.
-			 *
-			 * Covers the WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT,
-			 * fields (SELECT), and LIMITS clauses.
-			 *
-			 * @since 3.1.0
-			 *
-			 * @param array    $pieces The pieces of the query.
-			 * @param WP_Query &$this  The WP_Query instance (passed by reference).
-			 */
-			$clauses = (array) apply_filters_ref_array( 'posts_clauses_request', array( compact( $pieces ), &$this ) );
-
-			$where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
-			$groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
-			$join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
-			$orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
-			$distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
-			$fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
-			$limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
-		}
-
-		if ( ! empty($groupby) )
-			$groupby = 'GROUP BY ' . $groupby;
-		if ( !empty( $orderby ) )
-			$orderby = 'ORDER BY ' . $orderby;
-
-		$found_rows = '';
-		if ( !$q['no_found_rows'] && !empty($limits) )
-			$found_rows = 'SQL_CALC_FOUND_ROWS';
-
-		$this->request = $old_request = "SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
-
-		if ( !$q['suppress_filters'] ) {
-			/**
-			 * Filters the completed SQL query before sending.
-			 *
-			 * @since 2.0.0
-			 *
-			 * @param string   $request The complete SQL query.
-			 * @param WP_Query &$this   The WP_Query instance (passed by reference).
-			 */
-			$this->request = apply_filters_ref_array( 'posts_request', array( $this->request, &$this ) );
-		}
-
-		/**
-		 * Filters the posts array before the query takes place.
-		 *
-		 * Return a non-null value to bypass WordPress's default post queries.
-		 *
-		 * Filtering functions that require pagination information are encouraged to set
-		 * the `found_posts` and `max_num_pages` properties of the WP_Query object,
-		 * passed to the filter by reference. If WP_Query does not perform a database
-		 * query, it will not have enough information to generate these values itself.
-		 *
-		 * @since 4.6.0
-		 *
-		 * @param array|null $posts Return an array of post data to short-circuit WP's query,
-		 *                          or null to allow WP to run its normal queries.
-		 * @param WP_Query   $this  The WP_Query instance, passed by reference.
-		 */
-		$this->posts = apply_filters_ref_array( 'posts_pre_query', array( null, &$this ) );
-
-		if ( 'ids' == $q['fields'] ) {
-			if ( null === $this->posts ) {
-				$this->posts = $wpdb->get_col( $this->request );
-			}
-
-			$this->posts = array_map( 'intval', $this->posts );
-			$this->post_count = count( $this->posts );
-			$this->set_found_posts( $q, $limits );
-
-			return $this->posts;
-		}
-
-		if ( 'id=>parent' == $q['fields'] ) {
-			if ( null === $this->posts ) {
-				$this->posts = $wpdb->get_results( $this->request );
-			}
-
-			$this->post_count = count( $this->posts );
-			$this->set_found_posts( $q, $limits );
-
-			$r = array();
-			foreach ( $this->posts as $key => $post ) {
-				$this->posts[ $key ]->ID = (int) $post->ID;
-				$this->posts[ $key ]->post_parent = (int) $post->post_parent;
-
-				$r[ (int) $post->ID ] = (int) $post->post_parent;
-			}
-
-			return $r;
-		}
-
-		if ( null === $this->posts ) {
-			$split_the_query = ( $old_request == $this->request && "$wpdb->posts.*" == $fields && !empty( $limits ) && $q['posts_per_page'] < 500 );
-
-			/**
-			 * Filters whether to split the query.
-			 *
-			 * Splitting the query will cause it to fetch just the IDs of the found posts
-			 * (and then individually fetch each post by ID), rather than fetching every
-			 * complete row at once. One massive result vs. many small results.
-			 *
-			 * @since 3.4.0
-			 *
-			 * @param bool     $split_the_query Whether or not to split the query.
-			 * @param WP_Query $this            The WP_Query instance.
-			 */
-			$split_the_query = apply_filters( 'split_the_query', $split_the_query, $this );
-
-			if ( $split_the_query ) {
-				// First get the IDs and then fill in the objects
-
-				$this->request = "SELECT $found_rows $distinct $wpdb->posts.ID FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
-
-				/**
-				 * Filters the Post IDs SQL request before sending.
-				 *
-				 * @since 3.4.0
-				 *
-				 * @param string   $request The post ID request.
-				 * @param WP_Query $this    The WP_Query instance.
-				 */
-				$this->request = apply_filters( 'posts_request_ids', $this->request, $this );
-
-				$ids = $wpdb->get_col( $this->request );
-
-				if ( $ids ) {
-					$this->posts = $ids;
-					$this->set_found_posts( $q, $limits );
-					_prime_post_caches( $ids, $q['update_post_term_cache'], $q['update_post_meta_cache'] );
-				} else {
-					$this->posts = array();
-				}
-			} else {
-				$this->posts = $wpdb->get_results( $this->request );
-				$this->set_found_posts( $q, $limits );
-			}
-		}
-
-		// Convert to WP_Post objects.
-		if ( $this->posts ) {
-			$this->posts = array_map( 'get_post', $this->posts );
-		}
-
-		if ( ! $q['suppress_filters'] ) {
-			/**
-			 * Filters the raw post results array, prior to status checks.
-			 *
-			 * @since 2.3.0
-			 *
-			 * @param array    $posts The post results array.
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			$this->posts = apply_filters_ref_array( 'posts_results', array( $this->posts, &$this ) );
-		}
-
-		if ( !empty($this->posts) && $this->is_comment_feed && $this->is_singular ) {
-			/** This filter is documented in wp-includes/query.php */
-			$cjoin = apply_filters_ref_array( 'comment_feed_join', array( '', &$this ) );
-
-			/** This filter is documented in wp-includes/query.php */
-			$cwhere = apply_filters_ref_array( 'comment_feed_where', array( "WHERE comment_post_ID = '{$this->posts[0]->ID}' AND comment_approved = '1'", &$this ) );
-
-			/** This filter is documented in wp-includes/query.php */
-			$cgroupby = apply_filters_ref_array( 'comment_feed_groupby', array( '', &$this ) );
-			$cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
-
-			/** This filter is documented in wp-includes/query.php */
-			$corderby = apply_filters_ref_array( 'comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
-			$corderby = ( ! empty( $corderby ) ) ? 'ORDER BY ' . $corderby : '';
-
-			/** This filter is documented in wp-includes/query.php */
-			$climits = apply_filters_ref_array( 'comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
-
-			$comments_request = "SELECT $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits";
-			$comments = $wpdb->get_results($comments_request);
-			// Convert to WP_Comment
-			$this->comments = array_map( 'get_comment', $comments );
-			$this->comment_count = count($this->comments);
-		}
-
-		// Check post status to determine if post should be displayed.
-		if ( !empty($this->posts) && ($this->is_single || $this->is_page) ) {
-			$status = get_post_status($this->posts[0]);
-			if ( 'attachment' === $this->posts[0]->post_type && 0 === (int) $this->posts[0]->post_parent ) {
-				$this->is_page = false;
-				$this->is_single = true;
-				$this->is_attachment = true;
-			}
-			$post_status_obj = get_post_status_object($status);
-
-			// If the post_status was specifically requested, let it pass through.
-			if ( !$post_status_obj->public && ! in_array( $status, $q_status ) ) {
-
-				if ( ! is_user_logged_in() ) {
-					// User must be logged in to view unpublished posts.
-					$this->posts = array();
-				} else {
-					if  ( $post_status_obj->protected ) {
-						// User must have edit permissions on the draft to preview.
-						if ( ! current_user_can($edit_cap, $this->posts[0]->ID) ) {
-							$this->posts = array();
-						} else {
-							$this->is_preview = true;
-							if ( 'future' != $status )
-								$this->posts[0]->post_date = current_time('mysql');
-						}
-					} elseif ( $post_status_obj->private ) {
-						if ( ! current_user_can($read_cap, $this->posts[0]->ID) )
-							$this->posts = array();
-					} else {
-						$this->posts = array();
-					}
-				}
-			}
-
-			if ( $this->is_preview && $this->posts && current_user_can( $edit_cap, $this->posts[0]->ID ) ) {
-				/**
-				 * Filters the single post for preview mode.
-				 *
-				 * @since 2.7.0
-				 *
-				 * @param WP_Post  $post_preview  The Post object.
-				 * @param WP_Query &$this         The WP_Query instance (passed by reference).
-				 */
-				$this->posts[0] = get_post( apply_filters_ref_array( 'the_preview', array( $this->posts[0], &$this ) ) );
-			}
-		}
-
-		// Put sticky posts at the top of the posts array
-		$sticky_posts = get_option('sticky_posts');
-		if ( $this->is_home && $page <= 1 && is_array($sticky_posts) && !empty($sticky_posts) && !$q['ignore_sticky_posts'] ) {
-			$num_posts = count($this->posts);
-			$sticky_offset = 0;
-			// Loop over posts and relocate stickies to the front.
-			for ( $i = 0; $i < $num_posts; $i++ ) {
-				if ( in_array($this->posts[$i]->ID, $sticky_posts) ) {
-					$sticky_post = $this->posts[$i];
-					// Remove sticky from current position
-					array_splice($this->posts, $i, 1);
-					// Move to front, after other stickies
-					array_splice($this->posts, $sticky_offset, 0, array($sticky_post));
-					// Increment the sticky offset. The next sticky will be placed at this offset.
-					$sticky_offset++;
-					// Remove post from sticky posts array
-					$offset = array_search($sticky_post->ID, $sticky_posts);
-					unset( $sticky_posts[$offset] );
-				}
-			}
-
-			// If any posts have been excluded specifically, Ignore those that are sticky.
-			if ( !empty($sticky_posts) && !empty($q['post__not_in']) )
-				$sticky_posts = array_diff($sticky_posts, $q['post__not_in']);
-
-			// Fetch sticky posts that weren't in the query results
-			if ( !empty($sticky_posts) ) {
-				$stickies = get_posts( array(
-					'post__in' => $sticky_posts,
-					'post_type' => $post_type,
-					'post_status' => 'publish',
-					'nopaging' => true
-				) );
-
-				foreach ( $stickies as $sticky_post ) {
-					array_splice( $this->posts, $sticky_offset, 0, array( $sticky_post ) );
-					$sticky_offset++;
-				}
-			}
-		}
-
-		// If comments have been fetched as part of the query, make sure comment meta lazy-loading is set up.
-		if ( ! empty( $this->comments ) ) {
-			wp_queue_comments_for_comment_meta_lazyload( $this->comments );
-		}
-
-		if ( ! $q['suppress_filters'] ) {
-			/**
-			 * Filters the array of retrieved posts after they've been fetched and
-			 * internally processed.
-			 *
-			 * @since 1.5.0
-			 *
-			 * @param array    $posts The array of retrieved posts.
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			$this->posts = apply_filters_ref_array( 'the_posts', array( $this->posts, &$this ) );
-		}
-
-		// Ensure that any posts added/modified via one of the filters above are
-		// of the type WP_Post and are filtered.
-		if ( $this->posts ) {
-			$this->post_count = count( $this->posts );
-
-			$this->posts = array_map( 'get_post', $this->posts );
-
-			if ( $q['cache_results'] )
-				update_post_caches($this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache']);
-
-			$this->post = reset( $this->posts );
-		} else {
-			$this->post_count = 0;
-			$this->posts = array();
-		}
-
-		if ( $q['lazy_load_term_meta'] ) {
-			wp_queue_posts_for_term_meta_lazyload( $this->posts );
-		}
-
-		return $this->posts;
-	}
-
-	/**
-	 * Set up the amount of found posts and the number of pages (if limit clause was used)
-	 * for the current query.
-	 *
-	 * @since 3.5.0
-	 * @access private
-	 *
-	 * @global wpdb $wpdb WordPress database abstraction object.
-	 *
-	 * @param array  $q      Query variables.
-	 * @param string $limits LIMIT clauses of the query.
-	 */
-	private function set_found_posts( $q, $limits ) {
-		global $wpdb;
-
-		// Bail if posts is an empty array. Continue if posts is an empty string,
-		// null, or false to accommodate caching plugins that fill posts later.
-		if ( $q['no_found_rows'] || ( is_array( $this->posts ) && ! $this->posts ) )
-			return;
-
-		if ( ! empty( $limits ) ) {
-			/**
-			 * Filters the query to run for retrieving the found posts.
-			 *
-			 * @since 2.1.0
-			 *
-			 * @param string   $found_posts The query to run to find the found posts.
-			 * @param WP_Query &$this       The WP_Query instance (passed by reference).
-			 */
-			$this->found_posts = $wpdb->get_var( apply_filters_ref_array( 'found_posts_query', array( 'SELECT FOUND_ROWS()', &$this ) ) );
-		} else {
-			$this->found_posts = count( $this->posts );
-		}
-
-		/**
-		 * Filters the number of found posts for the query.
-		 *
-		 * @since 2.1.0
-		 *
-		 * @param int      $found_posts The number of posts found.
-		 * @param WP_Query &$this       The WP_Query instance (passed by reference).
-		 */
-		$this->found_posts = apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) );
-
-		if ( ! empty( $limits ) )
-			$this->max_num_pages = ceil( $this->found_posts / $q['posts_per_page'] );
-	}
-
-	/**
-	 * Set up the next post and iterate current post index.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @return WP_Post Next post.
-	 */
-	public function next_post() {
-
-		$this->current_post++;
-
-		$this->post = $this->posts[$this->current_post];
-		return $this->post;
-	}
-
-	/**
-	 * Sets up the current post.
-	 *
-	 * Retrieves the next post, sets up the post, sets the 'in the loop'
-	 * property to true.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @global WP_Post $post
-	 */
-	public function the_post() {
-		global $post;
-		$this->in_the_loop = true;
-
-		if ( $this->current_post == -1 ) // loop has just started
-			/**
-			 * Fires once the loop is started.
-			 *
-			 * @since 2.0.0
-			 *
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			do_action_ref_array( 'loop_start', array( &$this ) );
-
-		$post = $this->next_post();
-		$this->setup_postdata( $post );
-	}
-
-	/**
-	 * Determines whether there are more posts available in the loop.
-	 *
-	 * Calls the {@see 'loop_end'} action when the loop is complete.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @return bool True if posts are available, false if end of loop.
-	 */
-	public function have_posts() {
-		if ( $this->current_post + 1 < $this->post_count ) {
-			return true;
-		} elseif ( $this->current_post + 1 == $this->post_count && $this->post_count > 0 ) {
-			/**
-			 * Fires once the loop has ended.
-			 *
-			 * @since 2.0.0
-			 *
-			 * @param WP_Query &$this The WP_Query instance (passed by reference).
-			 */
-			do_action_ref_array( 'loop_end', array( &$this ) );
-			// Do some cleaning up after the loop
-			$this->rewind_posts();
-		}
-
-		$this->in_the_loop = false;
-		return false;
-	}
-
-	/**
-	 * Rewind the posts and reset post index.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 */
-	public function rewind_posts() {
-		$this->current_post = -1;
-		if ( $this->post_count > 0 ) {
-			$this->post = $this->posts[0];
-		}
-	}
-
-	/**
-	 * Iterate current comment index and return WP_Comment object.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 *
-	 * @return WP_Comment Comment object.
-	 */
-	public function next_comment() {
-		$this->current_comment++;
-
-		$this->comment = $this->comments[$this->current_comment];
-		return $this->comment;
-	}
-
-	/**
-	 * Sets up the current comment.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 * @global WP_Comment $comment Current comment.
-	 */
-	public function the_comment() {
-		global $comment;
-
-		$comment = $this->next_comment();
-
-		if ( $this->current_comment == 0 ) {
-			/**
-			 * Fires once the comment loop is started.
-			 *
-			 * @since 2.2.0
-			 */
-			do_action( 'comment_loop_start' );
-		}
-	}
-
-	/**
-	 * Whether there are more comments available.
-	 *
-	 * Automatically rewinds comments when finished.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 *
-	 * @return bool True, if more comments. False, if no more posts.
-	 */
-	public function have_comments() {
-		if ( $this->current_comment + 1 < $this->comment_count ) {
-			return true;
-		} elseif ( $this->current_comment + 1 == $this->comment_count ) {
-			$this->rewind_comments();
-		}
-
-		return false;
-	}
-
-	/**
-	 * Rewind the comments, resets the comment index and comment to first.
-	 *
-	 * @since 2.2.0
-	 * @access public
-	 */
-	public function rewind_comments() {
-		$this->current_comment = -1;
-		if ( $this->comment_count > 0 ) {
-			$this->comment = $this->comments[0];
-		}
-	}
-
-	/**
-	 * Sets up the WordPress query by parsing query string.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @param string $query URL query string.
-	 * @return array List of posts.
-	 */
-	public function query( $query ) {
-		$this->init();
-		$this->query = $this->query_vars = wp_parse_args( $query );
-		return $this->get_posts();
-	}
-
-	/**
-	 * Retrieve queried object.
-	 *
-	 * If queried object is not set, then the queried object will be set from
-	 * the category, tag, taxonomy, posts page, single post, page, or author
-	 * query variable. After it is set up, it will be returned.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @return object
-	 */
-	public function get_queried_object() {
-		if ( isset($this->queried_object) )
-			return $this->queried_object;
-
-		$this->queried_object = null;
-		$this->queried_object_id = null;
-
-		if ( $this->is_category || $this->is_tag || $this->is_tax ) {
-			if ( $this->is_category ) {
-				if ( $this->get( 'cat' ) ) {
-					$term = get_term( $this->get( 'cat' ), 'category' );
-				} elseif ( $this->get( 'category_name' ) ) {
-					$term = get_term_by( 'slug', $this->get( 'category_name' ), 'category' );
-				}
-			} elseif ( $this->is_tag ) {
-				if ( $this->get( 'tag_id' ) ) {
-					$term = get_term( $this->get( 'tag_id' ), 'post_tag' );
-				} elseif ( $this->get( 'tag' ) ) {
-					$term = get_term_by( 'slug', $this->get( 'tag' ), 'post_tag' );
-				}
-			} else {
-				// For other tax queries, grab the first term from the first clause.
-				$tax_query_in_and = wp_list_filter( $this->tax_query->queried_terms, array( 'operator' => 'NOT IN' ), 'NOT' );
-
-				if ( ! empty( $tax_query_in_and ) ) {
-					$queried_taxonomies = array_keys( $tax_query_in_and );
-					$matched_taxonomy = reset( $queried_taxonomies );
-					$query = $tax_query_in_and[ $matched_taxonomy ];
-
-					if ( $query['terms'] ) {
-						if ( 'term_id' == $query['field'] ) {
-							$term = get_term( reset( $query['terms'] ), $matched_taxonomy );
-						} else {
-							$term = get_term_by( $query['field'], reset( $query['terms'] ), $matched_taxonomy );
-						}
-					}
-				}
-			}
-
-			if ( ! empty( $term ) && ! is_wp_error( $term ) )  {
-				$this->queried_object = $term;
-				$this->queried_object_id = (int) $term->term_id;
-
-				if ( $this->is_category && 'category' === $this->queried_object->taxonomy )
-					_make_cat_compat( $this->queried_object );
-			}
-		} elseif ( $this->is_post_type_archive ) {
-			$post_type = $this->get( 'post_type' );
-			if ( is_array( $post_type ) )
-				$post_type = reset( $post_type );
-			$this->queried_object = get_post_type_object( $post_type );
-		} elseif ( $this->is_posts_page ) {
-			$page_for_posts = get_option('page_for_posts');
-			$this->queried_object = get_post( $page_for_posts );
-			$this->queried_object_id = (int) $this->queried_object->ID;
-		} elseif ( $this->is_singular && ! empty( $this->post ) ) {
-			$this->queried_object = $this->post;
-			$this->queried_object_id = (int) $this->post->ID;
-		} elseif ( $this->is_author ) {
-			$this->queried_object_id = (int) $this->get('author');
-			$this->queried_object = get_userdata( $this->queried_object_id );
-		}
-
-		return $this->queried_object;
-	}
-
-	/**
-	 * Retrieve ID of the current queried object.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @return int
-	 */
-	public function get_queried_object_id() {
-		$this->get_queried_object();
-
-		if ( isset($this->queried_object_id) ) {
-			return $this->queried_object_id;
-		}
-
-		return 0;
-	}
-
-	/**
-	 * Constructor.
-	 *
-	 * Sets up the WordPress query, if parameter is not empty.
-	 *
-	 * @since 1.5.0
-	 * @access public
-	 *
-	 * @param string|array $query URL query string or array of vars.
-	 */
-	public function __construct($query = '') {
-		if ( ! empty($query) ) {
-			$this->query($query);
-		}
-	}
-
-	/**
-	 * Make private properties readable for backward compatibility.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $name Property to get.
-	 * @return mixed Property.
-	 */
-	public function __get( $name ) {
-		if ( in_array( $name, $this->compat_fields ) ) {
-			return $this->$name;
-		}
-	}
-
-	/**
-	 * Make private properties checkable for backward compatibility.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $name Property to check if set.
-	 * @return bool Whether the property is set.
-	 */
-	public function __isset( $name ) {
-		if ( in_array( $name, $this->compat_fields ) ) {
-			return isset( $this->$name );
-		}
-	}
-
-	/**
-	 * Make private/protected methods readable for backward compatibility.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param callable $name      Method to call.
-	 * @param array    $arguments Arguments to pass when calling.
-	 * @return mixed|false Return value of the callback, false otherwise.
-	 */
-	public function __call( $name, $arguments ) {
-		if ( in_array( $name, $this->compat_methods ) ) {
-			return call_user_func_array( array( $this, $name ), $arguments );
-		}
-		return false;
-	}
-
-	/**
- 	 * Is the query for an existing archive page?
- 	 *
- 	 * Month, Year, Category, Author, Post Type archive...
-	 *
- 	 * @since 3.1.0
- 	 *
- 	 * @return bool
- 	 */
-	public function is_archive() {
-		return (bool) $this->is_archive;
-	}
-
-	/**
-	 * Is the query for an existing post type archive page?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param mixed $post_types Optional. Post type or array of posts types to check against.
-	 * @return bool
-	 */
-	public function is_post_type_archive( $post_types = '' ) {
-		if ( empty( $post_types ) || ! $this->is_post_type_archive )
-			return (bool) $this->is_post_type_archive;
-
-		$post_type = $this->get( 'post_type' );
-		if ( is_array( $post_type ) )
-			$post_type = reset( $post_type );
-		$post_type_object = get_post_type_object( $post_type );
-
-		return in_array( $post_type_object->name, (array) $post_types );
-	}
-
-	/**
-	 * Is the query for an existing attachment page?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param mixed $attachment Attachment ID, title, slug, or array of such.
-	 * @return bool
-	 */
-	public function is_attachment( $attachment = '' ) {
-		if ( ! $this->is_attachment ) {
-			return false;
-		}
-
-		if ( empty( $attachment ) ) {
-			return true;
-		}
-
-		$attachment = array_map( 'strval', (array) $attachment );
-
-		$post_obj = $this->get_queried_object();
-
-		if ( in_array( (string) $post_obj->ID, $attachment ) ) {
-			return true;
-		} elseif ( in_array( $post_obj->post_title, $attachment ) ) {
-			return true;
-		} elseif ( in_array( $post_obj->post_name, $attachment ) ) {
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Is the query for an existing author archive page?
-	 *
-	 * If the $author parameter is specified, this function will additionally
-	 * check if the query is for one of the authors specified.
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param mixed $author Optional. User ID, nickname, nicename, or array of User IDs, nicknames, and nicenames
-	 * @return bool
-	 */
-	public function is_author( $author = '' ) {
-		if ( !$this->is_author )
-			return false;
-
-		if ( empty($author) )
-			return true;
-
-		$author_obj = $this->get_queried_object();
-
-		$author = array_map( 'strval', (array) $author );
-
-		if ( in_array( (string) $author_obj->ID, $author ) )
-			return true;
-		elseif ( in_array( $author_obj->nickname, $author ) )
-			return true;
-		elseif ( in_array( $author_obj->user_nicename, $author ) )
-			return true;
-
-		return false;
-	}
-
-	/**
-	 * Is the query for an existing category archive page?
-	 *
-	 * If the $category parameter is specified, this function will additionally
-	 * check if the query is for one of the categories specified.
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs.
-	 * @return bool
-	 */
-	public function is_category( $category = '' ) {
-		if ( !$this->is_category )
-			return false;
-
-		if ( empty($category) )
-			return true;
-
-		$cat_obj = $this->get_queried_object();
-
-		$category = array_map( 'strval', (array) $category );
-
-		if ( in_array( (string) $cat_obj->term_id, $category ) )
-			return true;
-		elseif ( in_array( $cat_obj->name, $category ) )
-			return true;
-		elseif ( in_array( $cat_obj->slug, $category ) )
-			return true;
-
-		return false;
-	}
-
-	/**
-	 * Is the query for an existing tag archive page?
-	 *
-	 * If the $tag parameter is specified, this function will additionally
-	 * check if the query is for one of the tags specified.
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param mixed $tag Optional. Tag ID, name, slug, or array of Tag IDs, names, and slugs.
-	 * @return bool
-	 */
-	public function is_tag( $tag = '' ) {
-		if ( ! $this->is_tag )
-			return false;
-
-		if ( empty( $tag ) )
-			return true;
-
-		$tag_obj = $this->get_queried_object();
-
-		$tag = array_map( 'strval', (array) $tag );
-
-		if ( in_array( (string) $tag_obj->term_id, $tag ) )
-			return true;
-		elseif ( in_array( $tag_obj->name, $tag ) )
-			return true;
-		elseif ( in_array( $tag_obj->slug, $tag ) )
-			return true;
-
-		return false;
-	}
-
-	/**
-	 * Is the query for an existing custom taxonomy archive page?
-	 *
-	 * If the $taxonomy parameter is specified, this function will additionally
-	 * check if the query is for that specific $taxonomy.
-	 *
-	 * If the $term parameter is specified in addition to the $taxonomy parameter,
-	 * this function will additionally check if the query is for one of the terms
-	 * specified.
-	 *
-	 * @since 3.1.0
-	 *
-	 * @global array $wp_taxonomies
-	 *
-	 * @param mixed $taxonomy Optional. Taxonomy slug or slugs.
-	 * @param mixed $term     Optional. Term ID, name, slug or array of Term IDs, names, and slugs.
-	 * @return bool True for custom taxonomy archive pages, false for built-in taxonomies (category and tag archives).
-	 */
-	public function is_tax( $taxonomy = '', $term = '' ) {
-		global $wp_taxonomies;
-
-		if ( !$this->is_tax )
-			return false;
-
-		if ( empty( $taxonomy ) )
-			return true;
-
-		$queried_object = $this->get_queried_object();
-		$tax_array = array_intersect( array_keys( $wp_taxonomies ), (array) $taxonomy );
-		$term_array = (array) $term;
-
-		// Check that the taxonomy matches.
-		if ( ! ( isset( $queried_object->taxonomy ) && count( $tax_array ) && in_array( $queried_object->taxonomy, $tax_array ) ) )
-			return false;
-
-		// Only a Taxonomy provided.
-		if ( empty( $term ) )
-			return true;
-
-		return isset( $queried_object->term_id ) &&
-			count( array_intersect(
-				array( $queried_object->term_id, $queried_object->name, $queried_object->slug ),
-				$term_array
-			) );
-	}
-
-	/**
-	 * Whether the current URL is within the comments popup window.
-	 *
-	 * @since 3.1.0
-	 * @deprecated 4.5.0
-	 *
-	 * @return bool
-	 */
-	public function is_comments_popup() {
-		_deprecated_function( __FUNCTION__, '4.5.0' );
-
-		return false;
-	}
-
-	/**
-	 * Is the query for an existing date archive?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_date() {
-		return (bool) $this->is_date;
-	}
-
-	/**
-	 * Is the query for an existing day archive?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_day() {
-		return (bool) $this->is_day;
-	}
-
-	/**
-	 * Is the query for a feed?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param string|array $feeds Optional feed types to check.
-	 * @return bool
-	 */
-	public function is_feed( $feeds = '' ) {
-		if ( empty( $feeds ) || ! $this->is_feed )
-			return (bool) $this->is_feed;
-		$qv = $this->get( 'feed' );
-		if ( 'feed' == $qv )
-			$qv = get_default_feed();
-		return in_array( $qv, (array) $feeds );
-	}
-
-	/**
-	 * Is the query for a comments feed?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_comment_feed() {
-		return (bool) $this->is_comment_feed;
-	}
-
-	/**
-	 * Is the query for the front page of the site?
-	 *
-	 * This is for what is displayed at your site's main URL.
-	 *
-	 * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_on_front'.
-	 *
-	 * If you set a static page for the front page of your site, this function will return
-	 * true when viewing that page.
-	 *
-	 * Otherwise the same as @see WP_Query::is_home()
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool True, if front of site.
-	 */
-	public function is_front_page() {
-		// most likely case
-		if ( 'posts' == get_option( 'show_on_front') && $this->is_home() )
-			return true;
-		elseif ( 'page' == get_option( 'show_on_front') && get_option( 'page_on_front' ) && $this->is_page( get_option( 'page_on_front' ) ) )
-			return true;
-		else
-			return false;
-	}
-
-	/**
-	 * Is the query for the blog homepage?
-	 *
-	 * This is the page which shows the time based blog content of your site.
-	 *
-	 * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_for_posts'.
-	 *
-	 * If you set a static page for the front page of your site, this function will return
-	 * true only on the page you set as the "Posts page".
-	 *
-	 * @see WP_Query::is_front_page()
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool True if blog view homepage.
-	 */
-	public function is_home() {
-		return (bool) $this->is_home;
-	}
-
-	/**
-	 * Is the query for an existing month archive?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_month() {
-		return (bool) $this->is_month;
-	}
-
-	/**
-	 * Is the query for an existing single page?
-	 *
-	 * If the $page parameter is specified, this function will additionally
-	 * check if the query is for one of the pages specified.
-	 *
-	 * @see WP_Query::is_single()
-	 * @see WP_Query::is_singular()
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param int|string|array $page Optional. Page ID, title, slug, path, or array of such. Default empty.
-	 * @return bool Whether the query is for an existing single page.
-	 */
-	public function is_page( $page = '' ) {
-		if ( !$this->is_page )
-			return false;
-
-		if ( empty( $page ) )
-			return true;
-
-		$page_obj = $this->get_queried_object();
-
-		$page = array_map( 'strval', (array) $page );
-
-		if ( in_array( (string) $page_obj->ID, $page ) ) {
-			return true;
-		} elseif ( in_array( $page_obj->post_title, $page ) ) {
-			return true;
-		} elseif ( in_array( $page_obj->post_name, $page ) ) {
-			return true;
-		} else {
-			foreach ( $page as $pagepath ) {
-				if ( ! strpos( $pagepath, '/' ) ) {
-					continue;
-				}
-				$pagepath_obj = get_page_by_path( $pagepath );
-
-				if ( $pagepath_obj && ( $pagepath_obj->ID == $page_obj->ID ) ) {
-					return true;
-				}
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Is the query for paged result and not for the first page?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_paged() {
-		return (bool) $this->is_paged;
-	}
-
-	/**
-	 * Is the query for a post or page preview?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_preview() {
-		return (bool) $this->is_preview;
-	}
-
-	/**
-	 * Is the query for the robots file?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_robots() {
-		return (bool) $this->is_robots;
-	}
-
-	/**
-	 * Is the query for a search?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_search() {
-		return (bool) $this->is_search;
-	}
-
-	/**
-	 * Is the query for an existing single post?
-	 *
-	 * Works for any post type, except attachments and pages
-	 *
-	 * If the $post parameter is specified, this function will additionally
-	 * check if the query is for one of the Posts specified.
-	 *
-	 * @see WP_Query::is_page()
-	 * @see WP_Query::is_singular()
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param int|string|array $post Optional. Post ID, title, slug, path, or array of such. Default empty.
-	 * @return bool Whether the query is for an existing single post.
-	 */
-	public function is_single( $post = '' ) {
-		if ( !$this->is_single )
-			return false;
-
-		if ( empty($post) )
-			return true;
-
-		$post_obj = $this->get_queried_object();
-
-		$post = array_map( 'strval', (array) $post );
-
-		if ( in_array( (string) $post_obj->ID, $post ) ) {
-			return true;
-		} elseif ( in_array( $post_obj->post_title, $post ) ) {
-			return true;
-		} elseif ( in_array( $post_obj->post_name, $post ) ) {
-			return true;
-		} else {
-			foreach ( $post as $postpath ) {
-				if ( ! strpos( $postpath, '/' ) ) {
-					continue;
-				}
-				$postpath_obj = get_page_by_path( $postpath, OBJECT, $post_obj->post_type );
-
-				if ( $postpath_obj && ( $postpath_obj->ID == $post_obj->ID ) ) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Is the query for an existing single post of any post type (post, attachment, page, ... )?
-	 *
-	 * If the $post_types parameter is specified, this function will additionally
-	 * check if the query is for one of the Posts Types specified.
-	 *
-	 * @see WP_Query::is_page()
-	 * @see WP_Query::is_single()
-	 *
-	 * @since 3.1.0
-	 *
-	 * @param string|array $post_types Optional. Post type or array of post types. Default empty.
-	 * @return bool Whether the query is for an existing single post of any of the given post types.
-	 */
-	public function is_singular( $post_types = '' ) {
-		if ( empty( $post_types ) || !$this->is_singular )
-			return (bool) $this->is_singular;
-
-		$post_obj = $this->get_queried_object();
-
-		return in_array( $post_obj->post_type, (array) $post_types );
-	}
-
-	/**
-	 * Is the query for a specific time?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_time() {
-		return (bool) $this->is_time;
-	}
-
-	/**
-	 * Is the query for a trackback endpoint call?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_trackback() {
-		return (bool) $this->is_trackback;
-	}
-
-	/**
-	 * Is the query for an existing year archive?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_year() {
-		return (bool) $this->is_year;
-	}
-
-	/**
-	 * Is the query a 404 (returns no results)?
-	 *
-	 * @since 3.1.0
-	 *
-	 * @return bool
-	 */
-	public function is_404() {
-		return (bool) $this->is_404;
-	}
-
-	/**
-	 * Is the query for an embedded post?
-	 *
-	 * @since 4.4.0
-	 *
-	 * @return bool
-	 */
-	public function is_embed() {
-		return (bool) $this->is_embed;
-	}
-
-	/**
-	 * Is the query the main query?
-	 *
-	 * @since 3.3.0
-	 *
-	 * @global WP_Query $wp_query Global WP_Query instance.
-	 *
-	 * @return bool
-	 */
-	public function is_main_query() {
-		global $wp_the_query;
-		return $wp_the_query === $this;
-	}
-
-	/**
-	 * Set up global post data.
-	 *
-	 * @since 4.1.0
-	 * @since 4.4.0 Added the ability to pass a post ID to `$post`.
-	 *
-	 * @global int             $id
-	 * @global WP_User         $authordata
-	 * @global string|int|bool $currentday
-	 * @global string|int|bool $currentmonth
-	 * @global int             $page
-	 * @global array           $pages
-	 * @global int             $multipage
-	 * @global int             $more
-	 * @global int             $numpages
-	 *
-	 * @param WP_Post|object|int $post WP_Post instance or Post ID/object.
-	 * @return true True when finished.
-	 */
-	public function setup_postdata( $post ) {
-		global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;
-
-		if ( ! ( $post instanceof WP_Post ) ) {
-			$post = get_post( $post );
-		}
-
-		if ( ! $post ) {
-			return;
-		}
-
-		$id = (int) $post->ID;
-
-		$authordata = get_userdata($post->post_author);
-
-		$currentday = mysql2date('d.m.y', $post->post_date, false);
-		$currentmonth = mysql2date('m', $post->post_date, false);
-		$numpages = 1;
-		$multipage = 0;
-		$page = $this->get( 'page' );
-		if ( ! $page )
-			$page = 1;
-
-		/*
-		 * Force full post content when viewing the permalink for the $post,
-		 * or when on an RSS feed. Otherwise respect the 'more' tag.
-		 */
-		if ( $post->ID === get_queried_object_id() && ( $this->is_page() || $this->is_single() ) ) {
-			$more = 1;
-		} elseif ( $this->is_feed() ) {
-			$more = 1;
-		} else {
-			$more = 0;
-		}
-
-		$content = $post->post_content;
-		if ( false !== strpos( $content, '<!--nextpage-->' ) ) {
-			$content = str_replace( "\n<!--nextpage-->\n", '<!--nextpage-->', $content );
-			$content = str_replace( "\n<!--nextpage-->", '<!--nextpage-->', $content );
-			$content = str_replace( "<!--nextpage-->\n", '<!--nextpage-->', $content );
-
-			// Ignore nextpage at the beginning of the content.
-			if ( 0 === strpos( $content, '<!--nextpage-->' ) )
-				$content = substr( $content, 15 );
-
-			$pages = explode('<!--nextpage-->', $content);
-		} else {
-			$pages = array( $post->post_content );
-		}
-
-		/**
-		 * Filters the "pages" derived from splitting the post content.
-		 *
-		 * "Pages" are determined by splitting the post content based on the presence
-		 * of `<!-- nextpage -->` tags.
-		 *
-		 * @since 4.4.0
-		 *
-		 * @param array   $pages Array of "pages" derived from the post content.
-		 *                       of `<!-- nextpage -->` tags..
-		 * @param WP_Post $post  Current post object.
-		 */
-		$pages = apply_filters( 'content_pagination', $pages, $post );
-
-		$numpages = count( $pages );
-
-		if ( $numpages > 1 ) {
-			if ( $page > 1 ) {
-				$more = 1;
-			}
-			$multipage = 1;
-		} else {
-	 		$multipage = 0;
-	 	}
-
-		/**
-		 * Fires once the post data has been setup.
-		 *
-		 * @since 2.8.0
-		 * @since 4.1.0 Introduced `$this` parameter.
-		 *
-		 * @param WP_Post  &$post The Post object (passed by reference).
-		 * @param WP_Query &$this The current Query object (passed by reference).
-		 */
-		do_action_ref_array( 'the_post', array( &$post, &$this ) );
-
-		return true;
-	}
-	/**
-	 * After looping through a nested query, this function
-	 * restores the $post global to the current post in this query.
-	 *
-	 * @since 3.7.0
-	 *
-	 * @global WP_Post $post
-	 */
-	public function reset_postdata() {
-		if ( ! empty( $this->post ) ) {
-			$GLOBALS['post'] = $this->post;
-			$this->setup_postdata( $this->post );
-		}
-	}
-
-	/**
-	 * Lazyload term meta for posts in the loop.
-	 *
-	 * @since 4.4.0
-	 * @deprecated 4.5.0 See wp_queue_posts_for_term_meta_lazyload().
-	 *
-	 * @param mixed $check
-	 * @param int   $term_id
-	 * @return mixed
-	 */
-	public function lazyload_term_meta( $check, $term_id ) {
-		_deprecated_function( __METHOD__, '4.5.0' );
-		return $check;
-	}
-
-	/**
-	 * Lazyload comment meta for comments in the loop.
-	 *
-	 * @since 4.4.0
-	 * @deprecated 4.5.0 See wp_queue_comments_for_comment_meta_lazyload().
-	 *
-	 * @param mixed $check
-	 * @param int   $comment_id
-	 * @return mixed
-	 */
-	public function lazyload_comment_meta( $check, $comment_id ) {
-		_deprecated_function( __METHOD__, '4.5.0' );
-		return $check;
-	}
-}
-
 /**
  * Redirect old slugs to the correct permalink.
  *
@@ -4927,13 +844,10 @@ class WP_Query {
  *
  * @since 2.1.0
  *
- * @global WP_Query   $wp_query   Global WP_Query instance.
- * @global wpdb       $wpdb       WordPress database abstraction object.
+ * @global wpdb $wpdb WordPress database abstraction object.
  */
 function wp_old_slug_redirect() {
-	global $wp_query;
-
-	if ( is_404() && '' !== $wp_query->query_vars['name'] ) :
+	if ( is_404() && '' !== get_query_var( 'name' ) ) {
 		global $wpdb;
 
 		// Guess the current post_type based on the query vars.
@@ -4941,42 +855,48 @@ function wp_old_slug_redirect() {
 			$post_type = get_query_var( 'post_type' );
 		} elseif ( get_query_var( 'attachment' ) ) {
 			$post_type = 'attachment';
-		} elseif ( ! empty( $wp_query->query_vars['pagename'] ) ) {
+		} elseif ( get_query_var( 'pagename' ) ) {
 			$post_type = 'page';
 		} else {
 			$post_type = 'post';
 		}
 
 		if ( is_array( $post_type ) ) {
-			if ( count( $post_type ) > 1 )
+			if ( count( $post_type ) > 1 ) {
 				return;
+			}
 			$post_type = reset( $post_type );
 		}
 
 		// Do not attempt redirect for hierarchical post types
-		if ( is_post_type_hierarchical( $post_type ) )
+		if ( is_post_type_hierarchical( $post_type ) ) {
 			return;
+		}
 
-		$query = $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta, $wpdb->posts WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, $wp_query->query_vars['name']);
+		$query = $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta, $wpdb->posts WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, get_query_var( 'name' ) );
 
 		// if year, monthnum, or day have been specified, make our query more precise
 		// just in case there are multiple identical _wp_old_slug values
-		if ( '' != $wp_query->query_vars['year'] )
-			$query .= $wpdb->prepare(" AND YEAR(post_date) = %d", $wp_query->query_vars['year']);
-		if ( '' != $wp_query->query_vars['monthnum'] )
-			$query .= $wpdb->prepare(" AND MONTH(post_date) = %d", $wp_query->query_vars['monthnum']);
-		if ( '' != $wp_query->query_vars['day'] )
-			$query .= $wpdb->prepare(" AND DAYOFMONTH(post_date) = %d", $wp_query->query_vars['day']);
+		if ( get_query_var( 'year' ) ) {
+			$query .= $wpdb->prepare(" AND YEAR(post_date) = %d", get_query_var( 'year' ) );
+		}
+		if ( get_query_var( 'monthnum' ) ) {
+			$query .= $wpdb->prepare(" AND MONTH(post_date) = %d", get_query_var( 'monthnum' ) );
+		}
+		if ( get_query_var( 'day' ) ) {
+			$query .= $wpdb->prepare(" AND DAYOFMONTH(post_date) = %d", get_query_var( 'day' ) );
+		}
 
-		$id = (int) $wpdb->get_var($query);
+		$id = (int) $wpdb->get_var( $query );
 
-		if ( ! $id )
+		if ( ! $id ) {
 			return;
+		}
 
 		$link = get_permalink( $id );
 
-		if ( isset( $GLOBALS['wp_query']->query_vars['paged'] ) && $GLOBALS['wp_query']->query_vars['paged'] > 1 ) {
-			$link = user_trailingslashit( trailingslashit( $link ) . 'page/' . $GLOBALS['wp_query']->query_vars['paged'] );
+		if ( get_query_var( 'paged' ) > 1 ) {
+			$link = user_trailingslashit( trailingslashit( $link ) . 'page/' . get_query_var( 'paged' ) );
 		} elseif( is_embed() ) {
 			$link = user_trailingslashit( trailingslashit( $link ) . 'embed' );
 		}
@@ -4996,7 +916,7 @@ function wp_old_slug_redirect() {
 
 		wp_redirect( $link, 301 ); // Permanent redirect
 		exit;
-	endif;
+	}
 }
 
 /**
diff --git a/wp-includes/rest-api.php b/wp-includes/rest-api.php
index 13bfa596e..e5efb74fb 100644
--- a/wp-includes/rest-api.php
+++ b/wp-includes/rest-api.php
@@ -70,6 +70,48 @@ function register_rest_route( $namespace, $route, $args = array(), $override = f
 	return true;
 }
 
+/**
+ * Registers a new field on an existing WordPress object type.
+ *
+ * @since 4.7.0
+ *
+ * @global array $wp_rest_additional_fields Holds registered fields, organized
+ *                                          by object type.
+ *
+ * @param string|array $object_type Object(s) the field is being registered
+ *                                  to, "post"|"term"|"comment" etc.
+ * @param string $attribute         The attribute name.
+ * @param array  $args {
+ *     Optional. An array of arguments used to handle the registered field.
+ *
+ *     @type string|array|null $get_callback    Optional. The callback function used to retrieve the field
+ *                                              value. Default is 'null', the field will not be returned in
+ *                                              the response.
+ *     @type string|array|null $update_callback Optional. The callback function used to set and update the
+ *                                              field value. Default is 'null', the value cannot be set or
+ *                                              updated.
+ *     @type string|array|null $schema          Optional. The callback function used to create the schema for
+ *                                              this field. Default is 'null', no schema entry will be returned.
+ * }
+ */
+function register_rest_field( $object_type, $attribute, $args = array() ) {
+	$defaults = array(
+		'get_callback'    => null,
+		'update_callback' => null,
+		'schema'          => null,
+	);
+
+	$args = wp_parse_args( $args, $defaults );
+
+	global $wp_rest_additional_fields;
+
+	$object_types = (array) $object_type;
+
+	foreach ( $object_types as $object_type ) {
+		$wp_rest_additional_fields[ $object_type ][ $attribute ] = $args;
+	}
+}
+
 /**
  * Registers rewrite rules for the API.
  *
@@ -91,10 +133,15 @@ function rest_api_init() {
  * @since 4.4.0
  *
  * @see add_rewrite_rule()
+ * @global WP_Rewrite $wp_rewrite
  */
 function rest_api_register_rewrites() {
+	global $wp_rewrite;
+
 	add_rewrite_rule( '^' . rest_get_url_prefix() . '/?$','index.php?rest_route=/','top' );
 	add_rewrite_rule( '^' . rest_get_url_prefix() . '/(.*)?','index.php?rest_route=/$matches[1]','top' );
+	add_rewrite_rule( '^' . $wp_rewrite->index . '/' . rest_get_url_prefix() . '/?$','index.php?rest_route=/','top' );
+	add_rewrite_rule( '^' . $wp_rewrite->index . '/' . rest_get_url_prefix() . '/(.*)?','index.php?rest_route=/$matches[1]','top' );
 }
 
 /**
@@ -119,6 +166,71 @@ function rest_api_default_filters() {
 	add_filter( 'rest_pre_dispatch', 'rest_handle_options_request', 10, 3 );
 }
 
+/**
+ * Registers default REST API routes.
+ *
+ * @since 4.7.0
+ */
+function create_initial_rest_routes() {
+	foreach ( get_post_types( array( 'show_in_rest' => true ), 'objects' ) as $post_type ) {
+		$class = ! empty( $post_type->rest_controller_class ) ? $post_type->rest_controller_class : 'WP_REST_Posts_Controller';
+
+		if ( ! class_exists( $class ) ) {
+			continue;
+		}
+		$controller = new $class( $post_type->name );
+		if ( ! is_subclass_of( $controller, 'WP_REST_Controller' ) ) {
+			continue;
+		}
+
+		$controller->register_routes();
+
+		if ( post_type_supports( $post_type->name, 'revisions' ) ) {
+			$revisions_controller = new WP_REST_Revisions_Controller( $post_type->name );
+			$revisions_controller->register_routes();
+		}
+	}
+
+	// Post types.
+	$controller = new WP_REST_Post_Types_Controller;
+	$controller->register_routes();
+
+	// Post statuses.
+	$controller = new WP_REST_Post_Statuses_Controller;
+	$controller->register_routes();
+
+	// Taxonomies.
+	$controller = new WP_REST_Taxonomies_Controller;
+	$controller->register_routes();
+
+	// Terms.
+	foreach ( get_taxonomies( array( 'show_in_rest' => true ), 'object' ) as $taxonomy ) {
+		$class = ! empty( $taxonomy->rest_controller_class ) ? $taxonomy->rest_controller_class : 'WP_REST_Terms_Controller';
+
+		if ( ! class_exists( $class ) ) {
+			continue;
+		}
+		$controller = new $class( $taxonomy->name );
+		if ( ! is_subclass_of( $controller, 'WP_REST_Controller' ) ) {
+			continue;
+		}
+
+		$controller->register_routes();
+	}
+
+	// Users.
+	$controller = new WP_REST_Users_Controller;
+	$controller->register_routes();
+
+	// Comments.
+	$controller = new WP_REST_Comments_Controller;
+	$controller->register_routes();
+
+	// Settings.
+	$controller = new WP_REST_Settings_Controller;
+	$controller->register_routes();
+}
+
 /**
  * Loads the REST API.
  *
@@ -144,7 +256,7 @@ function rest_api_loaded() {
 	$server = rest_get_server();
 
 	// Fire off the request.
-	$server->serve_request( $GLOBALS['wp']->query_vars['rest_route'] );
+	$server->serve_request( untrailingslashit( $GLOBALS['wp']->query_vars['rest_route'] ) );
 
 	// We're done.
 	die();
@@ -176,6 +288,7 @@ function rest_get_url_prefix() {
  * @since 4.4.0
  *
  * @todo Check if this is even necessary
+ * @global WP_Rewrite $wp_rewrite
  *
  * @param int    $blog_id Optional. Blog ID. Default of null returns URL for current blog.
  * @param string $path    Optional. REST route. Default '/'.
@@ -188,7 +301,14 @@ function get_rest_url( $blog_id = null, $path = '/', $scheme = 'rest' ) {
 	}
 
 	if ( is_multisite() && get_blog_option( $blog_id, 'permalink_structure' ) || get_option( 'permalink_structure' ) ) {
-		$url = get_home_url( $blog_id, rest_get_url_prefix(), $scheme );
+		global $wp_rewrite;
+
+		if ( $wp_rewrite->using_index_permalinks() ) {
+			$url = get_home_url( $blog_id, $wp_rewrite->index . '/' . rest_get_url_prefix(), $scheme );
+		} else {
+			$url = get_home_url( $blog_id, rest_get_url_prefix(), $scheme );
+		}
+
 		$url .= '/' . ltrim( $path, '/' );
 	} else {
 		$url = trailingslashit( get_home_url( $blog_id, '', $scheme ) );
@@ -323,8 +443,9 @@ function rest_ensure_request( $request ) {
  * @since 4.4.0
  *
  * @param WP_Error|WP_HTTP_Response|mixed $response Response to check.
- * @return mixed WP_Error if response generated an error, WP_HTTP_Response if response
- *               is a already an instance, otherwise returns a new WP_REST_Response instance.
+ * @return WP_REST_Response|mixed If response generated an error, WP_Error, if response
+ *                                is already an instance, WP_HTTP_Response, otherwise
+ *                                returns a new WP_REST_Response instance.
  */
 function rest_ensure_response( $response ) {
 	if ( is_wp_error( $response ) ) {
@@ -393,8 +514,9 @@ function rest_send_cors_headers( $value ) {
 
 	if ( $origin ) {
 		header( 'Access-Control-Allow-Origin: ' . esc_url_raw( $origin ) );
-		header( 'Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE' );
+		header( 'Access-Control-Allow-Methods: OPTIONS, GET, POST, PUT, PATCH, DELETE' );
 		header( 'Access-Control-Allow-Credentials: true' );
+		header( 'Vary: Origin' );
 	}
 
 	return $value;
@@ -421,10 +543,8 @@ function rest_handle_options_request( $response, $handler, $request ) {
 	$response = new WP_REST_Response();
 	$data = array();
 
-	$accept = array();
-
 	foreach ( $handler->get_routes() as $route => $endpoints ) {
-		$match = preg_match( '@^' . $route . '$@i', $request->get_route(), $args );
+		$match = preg_match( '@^' . $route . '$@i', $request->get_route() );
 
 		if ( ! $match ) {
 			continue;
@@ -671,3 +791,379 @@ function rest_get_date_with_gmt( $date, $force_utc = false ) {
 
 	return array( $local, $utc );
 }
+
+/**
+ * Returns a contextual HTTP error code for authorization failure.
+ *
+ * @since 4.7.0
+ *
+ * @return integer 401 if the user is not logged in, 403 if the user is logged in.
+ */
+function rest_authorization_required_code() {
+	return is_user_logged_in() ? 403 : 401;
+}
+
+/**
+ * Validate a request argument based on details registered to the route.
+ *
+ * @since 4.7.0
+ *
+ * @param  mixed            $value
+ * @param  WP_REST_Request  $request
+ * @param  string           $param
+ * @return WP_Error|boolean
+ */
+function rest_validate_request_arg( $value, $request, $param ) {
+	$attributes = $request->get_attributes();
+	if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
+		return true;
+	}
+	$args = $attributes['args'][ $param ];
+
+	return rest_validate_value_from_schema( $value, $args, $param );
+}
+
+/**
+ * Sanitize a request argument based on details registered to the route.
+ *
+ * @since 4.7.0
+ *
+ * @param  mixed            $value
+ * @param  WP_REST_Request  $request
+ * @param  string           $param
+ * @return mixed
+ */
+function rest_sanitize_request_arg( $value, $request, $param ) {
+	$attributes = $request->get_attributes();
+	if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
+		return $value;
+	}
+	$args = $attributes['args'][ $param ];
+
+	return rest_sanitize_value_from_schema( $value, $args );
+}
+
+/**
+ * Parse a request argument based on details registered to the route.
+ *
+ * Runs a validation check and sanitizes the value, primarily to be used via
+ * the `sanitize_callback` arguments in the endpoint args registration.
+ *
+ * @since 4.7.0
+ *
+ * @param  mixed            $value
+ * @param  WP_REST_Request  $request
+ * @param  string           $param
+ * @return mixed
+ */
+function rest_parse_request_arg( $value, $request, $param ) {
+	$is_valid = rest_validate_request_arg( $value, $request, $param );
+
+	if ( is_wp_error( $is_valid ) ) {
+		return $is_valid;
+	}
+
+	$value = rest_sanitize_request_arg( $value, $request, $param );
+
+	return $value;
+}
+
+/**
+ * Determines if an IP address is valid.
+ *
+ * Handles both IPv4 and IPv6 addresses.
+ *
+ * @since 4.7.0
+ *
+ * @param  string $ip IP address.
+ * @return string|false The valid IP address, otherwise false.
+ */
+function rest_is_ip_address( $ip ) {
+	$ipv4_pattern = '/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/';
+
+	if ( ! preg_match( $ipv4_pattern, $ip ) && ! Requests_IPv6::check_ipv6( $ip ) ) {
+		return false;
+	}
+
+	return $ip;
+}
+
+/**
+ * Changes a boolean-like value into the proper boolean value.
+ *
+ * @since 4.7.0
+ *
+ * @param bool|string|int $value The value being evaluated.
+ * @return boolean Returns the proper associated boolean value.
+ */
+function rest_sanitize_boolean( $value ) {
+	// String values are translated to `true`; make sure 'false' is false.
+	if ( is_string( $value )  ) {
+		$value = strtolower( $value );
+		if ( in_array( $value, array( 'false', '0' ), true ) ) {
+			$value = false;
+		}
+	}
+
+	// Everything else will map nicely to boolean.
+	return (boolean) $value;
+}
+
+/**
+ * Determines if a given value is boolean-like.
+ *
+ * @since 4.7.0
+ *
+ * @param bool|string $maybe_bool The value being evaluated.
+ * @return boolean True if a boolean, otherwise false.
+ */
+function rest_is_boolean( $maybe_bool ) {
+	if ( is_bool( $maybe_bool ) ) {
+		return true;
+	}
+
+	if ( is_string( $maybe_bool ) ) {
+		$maybe_bool = strtolower( $maybe_bool );
+
+		$valid_boolean_values = array(
+			'false',
+			'true',
+			'0',
+			'1',
+		);
+
+		return in_array( $maybe_bool, $valid_boolean_values, true );
+	}
+
+	if ( is_int( $maybe_bool ) ) {
+		return in_array( $maybe_bool, array( 0, 1 ), true );
+	}
+
+	return false;
+}
+
+/**
+ * Retrieves the avatar urls in various sizes based on a given email address.
+ *
+ * @since 4.7.0
+ *
+ * @see get_avatar_url()
+ *
+ * @param string $email Email address.
+ * @return array $urls Gravatar url for each size.
+ */
+function rest_get_avatar_urls( $email ) {
+	$avatar_sizes = rest_get_avatar_sizes();
+
+	$urls = array();
+	foreach ( $avatar_sizes as $size ) {
+		$urls[ $size ] = get_avatar_url( $email, array( 'size' => $size ) );
+	}
+
+	return $urls;
+}
+
+/**
+ * Retrieves the pixel sizes for avatars.
+ *
+ * @since 4.7.0
+ *
+ * @return array List of pixel sizes for avatars. Default `[ 24, 48, 96 ]`.
+ */
+function rest_get_avatar_sizes() {
+	/**
+	 * Filter the REST avatar sizes.
+	 *
+	 * Use this filter to adjust the array of sizes returned by the
+	 * `rest_get_avatar_sizes` function.
+	 *
+	 * @since 4.4.0
+	 *
+	 * @param array $sizes An array of int values that are the pixel sizes for avatars.
+	 *                     Default `[ 24, 48, 96 ]`.
+	 */
+	return apply_filters( 'rest_avatar_sizes', array( 24, 48, 96 ) );
+}
+
+/**
+ * Validate a value based on a schema.
+ *
+ * @param mixed  $value The value to validate.
+ * @param array  $args  Schema array to use for validation.
+ * @param string $param The parameter name, used in error messages.
+ * @return true|WP_Error
+ */
+function rest_validate_value_from_schema( $value, $args, $param = '' ) {
+	if ( 'array' === $args['type'] ) {
+		if ( ! is_array( $value ) ) {
+			$value = preg_split( '/[\s,]+/', $value );
+		}
+		if ( ! wp_is_numeric_array( $value ) ) {
+			/* translators: 1: parameter, 2: type name */
+			return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s is not of type %2$s.' ), $param, 'array' ) );
+		}
+		foreach ( $value as $index => $v ) {
+			$is_valid = rest_validate_value_from_schema( $v, $args['items'], $param . '[' . $index . ']' );
+			if ( is_wp_error( $is_valid ) ) {
+				return $is_valid;
+			}
+		}
+	}
+	if ( ! empty( $args['enum'] ) ) {
+		if ( ! in_array( $value, $args['enum'], true ) ) {
+			/* translators: 1: parameter, 2: list of valid values */
+			return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s is not one of %2$s.' ), $param, implode( ', ', $args['enum'] ) ) );
+		}
+	}
+
+	if ( in_array( $args['type'], array( 'integer', 'number' ) ) && ! is_numeric( $value ) ) {
+		/* translators: 1: parameter, 2: type name */
+		return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s is not of type %2$s.' ), $param, $args['type'] ) );
+	}
+
+	if ( 'integer' === $args['type'] && round( floatval( $value ) ) !== floatval( $value ) ) {
+		/* translators: 1: parameter, 2: type name */
+		return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s is not of type %2$s.' ), $param, 'integer' ) );
+	}
+
+	if ( 'boolean' === $args['type'] && ! rest_is_boolean( $value ) ) {
+		/* translators: 1: parameter, 2: type name */
+		return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s is not of type %2$s.' ), $value, 'boolean' ) );
+	}
+
+	if ( 'string' === $args['type'] && ! is_string( $value ) ) {
+		/* translators: 1: parameter, 2: type name */
+		return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s is not of type %2$s.' ), $param, 'string' ) );
+	}
+
+	if ( isset( $args['format'] ) ) {
+		switch ( $args['format'] ) {
+			case 'date-time' :
+				if ( ! rest_parse_date( $value ) ) {
+					return new WP_Error( 'rest_invalid_date', __( 'Invalid date.' ) );
+				}
+				break;
+
+			case 'email' :
+				// is_email() checks for 3 characters (a@b), but
+				// wp_handle_comment_submission() requires 6 characters (a@b.co)
+				//
+				// https://core.trac.wordpress.org/ticket/38506
+				if ( ! is_email( $value ) || strlen( $value ) < 6 ) {
+					return new WP_Error( 'rest_invalid_email', __( 'Invalid email address.' ) );
+				}
+				break;
+			case 'ip' :
+				if ( ! rest_is_ip_address( $value ) ) {
+					/* translators: %s: IP address */
+					return new WP_Error( 'rest_invalid_param', sprintf( __( '%s is not a valid IP address.' ), $value ) );
+				}
+				break;
+		}
+	}
+
+	if ( in_array( $args['type'], array( 'number', 'integer' ), true ) && ( isset( $args['minimum'] ) || isset( $args['maximum'] ) ) ) {
+		if ( isset( $args['minimum'] ) && ! isset( $args['maximum'] ) ) {
+			if ( ! empty( $args['exclusiveMinimum'] ) && $value <= $args['minimum'] ) {
+				/* translators: 1: parameter, 2: minimum number */
+				return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s must be greater than %2$d (exclusive)' ), $param, $args['minimum'] ) );
+			} elseif ( empty( $args['exclusiveMinimum'] ) && $value < $args['minimum'] ) {
+				/* translators: 1: parameter, 2: minimum number */
+				return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s must be greater than %2$d (inclusive)' ), $param, $args['minimum'] ) );
+			}
+		} elseif ( isset( $args['maximum'] ) && ! isset( $args['minimum'] ) ) {
+			if ( ! empty( $args['exclusiveMaximum'] ) && $value >= $args['maximum'] ) {
+				/* translators: 1: parameter, 2: maximum number */
+				return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s must be less than %2$d (exclusive)' ), $param, $args['maximum'] ) );
+			} elseif ( empty( $args['exclusiveMaximum'] ) && $value > $args['maximum'] ) {
+				/* translators: 1: parameter, 2: maximum number */
+				return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s must be less than %2$d (inclusive)' ), $param, $args['maximum'] ) );
+			}
+		} elseif ( isset( $args['maximum'] ) && isset( $args['minimum'] ) ) {
+			if ( ! empty( $args['exclusiveMinimum'] ) && ! empty( $args['exclusiveMaximum'] ) ) {
+				if ( $value >= $args['maximum'] || $value <= $args['minimum'] ) {
+					/* translators: 1: parameter, 2: minimum number, 3: maximum number */
+					return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s must be between %2$d (exclusive) and %3$d (exclusive)' ), $param, $args['minimum'], $args['maximum'] ) );
+				}
+			} elseif ( empty( $args['exclusiveMinimum'] ) && ! empty( $args['exclusiveMaximum'] ) ) {
+				if ( $value >= $args['maximum'] || $value < $args['minimum'] ) {
+					/* translators: 1: parameter, 2: minimum number, 3: maximum number */
+					return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s must be between %2$d (inclusive) and %3$d (exclusive)' ), $param, $args['minimum'], $args['maximum'] ) );
+				}
+			} elseif ( ! empty( $args['exclusiveMinimum'] ) && empty( $args['exclusiveMaximum'] ) ) {
+				if ( $value > $args['maximum'] || $value <= $args['minimum'] ) {
+					/* translators: 1: parameter, 2: minimum number, 3: maximum number */
+					return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s must be between %2$d (exclusive) and %3$d (inclusive)' ), $param, $args['minimum'], $args['maximum'] ) );
+				}
+			} elseif ( empty( $args['exclusiveMinimum'] ) && empty( $args['exclusiveMaximum'] ) ) {
+				if ( $value > $args['maximum'] || $value < $args['minimum'] ) {
+					/* translators: 1: parameter, 2: minimum number, 3: maximum number */
+					return new WP_Error( 'rest_invalid_param', sprintf( __( '%1$s must be between %2$d (inclusive) and %3$d (inclusive)' ), $param, $args['minimum'], $args['maximum'] ) );
+				}
+			}
+		}
+	}
+
+	return true;
+}
+
+/**
+ * Sanitize a value based on a schema.
+ *
+ * @param mixed $value The value to sanitize.
+ * @param array $args  Schema array to use for sanitization.
+ * @return true|WP_Error
+ */
+function rest_sanitize_value_from_schema( $value, $args ) {
+	if ( 'array' === $args['type'] ) {
+		if ( empty( $args['items'] ) ) {
+			return (array) $value;
+		}
+		if ( ! is_array( $value ) ) {
+			$value = preg_split( '/[\s,]+/', $value );
+		}
+		foreach ( $value as $index => $v ) {
+			$value[ $index ] = rest_sanitize_value_from_schema( $v, $args['items'] );
+		}
+		// Normalize to numeric array so nothing unexpected
+		// is in the keys.
+		$value = array_values( $value );
+		return $value;
+	}
+	if ( 'integer' === $args['type'] ) {
+		return (int) $value;
+	}
+
+	if ( 'number' === $args['type'] ) {
+		return (float) $value;
+	}
+
+	if ( 'boolean' === $args['type'] ) {
+		return rest_sanitize_boolean( $value );
+	}
+
+	if ( isset( $args['format'] ) ) {
+		switch ( $args['format'] ) {
+			case 'date-time' :
+				return sanitize_text_field( $value );
+
+			case 'email' :
+				/*
+				 * sanitize_email() validates, which would be unexpected.
+				 */
+				return sanitize_text_field( $value );
+
+			case 'uri' :
+				return esc_url_raw( $value );
+
+			case 'ip' :
+				return sanitize_text_field( $value );
+		}
+	}
+
+	if ( 'string' === $args['type'] ) {
+		return strval( $value );
+	}
+
+	return $value;
+}
diff --git a/wp-includes/rest-api/class-wp-rest-request.php b/wp-includes/rest-api/class-wp-rest-request.php
index 80c58bf5b..3c465babd 100644
--- a/wp-includes/rest-api/class-wp-rest-request.php
+++ b/wp-includes/rest-api/class-wp-rest-request.php
@@ -359,7 +359,8 @@ class WP_REST_Request implements ArrayAccess {
 
 		// Ensure we parse the body data.
 		$body = $this->get_body();
-		if ( $this->method !== 'POST' && ! empty( $body ) ) {
+
+		if ( 'POST' !== $this->method && ! empty( $body ) ) {
 			$this->parse_body_params();
 		}
 
@@ -450,7 +451,11 @@ class WP_REST_Request implements ArrayAccess {
 
 		$params = array();
 		foreach ( $order as $type ) {
-			$params = array_merge( $params, (array) $this->params[ $type ] );
+			// array_merge / the "+" operator will mess up
+			// numeric keys, so instead do a manual foreach.
+			foreach ( (array) $this->params[ $type ] as $key => $value ) {
+				$params[ $key ] = $value;
+			}
 		}
 
 		return $params;
@@ -646,11 +651,13 @@ class WP_REST_Request implements ArrayAccess {
 	 * Avoids parsing the JSON data until we need to access it.
 	 *
 	 * @since 4.4.0
+	 * @since 4.7.0 Returns error instance if value cannot be decoded.
 	 * @access protected
+	 * @return true|WP_Error True if the JSON data was passed or no JSON data was provided, WP_Error if invalid JSON was passed.
 	 */
 	protected function parse_json_params() {
 		if ( $this->parsed_json ) {
-			return;
+			return true;
 		}
 
 		$this->parsed_json = true;
@@ -659,7 +666,7 @@ class WP_REST_Request implements ArrayAccess {
 		$content_type = $this->get_content_type();
 
 		if ( empty( $content_type ) || 'application/json' !== $content_type['value'] ) {
-			return;
+			return true;
 		}
 
 		$params = json_decode( $this->get_body(), true );
@@ -671,10 +678,22 @@ class WP_REST_Request implements ArrayAccess {
 		 * might not be defined: https://core.trac.wordpress.org/ticket/27799
 		 */
 		if ( null === $params && ( ! function_exists( 'json_last_error' ) || JSON_ERROR_NONE !== json_last_error() ) ) {
-			return;
+			// Ensure subsequent calls receive error instance.
+			$this->parsed_json = false;
+
+			$error_data = array(
+				'status' => WP_Http::BAD_REQUEST,
+			);
+			if ( function_exists( 'json_last_error' ) ) {
+				$error_data['json_error_code'] = json_last_error();
+				$error_data['json_error_message'] = json_last_error_msg();
+			}
+
+			return new WP_Error( 'rest_invalid_json', __( 'Invalid JSON body passed.' ), $error_data );
 		}
 
 		$this->params['JSON'] = $params;
+		return true;
 	}
 
 	/**
@@ -780,10 +799,9 @@ class WP_REST_Request implements ArrayAccess {
 	 * @since 4.4.0
 	 * @access public
 	 *
-	 * @return true|null True if there are no parameters to sanitize, null otherwise.
+	 * @return true|WP_Error True if parameters were sanitized, WP_Error if an error occurred during sanitization.
 	 */
 	public function sanitize_params() {
-
 		$attributes = $this->get_attributes();
 
 		// No arguments set, skip sanitizing.
@@ -793,18 +811,38 @@ class WP_REST_Request implements ArrayAccess {
 
 		$order = $this->get_parameter_order();
 
+		$invalid_params = array();
+
 		foreach ( $order as $type ) {
 			if ( empty( $this->params[ $type ] ) ) {
 				continue;
 			}
 			foreach ( $this->params[ $type ] as $key => $value ) {
+				// if no sanitize_callback was specified, default to rest_parse_request_arg
+				// if a type was specified in the args.
+				if ( ! isset( $attributes['args'][ $key ]['sanitize_callback'] ) && ! empty( $attributes['args'][ $key ]['type'] ) ) {
+					$attributes['args'][ $key ]['sanitize_callback'] = 'rest_parse_request_arg';
+				}
 				// Check if this param has a sanitize_callback added.
-				if ( isset( $attributes['args'][ $key ] ) && ! empty( $attributes['args'][ $key ]['sanitize_callback'] ) ) {
-					$this->params[ $type ][ $key ] = call_user_func( $attributes['args'][ $key ]['sanitize_callback'], $value, $this, $key );
+				if ( ! isset( $attributes['args'][ $key ] ) || empty( $attributes['args'][ $key ]['sanitize_callback'] ) ) {
+					continue;
+				}
+
+				$sanitized_value = call_user_func( $attributes['args'][ $key ]['sanitize_callback'], $value, $this, $key );
+
+				if ( is_wp_error( $sanitized_value ) ) {
+					$invalid_params[ $key ] = $sanitized_value->get_error_message();
+				} else {
+					$this->params[ $type ][ $key ] = $sanitized_value;
 				}
 			}
 		}
-		return null;
+
+		if ( $invalid_params ) {
+			return new WP_Error( 'rest_invalid_param', sprintf( __( 'Invalid parameter(s): %s' ), implode( ', ', array_keys( $invalid_params ) ) ), array( 'status' => 400, 'params' => $invalid_params ) );
+		}
+
+		return true;
 	}
 
 	/**
@@ -817,6 +855,11 @@ class WP_REST_Request implements ArrayAccess {
 	 *                       WP_Error if required parameters are missing.
 	 */
 	public function has_valid_params() {
+		// If JSON data was passed, check for errors.
+		$json_error = $this->parse_json_params();
+		if ( is_wp_error( $json_error ) ) {
+			return $json_error;
+		}
 
 		$attributes = $this->get_attributes();
 		$required = array();
@@ -954,7 +997,7 @@ class WP_REST_Request implements ArrayAccess {
 
 		$api_root = rest_url();
 		if ( get_option( 'permalink_structure' ) && 0 === strpos( $url, $api_root ) ) {
-			// Pretty permalinks on, and URL is under the API root
+			// Pretty permalinks on, and URL is under the API root.
 			$api_url_part = substr( $url, strlen( untrailingslashit( $api_root ) ) );
 			$route = parse_url( $api_url_part, PHP_URL_PATH );
 		} elseif ( ! empty( $query_params['rest_route'] ) ) {
diff --git a/wp-includes/rest-api/class-wp-rest-server.php b/wp-includes/rest-api/class-wp-rest-server.php
index 7a4590669..ec8d2a0ba 100644
--- a/wp-includes/rest-api/class-wp-rest-server.php
+++ b/wp-includes/rest-api/class-wp-rest-server.php
@@ -114,7 +114,7 @@ class WP_REST_Server {
 	 */
 	public function check_authentication() {
 		/**
-		 * Pass an authentication error to the API
+		 * Filters REST authentication errors.
 		 *
 		 * This is used to pass a WP_Error from an authentication method back to
 		 * the API.
@@ -240,7 +240,7 @@ class WP_REST_Server {
 		 */
 		$this->send_header( 'X-Content-Type-Options', 'nosniff' );
 		$this->send_header( 'Access-Control-Expose-Headers', 'X-WP-Total, X-WP-TotalPages' );
-		$this->send_header( 'Access-Control-Allow-Headers', 'Authorization' );
+		$this->send_header( 'Access-Control-Allow-Headers', 'Authorization, Content-Type' );
 
 		/**
 		 * Send nocache headers on authenticated requests.
@@ -260,10 +260,11 @@ class WP_REST_Server {
 		 * Filters whether the REST API is enabled.
 		 *
 		 * @since 4.4.0
+		 * @deprecated 4.7.0 Use the rest_authentication_errors filter to restrict access to the API
 		 *
 		 * @param bool $rest_enabled Whether the REST API is enabled. Default true.
 		 */
-		$enabled = apply_filters( 'rest_enabled', true );
+		apply_filters_deprecated( 'rest_enabled', array( true ), '4.7.0', 'rest_authentication_errors', __( 'The REST API can no longer be completely disabled, the rest_authentication_errors can be used to restrict access to the API, instead.' ) );
 
 		/**
 		 * Filters whether jsonp is enabled.
@@ -276,10 +277,6 @@ class WP_REST_Server {
 
 		$jsonp_callback = null;
 
-		if ( ! $enabled ) {
-			echo $this->json_error( 'rest_disabled', __( 'The REST API is disabled on this site.' ), 404 );
-			return false;
-		}
 		if ( isset( $_GET['_jsonp'] ) ) {
 			if ( ! $jsonp_enabled ) {
 				echo $this->json_error( 'rest_callback_disabled', __( 'JSONP support is disabled on this site.' ), 400 );
@@ -288,7 +285,7 @@ class WP_REST_Server {
 
 			$jsonp_callback = $_GET['_jsonp'];
 			if ( ! wp_check_jsonp_callback( $jsonp_callback ) ) {
-				echo $this->json_error( 'rest_callback_invalid', __( 'The JSONP callback function is invalid.' ), 400 );
+				echo $this->json_error( 'rest_callback_invalid', __( 'Invalid JSONP callback function.' ), 400 );
 				return false;
 			}
 		}
@@ -394,7 +391,7 @@ class WP_REST_Server {
 			}
 
 			if ( $jsonp_callback ) {
-				// Prepend '/**/' to mitigate possible JSONP Flash attacks
+				// Prepend '/**/' to mitigate possible JSONP Flash attacks.
 				// https://miki.it/blog/2014/7/8/abusing-jsonp-with-rosetta-flash/
 				echo '/**/' . $jsonp_callback . '(' . $result . ')';
 			} else {
@@ -505,7 +502,7 @@ class WP_REST_Server {
 					continue;
 				}
 
-				// Relation now changes from '$uri' to '$curie:$relation'
+				// Relation now changes from '$uri' to '$curie:$relation'.
 				$rel_regex = str_replace( '\{rel\}', '(.+)', preg_quote( $curie['href'], '!' ) );
 				preg_match( '!' . $rel_regex . '!', $rel, $matches );
 				if ( $matches ) {
@@ -585,6 +582,7 @@ class WP_REST_Server {
 
 			// Determine if any real links were found.
 			$has_links = count( array_filter( $embeds ) );
+
 			if ( $has_links ) {
 				$embedded[ $rel ] = $embeds;
 			}
@@ -641,7 +639,7 @@ class WP_REST_Server {
 	 * @param string $namespace  Namespace.
 	 * @param string $route      The REST route.
 	 * @param array  $route_args Route arguments.
-	 * @param bool   $override   Optional. Whether the route should be overriden if it already exists.
+	 * @param bool   $override   Optional. Whether the route should be overridden if it already exists.
 	 *                           Default false.
 	 */
 	public function register_route( $namespace, $route, $route_args, $override = false ) {
@@ -744,7 +742,7 @@ class WP_REST_Server {
 				// Allow comma-separated HTTP methods.
 				if ( is_string( $handler['methods'] ) ) {
 					$methods = explode( ',', $handler['methods'] );
-				} else if ( is_array( $handler['methods'] ) ) {
+				} elseif ( is_array( $handler['methods'] ) ) {
 					$methods = $handler['methods'];
 				} else {
 					$methods = array();
@@ -758,6 +756,7 @@ class WP_REST_Server {
 				}
 			}
 		}
+
 		return $endpoints;
 	}
 
@@ -866,11 +865,32 @@ class WP_REST_Server {
 					$check_required = $request->has_valid_params();
 					if ( is_wp_error( $check_required ) ) {
 						$response = $check_required;
+					} else {
+						$check_sanitized = $request->sanitize_params();
+						if ( is_wp_error( $check_sanitized ) ) {
+							$response = $check_sanitized;
+						}
 					}
-
-					$request->sanitize_params();
 				}
 
+				/**
+				 * Filters the response before executing any REST API callbacks.
+				 *
+				 * Allows plugins to perform additional validation after a
+				 * request is initialized and matched to a registered route,
+				 * but before it is executed.
+				 *
+				 * Note that this filter will not be called for requests that
+				 * fail to authenticate or match to a registered route.
+				 *
+				 * @since 4.7.0
+				 *
+				 * @param WP_HTTP_Response $response Result to send to the client. Usually a WP_REST_Response.
+				 * @param WP_REST_Server   $handler  ResponseHandler instance (usually WP_REST_Server).
+				 * @param WP_REST_Request  $request  Request used to generate the response.
+				 */
+				$response = apply_filters( 'rest_request_before_callbacks', $response, $handler, $request );
+
 				if ( ! is_wp_error( $response ) ) {
 					// Check permission specified on the route.
 					if ( ! empty( $handler['permission_callback'] ) ) {
@@ -878,7 +898,7 @@ class WP_REST_Server {
 
 						if ( is_wp_error( $permission ) ) {
 							$response = $permission;
-						} else if ( false === $permission || null === $permission ) {
+						} elseif ( false === $permission || null === $permission ) {
 							$response = new WP_Error( 'rest_forbidden', __( 'Sorry, you are not allowed to do that.' ), array( 'status' => 403 ) );
 						}
 					}
@@ -908,6 +928,28 @@ class WP_REST_Server {
 					}
 				}
 
+				/**
+				 * Filters the response immediately after executing any REST API
+				 * callbacks.
+				 *
+				 * Allows plugins to perform any needed cleanup, for example,
+				 * to undo changes made during the {@see 'rest_request_before_callbacks'}
+				 * filter.
+				 *
+				 * Note that this filter will not be called for requests that
+				 * fail to authenticate or match to a registered route.
+				 *
+				 * Note that an endpoint's `permission_callback` can still be
+				 * called after this filter - see `rest_send_allow_header()`.
+				 *
+				 * @since 4.7.0
+				 *
+				 * @param WP_HTTP_Response $response Result to send to the client. Usually a WP_REST_Response.
+				 * @param WP_REST_Server   $handler  ResponseHandler instance (usually WP_REST_Server).
+				 * @param WP_REST_Request  $request  Request used to generate the response.
+				 */
+				$response = apply_filters( 'rest_request_after_callbacks', $response, $handler, $request );
+
 				if ( is_wp_error( $response ) ) {
 					$response = $this->error_to_response( $response );
 				} else {
@@ -1141,6 +1183,12 @@ class WP_REST_Server {
 					if ( isset( $opts['description'] ) ) {
 						$arg_data['description'] = $opts['description'];
 					}
+					if ( isset( $opts['type'] ) ) {
+						$arg_data['type'] = $opts['type'];
+					}
+					if ( isset( $opts['items'] ) ) {
+						$arg_data['items'] = $opts['items'];
+					}
 					$endpoint_data['args'][ $key ] = $arg_data;
 				}
 			}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
new file mode 100644
index 000000000..f0055ee4b
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
@@ -0,0 +1,749 @@
+<?php
+/**
+ * REST API: WP_REST_Attachments_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core controller used to access attachments via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Posts_Controller
+ */
+class WP_REST_Attachments_Controller extends WP_REST_Posts_Controller {
+
+	/**
+	 * Determines the allowed query_vars for a get_items() response and
+	 * prepares for WP_Query.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param array           $prepared_args Optional. Array of prepared arguments. Default empty array.
+	 * @param WP_REST_Request $request       Optional. Request to prepare items for.
+	 * @return array Array of query arguments.
+	 */
+	protected function prepare_items_query( $prepared_args = array(), $request = null ) {
+		$query_args = parent::prepare_items_query( $prepared_args, $request );
+
+		if ( empty( $query_args['post_status'] ) ) {
+			$query_args['post_status'] = 'inherit';
+		}
+
+		$media_types = $this->get_media_types();
+
+		if ( ! empty( $request['media_type'] ) && isset( $media_types[ $request['media_type'] ] ) ) {
+			$query_args['post_mime_type'] = $media_types[ $request['media_type'] ];
+		}
+
+		if ( ! empty( $request['mime_type'] ) ) {
+			$parts = explode( '/', $request['mime_type'] );
+			if ( isset( $media_types[ $parts[0] ] ) && in_array( $request['mime_type'], $media_types[ $parts[0] ], true ) ) {
+				$query_args['post_mime_type'] = $request['mime_type'];
+			}
+		}
+
+		return $query_args;
+	}
+
+	/**
+	 * Checks if a given request has access to create an attachment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|true Boolean true if the attachment may be created, or a WP_Error if not.
+	 */
+	public function create_item_permissions_check( $request ) {
+		$ret = parent::create_item_permissions_check( $request );
+
+		if ( ! $ret || is_wp_error( $ret ) ) {
+			return $ret;
+		}
+
+		if ( ! current_user_can( 'upload_files' ) ) {
+			return new WP_Error( 'rest_cannot_create', __( 'Sorry, you are not allowed to upload media on this site.' ), array( 'status' => 400 ) );
+		}
+
+		// Attaching media to a post requires ability to edit said post.
+		if ( ! empty( $request['post'] ) ) {
+			$parent = get_post( (int) $request['post'] );
+			$post_parent_type = get_post_type_object( $parent->post_type );
+
+			if ( ! current_user_can( $post_parent_type->cap->edit_post, $request['post'] ) ) {
+				return new WP_Error( 'rest_cannot_edit', __( 'Sorry, you are not allowed to upload media to this post.' ), array( 'status' => rest_authorization_required_code() ) );
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Creates a single attachment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, WP_Error object on failure.
+	 */
+	public function create_item( $request ) {
+
+		if ( ! empty( $request['post'] ) && in_array( get_post_type( $request['post'] ), array( 'revision', 'attachment' ), true ) ) {
+			return new WP_Error( 'rest_invalid_param', __( 'Invalid parent type.' ), array( 'status' => 400 ) );
+		}
+
+		// Get the file via $_FILES or raw data.
+		$files = $request->get_file_params();
+		$headers = $request->get_headers();
+
+		if ( ! empty( $files ) ) {
+			$file = $this->upload_from_file( $files, $headers );
+		} else {
+			$file = $this->upload_from_data( $request->get_body(), $headers );
+		}
+
+		if ( is_wp_error( $file ) ) {
+			return $file;
+		}
+
+		$name       = basename( $file['file'] );
+		$name_parts = pathinfo( $name );
+		$name       = trim( substr( $name, 0, -(1 + strlen( $name_parts['extension'] ) ) ) );
+
+		$url     = $file['url'];
+		$type    = $file['type'];
+		$file    = $file['file'];
+
+		// use image exif/iptc data for title and caption defaults if possible
+		$image_meta = @wp_read_image_metadata( $file );
+
+		if ( ! empty( $image_meta ) ) {
+			if ( empty( $request['title'] ) && trim( $image_meta['title'] ) && ! is_numeric( sanitize_title( $image_meta['title'] ) ) ) {
+				$request['title'] = $image_meta['title'];
+			}
+
+			if ( empty( $request['caption'] ) && trim( $image_meta['caption'] ) ) {
+				$request['caption'] = $image_meta['caption'];
+			}
+		}
+
+		$attachment = $this->prepare_item_for_database( $request );
+		$attachment->file = $file;
+		$attachment->post_mime_type = $type;
+		$attachment->guid = $url;
+
+		if ( empty( $attachment->post_title ) ) {
+			$attachment->post_title = preg_replace( '/\.[^.]+$/', '', basename( $file ) );
+		}
+
+		$id = wp_insert_post( wp_slash( (array) $attachment ), true );
+
+		if ( is_wp_error( $id ) ) {
+			if ( 'db_update_error' === $id->get_error_code() ) {
+				$id->add_data( array( 'status' => 500 ) );
+			} else {
+				$id->add_data( array( 'status' => 400 ) );
+			}
+			return $id;
+		}
+
+		$attachment = get_post( $id );
+
+		/**
+		 * Fires after a single attachment is created or updated via the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_Post         $attachment Inserted or updated attachment
+		 *                                    object.
+		 * @param WP_REST_Request $request    The request sent to the API.
+		 * @param bool            $creating   True when creating an attachment, false when updating.
+		 */
+		do_action( 'rest_insert_attachment', $attachment, $request, true );
+
+		// Include admin functions to get access to wp_generate_attachment_metadata().
+		require_once ABSPATH . 'wp-admin/includes/admin.php';
+
+		wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
+
+		if ( isset( $request['alt_text'] ) ) {
+			update_post_meta( $id, '_wp_attachment_image_alt', sanitize_text_field( $request['alt_text'] ) );
+		}
+
+		$fields_update = $this->update_additional_fields_for_object( $attachment, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'edit' );
+		$response = $this->prepare_item_for_response( $attachment, $request );
+		$response = rest_ensure_response( $response );
+		$response->set_status( 201 );
+		$response->header( 'Location', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $id ) ) );
+
+		return $response;
+	}
+
+	/**
+	 * Updates a single attachment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, WP_Error object on failure.
+	 */
+	public function update_item( $request ) {
+		if ( ! empty( $request['post'] ) && in_array( get_post_type( $request['post'] ), array( 'revision', 'attachment' ), true ) ) {
+			return new WP_Error( 'rest_invalid_param', __( 'Invalid parent type.' ), array( 'status' => 400 ) );
+		}
+
+		$response = parent::update_item( $request );
+
+		if ( is_wp_error( $response ) ) {
+			return $response;
+		}
+
+		$response = rest_ensure_response( $response );
+		$data = $response->get_data();
+
+		if ( isset( $request['alt_text'] ) ) {
+			update_post_meta( $data['id'], '_wp_attachment_image_alt', $request['alt_text'] );
+		}
+
+		$attachment = get_post( $request['id'] );
+
+		/* This action is documented in wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php */
+		do_action( 'rest_insert_attachment', $data, $request, false );
+
+		$fields_update = $this->update_additional_fields_for_object( $attachment, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'edit' );
+		$response = $this->prepare_item_for_response( $attachment, $request );
+		$response = rest_ensure_response( $response );
+
+		return $response;
+	}
+
+	/**
+	 * Prepares a single attachment for create or update.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_Error|stdClass $prepared_attachment Post object.
+	 */
+	protected function prepare_item_for_database( $request ) {
+		$prepared_attachment = parent::prepare_item_for_database( $request );
+
+		// Attachment caption (post_excerpt internally)
+		if ( isset( $request['caption'] ) ) {
+			if ( is_string( $request['caption'] ) ) {
+				$prepared_attachment->post_excerpt = $request['caption'];
+			} elseif ( isset( $request['caption']['raw'] ) ) {
+				$prepared_attachment->post_excerpt = $request['caption']['raw'];
+			}
+		}
+
+		// Attachment description (post_content internally)
+		if ( isset( $request['description'] ) ) {
+			if ( is_string( $request['description'] ) ) {
+				$prepared_attachment->post_content = $request['description'];
+			} elseif ( isset( $request['description']['raw'] ) ) {
+				$prepared_attachment->post_content = $request['description']['raw'];
+			}
+		}
+
+		if ( isset( $request['post'] ) ) {
+			$prepared_attachment->post_parent = (int) $request['post'];
+		}
+
+		return $prepared_attachment;
+	}
+
+	/**
+	 * Prepares a single attachment output for response.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_Post         $post    Attachment object.
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_REST_Response Response object.
+	 */
+	public function prepare_item_for_response( $post, $request ) {
+		$response = parent::prepare_item_for_response( $post, $request );
+		$data = $response->get_data();
+
+		$data['description'] = array(
+			'raw'       => $post->post_content,
+			/** This filter is documented in wp-includes/post-template.php */
+			'rendered'  => apply_filters( 'the_content', $post->post_content ),
+		);
+
+		/** This filter is documented in wp-includes/post-template.php */
+		$caption = apply_filters( 'the_excerpt', apply_filters( 'get_the_excerpt', $post->post_excerpt, $post ) );
+		$data['caption'] = array(
+			'raw'       => $post->post_excerpt,
+			'rendered'  => $caption,
+		);
+
+		$data['alt_text']      = get_post_meta( $post->ID, '_wp_attachment_image_alt', true );
+		$data['media_type']    = wp_attachment_is_image( $post->ID ) ? 'image' : 'file';
+		$data['mime_type']     = $post->post_mime_type;
+		$data['media_details'] = wp_get_attachment_metadata( $post->ID );
+		$data['post']          = ! empty( $post->post_parent ) ? (int) $post->post_parent : null;
+		$data['source_url']    = wp_get_attachment_url( $post->ID );
+
+		// Ensure empty details is an empty object.
+		if ( empty( $data['media_details'] ) ) {
+			$data['media_details'] = new stdClass;
+		} elseif ( ! empty( $data['media_details']['sizes'] ) ) {
+
+			foreach ( $data['media_details']['sizes'] as $size => &$size_data ) {
+
+				if ( isset( $size_data['mime-type'] ) ) {
+					$size_data['mime_type'] = $size_data['mime-type'];
+					unset( $size_data['mime-type'] );
+				}
+
+				// Use the same method image_downsize() does.
+				$image_src = wp_get_attachment_image_src( $post->ID, $size );
+				if ( ! $image_src ) {
+					continue;
+				}
+
+				$size_data['source_url'] = $image_src[0];
+			}
+
+			$full_src = wp_get_attachment_image_src( $post->ID, 'full' );
+
+			if ( ! empty( $full_src ) ) {
+				$data['media_details']['sizes']['full'] = array(
+					'file'       => wp_basename( $full_src[0] ),
+					'width'      => $full_src[1],
+					'height'     => $full_src[2],
+					'mime_type'  => $post->post_mime_type,
+					'source_url' => $full_src[0],
+				);
+			}
+		} else {
+			$data['media_details']['sizes'] = new stdClass;
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+
+		$data = $this->filter_response_by_context( $data, $context );
+
+		// Wrap the data in a response object.
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $post ) );
+
+		/**
+		 * Filters an attachment returned from the REST API.
+		 *
+		 * Allows modification of the attachment right before it is returned.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response $response The response object.
+		 * @param WP_Post          $post     The original attachment post.
+		 * @param WP_REST_Request  $request  Request used to generate the response.
+		 */
+		return apply_filters( 'rest_prepare_attachment', $response, $post, $request );
+	}
+
+	/**
+	 * Retrieves the attachment's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema as an array.
+	 */
+	public function get_item_schema() {
+
+		$schema = parent::get_item_schema();
+
+		$schema['properties']['alt_text'] = array(
+			'description'     => __( 'Alternative text to display when attachment is not displayed.' ),
+			'type'            => 'string',
+			'context'         => array( 'view', 'edit', 'embed' ),
+			'arg_options'     => array(
+				'sanitize_callback' => 'sanitize_text_field',
+			),
+		);
+
+		$schema['properties']['caption'] = array(
+			'description' => __( 'The attachment caption.' ),
+			'type'        => 'object',
+			'context'     => array( 'view', 'edit', 'embed' ),
+			'arg_options' => array(
+				'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database()
+			),
+			'properties'  => array(
+				'raw' => array(
+					'description' => __( 'Caption for the attachment, as it exists in the database.' ),
+					'type'        => 'string',
+					'context'     => array( 'edit' ),
+				),
+				'rendered' => array(
+					'description' => __( 'HTML caption for the attachment, transformed for display.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+			),
+		);
+
+		$schema['properties']['description'] = array(
+			'description' => __( 'The attachment description.' ),
+			'type'        => 'object',
+			'context'     => array( 'view', 'edit' ),
+			'arg_options' => array(
+				'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database()
+			),
+			'properties'  => array(
+				'raw' => array(
+					'description' => __( 'Description for the object, as it exists in the database.' ),
+					'type'        => 'string',
+					'context'     => array( 'edit' ),
+				),
+				'rendered' => array(
+					'description' => __( 'HTML description for the object, transformed for display.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit' ),
+					'readonly'    => true,
+				),
+			),
+		);
+
+		$schema['properties']['media_type'] = array(
+			'description'     => __( 'Attachment type.' ),
+			'type'            => 'string',
+			'enum'            => array( 'image', 'file' ),
+			'context'         => array( 'view', 'edit', 'embed' ),
+			'readonly'        => true,
+		);
+
+		$schema['properties']['mime_type'] = array(
+			'description'     => __( 'The attachment MIME type.' ),
+			'type'            => 'string',
+			'context'         => array( 'view', 'edit', 'embed' ),
+			'readonly'        => true,
+		);
+
+		$schema['properties']['media_details'] = array(
+			'description'     => __( 'Details about the media file, specific to its type.' ),
+			'type'            => 'object',
+			'context'         => array( 'view', 'edit', 'embed' ),
+			'readonly'        => true,
+		);
+
+		$schema['properties']['post'] = array(
+			'description'     => __( 'The ID for the associated post of the attachment.' ),
+			'type'            => 'integer',
+			'context'         => array( 'view', 'edit' ),
+		);
+
+		$schema['properties']['source_url'] = array(
+			'description'     => __( 'URL to the original attachment file.' ),
+			'type'            => 'string',
+			'format'          => 'uri',
+			'context'         => array( 'view', 'edit', 'embed' ),
+			'readonly'        => true,
+		);
+
+		unset( $schema['properties']['password'] );
+
+		return $schema;
+	}
+
+	/**
+	 * Handles an upload via raw POST data.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param array $data    Supplied file data.
+	 * @param array $headers HTTP headers from the request.
+	 * @return array|WP_Error Data from wp_handle_sideload().
+	 */
+	protected function upload_from_data( $data, $headers ) {
+		if ( empty( $data ) ) {
+			return new WP_Error( 'rest_upload_no_data', __( 'No data supplied.' ), array( 'status' => 400 ) );
+		}
+
+		if ( empty( $headers['content_type'] ) ) {
+			return new WP_Error( 'rest_upload_no_content_type', __( 'No Content-Type supplied.' ), array( 'status' => 400 ) );
+		}
+
+		if ( empty( $headers['content_disposition'] ) ) {
+			return new WP_Error( 'rest_upload_no_content_disposition', __( 'No Content-Disposition supplied.' ), array( 'status' => 400 ) );
+		}
+
+		$filename = self::get_filename_from_disposition( $headers['content_disposition'] );
+
+		if ( empty( $filename ) ) {
+			return new WP_Error( 'rest_upload_invalid_disposition', __( 'Invalid Content-Disposition supplied. Content-Disposition needs to be formatted as `attachment; filename="image.png"` or similar.' ), array( 'status' => 400 ) );
+		}
+
+		if ( ! empty( $headers['content_md5'] ) ) {
+			$content_md5 = array_shift( $headers['content_md5'] );
+			$expected    = trim( $content_md5 );
+			$actual      = md5( $data );
+
+			if ( $expected !== $actual ) {
+				return new WP_Error( 'rest_upload_hash_mismatch', __( 'Content hash did not match expected.' ), array( 'status' => 412 ) );
+			}
+		}
+
+		// Get the content-type.
+		$type = array_shift( $headers['content_type'] );
+
+		/** Include admin functions to get access to wp_tempnam() and wp_handle_sideload() */
+		require_once ABSPATH . 'wp-admin/includes/admin.php';
+
+		// Save the file.
+		$tmpfname = wp_tempnam( $filename );
+
+		$fp = fopen( $tmpfname, 'w+' );
+
+		if ( ! $fp ) {
+			return new WP_Error( 'rest_upload_file_error', __( 'Could not open file handle.' ), array( 'status' => 500 ) );
+		}
+
+		fwrite( $fp, $data );
+		fclose( $fp );
+
+		// Now, sideload it in.
+		$file_data = array(
+			'error'    => null,
+			'tmp_name' => $tmpfname,
+			'name'     => $filename,
+			'type'     => $type,
+		);
+
+		$overrides = array(
+			'test_form' => false,
+		);
+
+		$sideloaded = wp_handle_sideload( $file_data, $overrides );
+
+		if ( isset( $sideloaded['error'] ) ) {
+			@unlink( $tmpfname );
+
+			return new WP_Error( 'rest_upload_sideload_error', $sideloaded['error'], array( 'status' => 500 ) );
+		}
+
+		return $sideloaded;
+	}
+
+	/**
+	 * Parses filename from a Content-Disposition header value.
+	 *
+	 * As per RFC6266:
+	 *
+	 *     content-disposition = "Content-Disposition" ":"
+	 *                            disposition-type *( ";" disposition-parm )
+	 *
+	 *     disposition-type    = "inline" | "attachment" | disp-ext-type
+	 *                         ; case-insensitive
+	 *     disp-ext-type       = token
+	 *
+	 *     disposition-parm    = filename-parm | disp-ext-parm
+	 *
+	 *     filename-parm       = "filename" "=" value
+	 *                         | "filename*" "=" ext-value
+	 *
+	 *     disp-ext-parm       = token "=" value
+	 *                         | ext-token "=" ext-value
+	 *     ext-token           = <the characters in token, followed by "*">
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @link http://tools.ietf.org/html/rfc2388
+	 * @link http://tools.ietf.org/html/rfc6266
+	 *
+	 * @param string[] $disposition_header List of Content-Disposition header values.
+	 * @return string|null Filename if available, or null if not found.
+	 */
+	public static function get_filename_from_disposition( $disposition_header ) {
+		// Get the filename.
+		$filename = null;
+
+		foreach ( $disposition_header as $value ) {
+			$value = trim( $value );
+
+			if ( strpos( $value, ';' ) === false ) {
+				continue;
+			}
+
+			list( $type, $attr_parts ) = explode( ';', $value, 2 );
+
+			$attr_parts = explode( ';', $attr_parts );
+			$attributes = array();
+
+			foreach ( $attr_parts as $part ) {
+				if ( strpos( $part, '=' ) === false ) {
+					continue;
+				}
+
+				list( $key, $value ) = explode( '=', $part, 2 );
+
+				$attributes[ trim( $key ) ] = trim( $value );
+			}
+
+			if ( empty( $attributes['filename'] ) ) {
+				continue;
+			}
+
+			$filename = trim( $attributes['filename'] );
+
+			// Unquote quoted filename, but after trimming.
+			if ( substr( $filename, 0, 1 ) === '"' && substr( $filename, -1, 1 ) === '"' ) {
+				$filename = substr( $filename, 1, -1 );
+			}
+		}
+
+		return $filename;
+	}
+
+	/**
+	 * Retrieves the query params for collections of attachments.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Query parameters for the attachment collection as an array.
+	 */
+	public function get_collection_params() {
+		$params = parent::get_collection_params();
+		$params['status']['default'] = 'inherit';
+		$params['status']['items']['enum'] = array( 'inherit', 'private', 'trash' );
+		$media_types = $this->get_media_types();
+
+		$params['media_type'] = array(
+			'default'           => null,
+			'description'       => __( 'Limit result set to attachments of a particular media type.' ),
+			'type'              => 'string',
+			'enum'              => array_keys( $media_types ),
+		);
+
+		$params['mime_type'] = array(
+			'default'     => null,
+			'description' => __( 'Limit result set to attachments of a particular MIME type.' ),
+			'type'        => 'string',
+		);
+
+		return $params;
+	}
+
+	/**
+	 * Validates whether the user can query private statuses.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param mixed           $value     Status value.
+	 * @param WP_REST_Request $request   Request object.
+	 * @param string          $parameter Additional parameter to pass for validation.
+	 * @return WP_Error|bool True if the user may query, WP_Error if not.
+	 */
+	public function validate_user_can_query_private_statuses( $value, $request, $parameter ) {
+		if ( 'inherit' === $value ) {
+			return true;
+		}
+
+		return parent::validate_user_can_query_private_statuses( $value, $request, $parameter );
+	}
+
+	/**
+	 * Handles an upload via multipart/form-data ($_FILES).
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param array $files   Data from the `$_FILES` superglobal.
+	 * @param array $headers HTTP headers from the request.
+	 * @return array|WP_Error Data from wp_handle_upload().
+	 */
+	protected function upload_from_file( $files, $headers ) {
+		if ( empty( $files ) ) {
+			return new WP_Error( 'rest_upload_no_data', __( 'No data supplied.' ), array( 'status' => 400 ) );
+		}
+
+		// Verify hash, if given.
+		if ( ! empty( $headers['content_md5'] ) ) {
+			$content_md5 = array_shift( $headers['content_md5'] );
+			$expected    = trim( $content_md5 );
+			$actual      = md5_file( $files['file']['tmp_name'] );
+
+			if ( $expected !== $actual ) {
+				return new WP_Error( 'rest_upload_hash_mismatch', __( 'Content hash did not match expected.' ), array( 'status' => 412 ) );
+			}
+		}
+
+		// Pass off to WP to handle the actual upload.
+		$overrides = array(
+			'test_form'   => false,
+		);
+
+		// Bypasses is_uploaded_file() when running unit tests.
+		if ( defined( 'DIR_TESTDATA' ) && DIR_TESTDATA ) {
+			$overrides['action'] = 'wp_handle_mock_upload';
+		}
+
+		/** Include admin functions to get access to wp_handle_upload() */
+		require_once ABSPATH . 'wp-admin/includes/admin.php';
+
+		$file = wp_handle_upload( $files['file'], $overrides );
+
+		if ( isset( $file['error'] ) ) {
+			return new WP_Error( 'rest_upload_unknown_error', $file['error'], array( 'status' => 500 ) );
+		}
+
+		return $file;
+	}
+
+	/**
+	 * Retrieves the supported media types.
+	 *
+	 * Media types are considered the MIME type category.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return array Array of supported media types.
+	 */
+	protected function get_media_types() {
+		$media_types = array();
+
+		foreach ( get_allowed_mime_types() as $mime_type ) {
+			$parts = explode( '/', $mime_type );
+
+			if ( ! isset( $media_types[ $parts[0] ] ) ) {
+				$media_types[ $parts[0] ] = array();
+			}
+
+			$media_types[ $parts[0] ][] = $mime_type;
+		}
+
+		return $media_types;
+	}
+
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
new file mode 100644
index 000000000..9d61294b5
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php
@@ -0,0 +1,1609 @@
+<?php
+/**
+ * REST API: WP_REST_Comments_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core controller used to access comments via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Comments_Controller extends WP_REST_Controller {
+
+	/**
+	 * Instance of a comment meta fields object.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var WP_REST_Comment_Meta_Fields
+	 */
+	protected $meta;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function __construct() {
+		$this->namespace = 'wp/v2';
+		$this->rest_base = 'comments';
+
+		$this->meta = new WP_REST_Comment_Meta_Fields();
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
+			array(
+				'methods'   => WP_REST_Server::READABLE,
+				'callback'  => array( $this, 'get_items' ),
+				'permission_callback' => array( $this, 'get_items_permissions_check' ),
+				'args'      => $this->get_collection_params(),
+			),
+			array(
+				'methods'  => WP_REST_Server::CREATABLE,
+				'callback' => array( $this, 'create_item' ),
+				'permission_callback' => array( $this, 'create_item_permissions_check' ),
+				'args'     => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<id>[\d]+)', array(
+			array(
+				'methods'  => WP_REST_Server::READABLE,
+				'callback' => array( $this, 'get_item' ),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				'args'     => array(
+					'context'          => $this->get_context_param( array( 'default' => 'view' ) ),
+					'password' => array(
+						'description' => __( 'The password for the post if it is password protected.' ),
+						'type'        => 'string',
+					),
+				),
+			),
+			array(
+				'methods'  => WP_REST_Server::EDITABLE,
+				'callback' => array( $this, 'update_item' ),
+				'permission_callback' => array( $this, 'update_item_permissions_check' ),
+				'args'     => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+			),
+			array(
+				'methods'  => WP_REST_Server::DELETABLE,
+				'callback' => array( $this, 'delete_item' ),
+				'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				'args'     => array(
+					'force'    => array(
+						'type'        => 'boolean',
+						'default'     => false,
+						'description' => __( 'Whether to bypass trash and force deletion.' ),
+					),
+					'password' => array(
+						'description' => __( 'The password for the post if it is password protected.' ),
+						'type'        => 'string',
+					),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+	}
+
+	/**
+	 * Checks if a given request has access to read comments.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool True if the request has read access, error object otherwise.
+	 */
+	public function get_items_permissions_check( $request ) {
+
+		if ( ! empty( $request['post'] ) ) {
+			foreach ( (array) $request['post'] as $post_id ) {
+				$post = get_post( $post_id );
+
+				if ( ! empty( $post_id ) && $post && ! $this->check_read_post_permission( $post, $request ) ) {
+					return new WP_Error( 'rest_cannot_read_post', __( 'Sorry, you are not allowed to read the post for this comment.' ), array( 'status' => rest_authorization_required_code() ) );
+				} elseif ( 0 === $post_id && ! current_user_can( 'moderate_comments' ) ) {
+					return new WP_Error( 'rest_cannot_read', __( 'Sorry, you are not allowed to read comments without a post.' ), array( 'status' => rest_authorization_required_code() ) );
+				}
+			}
+		}
+
+		if ( ! empty( $request['context'] ) && 'edit' === $request['context'] && ! current_user_can( 'moderate_comments' ) ) {
+			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit comments.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! current_user_can( 'edit_posts' ) ) {
+			$protected_params = array( 'author', 'author_exclude', 'author_email', 'type', 'status' );
+			$forbidden_params = array();
+
+			foreach ( $protected_params as $param ) {
+				if ( 'status' === $param ) {
+					if ( 'approve' !== $request[ $param ] ) {
+						$forbidden_params[] = $param;
+					}
+				} elseif ( 'type' === $param ) {
+					if ( 'comment' !== $request[ $param ] ) {
+						$forbidden_params[] = $param;
+					}
+				} elseif ( ! empty( $request[ $param ] ) ) {
+					$forbidden_params[] = $param;
+				}
+			}
+
+			if ( ! empty( $forbidden_params ) ) {
+				return new WP_Error( 'rest_forbidden_param', sprintf( __( 'Query parameter not permitted: %s' ), implode( ', ', $forbidden_params ) ), array( 'status' => rest_authorization_required_code() ) );
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves a list of comment items.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or error object on failure.
+	 */
+	public function get_items( $request ) {
+
+		// Retrieve the list of registered collection query parameters.
+		$registered = $this->get_collection_params();
+
+		/*
+		 * This array defines mappings between public API query parameters whose
+		 * values are accepted as-passed, and their internal WP_Query parameter
+		 * name equivalents (some are the same). Only values which are also
+		 * present in $registered will be set.
+		 */
+		$parameter_mappings = array(
+			'author'         => 'author__in',
+			'author_email'   => 'author_email',
+			'author_exclude' => 'author__not_in',
+			'exclude'        => 'comment__not_in',
+			'include'        => 'comment__in',
+			'offset'         => 'offset',
+			'order'          => 'order',
+			'parent'         => 'parent__in',
+			'parent_exclude' => 'parent__not_in',
+			'per_page'       => 'number',
+			'post'           => 'post__in',
+			'search'         => 'search',
+			'status'         => 'status',
+			'type'           => 'type',
+		);
+
+		$prepared_args = array();
+
+		/*
+		 * For each known parameter which is both registered and present in the request,
+		 * set the parameter's value on the query $prepared_args.
+		 */
+		foreach ( $parameter_mappings as $api_param => $wp_param ) {
+			if ( isset( $registered[ $api_param ], $request[ $api_param ] ) ) {
+				$prepared_args[ $wp_param ] = $request[ $api_param ];
+			}
+		}
+
+		// Ensure certain parameter values default to empty strings.
+		foreach ( array( 'author_email', 'search' ) as $param ) {
+			if ( ! isset( $prepared_args[ $param ] ) ) {
+				$prepared_args[ $param ] = '';
+			}
+		}
+
+		if ( isset( $registered['orderby'] ) ) {
+			$prepared_args['orderby'] = $this->normalize_query_param( $request['orderby'] );
+		}
+
+		$prepared_args['no_found_rows'] = false;
+
+		$prepared_args['date_query'] = array();
+
+		// Set before into date query. Date query must be specified as an array of an array.
+		if ( isset( $registered['before'], $request['before'] ) ) {
+			$prepared_args['date_query'][0]['before'] = $request['before'];
+		}
+
+		// Set after into date query. Date query must be specified as an array of an array.
+		if ( isset( $registered['after'], $request['after'] ) ) {
+			$prepared_args['date_query'][0]['after'] = $request['after'];
+		}
+
+		if ( isset( $registered['page'] ) && empty( $request['offset'] ) ) {
+			$prepared_args['offset'] = $prepared_args['number'] * ( absint( $request['page'] ) - 1 );
+		}
+
+		/**
+		 * Filters arguments, before passing to WP_Comment_Query, when querying comments via the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @link https://developer.wordpress.org/reference/classes/wp_comment_query/
+		 *
+		 * @param array           $prepared_args Array of arguments for WP_Comment_Query.
+		 * @param WP_REST_Request $request       The current request.
+		 */
+		$prepared_args = apply_filters( 'rest_comment_query', $prepared_args, $request );
+
+		$query = new WP_Comment_Query;
+		$query_result = $query->query( $prepared_args );
+
+		$comments = array();
+
+		foreach ( $query_result as $comment ) {
+			if ( ! $this->check_read_permission( $comment, $request ) ) {
+				continue;
+			}
+
+			$data = $this->prepare_item_for_response( $comment, $request );
+			$comments[] = $this->prepare_response_for_collection( $data );
+		}
+
+		$total_comments = (int) $query->found_comments;
+		$max_pages      = (int) $query->max_num_pages;
+
+		if ( $total_comments < 1 ) {
+			// Out-of-bounds, run the query again without LIMIT for total count.
+			unset( $prepared_args['number'], $prepared_args['offset'] );
+
+			$query = new WP_Comment_Query;
+			$prepared_args['count'] = true;
+
+			$total_comments = $query->query( $prepared_args );
+			$max_pages = ceil( $total_comments / $request['per_page'] );
+		}
+
+		$response = rest_ensure_response( $comments );
+		$response->header( 'X-WP-Total', $total_comments );
+		$response->header( 'X-WP-TotalPages', $max_pages );
+
+		$base = add_query_arg( $request->get_query_params(), rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ) );
+
+		if ( $request['page'] > 1 ) {
+			$prev_page = $request['page'] - 1;
+
+			if ( $prev_page > $max_pages ) {
+				$prev_page = $max_pages;
+			}
+
+			$prev_link = add_query_arg( 'page', $prev_page, $base );
+			$response->link_header( 'prev', $prev_link );
+		}
+
+		if ( $max_pages > $request['page'] ) {
+			$next_page = $request['page'] + 1;
+			$next_link = add_query_arg( 'page', $next_page, $base );
+
+			$response->link_header( 'next', $next_link );
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to read the comment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool True if the request has read access for the item, error object otherwise.
+	 */
+	public function get_item_permissions_check( $request ) {
+		$id = (int) $request['id'];
+
+		$comment = get_comment( $id );
+
+		if ( ! $comment ) {
+			return true;
+		}
+
+		if ( ! empty( $request['context'] ) && 'edit' === $request['context'] && ! current_user_can( 'moderate_comments' ) ) {
+			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit comments.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		$post = get_post( $comment->comment_post_ID );
+
+		if ( ! $this->check_read_permission( $comment, $request ) ) {
+			return new WP_Error( 'rest_cannot_read', __( 'Sorry, you are not allowed to read this comment.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( $post && ! $this->check_read_post_permission( $post, $request ) ) {
+			return new WP_Error( 'rest_cannot_read_post', __( 'Sorry, you are not allowed to read the post for this comment.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves a comment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or error object on failure.
+	 */
+	public function get_item( $request ) {
+		$id = (int) $request['id'];
+
+		$comment = get_comment( $id );
+		if ( empty( $comment ) ) {
+			return new WP_Error( 'rest_comment_invalid_id', __( 'Invalid comment ID.' ), array( 'status' => 404 ) );
+		}
+
+		if ( ! empty( $comment->comment_post_ID ) ) {
+			$post = get_post( $comment->comment_post_ID );
+			if ( empty( $post ) ) {
+				return new WP_Error( 'rest_post_invalid_id', __( 'Invalid post ID.' ), array( 'status' => 404 ) );
+			}
+		}
+
+		$data = $this->prepare_item_for_response( $comment, $request );
+		$response = rest_ensure_response( $data );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to create a comment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool True if the request has access to create items, error object otherwise.
+	 */
+	public function create_item_permissions_check( $request ) {
+		if ( ! is_user_logged_in() ) {
+			if ( get_option( 'comment_registration' ) ) {
+				return new WP_Error( 'rest_comment_login_required', __( 'Sorry, you must be logged in to comment.' ), array( 'status' => 401 ) );
+			}
+
+			/**
+			 * Filter whether comments can be created without authentication.
+			 *
+			 * Enables creating comments for anonymous users.
+			 *
+			 * @since 4.7.0
+			 *
+			 * @param bool $allow_anonymous Whether to allow anonymous comments to
+			 *                              be created. Default `false`.
+			 * @param WP_REST_Request $request Request used to generate the
+			 *                                 response.
+			 */
+			$allow_anonymous = apply_filters( 'rest_allow_anonymous_comments', false, $request );
+			if ( false === $allow_anonymous ) {
+				return new WP_Error( 'rest_comment_login_required', __( 'Sorry, you must be logged in to comment.' ), array( 'status' => 401 ) );
+			}
+		}
+
+		// Limit who can set comment `author`, `author_ip` or `status` to anything other than the default.
+		if ( isset( $request['author'] ) && get_current_user_id() !== $request['author'] && ! current_user_can( 'moderate_comments' ) ) {
+			return new WP_Error( 'rest_comment_invalid_author',
+				/* translators: %s: request parameter */
+				sprintf( __( "Sorry, you are not allowed to edit '%s' for comments." ), 'author' ),
+				array( 'status' => rest_authorization_required_code() )
+			);
+		}
+
+		if ( isset( $request['author_ip'] ) && ! current_user_can( 'moderate_comments' ) ) {
+			if ( empty( $_SERVER['REMOTE_ADDR'] ) || $request['author_ip'] !== $_SERVER['REMOTE_ADDR'] ) {
+				return new WP_Error( 'rest_comment_invalid_author_ip',
+					/* translators: %s: request parameter */
+					sprintf( __( "Sorry, you are not allowed to edit '%s' for comments." ), 'author_ip' ),
+					array( 'status' => rest_authorization_required_code() )
+				);
+			}
+		}
+
+		if ( isset( $request['status'] ) && ! current_user_can( 'moderate_comments' ) ) {
+			return new WP_Error( 'rest_comment_invalid_status',
+				/* translators: %s: request parameter */
+				sprintf( __( "Sorry, you are not allowed to edit '%s' for comments." ), 'status' ),
+				array( 'status' => rest_authorization_required_code() )
+			);
+		}
+
+		if ( empty( $request['post'] ) ) {
+			return new WP_Error( 'rest_comment_invalid_post_id', __( 'Sorry, you are not allowed to create this comment without a post.' ), array( 'status' => 403 ) );
+		}
+
+		$post = get_post( (int) $request['post'] );
+		if ( ! $post ) {
+			return new WP_Error( 'rest_comment_invalid_post_id', __( 'Sorry, you are not allowed to create this comment without a post.' ), array( 'status' => 403 ) );
+		}
+
+		if ( 'draft' === $post->post_status ) {
+			return new WP_Error( 'rest_comment_draft_post', __( 'Sorry, you are not allowed to create a comment on this post.' ), array( 'status' => 403 ) );
+		}
+
+		if ( 'trash' === $post->post_status ) {
+			return new WP_Error( 'rest_comment_trash_post', __( 'Sorry, you are not allowed to create a comment on this post.' ), array( 'status' => 403 ) );
+		}
+
+		if ( ! $this->check_read_post_permission( $post, $request ) ) {
+			return new WP_Error( 'rest_cannot_read_post', __( 'Sorry, you are not allowed to read the post for this comment.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! comments_open( $post->ID ) ) {
+			return new WP_Error( 'rest_comment_closed', __( 'Sorry, comments are closed for this item.' ), array( 'status' => 403 ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Creates a comment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or error object on failure.
+	 */
+	public function create_item( $request ) {
+		if ( ! empty( $request['id'] ) ) {
+			return new WP_Error( 'rest_comment_exists', __( 'Cannot create existing comment.' ), array( 'status' => 400 ) );
+		}
+
+		// Do not allow comments to be created with a non-default type.
+		if ( ! empty( $request['type'] ) && 'comment' !== $request['type'] ) {
+			return new WP_Error( 'rest_invalid_comment_type', __( 'Cannot create a comment with that type.' ), array( 'status' => 400 ) );
+		}
+
+		$prepared_comment = $this->prepare_item_for_database( $request );
+		if ( is_wp_error( $prepared_comment ) ) {
+			return $prepared_comment;
+		}
+
+		$prepared_comment['comment_type'] = '';
+
+		/*
+		 * Do not allow a comment to be created with missing or empty
+		 * comment_content. See wp_handle_comment_submission().
+		 */
+		if ( empty( $prepared_comment['comment_content'] ) ) {
+			return new WP_Error( 'rest_comment_content_invalid', __( 'Invalid comment content.' ), array( 'status' => 400 ) );
+		}
+
+		// Setting remaining values before wp_insert_comment so we can use wp_allow_comment().
+		if ( ! isset( $prepared_comment['comment_date_gmt'] ) ) {
+			$prepared_comment['comment_date_gmt'] = current_time( 'mysql', true );
+		}
+
+		// Set author data if the user's logged in.
+		$missing_author = empty( $prepared_comment['user_id'] )
+			&& empty( $prepared_comment['comment_author'] )
+			&& empty( $prepared_comment['comment_author_email'] )
+			&& empty( $prepared_comment['comment_author_url'] );
+
+		if ( is_user_logged_in() && $missing_author ) {
+			$user = wp_get_current_user();
+
+			$prepared_comment['user_id'] = $user->ID;
+			$prepared_comment['comment_author'] = $user->display_name;
+			$prepared_comment['comment_author_email'] = $user->user_email;
+			$prepared_comment['comment_author_url'] = $user->user_url;
+		}
+
+		// Honor the discussion setting that requires a name and email address of the comment author.
+		if ( get_option( 'require_name_email' ) ) {
+			if ( empty( $prepared_comment['comment_author'] ) || empty( $prepared_comment['comment_author_email'] ) ) {
+				return new WP_Error( 'rest_comment_author_data_required', __( 'Creating a comment requires valid author name and email values.' ), array( 'status' => 400 ) );
+			}
+		}
+
+		if ( ! isset( $prepared_comment['comment_author_email'] ) ) {
+			$prepared_comment['comment_author_email'] = '';
+		}
+
+		if ( ! isset( $prepared_comment['comment_author_url'] ) ) {
+			$prepared_comment['comment_author_url'] = '';
+		}
+
+		if ( ! isset( $prepared_comment['comment_agent'] ) ) {
+			$prepared_comment['comment_agent'] = '';
+		}
+
+		$check_comment_lengths = wp_check_comment_data_max_lengths( $prepared_comment );
+		if ( is_wp_error( $check_comment_lengths ) ) {
+			$error_code = $check_comment_lengths->get_error_code();
+			return new WP_Error( $error_code, __( 'Comment field exceeds maximum length allowed.' ), array( 'status' => 400 ) );
+		}
+
+		$prepared_comment['comment_approved'] = wp_allow_comment( $prepared_comment, true );
+
+		if ( is_wp_error( $prepared_comment['comment_approved'] ) ) {
+			$error_code    = $prepared_comment['comment_approved']->get_error_code();
+			$error_message = $prepared_comment['comment_approved']->get_error_message();
+
+			if ( 'comment_duplicate' === $error_code ) {
+				return new WP_Error( $error_code, $error_message, array( 'status' => 409 ) );
+			}
+
+			if ( 'comment_flood' === $error_code ) {
+				return new WP_Error( $error_code, $error_message, array( 'status' => 400 ) );
+			}
+
+			return $prepared_comment['comment_approved'];
+		}
+
+		/**
+		 * Filters a comment before it is inserted via the REST API.
+		 *
+		 * Allows modification of the comment right before it is inserted via wp_insert_comment().
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param array           $prepared_comment The prepared comment data for wp_insert_comment().
+		 * @param WP_REST_Request $request          Request used to insert the comment.
+		 */
+		$prepared_comment = apply_filters( 'rest_pre_insert_comment', $prepared_comment, $request );
+
+		$comment_id = wp_insert_comment( wp_filter_comment( wp_slash( (array) $prepared_comment ) ) );
+
+		if ( ! $comment_id ) {
+			return new WP_Error( 'rest_comment_failed_create', __( 'Creating comment failed.' ), array( 'status' => 500 ) );
+		}
+
+		if ( isset( $request['status'] ) ) {
+			$this->handle_status_param( $request['status'], $comment_id );
+		}
+
+		$comment = get_comment( $comment_id );
+
+		/**
+		 * Fires after a comment is created or updated via the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_Comment      $comment  Inserted or updated comment object.
+		 * @param WP_REST_Request $request  Request object.
+		 * @param bool            $creating True when creating a comment, false
+		 *                                  when updating.
+		 */
+		do_action( 'rest_insert_comment', $comment, $request, true );
+
+		$schema = $this->get_item_schema();
+
+		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
+			$meta_update = $this->meta->update_value( $request['meta'], $comment_id );
+
+			if ( is_wp_error( $meta_update ) ) {
+				return $meta_update;
+			}
+		}
+
+		$fields_update = $this->update_additional_fields_for_object( $comment, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$context = current_user_can( 'moderate_comments' ) ? 'edit' : 'view';
+
+		$request->set_param( 'context', $context );
+
+		$response = $this->prepare_item_for_response( $comment, $request );
+		$response = rest_ensure_response( $response );
+
+		$response->set_status( 201 );
+		$response->header( 'Location', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $comment_id ) ) );
+
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given REST request has access to update a comment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool True if the request has access to update the item, error object otherwise.
+	 */
+	public function update_item_permissions_check( $request ) {
+
+		$id = (int) $request['id'];
+
+		$comment = get_comment( $id );
+
+		if ( $comment && ! $this->check_edit_permission( $comment ) ) {
+			return new WP_Error( 'rest_cannot_edit', __( 'Sorry, you are not allowed to edit this comment.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Updates a comment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or error object on failure.
+	 */
+	public function update_item( $request ) {
+		$id = (int) $request['id'];
+
+		$comment = get_comment( $id );
+
+		if ( empty( $comment ) ) {
+			return new WP_Error( 'rest_comment_invalid_id', __( 'Invalid comment ID.' ), array( 'status' => 404 ) );
+		}
+
+		if ( isset( $request['type'] ) && get_comment_type( $id ) !== $request['type'] ) {
+			return new WP_Error( 'rest_comment_invalid_type', __( 'Sorry, you are not allowed to change the comment type.' ), array( 'status' => 404 ) );
+		}
+
+		$prepared_args = $this->prepare_item_for_database( $request );
+
+		if ( is_wp_error( $prepared_args ) ) {
+			return $prepared_args;
+		}
+
+		if ( empty( $prepared_args ) && isset( $request['status'] ) ) {
+			// Only the comment status is being changed.
+			$change = $this->handle_status_param( $request['status'], $id );
+
+			if ( ! $change ) {
+				return new WP_Error( 'rest_comment_failed_edit', __( 'Updating comment status failed.' ), array( 'status' => 500 ) );
+			}
+		} elseif ( ! empty( $prepared_args ) ) {
+			if ( is_wp_error( $prepared_args ) ) {
+				return $prepared_args;
+			}
+
+			if ( isset( $prepared_args['comment_content'] ) && empty( $prepared_args['comment_content'] ) ) {
+				return new WP_Error( 'rest_comment_content_invalid', __( 'Invalid comment content.' ), array( 'status' => 400 ) );
+			}
+
+			$prepared_args['comment_ID'] = $id;
+
+			$check_comment_lengths = wp_check_comment_data_max_lengths( $prepared_args );
+			if ( is_wp_error( $check_comment_lengths ) ) {
+				$error_code = $check_comment_lengths->get_error_code();
+				return new WP_Error( $error_code, __( 'Comment field exceeds maximum length allowed.' ), array( 'status' => 400 ) );
+			}
+
+			$updated = wp_update_comment( wp_slash( (array) $prepared_args ) );
+
+			if ( 0 === $updated ) {
+				return new WP_Error( 'rest_comment_failed_edit', __( 'Updating comment failed.' ), array( 'status' => 500 ) );
+			}
+
+			if ( isset( $request['status'] ) ) {
+				$this->handle_status_param( $request['status'], $id );
+			}
+		}
+
+		$comment = get_comment( $id );
+
+		/* This action is documented in lib/endpoints/class-wp-rest-comments-controller.php */
+		do_action( 'rest_insert_comment', $comment, $request, false );
+
+		$schema = $this->get_item_schema();
+
+		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
+			$meta_update = $this->meta->update_value( $request['meta'], $id );
+
+			if ( is_wp_error( $meta_update ) ) {
+				return $meta_update;
+			}
+		}
+
+		$fields_update = $this->update_additional_fields_for_object( $comment, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'edit' );
+
+		$response = $this->prepare_item_for_response( $comment, $request );
+
+		return rest_ensure_response( $response );
+	}
+
+	/**
+	 * Checks if a given request has access to delete a comment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool True if the request has access to delete the item, error object otherwise.
+	 */
+	public function delete_item_permissions_check( $request ) {
+		$id      = (int) $request['id'];
+		$comment = get_comment( $id );
+
+		if ( ! $comment ) {
+			return new WP_Error( 'rest_comment_invalid_id', __( 'Invalid comment ID.' ), array( 'status' => 404 ) );
+		}
+
+		if ( ! $this->check_edit_permission( $comment ) ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'Sorry, you are not allowed to delete this comment.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+		return true;
+	}
+
+	/**
+	 * Deletes a comment.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or error object on failure.
+	 */
+	public function delete_item( $request ) {
+		$id    = (int) $request['id'];
+		$force = isset( $request['force'] ) ? (bool) $request['force'] : false;
+
+		$comment = get_comment( $id );
+
+		if ( empty( $comment ) ) {
+			return new WP_Error( 'rest_comment_invalid_id', __( 'Invalid comment ID.' ), array( 'status' => 404 ) );
+		}
+
+		/**
+		 * Filters whether a comment can be trashed.
+		 *
+		 * Return false to disable trash support for the post.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param bool    $supports_trash Whether the post type support trashing.
+		 * @param WP_Post $comment        The comment object being considered for trashing support.
+		 */
+		$supports_trash = apply_filters( 'rest_comment_trashable', ( EMPTY_TRASH_DAYS > 0 ), $comment );
+
+		$request->set_param( 'context', 'edit' );
+
+		if ( $force ) {
+			$previous = $this->prepare_item_for_response( $comment, $request );
+			$result = wp_delete_comment( $comment->comment_ID, true );
+			$response = new WP_REST_Response();
+			$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+		} else {
+			// If this type doesn't support trashing, error out.
+			if ( ! $supports_trash ) {
+				return new WP_Error( 'rest_trash_not_supported', __( 'The comment does not support trashing. Set force=true to delete.' ), array( 'status' => 501 ) );
+			}
+
+			if ( 'trash' === $comment->comment_approved ) {
+				return new WP_Error( 'rest_already_trashed', __( 'The comment has already been trashed.' ), array( 'status' => 410 ) );
+			}
+
+			$result = wp_trash_comment( $comment->comment_ID );
+			$comment = get_comment( $comment->comment_ID );
+			$response = $this->prepare_item_for_response( $comment, $request );
+		}
+
+		if ( ! $result ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'The comment cannot be deleted.' ), array( 'status' => 500 ) );
+		}
+
+		/**
+		 * Fires after a comment is deleted via the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_Comment       $comment  The deleted comment data.
+		 * @param WP_REST_Response $response The response returned from the API.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'rest_delete_comment', $comment, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Prepares a single comment output for response.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_Comment      $comment Comment object.
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_REST_Response Response object.
+	 */
+	public function prepare_item_for_response( $comment, $request ) {
+		$data = array(
+			'id'                 => (int) $comment->comment_ID,
+			'post'               => (int) $comment->comment_post_ID,
+			'parent'             => (int) $comment->comment_parent,
+			'author'             => (int) $comment->user_id,
+			'author_name'        => $comment->comment_author,
+			'author_email'       => $comment->comment_author_email,
+			'author_url'         => $comment->comment_author_url,
+			'author_ip'          => $comment->comment_author_IP,
+			'author_user_agent'  => $comment->comment_agent,
+			'date'               => mysql_to_rfc3339( $comment->comment_date ),
+			'date_gmt'           => mysql_to_rfc3339( $comment->comment_date_gmt ),
+			'content'            => array(
+				/** This filter is documented in wp-includes/comment-template.php */
+				'rendered' => apply_filters( 'comment_text', $comment->comment_content, $comment ),
+				'raw'      => $comment->comment_content,
+			),
+			'link'               => get_comment_link( $comment ),
+			'status'             => $this->prepare_status_response( $comment->comment_approved ),
+			'type'               => get_comment_type( $comment->comment_ID ),
+		);
+
+		$schema = $this->get_item_schema();
+
+		if ( ! empty( $schema['properties']['author_avatar_urls'] ) ) {
+			$data['author_avatar_urls'] = rest_get_avatar_urls( $comment->comment_author_email );
+		}
+
+		if ( ! empty( $schema['properties']['meta'] ) ) {
+			$data['meta'] = $this->meta->get_value( $comment->comment_ID, $request );
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		// Wrap the data in a response object.
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $comment ) );
+
+		/**
+		 * Filters a comment returned from the API.
+		 *
+		 * Allows modification of the comment right before it is returned.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response  $response The response object.
+		 * @param WP_Comment        $comment  The original comment object.
+		 * @param WP_REST_Request   $request  Request used to generate the response.
+		 */
+		return apply_filters( 'rest_prepare_comment', $response, $comment, $request );
+	}
+
+	/**
+	 * Prepares links for the request.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param WP_Comment $comment Comment object.
+	 * @return array Links for the given comment.
+	 */
+	protected function prepare_links( $comment ) {
+		$links = array(
+			'self' => array(
+				'href' => rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $comment->comment_ID ) ),
+			),
+			'collection' => array(
+				'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
+			),
+		);
+
+		if ( 0 !== (int) $comment->user_id ) {
+			$links['author'] = array(
+				'href'       => rest_url( 'wp/v2/users/' . $comment->user_id ),
+				'embeddable' => true,
+			);
+		}
+
+		if ( 0 !== (int) $comment->comment_post_ID ) {
+			$post = get_post( $comment->comment_post_ID );
+
+			if ( ! empty( $post->ID ) ) {
+				$obj = get_post_type_object( $post->post_type );
+				$base = ! empty( $obj->rest_base ) ? $obj->rest_base : $obj->name;
+
+				$links['up'] = array(
+					'href'       => rest_url( 'wp/v2/' . $base . '/' . $comment->comment_post_ID ),
+					'embeddable' => true,
+					'post_type'  => $post->post_type,
+				);
+			}
+		}
+
+		if ( 0 !== (int) $comment->comment_parent ) {
+			$links['in-reply-to'] = array(
+				'href'       => rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $comment->comment_parent ) ),
+				'embeddable' => true,
+			);
+		}
+
+		// Only grab one comment to verify the comment has children.
+		$comment_children = $comment->get_children( array(
+			'number' => 1,
+			'count'  => true
+		) );
+
+		if ( ! empty( $comment_children ) ) {
+			$args = array(
+				'parent' => $comment->comment_ID
+			);
+
+			$rest_url = add_query_arg( $args, rest_url( $this->namespace . '/' . $this->rest_base ) );
+
+			$links['children'] = array(
+				'href' => $rest_url,
+			);
+		}
+
+		return $links;
+	}
+
+	/**
+	 * Prepends internal property prefix to query parameters to match our response fields.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param string $query_param Query parameter.
+	 * @return string The normalized query parameter.
+	 */
+	protected function normalize_query_param( $query_param ) {
+		$prefix = 'comment_';
+
+		switch ( $query_param ) {
+			case 'id':
+				$normalized = $prefix . 'ID';
+				break;
+			case 'post':
+				$normalized = $prefix . 'post_ID';
+				break;
+			case 'parent':
+				$normalized = $prefix . 'parent';
+				break;
+			case 'include':
+				$normalized = 'comment__in';
+				break;
+			default:
+				$normalized = $prefix . $query_param;
+				break;
+		}
+
+		return $normalized;
+	}
+
+	/**
+	 * Checks comment_approved to set comment status for single comment output.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param string|int $comment_approved comment status.
+	 * @return string Comment status.
+	 */
+	protected function prepare_status_response( $comment_approved ) {
+
+		switch ( $comment_approved ) {
+			case 'hold':
+			case '0':
+				$status = 'hold';
+				break;
+
+			case 'approve':
+			case '1':
+				$status = 'approved';
+				break;
+
+			case 'spam':
+			case 'trash':
+			default:
+				$status = $comment_approved;
+				break;
+		}
+
+		return $status;
+	}
+
+	/**
+	 * Prepares a single comment to be inserted into the database.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return array|WP_Error Prepared comment, otherwise WP_Error object.
+	 */
+	protected function prepare_item_for_database( $request ) {
+		$prepared_comment = array();
+
+		/*
+		 * Allow the comment_content to be set via the 'content' or
+		 * the 'content.raw' properties of the Request object.
+		 */
+		if ( isset( $request['content'] ) && is_string( $request['content'] ) ) {
+			$prepared_comment['comment_content'] = $request['content'];
+		} elseif ( isset( $request['content']['raw'] ) && is_string( $request['content']['raw'] ) ) {
+			$prepared_comment['comment_content'] = $request['content']['raw'];
+		}
+
+		if ( isset( $request['post'] ) ) {
+			$prepared_comment['comment_post_ID'] = (int) $request['post'];
+		}
+
+		if ( isset( $request['parent'] ) ) {
+			$prepared_comment['comment_parent'] = $request['parent'];
+		}
+
+		if ( isset( $request['author'] ) ) {
+			$user = new WP_User( $request['author'] );
+
+			if ( $user->exists() ) {
+				$prepared_comment['user_id'] = $user->ID;
+				$prepared_comment['comment_author'] = $user->display_name;
+				$prepared_comment['comment_author_email'] = $user->user_email;
+				$prepared_comment['comment_author_url'] = $user->user_url;
+			} else {
+				return new WP_Error( 'rest_comment_author_invalid', __( 'Invalid comment author ID.' ), array( 'status' => 400 ) );
+			}
+		}
+
+		if ( isset( $request['author_name'] ) ) {
+			$prepared_comment['comment_author'] = $request['author_name'];
+		}
+
+		if ( isset( $request['author_email'] ) ) {
+			$prepared_comment['comment_author_email'] = $request['author_email'];
+		}
+
+		if ( isset( $request['author_url'] ) ) {
+			$prepared_comment['comment_author_url'] = $request['author_url'];
+		}
+
+		if ( isset( $request['author_ip'] ) && current_user_can( 'moderate_comments' ) ) {
+			$prepared_comment['comment_author_IP'] = $request['author_ip'];
+		} elseif ( ! empty( $_SERVER['REMOTE_ADDR'] ) && rest_is_ip_address( $_SERVER['REMOTE_ADDR'] ) ) {
+			$prepared_comment['comment_author_IP'] = $_SERVER['REMOTE_ADDR'];
+		} else {
+			$prepared_comment['comment_author_IP'] = '127.0.0.1';
+		}
+
+		if ( ! empty( $request['author_user_agent'] ) ) {
+			$prepared_comment['comment_agent'] = $request['author_user_agent'];
+		} elseif ( $request->get_header( 'user_agent' ) ) {
+			$prepared_comment['comment_agent'] = $request->get_header( 'user_agent' );
+		}
+
+		if ( ! empty( $request['date'] ) ) {
+			$date_data = rest_get_date_with_gmt( $request['date'] );
+
+			if ( ! empty( $date_data ) ) {
+				list( $prepared_comment['comment_date'], $prepared_comment['comment_date_gmt'] ) = $date_data;
+			}
+		} elseif ( ! empty( $request['date_gmt'] ) ) {
+			$date_data = rest_get_date_with_gmt( $request['date_gmt'], true );
+
+			if ( ! empty( $date_data ) ) {
+				list( $prepared_comment['comment_date'], $prepared_comment['comment_date_gmt'] ) = $date_data;
+			}
+		}
+
+		/**
+		 * Filters a comment after it is prepared for the database.
+		 *
+		 * Allows modification of the comment right after it is prepared for the database.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param array           $prepared_comment The prepared comment data for `wp_insert_comment`.
+		 * @param WP_REST_Request $request          The current request.
+		 */
+		return apply_filters( 'rest_preprocess_comment', $prepared_comment, $request );
+	}
+
+	/**
+	 * Retrieves the comment's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'              => 'http://json-schema.org/schema#',
+			'title'                => 'comment',
+			'type'                 => 'object',
+			'properties'           => array(
+				'id'               => array(
+					'description'  => __( 'Unique identifier for the object.' ),
+					'type'         => 'integer',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+				'author'           => array(
+					'description'  => __( 'The ID of the user object, if author was a user.' ),
+					'type'         => 'integer',
+					'context'      => array( 'view', 'edit', 'embed' ),
+				),
+				'author_email'     => array(
+					'description'  => __( 'Email address for the object author.' ),
+					'type'         => 'string',
+					'format'       => 'email',
+					'context'      => array( 'edit' ),
+					'arg_options'  => array(
+						'sanitize_callback' => array( $this, 'check_comment_author_email' ),
+						'validate_callback' => null, // skip built-in validation of 'email'.
+					),
+				),
+				'author_ip'     => array(
+					'description'  => __( 'IP address for the object author.' ),
+					'type'         => 'string',
+					'format'       => 'ip',
+					'context'      => array( 'edit' ),
+				),
+				'author_name'     => array(
+					'description'  => __( 'Display name for the object author.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'arg_options'  => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'author_url'       => array(
+					'description'  => __( 'URL for the object author.' ),
+					'type'         => 'string',
+					'format'       => 'uri',
+					'context'      => array( 'view', 'edit', 'embed' ),
+				),
+				'author_user_agent'     => array(
+					'description'  => __( 'User agent for the object author.' ),
+					'type'         => 'string',
+					'context'      => array( 'edit' ),
+					'arg_options'  => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'content'          => array(
+					'description'     => __( 'The content for the object.' ),
+					'type'            => 'object',
+					'context'         => array( 'view', 'edit', 'embed' ),
+					'arg_options'     => array(
+						'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database()
+					),
+					'properties'      => array(
+						'raw'         => array(
+							'description'     => __( 'Content for the object, as it exists in the database.' ),
+							'type'            => 'string',
+							'context'         => array( 'edit' ),
+						),
+						'rendered'    => array(
+							'description'     => __( 'HTML content for the object, transformed for display.' ),
+							'type'            => 'string',
+							'context'         => array( 'view', 'edit', 'embed' ),
+							'readonly'        => true,
+						),
+					),
+				),
+				'date'             => array(
+					'description'  => __( "The date the object was published, in the site's timezone." ),
+					'type'         => 'string',
+					'format'       => 'date-time',
+					'context'      => array( 'view', 'edit', 'embed' ),
+				),
+				'date_gmt'         => array(
+					'description'  => __( 'The date the object was published, as GMT.' ),
+					'type'         => 'string',
+					'format'       => 'date-time',
+					'context'      => array( 'view', 'edit' ),
+				),
+				'link'             => array(
+					'description'  => __( 'URL to the object.' ),
+					'type'         => 'string',
+					'format'       => 'uri',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+				'parent'           => array(
+					'description'  => __( 'The ID for the parent of the object.' ),
+					'type'         => 'integer',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'default'      => 0,
+				),
+				'post'             => array(
+					'description'  => __( 'The ID of the associated post object.' ),
+					'type'         => 'integer',
+					'context'      => array( 'view', 'edit' ),
+					'default'      => 0,
+				),
+				'status'           => array(
+					'description'  => __( 'State of the object.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit' ),
+					'arg_options'  => array(
+						'sanitize_callback' => 'sanitize_key',
+					),
+				),
+				'type'             => array(
+					'description'  => __( 'Type of Comment for the object.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+			),
+		);
+
+		if ( get_option( 'show_avatars' ) ) {
+			$avatar_properties = array();
+
+			$avatar_sizes = rest_get_avatar_sizes();
+			foreach ( $avatar_sizes as $size ) {
+				$avatar_properties[ $size ] = array(
+					/* translators: %d: avatar image size in pixels */
+					'description' => sprintf( __( 'Avatar URL with image size of %d pixels.' ), $size ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'context'     => array( 'embed', 'view', 'edit' ),
+				);
+			}
+
+			$schema['properties']['author_avatar_urls'] = array(
+				'description'   => __( 'Avatar URLs for the object author.' ),
+				'type'          => 'object',
+				'context'       => array( 'view', 'edit', 'embed' ),
+				'readonly'      => true,
+				'properties'    => $avatar_properties,
+			);
+		}
+
+		$schema['properties']['meta'] = $this->meta->get_field_schema();
+
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Retrieves the query params for collections.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Comments collection parameters.
+	 */
+	public function get_collection_params() {
+		$query_params = parent::get_collection_params();
+
+		$query_params['context']['default'] = 'view';
+
+		$query_params['after'] = array(
+			'description'       => __( 'Limit response to comments published after a given ISO8601 compliant date.' ),
+			'type'              => 'string',
+			'format'            => 'date-time',
+		);
+
+		$query_params['author'] = array(
+			'description'       => __( 'Limit result set to comments assigned to specific user IDs. Requires authorization.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'type'          => 'integer',
+			),
+		);
+
+		$query_params['author_exclude'] = array(
+			'description'       => __( 'Ensure result set excludes comments assigned to specific user IDs. Requires authorization.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'type'          => 'integer',
+			),
+		);
+
+		$query_params['author_email'] = array(
+			'default'           => null,
+			'description'       => __( 'Limit result set to that from a specific author email. Requires authorization.' ),
+			'format'            => 'email',
+			'type'              => 'string',
+		);
+
+		$query_params['before'] = array(
+			'description'       => __( 'Limit response to comments published before a given ISO8601 compliant date.' ),
+			'type'              => 'string',
+			'format'            => 'date-time',
+		);
+
+		$query_params['exclude'] = array(
+			'description'        => __( 'Ensure result set excludes specific IDs.' ),
+			'type'               => 'array',
+			'items'              => array(
+				'type'           => 'integer',
+			),
+			'default'            => array(),
+		);
+
+		$query_params['include'] = array(
+			'description'        => __( 'Limit result set to specific IDs.' ),
+			'type'               => 'array',
+			'items'              => array(
+				'type'           => 'integer',
+			),
+			'default'            => array(),
+		);
+
+		$query_params['offset'] = array(
+			'description'        => __( 'Offset the result set by a specific number of items.' ),
+			'type'               => 'integer',
+		);
+
+		$query_params['order']      = array(
+			'description'           => __( 'Order sort attribute ascending or descending.' ),
+			'type'                  => 'string',
+			'default'               => 'desc',
+			'enum'                  => array(
+				'asc',
+				'desc',
+			),
+		);
+
+		$query_params['orderby']    = array(
+			'description'           => __( 'Sort collection by object attribute.' ),
+			'type'                  => 'string',
+			'default'               => 'date_gmt',
+			'enum'                  => array(
+				'date',
+				'date_gmt',
+				'id',
+				'include',
+				'post',
+				'parent',
+				'type',
+			),
+		);
+
+		$query_params['parent'] = array(
+			'default'           => array(),
+			'description'       => __( 'Limit result set to comments of specific parent IDs.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'type'          => 'integer',
+			),
+		);
+
+		$query_params['parent_exclude'] = array(
+			'default'           => array(),
+			'description'       => __( 'Ensure result set excludes specific parent IDs.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'type'          => 'integer',
+			),
+		);
+
+		$query_params['post']   = array(
+			'default'           => array(),
+			'description'       => __( 'Limit result set to comments assigned to specific post IDs.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'type'          => 'integer',
+			),
+		);
+
+		$query_params['status'] = array(
+			'default'           => 'approve',
+			'description'       => __( 'Limit result set to comments assigned a specific status. Requires authorization.' ),
+			'sanitize_callback' => 'sanitize_key',
+			'type'              => 'string',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$query_params['type'] = array(
+			'default'           => 'comment',
+			'description'       => __( 'Limit result set to comments assigned a specific type. Requires authorization.' ),
+			'sanitize_callback' => 'sanitize_key',
+			'type'              => 'string',
+			'validate_callback' => 'rest_validate_request_arg',
+		);
+
+		$query_params['password'] = array(
+			'description' => __( 'The password for the post if it is password protected.' ),
+			'type'        => 'string',
+		);
+
+		/**
+		 * Filter collection parameters for the comments controller.
+		 *
+		 * This filter registers the collection parameter, but does not map the
+		 * collection parameter to an internal WP_Comment_Query parameter. Use the
+		 * `rest_comment_query` filter to set WP_Comment_Query parameters.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param $params JSON Schema-formatted collection parameters.
+		 */
+		return apply_filters( 'rest_comment_collection_params', $query_params );
+	}
+
+	/**
+	 * Sets the comment_status of a given comment object when creating or updating a comment.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param string|int $new_status New comment status.
+	 * @param int        $comment_id Comment ID.
+	 * @return bool Whether the status was changed.
+	 */
+	protected function handle_status_param( $new_status, $comment_id ) {
+		$old_status = wp_get_comment_status( $comment_id );
+
+		if ( $new_status === $old_status ) {
+			return false;
+		}
+
+		switch ( $new_status ) {
+			case 'approved' :
+			case 'approve':
+			case '1':
+				$changed = wp_set_comment_status( $comment_id, 'approve' );
+				break;
+			case 'hold':
+			case '0':
+				$changed = wp_set_comment_status( $comment_id, 'hold' );
+				break;
+			case 'spam' :
+				$changed = wp_spam_comment( $comment_id );
+				break;
+			case 'unspam' :
+				$changed = wp_unspam_comment( $comment_id );
+				break;
+			case 'trash' :
+				$changed = wp_trash_comment( $comment_id );
+				break;
+			case 'untrash' :
+				$changed = wp_untrash_comment( $comment_id );
+				break;
+			default :
+				$changed = false;
+				break;
+		}
+
+		return $changed;
+	}
+
+	/**
+	 * Checks if the post can be read.
+	 *
+	 * Correctly handles posts with the inherit status.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param WP_Post         $post    Post object.
+	 * @param WP_REST_Request $request Request data to check.
+	 * @return bool Whether post can be read.
+	 */
+	protected function check_read_post_permission( $post, $request ) {
+		$posts_controller = new WP_REST_Posts_Controller( $post->post_type );
+		$post_type = get_post_type_object( $post->post_type );
+
+		$has_password_filter = false;
+
+		// Only check password if a specific post was queried for or a single comment
+		$requested_post = ! empty( $request['post'] ) && 1 === count( $request['post'] );
+		$requested_comment = ! empty( $request['id'] );
+		if ( ( $requested_post || $requested_comment ) && $posts_controller->can_access_password_content( $post, $request ) ) {
+			add_filter( 'post_password_required', '__return_false' );
+
+			$has_password_filter = true;
+		}
+
+		if ( post_password_required( $post ) ) {
+			$result = current_user_can( $post_type->cap->edit_post, $post->ID );
+		} else {
+			$result = $posts_controller->check_read_permission( $post );
+		}
+
+		if ( $has_password_filter ) {
+			remove_filter( 'post_password_required', '__return_false' );
+		}
+
+		return $result;
+	}
+
+	/**
+	 * Checks if the comment can be read.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param WP_Comment      $comment Comment object.
+	 * @param WP_REST_Request $request Request data to check.
+	 * @return bool Whether the comment can be read.
+	 */
+	protected function check_read_permission( $comment, $request ) {
+		if ( ! empty( $comment->comment_post_ID ) ) {
+			$post = get_post( $comment->comment_post_ID );
+			if ( $post ) {
+				if ( $this->check_read_post_permission( $post, $request ) && 1 === (int) $comment->comment_approved ) {
+					return true;
+				}
+			}
+		}
+
+		if ( 0 === get_current_user_id() ) {
+			return false;
+		}
+
+		if ( empty( $comment->comment_post_ID ) && ! current_user_can( 'moderate_comments' ) ) {
+			return false;
+		}
+
+		if ( ! empty( $comment->user_id ) && get_current_user_id() === (int) $comment->user_id ) {
+			return true;
+		}
+
+		return current_user_can( 'edit_comment', $comment->comment_ID );
+	}
+
+	/**
+	 * Checks if a comment can be edited or deleted.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object $comment Comment object.
+	 * @return bool Whether the comment can be edited or deleted.
+	 */
+	protected function check_edit_permission( $comment ) {
+		if ( 0 === (int) get_current_user_id() ) {
+			return false;
+		}
+
+		if ( ! current_user_can( 'moderate_comments' ) ) {
+			return false;
+		}
+
+		return current_user_can( 'edit_comment', $comment->comment_ID );
+	}
+
+	/**
+	 * Checks a comment author email for validity.
+	 *
+	 * Accepts either a valid email address or empty string as a valid comment
+	 * author email address. Setting the comment author email to an empty
+	 * string is allowed when a comment is being updated.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string          $value   Author email value submitted.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @param string          $param   The parameter name.
+	 * @return WP_Error|string The sanitized email address, if valid,
+	 *                         otherwise an error.
+	 */
+	public function check_comment_author_email( $value, $request, $param ) {
+		$email = (string) $value;
+		if ( empty( $email ) ) {
+			return $email;
+		}
+
+		$check_email = rest_validate_request_arg( $email, $request, $param );
+		if ( is_wp_error( $check_email ) ) {
+			return $check_email;
+		}
+
+		return $email;
+	}
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-controller.php
new file mode 100644
index 000000000..b6c8ac42a
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-controller.php
@@ -0,0 +1,603 @@
+<?php
+/**
+ * REST API: WP_REST_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core base controller for managing and interacting with REST API items.
+ *
+ * @since 4.7.0
+ */
+abstract class WP_REST_Controller {
+
+	/**
+	 * The namespace of this controller's route.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $namespace;
+
+	/**
+	 * The base of this controller's route.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $rest_base;
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function register_routes() {
+		_doing_it_wrong( 'WP_REST_Controller::register_routes', __( 'The register_routes() method must be overridden' ), '4.7' );
+	}
+
+	/**
+	 * Checks if a given request has access to get items.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool True if the request has read access, WP_Error object otherwise.
+	 */
+	public function get_items_permissions_check( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Retrieves a collection of items.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_items( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Checks if a given request has access to get a specific item.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool True if the request has read access for the item, WP_Error object otherwise.
+	 */
+	public function get_item_permissions_check( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Retrieves one item from the collection.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Checks if a given request has access to create items.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool True if the request has access to create items, WP_Error object otherwise.
+	 */
+	public function create_item_permissions_check( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Creates one item from the collection.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function create_item( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Checks if a given request has access to update a specific item.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool True if the request has access to update the item, WP_Error object otherwise.
+	 */
+	public function update_item_permissions_check( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Updates one item from the collection.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function update_item( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Checks if a given request has access to delete a specific item.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|bool True if the request has access to delete the item, WP_Error object otherwise.
+	 */
+	public function delete_item_permissions_check( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Deletes one item from the collection.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function delete_item( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Prepares one item for create or update operation.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_Error|object The prepared item, or WP_Error object on failure.
+	 */
+	protected function prepare_item_for_database( $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Prepares the item for the REST response.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param mixed           $item    WordPress representation of the item.
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function prepare_item_for_response( $item, $request ) {
+		return new WP_Error( 'invalid-method', sprintf( __( "Method '%s' not implemented. Must be overridden in subclass." ), __METHOD__ ), array( 'status' => 405 ) );
+	}
+
+	/**
+	 * Prepares a response for insertion into a collection.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Response $response Response object.
+	 * @return array|mixed Response data, ready for insertion into collection data.
+	 */
+	public function prepare_response_for_collection( $response ) {
+		if ( ! ( $response instanceof WP_REST_Response ) ) {
+			return $response;
+		}
+
+		$data   = (array) $response->get_data();
+		$server = rest_get_server();
+
+		if ( method_exists( $server, 'get_compact_response_links' ) ) {
+			$links = call_user_func( array( $server, 'get_compact_response_links' ), $response );
+		} else {
+			$links = call_user_func( array( $server, 'get_response_links' ), $response );
+		}
+
+		if ( ! empty( $links ) ) {
+			$data['_links'] = $links;
+		}
+
+		return $data;
+	}
+
+	/**
+	 * Filters a response based on the context defined in the schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param array  $data    Response data to fiter.
+	 * @param string $context Context defined in the schema.
+	 * @return array Filtered response.
+	 */
+	public function filter_response_by_context( $data, $context ) {
+
+		$schema = $this->get_item_schema();
+
+		foreach ( $data as $key => $value ) {
+			if ( empty( $schema['properties'][ $key ] ) || empty( $schema['properties'][ $key ]['context'] ) ) {
+				continue;
+			}
+
+			if ( ! in_array( $context, $schema['properties'][ $key ]['context'], true ) ) {
+				unset( $data[ $key ] );
+				continue;
+			}
+
+			if ( 'object' === $schema['properties'][ $key ]['type'] && ! empty( $schema['properties'][ $key ]['properties'] ) ) {
+				foreach ( $schema['properties'][ $key ]['properties'] as $attribute => $details ) {
+					if ( empty( $details['context'] ) ) {
+						continue;
+					}
+
+					if ( ! in_array( $context, $details['context'], true ) ) {
+						if ( isset( $data[ $key ][ $attribute ] ) ) {
+							unset( $data[ $key ][ $attribute ] );
+						}
+					}
+				}
+			}
+		}
+
+		return $data;
+	}
+
+	/**
+	 * Retrieves the item's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		return $this->add_additional_fields_schema( array() );
+	}
+
+	/**
+	 * Retrieves the item's schema for display / public consumption purposes.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Public item schema data.
+	 */
+	public function get_public_item_schema() {
+
+		$schema = $this->get_item_schema();
+
+		foreach ( $schema['properties'] as &$property ) {
+			unset( $property['arg_options'] );
+		}
+
+		return $schema;
+	}
+
+	/**
+	 * Retrieves the query params for the collections.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Query parameters for the collection.
+	 */
+	public function get_collection_params() {
+		return array(
+			'context'                => $this->get_context_param(),
+			'page'                   => array(
+				'description'        => __( 'Current page of the collection.' ),
+				'type'               => 'integer',
+				'default'            => 1,
+				'sanitize_callback'  => 'absint',
+				'validate_callback'  => 'rest_validate_request_arg',
+				'minimum'            => 1,
+			),
+			'per_page'               => array(
+				'description'        => __( 'Maximum number of items to be returned in result set.' ),
+				'type'               => 'integer',
+				'default'            => 10,
+				'minimum'            => 1,
+				'maximum'            => 100,
+				'sanitize_callback'  => 'absint',
+				'validate_callback'  => 'rest_validate_request_arg',
+			),
+			'search'                 => array(
+				'description'        => __( 'Limit results to those matching a string.' ),
+				'type'               => 'string',
+				'sanitize_callback'  => 'sanitize_text_field',
+				'validate_callback'  => 'rest_validate_request_arg',
+			),
+		);
+	}
+
+	/**
+	 * Retrieves the magical context param.
+	 *
+	 * Ensures consistent descriptions between endpoints, and populates enum from schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param array $args Optional. Additional arguments for context parameter. Default empty array.
+	 * @return array Context parameter details.
+	 */
+	public function get_context_param( $args = array() ) {
+		$param_details = array(
+			'description'        => __( 'Scope under which the request is made; determines fields present in response.' ),
+			'type'               => 'string',
+			'sanitize_callback'  => 'sanitize_key',
+			'validate_callback'  => 'rest_validate_request_arg',
+		);
+
+		$schema = $this->get_item_schema();
+
+		if ( empty( $schema['properties'] ) ) {
+			return array_merge( $param_details, $args );
+		}
+
+		$contexts = array();
+
+		foreach ( $schema['properties'] as $attributes ) {
+			if ( ! empty( $attributes['context'] ) ) {
+				$contexts = array_merge( $contexts, $attributes['context'] );
+			}
+		}
+
+		if ( ! empty( $contexts ) ) {
+			$param_details['enum'] = array_unique( $contexts );
+			rsort( $param_details['enum'] );
+		}
+
+		return array_merge( $param_details, $args );
+	}
+
+	/**
+	 * Adds the values from additional fields to a data object.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param array           $object  Data object.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return array Modified data object with additional fields.
+	 */
+	protected function add_additional_fields_to_object( $object, $request ) {
+
+		$additional_fields = $this->get_additional_fields();
+
+		foreach ( $additional_fields as $field_name => $field_options ) {
+
+			if ( ! $field_options['get_callback'] ) {
+				continue;
+			}
+
+			$object[ $field_name ] = call_user_func( $field_options['get_callback'], $object, $field_name, $request, $this->get_object_type() );
+		}
+
+		return $object;
+	}
+
+	/**
+	 * Updates the values of additional fields added to a data object.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param array           $object  Data Object.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True on success, WP_Error object if a field cannot be updated.
+	 */
+	protected function update_additional_fields_for_object( $object, $request ) {
+		$additional_fields = $this->get_additional_fields();
+
+		foreach ( $additional_fields as $field_name => $field_options ) {
+			if ( ! $field_options['update_callback'] ) {
+				continue;
+			}
+
+			// Don't run the update callbacks if the data wasn't passed in the request.
+			if ( ! isset( $request[ $field_name ] ) ) {
+				continue;
+			}
+
+			$result = call_user_func( $field_options['update_callback'], $request[ $field_name ], $object, $field_name, $request, $this->get_object_type() );
+
+			if ( is_wp_error( $result ) ) {
+				return $result;
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Adds the schema from additional fields to a schema array.
+	 *
+	 * The type of object is inferred from the passed schema.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param array $schema Schema array.
+	 * @return array Modified Schema array.
+	 */
+	protected function add_additional_fields_schema( $schema ) {
+		if ( empty( $schema['title'] ) ) {
+			return $schema;
+		}
+
+		// Can't use $this->get_object_type otherwise we cause an inf loop.
+		$object_type = $schema['title'];
+
+		$additional_fields = $this->get_additional_fields( $object_type );
+
+		foreach ( $additional_fields as $field_name => $field_options ) {
+			if ( ! $field_options['schema'] ) {
+				continue;
+			}
+
+			$schema['properties'][ $field_name ] = $field_options['schema'];
+		}
+
+		return $schema;
+	}
+
+	/**
+	 * Retrieves all of the registered additional fields for a given object-type.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param  string $object_type Optional. The object type.
+	 * @return array Registered additional fields (if any), empty array if none or if the object type could
+	 *               not be inferred.
+	 */
+	protected function get_additional_fields( $object_type = null ) {
+
+		if ( ! $object_type ) {
+			$object_type = $this->get_object_type();
+		}
+
+		if ( ! $object_type ) {
+			return array();
+		}
+
+		global $wp_rest_additional_fields;
+
+		if ( ! $wp_rest_additional_fields || ! isset( $wp_rest_additional_fields[ $object_type ] ) ) {
+			return array();
+		}
+
+		return $wp_rest_additional_fields[ $object_type ];
+	}
+
+	/**
+	 * Retrieves the object type this controller is responsible for managing.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return string Object type for the controller.
+	 */
+	protected function get_object_type() {
+		$schema = $this->get_item_schema();
+
+		if ( ! $schema || ! isset( $schema['title'] ) ) {
+			return null;
+		}
+
+		return $schema['title'];
+	}
+
+	/**
+	 * Retrieves an array of endpoint arguments from the item schema for the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string $method Optional. HTTP method of the request. The arguments for `CREATABLE` requests are
+	 *                       checked for required values and may fall-back to a given default, this is not done
+	 *                       on `EDITABLE` requests. Default WP_REST_Server::CREATABLE.
+	 * @return array Endpoint arguments.
+	 */
+	public function get_endpoint_args_for_item_schema( $method = WP_REST_Server::CREATABLE ) {
+
+		$schema            = $this->get_item_schema();
+		$schema_properties = ! empty( $schema['properties'] ) ? $schema['properties'] : array();
+		$endpoint_args     = array();
+
+		foreach ( $schema_properties as $field_id => $params ) {
+
+			// Arguments specified as `readonly` are not allowed to be set.
+			if ( ! empty( $params['readonly'] ) ) {
+				continue;
+			}
+
+			$endpoint_args[ $field_id ] = array(
+				'validate_callback' => 'rest_validate_request_arg',
+				'sanitize_callback' => 'rest_sanitize_request_arg',
+			);
+
+			if ( isset( $params['description'] ) ) {
+				$endpoint_args[ $field_id ]['description'] = $params['description'];
+			}
+
+			if ( WP_REST_Server::CREATABLE === $method && isset( $params['default'] ) ) {
+				$endpoint_args[ $field_id ]['default'] = $params['default'];
+			}
+
+			if ( WP_REST_Server::CREATABLE === $method && ! empty( $params['required'] ) ) {
+				$endpoint_args[ $field_id ]['required'] = true;
+			}
+
+			foreach ( array( 'type', 'format', 'enum', 'items' ) as $schema_prop ) {
+				if ( isset( $params[ $schema_prop ] ) ) {
+					$endpoint_args[ $field_id ][ $schema_prop ] = $params[ $schema_prop ];
+				}
+			}
+
+			// Merge in any options provided by the schema property.
+			if ( isset( $params['arg_options'] ) ) {
+
+				// Only use required / default from arg_options on CREATABLE endpoints.
+				if ( WP_REST_Server::CREATABLE !== $method ) {
+					$params['arg_options'] = array_diff_key( $params['arg_options'], array( 'required' => '', 'default' => '' ) );
+				}
+
+				$endpoint_args[ $field_id ] = array_merge( $endpoint_args[ $field_id ], $params['arg_options'] );
+			}
+		}
+
+		return $endpoint_args;
+	}
+
+	/**
+	 * Sanitizes the slug value.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @internal We can't use sanitize_title() directly, as the second
+	 * parameter is the fallback title, which would end up being set to the
+	 * request object.
+	 *
+	 * @see https://github.com/WP-API/WP-API/issues/1585
+	 *
+	 * @todo Remove this in favour of https://core.trac.wordpress.org/ticket/34659
+	 *
+	 * @param string $slug Slug value passed in request.
+	 * @return string Sanitized value for the slug.
+	 */
+	public function sanitize_slug( $slug ) {
+		return sanitize_title( $slug );
+	}
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php
new file mode 100644
index 000000000..0ec4bcd1a
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php
@@ -0,0 +1,312 @@
+<?php
+/**
+ * REST API: WP_REST_Post_Statuses_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to access post statuses via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Post_Statuses_Controller extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function __construct() {
+		$this->namespace = 'wp/v2';
+		$this->rest_base = 'statuses';
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_items' ),
+				'permission_callback' => array( $this, 'get_items_permissions_check' ),
+				'args'                => $this->get_collection_params(),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<status>[\w-]+)', array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_item' ),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				'args'                => array(
+					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+	}
+
+	/**
+	 * Checks whether a given request has permission to read post statuses.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool True if the request has read access, WP_Error object otherwise.
+	 */
+	public function get_items_permissions_check( $request ) {
+		if ( 'edit' === $request['context'] ) {
+			$types = get_post_types( array( 'show_in_rest' => true ), 'objects' );
+
+			foreach ( $types as $type ) {
+				if ( current_user_can( $type->cap->edit_posts ) ) {
+					return true;
+				}
+			}
+			return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves all post statuses, depending on user context.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_items( $request ) {
+		$data = array();
+		$statuses = get_post_stati( array( 'internal' => false ), 'object' );
+		$statuses['trash'] = get_post_status_object( 'trash' );
+
+		foreach ( $statuses as $slug => $obj ) {
+			$ret = $this->check_read_permission( $obj );
+
+			if ( ! $ret ) {
+				continue;
+			}
+
+			$status = $this->prepare_item_for_response( $obj, $request );
+			$data[ $obj->name ] = $this->prepare_response_for_collection( $status );
+		}
+
+		return rest_ensure_response( $data );
+	}
+
+	/**
+	 * Checks if a given request has access to read a post status.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|bool True if the request has read access for the item, WP_Error object otherwise.
+	 */
+	public function get_item_permissions_check( $request ) {
+		$status = get_post_status_object( $request['status'] );
+
+		if ( empty( $status ) ) {
+			return new WP_Error( 'rest_status_invalid', __( 'Invalid status.' ), array( 'status' => 404 ) );
+		}
+
+		$check = $this->check_read_permission( $status );
+
+		if ( ! $check ) {
+			return new WP_Error( 'rest_cannot_read_status', __( 'Cannot view status.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Checks whether a given post status should be visible.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object $status Post status.
+	 * @return bool True if the post status is visible, otherwise false.
+	 */
+	protected function check_read_permission( $status ) {
+		if ( true === $status->public ) {
+			return true;
+		}
+
+		if ( false === $status->internal || 'trash' === $status->name ) {
+			$types = get_post_types( array( 'show_in_rest' => true ), 'objects' );
+
+			foreach ( $types as $type ) {
+				if ( current_user_can( $type->cap->edit_posts ) ) {
+					return true;
+				}
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Retrieves a specific post status.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+		$obj = get_post_status_object( $request['status'] );
+
+		if ( empty( $obj ) ) {
+			return new WP_Error( 'rest_status_invalid', __( 'Invalid status.' ), array( 'status' => 404 ) );
+		}
+
+		$data = $this->prepare_item_for_response( $obj, $request );
+
+		return rest_ensure_response( $data );
+	}
+
+	/**
+	 * Prepares a post status object for serialization.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param stdClass        $status  Post status data.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response Post status data.
+	 */
+	public function prepare_item_for_response( $status, $request ) {
+
+		$data = array(
+			'name'         => $status->label,
+			'private'      => (bool) $status->private,
+			'protected'    => (bool) $status->protected,
+			'public'       => (bool) $status->public,
+			'queryable'    => (bool) $status->publicly_queryable,
+			'show_in_list' => (bool) $status->show_in_admin_all_list,
+			'slug'         => $status->name,
+		);
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data = $this->add_additional_fields_to_object( $data, $request );
+		$data = $this->filter_response_by_context( $data, $context );
+
+		$response = rest_ensure_response( $data );
+
+		if ( 'publish' === $status->name ) {
+			$response->add_link( 'archives', rest_url( 'wp/v2/posts' ) );
+		} else {
+			$response->add_link( 'archives', add_query_arg( 'status', $status->name, rest_url( 'wp/v2/posts' ) ) );
+		}
+
+		/**
+		 * Filters a status returned from the REST API.
+		 *
+		 * Allows modification of the status data right before it is returned.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response $response The response object.
+		 * @param object           $status   The original status object.
+		 * @param WP_REST_Request  $request  Request used to generate the response.
+		 */
+		return apply_filters( 'rest_prepare_status', $response, $status, $request );
+	}
+
+	/**
+	 * Retrieves the post status' schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'              => 'http://json-schema.org/schema#',
+			'title'                => 'status',
+			'type'                 => 'object',
+			'properties'           => array(
+				'name'             => array(
+					'description'  => __( 'The title for the status.' ),
+					'type'         => 'string',
+					'context'      => array( 'embed', 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'private'          => array(
+					'description'  => __( 'Whether posts with this status should be private.' ),
+					'type'         => 'boolean',
+					'context'      => array( 'edit' ),
+					'readonly'     => true,
+				),
+				'protected'        => array(
+					'description'  => __( 'Whether posts with this status should be protected.' ),
+					'type'         => 'boolean',
+					'context'      => array( 'edit' ),
+					'readonly'     => true,
+				),
+				'public'           => array(
+					'description'  => __( 'Whether posts of this status should be shown in the front end of the site.' ),
+					'type'         => 'boolean',
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'queryable'        => array(
+					'description'  => __( 'Whether posts with this status should be publicly-queryable.' ),
+					'type'         => 'boolean',
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'show_in_list'     => array(
+					'description'  => __( 'Whether to include posts in the edit listing for their post type.' ),
+					'type'         => 'boolean',
+					'context'      => array( 'edit' ),
+					'readonly'     => true,
+				),
+				'slug'             => array(
+					'description'  => __( 'An alphanumeric identifier for the status.' ),
+					'type'         => 'string',
+					'context'      => array( 'embed', 'view', 'edit' ),
+					'readonly'     => true,
+				),
+			),
+		);
+
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Retrieves the query params for collections.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Collection parameters.
+	 */
+	public function get_collection_params() {
+		return array(
+			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+		);
+	}
+
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php
new file mode 100644
index 000000000..a1437dd59
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php
@@ -0,0 +1,276 @@
+<?php
+/**
+ * REST API: WP_REST_Post_Types_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class to access post types via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Post_Types_Controller extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function __construct() {
+		$this->namespace = 'wp/v2';
+		$this->rest_base = 'types';
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_items' ),
+				'permission_callback' => array( $this, 'get_items_permissions_check' ),
+				'args'                => $this->get_collection_params(),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<type>[\w-]+)', array(
+			array(
+				'methods'  => WP_REST_Server::READABLE,
+				'callback' => array( $this, 'get_item' ),
+				'args'     => array(
+					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+	}
+
+	/**
+	 * Checks whether a given request has permission to read types.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|true True if the request has read access, WP_Error object otherwise.
+	 */
+	public function get_items_permissions_check( $request ) {
+		if ( 'edit' === $request['context'] ) {
+			foreach ( get_post_types( array(), 'object' ) as $post_type ) {
+				if ( ! empty( $post_type->show_in_rest ) && current_user_can( $post_type->cap->edit_posts ) ) {
+					return true;
+				}
+			}
+
+			return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves all public post types.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_items( $request ) {
+		$data = array();
+
+		foreach ( get_post_types( array(), 'object' ) as $obj ) {
+			if ( empty( $obj->show_in_rest ) || ( 'edit' === $request['context'] && ! current_user_can( $obj->cap->edit_posts ) ) ) {
+				continue;
+			}
+
+			$post_type = $this->prepare_item_for_response( $obj, $request );
+			$data[ $obj->name ] = $this->prepare_response_for_collection( $post_type );
+		}
+
+		return rest_ensure_response( $data );
+	}
+
+	/**
+	 * Retrieves a specific post type.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+		$obj = get_post_type_object( $request['type'] );
+
+		if ( empty( $obj ) ) {
+			return new WP_Error( 'rest_type_invalid', __( 'Invalid post type.' ), array( 'status' => 404 ) );
+		}
+
+		if ( empty( $obj->show_in_rest ) ) {
+			return new WP_Error( 'rest_cannot_read_type', __( 'Cannot view post type.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( 'edit' === $request['context'] && ! current_user_can( $obj->cap->edit_posts ) ) {
+			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		$data = $this->prepare_item_for_response( $obj, $request );
+
+		return rest_ensure_response( $data );
+	}
+
+	/**
+	 * Prepares a post type object for serialization.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param stdClass        $post_type Post type data.
+	 * @param WP_REST_Request $request   Full details about the request.
+	 * @return WP_REST_Response Response object.
+	 */
+	public function prepare_item_for_response( $post_type, $request ) {
+		$taxonomies = wp_list_filter( get_object_taxonomies( $post_type->name, 'objects' ), array( 'show_in_rest' => true ) );
+		$taxonomies = wp_list_pluck( $taxonomies, 'name' );
+		$base = ! empty( $post_type->rest_base ) ? $post_type->rest_base : $post_type->name;
+		$data = array(
+			'capabilities' => $post_type->cap,
+			'description'  => $post_type->description,
+			'hierarchical' => $post_type->hierarchical,
+			'labels'       => $post_type->labels,
+			'name'         => $post_type->label,
+			'slug'         => $post_type->name,
+			'taxonomies'   => array_values( $taxonomies ),
+			'rest_base'    => $base,
+		);
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		// Wrap the data in a response object.
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( array(
+			'collection' => array(
+				'href'   => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
+			),
+			'https://api.w.org/items' => array(
+				'href' => rest_url( sprintf( 'wp/v2/%s', $base ) ),
+			),
+		) );
+
+		/**
+		 * Filters a post type returned from the API.
+		 *
+		 * Allows modification of the post type data right before it is returned.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response $response The response object.
+		 * @param object           $item     The original post type object.
+		 * @param WP_REST_Request  $request  Request used to generate the response.
+		 */
+		return apply_filters( 'rest_prepare_post_type', $response, $post_type, $request );
+	}
+
+	/**
+	 * Retrieves the post type's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'              => 'http://json-schema.org/schema#',
+			'title'                => 'type',
+			'type'                 => 'object',
+			'properties'           => array(
+				'capabilities'     => array(
+					'description'  => __( 'All capabilities used by the post type.' ),
+					'type'         => 'object',
+					'context'      => array( 'edit' ),
+					'readonly'     => true,
+				),
+				'description'      => array(
+					'description'  => __( 'A human-readable description of the post type.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'hierarchical'     => array(
+					'description'  => __( 'Whether or not the post type should have children.' ),
+					'type'         => 'boolean',
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'labels'           => array(
+					'description'  => __( 'Human-readable labels for the post type for various contexts.' ),
+					'type'         => 'object',
+					'context'      => array( 'edit' ),
+					'readonly'     => true,
+				),
+				'name'             => array(
+					'description'  => __( 'The title for the post type.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+				'slug'             => array(
+					'description'  => __( 'An alphanumeric identifier for the post type.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+				'taxonomies'       => array(
+					'description'  => __( 'Taxonomies associated with post type.' ),
+					'type'         => 'array',
+					'items'        => array(
+						'type' => 'string',
+					),
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'rest_base'            => array(
+					'description'  => __( 'REST base route for the post type.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+			),
+		);
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Retrieves the query params for collections.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Collection parameters.
+	 */
+	public function get_collection_params() {
+		return array(
+			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+		);
+	}
+
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
new file mode 100644
index 000000000..872a6607c
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
@@ -0,0 +1,2198 @@
+<?php
+/**
+ * REST API: WP_REST_Posts_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class to access posts via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Posts_Controller extends WP_REST_Controller {
+
+	/**
+	 * Post type.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $post_type;
+
+	/**
+	 * Instance of a post meta fields object.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var WP_REST_Post_Meta_Fields
+	 */
+	protected $meta;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string $post_type Post type.
+	 */
+	public function __construct( $post_type ) {
+		$this->post_type = $post_type;
+		$this->namespace = 'wp/v2';
+		$obj = get_post_type_object( $post_type );
+		$this->rest_base = ! empty( $obj->rest_base ) ? $obj->rest_base : $obj->name;
+
+		$this->meta = new WP_REST_Post_Meta_Fields( $this->post_type );
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_items' ),
+				'permission_callback' => array( $this, 'get_items_permissions_check' ),
+				'args'                => $this->get_collection_params(),
+			),
+			array(
+				'methods'             => WP_REST_Server::CREATABLE,
+				'callback'            => array( $this, 'create_item' ),
+				'permission_callback' => array( $this, 'create_item_permissions_check' ),
+				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<id>[\d]+)', array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_item' ),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				'args'                => array(
+					'context'  => $this->get_context_param( array( 'default' => 'view' ) ),
+					'password' => array(
+						'description' => __( 'The password for the post if it is password protected.' ),
+						'type'        => 'string',
+					),
+				),
+			),
+			array(
+				'methods'             => WP_REST_Server::EDITABLE,
+				'callback'            => array( $this, 'update_item' ),
+				'permission_callback' => array( $this, 'update_item_permissions_check' ),
+				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+			),
+			array(
+				'methods'             => WP_REST_Server::DELETABLE,
+				'callback'            => array( $this, 'delete_item' ),
+				'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				'args'                => array(
+					'force' => array(
+						'type'        => 'boolean',
+						'default'     => false,
+						'description' => __( 'Whether to bypass trash and force deletion.' ),
+					),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+	}
+
+	/**
+	 * Checks if a given request has access to read posts.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
+	 */
+	public function get_items_permissions_check( $request ) {
+
+		$post_type = get_post_type_object( $this->post_type );
+
+		if ( 'edit' === $request['context'] && ! current_user_can( $post_type->cap->edit_posts ) ) {
+			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves a collection of posts.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_items( $request ) {
+
+		// Ensure a search string is set in case the orderby is set to 'relevance'.
+		if ( ! empty( $request['orderby'] ) && 'relevance' === $request['orderby'] && empty( $request['search'] ) ) {
+			return new WP_Error( 'rest_no_search_term_defined', __( 'You need to define a search term to order by relevance.' ), array( 'status' => 400 ) );
+		}
+
+		// Ensure an include parameter is set in case the orderby is set to 'include'.
+		if ( ! empty( $request['orderby'] ) && 'include' === $request['orderby'] && empty( $request['include'] ) ) {
+			return new WP_Error( 'rest_orderby_include_missing_include', sprintf( __( 'Missing parameter(s): %s' ), 'include' ), array( 'status' => 400 ) );
+		}
+
+		// Retrieve the list of registered collection query parameters.
+		$registered = $this->get_collection_params();
+		$args = array();
+
+		/*
+		 * This array defines mappings between public API query parameters whose
+		 * values are accepted as-passed, and their internal WP_Query parameter
+		 * name equivalents (some are the same). Only values which are also
+		 * present in $registered will be set.
+		 */
+		$parameter_mappings = array(
+			'author'         => 'author__in',
+			'author_exclude' => 'author__not_in',
+			'exclude'        => 'post__not_in',
+			'include'        => 'post__in',
+			'menu_order'     => 'menu_order',
+			'offset'         => 'offset',
+			'order'          => 'order',
+			'orderby'        => 'orderby',
+			'page'           => 'paged',
+			'parent'         => 'post_parent__in',
+			'parent_exclude' => 'post_parent__not_in',
+			'search'         => 's',
+			'slug'           => 'post_name__in',
+			'status'         => 'post_status',
+		);
+
+		/*
+		 * For each known parameter which is both registered and present in the request,
+		 * set the parameter's value on the query $args.
+		 */
+		foreach ( $parameter_mappings as $api_param => $wp_param ) {
+			if ( isset( $registered[ $api_param ], $request[ $api_param ] ) ) {
+				$args[ $wp_param ] = $request[ $api_param ];
+			}
+		}
+
+		// Check for & assign any parameters which require special handling or setting.
+		$args['date_query'] = array();
+
+		// Set before into date query. Date query must be specified as an array of an array.
+		if ( isset( $registered['before'], $request['before'] ) ) {
+			$args['date_query'][0]['before'] = $request['before'];
+		}
+
+		// Set after into date query. Date query must be specified as an array of an array.
+		if ( isset( $registered['after'], $request['after'] ) ) {
+			$args['date_query'][0]['after'] = $request['after'];
+		}
+
+		// Ensure our per_page parameter overrides any provided posts_per_page filter.
+		if ( isset( $registered['per_page'] ) ) {
+			$args['posts_per_page'] = $request['per_page'];
+		}
+
+		if ( isset( $registered['sticky'], $request['sticky'] ) ) {
+			$sticky_posts = get_option( 'sticky_posts', array() );
+			if ( $sticky_posts && $request['sticky'] ) {
+				/*
+				 * As post__in will be used to only get sticky posts,
+				 * we have to support the case where post__in was already
+				 * specified.
+				 */
+				$args['post__in'] = $args['post__in'] ? array_intersect( $sticky_posts, $args['post__in'] ) : $sticky_posts;
+
+				/*
+				 * If we intersected, but there are no post ids in common,
+				 * WP_Query won't return "no posts" for post__in = array()
+				 * so we have to fake it a bit.
+				 */
+				if ( ! $args['post__in'] ) {
+					$args['post__in'] = array( -1 );
+				}
+			} elseif ( $sticky_posts ) {
+				/*
+				 * As post___not_in will be used to only get posts that
+				 * are not sticky, we have to support the case where post__not_in
+				 * was already specified.
+				 */
+				$args['post__not_in'] = array_merge( $args['post__not_in'], $sticky_posts );
+			}
+		}
+
+		// Force the post_type argument, since it's not a user input variable.
+		$args['post_type'] = $this->post_type;
+
+		/**
+		 * Filters the query arguments for a request.
+		 *
+		 * Enables adding extra arguments or setting defaults for a post collection request.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @link https://developer.wordpress.org/reference/classes/wp_query/
+		 *
+		 * @param array           $args    Key value array of query var to query value.
+		 * @param WP_REST_Request $request The request used.
+		 */
+		$args = apply_filters( "rest_{$this->post_type}_query", $args, $request );
+		$query_args = $this->prepare_items_query( $args, $request );
+
+		$taxonomies = wp_list_filter( get_object_taxonomies( $this->post_type, 'objects' ), array( 'show_in_rest' => true ) );
+
+		foreach ( $taxonomies as $taxonomy ) {
+			$base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
+			$tax_exclude = $base . '_exclude';
+
+			if ( ! empty( $request[ $base ] ) ) {
+				$query_args['tax_query'][] = array(
+					'taxonomy'         => $taxonomy->name,
+					'field'            => 'term_id',
+					'terms'            => $request[ $base ],
+					'include_children' => false,
+				);
+			}
+
+			if ( ! empty( $request[ $tax_exclude ] ) ) {
+				$query_args['tax_query'][] = array(
+					'taxonomy'         => $taxonomy->name,
+					'field'            => 'term_id',
+					'terms'            => $request[ $tax_exclude ],
+					'include_children' => false,
+					'operator'         => 'NOT IN',
+				);
+			}
+		}
+
+		$posts_query  = new WP_Query();
+		$query_result = $posts_query->query( $query_args );
+
+		// Allow access to all password protected posts if the context is edit.
+		if ( 'edit' === $request['context'] ) {
+			add_filter( 'post_password_required', '__return_false' );
+		}
+
+		$posts = array();
+
+		foreach ( $query_result as $post ) {
+			if ( ! $this->check_read_permission( $post ) ) {
+				continue;
+			}
+
+			$data    = $this->prepare_item_for_response( $post, $request );
+			$posts[] = $this->prepare_response_for_collection( $data );
+		}
+
+		// Reset filter.
+		if ( 'edit' === $request['context'] ) {
+			remove_filter( 'post_password_required', '__return_false' );
+		}
+
+		$page = (int) $query_args['paged'];
+		$total_posts = $posts_query->found_posts;
+
+		if ( $total_posts < 1 ) {
+			// Out-of-bounds, run the query again without LIMIT for total count.
+			unset( $query_args['paged'] );
+
+			$count_query = new WP_Query();
+			$count_query->query( $query_args );
+			$total_posts = $count_query->found_posts;
+		}
+
+		$max_pages = ceil( $total_posts / (int) $posts_query->query_vars['posts_per_page'] );
+		$response  = rest_ensure_response( $posts );
+
+		$response->header( 'X-WP-Total', (int) $total_posts );
+		$response->header( 'X-WP-TotalPages', (int) $max_pages );
+
+		$request_params = $request->get_query_params();
+		$base = add_query_arg( $request_params, rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ) );
+
+		if ( $page > 1 ) {
+			$prev_page = $page - 1;
+
+			if ( $prev_page > $max_pages ) {
+				$prev_page = $max_pages;
+			}
+
+			$prev_link = add_query_arg( 'page', $prev_page, $base );
+			$response->link_header( 'prev', $prev_link );
+		}
+		if ( $max_pages > $page ) {
+			$next_page = $page + 1;
+			$next_link = add_query_arg( 'page', $next_page, $base );
+
+			$response->link_header( 'next', $next_link );
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to read a post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True if the request has read access for the item, WP_Error object otherwise.
+	 */
+	public function get_item_permissions_check( $request ) {
+
+		$post = get_post( (int) $request['id'] );
+
+		if ( 'edit' === $request['context'] && $post && ! $this->check_update_permission( $post ) ) {
+			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit this post.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( $post && ! empty( $request['password'] ) ) {
+			// Check post password, and return error if invalid.
+			if ( ! hash_equals( $post->post_password, $request['password'] ) ) {
+				return new WP_Error( 'rest_post_incorrect_password', __( 'Incorrect post password.' ), array( 'status' => 403 ) );
+			}
+		}
+
+		// Allow access to all password protected posts if the context is edit.
+		if ( 'edit' === $request['context'] ) {
+			add_filter( 'post_password_required', '__return_false' );
+		}
+
+		if ( $post ) {
+			return $this->check_read_permission( $post );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Checks if the user can access password-protected content.
+	 *
+	 * This method determines whether we need to override the regular password
+	 * check in core with a filter.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_Post         $post    Post to check against.
+	 * @param WP_REST_Request $request Request data to check.
+	 * @return bool True if the user can access password-protected content, otherwise false.
+	 */
+	public function can_access_password_content( $post, $request ) {
+		if ( empty( $post->post_password ) ) {
+			// No filter required.
+			return false;
+		}
+
+		// Edit context always gets access to password-protected posts.
+		if ( 'edit' === $request['context'] ) {
+			return true;
+		}
+
+		// No password, no auth.
+		if ( empty( $request['password'] ) ) {
+			return false;
+		}
+
+		// Double-check the request password.
+		return hash_equals( $post->post_password, $request['password'] );
+	}
+
+	/**
+	 * Retrieves a single post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+		$id   = (int) $request['id'];
+		$post = get_post( $id );
+
+		if ( empty( $id ) || empty( $post->ID ) || $this->post_type !== $post->post_type ) {
+			return new WP_Error( 'rest_post_invalid_id', __( 'Invalid post ID.' ), array( 'status' => 404 ) );
+		}
+
+		$data     = $this->prepare_item_for_response( $post, $request );
+		$response = rest_ensure_response( $data );
+
+		if ( is_post_type_viewable( get_post_type_object( $post->post_type ) ) ) {
+			$response->link_header( 'alternate',  get_permalink( $id ), array( 'type' => 'text/html' ) );
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to create a post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
+	 */
+	public function create_item_permissions_check( $request ) {
+
+		$post_type = get_post_type_object( $this->post_type );
+
+		if ( ! empty( $request['author'] ) && get_current_user_id() !== $request['author'] && ! current_user_can( $post_type->cap->edit_others_posts ) ) {
+			return new WP_Error( 'rest_cannot_edit_others', __( 'Sorry, you are not allowed to create posts as this user.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! empty( $request['sticky'] ) && ! current_user_can( $post_type->cap->edit_others_posts ) ) {
+			return new WP_Error( 'rest_cannot_assign_sticky', __( 'Sorry, you are not allowed to make posts sticky.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! current_user_can( $post_type->cap->create_posts ) ) {
+			return new WP_Error( 'rest_cannot_create', __( 'Sorry, you are not allowed to create posts as this user.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! $this->check_assign_terms_permission( $request ) ) {
+			return new WP_Error( 'rest_cannot_assign_term', __( 'Sorry, you are not allowed to assign the provided terms.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Creates a single post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function create_item( $request ) {
+		if ( ! empty( $request['id'] ) ) {
+			return new WP_Error( 'rest_post_exists', __( 'Cannot create existing post.' ), array( 'status' => 400 ) );
+		}
+
+		$prepared_post = $this->prepare_item_for_database( $request );
+
+		if ( is_wp_error( $prepared_post ) ) {
+			return $prepared_post;
+		}
+
+		$prepared_post->post_type = $this->post_type;
+
+		$post_id = wp_insert_post( wp_slash( (array) $prepared_post ), true );
+
+		if ( is_wp_error( $post_id ) ) {
+
+			if ( 'db_insert_error' === $post_id->get_error_code() ) {
+				$post_id->add_data( array( 'status' => 500 ) );
+			} else {
+				$post_id->add_data( array( 'status' => 400 ) );
+			}
+
+			return $post_id;
+		}
+
+		$post = get_post( $post_id );
+
+		/**
+		 * Fires after a single post is created or updated via the REST API.
+		 *
+		 * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_Post         $post     Inserted or updated post object.
+		 * @param WP_REST_Request $request  Request object.
+		 * @param bool            $creating True when creating a post, false when updating.
+		 */
+		do_action( "rest_insert_{$this->post_type}", $post, $request, true );
+
+		$schema = $this->get_item_schema();
+
+		if ( ! empty( $schema['properties']['sticky'] ) ) {
+			if ( ! empty( $request['sticky'] ) ) {
+				stick_post( $post_id );
+			} else {
+				unstick_post( $post_id );
+			}
+		}
+
+		if ( ! empty( $schema['properties']['featured_media'] ) && isset( $request['featured_media'] ) ) {
+			$this->handle_featured_media( $request['featured_media'], $post_id );
+		}
+
+		if ( ! empty( $schema['properties']['format'] ) && ! empty( $request['format'] ) ) {
+			set_post_format( $post, $request['format'] );
+		}
+
+		if ( ! empty( $schema['properties']['template'] ) && isset( $request['template'] ) ) {
+			$this->handle_template( $request['template'], $post_id );
+		}
+
+		$terms_update = $this->handle_terms( $post_id, $request );
+
+		if ( is_wp_error( $terms_update ) ) {
+			return $terms_update;
+		}
+
+		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
+			$meta_update = $this->meta->update_value( $request['meta'], $post_id );
+
+			if ( is_wp_error( $meta_update ) ) {
+				return $meta_update;
+			}
+		}
+
+		$post = get_post( $post_id );
+		$fields_update = $this->update_additional_fields_for_object( $post, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'edit' );
+
+		$response = $this->prepare_item_for_response( $post, $request );
+		$response = rest_ensure_response( $response );
+
+		$response->set_status( 201 );
+		$response->header( 'Location', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $post_id ) ) );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to update a post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
+	 */
+	public function update_item_permissions_check( $request ) {
+
+		$post = get_post( $request['id'] );
+		$post_type = get_post_type_object( $this->post_type );
+
+		if ( $post && ! $this->check_update_permission( $post ) ) {
+			return new WP_Error( 'rest_cannot_edit', __( 'Sorry, you are not allowed to edit this post.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! empty( $request['author'] ) && get_current_user_id() !== $request['author'] && ! current_user_can( $post_type->cap->edit_others_posts ) ) {
+			return new WP_Error( 'rest_cannot_edit_others', __( 'Sorry, you are not allowed to update posts as this user.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! empty( $request['sticky'] ) && ! current_user_can( $post_type->cap->edit_others_posts ) ) {
+			return new WP_Error( 'rest_cannot_assign_sticky', __( 'Sorry, you are not allowed to make posts sticky.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! $this->check_assign_terms_permission( $request ) ) {
+			return new WP_Error( 'rest_cannot_assign_term', __( 'Sorry, you are not allowed to assign the provided terms.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Updates a single post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function update_item( $request ) {
+		$id   = (int) $request['id'];
+		$post = get_post( $id );
+
+		if ( empty( $id ) || empty( $post->ID ) || $this->post_type !== $post->post_type ) {
+			return new WP_Error( 'rest_post_invalid_id', __( 'Invalid post ID.' ), array( 'status' => 404 ) );
+		}
+
+		$post = $this->prepare_item_for_database( $request );
+
+		if ( is_wp_error( $post ) ) {
+			return $post;
+		}
+
+		// convert the post object to an array, otherwise wp_update_post will expect non-escaped input.
+		$post_id = wp_update_post( wp_slash( (array) $post ), true );
+
+		if ( is_wp_error( $post_id ) ) {
+			if ( 'db_update_error' === $post_id->get_error_code() ) {
+				$post_id->add_data( array( 'status' => 500 ) );
+			} else {
+				$post_id->add_data( array( 'status' => 400 ) );
+			}
+			return $post_id;
+		}
+
+		$post = get_post( $post_id );
+
+		/* This action is documented in lib/endpoints/class-wp-rest-controller.php */
+		do_action( "rest_insert_{$this->post_type}", $post, $request, false );
+
+		$schema = $this->get_item_schema();
+
+		if ( ! empty( $schema['properties']['format'] ) && ! empty( $request['format'] ) ) {
+			set_post_format( $post, $request['format'] );
+		}
+
+		if ( ! empty( $schema['properties']['featured_media'] ) && isset( $request['featured_media'] ) ) {
+			$this->handle_featured_media( $request['featured_media'], $post_id );
+		}
+
+		if ( ! empty( $schema['properties']['sticky'] ) && isset( $request['sticky'] ) ) {
+			if ( ! empty( $request['sticky'] ) ) {
+				stick_post( $post_id );
+			} else {
+				unstick_post( $post_id );
+			}
+		}
+
+		if ( ! empty( $schema['properties']['template'] ) && isset( $request['template'] ) ) {
+			$this->handle_template( $request['template'], $post->ID );
+		}
+
+		$terms_update = $this->handle_terms( $post->ID, $request );
+
+		if ( is_wp_error( $terms_update ) ) {
+			return $terms_update;
+		}
+
+		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
+			$meta_update = $this->meta->update_value( $request['meta'], $post->ID );
+
+			if ( is_wp_error( $meta_update ) ) {
+				return $meta_update;
+			}
+		}
+
+		$post = get_post( $post_id );
+		$fields_update = $this->update_additional_fields_for_object( $post, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'edit' );
+
+		$response = $this->prepare_item_for_response( $post, $request );
+
+		return rest_ensure_response( $response );
+	}
+
+	/**
+	 * Checks if a given request has access to delete a post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has access to delete the item, WP_Error object otherwise.
+	 */
+	public function delete_item_permissions_check( $request ) {
+
+		$post = get_post( $request['id'] );
+
+		if ( $post && ! $this->check_delete_permission( $post ) ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'Sorry, you are not allowed to delete this post.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Deletes a single post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function delete_item( $request ) {
+		$id    = (int) $request['id'];
+		$force = (bool) $request['force'];
+
+		$post = get_post( $id );
+
+		if ( empty( $id ) || empty( $post->ID ) || $this->post_type !== $post->post_type ) {
+			return new WP_Error( 'rest_post_invalid_id', __( 'Invalid post ID.' ), array( 'status' => 404 ) );
+		}
+
+		$supports_trash = ( EMPTY_TRASH_DAYS > 0 );
+
+		if ( 'attachment' === $post->post_type ) {
+			$supports_trash = $supports_trash && MEDIA_TRASH;
+		}
+
+		/**
+		 * Filters whether a post is trashable.
+		 *
+		 * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+		 *
+		 * Pass false to disable trash support for the post.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param bool    $supports_trash Whether the post type support trashing.
+		 * @param WP_Post $post           The Post object being considered for trashing support.
+		 */
+		$supports_trash = apply_filters( "rest_{$this->post_type}_trashable", $supports_trash, $post );
+
+		if ( ! $this->check_delete_permission( $post ) ) {
+			return new WP_Error( 'rest_user_cannot_delete_post', __( 'Sorry, you are not allowed to delete this post.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		$request->set_param( 'context', 'edit' );
+
+
+		// If we're forcing, then delete permanently.
+		if ( $force ) {
+			$previous = $this->prepare_item_for_response( $post, $request );
+			$result = wp_delete_post( $id, true );
+			$response = new WP_REST_Response();
+			$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+		} else {
+			// If we don't support trashing for this type, error out.
+			if ( ! $supports_trash ) {
+				return new WP_Error( 'rest_trash_not_supported', __( 'The post does not support trashing. Set force=true to delete.' ), array( 'status' => 501 ) );
+			}
+
+			// Otherwise, only trash if we haven't already.
+			if ( 'trash' === $post->post_status ) {
+				return new WP_Error( 'rest_already_trashed', __( 'The post has already been deleted.' ), array( 'status' => 410 ) );
+			}
+
+			// (Note that internally this falls through to `wp_delete_post` if
+			// the trash is disabled.)
+			$result = wp_trash_post( $id );
+			$post = get_post( $id );
+			$response = $this->prepare_item_for_response( $post, $request );
+		}
+
+		if ( ! $result ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'The post cannot be deleted.' ), array( 'status' => 500 ) );
+		}
+
+		/**
+		 * Fires immediately after a single post is deleted or trashed via the REST API.
+		 *
+		 * They dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param object           $post     The deleted or trashed post.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( "rest_delete_{$this->post_type}", $post, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Determines the allowed query_vars for a get_items() response and prepares
+	 * them for WP_Query.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param array           $prepared_args Optional. Prepared WP_Query arguments. Default empty array.
+	 * @param WP_REST_Request $request       Optional. Full details about the request.
+	 * @return array Items query arguments.
+	 */
+	protected function prepare_items_query( $prepared_args = array(), $request = null ) {
+		$query_args = array();
+
+		foreach ( $prepared_args as $key => $value ) {
+			/**
+			 * Filters the query_vars used in get_items() for the constructed query.
+			 *
+			 * The dynamic portion of the hook name, `$key`, refers to the query_var key.
+			 *
+			 * @since 4.7.0
+			 *
+			 * @param string $value The query_var value.
+			 */
+			$query_args[ $key ] = apply_filters( "rest_query_var-{$key}", $value );
+		}
+
+		if ( 'post' !== $this->post_type || ! isset( $query_args['ignore_sticky_posts'] ) ) {
+			$query_args['ignore_sticky_posts'] = true;
+		}
+
+		// Map to proper WP_Query orderby param.
+		if ( isset( $query_args['orderby'] ) && isset( $request['orderby'] ) ) {
+			$orderby_mappings = array(
+				'id'      => 'ID',
+				'include' => 'post__in',
+				'slug'    => 'post_name',
+			);
+
+			if ( isset( $orderby_mappings[ $request['orderby'] ] ) ) {
+				$query_args['orderby'] = $orderby_mappings[ $request['orderby'] ];
+			}
+		}
+
+		return $query_args;
+	}
+
+	/**
+	 * Checks the post_date_gmt or modified_gmt and prepare any post or
+	 * modified date for single post output.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param string      $date_gmt GMT publication time.
+	 * @param string|null $date     Optional. Local publication time. Default null.
+	 * @return string|null ISO8601/RFC3339 formatted datetime.
+	 */
+	protected function prepare_date_response( $date_gmt, $date = null ) {
+		// Use the date if passed.
+		if ( isset( $date ) ) {
+			return mysql_to_rfc3339( $date );
+		}
+
+		// Return null if $date_gmt is empty/zeros.
+		if ( '0000-00-00 00:00:00' === $date_gmt ) {
+			return null;
+		}
+
+		// Return the formatted datetime.
+		return mysql_to_rfc3339( $date_gmt );
+	}
+
+	/**
+	 * Prepares a single post for create or update.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return stdClass|WP_Error Post object or WP_Error.
+	 */
+	protected function prepare_item_for_database( $request ) {
+		$prepared_post = new stdClass;
+
+		// Post ID.
+		if ( isset( $request['id'] ) ) {
+			$prepared_post->ID = absint( $request['id'] );
+		}
+
+		$schema = $this->get_item_schema();
+
+		// Post title.
+		if ( ! empty( $schema['properties']['title'] ) && isset( $request['title'] ) ) {
+			if ( is_string( $request['title'] ) ) {
+				$prepared_post->post_title = $request['title'];
+			} elseif ( ! empty( $request['title']['raw'] ) ) {
+				$prepared_post->post_title = $request['title']['raw'];
+			}
+		}
+
+		// Post content.
+		if ( ! empty( $schema['properties']['content'] ) && isset( $request['content'] ) ) {
+			if ( is_string( $request['content'] ) ) {
+				$prepared_post->post_content = $request['content'];
+			} elseif ( isset( $request['content']['raw'] ) ) {
+				$prepared_post->post_content = $request['content']['raw'];
+			}
+		}
+
+		// Post excerpt.
+		if ( ! empty( $schema['properties']['excerpt'] ) && isset( $request['excerpt'] ) ) {
+			if ( is_string( $request['excerpt'] ) ) {
+				$prepared_post->post_excerpt = $request['excerpt'];
+			} elseif ( isset( $request['excerpt']['raw'] ) ) {
+				$prepared_post->post_excerpt = $request['excerpt']['raw'];
+			}
+		}
+
+		// Post type.
+		if ( empty( $request['id'] ) ) {
+			// Creating new post, use default type for the controller.
+			$prepared_post->post_type = $this->post_type;
+		} else {
+			// Updating a post, use previous type.
+			$prepared_post->post_type = get_post_type( $request['id'] );
+		}
+
+		$post_type = get_post_type_object( $prepared_post->post_type );
+
+		// Post status.
+		if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
+			$status = $this->handle_status_param( $request['status'], $post_type );
+
+			if ( is_wp_error( $status ) ) {
+				return $status;
+			}
+
+			$prepared_post->post_status = $status;
+		}
+
+		// Post date.
+		if ( ! empty( $schema['properties']['date'] ) && ! empty( $request['date'] ) ) {
+			$date_data = rest_get_date_with_gmt( $request['date'] );
+
+			if ( ! empty( $date_data ) ) {
+				list( $prepared_post->post_date, $prepared_post->post_date_gmt ) = $date_data;
+			}
+		} elseif ( ! empty( $schema['properties']['date_gmt'] ) && ! empty( $request['date_gmt'] ) ) {
+			$date_data = rest_get_date_with_gmt( $request['date_gmt'], true );
+
+			if ( ! empty( $date_data ) ) {
+				list( $prepared_post->post_date, $prepared_post->post_date_gmt ) = $date_data;
+			}
+		}
+
+		// Post slug.
+		if ( ! empty( $schema['properties']['slug'] ) && isset( $request['slug'] ) ) {
+			$prepared_post->post_name = $request['slug'];
+		}
+
+		// Author.
+		if ( ! empty( $schema['properties']['author'] ) && ! empty( $request['author'] ) ) {
+			$post_author = (int) $request['author'];
+
+			if ( get_current_user_id() !== $post_author ) {
+				$user_obj = get_userdata( $post_author );
+
+				if ( ! $user_obj ) {
+					return new WP_Error( 'rest_invalid_author', __( 'Invalid author ID.' ), array( 'status' => 400 ) );
+				}
+			}
+
+			$prepared_post->post_author = $post_author;
+		}
+
+		// Post password.
+		if ( ! empty( $schema['properties']['password'] ) && isset( $request['password'] ) ) {
+			$prepared_post->post_password = $request['password'];
+
+			if ( '' !== $request['password'] ) {
+				if ( ! empty( $schema['properties']['sticky'] ) && ! empty( $request['sticky'] ) ) {
+					return new WP_Error( 'rest_invalid_field', __( 'A post can not be sticky and have a password.' ), array( 'status' => 400 ) );
+				}
+
+				if ( ! empty( $prepared_post->ID ) && is_sticky( $prepared_post->ID ) ) {
+					return new WP_Error( 'rest_invalid_field', __( 'A sticky post can not be password protected.' ), array( 'status' => 400 ) );
+				}
+			}
+		}
+
+		if ( ! empty( $schema['properties']['sticky'] ) && ! empty( $request['sticky'] ) ) {
+			if ( ! empty( $prepared_post->ID ) && post_password_required( $prepared_post->ID ) ) {
+				return new WP_Error( 'rest_invalid_field', __( 'A password protected post can not be set to sticky.' ), array( 'status' => 400 ) );
+			}
+		}
+
+		// Parent.
+		if ( ! empty( $schema['properties']['parent'] ) && isset( $request['parent'] ) ) {
+			if ( 0 === (int) $request['parent'] ) {
+				$prepared_post->post_parent = 0;
+			} else {
+				$parent = get_post( (int) $request['parent'] );
+				if ( empty( $parent ) ) {
+					return new WP_Error( 'rest_post_invalid_id', __( 'Invalid post parent ID.' ), array( 'status' => 400 ) );
+				}
+				$prepared_post->post_parent = (int) $parent->ID;
+			}
+		}
+
+		// Menu order.
+		if ( ! empty( $schema['properties']['menu_order'] ) && isset( $request['menu_order'] ) ) {
+			$prepared_post->menu_order = (int) $request['menu_order'];
+		}
+
+		// Comment status.
+		if ( ! empty( $schema['properties']['comment_status'] ) && ! empty( $request['comment_status'] ) ) {
+			$prepared_post->comment_status = $request['comment_status'];
+		}
+
+		// Ping status.
+		if ( ! empty( $schema['properties']['ping_status'] ) && ! empty( $request['ping_status'] ) ) {
+			$prepared_post->ping_status = $request['ping_status'];
+		}
+
+		/**
+		 * Filters a post before it is inserted via the REST API.
+		 *
+		 * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param stdClass        $prepared_post An object representing a single post prepared
+		 *                                       for inserting or updating the database.
+		 * @param WP_REST_Request $request       Request object.
+		 */
+		return apply_filters( "rest_pre_insert_{$this->post_type}", $prepared_post, $request );
+
+	}
+
+	/**
+	 * Determines validity and normalizes the given status parameter.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param string $post_status Post status.
+	 * @param object $post_type   Post type.
+	 * @return string|WP_Error Post status or WP_Error if lacking the proper permission.
+	 */
+	protected function handle_status_param( $post_status, $post_type ) {
+
+		switch ( $post_status ) {
+			case 'draft':
+			case 'pending':
+				break;
+			case 'private':
+				if ( ! current_user_can( $post_type->cap->publish_posts ) ) {
+					return new WP_Error( 'rest_cannot_publish', __( 'Sorry, you are not allowed to create private posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) );
+				}
+				break;
+			case 'publish':
+			case 'future':
+				if ( ! current_user_can( $post_type->cap->publish_posts ) ) {
+					return new WP_Error( 'rest_cannot_publish', __( 'Sorry, you are not allowed to publish posts in this post type.' ), array( 'status' => rest_authorization_required_code() ) );
+				}
+				break;
+			default:
+				if ( ! get_post_status_object( $post_status ) ) {
+					$post_status = 'draft';
+				}
+				break;
+		}
+
+		return $post_status;
+	}
+
+	/**
+	 * Determines the featured media based on a request param.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param int $featured_media Featured Media ID.
+	 * @param int $post_id        Post ID.
+	 * @return bool|WP_Error Whether the post thumbnail was successfully deleted, otherwise WP_Error.
+	 */
+	protected function handle_featured_media( $featured_media, $post_id ) {
+
+		$featured_media = (int) $featured_media;
+		if ( $featured_media ) {
+			$result = set_post_thumbnail( $post_id, $featured_media );
+			if ( $result ) {
+				return true;
+			} else {
+				return new WP_Error( 'rest_invalid_featured_media', __( 'Invalid featured media ID.' ), array( 'status' => 400 ) );
+			}
+		} else {
+			return delete_post_thumbnail( $post_id );
+		}
+
+	}
+
+	/**
+	 * Sets the template for a post.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string  $template Page template filename.
+	 * @param integer $post_id  Post ID.
+	 */
+	public function handle_template( $template, $post_id ) {
+		if ( in_array( $template, array_keys( wp_get_theme()->get_page_templates( get_post( $post_id ) ) ), true ) ) {
+			update_post_meta( $post_id, '_wp_page_template', $template );
+		} else {
+			update_post_meta( $post_id, '_wp_page_template', '' );
+		}
+	}
+
+	/**
+	 * Updates the post's terms from a REST request.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param int             $post_id The post ID to update the terms form.
+	 * @param WP_REST_Request $request The request object with post and terms data.
+	 * @return null|WP_Error WP_Error on an error assigning any of the terms, otherwise null.
+	 */
+	protected function handle_terms( $post_id, $request ) {
+		$taxonomies = wp_list_filter( get_object_taxonomies( $this->post_type, 'objects' ), array( 'show_in_rest' => true ) );
+
+		foreach ( $taxonomies as $taxonomy ) {
+			$base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
+
+			if ( ! isset( $request[ $base ] ) ) {
+				continue;
+			}
+
+			$result = wp_set_object_terms( $post_id, $request[ $base ], $taxonomy->name );
+
+			if ( is_wp_error( $result ) ) {
+				return $result;
+			}
+		}
+	}
+
+	/**
+	 * Checks whether current user can assign all terms sent with the current request.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param WP_REST_Request $request The request object with post and terms data.
+	 * @return bool Whether the current user can assign the provided terms.
+	 */
+	protected function check_assign_terms_permission( $request ) {
+		$taxonomies = wp_list_filter( get_object_taxonomies( $this->post_type, 'objects' ), array( 'show_in_rest' => true ) );
+		foreach ( $taxonomies as $taxonomy ) {
+			$base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
+
+			if ( ! isset( $request[ $base ] ) ) {
+				continue;
+			}
+
+			foreach ( $request[ $base ] as $term_id ) {
+				// Invalid terms will be rejected later.
+				if ( ! get_term( $term_id, $taxonomy->name ) ) {
+					continue;
+				}
+
+				if ( ! current_user_can( 'assign_term', (int) $term_id ) ) {
+					return false;
+				}
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Checks if a given post type can be viewed or managed.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object|string $post_type Post type name or object.
+	 * @return bool Whether the post type is allowed in REST.
+	 */
+	protected function check_is_post_type_allowed( $post_type ) {
+		if ( ! is_object( $post_type ) ) {
+			$post_type = get_post_type_object( $post_type );
+		}
+
+		if ( ! empty( $post_type ) && ! empty( $post_type->show_in_rest ) ) {
+			return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Checks if a post can be read.
+	 *
+	 * Correctly handles posts with the inherit status.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param object $post Post object.
+	 * @return bool Whether the post can be read.
+	 */
+	public function check_read_permission( $post ) {
+		$post_type = get_post_type_object( $post->post_type );
+		if ( ! $this->check_is_post_type_allowed( $post_type ) ) {
+			return false;
+		}
+
+		// Is the post readable?
+		if ( 'publish' === $post->post_status || current_user_can( $post_type->cap->read_post, $post->ID ) ) {
+			return true;
+		}
+
+		$post_status_obj = get_post_status_object( $post->post_status );
+		if ( $post_status_obj && $post_status_obj->public ) {
+			return true;
+		}
+
+		// Can we read the parent if we're inheriting?
+		if ( 'inherit' === $post->post_status && $post->post_parent > 0 ) {
+			$parent = get_post( $post->post_parent );
+			return $this->check_read_permission( $parent );
+		}
+
+		/*
+		 * If there isn't a parent, but the status is set to inherit, assume
+		 * it's published (as per get_post_status()).
+		 */
+		if ( 'inherit' === $post->post_status ) {
+			return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Checks if a post can be edited.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object $post Post object.
+	 * @return bool Whether the post can be edited.
+	 */
+	protected function check_update_permission( $post ) {
+		$post_type = get_post_type_object( $post->post_type );
+
+		if ( ! $this->check_is_post_type_allowed( $post_type ) ) {
+			return false;
+		}
+
+		return current_user_can( $post_type->cap->edit_post, $post->ID );
+	}
+
+	/**
+	 * Checks if a post can be created.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object $post Post object.
+	 * @return bool Whether the post can be created.
+	 */
+	protected function check_create_permission( $post ) {
+		$post_type = get_post_type_object( $post->post_type );
+
+		if ( ! $this->check_is_post_type_allowed( $post_type ) ) {
+			return false;
+		}
+
+		return current_user_can( $post_type->cap->create_posts );
+	}
+
+	/**
+	 * Checks if a post can be deleted.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object $post Post object.
+	 * @return bool Whether the post can be deleted.
+	 */
+	protected function check_delete_permission( $post ) {
+		$post_type = get_post_type_object( $post->post_type );
+
+		if ( ! $this->check_is_post_type_allowed( $post_type ) ) {
+			return false;
+		}
+
+		return current_user_can( $post_type->cap->delete_post, $post->ID );
+	}
+
+	/**
+	 * Prepares a single post output for response.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_Post         $post    Post object.
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_REST_Response Response object.
+	 */
+	public function prepare_item_for_response( $post, $request ) {
+		$GLOBALS['post'] = $post;
+
+		setup_postdata( $post );
+
+		$schema = $this->get_item_schema();
+
+		// Base fields for every post.
+		$data = array();
+
+		if ( ! empty( $schema['properties']['id'] ) ) {
+			$data['id'] = $post->ID;
+		}
+
+		if ( ! empty( $schema['properties']['date'] ) ) {
+			$data['date'] = $this->prepare_date_response( $post->post_date_gmt, $post->post_date );
+		}
+
+		if ( ! empty( $schema['properties']['date_gmt'] ) ) {
+			$data['date_gmt'] = $this->prepare_date_response( $post->post_date_gmt );
+		}
+
+		if ( ! empty( $schema['properties']['guid'] ) ) {
+			$data['guid'] = array(
+				/** This filter is documented in wp-includes/post-template.php */
+				'rendered' => apply_filters( 'get_the_guid', $post->guid ),
+				'raw'      => $post->guid,
+			);
+		}
+
+		if ( ! empty( $schema['properties']['modified'] ) ) {
+			$data['modified'] = $this->prepare_date_response( $post->post_modified_gmt, $post->post_modified );
+		}
+
+		if ( ! empty( $schema['properties']['modified_gmt'] ) ) {
+			$data['modified_gmt'] = $this->prepare_date_response( $post->post_modified_gmt );
+		}
+
+		if ( ! empty( $schema['properties']['password'] ) ) {
+			$data['password'] = $post->post_password;
+		}
+
+		if ( ! empty( $schema['properties']['slug'] ) ) {
+			$data['slug'] = $post->post_name;
+		}
+
+		if ( ! empty( $schema['properties']['status'] ) ) {
+			$data['status'] = $post->post_status;
+		}
+
+		if ( ! empty( $schema['properties']['type'] ) ) {
+			$data['type'] = $post->post_type;
+		}
+
+		if ( ! empty( $schema['properties']['link'] ) ) {
+			$data['link'] = get_permalink( $post->ID );
+		}
+
+		if ( ! empty( $schema['properties']['title'] ) ) {
+			add_filter( 'protected_title_format', array( $this, 'protected_title_format' ) );
+
+			$data['title'] = array(
+				'raw'      => $post->post_title,
+				'rendered' => get_the_title( $post->ID ),
+			);
+
+			remove_filter( 'protected_title_format', array( $this, 'protected_title_format' ) );
+		}
+
+		$has_password_filter = false;
+
+		if ( $this->can_access_password_content( $post, $request ) ) {
+			// Allow access to the post, permissions already checked before.
+			add_filter( 'post_password_required', '__return_false' );
+
+			$has_password_filter = true;
+		}
+
+		if ( ! empty( $schema['properties']['content'] ) ) {
+			$data['content'] = array(
+				'raw'       => $post->post_content,
+				/** This filter is documented in wp-includes/post-template.php */
+				'rendered'  => post_password_required( $post ) ? '' : apply_filters( 'the_content', $post->post_content ),
+				'protected' => (bool) $post->post_password,
+			);
+		}
+
+		if ( ! empty( $schema['properties']['excerpt'] ) ) {
+			/** This filter is documented in wp-includes/post-template.php */
+			$excerpt = apply_filters( 'the_excerpt', apply_filters( 'get_the_excerpt', $post->post_excerpt, $post ) );
+			$data['excerpt'] = array(
+				'raw'       => $post->post_excerpt,
+				'rendered'  => post_password_required( $post ) ? '' : $excerpt,
+				'protected' => (bool) $post->post_password,
+			);
+		}
+
+		if ( $has_password_filter ) {
+			// Reset filter.
+			remove_filter( 'post_password_required', '__return_false' );
+		}
+
+		if ( ! empty( $schema['properties']['author'] ) ) {
+			$data['author'] = (int) $post->post_author;
+		}
+
+		if ( ! empty( $schema['properties']['featured_media'] ) ) {
+			$data['featured_media'] = (int) get_post_thumbnail_id( $post->ID );
+		}
+
+		if ( ! empty( $schema['properties']['parent'] ) ) {
+			$data['parent'] = (int) $post->post_parent;
+		}
+
+		if ( ! empty( $schema['properties']['menu_order'] ) ) {
+			$data['menu_order'] = (int) $post->menu_order;
+		}
+
+		if ( ! empty( $schema['properties']['comment_status'] ) ) {
+			$data['comment_status'] = $post->comment_status;
+		}
+
+		if ( ! empty( $schema['properties']['ping_status'] ) ) {
+			$data['ping_status'] = $post->ping_status;
+		}
+
+		if ( ! empty( $schema['properties']['sticky'] ) ) {
+			$data['sticky'] = is_sticky( $post->ID );
+		}
+
+		if ( ! empty( $schema['properties']['template'] ) ) {
+			if ( $template = get_page_template_slug( $post->ID ) ) {
+				$data['template'] = $template;
+			} else {
+				$data['template'] = '';
+			}
+		}
+
+		if ( ! empty( $schema['properties']['format'] ) ) {
+			$data['format'] = get_post_format( $post->ID );
+
+			// Fill in blank post format.
+			if ( empty( $data['format'] ) ) {
+				$data['format'] = 'standard';
+			}
+		}
+
+		if ( ! empty( $schema['properties']['meta'] ) ) {
+			$data['meta'] = $this->meta->get_value( $post->ID, $request );
+		}
+
+		$taxonomies = wp_list_filter( get_object_taxonomies( $this->post_type, 'objects' ), array( 'show_in_rest' => true ) );
+
+		foreach ( $taxonomies as $taxonomy ) {
+			$base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
+
+			if ( ! empty( $schema['properties'][ $base ] ) ) {
+				$terms = get_the_terms( $post, $taxonomy->name );
+				$data[ $base ] = $terms ? array_values( wp_list_pluck( $terms, 'term_id' ) ) : array();
+			}
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		// Wrap the data in a response object.
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $post ) );
+
+		/**
+		 * Filters the post data for a response.
+		 *
+		 * The dynamic portion of the hook name, `$this->post_type`, refers to the post type slug.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response $response The response object.
+		 * @param WP_Post          $post     Post object.
+		 * @param WP_REST_Request  $request  Request object.
+		 */
+		return apply_filters( "rest_prepare_{$this->post_type}", $response, $post, $request );
+	}
+
+	/**
+	 * Overwrites the default protected title format.
+	 *
+	 * By default, WordPress will show password protected posts with a title of
+	 * "Protected: %s", as the REST API communicates the protected status of a post
+	 * in a machine readable format, we remove the "Protected: " prefix.
+	 *
+	 * @return string Protected title format.
+	 */
+	public function protected_title_format() {
+		return '%s';
+	}
+
+	/**
+	 * Prepares links for the request.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param WP_Post $post Post object.
+	 * @return array Links for the given post.
+	 */
+	protected function prepare_links( $post ) {
+		$base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
+
+		// Entity meta.
+		$links = array(
+			'self' => array(
+				'href'   => rest_url( trailingslashit( $base ) . $post->ID ),
+			),
+			'collection' => array(
+				'href'   => rest_url( $base ),
+			),
+			'about'      => array(
+				'href'   => rest_url( 'wp/v2/types/' . $this->post_type ),
+			),
+		);
+
+		if ( ( in_array( $post->post_type, array( 'post', 'page' ), true ) || post_type_supports( $post->post_type, 'author' ) )
+			&& ! empty( $post->post_author ) ) {
+			$links['author'] = array(
+				'href'       => rest_url( 'wp/v2/users/' . $post->post_author ),
+				'embeddable' => true,
+			);
+		}
+
+		if ( in_array( $post->post_type, array( 'post', 'page' ), true ) || post_type_supports( $post->post_type, 'comments' ) ) {
+			$replies_url = rest_url( 'wp/v2/comments' );
+			$replies_url = add_query_arg( 'post', $post->ID, $replies_url );
+
+			$links['replies'] = array(
+				'href'       => $replies_url,
+				'embeddable' => true,
+			);
+		}
+
+		if ( in_array( $post->post_type, array( 'post', 'page' ), true ) || post_type_supports( $post->post_type, 'revisions' ) ) {
+			$links['version-history'] = array(
+				'href' => rest_url( trailingslashit( $base ) . $post->ID . '/revisions' ),
+			);
+		}
+
+		$post_type_obj = get_post_type_object( $post->post_type );
+
+		if ( $post_type_obj->hierarchical && ! empty( $post->post_parent ) ) {
+			$links['up'] = array(
+				'href'       => rest_url( trailingslashit( $base ) . (int) $post->post_parent ),
+				'embeddable' => true,
+			);
+		}
+
+		// If we have a featured media, add that.
+		if ( $featured_media = get_post_thumbnail_id( $post->ID ) ) {
+			$image_url = rest_url( 'wp/v2/media/' . $featured_media );
+
+			$links['https://api.w.org/featuredmedia'] = array(
+				'href'       => $image_url,
+				'embeddable' => true,
+			);
+		}
+
+		if ( ! in_array( $post->post_type, array( 'attachment', 'nav_menu_item', 'revision' ), true ) ) {
+			$attachments_url = rest_url( 'wp/v2/media' );
+			$attachments_url = add_query_arg( 'parent', $post->ID, $attachments_url );
+
+			$links['https://api.w.org/attachment'] = array(
+				'href' => $attachments_url,
+			);
+		}
+
+		$taxonomies = get_object_taxonomies( $post->post_type );
+
+		if ( ! empty( $taxonomies ) ) {
+			$links['https://api.w.org/term'] = array();
+
+			foreach ( $taxonomies as $tax ) {
+				$taxonomy_obj = get_taxonomy( $tax );
+
+				// Skip taxonomies that are not public.
+				if ( empty( $taxonomy_obj->show_in_rest ) ) {
+					continue;
+				}
+
+				$tax_base = ! empty( $taxonomy_obj->rest_base ) ? $taxonomy_obj->rest_base : $tax;
+
+				$terms_url = add_query_arg(
+					'post',
+					$post->ID,
+					rest_url( 'wp/v2/' . $tax_base )
+				);
+
+				$links['https://api.w.org/term'][] = array(
+					'href'       => $terms_url,
+					'taxonomy'   => $tax,
+					'embeddable' => true,
+				);
+			}
+		}
+
+		return $links;
+	}
+
+	/**
+	 * Retrieves the post's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/schema#',
+			'title'      => $this->post_type,
+			'type'       => 'object',
+			// Base properties for every Post.
+			'properties' => array(
+				'date'            => array(
+					'description' => __( "The date the object was published, in the site's timezone." ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit', 'embed' ),
+				),
+				'date_gmt'        => array(
+					'description' => __( 'The date the object was published, as GMT.' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit' ),
+				),
+				'guid'            => array(
+					'description' => __( 'The globally unique identifier for the object.' ),
+					'type'        => 'object',
+					'context'     => array( 'view', 'edit' ),
+					'readonly'    => true,
+					'properties'  => array(
+						'raw'      => array(
+							'description' => __( 'GUID for the object, as it exists in the database.' ),
+							'type'        => 'string',
+							'context'     => array( 'edit' ),
+							'readonly'    => true,
+						),
+						'rendered' => array(
+							'description' => __( 'GUID for the object, transformed for display.' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit' ),
+							'readonly'    => true,
+						),
+					),
+				),
+				'id'              => array(
+					'description' => __( 'Unique identifier for the object.' ),
+					'type'        => 'integer',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'link'            => array(
+					'description' => __( 'URL to the object.' ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'modified'        => array(
+					'description' => __( "The date the object was last modified, in the site's timezone." ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit' ),
+					'readonly'    => true,
+				),
+				'modified_gmt'    => array(
+					'description' => __( 'The date the object was last modified, as GMT.' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit' ),
+					'readonly'    => true,
+				),
+				'slug'            => array(
+					'description' => __( 'An alphanumeric identifier for the object unique to its type.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'arg_options' => array(
+						'sanitize_callback' => array( $this, 'sanitize_slug' ),
+					),
+				),
+				'status'          => array(
+					'description' => __( 'A named status for the object.' ),
+					'type'        => 'string',
+					'enum'        => array_keys( get_post_stati( array( 'internal' => false ) ) ),
+					'context'     => array( 'edit' ),
+				),
+				'type'            => array(
+					'description' => __( 'Type of Post for the object.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'password'        => array(
+					'description' => __( 'A password to protect access to the content and excerpt.' ),
+					'type'        => 'string',
+					'context'     => array( 'edit' ),
+				),
+			),
+		);
+
+		$post_type_obj = get_post_type_object( $this->post_type );
+
+		if ( $post_type_obj->hierarchical ) {
+			$schema['properties']['parent'] = array(
+				'description' => __( 'The ID for the parent of the object.' ),
+				'type'        => 'integer',
+				'context'     => array( 'view', 'edit' ),
+			);
+		}
+
+		$post_type_attributes = array(
+			'title',
+			'editor',
+			'author',
+			'excerpt',
+			'thumbnail',
+			'comments',
+			'revisions',
+			'page-attributes',
+			'post-formats',
+			'custom-fields',
+		);
+		$fixed_schemas = array(
+			'post' => array(
+				'title',
+				'editor',
+				'author',
+				'excerpt',
+				'thumbnail',
+				'comments',
+				'revisions',
+				'post-formats',
+				'custom-fields',
+			),
+			'page' => array(
+				'title',
+				'editor',
+				'author',
+				'excerpt',
+				'thumbnail',
+				'comments',
+				'revisions',
+				'page-attributes',
+				'custom-fields',
+			),
+			'attachment' => array(
+				'title',
+				'author',
+				'comments',
+				'revisions',
+				'custom-fields',
+			),
+		);
+		foreach ( $post_type_attributes as $attribute ) {
+			if ( isset( $fixed_schemas[ $this->post_type ] ) && ! in_array( $attribute, $fixed_schemas[ $this->post_type ], true ) ) {
+				continue;
+			} elseif ( ! isset( $fixed_schemas[ $this->post_type ] ) && ! post_type_supports( $this->post_type, $attribute ) ) {
+				continue;
+			}
+
+			switch ( $attribute ) {
+
+				case 'title':
+					$schema['properties']['title'] = array(
+						'description' => __( 'The title for the object.' ),
+						'type'        => 'object',
+						'context'     => array( 'view', 'edit', 'embed' ),
+						'arg_options' => array(
+							'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database()
+						),
+						'properties'  => array(
+							'raw' => array(
+								'description' => __( 'Title for the object, as it exists in the database.' ),
+								'type'        => 'string',
+								'context'     => array( 'edit' ),
+							),
+							'rendered' => array(
+								'description' => __( 'HTML title for the object, transformed for display.' ),
+								'type'        => 'string',
+								'context'     => array( 'view', 'edit', 'embed' ),
+								'readonly'    => true,
+							),
+						),
+					);
+					break;
+
+				case 'editor':
+					$schema['properties']['content'] = array(
+						'description' => __( 'The content for the object.' ),
+						'type'        => 'object',
+						'context'     => array( 'view', 'edit' ),
+						'arg_options' => array(
+							'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database()
+						),
+						'properties'  => array(
+							'raw' => array(
+								'description' => __( 'Content for the object, as it exists in the database.' ),
+								'type'        => 'string',
+								'context'     => array( 'edit' ),
+							),
+							'rendered' => array(
+								'description' => __( 'HTML content for the object, transformed for display.' ),
+								'type'        => 'string',
+								'context'     => array( 'view', 'edit' ),
+								'readonly'    => true,
+							),
+							'protected'       => array(
+								'description' => __( 'Whether the content is protected with a password.' ),
+								'type'        => 'boolean',
+								'context'     => array( 'view', 'edit', 'embed' ),
+								'readonly'    => true,
+							),
+						),
+					);
+					break;
+
+				case 'author':
+					$schema['properties']['author'] = array(
+						'description' => __( 'The ID for the author of the object.' ),
+						'type'        => 'integer',
+						'context'     => array( 'view', 'edit', 'embed' ),
+					);
+					break;
+
+				case 'excerpt':
+					$schema['properties']['excerpt'] = array(
+						'description' => __( 'The excerpt for the object.' ),
+						'type'        => 'object',
+						'context'     => array( 'view', 'edit', 'embed' ),
+						'arg_options' => array(
+							'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database()
+						),
+						'properties'  => array(
+							'raw' => array(
+								'description' => __( 'Excerpt for the object, as it exists in the database.' ),
+								'type'        => 'string',
+								'context'     => array( 'edit' ),
+							),
+							'rendered' => array(
+								'description' => __( 'HTML excerpt for the object, transformed for display.' ),
+								'type'        => 'string',
+								'context'     => array( 'view', 'edit', 'embed' ),
+								'readonly'    => true,
+							),
+							'protected'       => array(
+								'description' => __( 'Whether the excerpt is protected with a password.' ),
+								'type'        => 'boolean',
+								'context'     => array( 'view', 'edit', 'embed' ),
+								'readonly'    => true,
+							),
+						),
+					);
+					break;
+
+				case 'thumbnail':
+					$schema['properties']['featured_media'] = array(
+						'description' => __( 'The ID of the featured media for the object.' ),
+						'type'        => 'integer',
+						'context'     => array( 'view', 'edit' ),
+					);
+					break;
+
+				case 'comments':
+					$schema['properties']['comment_status'] = array(
+						'description' => __( 'Whether or not comments are open on the object.' ),
+						'type'        => 'string',
+						'enum'        => array( 'open', 'closed' ),
+						'context'     => array( 'view', 'edit' ),
+					);
+					$schema['properties']['ping_status'] = array(
+						'description' => __( 'Whether or not the object can be pinged.' ),
+						'type'        => 'string',
+						'enum'        => array( 'open', 'closed' ),
+						'context'     => array( 'view', 'edit' ),
+					);
+					break;
+
+				case 'page-attributes':
+					$schema['properties']['menu_order'] = array(
+						'description' => __( 'The order of the object in relation to other object of its type.' ),
+						'type'        => 'integer',
+						'context'     => array( 'view', 'edit' ),
+					);
+					break;
+
+				case 'post-formats':
+					$supports_formats = get_theme_support( 'post-formats' );
+					$schema['properties']['format'] = array(
+						'description' => __( 'The format for the object.' ),
+						'type'        => 'string',
+						'enum'        => array_merge( array( 'standard' ), $supports_formats ? array_values( $supports_formats[0] ) : array() ),
+						'context'     => array( 'view', 'edit' ),
+					);
+					break;
+
+				case 'custom-fields':
+					$schema['properties']['meta'] = $this->meta->get_field_schema();
+					break;
+
+			}
+		}
+
+		if ( 'post' === $this->post_type ) {
+			$schema['properties']['sticky'] = array(
+				'description' => __( 'Whether or not the object should be treated as sticky.' ),
+				'type'        => 'boolean',
+				'context'     => array( 'view', 'edit' ),
+			);
+		}
+
+		$schema['properties']['template'] = array(
+			'description' => __( 'The theme file to use to display the object.' ),
+			'type'        => 'string',
+			'enum'        => array_merge( array_keys( wp_get_theme()->get_page_templates( null, $this->post_type ) ), array( '' ) ),
+			'context'     => array( 'view', 'edit' ),
+		);
+
+		$taxonomies = wp_list_filter( get_object_taxonomies( $this->post_type, 'objects' ), array( 'show_in_rest' => true ) );
+		foreach ( $taxonomies as $taxonomy ) {
+			$base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
+			$schema['properties'][ $base ] = array(
+				/* translators: %s: taxonomy name */
+				'description' => sprintf( __( 'The terms assigned to the object in the %s taxonomy.' ), $taxonomy->name ),
+				'type'        => 'array',
+				'items'       => array(
+					'type'    => 'integer',
+				),
+				'context'     => array( 'view', 'edit' ),
+			);
+		}
+
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Retrieves the query params for the posts collection.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Collection parameters.
+	 */
+	public function get_collection_params() {
+		$params = parent::get_collection_params();
+
+		$params['context']['default'] = 'view';
+
+		$params['after'] = array(
+			'description'        => __( 'Limit response to posts published after a given ISO8601 compliant date.' ),
+			'type'               => 'string',
+			'format'             => 'date-time',
+		);
+
+		if ( post_type_supports( $this->post_type, 'author' ) ) {
+			$params['author'] = array(
+				'description'         => __( 'Limit result set to posts assigned to specific authors.' ),
+				'type'                => 'array',
+				'items'               => array(
+					'type'            => 'integer',
+				),
+				'default'             => array(),
+			);
+			$params['author_exclude'] = array(
+				'description'         => __( 'Ensure result set excludes posts assigned to specific authors.' ),
+				'type'                => 'array',
+				'items'               => array(
+					'type'            => 'integer',
+				),
+				'default'             => array(),
+			);
+		}
+
+		$params['before'] = array(
+			'description'        => __( 'Limit response to posts published before a given ISO8601 compliant date.' ),
+			'type'               => 'string',
+			'format'             => 'date-time',
+		);
+
+		$params['exclude'] = array(
+			'description'        => __( 'Ensure result set excludes specific IDs.' ),
+			'type'               => 'array',
+			'items'              => array(
+				'type'           => 'integer',
+			),
+			'default'            => array(),
+		);
+
+		$params['include'] = array(
+			'description'        => __( 'Limit result set to specific IDs.' ),
+			'type'               => 'array',
+			'items'              => array(
+				'type'           => 'integer',
+			),
+			'default'            => array(),
+		);
+
+		if ( 'page' === $this->post_type || post_type_supports( $this->post_type, 'page-attributes' ) ) {
+			$params['menu_order'] = array(
+				'description'        => __( 'Limit result set to posts with a specific menu_order value.' ),
+				'type'               => 'integer',
+			);
+		}
+
+		$params['offset'] = array(
+			'description'        => __( 'Offset the result set by a specific number of items.' ),
+			'type'               => 'integer',
+		);
+
+		$params['order'] = array(
+			'description'        => __( 'Order sort attribute ascending or descending.' ),
+			'type'               => 'string',
+			'default'            => 'desc',
+			'enum'               => array( 'asc', 'desc' ),
+		);
+
+		$params['orderby'] = array(
+			'description'        => __( 'Sort collection by object attribute.' ),
+			'type'               => 'string',
+			'default'            => 'date',
+			'enum'               => array(
+				'date',
+				'relevance',
+				'id',
+				'include',
+				'title',
+				'slug',
+			),
+		);
+
+		if ( 'page' === $this->post_type || post_type_supports( $this->post_type, 'page-attributes' ) ) {
+			$params['orderby']['enum'][] = 'menu_order';
+		}
+
+		$post_type_obj = get_post_type_object( $this->post_type );
+
+		if ( $post_type_obj->hierarchical || 'attachment' === $this->post_type ) {
+			$params['parent'] = array(
+				'description'       => __( 'Limit result set to those of particular parent IDs.' ),
+				'type'              => 'array',
+				'items'             => array(
+					'type'          => 'integer',
+				),
+				'default'           => array(),
+			);
+			$params['parent_exclude'] = array(
+				'description'       => __( 'Limit result set to all items except those of a particular parent ID.' ),
+				'type'              => 'array',
+				'items'             => array(
+					'type'          => 'integer',
+				),
+				'default'           => array(),
+			);
+		}
+
+		$params['slug'] = array(
+			'description'       => __( 'Limit result set to posts with one or more specific slugs.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'type'          => 'string',
+			),
+			'sanitize_callback' => 'wp_parse_slug_list',
+		);
+
+		$params['status'] = array(
+			'default'           => 'publish',
+			'description'       => __( 'Limit result set to posts assigned one or more statuses.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'enum'          => array_merge( array_keys( get_post_stati() ), array( 'any' ) ),
+				'type'          => 'string',
+			),
+			'sanitize_callback' => array( $this, 'sanitize_post_statuses' ),
+		);
+
+		$taxonomies = wp_list_filter( get_object_taxonomies( $this->post_type, 'objects' ), array( 'show_in_rest' => true ) );
+
+		foreach ( $taxonomies as $taxonomy ) {
+			$base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
+
+			$params[ $base ] = array(
+				/* translators: %s: taxonomy name */
+				'description'       => sprintf( __( 'Limit result set to all items that have the specified term assigned in the %s taxonomy.' ), $base ),
+				'type'              => 'array',
+				'items'             => array(
+					'type'          => 'integer',
+				),
+				'default'           => array(),
+			);
+
+			$params[ $base . '_exclude' ] = array(
+				/* translators: %s: taxonomy name */
+				'description' => sprintf( __( 'Limit result set to all items except those that have the specified term assigned in the %s taxonomy.' ), $base ),
+				'type'        => 'array',
+				'items'       => array(
+					'type'    => 'integer',
+				),
+				'default'           => array(),
+			);
+		}
+
+		if ( 'post' === $this->post_type ) {
+			$params['sticky'] = array(
+				'description'       => __( 'Limit result set to items that are sticky.' ),
+				'type'              => 'boolean',
+			);
+		}
+
+		/**
+		 * Filter collection parameters for the posts controller.
+		 *
+		 * The dynamic part of the filter `$this->post_type` refers to the post
+		 * type slug for the controller.
+		 *
+		 * This filter registers the collection parameter, but does not map the
+		 * collection parameter to an internal WP_Query parameter. Use the
+		 * `rest_{$this->post_type}_query` filter to set WP_Query parameters.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param $params JSON Schema-formatted collection parameters.
+		 * @param WP_Post_Type $post_type_obj Post type object.
+		 */
+		return apply_filters( "rest_{$this->post_type}_collection_params", $params, $post_type_obj );
+	}
+
+	/**
+	 * Sanitizes and validates the list of post statuses, including whether the
+	 * user can query private statuses.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param  string|array    $statuses  One or more post statuses.
+	 * @param  WP_REST_Request $request   Full details about the request.
+	 * @param  string          $parameter Additional parameter to pass to validation.
+	 * @return array|WP_Error A list of valid statuses, otherwise WP_Error object.
+	 */
+	public function sanitize_post_statuses( $statuses, $request, $parameter ) {
+		$statuses = wp_parse_slug_list( $statuses );
+
+		// The default status is different in WP_REST_Attachments_Controller
+		$attributes = $request->get_attributes();
+		$default_status = $attributes['args']['status']['default'];
+
+		foreach ( $statuses as $status ) {
+			if ( $status === $default_status ) {
+				continue;
+			}
+
+			$post_type_obj = get_post_type_object( $this->post_type );
+
+			if ( current_user_can( $post_type_obj->cap->edit_posts ) ) {
+				$result = rest_validate_request_arg( $status, $request, $parameter );
+				if ( is_wp_error( $result ) ) {
+					return $result;
+				}
+			} else {
+				return new WP_Error( 'rest_forbidden_status', __( 'Status is forbidden.' ), array( 'status' => rest_authorization_required_code() ) );
+			}
+		}
+
+		return $statuses;
+	}
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php
new file mode 100644
index 000000000..39ef8fe81
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php
@@ -0,0 +1,509 @@
+<?php
+/**
+ * REST API: WP_REST_Revisions_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to access revisions via the REST API.
+ *
+ * @since 4.7.0
+ *0
+ * @see WP_REST_Controller
+ */
+class WP_REST_Revisions_Controller extends WP_REST_Controller {
+
+	/**
+	 * Parent post type.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var string
+	 */
+	private $parent_post_type;
+
+	/**
+	 * Parent controller.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var WP_REST_Controller
+	 */
+	private $parent_controller;
+
+	/**
+	 * The base of the parent controller's route.
+	 *
+	 * @since 4.7.0
+	 * @access private
+	 * @var string
+	 */
+	private $parent_base;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string $parent_post_type Post type of the parent.
+	 */
+	public function __construct( $parent_post_type ) {
+		$this->parent_post_type = $parent_post_type;
+		$this->parent_controller = new WP_REST_Posts_Controller( $parent_post_type );
+		$this->namespace = 'wp/v2';
+		$this->rest_base = 'revisions';
+		$post_type_object = get_post_type_object( $parent_post_type );
+		$this->parent_base = ! empty( $post_type_object->rest_base ) ? $post_type_object->rest_base : $post_type_object->name;
+	}
+
+	/**
+	 * Registers routes for revisions based on post types supporting revisions.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->parent_base . '/(?P<parent>[\d]+)/' . $this->rest_base, array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_items' ),
+				'permission_callback' => array( $this, 'get_items_permissions_check' ),
+				'args'                => $this->get_collection_params(),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->parent_base . '/(?P<parent>[\d]+)/' . $this->rest_base . '/(?P<id>[\d]+)', array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_item' ),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				'args'                => array(
+					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+				),
+			),
+			array(
+				'methods'             => WP_REST_Server::DELETABLE,
+				'callback'            => array( $this, 'delete_item' ),
+				'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				'args'                => array(
+					'force' => array(
+						'type'        => 'boolean',
+						'default'     => false,
+						'description' => __( 'Required to be true, as revisions do not support trashing.' ),
+					),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		));
+
+	}
+
+	/**
+	 * Checks if a given request has access to get revisions.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
+	 */
+	public function get_items_permissions_check( $request ) {
+
+		$parent = get_post( $request['parent'] );
+		if ( ! $parent ) {
+			return true;
+		}
+		$parent_post_type_obj = get_post_type_object( $parent->post_type );
+		if ( ! current_user_can( $parent_post_type_obj->cap->edit_post, $parent->ID ) ) {
+			return new WP_Error( 'rest_cannot_read', __( 'Sorry, you are not allowed to view revisions of this post.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Gets a collection of revisions.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_items( $request ) {
+		$parent = get_post( $request['parent'] );
+		if ( ! $request['parent'] || ! $parent || $this->parent_post_type !== $parent->post_type ) {
+			return new WP_Error( 'rest_post_invalid_parent', __( 'Invalid post parent ID.' ), array( 'status' => 404 ) );
+		}
+
+		$revisions = wp_get_post_revisions( $request['parent'] );
+
+		$response = array();
+		foreach ( $revisions as $revision ) {
+			$data = $this->prepare_item_for_response( $revision, $request );
+			$response[] = $this->prepare_response_for_collection( $data );
+		}
+		return rest_ensure_response( $response );
+	}
+
+	/**
+	 * Checks if a given request has access to get a specific revision.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return bool|WP_Error True if the request has read access for the item, WP_Error object otherwise.
+	 */
+	public function get_item_permissions_check( $request ) {
+		return $this->get_items_permissions_check( $request );
+	}
+
+	/**
+	 * Retrieves one revision from the collection.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full data about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+		$parent = get_post( $request['parent'] );
+		if ( ! $request['parent'] || ! $parent || $this->parent_post_type !== $parent->post_type ) {
+			return new WP_Error( 'rest_post_invalid_parent', __( 'Invalid post parent ID.' ), array( 'status' => 404 ) );
+		}
+
+		$revision = get_post( $request['id'] );
+		if ( ! $revision || 'revision' !== $revision->post_type ) {
+			return new WP_Error( 'rest_post_invalid_id', __( 'Invalid revision ID.' ), array( 'status' => 404 ) );
+		}
+
+		$response = $this->prepare_item_for_response( $revision, $request );
+		return rest_ensure_response( $response );
+	}
+
+	/**
+	 * Checks if a given request has access to delete a revision.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True if the request has access to delete the item, WP_Error object otherwise.
+	 */
+	public function delete_item_permissions_check( $request ) {
+
+		$response = $this->get_items_permissions_check( $request );
+		if ( ! $response || is_wp_error( $response ) ) {
+			return $response;
+		}
+
+		$post = get_post( $request['id'] );
+		if ( ! $post ) {
+			return new WP_Error( 'rest_post_invalid_id', __( 'Invalid revision ID.' ), array( 'status' => 404 ) );
+		}
+		$post_type = get_post_type_object( 'revision' );
+		return current_user_can( $post_type->cap->delete_post, $post->ID );
+	}
+
+	/**
+	 * Deletes a single revision.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True on success, or WP_Error object on failure.
+	 */
+	public function delete_item( $request ) {
+		$force = isset( $request['force'] ) ? (bool) $request['force'] : false;
+
+		// We don't support trashing for revisions.
+		if ( ! $force ) {
+			return new WP_Error( 'rest_trash_not_supported', __( 'Revisions do not support trashing. Set force=true to delete.' ), array( 'status' => 501 ) );
+		}
+
+		$revision = get_post( $request['id'] );
+		$previous = $this->prepare_item_for_response( $revision, $request );
+
+		$result = wp_delete_post( $request['id'], true );
+
+		/**
+		 * Fires after a revision is deleted via the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param (mixed) $result The revision object (if it was deleted or moved to the trash successfully)
+		 *                        or false (failure). If the revision was moved to to the trash, $result represents
+		 *                        its new state; if it was deleted, $result represents its state before deletion.
+		 * @param WP_REST_Request $request The request sent to the API.
+		 */
+		do_action( 'rest_delete_revision', $result, $request );
+
+		if ( ! $result ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'The post cannot be deleted.' ), array( 'status' => 500 ) );
+		}
+
+		$response = new WP_REST_Response();
+		$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+		return $response;
+	}
+
+	/**
+	 * Prepares the revision for the REST response.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_Post         $post    Post revision object.
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_REST_Response Response object.
+	 */
+	public function prepare_item_for_response( $post, $request ) {
+
+		$schema = $this->get_item_schema();
+
+		$data = array();
+
+		if ( ! empty( $schema['properties']['author'] ) ) {
+			$data['author'] = $post->post_author;
+		}
+
+		if ( ! empty( $schema['properties']['date'] ) ) {
+			$data['date'] = $this->prepare_date_response( $post->post_date_gmt, $post->post_date );
+		}
+
+		if ( ! empty( $schema['properties']['date_gmt'] ) ) {
+			$data['date_gmt'] = $this->prepare_date_response( $post->post_date_gmt );
+		}
+
+		if ( ! empty( $schema['properties']['id'] ) ) {
+			$data['id'] = $post->ID;
+		}
+
+		if ( ! empty( $schema['properties']['modified'] ) ) {
+			$data['modified'] = $this->prepare_date_response( $post->post_modified_gmt, $post->post_modified );
+		}
+
+		if ( ! empty( $schema['properties']['modified_gmt'] ) ) {
+			$data['modified_gmt'] = $this->prepare_date_response( $post->post_modified_gmt );
+		}
+
+		if ( ! empty( $schema['properties']['parent'] ) ) {
+			$data['parent'] = (int) $post->post_parent;
+		}
+
+		if ( ! empty( $schema['properties']['slug'] ) ) {
+			$data['slug'] = $post->post_name;
+		}
+
+		if ( ! empty( $schema['properties']['guid'] ) ) {
+			$data['guid'] = array(
+				/** This filter is documented in wp-includes/post-template.php */
+				'rendered' => apply_filters( 'get_the_guid', $post->guid ),
+				'raw'      => $post->guid,
+			);
+		}
+
+		if ( ! empty( $schema['properties']['title'] ) ) {
+			$data['title'] = array(
+				'raw'      => $post->post_title,
+				'rendered' => get_the_title( $post->ID ),
+			);
+		}
+
+		if ( ! empty( $schema['properties']['content'] ) ) {
+
+			$data['content'] = array(
+				'raw'      => $post->post_content,
+				/** This filter is documented in wp-includes/post-template.php */
+				'rendered' => apply_filters( 'the_content', $post->post_content ),
+			);
+		}
+
+		if ( ! empty( $schema['properties']['excerpt'] ) ) {
+			$data['excerpt'] = array(
+				'raw'      => $post->post_excerpt,
+				'rendered' => $this->prepare_excerpt_response( $post->post_excerpt, $post ),
+			);
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data = $this->add_additional_fields_to_object( $data, $request );
+		$data = $this->filter_response_by_context( $data, $context );
+		$response = rest_ensure_response( $data );
+
+		if ( ! empty( $data['parent'] ) ) {
+			$response->add_link( 'parent', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->parent_base, $data['parent'] ) ) );
+		}
+
+		/**
+		 * Filters a revision returned from the API.
+		 *
+		 * Allows modification of the revision right before it is returned.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response $response The response object.
+		 * @param WP_Post          $post     The original revision object.
+		 * @param WP_REST_Request  $request  Request used to generate the response.
+		 */
+		return apply_filters( 'rest_prepare_revision', $response, $post, $request );
+	}
+
+	/**
+	 * Checks the post_date_gmt or modified_gmt and prepare any post or
+	 * modified date for single post output.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param string      $date_gmt GMT publication time.
+	 * @param string|null $date     Optional. Local publication time. Default null.
+	 * @return string|null ISO8601/RFC3339 formatted datetime, otherwise null.
+	 */
+	protected function prepare_date_response( $date_gmt, $date = null ) {
+		if ( '0000-00-00 00:00:00' === $date_gmt ) {
+			return null;
+		}
+
+		if ( isset( $date ) ) {
+			return mysql_to_rfc3339( $date );
+		}
+
+		return mysql_to_rfc3339( $date_gmt );
+	}
+
+	/**
+	 * Retrieves the revision's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/schema#',
+			'title'      => "{$this->parent_post_type}-revision",
+			'type'       => 'object',
+			// Base properties for every Revision.
+			'properties' => array(
+				'author'          => array(
+					'description' => __( 'The ID for the author of the object.' ),
+					'type'        => 'integer',
+					'context'     => array( 'view', 'edit', 'embed' ),
+				),
+				'date'            => array(
+					'description' => __( "The date the object was published, in the site's timezone." ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit', 'embed' ),
+				),
+				'date_gmt'        => array(
+					'description' => __( 'The date the object was published, as GMT.' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit' ),
+				),
+				'guid'            => array(
+					'description' => __( 'GUID for the object, as it exists in the database.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit' ),
+				),
+				'id'              => array(
+					'description' => __( 'Unique identifier for the object.' ),
+					'type'        => 'integer',
+					'context'     => array( 'view', 'edit', 'embed' ),
+				),
+				'modified'        => array(
+					'description' => __( "The date the object was last modified, in the site's timezone." ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit' ),
+				),
+				'modified_gmt'    => array(
+					'description' => __( 'The date the object was last modified, as GMT.' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'view', 'edit' ),
+				),
+				'parent'          => array(
+					'description' => __( 'The ID for the parent of the object.' ),
+					'type'        => 'integer',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					),
+				'slug'            => array(
+					'description' => __( 'An alphanumeric identifier for the object unique to its type.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+				),
+			),
+		);
+
+		$parent_schema = $this->parent_controller->get_item_schema();
+
+		if ( ! empty( $parent_schema['properties']['title'] ) ) {
+			$schema['properties']['title'] = $parent_schema['properties']['title'];
+		}
+
+		if ( ! empty( $parent_schema['properties']['content'] ) ) {
+			$schema['properties']['content'] = $parent_schema['properties']['content'];
+		}
+
+		if ( ! empty( $parent_schema['properties']['excerpt'] ) ) {
+			$schema['properties']['excerpt'] = $parent_schema['properties']['excerpt'];
+		}
+
+		if ( ! empty( $parent_schema['properties']['guid'] ) ) {
+			$schema['properties']['guid'] = $parent_schema['properties']['guid'];
+		}
+
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Retrieves the query params for collections.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Collection parameters.
+	 */
+	public function get_collection_params() {
+		return array(
+			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+		);
+	}
+
+	/**
+	 * Checks the post excerpt and prepare it for single post output.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param string  $excerpt The post excerpt.
+	 * @param WP_Post $post    Post revision object.
+	 * @return string Prepared excerpt or empty string.
+	 */
+	protected function prepare_excerpt_response( $excerpt, $post ) {
+
+		/** This filter is documented in wp-includes/post-template.php */
+		$excerpt = apply_filters( 'the_excerpt', $excerpt, $post );
+
+		if ( empty( $excerpt ) ) {
+			return '';
+		}
+
+		return $excerpt;
+	}
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-settings-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-settings-controller.php
new file mode 100644
index 000000000..3bf74317a
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-settings-controller.php
@@ -0,0 +1,319 @@
+<?php
+/**
+ * REST API: WP_REST_Settings_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to manage a site's settings via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Settings_Controller extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function __construct() {
+		$this->namespace = 'wp/v2';
+		$this->rest_base = 'settings';
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_item' ),
+				'args'                => array(),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+			),
+			array(
+				'methods'             => WP_REST_Server::EDITABLE,
+				'callback'            => array( $this, 'update_item' ),
+				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+	}
+
+	/**
+	 * Checks if a given request has access to read and manage settings.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool True if the request has read access for the item, otherwise false.
+	 */
+	public function get_item_permissions_check( $request ) {
+		return current_user_can( 'manage_options' );
+	}
+
+	/**
+	 * Retrieves the settings.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return array|WP_Error Array on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+		$options  = $this->get_registered_options();
+		$response = array();
+
+		foreach ( $options as $name => $args ) {
+			/**
+			 * Filters the value of a setting recognized by the REST API.
+			 *
+			 * Allow hijacking the setting value and overriding the built-in behavior by returning a
+			 * non-null value.  The returned value will be presented as the setting value instead.
+			 *
+			 * @since 4.7.0
+			 *
+			 * @param mixed  $result Value to use for the requested setting. Can be a scalar
+			 *                       matching the registered schema for the setting, or null to
+			 *                       follow the default get_option() behavior.
+			 * @param string $name   Setting name (as shown in REST API responses).
+			 * @param array  $args   Arguments passed to register_setting() for this setting.
+			 */
+			$response[ $name ] = apply_filters( 'rest_pre_get_setting', null, $name, $args );
+
+			if ( is_null( $response[ $name ] ) ) {
+				// Default to a null value as "null" in the response means "not set".
+				$response[ $name ] = get_option( $args['option_name'], $args['schema']['default'] );
+			}
+
+			/*
+			 * Because get_option() is lossy, we have to
+			 * cast values to the type they are registered with.
+			 */
+			$response[ $name ] = $this->prepare_value( $response[ $name ], $args['schema'] );
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Prepares a value for output based off a schema array.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param mixed $value  Value to prepare.
+	 * @param array $schema Schema to match.
+	 * @return mixed The prepared value.
+	 */
+	protected function prepare_value( $value, $schema ) {
+		// If the value is not a scalar, it's not possible to cast it to anything.
+		if ( ! is_scalar( $value ) ) {
+			return null;
+		}
+
+		switch ( $schema['type'] ) {
+			case 'string':
+				return (string) $value;
+			case 'integer':
+				return (int) $value;
+			case 'number':
+				return (float) $value;
+			case 'boolean':
+				return (bool) $value;
+			default:
+				return null;
+		}
+	}
+
+	/**
+	 * Updates settings for the settings object.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return array|WP_Error Array on success, or error object on failure.
+	 */
+	public function update_item( $request ) {
+		$options = $this->get_registered_options();
+		$params  = $request->get_params();
+
+		foreach ( $options as $name => $args ) {
+			if ( ! array_key_exists( $name, $params ) ) {
+				continue;
+			}
+
+			/**
+			 * Filters whether to preempt a setting value update.
+			 *
+			 * Allows hijacking the setting update logic and overriding the built-in behavior by
+			 * returning true.
+			 *
+			 * @since 4.7.0
+			 *
+			 * @param bool   $result Whether to override the default behavior for updating the
+			 *                       value of a setting.
+			 * @param string $name   Setting name (as shown in REST API responses).
+			 * @param mixed  $value  Updated setting value.
+			 * @param array  $args   Arguments passed to register_setting() for this setting.
+			 */
+			$updated = apply_filters( 'rest_pre_update_setting', false, $name, $request[ $name ], $args );
+
+			if ( $updated ) {
+				continue;
+			}
+
+			/*
+			 * A null value for an option would have the same effect as
+			 * deleting the option from the database, and relying on the
+			 * default value.
+			 */
+			if ( is_null( $request[ $name ] ) ) {
+				/*
+				 * A null value is returned in the response for any option
+				 * that has a non-scalar value.
+				 *
+				 * To protect clients from accidentally including the null
+				 * values from a response object in a request, we do not allow
+				 * options with non-scalar values to be updated to null.
+				 * Without this added protection a client could mistakenly
+				 * delete all options that have non-scalar values from the
+				 * database.
+				 */
+				if ( ! is_scalar( get_option( $args['option_name'], false ) ) ) {
+					return new WP_Error(
+						'rest_invalid_stored_value', sprintf( __( 'The %s property has an invalid stored value, and cannot be updated to null.' ), $name ), array( 'status' => 500 )
+					);
+				}
+
+				delete_option( $args['option_name'] );
+			} else {
+				update_option( $args['option_name'], $request[ $name ] );
+			}
+		}
+
+		return $this->get_item( $request );
+	}
+
+	/**
+	 * Retrieves all of the registered options for the Settings API.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return array Array of registered options.
+	 */
+	protected function get_registered_options() {
+		$rest_options = array();
+
+		foreach ( get_registered_settings() as $name => $args ) {
+			if ( empty( $args['show_in_rest'] ) ) {
+				continue;
+			}
+
+			$rest_args = array();
+
+			if ( is_array( $args['show_in_rest'] ) ) {
+				$rest_args = $args['show_in_rest'];
+			}
+
+			$defaults = array(
+				'name'   => ! empty( $rest_args['name'] ) ? $rest_args['name'] : $name,
+				'schema' => array(),
+			);
+
+			$rest_args = array_merge( $defaults, $rest_args );
+
+			$default_schema = array(
+				'type'        => empty( $args['type'] ) ? null : $args['type'],
+				'description' => empty( $args['description'] ) ? '' : $args['description'],
+				'default'     => isset( $args['default'] ) ? $args['default'] : null,
+			);
+
+			$rest_args['schema'] = array_merge( $default_schema, $rest_args['schema'] );
+			$rest_args['option_name'] = $name;
+
+			// Skip over settings that don't have a defined type in the schema.
+			if ( empty( $rest_args['schema']['type'] ) ) {
+				continue;
+			}
+
+			/*
+			 * Whitelist the supported types for settings, as we don't want invalid types
+			 * to be updated with arbitrary values that we can't do decent sanitizing for.
+			 */
+			if ( ! in_array( $rest_args['schema']['type'], array( 'number', 'integer', 'string', 'boolean' ), true ) ) {
+				continue;
+			}
+
+			$rest_options[ $rest_args['name'] ] = $rest_args;
+		}
+
+		return $rest_options;
+	}
+
+	/**
+	 * Retrieves the site setting schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		$options = $this->get_registered_options();
+
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/schema#',
+			'title'      => 'settings',
+			'type'       => 'object',
+			'properties' => array(),
+		);
+
+		foreach ( $options as $option_name => $option ) {
+			$schema['properties'][ $option_name ] = $option['schema'];
+			$schema['properties'][ $option_name ]['arg_options'] = array(
+				'sanitize_callback' => array( $this, 'sanitize_callback' ),
+			);
+		}
+
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Custom sanitize callback used for all options to allow the use of 'null'.
+	 *
+	 * By default, the schema of settings will throw an error if a value is set to
+	 * `null` as it's not a valid value for something like "type => string". We
+	 * provide a wrapper sanitizer to whitelist the use of `null`.
+	 *
+	 * @param  mixed           $value   The value for the setting.
+	 * @param  WP_REST_Request $request The request object.
+	 * @param  string          $param   The parameter name.
+	 * @return mixed|WP_Error
+	 */
+	public function sanitize_callback( $value, $request, $param ) {
+		if ( is_null( $value ) ) {
+			return $value;
+		}
+		return rest_parse_request_arg( $value, $request, $param );
+	}
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php
new file mode 100644
index 000000000..0fe91ee43
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php
@@ -0,0 +1,317 @@
+<?php
+/**
+ * REST API: WP_REST_Taxonomies_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to manage taxonomies via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Taxonomies_Controller extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function __construct() {
+		$this->namespace = 'wp/v2';
+		$this->rest_base = 'taxonomies';
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
+			array(
+				'methods'         => WP_REST_Server::READABLE,
+				'callback'        => array( $this, 'get_items' ),
+				'permission_callback' => array( $this, 'get_items_permissions_check' ),
+				'args'            => $this->get_collection_params(),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<taxonomy>[\w-]+)', array(
+			array(
+				'methods'         => WP_REST_Server::READABLE,
+				'callback'        => array( $this, 'get_item' ),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				'args'            => array(
+					'context'     => $this->get_context_param( array( 'default' => 'view' ) ),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+	}
+
+	/**
+	 * Checks whether a given request has permission to read taxonomies.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
+	 */
+	public function get_items_permissions_check( $request ) {
+		if ( 'edit' === $request['context'] ) {
+			if ( ! empty( $request['type'] ) ) {
+				$taxonomies = get_object_taxonomies( $request['type'], 'objects' );
+			} else {
+				$taxonomies = get_taxonomies( '', 'objects' );
+			}
+			foreach ( $taxonomies as $taxonomy ) {
+				if ( ! empty( $taxonomy->show_in_rest ) && current_user_can( $taxonomy->cap->manage_terms ) ) {
+					return true;
+				}
+			}
+			return new WP_Error( 'rest_cannot_view', __( 'Sorry, you are not allowed to manage terms in this taxonomy.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+		return true;
+	}
+
+	/**
+	 * Retrieves all public taxonomies.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_items( $request ) {
+
+		// Retrieve the list of registered collection query parameters.
+		$registered = $this->get_collection_params();
+
+		if ( isset( $registered['type'] ) && ! empty( $request['type'] ) ) {
+			$taxonomies = get_object_taxonomies( $request['type'], 'objects' );
+		} else {
+			$taxonomies = get_taxonomies( '', 'objects' );
+		}
+		$data = array();
+		foreach ( $taxonomies as $tax_type => $value ) {
+			if ( empty( $value->show_in_rest ) || ( 'edit' === $request['context'] && ! current_user_can( $value->cap->manage_terms ) ) ) {
+				continue;
+			}
+			$tax = $this->prepare_item_for_response( $value, $request );
+			$tax = $this->prepare_response_for_collection( $tax );
+			$data[ $tax_type ] = $tax;
+		}
+
+		if ( empty( $data ) ) {
+			// Response should still be returned as a JSON object when it is empty.
+			$data = (object) $data;
+		}
+
+		return rest_ensure_response( $data );
+	}
+
+	/**
+	 * Checks if a given request has access to a taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has read access for the item, otherwise false or WP_Error object.
+	 */
+	public function get_item_permissions_check( $request ) {
+
+		$tax_obj = get_taxonomy( $request['taxonomy'] );
+
+		if ( $tax_obj ) {
+			if ( empty( $tax_obj->show_in_rest ) ) {
+				return false;
+			}
+			if ( 'edit' === $request['context'] && ! current_user_can( $tax_obj->cap->manage_terms ) ) {
+				return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to manage terms in this taxonomy.' ), array( 'status' => rest_authorization_required_code() ) );
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves a specific taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+		$tax_obj = get_taxonomy( $request['taxonomy'] );
+		if ( empty( $tax_obj ) ) {
+			return new WP_Error( 'rest_taxonomy_invalid', __( 'Invalid taxonomy.' ), array( 'status' => 404 ) );
+		}
+		$data = $this->prepare_item_for_response( $tax_obj, $request );
+		return rest_ensure_response( $data );
+	}
+
+	/**
+	 * Prepares a taxonomy object for serialization.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param stdClass        $taxonomy Taxonomy data.
+	 * @param WP_REST_Request $request  Full details about the request.
+	 * @return WP_REST_Response Response object.
+	 */
+	public function prepare_item_for_response( $taxonomy, $request ) {
+		$base = ! empty( $taxonomy->rest_base ) ? $taxonomy->rest_base : $taxonomy->name;
+		$data = array(
+			'name'         => $taxonomy->label,
+			'slug'         => $taxonomy->name,
+			'capabilities' => $taxonomy->cap,
+			'description'  => $taxonomy->description,
+			'labels'       => $taxonomy->labels,
+			'types'        => $taxonomy->object_type,
+			'show_cloud'   => $taxonomy->show_tagcloud,
+			'hierarchical' => $taxonomy->hierarchical,
+			'rest_base'    => $base,
+		);
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data = $this->add_additional_fields_to_object( $data, $request );
+		$data = $this->filter_response_by_context( $data, $context );
+
+		// Wrap the data in a response object.
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( array(
+			'collection'                => array(
+				'href'                  => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
+			),
+			'https://api.w.org/items'   => array(
+				'href'                  => rest_url( sprintf( 'wp/v2/%s', $base ) ),
+			),
+		) );
+
+		/**
+		 * Filters a taxonomy returned from the REST API.
+		 *
+		 * Allows modification of the taxonomy data right before it is returned.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response $response The response object.
+		 * @param object           $item     The original taxonomy object.
+		 * @param WP_REST_Request  $request  Request used to generate the response.
+		 */
+		return apply_filters( 'rest_prepare_taxonomy', $response, $taxonomy, $request );
+	}
+
+	/**
+	 * Retrieves the taxonomy's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'              => 'http://json-schema.org/schema#',
+			'title'                => 'taxonomy',
+			'type'                 => 'object',
+			'properties'           => array(
+				'capabilities'     => array(
+					'description'  => __( 'All capabilities used by the taxonomy.' ),
+					'type'         => 'object',
+					'context'      => array( 'edit' ),
+					'readonly'     => true,
+				),
+				'description'      => array(
+					'description'  => __( 'A human-readable description of the taxonomy.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'hierarchical'     => array(
+					'description'  => __( 'Whether or not the taxonomy should have children.' ),
+					'type'         => 'boolean',
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'labels'           => array(
+					'description'  => __( 'Human-readable labels for the taxonomy for various contexts.' ),
+					'type'         => 'object',
+					'context'      => array( 'edit' ),
+					'readonly'     => true,
+				),
+				'name'             => array(
+					'description'  => __( 'The title for the taxonomy.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+				'slug'             => array(
+					'description'  => __( 'An alphanumeric identifier for the taxonomy.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+				'show_cloud'       => array(
+					'description'  => __( 'Whether or not the term cloud should be displayed.' ),
+					'type'         => 'boolean',
+					'context'      => array( 'edit' ),
+					'readonly'     => true,
+				),
+				'types'            => array(
+					'description'  => __( 'Types associated with the taxonomy.' ),
+					'type'         => 'array',
+					'items'        => array(
+						'type' => 'string',
+					),
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'rest_base'            => array(
+					'description'  => __( 'REST base route for the taxonomy.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit', 'embed' ),
+					'readonly'     => true,
+				),
+			),
+		);
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Retrieves the query params for collections.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Collection parameters.
+	 */
+	public function get_collection_params() {
+		$new_params = array();
+		$new_params['context'] = $this->get_context_param( array( 'default' => 'view' ) );
+		$new_params['type'] = array(
+			'description'  => __( 'Limit results to taxonomies associated with a specific post type.' ),
+			'type'         => 'string',
+		);
+		return $new_params;
+	}
+
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php
new file mode 100644
index 000000000..6ca86ca15
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php
@@ -0,0 +1,996 @@
+<?php
+/**
+ * REST API: WP_REST_Terms_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to managed terms associated with a taxonomy via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Terms_Controller extends WP_REST_Controller {
+
+	/**
+	 * Taxonomy key.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $taxonomy;
+
+	/**
+	 * Instance of a term meta fields object.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var WP_REST_Term_Meta_Fields
+	 */
+	protected $meta;
+
+	/**
+	 * Column to have the terms be sorted by.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $sort_column;
+
+	/**
+	 * Number of terms that were found.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var int
+	 */
+	protected $total_terms;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string $taxonomy Taxonomy key.
+	 */
+	public function __construct( $taxonomy ) {
+		$this->taxonomy = $taxonomy;
+		$this->namespace = 'wp/v2';
+		$tax_obj = get_taxonomy( $taxonomy );
+		$this->rest_base = ! empty( $tax_obj->rest_base ) ? $tax_obj->rest_base : $tax_obj->name;
+
+		$this->meta = new WP_REST_Term_Meta_Fields( $taxonomy );
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_items' ),
+				'permission_callback' => array( $this, 'get_items_permissions_check' ),
+				'args'                => $this->get_collection_params(),
+			),
+			array(
+				'methods'             => WP_REST_Server::CREATABLE,
+				'callback'            => array( $this, 'create_item' ),
+				'permission_callback' => array( $this, 'create_item_permissions_check' ),
+				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<id>[\d]+)', array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_item' ),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				'args'                => array(
+					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+				),
+			),
+			array(
+				'methods'             => WP_REST_Server::EDITABLE,
+				'callback'            => array( $this, 'update_item' ),
+				'permission_callback' => array( $this, 'update_item_permissions_check' ),
+				'args'                 => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+			),
+			array(
+				'methods'             => WP_REST_Server::DELETABLE,
+				'callback'            => array( $this, 'delete_item' ),
+				'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				'args'                => array(
+					'force' => array(
+						'type'        => 'boolean',
+						'default'     => false,
+						'description' => __( 'Required to be true, as terms do not support trashing.' ),
+					),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+	}
+
+	/**
+	 * Checks if a request has access to read terms in the specified taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True if the request has read access, otherwise false or WP_Error object.
+	 */
+	public function get_items_permissions_check( $request ) {
+		$tax_obj = get_taxonomy( $this->taxonomy );
+		if ( ! $tax_obj || ! $this->check_is_taxonomy_allowed( $this->taxonomy ) ) {
+			return false;
+		}
+		if ( 'edit' === $request['context'] && ! current_user_can( $tax_obj->cap->edit_terms ) ) {
+			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit terms in this taxonomy.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+		return true;
+	}
+
+	/**
+	 * Retrieves terms associated with a taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_items( $request ) {
+
+		// Retrieve the list of registered collection query parameters.
+		$registered = $this->get_collection_params();
+
+		/*
+		 * This array defines mappings between public API query parameters whose
+		 * values are accepted as-passed, and their internal WP_Query parameter
+		 * name equivalents (some are the same). Only values which are also
+		 * present in $registered will be set.
+		 */
+		$parameter_mappings = array(
+			'exclude'    => 'exclude',
+			'include'    => 'include',
+			'order'      => 'order',
+			'orderby'    => 'orderby',
+			'post'       => 'post',
+			'hide_empty' => 'hide_empty',
+			'per_page'   => 'number',
+			'search'     => 'search',
+			'slug'       => 'slug',
+		);
+
+		$prepared_args = array();
+
+		/*
+		 * For each known parameter which is both registered and present in the request,
+		 * set the parameter's value on the query $prepared_args.
+		 */
+		foreach ( $parameter_mappings as $api_param => $wp_param ) {
+			if ( isset( $registered[ $api_param ], $request[ $api_param ] ) ) {
+				$prepared_args[ $wp_param ] = $request[ $api_param ];
+			}
+		}
+
+		if ( isset( $registered['offset'] ) && ! empty( $request['offset'] ) ) {
+			$prepared_args['offset'] = $request['offset'];
+		} else {
+			$prepared_args['offset'] = ( $request['page'] - 1 ) * $prepared_args['number'];
+		}
+
+		$taxonomy_obj = get_taxonomy( $this->taxonomy );
+
+		if ( $taxonomy_obj->hierarchical && isset( $registered['parent'], $request['parent'] ) ) {
+			if ( 0 === $request['parent'] ) {
+				// Only query top-level terms.
+				$prepared_args['parent'] = 0;
+			} else {
+				if ( $request['parent'] ) {
+					$prepared_args['parent'] = $request['parent'];
+				}
+			}
+		}
+
+		/**
+		 * Filters the query arguments before passing them to get_terms().
+		 *
+		 * The dynamic portion of the hook name, `$this->taxonomy`, refers to the taxonomy slug.
+		 *
+		 * Enables adding extra arguments or setting defaults for a terms
+		 * collection request.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @link https://developer.wordpress.org/reference/functions/get_terms/
+		 *
+		 * @param array           $prepared_args Array of arguments to be
+		 *                                       passed to get_terms().
+		 * @param WP_REST_Request $request       The current request.
+		 */
+		$prepared_args = apply_filters( "rest_{$this->taxonomy}_query", $prepared_args, $request );
+
+		if ( ! empty( $prepared_args['post'] )  ) {
+			$query_result = wp_get_object_terms( $prepared_args['post'], $this->taxonomy, $prepared_args );
+
+			// Used when calling wp_count_terms() below.
+			$prepared_args['object_ids'] = $prepared_args['post'];
+		} else {
+			$query_result = get_terms( $this->taxonomy, $prepared_args );
+		}
+
+		$count_args = $prepared_args;
+
+		unset( $count_args['number'], $count_args['offset'] );
+
+		$total_terms = wp_count_terms( $this->taxonomy, $count_args );
+
+		// wp_count_terms can return a falsy value when the term has no children.
+		if ( ! $total_terms ) {
+			$total_terms = 0;
+		}
+
+		$response = array();
+
+		foreach ( $query_result as $term ) {
+			$data = $this->prepare_item_for_response( $term, $request );
+			$response[] = $this->prepare_response_for_collection( $data );
+		}
+
+		$response = rest_ensure_response( $response );
+
+		// Store pagination values for headers.
+		$per_page = (int) $prepared_args['number'];
+		$page     = ceil( ( ( (int) $prepared_args['offset'] ) / $per_page ) + 1 );
+
+		$response->header( 'X-WP-Total', (int) $total_terms );
+
+		$max_pages = ceil( $total_terms / $per_page );
+
+		$response->header( 'X-WP-TotalPages', (int) $max_pages );
+
+		$base = add_query_arg( $request->get_query_params(), rest_url( $this->namespace . '/' . $this->rest_base ) );
+		if ( $page > 1 ) {
+			$prev_page = $page - 1;
+
+			if ( $prev_page > $max_pages ) {
+				$prev_page = $max_pages;
+			}
+
+			$prev_link = add_query_arg( 'page', $prev_page, $base );
+			$response->link_header( 'prev', $prev_link );
+		}
+		if ( $max_pages > $page ) {
+			$next_page = $page + 1;
+			$next_link = add_query_arg( 'page', $next_page, $base );
+
+			$response->link_header( 'next', $next_link );
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a request has access to read or edit the specified term.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True if the request has read access for the item, otherwise false or WP_Error object.
+	 */
+	public function get_item_permissions_check( $request ) {
+		$tax_obj = get_taxonomy( $this->taxonomy );
+		if ( ! $tax_obj || ! $this->check_is_taxonomy_allowed( $this->taxonomy ) ) {
+			return false;
+		}
+		if ( 'edit' === $request['context'] && ! current_user_can( 'edit_term', (int) $request['id'] ) ) {
+			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit this term.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+		return true;
+	}
+
+	/**
+	 * Gets a single term from a taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+
+		$term = get_term( (int) $request['id'], $this->taxonomy );
+
+		if ( ! $term || $term->taxonomy !== $this->taxonomy ) {
+			return new WP_Error( 'rest_term_invalid', __( "Term doesn't exist." ), array( 'status' => 404 ) );
+		}
+
+		if ( is_wp_error( $term ) ) {
+			return $term;
+		}
+
+		$response = $this->prepare_item_for_response( $term, $request );
+
+		return rest_ensure_response( $response );
+	}
+
+	/**
+	 * Checks if a request has access to create a term.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True if the request has access to create items, false or WP_Error object otherwise.
+	 */
+	public function create_item_permissions_check( $request ) {
+
+		if ( ! $this->check_is_taxonomy_allowed( $this->taxonomy ) ) {
+			return false;
+		}
+
+		$taxonomy_obj = get_taxonomy( $this->taxonomy );
+		if ( ! current_user_can( $taxonomy_obj->cap->edit_terms ) ) {
+			return new WP_Error( 'rest_cannot_create', __( 'Sorry, you are not allowed to create new terms.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Creates a single term in a taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function create_item( $request ) {
+		if ( isset( $request['parent'] ) ) {
+			if ( ! is_taxonomy_hierarchical( $this->taxonomy ) ) {
+				return new WP_Error( 'rest_taxonomy_not_hierarchical', __( 'Can not set parent term, taxonomy is not hierarchical.' ), array( 'status' => 400 ) );
+			}
+
+			$parent = get_term( (int) $request['parent'], $this->taxonomy );
+
+			if ( ! $parent ) {
+				return new WP_Error( 'rest_term_invalid', __( "Parent term doesn't exist." ), array( 'status' => 400 ) );
+			}
+		}
+
+		$prepared_term = $this->prepare_item_for_database( $request );
+
+		$term = wp_insert_term( wp_slash( $prepared_term->name ), $this->taxonomy, wp_slash( (array) $prepared_term ) );
+		if ( is_wp_error( $term ) ) {
+			/*
+			 * If we're going to inform the client that the term already exists,
+			 * give them the identifier for future use.
+			 */
+			if ( $term_id = $term->get_error_data( 'term_exists' ) ) {
+				$existing_term = get_term( $term_id, $this->taxonomy );
+				$term->add_data( $existing_term->term_id, 'term_exists' );
+			}
+
+			return $term;
+		}
+
+		$term = get_term( $term['term_id'], $this->taxonomy );
+
+		/**
+		 * Fires after a single term is created or updated via the REST API.
+		 *
+		 * The dynamic portion of the hook name, `$this->taxonomy`, refers to the taxonomy slug.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_Term         $term     Inserted or updated term object.
+		 * @param WP_REST_Request $request  Request object.
+		 * @param bool            $creating True when creating a term, false when updating.
+		 */
+		do_action( "rest_insert_{$this->taxonomy}", $term, $request, true );
+
+		$schema = $this->get_item_schema();
+		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
+			$meta_update = $this->meta->update_value( $request['meta'], (int) $request['id'] );
+
+			if ( is_wp_error( $meta_update ) ) {
+				return $meta_update;
+			}
+		}
+
+		$fields_update = $this->update_additional_fields_for_object( $term, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'view' );
+
+		$response = $this->prepare_item_for_response( $term, $request );
+		$response = rest_ensure_response( $response );
+
+		$response->set_status( 201 );
+		$response->header( 'Location', rest_url( $this->namespace . '/' . $this->rest_base . '/' . $term->term_id ) );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a request has access to update the specified term.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True if the request has access to update the item, false or WP_Error object otherwise.
+	 */
+	public function update_item_permissions_check( $request ) {
+
+		if ( ! $this->check_is_taxonomy_allowed( $this->taxonomy ) ) {
+			return false;
+		}
+
+		$term = get_term( (int) $request['id'], $this->taxonomy );
+
+		if ( ! $term ) {
+			return new WP_Error( 'rest_term_invalid', __( "Term doesn't exist." ), array( 'status' => 404 ) );
+		}
+
+		if ( ! current_user_can( 'edit_term', $term->term_id ) ) {
+			return new WP_Error( 'rest_cannot_update', __( 'Sorry, you are not allowed to edit this term.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Updates a single term from a taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function update_item( $request ) {
+		if ( isset( $request['parent'] ) ) {
+			if ( ! is_taxonomy_hierarchical( $this->taxonomy ) ) {
+				return new WP_Error( 'rest_taxonomy_not_hierarchical', __( 'Can not set parent term, taxonomy is not hierarchical.' ), array( 'status' => 400 ) );
+			}
+
+			$parent = get_term( (int) $request['parent'], $this->taxonomy );
+
+			if ( ! $parent ) {
+				return new WP_Error( 'rest_term_invalid', __( "Parent term doesn't exist." ), array( 'status' => 400 ) );
+			}
+		}
+
+		$prepared_term = $this->prepare_item_for_database( $request );
+
+		$term = get_term( (int) $request['id'], $this->taxonomy );
+
+		// Only update the term if we haz something to update.
+		if ( ! empty( $prepared_term ) ) {
+			$update = wp_update_term( $term->term_id, $term->taxonomy, wp_slash( (array) $prepared_term ) );
+
+			if ( is_wp_error( $update ) ) {
+				return $update;
+			}
+		}
+
+		$term = get_term( (int) $request['id'], $this->taxonomy );
+
+		/* This action is documented in lib/endpoints/class-wp-rest-terms-controller.php */
+		do_action( "rest_insert_{$this->taxonomy}", $term, $request, false );
+
+		$schema = $this->get_item_schema();
+		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
+			$meta_update = $this->meta->update_value( $request['meta'], (int) $request['id'] );
+
+			if ( is_wp_error( $meta_update ) ) {
+				return $meta_update;
+			}
+		}
+
+		$fields_update = $this->update_additional_fields_for_object( $term, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'view' );
+
+		$response = $this->prepare_item_for_response( $term, $request );
+
+		return rest_ensure_response( $response );
+	}
+
+	/**
+	 * Checks if a request has access to delete the specified term.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return bool|WP_Error True if the request has access to delete the item, otherwise false or WP_Error object.
+	 */
+	public function delete_item_permissions_check( $request ) {
+		if ( ! $this->check_is_taxonomy_allowed( $this->taxonomy ) ) {
+			return false;
+		}
+
+		$term = get_term( (int) $request['id'], $this->taxonomy );
+
+		if ( ! $term ) {
+			return new WP_Error( 'rest_term_invalid', __( "Term doesn't exist." ), array( 'status' => 404 ) );
+		}
+
+		if ( ! current_user_can( 'delete_term', $term->term_id ) ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'Sorry, you are not allowed to delete this term.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Deletes a single term from a taxonomy.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function delete_item( $request ) {
+
+		$force = isset( $request['force'] ) ? (bool) $request['force'] : false;
+
+		// We don't support trashing for terms.
+		if ( ! $force ) {
+			return new WP_Error( 'rest_trash_not_supported', __( 'Terms do not support trashing. Set force=true to delete.' ), array( 'status' => 501 ) );
+		}
+
+		$term = get_term( (int) $request['id'], $this->taxonomy );
+
+		$request->set_param( 'context', 'view' );
+
+		$previous = $this->prepare_item_for_response( $term, $request );
+
+		$retval = wp_delete_term( $term->term_id, $term->taxonomy );
+
+		if ( ! $retval ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'The term cannot be deleted.' ), array( 'status' => 500 ) );
+		}
+
+		$response = new WP_REST_Response();
+		$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+
+		/**
+		 * Fires after a single term is deleted via the REST API.
+		 *
+		 * The dynamic portion of the hook name, `$this->taxonomy`, refers to the taxonomy slug.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_Term          $term     The deleted term.
+		 * @param WP_REST_Response $response The response data.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( "rest_delete_{$this->taxonomy}", $term, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Prepares a single term for create or update.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return object $prepared_term Term object.
+	 */
+	public function prepare_item_for_database( $request ) {
+		$prepared_term = new stdClass;
+
+		$schema = $this->get_item_schema();
+		if ( isset( $request['name'] ) && ! empty( $schema['properties']['name'] ) ) {
+			$prepared_term->name = $request['name'];
+		}
+
+		if ( isset( $request['slug'] ) && ! empty( $schema['properties']['slug'] ) ) {
+			$prepared_term->slug = $request['slug'];
+		}
+
+		if ( isset( $request['taxonomy'] ) && ! empty( $schema['properties']['taxonomy'] ) ) {
+			$prepared_term->taxonomy = $request['taxonomy'];
+		}
+
+		if ( isset( $request['description'] ) && ! empty( $schema['properties']['description'] ) ) {
+			$prepared_term->description = $request['description'];
+		}
+
+		if ( isset( $request['parent'] ) && ! empty( $schema['properties']['parent'] ) ) {
+			$parent_term_id = 0;
+			$parent_term    = get_term( (int) $request['parent'], $this->taxonomy );
+
+			if ( $parent_term ) {
+				$parent_term_id = $parent_term->term_id;
+			}
+
+			$prepared_term->parent = $parent_term_id;
+		}
+
+		/**
+		 * Filters term data before inserting term via the REST API.
+		 *
+		 * The dynamic portion of the hook name, `$this->taxonomy`, refers to the taxonomy slug.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param object          $prepared_term Term object.
+		 * @param WP_REST_Request $request       Request object.
+		 */
+		return apply_filters( "rest_pre_insert_{$this->taxonomy}", $prepared_term, $request );
+	}
+
+	/**
+	 * Prepares a single term output for response.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param obj             $item    Term object.
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_REST_Response $response Response object.
+	 */
+	public function prepare_item_for_response( $item, $request ) {
+
+		$schema = $this->get_item_schema();
+		$data   = array();
+
+		if ( ! empty( $schema['properties']['id'] ) ) {
+			$data['id'] = (int) $item->term_id;
+		}
+
+		if ( ! empty( $schema['properties']['count'] ) ) {
+			$data['count'] = (int) $item->count;
+		}
+
+		if ( ! empty( $schema['properties']['description'] ) ) {
+			$data['description'] = $item->description;
+		}
+
+		if ( ! empty( $schema['properties']['link'] ) ) {
+			$data['link'] = get_term_link( $item );
+		}
+
+		if ( ! empty( $schema['properties']['name'] ) ) {
+			$data['name'] = $item->name;
+		}
+
+		if ( ! empty( $schema['properties']['slug'] ) ) {
+			$data['slug'] = $item->slug;
+		}
+
+		if ( ! empty( $schema['properties']['taxonomy'] ) ) {
+			$data['taxonomy'] = $item->taxonomy;
+		}
+
+		if ( ! empty( $schema['properties']['parent'] ) ) {
+			$data['parent'] = (int) $item->parent;
+		}
+
+		if ( ! empty( $schema['properties']['meta'] ) ) {
+			$data['meta'] = $this->meta->get_value( $item->term_id, $request );
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
+		$data    = $this->add_additional_fields_to_object( $data, $request );
+		$data    = $this->filter_response_by_context( $data, $context );
+
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $item ) );
+
+		/**
+		 * Filters a term item returned from the API.
+		 *
+		 * The dynamic portion of the hook name, `$this->taxonomy`, refers to the taxonomy slug.
+		 *
+		 * Allows modification of the term data right before it is returned.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response  $response  The response object.
+		 * @param object            $item      The original term object.
+		 * @param WP_REST_Request   $request   Request used to generate the response.
+		 */
+		return apply_filters( "rest_prepare_{$this->taxonomy}", $response, $item, $request );
+	}
+
+	/**
+	 * Prepares links for the request.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param object $term Term object.
+	 * @return array Links for the given term.
+	 */
+	protected function prepare_links( $term ) {
+		$base = $this->namespace . '/' . $this->rest_base;
+		$links = array(
+			'self'       => array(
+				'href' => rest_url( trailingslashit( $base ) . $term->term_id ),
+			),
+			'collection' => array(
+				'href' => rest_url( $base ),
+			),
+			'about'      => array(
+				'href' => rest_url( sprintf( 'wp/v2/taxonomies/%s', $this->taxonomy ) ),
+			),
+		);
+
+		if ( $term->parent ) {
+			$parent_term = get_term( (int) $term->parent, $term->taxonomy );
+
+			if ( $parent_term ) {
+				$links['up'] = array(
+					'href'       => rest_url( trailingslashit( $base ) . $parent_term->term_id ),
+					'embeddable' => true,
+				);
+			}
+		}
+
+		$taxonomy_obj = get_taxonomy( $term->taxonomy );
+
+		if ( empty( $taxonomy_obj->object_type ) ) {
+			return $links;
+		}
+
+		$post_type_links = array();
+
+		foreach ( $taxonomy_obj->object_type as $type ) {
+			$post_type_object = get_post_type_object( $type );
+
+			if ( empty( $post_type_object->show_in_rest ) ) {
+				continue;
+			}
+
+			$rest_base = ! empty( $post_type_object->rest_base ) ? $post_type_object->rest_base : $post_type_object->name;
+			$post_type_links[] = array(
+				'href' => add_query_arg( $this->rest_base, $term->term_id, rest_url( sprintf( 'wp/v2/%s', $rest_base ) ) ),
+			);
+		}
+
+		if ( ! empty( $post_type_links ) ) {
+			$links['https://api.w.org/post_type'] = $post_type_links;
+		}
+
+		return $links;
+	}
+
+	/**
+	 * Retrieves the term's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/schema#',
+			'title'      => 'post_tag' === $this->taxonomy ? 'tag' : $this->taxonomy,
+			'type'       => 'object',
+			'properties' => array(
+				'id'          => array(
+					'description'  => __( 'Unique identifier for the term.' ),
+					'type'         => 'integer',
+					'context'      => array( 'view', 'embed', 'edit' ),
+					'readonly'     => true,
+				),
+				'count'       => array(
+					'description'  => __( 'Number of published posts for the term.' ),
+					'type'         => 'integer',
+					'context'      => array( 'view', 'edit' ),
+					'readonly'     => true,
+				),
+				'description' => array(
+					'description'  => __( 'HTML description of the term.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'edit' ),
+				),
+				'link'        => array(
+					'description'  => __( 'URL of the term.' ),
+					'type'         => 'string',
+					'format'       => 'uri',
+					'context'      => array( 'view', 'embed', 'edit' ),
+					'readonly'     => true,
+				),
+				'name'        => array(
+					'description'  => __( 'HTML title for the term.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'embed', 'edit' ),
+					'arg_options'  => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+					'required'     => true,
+				),
+				'slug'        => array(
+					'description'  => __( 'An alphanumeric identifier for the term unique to its type.' ),
+					'type'         => 'string',
+					'context'      => array( 'view', 'embed', 'edit' ),
+					'arg_options'  => array(
+						'sanitize_callback' => array( $this, 'sanitize_slug' ),
+					),
+				),
+				'taxonomy'    => array(
+					'description'  => __( 'Type attribution for the term.' ),
+					'type'         => 'string',
+					'enum'         => array_keys( get_taxonomies() ),
+					'context'      => array( 'view', 'embed', 'edit' ),
+					'readonly'     => true,
+				),
+			),
+		);
+
+		$taxonomy = get_taxonomy( $this->taxonomy );
+
+		if ( $taxonomy->hierarchical ) {
+			$schema['properties']['parent'] = array(
+				'description'  => __( 'The parent term ID.' ),
+				'type'         => 'integer',
+				'context'      => array( 'view', 'edit' ),
+			);
+		}
+
+		$schema['properties']['meta'] = $this->meta->get_field_schema();
+
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Retrieves the query params for collections.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Collection parameters.
+	 */
+	public function get_collection_params() {
+		$query_params = parent::get_collection_params();
+		$taxonomy = get_taxonomy( $this->taxonomy );
+
+		$query_params['context']['default'] = 'view';
+
+		$query_params['exclude'] = array(
+			'description'       => __( 'Ensure result set excludes specific IDs.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'type'          => 'integer',
+			),
+			'default'           => array(),
+		);
+
+		$query_params['include'] = array(
+			'description'       => __( 'Limit result set to specific IDs.' ),
+			'type'              => 'array',
+			'items'             => array(
+				'type'          => 'integer',
+			),
+			'default'           => array(),
+		);
+
+		if ( ! $taxonomy->hierarchical ) {
+			$query_params['offset'] = array(
+				'description'       => __( 'Offset the result set by a specific number of items.' ),
+				'type'              => 'integer',
+			);
+		}
+
+		$query_params['order'] = array(
+			'description'       => __( 'Order sort attribute ascending or descending.' ),
+			'type'              => 'string',
+			'default'           => 'asc',
+			'enum'              => array(
+				'asc',
+				'desc',
+			),
+		);
+
+		$query_params['orderby'] = array(
+			'description'       => __( 'Sort collection by term attribute.' ),
+			'type'              => 'string',
+			'default'           => 'name',
+			'enum'              => array(
+				'id',
+				'include',
+				'name',
+				'slug',
+				'term_group',
+				'description',
+				'count',
+			),
+		);
+
+		$query_params['hide_empty'] = array(
+			'description'       => __( 'Whether to hide terms not assigned to any posts.' ),
+			'type'              => 'boolean',
+			'default'           => false,
+		);
+
+		if ( $taxonomy->hierarchical ) {
+			$query_params['parent'] = array(
+				'description'       => __( 'Limit result set to terms assigned to a specific parent.' ),
+				'type'              => 'integer',
+			);
+		}
+
+		$query_params['post'] = array(
+			'description'       => __( 'Limit result set to terms assigned to a specific post.' ),
+			'type'              => 'integer',
+			'default'           => null,
+		);
+
+		$query_params['slug'] = array(
+			'description'       => __( 'Limit result set to terms with a specific slug.' ),
+			'type'              => 'string',
+		);
+
+		/**
+		 * Filter collection parameters for the terms controller.
+		 *
+		 * The dynamic part of the filter `$this->taxonomy` refers to the taxonomy
+		 * slug for the controller.
+		 *
+		 * This filter registers the collection parameter, but does not map the
+		 * collection parameter to an internal WP_Term_Query parameter.  Use the
+		 * `rest_{$this->taxonomy}_query` filter to set WP_Term_Query parameters.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param $params JSON Schema-formatted collection parameters.
+		 * @param WP_Taxonomy $taxonomy_obj Taxonomy object.
+		 */
+		return apply_filters( 'rest_{$this->taxonomy}_collection_params', $query_params, $taxonomy );
+	}
+
+	/**
+	 * Checks that the taxonomy is valid.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param string $taxonomy Taxonomy to check.
+	 * @return bool Whether the taxonomy is allowed for REST management.
+	 */
+	protected function check_is_taxonomy_allowed( $taxonomy ) {
+		$taxonomy_obj = get_taxonomy( $taxonomy );
+		if ( $taxonomy_obj && ! empty( $taxonomy_obj->show_in_rest ) ) {
+			return true;
+		}
+		return false;
+	}
+}
diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php
new file mode 100644
index 000000000..01542a9b6
--- /dev/null
+++ b/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php
@@ -0,0 +1,1358 @@
+<?php
+/**
+ * REST API: WP_REST_Users_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to manage users via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Users_Controller extends WP_REST_Controller {
+
+	/**
+	 * Instance of a user meta fields object.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var WP_REST_User_Meta_Fields
+	 */
+	protected $meta;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 */
+	public function __construct() {
+		$this->namespace = 'wp/v2';
+		$this->rest_base = 'users';
+
+		$this->meta = new WP_REST_User_Meta_Fields();
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base, array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_items' ),
+				'permission_callback' => array( $this, 'get_items_permissions_check' ),
+				'args'                => $this->get_collection_params(),
+			),
+			array(
+				'methods'             => WP_REST_Server::CREATABLE,
+				'callback'            => array( $this, 'create_item' ),
+				'permission_callback' => array( $this, 'create_item_permissions_check' ),
+				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<id>[\d]+)', array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_item' ),
+				'permission_callback' => array( $this, 'get_item_permissions_check' ),
+				'args'                => array(
+					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+				),
+			),
+			array(
+				'methods'             => WP_REST_Server::EDITABLE,
+				'callback'            => array( $this, 'update_item' ),
+				'permission_callback' => array( $this, 'update_item_permissions_check' ),
+				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+			),
+			array(
+				'methods'             => WP_REST_Server::DELETABLE,
+				'callback'            => array( $this, 'delete_item' ),
+				'permission_callback' => array( $this, 'delete_item_permissions_check' ),
+				'args'                => array(
+					'force'    => array(
+						'type'        => 'boolean',
+						'default'     => false,
+						'description' => __( 'Required to be true, as users do not support trashing.' ),
+					),
+					'reassign' => array(
+						'type'        => 'integer',
+						'description' => __( 'Reassign the deleted user\'s posts and links to this user ID.' ),
+						'required'    => true,
+						'sanitize_callback' => array( $this, 'check_reassign' ),
+					),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/me', array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_current_item' ),
+				'args'                => array(
+					'context' => $this->get_context_param( array( 'default' => 'view' ) ),
+				),
+			),
+			array(
+				'methods'             => WP_REST_Server::EDITABLE,
+				'callback'            => array( $this, 'update_current_item' ),
+				'permission_callback' => array( $this, 'update_current_item_permissions_check' ),
+				'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
+			),
+			array(
+				'methods'             => WP_REST_Server::DELETABLE,
+				'callback'            => array( $this, 'delete_current_item' ),
+				'permission_callback' => array( $this, 'delete_current_item_permissions_check' ),
+				'args'                => array(
+					'force'    => array(
+						'type'        => 'boolean',
+						'default'     => false,
+						'description' => __( 'Required to be true, as users do not support trashing.' ),
+					),
+					'reassign' => array(
+						'type'        => 'integer',
+						'description' => __( 'Reassign the deleted user\'s posts and links to this user ID.' ),
+						'required'    => true,
+						'sanitize_callback' => array( $this, 'check_reassign' ),
+					),
+				),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		));
+	}
+
+	/**
+	 * Checks for a valid value for the reassign parameter when deleting users.
+	 *
+	 * The value can be an integer, 'false', false, or ''.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param int|bool        $value   The value passed to the reassign parameter.
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @param string          $param   The parameter that is being sanitized.
+	 *
+	 * @return int|bool|WP_Error
+	 */
+	public function check_reassign( $value, $request, $param ) {
+		if ( is_numeric( $value ) ) {
+			return $value;
+		}
+
+		if ( empty( $value ) || false === $value || 'false' === $value ) {
+			return false;
+		}
+
+		return new WP_Error( 'rest_invalid_param', __( 'Invalid user parameter(s).' ), array( 'status' => 400 ) );
+	}
+
+	/**
+	 * Permissions check for getting all users.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has read access, otherwise WP_Error object.
+	 */
+	public function get_items_permissions_check( $request ) {
+		// Check if roles is specified in GET request and if user can list users.
+		if ( ! empty( $request['roles'] ) && ! current_user_can( 'list_users' ) ) {
+			return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you are not allowed to filter users by role.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) {
+			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to list users.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( in_array( $request['orderby'], array( 'email', 'registered_date' ), true ) && ! current_user_can( 'list_users' ) ) {
+			return new WP_Error( 'rest_forbidden_orderby', __( 'Sorry, you are not allowed to order users by this parameter.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves all users.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_items( $request ) {
+
+		// Retrieve the list of registered collection query parameters.
+		$registered = $this->get_collection_params();
+
+		/*
+		 * This array defines mappings between public API query parameters whose
+		 * values are accepted as-passed, and their internal WP_Query parameter
+		 * name equivalents (some are the same). Only values which are also
+		 * present in $registered will be set.
+		 */
+		$parameter_mappings = array(
+			'exclude'  => 'exclude',
+			'include'  => 'include',
+			'order'    => 'order',
+			'per_page' => 'number',
+			'search'   => 'search',
+			'roles'    => 'role__in',
+		);
+
+		$prepared_args = array();
+
+		/*
+		 * For each known parameter which is both registered and present in the request,
+		 * set the parameter's value on the query $prepared_args.
+		 */
+		foreach ( $parameter_mappings as $api_param => $wp_param ) {
+			if ( isset( $registered[ $api_param ], $request[ $api_param ] ) ) {
+				$prepared_args[ $wp_param ] = $request[ $api_param ];
+			}
+		}
+
+		if ( isset( $registered['offset'] ) && ! empty( $request['offset'] ) ) {
+			$prepared_args['offset'] = $request['offset'];
+		} else {
+			$prepared_args['offset']  = ( $request['page'] - 1 ) * $prepared_args['number'];
+		}
+
+		if ( isset( $registered['orderby'] ) ) {
+			$orderby_possibles = array(
+				'id'              => 'ID',
+				'include'         => 'include',
+				'name'            => 'display_name',
+				'registered_date' => 'registered',
+				'slug'            => 'user_nicename',
+				'email'           => 'user_email',
+				'url'             => 'user_url',
+			);
+			$prepared_args['orderby'] = $orderby_possibles[ $request['orderby'] ];
+		}
+
+		if ( ! current_user_can( 'list_users' ) ) {
+			$prepared_args['has_published_posts'] = true;
+		}
+
+		if ( ! empty( $prepared_args['search'] ) ) {
+			$prepared_args['search'] = '*' . $prepared_args['search'] . '*';
+		}
+
+		if ( isset( $registered['slug'] ) && ! empty( $request['slug'] ) ) {
+			$prepared_args['search'] = $request['slug'];
+			$prepared_args['search_columns'] = array( 'user_nicename' );
+		}
+
+		/**
+		 * Filters WP_User_Query arguments when querying users via the REST API.
+		 *
+		 * @link https://developer.wordpress.org/reference/classes/wp_user_query/
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param array           $prepared_args Array of arguments for WP_User_Query.
+		 * @param WP_REST_Request $request       The current request.
+		 */
+		$prepared_args = apply_filters( 'rest_user_query', $prepared_args, $request );
+
+		$query = new WP_User_Query( $prepared_args );
+
+		$users = array();
+
+		foreach ( $query->results as $user ) {
+			$data = $this->prepare_item_for_response( $user, $request );
+			$users[] = $this->prepare_response_for_collection( $data );
+		}
+
+		$response = rest_ensure_response( $users );
+
+		// Store pagination values for headers then unset for count query.
+		$per_page = (int) $prepared_args['number'];
+		$page     = ceil( ( ( (int) $prepared_args['offset'] ) / $per_page ) + 1 );
+
+		$prepared_args['fields'] = 'ID';
+
+		$total_users = $query->get_total();
+
+		if ( $total_users < 1 ) {
+			// Out-of-bounds, run the query again without LIMIT for total count.
+			unset( $prepared_args['number'], $prepared_args['offset'] );
+			$count_query = new WP_User_Query( $prepared_args );
+			$total_users = $count_query->get_total();
+		}
+
+		$response->header( 'X-WP-Total', (int) $total_users );
+
+		$max_pages = ceil( $total_users / $per_page );
+
+		$response->header( 'X-WP-TotalPages', (int) $max_pages );
+
+		$base = add_query_arg( $request->get_query_params(), rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ) );
+		if ( $page > 1 ) {
+			$prev_page = $page - 1;
+
+			if ( $prev_page > $max_pages ) {
+				$prev_page = $max_pages;
+			}
+
+			$prev_link = add_query_arg( 'page', $prev_page, $base );
+			$response->link_header( 'prev', $prev_link );
+		}
+		if ( $max_pages > $page ) {
+			$next_page = $page + 1;
+			$next_link = add_query_arg( 'page', $next_page, $base );
+
+			$response->link_header( 'next', $next_link );
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to read a user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has read access for the item, otherwise WP_Error object.
+	 */
+	public function get_item_permissions_check( $request ) {
+
+		$id = (int) $request['id'];
+		$user = get_userdata( $id );
+		$types = get_post_types( array( 'show_in_rest' => true ), 'names' );
+
+		if ( empty( $id ) || empty( $user->ID ) ) {
+			return new WP_Error( 'rest_user_invalid_id', __( 'Invalid user ID.' ), array( 'status' => 404 ) );
+		}
+
+		if ( get_current_user_id() === $id ) {
+			return true;
+		}
+
+		if ( 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) {
+			return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you are not allowed to list users.' ), array( 'status' => rest_authorization_required_code() ) );
+		} elseif ( ! count_user_posts( $id, $types ) && ! current_user_can( 'edit_user', $id ) && ! current_user_can( 'list_users' ) ) {
+			return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you are not allowed to list users.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves a single user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_item( $request ) {
+		$id   = (int) $request['id'];
+		$user = get_userdata( $id );
+
+		if ( empty( $id ) || empty( $user->ID ) ) {
+			return new WP_Error( 'rest_user_invalid_id', __( 'Invalid user ID.' ), array( 'status' => 404 ) );
+		}
+
+		$user = $this->prepare_item_for_response( $user, $request );
+		$response = rest_ensure_response( $user );
+
+		return $response;
+	}
+
+	/**
+	 * Retrieves the current user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function get_current_item( $request ) {
+		$current_user_id = get_current_user_id();
+
+		if ( empty( $current_user_id ) ) {
+			return new WP_Error( 'rest_not_logged_in', __( 'You are not currently logged in.' ), array( 'status' => 401 ) );
+		}
+
+		$user     = wp_get_current_user();
+		$response = $this->prepare_item_for_response( $user, $request );
+		$response = rest_ensure_response( $response );
+
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access create users.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
+	 */
+	public function create_item_permissions_check( $request ) {
+
+		if ( ! current_user_can( 'create_users' ) ) {
+			return new WP_Error( 'rest_cannot_create_user', __( 'Sorry, you are not allowed to create new users.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Creates a single user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function create_item( $request ) {
+		if ( ! empty( $request['id'] ) ) {
+			return new WP_Error( 'rest_user_exists', __( 'Cannot create existing user.' ), array( 'status' => 400 ) );
+		}
+
+		$schema = $this->get_item_schema();
+
+		if ( ! empty( $request['roles'] ) && ! empty( $schema['properties']['roles'] ) ) {
+			$check_permission = $this->check_role_update( $request['id'], $request['roles'] );
+
+			if ( is_wp_error( $check_permission ) ) {
+				return $check_permission;
+			}
+		}
+
+		$user = $this->prepare_item_for_database( $request );
+
+		if ( is_multisite() ) {
+			$ret = wpmu_validate_user_signup( $user->user_login, $user->user_email );
+
+			if ( is_wp_error( $ret['errors'] ) && ! empty( $ret['errors']->errors ) ) {
+				$error = new WP_Error( 'rest_invalid_param', __( 'Invalid user parameter(s).' ), array( 'status' => 400 ) );
+				foreach ( $ret['errors']->errors as $code => $messages ) {
+					foreach ( $messages as $message ) {
+						$error->add( $code, $message );
+					}
+					if ( $error_data = $error->get_error_data( $code ) ) {
+						$error->add_data( $error_data, $code );
+					}
+				}
+				return $error;
+			}
+		}
+
+		if ( is_multisite() ) {
+			$user_id = wpmu_create_user( $user->user_login, $user->user_pass, $user->user_email );
+
+			if ( ! $user_id ) {
+				return new WP_Error( 'rest_user_create', __( 'Error creating new user.' ), array( 'status' => 500 ) );
+			}
+
+			$user->ID = $user_id;
+			$user_id  = wp_update_user( wp_slash( (array) $user ) );
+
+			if ( is_wp_error( $user_id ) ) {
+				return $user_id;
+			}
+
+			add_user_to_blog( get_site()->id, $user_id, '' );
+		} else {
+			$user_id = wp_insert_user( wp_slash( (array) $user ) );
+
+			if ( is_wp_error( $user_id ) ) {
+				return $user_id;
+			}
+		}
+
+		$user = get_user_by( 'id', $user_id );
+
+		/**
+		 * Fires immediately after a user is created or updated via the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_User         $user     Inserted or updated user object.
+		 * @param WP_REST_Request $request  Request object.
+		 * @param bool            $creating True when creating a user, false when updating.
+		 */
+		do_action( 'rest_insert_user', $user, $request, true );
+
+		if ( ! empty( $request['roles'] ) && ! empty( $schema['properties']['roles'] ) ) {
+			array_map( array( $user, 'add_role' ), $request['roles'] );
+		}
+
+		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
+			$meta_update = $this->meta->update_value( $request['meta'], $user_id );
+
+			if ( is_wp_error( $meta_update ) ) {
+				return $meta_update;
+			}
+		}
+
+		$user = get_user_by( 'id', $user_id );
+		$fields_update = $this->update_additional_fields_for_object( $user, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'edit' );
+
+		$response = $this->prepare_item_for_response( $user, $request );
+		$response = rest_ensure_response( $response );
+
+		$response->set_status( 201 );
+		$response->header( 'Location', rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $user_id ) ) );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to update a user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
+	 */
+	public function update_item_permissions_check( $request ) {
+
+		$id = (int) $request['id'];
+
+		if ( ! current_user_can( 'edit_user', $id ) ) {
+			return new WP_Error( 'rest_cannot_edit', __( 'Sorry, you are not allowed to edit this user.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		if ( ! empty( $request['roles'] ) && ! current_user_can( 'edit_users' ) ) {
+			return new WP_Error( 'rest_cannot_edit_roles', __( 'Sorry, you are not allowed to edit roles of this user.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Updates a single user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function update_item( $request ) {
+		$id   = (int) $request['id'];
+		$user = get_userdata( $id );
+
+		if ( ! $user ) {
+			return new WP_Error( 'rest_user_invalid_id', __( 'Invalid user ID.' ), array( 'status' => 404 ) );
+		}
+
+		if ( email_exists( $request['email'] ) && $request['email'] !== $user->user_email ) {
+			return new WP_Error( 'rest_user_invalid_email', __( 'Invalid email address.' ), array( 'status' => 400 ) );
+		}
+
+		if ( ! empty( $request['username'] ) && $request['username'] !== $user->user_login ) {
+			return new WP_Error( 'rest_user_invalid_argument', __( "Username isn't editable." ), array( 'status' => 400 ) );
+		}
+
+		if ( ! empty( $request['slug'] ) && $request['slug'] !== $user->user_nicename && get_user_by( 'slug', $request['slug'] ) ) {
+			return new WP_Error( 'rest_user_invalid_slug', __( 'Invalid slug.' ), array( 'status' => 400 ) );
+		}
+
+		if ( ! empty( $request['roles'] ) ) {
+			$check_permission = $this->check_role_update( $id, $request['roles'] );
+
+			if ( is_wp_error( $check_permission ) ) {
+				return $check_permission;
+			}
+		}
+
+		$user = $this->prepare_item_for_database( $request );
+
+		// Ensure we're operating on the same user we already checked.
+		$user->ID = $id;
+
+		$user_id = wp_update_user( wp_slash( (array) $user ) );
+
+		if ( is_wp_error( $user_id ) ) {
+			return $user_id;
+		}
+
+		$user = get_user_by( 'id', $user_id );
+
+		/* This action is documented in lib/endpoints/class-wp-rest-users-controller.php */
+		do_action( 'rest_insert_user', $user, $request, false );
+
+		if ( is_multisite() && ! is_user_member_of_blog( $id ) ) {
+			add_user_to_blog( get_current_blog_id(), $id, '' );
+		}
+
+		if ( ! empty( $request['roles'] ) ) {
+			array_map( array( $user, 'add_role' ), $request['roles'] );
+		}
+
+		$schema = $this->get_item_schema();
+
+		if ( ! empty( $schema['properties']['meta'] ) && isset( $request['meta'] ) ) {
+			$meta_update = $this->meta->update_value( $request['meta'], $id );
+
+			if ( is_wp_error( $meta_update ) ) {
+				return $meta_update;
+			}
+		}
+
+		$user = get_user_by( 'id', $user_id );
+		$fields_update = $this->update_additional_fields_for_object( $user, $request );
+
+		if ( is_wp_error( $fields_update ) ) {
+			return $fields_update;
+		}
+
+		$request->set_param( 'context', 'edit' );
+
+		$response = $this->prepare_item_for_response( $user, $request );
+		$response = rest_ensure_response( $response );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to update the current user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
+	 */
+	public function update_current_item_permissions_check( $request ) {
+		$request['id'] = get_current_user_id();
+
+		return $this->update_item_permissions_check( $request );
+	}
+
+	/**
+	 * Updates the current user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	function update_current_item( $request ) {
+		$request['id'] = get_current_user_id();
+
+		return $this->update_item( $request );
+	}
+
+	/**
+	 * Checks if a given request has access delete a user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has access to delete the item, WP_Error object otherwise.
+	 */
+	public function delete_item_permissions_check( $request ) {
+
+		$id = (int) $request['id'];
+
+		if ( ! current_user_can( 'delete_user', $id ) ) {
+			return new WP_Error( 'rest_user_cannot_delete', __( 'Sorry, you are not allowed to delete this user.' ), array( 'status' => rest_authorization_required_code() ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Deletes a single user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	public function delete_item( $request ) {
+		// We don't support delete requests in multisite.
+		if ( is_multisite() ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'The user cannot be deleted.' ), array( 'status' => 501 ) );
+		}
+
+		$id       = (int) $request['id'];
+		$reassign = false === $request['reassign'] ? null : absint( $request['reassign'] );
+		$force    = isset( $request['force'] ) ? (bool) $request['force'] : false;
+
+		// We don't support trashing for users.
+		if ( ! $force ) {
+			return new WP_Error( 'rest_trash_not_supported', __( 'Users do not support trashing. Set force=true to delete.' ), array( 'status' => 501 ) );
+		}
+
+		$user = get_userdata( $id );
+
+		if ( ! $user ) {
+			return new WP_Error( 'rest_user_invalid_id', __( 'Invalid user ID.' ), array( 'status' => 404 ) );
+		}
+
+		if ( ! empty( $reassign ) ) {
+			if ( $reassign === $id || ! get_userdata( $reassign ) ) {
+				return new WP_Error( 'rest_user_invalid_reassign', __( 'Invalid user ID for reassignment.' ), array( 'status' => 400 ) );
+			}
+		}
+
+		$request->set_param( 'context', 'edit' );
+
+		$previous = $this->prepare_item_for_response( $user, $request );
+
+		/** Include admin user functions to get access to wp_delete_user() */
+		require_once ABSPATH . 'wp-admin/includes/user.php';
+
+		$result = wp_delete_user( $id, $reassign );
+
+		if ( ! $result ) {
+			return new WP_Error( 'rest_cannot_delete', __( 'The user cannot be deleted.' ), array( 'status' => 500 ) );
+		}
+
+		$response = new WP_REST_Response();
+		$response->set_data( array( 'deleted' => true, 'previous' => $previous->get_data() ) );
+
+		/**
+		 * Fires immediately after a user is deleted via the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_User          $user     The user data.
+		 * @param WP_REST_Response $response The response returned from the API.
+		 * @param WP_REST_Request  $request  The request sent to the API.
+		 */
+		do_action( 'rest_delete_user', $user, $response, $request );
+
+		return $response;
+	}
+
+	/**
+	 * Checks if a given request has access to delete the current user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return true|WP_Error True if the request has access to delete the item, WP_Error object otherwise.
+	 */
+	public function delete_current_item_permissions_check( $request ) {
+		$request['id'] = get_current_user_id();
+
+		return $this->delete_item_permissions_check( $request );
+	}
+
+	/**
+	 * Deletes the current user.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+	 */
+	function delete_current_item( $request ) {
+		$request['id'] = get_current_user_id();
+
+		return $this->delete_item( $request );
+	}
+
+	/**
+	 * Prepares a single user output for response.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param WP_User         $user    User object.
+	 * @param WP_REST_Request $request Request object.
+	 * @return WP_REST_Response Response object.
+	 */
+	public function prepare_item_for_response( $user, $request ) {
+
+		$data   = array();
+		$schema = $this->get_item_schema();
+
+		if ( ! empty( $schema['properties']['id'] ) ) {
+			$data['id'] = $user->ID;
+		}
+
+		if ( ! empty( $schema['properties']['username'] ) ) {
+			$data['username'] = $user->user_login;
+		}
+
+		if ( ! empty( $schema['properties']['name'] ) ) {
+			$data['name'] = $user->display_name;
+		}
+
+		if ( ! empty( $schema['properties']['first_name'] ) ) {
+			$data['first_name'] = $user->first_name;
+		}
+
+		if ( ! empty( $schema['properties']['last_name'] ) ) {
+			$data['last_name'] = $user->last_name;
+		}
+
+		if ( ! empty( $schema['properties']['email'] ) ) {
+			$data['email'] = $user->user_email;
+		}
+
+		if ( ! empty( $schema['properties']['url'] ) ) {
+			$data['url'] = $user->user_url;
+		}
+
+		if ( ! empty( $schema['properties']['description'] ) ) {
+			$data['description'] = $user->description;
+		}
+
+		if ( ! empty( $schema['properties']['link'] ) ) {
+			$data['link'] = get_author_posts_url( $user->ID, $user->user_nicename );
+		}
+
+		if ( ! empty( $schema['properties']['locale'] ) ) {
+			$data['locale'] = get_user_locale( $user );
+		}
+
+		if ( ! empty( $schema['properties']['nickname'] ) ) {
+			$data['nickname'] = $user->nickname;
+		}
+
+		if ( ! empty( $schema['properties']['slug'] ) ) {
+			$data['slug'] = $user->user_nicename;
+		}
+
+		if ( ! empty( $schema['properties']['roles'] ) ) {
+			// Defensively call array_values() to ensure an array is returned.
+			$data['roles'] = array_values( $user->roles );
+		}
+
+		if ( ! empty( $schema['properties']['registered_date'] ) ) {
+			$data['registered_date'] = date( 'c', strtotime( $user->user_registered ) );
+		}
+
+		if ( ! empty( $schema['properties']['capabilities'] ) ) {
+			$data['capabilities'] = (object) $user->allcaps;
+		}
+
+		if ( ! empty( $schema['properties']['extra_capabilities'] ) ) {
+			$data['extra_capabilities'] = (object) $user->caps;
+		}
+
+		if ( ! empty( $schema['properties']['avatar_urls'] ) ) {
+			$data['avatar_urls'] = rest_get_avatar_urls( $user->user_email );
+		}
+
+		if ( ! empty( $schema['properties']['meta'] ) ) {
+			$data['meta'] = $this->meta->get_value( $user->ID, $request );
+		}
+
+		$context = ! empty( $request['context'] ) ? $request['context'] : 'embed';
+
+		$data = $this->add_additional_fields_to_object( $data, $request );
+		$data = $this->filter_response_by_context( $data, $context );
+
+		// Wrap the data in a response object.
+		$response = rest_ensure_response( $data );
+
+		$response->add_links( $this->prepare_links( $user ) );
+
+		/**
+		 * Filters user data returned from the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param WP_REST_Response $response The response object.
+		 * @param object           $user     User object used to create response.
+		 * @param WP_REST_Request  $request  Request object.
+		 */
+		return apply_filters( 'rest_prepare_user', $response, $user, $request );
+	}
+
+	/**
+	 * Prepares links for the user request.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param WP_Post $user User object.
+	 * @return array Links for the given user.
+	 */
+	protected function prepare_links( $user ) {
+		$links = array(
+			'self' => array(
+				'href' => rest_url( sprintf( '%s/%s/%d', $this->namespace, $this->rest_base, $user->ID ) ),
+			),
+			'collection' => array(
+				'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
+			),
+		);
+
+		return $links;
+	}
+
+	/**
+	 * Prepares a single user for creation or update.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param WP_REST_Request $request Request object.
+	 * @return object $prepared_user User object.
+	 */
+	protected function prepare_item_for_database( $request ) {
+		$prepared_user = new stdClass;
+
+		$schema = $this->get_item_schema();
+
+		// required arguments.
+		if ( isset( $request['email'] ) && ! empty( $schema['properties']['email'] ) ) {
+			$prepared_user->user_email = $request['email'];
+		}
+
+		if ( isset( $request['username'] ) && ! empty( $schema['properties']['username'] ) ) {
+			$prepared_user->user_login = $request['username'];
+		}
+
+		if ( isset( $request['password'] ) && ! empty( $schema['properties']['password'] ) ) {
+			$prepared_user->user_pass = $request['password'];
+		}
+
+		// optional arguments.
+		if ( isset( $request['id'] ) ) {
+			$prepared_user->ID = absint( $request['id'] );
+		}
+
+		if ( isset( $request['name'] ) && ! empty( $schema['properties']['name'] ) ) {
+			$prepared_user->display_name = $request['name'];
+		}
+
+		if ( isset( $request['first_name'] ) && ! empty( $schema['properties']['first_name'] ) ) {
+			$prepared_user->first_name = $request['first_name'];
+		}
+
+		if ( isset( $request['last_name'] ) && ! empty( $schema['properties']['last_name'] ) ) {
+			$prepared_user->last_name = $request['last_name'];
+		}
+
+		if ( isset( $request['nickname'] ) && ! empty( $schema['properties']['nickname'] ) ) {
+			$prepared_user->nickname = $request['nickname'];
+		}
+
+		if ( isset( $request['slug'] ) && ! empty( $schema['properties']['slug'] ) ) {
+			$prepared_user->user_nicename = $request['slug'];
+		}
+
+		if ( isset( $request['description'] ) && ! empty( $schema['properties']['description'] ) ) {
+			$prepared_user->description = $request['description'];
+		}
+
+		if ( isset( $request['url'] ) && ! empty( $schema['properties']['url'] ) ) {
+			$prepared_user->user_url = $request['url'];
+		}
+
+		if ( isset( $request['locale'] ) && ! empty( $schema['properties']['locale'] ) ) {
+			$prepared_user->locale = $request['locale'];
+		}
+
+		// setting roles will be handled outside of this function.
+		if ( isset( $request['roles'] ) ) {
+			$prepared_user->role = false;
+		}
+
+		/**
+		 * Filters user data before insertion via the REST API.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param object          $prepared_user User object.
+		 * @param WP_REST_Request $request       Request object.
+		 */
+		return apply_filters( 'rest_pre_insert_user', $prepared_user, $request );
+	}
+
+	/**
+	 * Determines if the current user is allowed to make the desired roles change.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param integer $user_id User ID.
+	 * @param array   $roles   New user roles.
+	 * @return true|WP_Error True if the current user is allowed to make the role change,
+	 *                       otherwise a WP_Error object.
+	 */
+	protected function check_role_update( $user_id, $roles ) {
+		global $wp_roles;
+
+		foreach ( $roles as $role ) {
+
+			if ( ! isset( $wp_roles->role_objects[ $role ] ) ) {
+				/* translators: %s: role key */
+				return new WP_Error( 'rest_user_invalid_role', sprintf( __( 'The role %s does not exist.' ), $role ), array( 'status' => 400 ) );
+			}
+
+			$potential_role = $wp_roles->role_objects[ $role ];
+
+			/*
+			 * Don't let anyone with 'edit_users' (admins) edit their own role to something without it.
+			 * Multisite super admins can freely edit their blog roles -- they possess all caps.
+			 */
+			if ( ! ( is_multisite()
+				&& current_user_can( 'manage_sites' ) )
+				&& get_current_user_id() === $user_id
+				&& ! $potential_role->has_cap( 'edit_users' )
+			) {
+				return new WP_Error( 'rest_user_invalid_role', __( 'Sorry, you are not allowed to give users that role.' ), array( 'status' => rest_authorization_required_code() ) );
+			}
+
+			/** Include admin functions to get access to get_editable_roles() */
+			require_once ABSPATH . 'wp-admin/includes/admin.php';
+
+			// The new role must be editable by the logged-in user.
+			$editable_roles = get_editable_roles();
+
+			if ( empty( $editable_roles[ $role ] ) ) {
+				return new WP_Error( 'rest_user_invalid_role', __( 'Sorry, you are not allowed to give users that role.' ), array( 'status' => 403 ) );
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Check a username for the REST API.
+	 *
+	 * Performs a couple of checks like edit_user() in wp-admin/includes/user.php.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param  mixed            $value   The username submitted in the request.
+	 * @param  WP_REST_Request  $request Full details about the request.
+	 * @param  string           $param   The parameter name.
+	 * @return WP_Error|string The sanitized username, if valid, otherwise an error.
+	 */
+	public function check_username( $value, $request, $param ) {
+		$username = (string) $value;
+
+		if ( ! validate_username( $username ) ) {
+			return new WP_Error( 'rest_user_invalid_username', __( 'Username contains invalid characters.' ), array( 'status' => 400 ) );
+		}
+
+		/** This filter is documented in wp-includes/user.php */
+		$illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
+
+		if ( in_array( strtolower( $username ), array_map( 'strtolower', $illegal_logins ) ) ) {
+			return new WP_Error( 'rest_user_invalid_username', __( 'Sorry, that username is not allowed.' ), array( 'status' => 400 ) );
+		}
+
+		return $username;
+	}
+
+	/**
+	 * Check a user password for the REST API.
+	 *
+	 * Performs a couple of checks like edit_user() in wp-admin/includes/user.php.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param  mixed            $value   The password submitted in the request.
+	 * @param  WP_REST_Request  $request Full details about the request.
+	 * @param  string           $param   The parameter name.
+	 * @return WP_Error|string The sanitized password, if valid, otherwise an error.
+	 */
+	public function check_user_password( $value, $request, $param ) {
+		$password = (string) $value;
+
+		if ( empty( $password ) ) {
+			return new WP_Error( 'rest_user_invalid_password', __( 'Passwords cannot be empty.' ), array( 'status' => 400 ) );
+		}
+
+		if ( false !== strpos( $password, "\\" ) ) {
+			return new WP_Error( 'rest_user_invalid_password', __( 'Passwords cannot contain the "\\" character.' ), array( 'status' => 400 ) );
+		}
+
+		return $password;
+	}
+
+	/**
+	 * Retrieves the user's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		$schema = array(
+			'$schema'    => 'http://json-schema.org/schema#',
+			'title'      => 'user',
+			'type'       => 'object',
+			'properties' => array(
+				'id'          => array(
+					'description' => __( 'Unique identifier for the user.' ),
+					'type'        => 'integer',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'readonly'    => true,
+				),
+				'username'    => array(
+					'description' => __( 'Login name for the user.' ),
+					'type'        => 'string',
+					'context'     => array( 'edit' ),
+					'required'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => array( $this, 'check_username' ),
+					),
+				),
+				'name'        => array(
+					'description' => __( 'Display name for the user.' ),
+					'type'        => 'string',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'first_name'  => array(
+					'description' => __( 'First name for the user.' ),
+					'type'        => 'string',
+					'context'     => array( 'edit' ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'last_name'   => array(
+					'description' => __( 'Last name for the user.' ),
+					'type'        => 'string',
+					'context'     => array( 'edit' ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'email'       => array(
+					'description' => __( 'The email address for the user.' ),
+					'type'        => 'string',
+					'format'      => 'email',
+					'context'     => array( 'edit' ),
+					'required'    => true,
+				),
+				'url'         => array(
+					'description' => __( 'URL of the user.' ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'context'     => array( 'embed', 'view', 'edit' ),
+				),
+				'description' => array(
+					'description' => __( 'Description of the user.' ),
+					'type'        => 'string',
+					'context'     => array( 'embed', 'view', 'edit' ),
+				),
+				'link'        => array(
+					'description' => __( 'Author URL of the user.' ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'readonly'    => true,
+				),
+				'locale'    => array(
+					'description' => __( 'Locale for the user.' ),
+					'type'        => 'string',
+					'enum'        => array_merge( array( '', 'en_US' ), get_available_languages() ),
+					'context'     => array( 'edit' ),
+				),
+				'nickname'    => array(
+					'description' => __( 'The nickname for the user.' ),
+					'type'        => 'string',
+					'context'     => array( 'edit' ),
+					'arg_options' => array(
+						'sanitize_callback' => 'sanitize_text_field',
+					),
+				),
+				'slug'        => array(
+					'description' => __( 'An alphanumeric identifier for the user.' ),
+					'type'        => 'string',
+					'context'     => array( 'embed', 'view', 'edit' ),
+					'arg_options' => array(
+						'sanitize_callback' => array( $this, 'sanitize_slug' ),
+					),
+				),
+				'registered_date' => array(
+					'description' => __( 'Registration date for the user.' ),
+					'type'        => 'string',
+					'format'      => 'date-time',
+					'context'     => array( 'edit' ),
+					'readonly'    => true,
+				),
+				'roles'           => array(
+					'description' => __( 'Roles assigned to the user.' ),
+					'type'        => 'array',
+					'items'       => array(
+						'type'    => 'string',
+					),
+					'context'     => array( 'edit' ),
+				),
+				'password'        => array(
+					'description' => __( 'Password for the user (never included).' ),
+					'type'        => 'string',
+					'context'     => array(), // Password is never displayed.
+					'required'    => true,
+					'arg_options' => array(
+						'sanitize_callback' => array( $this, 'check_user_password' ),
+					),
+				),
+				'capabilities'    => array(
+					'description' => __( 'All capabilities assigned to the user.' ),
+					'type'        => 'object',
+					'context'     => array( 'edit' ),
+					'readonly'    => true,
+				),
+				'extra_capabilities' => array(
+					'description' => __( 'Any extra capabilities assigned to the user.' ),
+					'type'        => 'object',
+					'context'     => array( 'edit' ),
+					'readonly'    => true,
+				),
+			),
+		);
+
+		if ( get_option( 'show_avatars' ) ) {
+			$avatar_properties = array();
+
+			$avatar_sizes = rest_get_avatar_sizes();
+
+			foreach ( $avatar_sizes as $size ) {
+				$avatar_properties[ $size ] = array(
+					/* translators: %d: avatar image size in pixels */
+					'description' => sprintf( __( 'Avatar URL with image size of %d pixels.' ), $size ),
+					'type'        => 'string',
+					'format'      => 'uri',
+					'context'     => array( 'embed', 'view', 'edit' ),
+				);
+			}
+
+			$schema['properties']['avatar_urls']  = array(
+				'description' => __( 'Avatar URLs for the user.' ),
+				'type'        => 'object',
+				'context'     => array( 'embed', 'view', 'edit' ),
+				'readonly'    => true,
+				'properties'  => $avatar_properties,
+			);
+		}
+
+		$schema['properties']['meta'] = $this->meta->get_field_schema();
+
+		return $this->add_additional_fields_schema( $schema );
+	}
+
+	/**
+	 * Retrieves the query params for collections.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return array Collection parameters.
+	 */
+	public function get_collection_params() {
+		$query_params = parent::get_collection_params();
+
+		$query_params['context']['default'] = 'view';
+
+		$query_params['exclude'] = array(
+			'description'        => __( 'Ensure result set excludes specific IDs.' ),
+			'type'               => 'array',
+			'items'              => array(
+				'type'           => 'integer',
+			),
+			'default'            => array(),
+		);
+
+		$query_params['include'] = array(
+			'description'        => __( 'Limit result set to specific IDs.' ),
+			'type'               => 'array',
+			'items'              => array(
+				'type'           => 'integer',
+			),
+			'default'            => array(),
+		);
+
+		$query_params['offset'] = array(
+			'description'        => __( 'Offset the result set by a specific number of items.' ),
+			'type'               => 'integer',
+		);
+
+		$query_params['order'] = array(
+			'default'            => 'asc',
+			'description'        => __( 'Order sort attribute ascending or descending.' ),
+			'enum'               => array( 'asc', 'desc' ),
+			'type'               => 'string',
+		);
+
+		$query_params['orderby'] = array(
+			'default'            => 'name',
+			'description'        => __( 'Sort collection by object attribute.' ),
+			'enum'               => array(
+				'id',
+				'include',
+				'name',
+				'registered_date',
+				'slug',
+				'email',
+				'url',
+			),
+			'type'               => 'string',
+		);
+
+		$query_params['slug']    = array(
+			'description'        => __( 'Limit result set to users with a specific slug.' ),
+			'type'               => 'string',
+		);
+
+		$query_params['roles']   = array(
+			'description'        => __( 'Limit result set to users matching at least one specific role provided. Accepts csv list or single role.' ),
+			'type'               => 'array',
+			'items'              => array(
+				'type'           => 'string',
+			),
+		);
+
+		/**
+		 * Filter collection parameters for the users controller.
+		 *
+		 * This filter registers the collection parameter, but does not map the
+		 * collection parameter to an internal WP_User_Query parameter.  Use the
+		 * `rest_user_query` filter to set WP_User_Query arguments.
+		 *
+		 * @since 4.7.0
+		 *
+		 * @param $params JSON Schema-formatted collection parameters.
+		 */
+		return apply_filters( 'rest_user_collection_params', $query_params );
+	}
+}
diff --git a/wp-includes/rest-api/fields/class-wp-rest-comment-meta-fields.php b/wp-includes/rest-api/fields/class-wp-rest-comment-meta-fields.php
new file mode 100644
index 000000000..007f66b6c
--- /dev/null
+++ b/wp-includes/rest-api/fields/class-wp-rest-comment-meta-fields.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * REST API: WP_REST_Comment_Meta_Fields class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class to manage comment meta via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Meta_Fields
+ */
+class WP_REST_Comment_Meta_Fields extends WP_REST_Meta_Fields {
+
+	/**
+	 * Retrieves the object type for comment meta.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return string The meta type.
+	 */
+	protected function get_meta_type() {
+		return 'comment';
+	}
+
+	/**
+	 * Retrieves the type for register_rest_field() in the context of comments.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return string The REST field type.
+	 */
+	public function get_rest_field_type() {
+		return 'comment';
+	}
+}
diff --git a/wp-includes/rest-api/fields/class-wp-rest-meta-fields.php b/wp-includes/rest-api/fields/class-wp-rest-meta-fields.php
new file mode 100644
index 000000000..eaf70a578
--- /dev/null
+++ b/wp-includes/rest-api/fields/class-wp-rest-meta-fields.php
@@ -0,0 +1,470 @@
+<?php
+/**
+ * REST API: WP_REST_Meta_Fields class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class to manage meta values for an object via the REST API.
+ *
+ * @since 4.7.0
+ */
+abstract class WP_REST_Meta_Fields {
+
+	/**
+	 * Retrieves the object meta type.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return string One of 'post', 'comment', 'term', 'user', or anything
+	 *                else supported by `_get_meta_table()`.
+	 */
+	abstract protected function get_meta_type();
+
+	/**
+	 * Retrieves the object type for register_rest_field().
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return string The REST field type, such as post type name, taxonomy name, 'comment', or `user`.
+	 */
+	abstract protected function get_rest_field_type();
+
+	/**
+	 * Registers the meta field.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_field()
+	 */
+	public function register_field() {
+		register_rest_field( $this->get_rest_field_type(), 'meta', array(
+			'get_callback'    => array( $this, 'get_value' ),
+			'update_callback' => array( $this, 'update_value' ),
+			'schema'          => $this->get_field_schema(),
+		));
+	}
+
+	/**
+	 * Retrieves the meta field value.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param int             $object_id Object ID to fetch meta for.
+	 * @param WP_REST_Request $request   Full details about the request.
+	 * @return WP_Error|object Object containing the meta values by name, otherwise WP_Error object.
+	 */
+	public function get_value( $object_id, $request ) {
+		$fields   = $this->get_registered_fields();
+		$response = array();
+
+		foreach ( $fields as $meta_key => $args ) {
+			$name = $args['name'];
+			$all_values = get_metadata( $this->get_meta_type(), $object_id, $meta_key, false );
+			if ( $args['single'] ) {
+				if ( empty( $all_values ) ) {
+					$value = $args['schema']['default'];
+				} else {
+					$value = $all_values[0];
+				}
+				$value = $this->prepare_value_for_response( $value, $request, $args );
+			} else {
+				$value = array();
+				foreach ( $all_values as $row ) {
+					$value[] = $this->prepare_value_for_response( $row, $request, $args );
+				}
+			}
+
+			$response[ $name ] = $value;
+		}
+
+		return $response;
+	}
+
+	/**
+	 * Prepares a meta value for a response.
+	 *
+	 * This is required because some native types cannot be stored correctly
+	 * in the database, such as booleans. We need to cast back to the relevant
+	 * type before passing back to JSON.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param mixed           $value   Meta value to prepare.
+	 * @param WP_REST_Request $request Current request object.
+	 * @param array           $args    Options for the field.
+	 * @return mixed Prepared value.
+	 */
+	protected function prepare_value_for_response( $value, $request, $args ) {
+		if ( ! empty( $args['prepare_callback'] ) ) {
+			$value = call_user_func( $args['prepare_callback'], $value, $request, $args );
+		}
+
+		return $value;
+	}
+
+	/**
+	 * Updates meta values.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param array           $meta      Array of meta parsed from the request.
+	 * @param int             $object_id Object ID to fetch meta for.
+	 * @return WP_Error|null WP_Error if one occurs, null on success.
+	 */
+	public function update_value( $meta, $object_id ) {
+		$fields = $this->get_registered_fields();
+		foreach ( $fields as $meta_key => $args ) {
+			$name = $args['name'];
+			if ( ! array_key_exists( $name, $meta ) ) {
+				continue;
+			}
+
+			/*
+			 * A null value means reset the field, which is essentially deleting it
+			 * from the database and then relying on the default value.
+			 */
+			if ( is_null( $meta[ $name ] ) ) {
+				$result = $this->delete_meta_value( $object_id, $meta_key, $name );
+				if ( is_wp_error( $result ) ) {
+					return $result;
+				}
+				continue;
+			}
+
+			$is_valid = rest_validate_value_from_schema( $meta[ $name ], $args['schema'], 'meta.' . $name );
+			if ( is_wp_error( $is_valid ) ) {
+				$is_valid->add_data( array( 'status' => 400 ) );
+				return $is_valid;
+			}
+
+			$value = rest_sanitize_value_from_schema( $meta[ $name ], $args['schema'] );
+
+			if ( $args['single'] ) {
+				$result = $this->update_meta_value( $object_id, $meta_key, $name, $value );
+			} else {
+				$result = $this->update_multi_meta_value( $object_id, $meta_key, $name, $value );
+			}
+
+			if ( is_wp_error( $result ) ) {
+				return $result;
+			}
+		}
+
+		return null;
+	}
+
+	/**
+	 * Deletes a meta value for an object.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param int    $object_id Object ID the field belongs to.
+	 * @param string $meta_key  Key for the field.
+	 * @param string $name      Name for the field that is exposed in the REST API.
+	 * @return bool|WP_Error True if meta field is deleted, WP_Error otherwise.
+	 */
+	protected function delete_meta_value( $object_id, $meta_key, $name ) {
+		$meta_type = $this->get_meta_type();
+		if ( ! current_user_can( "delete_{$meta_type}_meta", $object_id, $meta_key ) ) {
+			return new WP_Error(
+				'rest_cannot_delete',
+				/* translators: %s: custom field key */
+				sprintf( __( 'Sorry, you are not allowed to edit the %s custom field.' ), $name ),
+				array( 'key' => $name, 'status' => rest_authorization_required_code() )
+			);
+		}
+
+		if ( ! delete_metadata( $meta_type, $object_id, wp_slash( $meta_key ) ) ) {
+			return new WP_Error(
+				'rest_meta_database_error',
+				__( 'Could not delete meta value from database.' ),
+				array( 'key' => $name, 'status' => WP_Http::INTERNAL_SERVER_ERROR )
+			);
+		}
+
+		return true;
+	}
+
+	/**
+	 * Updates multiple meta values for an object.
+	 *
+	 * Alters the list of values in the database to match the list of provided values.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param int    $object_id Object ID to update.
+	 * @param string $meta_key  Key for the custom field.
+	 * @param string $name      Name for the field that is exposed in the REST API.
+	 * @param array  $values    List of values to update to.
+	 * @return bool|WP_Error True if meta fields are updated, WP_Error otherwise.
+	 */
+	protected function update_multi_meta_value( $object_id, $meta_key, $name, $values ) {
+		$meta_type = $this->get_meta_type();
+		if ( ! current_user_can( "edit_{$meta_type}_meta", $object_id, $meta_key ) ) {
+			return new WP_Error(
+				'rest_cannot_update',
+				/* translators: %s: custom field key */
+				sprintf( __( 'Sorry, you are not allowed to edit the %s custom field.' ), $name ),
+				array( 'key' => $name, 'status' => rest_authorization_required_code() )
+			);
+		}
+
+		$current = get_metadata( $meta_type, $object_id, $meta_key, false );
+
+		$to_remove = $current;
+		$to_add    = $values;
+
+		foreach ( $to_add as $add_key => $value ) {
+			$remove_keys = array_keys( $to_remove, $value, true );
+
+			if ( empty( $remove_keys ) ) {
+				continue;
+			}
+
+			if ( count( $remove_keys ) > 1 ) {
+				// To remove, we need to remove first, then add, so don't touch.
+				continue;
+			}
+
+			$remove_key = $remove_keys[0];
+
+			unset( $to_remove[ $remove_key ] );
+			unset( $to_add[ $add_key ] );
+		}
+
+		// `delete_metadata` removes _all_ instances of the value, so only call once.
+		$to_remove = array_unique( $to_remove );
+
+		foreach ( $to_remove as $value ) {
+			if ( ! delete_metadata( $meta_type, $object_id, wp_slash( $meta_key ), wp_slash( $value ) ) ) {
+				return new WP_Error(
+					'rest_meta_database_error',
+					__( 'Could not update meta value in database.' ),
+					array( 'key' => $name, 'status' => WP_Http::INTERNAL_SERVER_ERROR )
+				);
+			}
+		}
+
+		foreach ( $to_add as $value ) {
+			if ( ! add_metadata( $meta_type, $object_id, wp_slash( $meta_key ), wp_slash( $value ) ) ) {
+				return new WP_Error(
+					'rest_meta_database_error',
+					__( 'Could not update meta value in database.' ),
+					array( 'key' => $name, 'status' => WP_Http::INTERNAL_SERVER_ERROR )
+				);
+			}
+		}
+
+		return true;
+	}
+
+	/**
+	 * Updates a meta value for an object.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @param int    $object_id Object ID to update.
+	 * @param string $meta_key  Key for the custom field.
+	 * @param string $name      Name for the field that is exposed in the REST API.
+	 * @param mixed  $value     Updated value.
+	 * @return bool|WP_Error True if the meta field was updated, WP_Error otherwise.
+	 */
+	protected function update_meta_value( $object_id, $meta_key, $name, $value ) {
+		$meta_type = $this->get_meta_type();
+		if ( ! current_user_can(  "edit_{$meta_type}_meta", $object_id, $meta_key ) ) {
+			return new WP_Error(
+				'rest_cannot_update',
+				/* translators: %s: custom field key */
+				sprintf( __( 'Sorry, you are not allowed to edit the %s custom field.' ), $name ),
+				array( 'key' => $name, 'status' => rest_authorization_required_code() )
+			);
+		}
+
+		$meta_key   = wp_slash( $meta_key );
+		$meta_value = wp_slash( $value );
+
+		// Do the exact same check for a duplicate value as in update_metadata() to avoid update_metadata() returning false.
+		$old_value = get_metadata( $meta_type, $object_id, $meta_key );
+
+		if ( 1 === count( $old_value ) ) {
+			if ( $old_value[0] === $meta_value ) {
+				return true;
+			}
+		}
+
+		if ( ! update_metadata( $meta_type, $object_id, $meta_key, $meta_value ) ) {
+			return new WP_Error(
+				'rest_meta_database_error',
+				__( 'Could not update meta value in database.' ),
+				array( 'key' => $name, 'status' => WP_Http::INTERNAL_SERVER_ERROR )
+			);
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves all the registered meta fields.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return array Registered fields.
+	 */
+	protected function get_registered_fields() {
+		$registered = array();
+
+		foreach ( get_registered_meta_keys( $this->get_meta_type() ) as $name => $args ) {
+			if ( empty( $args['show_in_rest'] ) ) {
+				continue;
+			}
+
+			$rest_args = array();
+
+			if ( is_array( $args['show_in_rest'] ) ) {
+				$rest_args = $args['show_in_rest'];
+			}
+
+			$default_args = array(
+				'name'             => $name,
+				'single'           => $args['single'],
+				'type'             => ! empty( $args['type'] ) ? $args['type'] : null,
+				'schema'           => array(),
+				'prepare_callback' => array( $this, 'prepare_value' ),
+			);
+
+			$default_schema = array(
+				'type'        => $default_args['type'],
+				'description' => empty( $args['description'] ) ? '' : $args['description'],
+				'default'     => isset( $args['default'] ) ? $args['default'] : null,
+			);
+
+			$rest_args = array_merge( $default_args, $rest_args );
+			$rest_args['schema'] = array_merge( $default_schema, $rest_args['schema'] );
+
+			$type = ! empty( $rest_args['type'] ) ? $rest_args['type'] : null;
+			$type = ! empty( $rest_args['schema']['type'] ) ? $rest_args['schema']['type'] : $type;
+
+			if ( ! in_array( $type, array( 'string', 'boolean', 'integer', 'number' ) ) ) {
+				continue;
+			}
+
+			if ( empty( $rest_args['single'] ) ) {
+				$rest_args['schema']['items'] = array(
+					'type' => $rest_args['type'],
+				);
+				$rest_args['schema']['type'] = 'array';
+			}
+
+			$registered[ $name ] = $rest_args;
+		}
+
+		return $registered;
+	}
+
+	/**
+	 * Retrieves the object's meta schema, conforming to JSON Schema.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return array Field schema data.
+	 */
+	public function get_field_schema() {
+		$fields = $this->get_registered_fields();
+
+		$schema = array(
+			'description' => __( 'Meta fields.' ),
+			'type'        => 'object',
+			'context'     => array( 'view', 'edit' ),
+			'properties'  => array(),
+			'arg_options' => array(
+				'sanitize_callback' => null,
+				'validate_callback' => array( $this, 'check_meta_is_array' ),
+			),
+		);
+
+		foreach ( $fields as $args ) {
+			$schema['properties'][ $args['name'] ] = $args['schema'];
+		}
+
+		return $schema;
+	}
+
+	/**
+	 * Prepares a meta value for output.
+	 *
+	 * Default preparation for meta fields. Override by passing the
+	 * `prepare_callback` in your `show_in_rest` options.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param mixed           $value   Meta value from the database.
+	 * @param WP_REST_Request $request Request object.
+	 * @param array           $args    REST-specific options for the meta key.
+	 * @return mixed Value prepared for output. If a non-JsonSerializable object, null.
+	 */
+	public static function prepare_value( $value, $request, $args ) {
+		$type = $args['schema']['type'];
+
+		// For multi-value fields, check the item type instead.
+		if ( 'array' === $type && ! empty( $args['schema']['items']['type'] ) ) {
+			$type = $args['schema']['items']['type'];
+		}
+
+		switch ( $type ) {
+			case 'string':
+				$value = (string) $value;
+				break;
+			case 'integer':
+				$value = (int) $value;
+				break;
+			case 'number':
+				$value = (float) $value;
+				break;
+			case 'boolean':
+				$value = (bool) $value;
+				break;
+		}
+
+		// Don't allow objects to be output.
+		if ( is_object( $value ) && ! ( $value instanceof JsonSerializable ) ) {
+			return null;
+		}
+
+		return $value;
+	}
+
+	/**
+	 * Check the 'meta' value of a request is an associative array.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param  mixed           $value   The meta value submitted in the request.
+	 * @param  WP_REST_Request $request Full details about the request.
+	 * @param  string          $param   The parameter name.
+	 * @return WP_Error|string The meta array, if valid, otherwise an error.
+	 */
+	public function check_meta_is_array( $value, $request, $param ) {
+		if ( ! is_array( $value ) ) {
+			return false;
+		}
+
+		return $value;
+	}
+}
diff --git a/wp-includes/rest-api/fields/class-wp-rest-post-meta-fields.php b/wp-includes/rest-api/fields/class-wp-rest-post-meta-fields.php
new file mode 100644
index 000000000..17d87fa44
--- /dev/null
+++ b/wp-includes/rest-api/fields/class-wp-rest-post-meta-fields.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * REST API: WP_REST_Post_Meta_Fields class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to manage meta values for posts via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Meta_Fields
+ */
+class WP_REST_Post_Meta_Fields extends WP_REST_Meta_Fields {
+
+	/**
+	 * Post type to register fields for.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $post_type;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string $post_type Post type to register fields for.
+	 */
+	public function __construct( $post_type ) {
+		$this->post_type = $post_type;
+	}
+
+	/**
+	 * Retrieves the object meta type.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return string The meta type.
+	 */
+	protected function get_meta_type() {
+		return 'post';
+	}
+
+	/**
+	 * Retrieves the type for register_rest_field().
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @see register_rest_field()
+	 *
+	 * @return string The REST field type.
+	 */
+	public function get_rest_field_type() {
+		return $this->post_type;
+	}
+}
diff --git a/wp-includes/rest-api/fields/class-wp-rest-term-meta-fields.php b/wp-includes/rest-api/fields/class-wp-rest-term-meta-fields.php
new file mode 100644
index 000000000..da1349b6a
--- /dev/null
+++ b/wp-includes/rest-api/fields/class-wp-rest-term-meta-fields.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * REST API: WP_REST_Term_Meta_Fields class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to manage meta values for terms via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Meta_Fields
+ */
+class WP_REST_Term_Meta_Fields extends WP_REST_Meta_Fields {
+
+	/**
+	 * Taxonomy to register fields for.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $taxonomy;
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @param string $taxonomy Taxonomy to register fields for.
+	 */
+	public function __construct( $taxonomy ) {
+		$this->taxonomy = $taxonomy;
+	}
+
+	/**
+	 * Retrieves the object meta type.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return string The meta type.
+	 */
+	protected function get_meta_type() {
+		return 'term';
+	}
+
+	/**
+	 * Retrieves the type for register_rest_field().
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return string The REST field type.
+	 */
+	public function get_rest_field_type() {
+		return 'post_tag' === $this->taxonomy ? 'tag' : $this->taxonomy;
+	}
+}
diff --git a/wp-includes/rest-api/fields/class-wp-rest-user-meta-fields.php b/wp-includes/rest-api/fields/class-wp-rest-user-meta-fields.php
new file mode 100644
index 000000000..dcc9be672
--- /dev/null
+++ b/wp-includes/rest-api/fields/class-wp-rest-user-meta-fields.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * REST API: WP_REST_User_Meta_Fields class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.7.0
+ */
+
+/**
+ * Core class used to manage meta values for users via the REST API.
+ *
+ * @since 4.7.0
+ *
+ * @see WP_REST_Meta_Fields
+ */
+class WP_REST_User_Meta_Fields extends WP_REST_Meta_Fields {
+
+	/**
+	 * Retrieves the object meta type.
+	 *
+	 * @since 4.7.0
+	 * @access protected
+	 *
+	 * @return string The user meta type.
+	 */
+	protected function get_meta_type() {
+		return 'user';
+	}
+
+	/**
+	 * Retrieves the type for register_rest_field().
+	 *
+	 * @since 4.7.0
+	 * @access public
+	 *
+	 * @return string The user REST field type.
+	 */
+	public function get_rest_field_type() {
+		return 'user';
+	}
+}
diff --git a/wp-includes/revision.php b/wp-includes/revision.php
index 07a986c00..c166fbf13 100644
--- a/wp-includes/revision.php
+++ b/wp-includes/revision.php
@@ -321,9 +321,10 @@ function _wp_put_post_revision( $post = null, $autosave = false ) {
  * @since 2.6.0
  *
  * @param int|WP_Post $post   The post ID or object.
- * @param string      $output Optional. OBJECT, ARRAY_A, or ARRAY_N.
+ * @param string      $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                            a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string      $filter Optional sanitation filter. See sanitize_post().
- * @return WP_Post|array|null Null if error or post object if success.
+ * @return WP_Post|array|null WP_Post (or array) on success, or null on failure.
  */
 function wp_get_post_revision(&$post, $output = OBJECT, $filter = 'raw') {
 	if ( !$revision = get_post( $post, OBJECT, $filter ) )
diff --git a/wp-includes/rss.php b/wp-includes/rss.php
index 4c3fb1516..208ca7200 100644
--- a/wp-includes/rss.php
+++ b/wp-includes/rss.php
@@ -60,15 +60,13 @@ class MagpieRSS {
 	 */
 	function __construct( $source ) {
 
-		# if PHP xml isn't compiled in, die
+		# Check if PHP xml isn't compiled
 		#
-		if ( !function_exists('xml_parser_create') )
-			trigger_error( "Failed to load PHP's XML Extension. https://secure.php.net/manual/en/ref.xml.php" );
-
-		$parser = @xml_parser_create();
+		if ( ! function_exists('xml_parser_create') ) {
+			return trigger_error( "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." );
+		}
 
-		if ( !is_resource($parser) )
-			trigger_error( "Failed to create an instance of PHP's XML parser. https://secure.php.net/manual/en/ref.xml.php");
+		$parser = xml_parser_create();
 
 		$this->parser = $parser;
 
@@ -743,7 +741,7 @@ class RSSCache {
 /*=======================================================================*\
 	Function:	set
 	Purpose:	add an item to the cache, keyed on url
-	Input:		url from wich the rss file was fetched
+	Input:		url from which the rss file was fetched
 	Output:		true on success
 \*=======================================================================*/
 	function set ($url, $rss) {
@@ -757,7 +755,7 @@ class RSSCache {
 /*=======================================================================*\
 	Function:	get
 	Purpose:	fetch an item from the cache
-	Input:		url from wich the rss file was fetched
+	Input:		url from which the rss file was fetched
 	Output:		cached object on HIT, false on MISS
 \*=======================================================================*/
 	function get ($url) {
@@ -778,7 +776,7 @@ class RSSCache {
 	Function:	check_cache
 	Purpose:	check a url for membership in the cache
 				and whether the object is older then MAX_AGE (ie. STALE)
-	Input:		url from wich the rss file was fetched
+	Input:		url from which the rss file was fetched
 	Output:		cached object on HIT, false on MISS
 \*=======================================================================*/
 	function check_cache ( $url ) {
@@ -811,7 +809,7 @@ class RSSCache {
 /*=======================================================================*\
 	Function:	file_name
 	Purpose:	map url to location in cache
-	Input:		url from wich the rss file was fetched
+	Input:		url from which the rss file was fetched
 	Output:		a file name
 \*=======================================================================*/
 	function file_name ($url) {
diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php
index d57dff6ba..be32073c0 100644
--- a/wp-includes/script-loader.php
+++ b/wp-includes/script-loader.php
@@ -16,6 +16,9 @@
  * @package WordPress
  */
 
+/** WordPress Dependency Class */
+require( ABSPATH . WPINC . '/class-wp-dependency.php' );
+
 /** WordPress Dependencies Class */
 require( ABSPATH . WPINC . '/class.wp-dependencies.php' );
 
@@ -74,8 +77,10 @@ function wp_default_scripts( &$scripts ) {
 
 	$scripts->add( 'common', "/wp-admin/js/common$suffix.js", array('jquery', 'hoverIntent', 'utils'), false, 1 );
 	did_action( 'init' ) && $scripts->localize( 'common', 'commonL10n', array(
-		'warnDelete' => __( "You are about to permanently delete these items.\n  'Cancel' to stop, 'OK' to delete." ),
-		'dismiss'    => __( 'Dismiss this notice.' ),
+		'warnDelete'   => __( "You are about to permanently delete these items.\n  'Cancel' to stop, 'OK' to delete." ),
+		'dismiss'      => __( 'Dismiss this notice.' ),
+		'collapseMenu' => __( 'Collapse Main menu' ),
+		'expandMenu'   => __( 'Expand Main menu' ),
 	) );
 
 	$scripts->add( 'wp-a11y', "/wp-includes/js/wp-a11y$suffix.js", array( 'jquery' ), false, 1 );
@@ -226,11 +231,12 @@ function wp_default_scripts( &$scripts ) {
 
 	// Strings for 'jquery-ui-autocomplete' live region messages
 	did_action( 'init' ) && $scripts->localize( 'jquery-ui-autocomplete', 'uiAutocompleteL10n', array(
-		'noResults' => __( 'No search results.' ),
+		'noResults' => __( 'No results found.' ),
 		/* translators: Number of results found when using jQuery UI Autocomplete */
 		'oneResult' => __( '1 result found. Use up and down arrow keys to navigate.' ),
 		/* translators: %d: Number of results found when using jQuery UI Autocomplete */
 		'manyResults' => __( '%d results found. Use up and down arrow keys to navigate.' ),
+		'itemSelected' => __( 'Item selected.' ),
 	) );
 
 	// deprecated, not used in core, most functionality is included in jQuery 1.3
@@ -238,7 +244,6 @@ function wp_default_scripts( &$scripts ) {
 
 	// jQuery plugins
 	$scripts->add( 'jquery-color', "/wp-includes/js/jquery/jquery.color.min.js", array('jquery'), '2.1.1', 1 );
-	$scripts->add( 'suggest', "/wp-includes/js/jquery/suggest$suffix.js", array('jquery'), '1.1-20110113', 1 );
 	$scripts->add( 'schedule', '/wp-includes/js/jquery/jquery.schedule.js', array('jquery'), '20m', 1 );
 	$scripts->add( 'jquery-query', "/wp-includes/js/jquery/jquery.query.js", array('jquery'), '2.1.7', 1 );
 	$scripts->add( 'jquery-serialize-object', "/wp-includes/js/jquery/jquery.serialize-object.js", array('jquery'), '0.2', 1 );
@@ -246,6 +251,9 @@ function wp_default_scripts( &$scripts ) {
 	$scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array('jquery', 'jquery-hotkeys'), false, 1 );
 	$scripts->add( 'jquery-touch-punch', "/wp-includes/js/jquery/jquery.ui.touch-punch.js", array('jquery-ui-widget', 'jquery-ui-mouse'), '0.2.2', 1 );
 
+	// Not used any more, registered for backwards compatibility.
+	$scripts->add( 'suggest', "/wp-includes/js/jquery/suggest$suffix.js", array('jquery'), '1.1-20110113', 1 );
+
 	// Masonry v2 depended on jQuery. v3 does not. The older jquery-masonry handle is a shiv.
 	// It sets jQuery as a dependency, as the theme may have been implicitly loading it this way.
 	$scripts->add( 'imagesloaded', "/wp-includes/js/imagesloaded.min.js", array(), '3.2.0', 1 );
@@ -281,6 +289,7 @@ function wp_default_scripts( &$scripts ) {
 		'upload_limit_exceeded' => __('You may only upload 1 file.'),
 		'http_error' => __('HTTP error.'),
 		'upload_failed' => __('Upload failed.'),
+		/* translators: 1: Opening link tag, 2: Closing link tag */
 		'big_upload_failed' => __('Please try uploading this file with the %1$sbrowser uploader%2$s.'),
 		'big_upload_queued' => __('%s exceeds the maximum upload size for the multi-file uploader when used in your browser.'),
 		'io_error' => __('IO error.'),
@@ -400,7 +409,7 @@ function wp_default_scripts( &$scripts ) {
 	$scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter', 'wp-util' ), false, 1 );
 	did_action( 'init' ) && $scripts->localize( 'user-profile', 'userProfileL10n', array(
 		'warn'     => __( 'Your new password has not been saved.' ),
-		'warnWeak' => __( 'Confirm use of weak password.' ),
+		'warnWeak' => __( 'Confirm use of weak password' ),
 		'show'     => __( 'Show' ),
 		'hide'     => __( 'Hide' ),
 		'cancel'   => __( 'Cancel' ),
@@ -444,10 +453,10 @@ function wp_default_scripts( &$scripts ) {
 
 	$scripts->add( 'customize-base',     "/wp-includes/js/customize-base$suffix.js",     array( 'jquery', 'json2', 'underscore' ), false, 1 );
 	$scripts->add( 'customize-loader',   "/wp-includes/js/customize-loader$suffix.js",   array( 'customize-base' ), false, 1 );
-	$scripts->add( 'customize-preview',  "/wp-includes/js/customize-preview$suffix.js",  array( 'customize-base' ), false, 1 );
+	$scripts->add( 'customize-preview',  "/wp-includes/js/customize-preview$suffix.js",  array( 'wp-a11y', 'customize-base' ), false, 1 );
 	$scripts->add( 'customize-models',   "/wp-includes/js/customize-models.js", array( 'underscore', 'backbone' ), false, 1 );
 	$scripts->add( 'customize-views',    "/wp-includes/js/customize-views.js",  array( 'jquery', 'underscore', 'imgareaselect', 'customize-models', 'media-editor', 'media-views' ), false, 1 );
-	$scripts->add( 'customize-controls', "/wp-admin/js/customize-controls$suffix.js", array( 'customize-base', 'wp-a11y' ), false, 1 );
+	$scripts->add( 'customize-controls', "/wp-admin/js/customize-controls$suffix.js", array( 'customize-base', 'wp-a11y', 'wp-util' ), false, 1 );
 	did_action( 'init' ) && $scripts->localize( 'customize-controls', '_wpCustomizeControlsL10n', array(
 		'activate'           => __( 'Save &amp; Activate' ),
 		'save'               => __( 'Save &amp; Publish' ),
@@ -459,8 +468,8 @@ function wp_default_scripts( &$scripts ) {
 		'notAllowed'         => __( 'Sorry, you are not allowed to customize this site.' ),
 		'previewIframeTitle' => __( 'Site Preview' ),
 		'loginIframeTitle'   => __( 'Session expired' ),
-		'collapseSidebar'    => __( 'Collapse Sidebar' ),
-		'expandSidebar'      => __( 'Expand Sidebar' ),
+		'collapseSidebar'    => _x( 'Hide Controls', 'label for hide controls button without length constraints' ),
+		'expandSidebar'      => _x( 'Show Controls', 'label for hide controls button without length constraints' ),
 		'untitledBlogName'   => __( '(Untitled)' ),
 		// Used for overriding the file types allowed in plupload.
 		'allowedFiles'       => __( 'Allowed Files' ),
@@ -473,6 +482,8 @@ function wp_default_scripts( &$scripts ) {
 	$scripts->add( 'customize-nav-menus', "/wp-admin/js/customize-nav-menus$suffix.js", array( 'jquery', 'wp-backbone', 'customize-controls', 'accordion', 'nav-menu' ), false, 1 );
 	$scripts->add( 'customize-preview-nav-menus', "/wp-includes/js/customize-preview-nav-menus$suffix.js", array( 'jquery', 'wp-util', 'customize-preview', 'customize-selective-refresh' ), false, 1 );
 
+	$scripts->add( 'wp-custom-header', "/wp-includes/js/wp-custom-header$suffix.js", array( 'wp-a11y' ), false, 1 );
+
 	$scripts->add( 'accordion', "/wp-admin/js/accordion$suffix.js", array( 'jquery' ), false, 1 );
 
 	$scripts->add( 'shortcode', "/wp-includes/js/shortcode$suffix.js", array( 'underscore' ), false, 1 );
@@ -493,6 +504,13 @@ function wp_default_scripts( &$scripts ) {
 	$scripts->add( 'media-audiovideo', "/wp-includes/js/media-audiovideo$suffix.js", array( 'media-editor' ), false, 1 );
 	$scripts->add( 'mce-view', "/wp-includes/js/mce-view$suffix.js", array( 'shortcode', 'jquery', 'media-views', 'media-audiovideo' ), false, 1 );
 
+	$scripts->add( 'wp-api', "/wp-includes/js/wp-api$suffix.js", array( 'jquery', 'backbone', 'underscore' ), false, 1 );
+	did_action( 'init' ) && $scripts->localize( 'wp-api', 'wpApiSettings', array(
+		'root'          => esc_url_raw( get_rest_url() ),
+		'nonce'         => wp_create_nonce( 'wp_rest' ),
+		'versionString' => 'wp/v2/',
+	) );
+
 	if ( is_admin() ) {
 		$scripts->add( 'admin-tags', "/wp-admin/js/tags$suffix.js", array( 'jquery', 'wp-ajax-response' ), false, 1 );
 		did_action( 'init' ) && $scripts->localize( 'admin-tags', 'tagsl10n', array(
@@ -520,9 +538,15 @@ function wp_default_scripts( &$scripts ) {
 			'postBoxEmptyString' => __( 'Drag boxes here' ),
 		) );
 
-		$scripts->add( 'tags-box', "/wp-admin/js/tags-box$suffix.js", array( 'jquery', 'suggest' ), false, 1 );
-		did_action( 'init' ) && $scripts->localize( 'tags-box', 'tagsBoxL10n', array(
+		$scripts->add( 'tags-box', "/wp-admin/js/tags-box$suffix.js", array( 'jquery', 'tags-suggest' ), false, 1 );
+
+		$scripts->add( 'tags-suggest', "/wp-admin/js/tags-suggest$suffix.js", array( 'jquery-ui-autocomplete', 'wp-a11y' ), false, 1 );
+		did_action( 'init' ) && $scripts->localize( 'tags-suggest', 'tagsSuggestL10n', array(
 			'tagDelimiter' => _x( ',', 'tag delimiter' ),
+			'removeTerm'   => __( 'Remove term:' ),
+			'termSelected' => __( 'Term selected.' ),
+			'termAdded'    => __( 'Term added.' ),
+			'termRemoved'  => __( 'Term removed.' ),
 		) );
 
 		$scripts->add( 'post', "/wp-admin/js/post$suffix.js", array( 'suggest', 'wp-lists', 'postbox', 'tags-box', 'underscore', 'word-count', 'wp-a11y' ), false, 1 );
@@ -581,7 +605,7 @@ function wp_default_scripts( &$scripts ) {
 
 		$scripts->add( 'theme', "/wp-admin/js/theme$suffix.js", array( 'wp-backbone', 'wp-a11y' ), false, 1 );
 
-		$scripts->add( 'inline-edit-post', "/wp-admin/js/inline-edit-post$suffix.js", array( 'jquery', 'suggest', 'wp-a11y' ), false, 1 );
+		$scripts->add( 'inline-edit-post', "/wp-admin/js/inline-edit-post$suffix.js", array( 'jquery', 'tags-suggest', 'wp-a11y' ), false, 1 );
 		did_action( 'init' ) && $scripts->localize( 'inline-edit-post', 'inlineEditL10n', array(
 			'error'      => __( 'Error while saving the changes.' ),
 			'ntdeltitle' => __( 'Remove From Bulk Edit' ),
@@ -603,7 +627,7 @@ function wp_default_scripts( &$scripts ) {
 			'ays' => __('Are you sure you want to install this plugin?')
 		) );
 
-		$scripts->add( 'updates', "/wp-admin/js/updates$suffix.js", array( 'jquery', 'wp-util', 'wp-a11y' ) );
+		$scripts->add( 'updates', "/wp-admin/js/updates$suffix.js", array( 'jquery', 'wp-util', 'wp-a11y' ), false, 1 );
 		did_action( 'init' ) && $scripts->localize( 'updates', '_wpUpdatesSettings', array(
 			'ajax_nonce' => wp_create_nonce( 'updates' ),
 			'l10n'       => array(
@@ -837,7 +861,7 @@ function wp_default_styles( &$styles ) {
 	$styles->add( 'editor-buttons',       "/wp-includes/css/editor$suffix.css", array( 'dashicons' ) );
 	$styles->add( 'media-views',          "/wp-includes/css/media-views$suffix.css", array( 'buttons', 'dashicons', 'wp-mediaelement' ) );
 	$styles->add( 'wp-pointer',           "/wp-includes/css/wp-pointer$suffix.css", array( 'dashicons' ) );
-	$styles->add( 'customize-preview',    "/wp-includes/css/customize-preview$suffix.css" );
+	$styles->add( 'customize-preview',    "/wp-includes/css/customize-preview$suffix.css", array( 'dashicons' ) );
 	$styles->add( 'wp-embed-template-ie', "/wp-includes/css/wp-embed-template-ie$suffix.css" );
 	$styles->add_data( 'wp-embed-template-ie', 'conditional', 'lte IE 8' );
 
@@ -859,7 +883,7 @@ function wp_default_styles( &$styles ) {
 	$rtl_styles = array(
 		// wp-admin
 		'common', 'forms', 'admin-menu', 'dashboard', 'list-tables', 'edit', 'revisions', 'media', 'themes', 'about', 'nav-menus',
-		'widgets', 'site-icon', 'l10n', 'install', 'wp-color-picker', 'customize-controls', 'customize-widgets', 'customize-nav-menus',
+		'widgets', 'site-icon', 'l10n', 'install', 'wp-color-picker', 'customize-controls', 'customize-widgets', 'customize-nav-menus', 'customize-preview',
 		'ie', 'login', 'press-this',
 		// wp-includes
 		'buttons', 'admin-bar', 'wp-auth-check', 'editor-buttons', 'media-views', 'wp-pointer',
diff --git a/wp-includes/session.php b/wp-includes/session.php
index 63ab8fe58..d9175c989 100644
--- a/wp-includes/session.php
+++ b/wp-includes/session.php
@@ -1,440 +1,11 @@
 <?php
 /**
- * Abstract class for managing user session tokens.
+ * Session API
  *
  * @since 4.0.0
  */
-abstract class WP_Session_Tokens {
 
-	/**
-	 * User ID.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 * @var int User ID.
-	 */
-	protected $user_id;
+_deprecated_file( basename( __FILE__ ), '4.7.0' );
 
-	/**
-	 * Protected constructor.
-	 *
-	 * @since 4.0.0
-	 *
-	 * @param int $user_id User whose session to manage.
-	 */
-	protected function __construct( $user_id ) {
-		$this->user_id = $user_id;
-	}
-
-	/**
-	 * Get a session token manager instance for a user.
-	 *
-	 * This method contains a filter that allows a plugin to swap out
-	 * the session manager for a subclass of WP_Session_Tokens.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 * @static
-	 *
-	 * @param int $user_id User whose session to manage.
-	 */
-	final public static function get_instance( $user_id ) {
-		/**
-		 * Filters the session token manager used.
-		 *
-		 * @since 4.0.0
-		 *
-		 * @param string $session Name of class to use as the manager.
-		 *                        Default 'WP_User_Meta_Session_Tokens'.
-		 */
-		$manager = apply_filters( 'session_token_manager', 'WP_User_Meta_Session_Tokens' );
-		return new $manager( $user_id );
-	}
-
-	/**
-	 * Hashes a session token for storage.
-	 *
-	 * @since 4.0.0
-	 * @access private
-	 *
-	 * @param string $token Session token to hash.
-	 * @return string A hash of the session token (a verifier).
-	 */
-	final private function hash_token( $token ) {
-		// If ext/hash is not present, use sha1() instead.
-		if ( function_exists( 'hash' ) ) {
-			return hash( 'sha256', $token );
-		} else {
-			return sha1( $token );
-		}
-	}
-
-	/**
-	 * Get a user's session.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $token Session token
-	 * @return array User session
-	 */
-	final public function get( $token ) {
-		$verifier = $this->hash_token( $token );
-		return $this->get_session( $verifier );
-	}
-
-	/**
-	 * Validate a user's session token as authentic.
-	 *
-	 * Checks that the given token is present and hasn't expired.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $token Token to verify.
-	 * @return bool Whether the token is valid for the user.
-	 */
-	final public function verify( $token ) {
-		$verifier = $this->hash_token( $token );
-		return (bool) $this->get_session( $verifier );
-	}
-
-	/**
-	 * Generate a session token and attach session information to it.
-	 *
-	 * A session token is a long, random string. It is used in a cookie
-	 * link that cookie to an expiration time and to ensure the cookie
-	 * becomes invalidated upon logout.
-	 *
-	 * This function generates a token and stores it with the associated
-	 * expiration time (and potentially other session information via the
-	 * {@see 'attach_session_information'} filter).
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param int $expiration Session expiration timestamp.
-	 * @return string Session token.
-	 */
-	final public function create( $expiration ) {
-		/**
-		 * Filters the information attached to the newly created session.
-		 *
-		 * Could be used in the future to attach information such as
-		 * IP address or user agent to a session.
-		 *
-		 * @since 4.0.0
-		 *
-		 * @param array $session Array of extra data.
-		 * @param int   $user_id User ID.
-		 */
-		$session = apply_filters( 'attach_session_information', array(), $this->user_id );
-		$session['expiration'] = $expiration;
-
-		// IP address.
-		if ( !empty( $_SERVER['REMOTE_ADDR'] ) ) {
-			$session['ip'] = $_SERVER['REMOTE_ADDR'];
-		}
-
-		// User-agent.
-		if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
-			$session['ua'] = wp_unslash( $_SERVER['HTTP_USER_AGENT'] );
-		}
-
-		// Timestamp
-		$session['login'] = time();
-
-		$token = wp_generate_password( 43, false, false );
-
-		$this->update( $token, $session );
-
-		return $token;
-	}
-
-	/**
-	 * Update a session token.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $token Session token to update.
-	 * @param array  $session Session information.
-	 */
-	final public function update( $token, $session ) {
-		$verifier = $this->hash_token( $token );
-		$this->update_session( $verifier, $session );
-	}
-
-	/**
-	 * Destroy a session token.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $token Session token to destroy.
-	 */
-	final public function destroy( $token ) {
-		$verifier = $this->hash_token( $token );
-		$this->update_session( $verifier, null );
-	}
-
-	/**
-	 * Destroy all session tokens for this user,
-	 * except a single token, presumably the one in use.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $token_to_keep Session token to keep.
-	 */
-	final public function destroy_others( $token_to_keep ) {
-		$verifier = $this->hash_token( $token_to_keep );
-		$session = $this->get_session( $verifier );
-		if ( $session ) {
-			$this->destroy_other_sessions( $verifier );
-		} else {
-			$this->destroy_all_sessions();
-		}
-	}
-
-	/**
-	 * Determine whether a session token is still valid,
-	 * based on expiration.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param array $session Session to check.
-	 * @return bool Whether session is valid.
-	 */
-	final protected function is_still_valid( $session ) {
-		return $session['expiration'] >= time();
-	}
-
-	/**
-	 * Destroy all session tokens for a user.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 */
-	final public function destroy_all() {
-		$this->destroy_all_sessions();
-	}
-
-	/**
-	 * Destroy all session tokens for all users.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 * @static
-	 */
-	final public static function destroy_all_for_all_users() {
-		$manager = apply_filters( 'session_token_manager', 'WP_User_Meta_Session_Tokens' );
-		call_user_func( array( $manager, 'drop_sessions' ) );
-	}
-
-	/**
-	 * Retrieve all sessions of a user.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @return array Sessions of a user.
-	 */
-	final public function get_all() {
-		return array_values( $this->get_sessions() );
-	}
-
-	/**
-	 * This method should retrieve all sessions of a user, keyed by verifier.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @return array Sessions of a user, keyed by verifier.
-	 */
-	abstract protected function get_sessions();
-
-	/**
-	 * This method should look up a session by its verifier (token hash).
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param string $verifier Verifier of the session to retrieve.
-	 * @return array|null The session, or null if it does not exist.
-	 */
-	abstract protected function get_session( $verifier );
-
-	/**
-	 * This method should update a session by its verifier.
-	 *
-	 * Omitting the second argument should destroy the session.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param string $verifier Verifier of the session to update.
-	 * @param array  $session  Optional. Session. Omitting this argument destroys the session.
-	 */
-	abstract protected function update_session( $verifier, $session = null );
-
-	/**
-	 * This method should destroy all session tokens for this user,
-	 * except a single session passed.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param string $verifier Verifier of the session to keep.
-	 */
-	abstract protected function destroy_other_sessions( $verifier );
-
-	/**
-	 * This method should destroy all sessions for a user.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 */
-	abstract protected function destroy_all_sessions();
-
-	/**
-	 * This static method should destroy all session tokens for all users.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 * @static
-	 */
-	public static function drop_sessions() {}
-}
-
-/**
- * Meta-based user sessions token manager.
- *
- * @since 4.0.0
- */
-class WP_User_Meta_Session_Tokens extends WP_Session_Tokens {
-
-	/**
-	 * Get all sessions of a user.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @return array Sessions of a user.
-	 */
-	protected function get_sessions() {
-		$sessions = get_user_meta( $this->user_id, 'session_tokens', true );
-
-		if ( ! is_array( $sessions ) ) {
-			return array();
-		}
-
-		$sessions = array_map( array( $this, 'prepare_session' ), $sessions );
-		return array_filter( $sessions, array( $this, 'is_still_valid' ) );
-	}
-
-	/**
-	 * Converts an expiration to an array of session information.
-	 *
-	 * @param mixed $session Session or expiration.
-	 * @return array Session.
-	 */
-	protected function prepare_session( $session ) {
-		if ( is_int( $session ) ) {
-			return array( 'expiration' => $session );
-		}
-
-		return $session;
-	}
-
-	/**
-	 * Retrieve a session by its verifier (token hash).
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param string $verifier Verifier of the session to retrieve.
-	 * @return array|null The session, or null if it does not exist
-	 */
-	protected function get_session( $verifier ) {
-		$sessions = $this->get_sessions();
-
-		if ( isset( $sessions[ $verifier ] ) ) {
-			return $sessions[ $verifier ];
-		}
-
-		return null;
-	}
-
-	/**
-	 * Update a session by its verifier.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param string $verifier Verifier of the session to update.
-	 * @param array  $session  Optional. Session. Omitting this argument destroys the session.
-	 */
-	protected function update_session( $verifier, $session = null ) {
-		$sessions = $this->get_sessions();
-
-		if ( $session ) {
-			$sessions[ $verifier ] = $session;
-		} else {
-			unset( $sessions[ $verifier ] );
-		}
-
-		$this->update_sessions( $sessions );
-	}
-
-	/**
-	 * Update a user's sessions in the usermeta table.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param array $sessions Sessions.
-	 */
-	protected function update_sessions( $sessions ) {
-		if ( $sessions ) {
-			update_user_meta( $this->user_id, 'session_tokens', $sessions );
-		} else {
-			delete_user_meta( $this->user_id, 'session_tokens' );
-		}
-	}
-
-	/**
-	 * Destroy all session tokens for a user, except a single session passed.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 *
-	 * @param string $verifier Verifier of the session to keep.
-	 */
-	protected function destroy_other_sessions( $verifier ) {
-		$session = $this->get_session( $verifier );
-		$this->update_sessions( array( $verifier => $session ) );
-	}
-
-	/**
-	 * Destroy all session tokens for a user.
-	 *
-	 * @since 4.0.0
-	 * @access protected
-	 */
-	protected function destroy_all_sessions() {
-		$this->update_sessions( array() );
-	}
-
-	/**
-	 * Destroy all session tokens for all users.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 * @static
-	 */
-	public static function drop_sessions() {
-		delete_metadata( 'user', 0, 'session_tokens', false, true );
-	}
-}
+require_once( ABSPATH . WPINC . '/class-wp-session-tokens.php' );
+require_once( ABSPATH . WPINC . '/class-wp-user-meta-session-tokens.php' );
\ No newline at end of file
diff --git a/wp-includes/shortcodes.php b/wp-includes/shortcodes.php
index e27670844..32720cd27 100644
--- a/wp-includes/shortcodes.php
+++ b/wp-includes/shortcodes.php
@@ -244,10 +244,11 @@ function do_shortcode( $content, $ignore_html = false ) {
  * 6 - An extra ] to allow for escaping shortcodes with double [[]]
  *
  * @since 2.5.0
+ * @since 4.4.0 Added the `$tagnames` parameter.
  *
  * @global array $shortcode_tags
  *
- * @param array $tagnames List of shortcodes to find. Optional. Defaults to all registered shortcodes.
+ * @param array $tagnames Optional. List of shortcodes to find. Defaults to all registered shortcodes.
  * @return string The shortcode search regular expression
  */
 function get_shortcode_regex( $tagnames = null ) {
@@ -321,13 +322,39 @@ function do_shortcode_tag( $m ) {
 		return $m[0];
 	}
 
-	if ( isset( $m[5] ) ) {
-		// enclosing tag - extra parameter
-		return $m[1] . call_user_func( $shortcode_tags[$tag], $attr, $m[5], $tag ) . $m[6];
-	} else {
-		// self-closing tag
-		return $m[1] . call_user_func( $shortcode_tags[$tag], $attr, null,  $tag ) . $m[6];
+	/**
+	 * Filters whether to call a shortcode callback.
+	 *
+	 * Passing a truthy value to the filter will effectively short-circuit the
+	 * shortcode generation process, returning that value instead.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param bool|string $return      Short-circuit return value. Either false or the value to replace the shortcode with.
+	 * @param string      $tag         Shortcode name.
+	 * @param array       $attr        Shortcode attributes array,
+	 * @param array       $m           Regular expression match array.
+	 */
+	$return = apply_filters( 'pre_do_shortcode_tag', false, $tag, $attr, $m );
+	if ( false !== $return ) {
+		return $return;
 	}
+
+	$content = isset( $m[5] ) ? $m[5] : null;
+
+	$output = $m[1] . call_user_func( $shortcode_tags[ $tag ], $attr, $content, $tag ) . $m[6];
+
+	/**
+	 * Filters the output created by a shortcode callback.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $output Shortcode output.
+	 * @param string $tag    Shortcode name.
+	 * @param array  $attr   Shortcode attributes array,
+	 * @param array  $m      Regular expression match array.
+	 */
+	return apply_filters( 'do_shortcode_tag', $output, $tag, $attr, $m );
 }
 
 /**
@@ -579,7 +606,20 @@ function strip_shortcodes( $content ) {
 
 	// Find all registered tag names in $content.
 	preg_match_all( '@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches );
-	$tagnames = array_intersect( array_keys( $shortcode_tags ), $matches[1] );
+
+	$tags_to_remove = array_keys( $shortcode_tags );
+
+	/**
+	 * Filters the list of shortcode tags to remove from the content.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array  $tag_array Array of shortcode tags to remove.
+	 * @param string $content   Content shortcodes are being removed from.
+	 */
+	$tags_to_remove = apply_filters( 'strip_shortcodes_tagnames', $tags_to_remove, $content );
+
+	$tagnames = array_intersect( $tags_to_remove, $matches[1] );
 
 	if ( empty( $tagnames ) ) {
 		return $content;
diff --git a/wp-includes/taxonomy.php b/wp-includes/taxonomy.php
index 70af35a32..f5c2f3863 100644
--- a/wp-includes/taxonomy.php
+++ b/wp-includes/taxonomy.php
@@ -61,6 +61,15 @@ function create_initial_taxonomies() {
 		'show_ui' => true,
 		'show_admin_column' => true,
 		'_builtin' => true,
+		'capabilities' => array(
+			'manage_terms' => 'manage_categories',
+			'edit_terms'   => 'edit_categories',
+			'delete_terms' => 'delete_categories',
+			'assign_terms' => 'assign_categories',
+		),
+		'show_in_rest' => true,
+		'rest_base' => 'categories',
+		'rest_controller_class' => 'WP_REST_Terms_Controller',
 	) );
 
 	register_taxonomy( 'post_tag', 'post', array(
@@ -71,6 +80,15 @@ function create_initial_taxonomies() {
 		'show_ui' => true,
 		'show_admin_column' => true,
 		'_builtin' => true,
+		'capabilities' => array(
+			'manage_terms' => 'manage_post_tags',
+			'edit_terms'   => 'edit_post_tags',
+			'delete_terms' => 'delete_post_tags',
+			'assign_terms' => 'assign_post_tags',
+		),
+		'show_in_rest' => true,
+		'rest_base' => 'tags',
+		'rest_controller_class' => 'WP_REST_Terms_Controller',
 	) );
 
 	register_taxonomy( 'nav_menu', 'nav_menu_item', array(
@@ -181,7 +199,7 @@ function get_object_taxonomies( $object, $output = 'names' ) {
 
 	if ( is_object($object) ) {
 		if ( $object->post_type == 'attachment' )
-			return get_attachment_taxonomies($object);
+			return get_attachment_taxonomies( $object, $output );
 		$object = $object->post_type;
 	}
 
@@ -211,7 +229,7 @@ function get_object_taxonomies( $object, $output = 'names' ) {
  * @global array $wp_taxonomies The registered taxonomies.
  *
  * @param string $taxonomy Name of taxonomy object to return.
- * @return object|false The Taxonomy Object or false if $taxonomy doesn't exist.
+ * @return WP_Taxonomy|false The Taxonomy Object or false if $taxonomy doesn't exist.
  */
 function get_taxonomy( $taxonomy ) {
 	global $wp_taxonomies;
@@ -276,21 +294,20 @@ function is_taxonomy_hierarchical($taxonomy) {
  * @since 4.4.0 The `show_ui` argument is now enforced on the term editing screen.
  * @since 4.4.0 The `public` argument now controls whether the taxonomy can be queried on the front end.
  * @since 4.5.0 Introduced `publicly_queryable` argument.
+ * @since 4.7.0 Introduced `show_in_rest`, 'rest_base' and 'rest_controller_class'
+ *              arguments to register the Taxonomy in REST API.
  *
  * @global array $wp_taxonomies Registered taxonomies.
- * @global WP    $wp            WP instance.
  *
  * @param string       $taxonomy    Taxonomy key, must not exceed 32 characters.
- * @param array|string $object_type Name of the object type for the taxonomy object.
+ * @param array|string $object_type Object type or array of object types with which the taxonomy should be associated.
  * @param array|string $args        {
  *     Optional. Array or query string of arguments for registering a taxonomy.
  *
- *     @type string        $label                 Name of the taxonomy shown in the menu. Usually plural. If not set,
- *                                                `$labels['name']` will be used.
- *     @type array         $labels                An array of labels for this taxonomy. By default, Tag labels are used for
- *                                                non-hierarchical taxonmies, and Category labels are used for hierarchical
- *                                                taxonomies. See accepted values in get_taxonomy_labels().
- *                                                Default empty array.
+ *     @type array         $labels                An array of labels for this taxonomy. By default, Tag labels are
+ *                                                used for non-hierarchical taxonomies, and Category labels are used
+ *                                                for hierarchical taxonomies. See accepted values in
+ *                                                get_taxonomy_labels(). Default empty array.
  *     @type string        $description           A short descriptive summary of what the taxonomy is for. Default empty.
  *     @type bool          $public                Whether a taxonomy is intended for use publicly either via
  *                                                the admin interface or by front-end users. The default settings
@@ -308,6 +325,9 @@ function is_taxonomy_hierarchical($taxonomy) {
  *                                                (default true).
  *     @type bool          $show_in_nav_menus     Makes this taxonomy available for selection in navigation menus. If not
  *                                                set, the default is inherited from `$public` (default true).
+ *     @type bool          $show_in_rest          Whether to include the taxonomy in the REST API.
+ *     @type string        $rest_base             To change the base url of REST API route. Default is $taxonomy.
+ *     @type string        $rest_controller_class REST API Controller class name. Default is 'WP_REST_Terms_Controller'.
  *     @type bool          $show_tagcloud         Whether to list the taxonomy in the Tag Cloud Widget controls. If not set,
  *                                                the default is inherited from `$show_ui` (default true).
  *     @type bool          $show_in_quick_edit    Whether to show the taxonomy in the quick/bulk edit panel. It not set,
@@ -349,134 +369,25 @@ function is_taxonomy_hierarchical($taxonomy) {
  * @return WP_Error|void WP_Error, if errors.
  */
 function register_taxonomy( $taxonomy, $object_type, $args = array() ) {
-	global $wp_taxonomies, $wp;
+	global $wp_taxonomies;
 
 	if ( ! is_array( $wp_taxonomies ) )
 		$wp_taxonomies = array();
 
 	$args = wp_parse_args( $args );
 
-	/**
-	 * Filters the arguments for registering a taxonomy.
-	 *
-	 * @since 4.4.0
-	 *
-	 * @param array  $args        Array of arguments for registering a taxonomy.
-	 * @param string $taxonomy    Taxonomy key.
-	 * @param array  $object_type Array of names of object types for the taxonomy.
-	 */
-	$args = apply_filters( 'register_taxonomy_args', $args, $taxonomy, (array) $object_type );
-
-	$defaults = array(
-		'labels'                => array(),
-		'description'           => '',
-		'public'                => true,
-		'publicly_queryable'    => null,
-		'hierarchical'          => false,
-		'show_ui'               => null,
-		'show_in_menu'          => null,
-		'show_in_nav_menus'     => null,
-		'show_tagcloud'         => null,
-		'show_in_quick_edit'	=> null,
-		'show_admin_column'     => false,
-		'meta_box_cb'           => null,
-		'capabilities'          => array(),
-		'rewrite'               => true,
-		'query_var'             => $taxonomy,
-		'update_count_callback' => '',
-		'_builtin'              => false,
-	);
-	$args = array_merge( $defaults, $args );
-
 	if ( empty( $taxonomy ) || strlen( $taxonomy ) > 32 ) {
 		_doing_it_wrong( __FUNCTION__, __( 'Taxonomy names must be between 1 and 32 characters in length.' ), '4.2.0' );
 		return new WP_Error( 'taxonomy_length_invalid', __( 'Taxonomy names must be between 1 and 32 characters in length.' ) );
 	}
 
-	// If not set, default to the setting for public.
-	if ( null === $args['publicly_queryable'] ) {
-		$args['publicly_queryable'] = $args['public'];
-	}
+	$taxonomy_object = new WP_Taxonomy( $taxonomy, $object_type, $args );
+	$taxonomy_object->add_rewrite_rules();
 
-	// Non-publicly queryable taxonomies should not register query vars, except in the admin.
-	if ( false !== $args['query_var'] && ( is_admin() || false !== $args['publicly_queryable'] ) && ! empty( $wp ) ) {
-		if ( true === $args['query_var'] )
-			$args['query_var'] = $taxonomy;
-		else
-			$args['query_var'] = sanitize_title_with_dashes( $args['query_var'] );
-		$wp->add_query_var( $args['query_var'] );
-	} else {
-		// Force query_var to false for non-public taxonomies.
-		$args['query_var'] = false;
-	}
-
-	if ( false !== $args['rewrite'] && ( is_admin() || '' != get_option( 'permalink_structure' ) ) ) {
-		$args['rewrite'] = wp_parse_args( $args['rewrite'], array(
-			'with_front' => true,
-			'hierarchical' => false,
-			'ep_mask' => EP_NONE,
-		) );
+	$wp_taxonomies[ $taxonomy ] = $taxonomy_object;
 
-		if ( empty( $args['rewrite']['slug'] ) )
-			$args['rewrite']['slug'] = sanitize_title_with_dashes( $taxonomy );
-
-		if ( $args['hierarchical'] && $args['rewrite']['hierarchical'] )
-			$tag = '(.+?)';
-		else
-			$tag = '([^/]+)';
-
-		add_rewrite_tag( "%$taxonomy%", $tag, $args['query_var'] ? "{$args['query_var']}=" : "taxonomy=$taxonomy&term=" );
-		add_permastruct( $taxonomy, "{$args['rewrite']['slug']}/%$taxonomy%", $args['rewrite'] );
-	}
+	$taxonomy_object->add_hooks();
 
-	// If not set, default to the setting for public.
-	if ( null === $args['show_ui'] )
-		$args['show_ui'] = $args['public'];
-
-	// If not set, default to the setting for show_ui.
-	if ( null === $args['show_in_menu' ] || ! $args['show_ui'] )
-		$args['show_in_menu' ] = $args['show_ui'];
-
-	// If not set, default to the setting for public.
-	if ( null === $args['show_in_nav_menus'] )
-		$args['show_in_nav_menus'] = $args['public'];
-
-	// If not set, default to the setting for show_ui.
-	if ( null === $args['show_tagcloud'] )
-		$args['show_tagcloud'] = $args['show_ui'];
-
-	// If not set, default to the setting for show_ui.
-	if ( null === $args['show_in_quick_edit'] ) {
-		$args['show_in_quick_edit'] = $args['show_ui'];
-	}
-
-	$default_caps = array(
-		'manage_terms' => 'manage_categories',
-		'edit_terms'   => 'manage_categories',
-		'delete_terms' => 'manage_categories',
-		'assign_terms' => 'edit_posts',
-	);
-	$args['cap'] = (object) array_merge( $default_caps, $args['capabilities'] );
-	unset( $args['capabilities'] );
-
-	$args['name'] = $taxonomy;
-	$args['object_type'] = array_unique( (array) $object_type );
-
-	$args['labels'] = get_taxonomy_labels( (object) $args );
-	$args['label'] = $args['labels']->name;
-
-	// If not set, use the default meta box
-	if ( null === $args['meta_box_cb'] ) {
-		if ( $args['hierarchical'] )
-			$args['meta_box_cb'] = 'post_categories_meta_box';
-		else
-			$args['meta_box_cb'] = 'post_tags_meta_box';
-	}
-
-	$wp_taxonomies[ $taxonomy ] = (object) $args;
-
-	// Register callback handling for meta box.
- 	add_filter( 'wp_ajax_add-' . $taxonomy, '_wp_ajax_add_hierarchical_term' );
 
 	/**
 	 * Fires after a taxonomy is registered.
@@ -487,7 +398,7 @@ function register_taxonomy( $taxonomy, $object_type, $args = array() ) {
 	 * @param array|string $object_type Object type or array of object types.
 	 * @param array        $args        Array of taxonomy registration arguments.
 	 */
-	do_action( 'registered_taxonomy', $taxonomy, $object_type, $args );
+	do_action( 'registered_taxonomy', $taxonomy, $object_type, (array) $taxonomy_object );
 }
 
 /**
@@ -508,28 +419,17 @@ function unregister_taxonomy( $taxonomy ) {
 		return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy.' ) );
 	}
 
-	$taxonomy_args = get_taxonomy( $taxonomy );
+	$taxonomy_object = get_taxonomy( $taxonomy );
 
 	// Do not allow unregistering internal taxonomies.
-	if ( $taxonomy_args->_builtin ) {
+	if ( $taxonomy_object->_builtin ) {
 		return new WP_Error( 'invalid_taxonomy', __( 'Unregistering a built-in taxonomy is not allowed' ) );
 	}
 
-	global $wp, $wp_taxonomies;
-
-	// Remove query var.
-	if ( false !== $taxonomy_args->query_var ) {
-		$wp->remove_query_var( $taxonomy_args->query_var );
-	}
-
-	// Remove rewrite tags and permastructs.
-	if ( false !== $taxonomy_args->rewrite ) {
-		remove_rewrite_tag( "%$taxonomy%" );
-		remove_permastruct( $taxonomy );
-	}
+	global $wp_taxonomies;
 
-	// Unregister callback handling for meta box.
-	remove_filter( 'wp_ajax_add-' . $taxonomy, '_wp_ajax_add_hierarchical_term' );
+	$taxonomy_object->remove_rewrite_rules();
+	$taxonomy_object->remove_hooks();
 
 	// Remove the taxonomy.
 	unset( $wp_taxonomies[ $taxonomy ] );
@@ -579,7 +479,7 @@ function unregister_taxonomy( $taxonomy ) {
  * @since 4.3.0 Added the `no_terms` label.
  * @since 4.4.0 Added the `items_list_navigation` and `items_list` labels.
  *
- * @param object $tax Taxonomy object.
+ * @param WP_Taxonomy $tax Taxonomy object.
  * @return object object with all the labels as member variables.
  */
 function get_taxonomy_labels( $tax ) {
@@ -814,7 +714,8 @@ function get_tax_sql( $tax_query, $primary_table, $primary_id_column ) {
  *                                 filters and return a `WP_Term` object corresponding to the `$term` data. If `WP_Term`,
  *                                 will return `$term`.
  * @param string     $taxonomy Optional. Taxonomy name that $term is part of.
- * @param string     $output   Constant OBJECT, ARRAY_A, or ARRAY_N
+ * @param string     $output   Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                             a WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string     $filter   Optional, default is raw or no WordPress defined filter will applied.
  * @return array|WP_Term|WP_Error|null Object of the type specified by `$output` on success. When `$output` is 'OBJECT',
  *                                     a WP_Term instance is returned. If taxonomy does not exist, a WP_Error is
@@ -871,7 +772,7 @@ function get_term( $term, $taxonomy = '', $output = OBJECT, $filter = 'raw' ) {
 	 * @param int|WP_Term $_term    Term object or ID.
 	 * @param string      $taxonomy The taxonomy slug.
 	 */
-	$_term = apply_filters( "get_$taxonomy", $_term, $taxonomy );
+	$_term = apply_filters( "get_{$taxonomy}", $_term, $taxonomy );
 
 	// Bail if a filter callback has changed the type of the `$_term` object.
 	if ( ! ( $_term instanceof WP_Term ) ) {
@@ -921,10 +822,11 @@ function get_term( $term, $taxonomy = '', $output = OBJECT, $filter = 'raw' ) {
  * @param string     $field    Either 'slug', 'name', 'id' (term_id), or 'term_taxonomy_id'
  * @param string|int $value    Search for this term value
  * @param string     $taxonomy Taxonomy name. Optional, if `$field` is 'term_taxonomy_id'.
- * @param string     $output   Constant OBJECT, ARRAY_A, or ARRAY_N
+ * @param string     $output   Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+ *                             a WP_Term object, an associative array, or a numeric array, respectively. Default OBJECT.
  * @param string     $filter   Optional, default is raw or no WordPress defined filter will applied.
- * @return WP_Term|bool WP_Term instance on success. Will return false if `$taxonomy` does not exist
- *                      or `$term` was not found.
+ * @return WP_Term|array|false WP_Term instance (or array) on success. Will return false if `$taxonomy` does not exist
+ *                             or `$term` was not found.
  */
 function get_term_by( $field, $value, $taxonomy = '', $output = OBJECT, $filter = 'raw' ) {
 	global $wpdb;
@@ -1379,7 +1281,7 @@ function update_termmeta_cache( $term_ids ) {
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
- * @param int|string $term     The term to check
+ * @param int|string $term     The term to check. Accepts term ID, slug, or name.
  * @param string     $taxonomy The taxonomy name to use
  * @param int        $parent   Optional. ID of parent term under which to confine the exists search.
  * @return mixed Returns null if the term does not exist. Returns the term ID
@@ -1915,7 +1817,7 @@ function wp_delete_term( $term, $taxonomy, $args = array() ) {
 	 *                              by the parent function. WP_Error otherwise.
 	 * @param array   $object_ids   List of term object IDs.
 	 */
-	do_action( "delete_$taxonomy", $term, $tt_id, $deleted_term, $object_ids );
+	do_action( "delete_{$taxonomy}", $term, $tt_id, $deleted_term, $object_ids );
 
 	return true;
 }
@@ -1941,27 +1843,13 @@ function wp_delete_category( $cat_ID ) {
  *              Introduced `$parent` argument.
  * @since 4.4.0 Introduced `$meta_query` and `$update_term_meta_cache` arguments. When `$fields` is 'all' or
  *              'all_with_object_id', an array of `WP_Term` objects will be returned.
+ * @since 4.7.0 Refactored to use WP_Term_Query, and to support any WP_Term_Query arguments.
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param int|array    $object_ids The ID(s) of the object(s) to retrieve.
  * @param string|array $taxonomies The taxonomies to retrieve terms from.
- * @param array|string $args {
- *     Array of arguments.
- *     @type string $orderby                Field by which results should be sorted. Accepts 'name', 'count', 'slug',
- *                                          'term_group', 'term_order', 'taxonomy', 'parent', or 'term_taxonomy_id'.
- *                                          Default 'name'.
- *     @type string $order                  Sort order. Accepts 'ASC' or 'DESC'. Default 'ASC'.
- *     @type string $fields                 Fields to return for matched terms. Accepts 'all', 'ids', 'names', and
- *                                          'all_with_object_id'. Note that 'all' or 'all_with_object_id' will result
- *                                          in an array of term objects being returned, 'ids' will return an array of
- *                                          integers, and 'names' an array of strings.
- *     @type int    $parent                 Optional. Limit results to the direct children of a given term ID.
- *     @type bool   $update_term_meta_cache Whether to prime termmeta cache for matched terms. Only applies when
- *                                          `$fields` is 'all', 'all_with_object_id', or 'term_id'. Default true.
- *     @type array  $meta_query             Meta query clauses to limit retrieved terms by. See `WP_Meta_Query`.
- *                                          Default empty.
- * }
+ * @param array|string $args       See WP_Term_Query::__construct() for supported arguments.
  * @return array|WP_Error The requested term data or empty array if no terms found.
  *                        WP_Error if any of the $taxonomies don't exist.
  */
@@ -1983,185 +1871,26 @@ function wp_get_object_terms($object_ids, $taxonomies, $args = array()) {
 		$object_ids = array($object_ids);
 	$object_ids = array_map('intval', $object_ids);
 
-	$defaults = array(
-		'orderby' => 'name',
-		'order'   => 'ASC',
-		'fields'  => 'all',
-		'parent'  => '',
-		'update_term_meta_cache' => true,
-		'meta_query' => '',
-	);
-	$args = wp_parse_args( $args, $defaults );
-
-	$terms = array();
-	if ( count($taxonomies) > 1 ) {
-		foreach ( $taxonomies as $index => $taxonomy ) {
-			$t = get_taxonomy($taxonomy);
-			if ( isset($t->args) && is_array($t->args) && $args != array_merge($args, $t->args) ) {
-				unset($taxonomies[$index]);
-				$terms = array_merge($terms, wp_get_object_terms($object_ids, $taxonomy, array_merge($args, $t->args)));
-			}
-		}
-	} else {
-		$t = get_taxonomy($taxonomies[0]);
-		if ( isset($t->args) && is_array($t->args) )
-			$args = array_merge($args, $t->args);
-	}
-
-	$orderby = $args['orderby'];
-	$order = $args['order'];
-	$fields = $args['fields'];
-
-	if ( in_array( $orderby, array( 'term_id', 'name', 'slug', 'term_group' ) ) ) {
-		$orderby = "t.$orderby";
-	} elseif ( in_array( $orderby, array( 'count', 'parent', 'taxonomy', 'term_taxonomy_id' ) ) ) {
-		$orderby = "tt.$orderby";
-	} elseif ( 'term_order' === $orderby ) {
-		$orderby = 'tr.term_order';
-	} elseif ( 'none' === $orderby ) {
-		$orderby = '';
-		$order = '';
-	} else {
-		$orderby = 't.term_id';
-	}
-
-	// tt_ids queries can only be none or tr.term_taxonomy_id
-	if ( ('tt_ids' == $fields) && !empty($orderby) )
-		$orderby = 'tr.term_taxonomy_id';
-
-	if ( !empty($orderby) )
-		$orderby = "ORDER BY $orderby";
-
-	$order = strtoupper( $order );
-	if ( '' !== $order && ! in_array( $order, array( 'ASC', 'DESC' ) ) )
-		$order = 'ASC';
-
-	$taxonomy_array = $taxonomies;
-	$object_id_array = $object_ids;
-	$taxonomies = "'" . implode("', '", array_map( 'esc_sql', $taxonomies ) ) . "'";
-	$object_ids = implode(', ', $object_ids);
-
-	$select_this = '';
-	if ( 'all' == $fields ) {
-		$select_this = 't.*, tt.*';
-	} elseif ( 'ids' == $fields ) {
-		$select_this = 't.term_id';
-	} elseif ( 'names' == $fields ) {
-		$select_this = 't.name';
-	} elseif ( 'slugs' == $fields ) {
-		$select_this = 't.slug';
-	} elseif ( 'all_with_object_id' == $fields ) {
-		$select_this = 't.*, tt.*, tr.object_id';
-	}
-
-	$where = array(
-		"tt.taxonomy IN ($taxonomies)",
-		"tr.object_id IN ($object_ids)",
-	);
-
-	if ( '' !== $args['parent'] ) {
-		$where[] = $wpdb->prepare( 'tt.parent = %d', $args['parent'] );
-	}
-
-	// Meta query support.
-	$meta_query_join = '';
-	if ( ! empty( $args['meta_query'] ) ) {
-		$mquery = new WP_Meta_Query( $args['meta_query'] );
-		$mq_sql = $mquery->get_sql( 'term', 't', 'term_id' );
-
-		$meta_query_join .= $mq_sql['join'];
-
-		// Strip leading AND.
-		$where[] = preg_replace( '/^\s*AND/', '', $mq_sql['where'] );
-	}
-
-	$where = implode( ' AND ', $where );
-
-	$query = "SELECT $select_this FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN $wpdb->term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id $meta_query_join WHERE $where $orderby $order";
-
-	$objects = false;
-	if ( 'all' == $fields || 'all_with_object_id' == $fields ) {
-		$_terms = $wpdb->get_results( $query );
-		$object_id_index = array();
-		foreach ( $_terms as $key => $term ) {
-			$term = sanitize_term( $term, $taxonomy, 'raw' );
-			$_terms[ $key ] = $term;
+	$args['taxonomy'] = $taxonomies;
+	$args['object_ids'] = $object_ids;
 
-			if ( isset( $term->object_id ) ) {
-				$object_id_index[ $key ] = $term->object_id;
-			}
-		}
-
-		update_term_cache( $_terms );
-		$_terms = array_map( 'get_term', $_terms );
-
-		// Re-add the object_id data, which is lost when fetching terms from cache.
-		if ( 'all_with_object_id' === $fields ) {
-			foreach ( $_terms as $key => $_term ) {
-				if ( isset( $object_id_index[ $key ] ) ) {
-					$_term->object_id = $object_id_index[ $key ];
-				}
-			}
-		}
-
-		$terms = array_merge( $terms, $_terms );
-		$objects = true;
-
-	} elseif ( 'ids' == $fields || 'names' == $fields || 'slugs' == $fields ) {
-		$_terms = $wpdb->get_col( $query );
-		$_field = ( 'ids' == $fields ) ? 'term_id' : 'name';
-		foreach ( $_terms as $key => $term ) {
-			$_terms[$key] = sanitize_term_field( $_field, $term, $term, $taxonomy, 'raw' );
-		}
-		$terms = array_merge( $terms, $_terms );
-	} elseif ( 'tt_ids' == $fields ) {
-		$terms = $wpdb->get_col("SELECT tr.term_taxonomy_id FROM $wpdb->term_relationships AS tr INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tr.object_id IN ($object_ids) AND tt.taxonomy IN ($taxonomies) $orderby $order");
-		foreach ( $terms as $key => $tt_id ) {
-			$terms[$key] = sanitize_term_field( 'term_taxonomy_id', $tt_id, 0, $taxonomy, 'raw' ); // 0 should be the term id, however is not needed when using raw context.
-		}
-	}
-
-	// Update termmeta cache, if necessary.
-	if ( $args['update_term_meta_cache'] && ( 'all' === $fields || 'all_with_object_id' === $fields || 'ids' === $fields ) ) {
-		if ( 'ids' === $fields ) {
-			$term_ids = $terms;
-		} else {
-			$term_ids = wp_list_pluck( $terms, 'term_id' );
-		}
-
-		update_termmeta_cache( $term_ids );
-	}
-
-	if ( ! $terms ) {
-		$terms = array();
-	} elseif ( $objects && 'all_with_object_id' !== $fields ) {
-		$_tt_ids = array();
-		$_terms = array();
-		foreach ( $terms as $term ) {
-			if ( in_array( $term->term_taxonomy_id, $_tt_ids ) ) {
-				continue;
-			}
-
-			$_tt_ids[] = $term->term_taxonomy_id;
-			$_terms[] = $term;
-		}
-		$terms = $_terms;
-	} elseif ( ! $objects ) {
-		$terms = array_values( array_unique( $terms ) );
-	}
+	$terms = get_terms( $args );
 
 	/**
 	 * Filters the terms for a given object or objects.
 	 *
 	 * @since 4.2.0
 	 *
-	 * @param array $terms           An array of terms for the given object or objects.
-	 * @param array $object_id_array Array of object IDs for which `$terms` were retrieved.
-	 * @param array $taxonomy_array  Array of taxonomies from which `$terms` were retrieved.
-	 * @param array $args            An array of arguments for retrieving terms for the given
-	 *                               object(s). See wp_get_object_terms() for details.
+	 * @param array $terms      An array of terms for the given object or objects.
+	 * @param array $object_ids Array of object IDs for which `$terms` were retrieved.
+	 * @param array $taxonomies Array of taxonomies from which `$terms` were retrieved.
+	 * @param array $args       An array of arguments for retrieving terms for the given
+	 *                          object(s). See wp_get_object_terms() for details.
 	 */
-	$terms = apply_filters( 'get_object_terms', $terms, $object_id_array, $taxonomy_array, $args );
+	$terms = apply_filters( 'get_object_terms', $terms, $object_ids, $taxonomies, $args );
+
+	$object_ids = implode( ',', $object_ids );
+	$taxonomies = implode( ',', $taxonomies );
 
 	/**
 	 * Filters the terms for a given object or objects.
@@ -2340,7 +2069,20 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
 
 	$slug = wp_unique_term_slug( $slug, (object) $args );
 
-	if ( false === $wpdb->insert( $wpdb->terms, compact( 'name', 'slug', 'term_group' ) ) ) {
+	$data = compact( 'name', 'slug', 'term_group' );
+
+	/**
+	 * Filters term data before it is inserted into the database.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array  $data     Term data to be inserted.
+	 * @param string $taxonomy Taxonomy slug.
+	 * @param array  $args     Arguments passed to wp_insert_term().
+	 */
+	$data = apply_filters( 'wp_insert_term_data', $data, $taxonomy, $args );
+
+	if ( false === $wpdb->insert( $wpdb->terms, $data ) ) {
 		return new WP_Error( 'db_insert_error', __( 'Could not insert term into the database' ), $wpdb->last_error );
 	}
 
@@ -2406,7 +2148,7 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
 	 * @param int $term_id Term ID.
 	 * @param int $tt_id   Term taxonomy ID.
 	 */
-	do_action( "create_$taxonomy", $term_id, $tt_id );
+	do_action( "create_{$taxonomy}", $term_id, $tt_id );
 
 	/**
 	 * Filters the term ID after a new term is created.
@@ -2442,7 +2184,7 @@ function wp_insert_term( $term, $taxonomy, $args = array() ) {
 	 * @param int $term_id Term ID.
 	 * @param int $tt_id   Term taxonomy ID.
 	 */
-	do_action( "created_$taxonomy", $term_id, $tt_id );
+	do_action( "created_{$taxonomy}", $term_id, $tt_id );
 
 	return array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id);
 }
@@ -2513,22 +2255,26 @@ function wp_set_object_terms( $object_id, $terms, $taxonomy, $append = false ) {
 		 * Fires immediately before an object-term relationship is added.
 		 *
 		 * @since 2.9.0
+		 * @since 4.7.0 Added the `$taxonomy` parameter.
 		 *
-		 * @param int $object_id Object ID.
-		 * @param int $tt_id     Term taxonomy ID.
+		 * @param int    $object_id Object ID.
+		 * @param int    $tt_id     Term taxonomy ID.
+		 * @param string $taxonomy  Taxonomy slug.
 		 */
-		do_action( 'add_term_relationship', $object_id, $tt_id );
+		do_action( 'add_term_relationship', $object_id, $tt_id, $taxonomy );
 		$wpdb->insert( $wpdb->term_relationships, array( 'object_id' => $object_id, 'term_taxonomy_id' => $tt_id ) );
 
 		/**
 		 * Fires immediately after an object-term relationship is added.
 		 *
 		 * @since 2.9.0
+		 * @since 4.7.0 Added the `$taxonomy` parameter.
 		 *
-		 * @param int $object_id Object ID.
-		 * @param int $tt_id     Term taxonomy ID.
+		 * @param int    $object_id Object ID.
+		 * @param int    $tt_id     Term taxonomy ID.
+		 * @param string $taxonomy  Taxonomy slug.
 		 */
-		do_action( 'added_term_relationship', $object_id, $tt_id );
+		do_action( 'added_term_relationship', $object_id, $tt_id, $taxonomy );
 		$new_tt_ids[] = $tt_id;
 	}
 
@@ -2648,11 +2394,13 @@ function wp_remove_object_terms( $object_id, $terms, $taxonomy ) {
 		 * Fires immediately before an object-term relationship is deleted.
 		 *
 		 * @since 2.9.0
+		 * @since 4.7.0 Added the `$taxonomy` parameter.
 		 *
 		 * @param int   $object_id Object ID.
 		 * @param array $tt_ids    An array of term taxonomy IDs.
+		 * @param string $taxonomy  Taxonomy slug.
 		 */
-		do_action( 'delete_term_relationships', $object_id, $tt_ids );
+		do_action( 'delete_term_relationships', $object_id, $tt_ids, $taxonomy );
 		$deleted = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->term_relationships WHERE object_id = %d AND term_taxonomy_id IN ($in_tt_ids)", $object_id ) );
 
 		wp_cache_delete( $object_id, $taxonomy . '_relationships' );
@@ -2661,11 +2409,13 @@ function wp_remove_object_terms( $object_id, $terms, $taxonomy ) {
 		 * Fires immediately after an object-term relationship is deleted.
 		 *
 		 * @since 2.9.0
+		 * @since 4.7.0 Added the `$taxonomy` parameter.
 		 *
-		 * @param int   $object_id Object ID.
-		 * @param array $tt_ids    An array of term taxonomy IDs.
+		 * @param int    $object_id Object ID.
+		 * @param array  $tt_ids    An array of term taxonomy IDs.
+		 * @param string $taxonomy  Taxonomy slug.
 		 */
-		do_action( 'deleted_term_relationships', $object_id, $tt_ids );
+		do_action( 'deleted_term_relationships', $object_id, $tt_ids, $taxonomy );
 
 		wp_update_term_count( $tt_ids, $taxonomy );
 
@@ -2904,10 +2654,12 @@ function wp_update_term( $term_id, $taxonomy, $args = array() ) {
 	if ( $duplicate && $duplicate->term_id != $term_id ) {
 		// If an empty slug was passed or the parent changed, reset the slug to something unique.
 		// Otherwise, bail.
-		if ( $empty_slug || ( $parent != $term['parent']) )
+		if ( $empty_slug || ( $parent != $term['parent']) ) {
 			$slug = wp_unique_term_slug($slug, (object) $args);
-		else
+		} else {
+			/* translators: 1: Taxonomy term slug */
 			return new WP_Error('duplicate_term_slug', sprintf(__('The slug &#8220;%s&#8221; is already in use by another term'), $slug));
+		}
 	}
 
 	$tt_id = (int) $wpdb->get_var( $wpdb->prepare( "SELECT tt.term_taxonomy_id FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.term_id = %d", $taxonomy, $term_id) );
@@ -2927,7 +2679,22 @@ function wp_update_term( $term_id, $taxonomy, $args = array() ) {
 	 * @param string $taxonomy Taxonomy slug.
 	 */
 	do_action( 'edit_terms', $term_id, $taxonomy );
-	$wpdb->update($wpdb->terms, compact( 'name', 'slug', 'term_group' ), compact( 'term_id' ) );
+
+	$data = compact( 'name', 'slug', 'term_group' );
+
+	/**
+	 * Filters term data before it is updated in the database.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array  $data     Term data to be updated.
+	 * @param int    $term_id  Term ID.
+	 * @param string $taxonomy Taxonomy slug.
+	 * @param array  $args     Arguments passed to wp_update_term().
+	 */
+	$data = apply_filters( 'wp_update_term_data', $data, $term_id, $taxonomy, $args );
+
+	$wpdb->update( $wpdb->terms, $data, compact( 'term_id' ) );
 	if ( empty($slug) ) {
 		$slug = sanitize_title($name, $term_id);
 		$wpdb->update( $wpdb->terms, compact( 'slug' ), compact( 'term_id' ) );
@@ -2987,7 +2754,7 @@ function wp_update_term( $term_id, $taxonomy, $args = array() ) {
 	 * @param int $term_id Term ID.
 	 * @param int $tt_id   Term taxonomy ID.
 	 */
-	do_action( "edit_$taxonomy", $term_id, $tt_id );
+	do_action( "edit_{$taxonomy}", $term_id, $tt_id );
 
 	/** This filter is documented in wp-includes/taxonomy.php */
 	$term_id = apply_filters( 'term_id_filter', $term_id, $tt_id );
@@ -3016,7 +2783,7 @@ function wp_update_term( $term_id, $taxonomy, $args = array() ) {
 	 * @param int $term_id Term ID.
 	 * @param int $tt_id   Term taxonomy ID.
 	 */
-	do_action( "edited_$taxonomy", $term_id, $tt_id );
+	do_action( "edited_{$taxonomy}", $term_id, $tt_id );
 
 	return array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id);
 }
@@ -3252,10 +3019,14 @@ function clean_term_cache($ids, $taxonomy = '', $clean_taxonomy = true) {
  * function only fetches relationship data that is already in the cache.
  *
  * @since 2.3.0
+ * @since 4.7.0 Returns a WP_Error object if get_term() returns an error for
+ *              any of the matched terms.
  *
  * @param int    $id       Term object ID.
  * @param string $taxonomy Taxonomy name.
- * @return bool|array Array of `WP_Term` objects, if cached False if cache is empty for `$taxonomy` and `$id`.
+ * @return bool|array|WP_Error Array of `WP_Term` objects, if cached.
+ *                             False if cache is empty for `$taxonomy` and `$id`.
+ *                             WP_Error if get_term() returns an error object for any term.
  */
 function get_object_term_cache( $id, $taxonomy ) {
 	$_term_ids = wp_cache_get( $id, "{$taxonomy}_relationships" );
@@ -3280,10 +3051,15 @@ function get_object_term_cache( $id, $taxonomy ) {
 
 	$terms = array();
 	foreach ( $term_ids as $term_id ) {
-		$terms[] = wp_cache_get( $term_id, 'terms' );
+		$term = get_term( $term_id, $taxonomy );
+		if ( is_wp_error( $term ) ) {
+			return $term;
+		}
+
+		$terms[] = $term;
 	}
 
-	return array_map( 'get_term', $terms );
+	return $terms;
 }
 
 /**
diff --git a/wp-includes/template-loader.php b/wp-includes/template-loader.php
index 025f1a847..1ee7c222c 100644
--- a/wp-includes/template-loader.php
+++ b/wp-includes/template-loader.php
@@ -60,7 +60,6 @@ if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) :
 	elseif ( is_author()         && $template = get_author_template()         ) :
 	elseif ( is_date()           && $template = get_date_template()           ) :
 	elseif ( is_archive()        && $template = get_archive_template()        ) :
-	elseif ( is_paged()          && $template = get_paged_template()          ) :
 	else :
 		$template = get_index_template();
 	endif;
diff --git a/wp-includes/template.php b/wp-includes/template.php
index 380bb47b3..636cb9005 100644
--- a/wp-includes/template.php
+++ b/wp-includes/template.php
@@ -26,6 +26,20 @@ function get_query_template( $type, $templates = array() ) {
 	if ( empty( $templates ) )
 		$templates = array("{$type}.php");
 
+	/**
+	 * Filters the list of template filenames that are searched for when retrieving a template to use.
+	 *
+	 * The last element in the array should always be the fallback template for this query type.
+	 *
+	 * Possible values for `$type` include: 'index', '404', 'archive', 'author', 'category', 'tag', 'taxonomy', 'date',
+	 * 'embed', home', 'frontpage', 'page', 'paged', 'search', 'single', 'singular', and 'attachment'.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array $templates A list of template candidates, in descending order of priority.
+	 */
+	$templates = apply_filters( "{$type}_template_hierarchy", $templates );
+
 	$template = locate_template( $templates );
 
 	/**
@@ -36,7 +50,7 @@ function get_query_template( $type, $templates = array() ) {
 	 * This hook also applies to various types of files loaded as part of the Template Hierarchy.
 	 *
 	 * Possible values for `$type` include: 'index', '404', 'archive', 'author', 'category', 'tag', 'taxonomy', 'date',
-	 * 'home', 'front_page', 'page', 'paged', 'search', 'single', 'singular', and 'attachment'.
+	 * 'embed', home', 'frontpage', 'page', 'paged', 'search', 'single', 'singular', and 'attachment'.
 	 *
 	 * @since 1.5.0
 	 *
@@ -48,8 +62,8 @@ function get_query_template( $type, $templates = array() ) {
 /**
  * Retrieve path of index template in current or parent template.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'index_template'.
+ * The template hierarchy is filterable via the {@see 'index_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'index_template'} hook.
  *
  * @since 3.0.0
  *
@@ -64,8 +78,8 @@ function get_index_template() {
 /**
  * Retrieve path of 404 template in current or parent template.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. '404_template'.
+ * The template hierarchy is filterable via the {@see '404_template_hierarchy'} hook.
+ * The template path is filterable via the {@see '404_template'} hook.
  *
  * @since 1.5.0
  *
@@ -80,8 +94,8 @@ function get_404_template() {
 /**
  * Retrieve path of archive template in current or parent template.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'archive_template'.
+ * The template hierarchy is filterable via the {@see 'archive_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'archive_template'} hook.
  *
  * @since 1.5.0
  *
@@ -106,8 +120,8 @@ function get_archive_template() {
 /**
  * Retrieve path of post type archive template in current or parent template.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'archive_template'.
+ * The template hierarchy is filterable via the {@see 'archive_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'archive_template'} hook.
  *
  * @since 3.7.0
  *
@@ -130,8 +144,20 @@ function get_post_type_archive_template() {
 /**
  * Retrieve path of author template in current or parent template.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'author_template'.
+ * The hierarchy for this template looks like:
+ *
+ * 1. author-{nicename}.php
+ * 2. author-{id}.php
+ * 3. author.php
+ *
+ * An example of this is:
+ *
+ * 1. author-john.php
+ * 2. author-1.php
+ * 3. author.php
+ *
+ * The template hierarchy is filterable via the {@see 'author_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'author_template'} hook.
  *
  * @since 1.5.0
  *
@@ -156,14 +182,24 @@ function get_author_template() {
 /**
  * Retrieve path of category template in current or parent template.
  *
- * Works by first retrieving the current slug, for example 'category-default.php',
- * and then trying category ID, for example 'category-1.php', and will finally fall
- * back to category.php template, if those files don't exist.
+ * The hierarchy for this template looks like:
+ *
+ * 1. category-{slug}.php
+ * 2. category-{id}.php
+ * 3. category.php
+ *
+ * An example of this is:
+ *
+ * 1. category-news.php
+ * 2. category-2.php
+ * 3. category.php
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'category_template'.
+ * The template hierarchy is filterable via the {@see 'category_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'category_template'} hook.
  *
  * @since 1.5.0
+ * @since 4.7.0 The decoded form of `category-{slug}.php` was added to the top of the
+ *              template hierarchy when the category slug contains multibyte characters.
  *
  * @see get_query_template()
  *
@@ -175,6 +211,12 @@ function get_category_template() {
 	$templates = array();
 
 	if ( ! empty( $category->slug ) ) {
+
+		$slug_decoded = urldecode( $category->slug );
+		if ( $slug_decoded !== $category->slug ) {
+			$templates[] = "category-{$slug_decoded}.php";
+		}
+
 		$templates[] = "category-{$category->slug}.php";
 		$templates[] = "category-{$category->term_id}.php";
 	}
@@ -186,14 +228,24 @@ function get_category_template() {
 /**
  * Retrieve path of tag template in current or parent template.
  *
- * Works by first retrieving the current tag name, for example 'tag-wordpress.php',
- * and then trying tag ID, for example 'tag-1.php', and will finally fall back to
- * tag.php template, if those files don't exist.
+ * The hierarchy for this template looks like:
+ *
+ * 1. tag-{slug}.php
+ * 2. tag-{id}.php
+ * 3. tag.php
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'tag_template'.
+ * An example of this is:
+ *
+ * 1. tag-wordpress.php
+ * 2. tag-3.php
+ * 3. tag.php
+ *
+ * The template hierarchy is filterable via the {@see 'tag_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'tag_template'} hook.
  *
  * @since 2.3.0
+ * @since 4.7.0 The decoded form of `tag-{slug}.php` was added to the top of the
+ *              template hierarchy when the tag slug contains multibyte characters.
  *
  * @see get_query_template()
  *
@@ -205,6 +257,12 @@ function get_tag_template() {
 	$templates = array();
 
 	if ( ! empty( $tag->slug ) ) {
+
+		$slug_decoded = urldecode( $tag->slug );
+		if ( $slug_decoded !== $tag->slug ) {
+			$templates[] = "tag-{$slug_decoded}.php";
+		}
+
 		$templates[] = "tag-{$tag->slug}.php";
 		$templates[] = "tag-{$tag->term_id}.php";
 	}
@@ -214,25 +272,30 @@ function get_tag_template() {
 }
 
 /**
- * Retrieve path of taxonomy template in current or parent template.
+ * Retrieve path of custom taxonomy term template in current or parent template.
+ *
+ * The hierarchy for this template looks like:
  *
- * Retrieves the taxonomy and term, if term is available. The template is
- * prepended with 'taxonomy-' and followed by both the taxonomy string and
- * the taxonomy string followed by a dash and then followed by the term.
+ * 1. taxonomy-{taxonomy_slug}-{term_slug}.php
+ * 2. taxonomy-{taxonomy_slug}.php
+ * 3. taxonomy.php
  *
- * The taxonomy and term template is checked and used first, if it exists.
- * Second, just the taxonomy template is checked, and then finally, taxonomy.php
- * template is used. If none of the files exist, then it will fall back on to
- * index.php.
+ * An example of this is:
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'taxonomy_template'.
+ * 1. taxonomy-location-texas.php
+ * 2. taxonomy-location.php
+ * 3. taxonomy.php
+ *
+ * The template hierarchy is filterable via the {@see 'taxonomy_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'taxonomy_template'} hook.
  *
  * @since 2.5.0
+ * @since 4.7.0 The decoded form of `taxonomy-{taxonomy_slug}-{term_slug}.php` was added to the top of the
+ *              template hierarchy when the term slug contains multibyte characters.
  *
  * @see get_query_template()
  *
- * @return string Full path to taxonomy template file.
+ * @return string Full path to custom taxonomy term template file.
  */
 function get_taxonomy_template() {
 	$term = get_queried_object();
@@ -241,6 +304,12 @@ function get_taxonomy_template() {
 
 	if ( ! empty( $term->slug ) ) {
 		$taxonomy = $term->taxonomy;
+
+		$slug_decoded = urldecode( $term->slug );
+		if ( $slug_decoded !== $term->slug ) {
+			$templates[] = "taxonomy-$taxonomy-{$slug_decoded}.php";
+		}
+
 		$templates[] = "taxonomy-$taxonomy-{$term->slug}.php";
 		$templates[] = "taxonomy-$taxonomy.php";
 	}
@@ -252,8 +321,8 @@ function get_taxonomy_template() {
 /**
  * Retrieve path of date template in current or parent template.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'date_template'.
+ * The template hierarchy is filterable via the {@see 'date_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'date_template'} hook.
  *
  * @since 1.5.0
  *
@@ -268,11 +337,8 @@ function get_date_template() {
 /**
  * Retrieve path of home template in current or parent template.
  *
- * This is the template used for the page containing the blog posts.
- * Attempts to locate 'home.php' first before falling back to 'index.php'.
- *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'home_template'.
+ * The template hierarchy is filterable via the {@see 'home_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'home_template'} hook.
  *
  * @since 1.5.0
  *
@@ -287,10 +353,10 @@ function get_home_template() {
 }
 
 /**
- * Retrieve path of front-page template in current or parent template.
+ * Retrieve path of front page template in current or parent template.
  *
- * Looks for 'front-page.php'. The template path is filterable via the
- * dynamic {@see '$type_template'} hook, e.g. 'frontpage_template'.
+ * The template hierarchy is filterable via the {@see 'frontpage_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'frontpage_template'} hook.
  *
  * @since 3.0.0
  *
@@ -307,14 +373,26 @@ function get_front_page_template() {
 /**
  * Retrieve path of page template in current or parent template.
  *
- * Will first look for the specifically assigned page template.
- * Then will search for 'page-{slug}.php', followed by 'page-{id}.php',
- * and finally 'page.php'.
+ * The hierarchy for this template looks like:
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'page_template'.
+ * 1. {Page Template}.php
+ * 2. page-{page_name}.php
+ * 3. page-{id}.php
+ * 4. page.php
+ *
+ * An example of this is:
+ *
+ * 1. page-templates/full-width.php
+ * 2. page-about.php
+ * 3. page-4.php
+ * 4. page.php
+ *
+ * The template hierarchy is filterable via the {@see 'page_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'page_template'} hook.
  *
  * @since 1.5.0
+ * @since 4.7.0 The decoded form of `page-{page_name}.php` was added to the top of the
+ *              template hierarchy when the page name contains multibyte characters.
  *
  * @see get_query_template()
  *
@@ -335,8 +413,13 @@ function get_page_template() {
 	$templates = array();
 	if ( $template && 0 === validate_file( $template ) )
 		$templates[] = $template;
-	if ( $pagename )
+	if ( $pagename ) {
+		$pagename_decoded = urldecode( $pagename );
+		if ( $pagename_decoded !== $pagename ) {
+			$templates[] = "page-{$pagename_decoded}.php";
+		}
 		$templates[] = "page-$pagename.php";
+	}
 	if ( $id )
 		$templates[] = "page-$id.php";
 	$templates[] = 'page.php';
@@ -344,27 +427,11 @@ function get_page_template() {
 	return get_query_template( 'page', $templates );
 }
 
-/**
- * Retrieve path of paged template in current or parent template.
- *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'paged_template'.
- *
- * @since 1.5.0
- *
- * @see get_query_template()
- *
- * @return string Full path to paged template file.
- */
-function get_paged_template() {
-	return get_query_template('paged');
-}
-
 /**
  * Retrieve path of search template in current or parent template.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'search_template'.
+ * The template hierarchy is filterable via the {@see 'search_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'search_template'} hook.
  *
  * @since 1.5.0
  *
@@ -377,13 +444,31 @@ function get_search_template() {
 }
 
 /**
- * Retrieve path of single template in current or parent template.
+ * Retrieve path of single template in current or parent template. Applies to single Posts,
+ * single Attachments, and single custom post types.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'single_template'.
+ * The hierarchy for this template looks like:
+ *
+ * 1. {Post Type Template}.php
+ * 2. single-{post_type}-{post_name}.php
+ * 3. single-{post_type}.php
+ * 4. single.php
+ *
+ * An example of this is:
+ *
+ * 1. templates/full-width.php
+ * 2. single-post-hello-world.php
+ * 3. single-post.php
+ * 4. single.php
+ *
+ * The template hierarchy is filterable via the {@see 'single_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'single_template'} hook.
  *
  * @since 1.5.0
  * @since 4.4.0 `single-{post_type}-{post_name}.php` was added to the top of the template hierarchy.
+ * @since 4.7.0 The decoded form of `single-{post_type}-{post_name}.php` was added to the top of the
+ *              template hierarchy when the post name contains multibyte characters.
+ * @since 4.7.0 {Post Type Template}.php was added to the top of the template hierarchy.
  *
  * @see get_query_template()
  *
@@ -395,6 +480,16 @@ function get_single_template() {
 	$templates = array();
 
 	if ( ! empty( $object->post_type ) ) {
+		$template = get_page_template_slug( $object );
+		if ( $template && 0 === validate_file( $template ) ) {
+			$templates[] = $template;
+		}
+
+		$name_decoded = urldecode( $object->post_name );
+		if ( $name_decoded !== $object->post_name ) {
+			$templates[] = "single-{$object->post_type}-{$name_decoded}.php";
+		}
+
 		$templates[] = "single-{$object->post_type}-{$object->post_name}.php";
 		$templates[] = "single-{$object->post_type}.php";
 	}
@@ -407,10 +502,20 @@ function get_single_template() {
 /**
  * Retrieves an embed template path in the current or parent template.
  *
- * By default the WordPress-template is returned.
+ * The hierarchy for this template looks like:
+ *
+ * 1. embed-{post_type}-{post_format}.php
+ * 2. embed-{post_type}.php
+ * 3. embed.php
+ *
+ * An example of this is:
+ *
+ * 1. embed-post-audio.php
+ * 2. embed-post.php
+ * 3. embed.php
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'embed_template'.
+ * The template hierarchy is filterable via the {@see 'embed_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'embed_template'} hook.
  *
  * @since 4.5.0
  *
@@ -439,8 +544,8 @@ function get_embed_template() {
 /**
  * Retrieves the path of the singular template in current or parent template.
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'singular_template'.
+ * The template hierarchy is filterable via the {@see 'singular_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'singular_template'} hook.
  *
  * @since 4.3.0
  *
@@ -455,18 +560,25 @@ function get_singular_template() {
 /**
  * Retrieve path of attachment template in current or parent template.
  *
- * The attachment path first checks if the first part of the mime type exists.
- * The second check is for the second part of the mime type. The last check is
- * for both types separated by an underscore. If neither are found then the file
- * 'attachment.php' is checked and returned.
+ * The hierarchy for this template looks like:
  *
- * Some examples for the 'text/plain' mime type are 'text.php', 'plain.php', and
- * finally 'text-plain.php'.
+ * 1. {mime_type}-{sub_type}.php
+ * 2. {sub_type}.php
+ * 3. {mime_type}.php
+ * 4. attachment.php
  *
- * The template path is filterable via the dynamic {@see '$type_template'} hook,
- * e.g. 'attachment_template'.
+ * An example of this is:
+ *
+ * 1. image-jpeg.php
+ * 2. jpeg.php
+ * 3. image.php
+ * 4. attachment.php
+ *
+ * The template hierarchy is filterable via the {@see 'attachment_template_hierarchy'} hook.
+ * The template path is filterable via the {@see 'attachment_template'} hook.
  *
  * @since 2.0.0
+ * @since 4.3.0 The order of the mime type logic was reversed so the hierarchy is more logical.
  *
  * @see get_query_template()
  *
@@ -574,4 +686,3 @@ function load_template( $_template_file, $require_once = true ) {
 		require( $_template_file );
 	}
 }
-
diff --git a/wp-includes/theme.php b/wp-includes/theme.php
index e71e417e1..8aac86c9f 100644
--- a/wp-includes/theme.php
+++ b/wp-includes/theme.php
@@ -902,7 +902,7 @@ function set_theme_mod( $name, $value ) {
 	 * @param string $value     The new value of the theme mod.
 	 * @param string $old_value The current value of the theme mod.
 	 */
-	$mods[ $name ] = apply_filters( "pre_set_theme_mod_$name", $value, $old_value );
+	$mods[ $name ] = apply_filters( "pre_set_theme_mod_{$name}", $value, $old_value );
 
 	$theme = get_option( 'stylesheet' );
 	update_option( "theme_mods_$theme", $mods );
@@ -1027,8 +1027,9 @@ function get_header_image() {
  */
 function get_header_image_tag( $attr = array() ) {
 	$header = get_custom_header();
+	$header->url = get_header_image();
 
-	if ( empty( $header->url ) ) {
+	if ( ! $header->url ) {
 		return '';
 	}
 
@@ -1264,6 +1265,7 @@ function get_custom_header() {
 		'thumbnail_url' => '',
 		'width'         => get_theme_support( 'custom-header', 'width' ),
 		'height'        => get_theme_support( 'custom-header', 'height' ),
+		'video'         => get_theme_support( 'custom-header', 'video' ),
 	);
 	return (object) wp_parse_args( $data, $default );
 }
@@ -1310,6 +1312,180 @@ function unregister_default_headers( $header ) {
 	}
 }
 
+/**
+ * Check whether a header video is set or not.
+ *
+ * @since 4.7.0
+ *
+ * @see get_header_video_url()
+ *
+ * @return bool Whether a header video is set or not.
+ */
+function has_header_video() {
+	return (bool) get_header_video_url();
+}
+
+/* Retrieve header video URL for custom header.
+ *
+ * Uses a local video if present, or falls back to an external video. Returns false if there is no video.
+ *
+ * @since 4.7.0
+ *
+ * @return string|false
+ */
+function get_header_video_url() {
+	$id = absint( get_theme_mod( 'header_video' ) );
+	$url = esc_url( get_theme_mod( 'external_header_video' ) );
+
+	if ( ! $id && ! $url ) {
+		return false;
+	}
+
+	if ( $id ) {
+		// Get the file URL from the attachment ID.
+		$url = wp_get_attachment_url( $id );
+	}
+
+	return esc_url_raw( set_url_scheme( $url ) );
+}
+
+/**
+ * Display header video URL.
+ *
+ * @since 4.7.0
+ */
+function the_header_video_url() {
+	$video = get_header_video_url();
+	if ( $video ) {
+		echo esc_url( $video );
+	}
+}
+
+/**
+ * Retrieve header video settings.
+ *
+ * @since 4.7.0
+ *
+ * @return array
+ */
+function get_header_video_settings() {
+	$header     = get_custom_header();
+	$video_url  = get_header_video_url();
+	$video_type = wp_check_filetype( $video_url, wp_get_mime_types() );
+
+	$settings = array(
+		'mimeType'  => '',
+		'posterUrl' => get_header_image(),
+		'videoUrl'  => $video_url,
+		'width'     => absint( $header->width ),
+		'height'    => absint( $header->height ),
+		'minWidth'  => 900,
+		'minHeight' => 500,
+		'l10n'      => array(
+			'pause'      => __( 'Pause' ),
+			'play'       => __( 'Play' ),
+			'pauseSpeak' => __( 'Video is paused.'),
+			'playSpeak'  => __( 'Video is playing.'),
+		),
+	);
+
+	if ( preg_match( '#^https?://(?:www\.)?(?:youtube\.com/watch|youtu\.be/)#', $video_url ) ) {
+		$settings['mimeType'] = 'video/x-youtube';
+	} elseif ( ! empty( $video_type['type'] ) ) {
+		$settings['mimeType'] = $video_type['type'];
+	}
+
+	return apply_filters( 'header_video_settings', $settings );
+}
+
+/**
+ * Check whether a custom header is set or not.
+ *
+ * @since 4.7.0
+ *
+ * @return bool True if a custom header is set. False if not.
+ */
+function has_custom_header() {
+	if ( has_header_image() || ( has_header_video() && is_header_video_active() ) ) {
+		return true;
+	}
+
+	return false;
+}
+
+/**
+ * Checks whether the custom header video is eligible to show on the current page.
+ *
+ * @since 4.7.0
+ *
+ * @return bool True if the custom header video should be shown. False if not.
+ */
+function is_header_video_active() {
+	if ( ! get_theme_support( 'custom-header', 'video' ) ) {
+		return false;
+	}
+
+	$video_active_cb = get_theme_support( 'custom-header', 'video-active-callback' );
+
+	if ( empty( $video_active_cb ) || ! is_callable( $video_active_cb ) ) {
+		$show_video = true;
+	} else {
+		$show_video = call_user_func( $video_active_cb );
+	}
+
+	/**
+	 * Modify whether the custom header video is eligible to show on the current page.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param bool $show_video Whether the custom header video should be shown. Returns the value
+	 *                         of the theme setting for the `custom-header`'s `video-active-callback`.
+	 *                         If no callback is set, the default value is that of `is_front_page()`.
+	 */
+	return apply_filters( 'is_header_video_active', $show_video );
+}
+
+/**
+ * Retrieve the markup for a custom header.
+ *
+ * The container div will always be returned in the Customizer preview.
+ *
+ * @since 4.7.0
+ *
+ * @return string The markup for a custom header on success.
+ */
+function get_custom_header_markup() {
+	if ( ! has_custom_header() && ! is_customize_preview() ) {
+		return '';
+	}
+
+	return sprintf(
+		'<div id="wp-custom-header" class="wp-custom-header">%s</div>',
+		get_header_image_tag()
+	);
+}
+
+/**
+ * Print the markup for a custom header.
+ *
+ * A container div will always be printed in the Customizer preview.
+ *
+ * @since 4.7.0
+ */
+function the_custom_header_markup() {
+	$custom_header = get_custom_header_markup();
+	if ( empty( $custom_header ) ) {
+		return;
+	}
+
+	echo $custom_header;
+
+	if ( is_header_video_active() && ( has_header_video() || is_customize_preview() ) ) {
+		wp_enqueue_script( 'wp-custom-header' );
+		wp_localize_script( 'wp-custom-header', '_wpCustomHeaderSettings', get_header_video_settings() );
+	}
+}
+
 /**
  * Retrieve background image for custom background.
  *
@@ -1368,30 +1544,60 @@ function _custom_background_cb() {
 		$color = false;
 	}
 
-	if ( ! $background && ! $color )
+	if ( ! $background && ! $color ) {
+		if ( is_customize_preview() ) {
+			echo '<style type="text/css" id="custom-background-css"></style>';
+		}
 		return;
+	}
 
 	$style = $color ? "background-color: #$color;" : '';
 
 	if ( $background ) {
-		$image = " background-image: url('$background');";
+		$image = " background-image: url(" . wp_json_encode( $background ) . ");";
+
+		// Background Position.
+		$position_x = get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) );
+		$position_y = get_theme_mod( 'background_position_y', get_theme_support( 'custom-background', 'default-position-y' ) );
+
+		if ( ! in_array( $position_x, array( 'left', 'center', 'right' ), true ) ) {
+			$position_x = 'left';
+		}
+
+		if ( ! in_array( $position_y, array( 'top', 'center', 'bottom' ), true ) ) {
+			$position_y = 'top';
+		}
 
+		$position = " background-position: $position_x $position_y;";
+
+		// Background Size.
+		$size = get_theme_mod( 'background_size', get_theme_support( 'custom-background', 'default-size' ) );
+
+		if ( ! in_array( $size, array( 'auto', 'contain', 'cover' ), true ) ) {
+			$size = 'auto';
+		}
+
+		$size = " background-size: $size;";
+
+		// Background Repeat.
 		$repeat = get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) );
-		if ( ! in_array( $repeat, array( 'no-repeat', 'repeat-x', 'repeat-y', 'repeat' ) ) )
+
+		if ( ! in_array( $repeat, array( 'repeat-x', 'repeat-y', 'repeat', 'no-repeat' ), true ) ) {
 			$repeat = 'repeat';
-		$repeat = " background-repeat: $repeat;";
+		}
 
-		$position = get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) );
-		if ( ! in_array( $position, array( 'center', 'right', 'left' ) ) )
-			$position = 'left';
-		$position = " background-position: top $position;";
+		$repeat = " background-repeat: $repeat;";
 
+		// Background Scroll.
 		$attachment = get_theme_mod( 'background_attachment', get_theme_support( 'custom-background', 'default-attachment' ) );
-		if ( ! in_array( $attachment, array( 'fixed', 'scroll' ) ) )
+
+		if ( 'fixed' !== $attachment ) {
 			$attachment = 'scroll';
+		}
+
 		$attachment = " background-attachment: $attachment;";
 
-		$style .= $image . $repeat . $position . $attachment;
+		$style .= $image . $position . $size . $repeat . $attachment;
 	}
 ?>
 <style type="text/css" id="custom-background-css">
@@ -1400,6 +1606,199 @@ body.custom-background { <?php echo trim( $style ); ?> }
 <?php
 }
 
+/**
+ * Render the Custom CSS style element.
+ *
+ * @since 4.7.0
+ * @access public
+ */
+function wp_custom_css_cb() {
+	$styles = wp_get_custom_css();
+	if ( $styles || is_customize_preview() ) : ?>
+		<style type="text/css" id="wp-custom-css">
+			<?php echo strip_tags( $styles ); // Note that esc_html() cannot be used because `div &gt; span` is not interpreted properly. ?>
+		</style>
+	<?php endif;
+}
+
+/**
+ * Fetch the `custom_css` post for a given theme.
+ *
+ * @since 4.7.0
+ * @access public
+ *
+ * @param string $stylesheet Optional. A theme object stylesheet name. Defaults to the current theme.
+ * @return WP_Post|null The custom_css post or null if none exists.
+ */
+function wp_get_custom_css_post( $stylesheet = '' ) {
+	if ( empty( $stylesheet ) ) {
+		$stylesheet = get_stylesheet();
+	}
+
+	$custom_css_query_vars = array(
+		'post_type'              => 'custom_css',
+		'post_status'            => get_post_stati(),
+		'name'                   => sanitize_title( $stylesheet ),
+		'posts_per_page'         => 1,
+		'no_found_rows'          => true,
+		'cache_results'          => true,
+		'update_post_meta_cache' => false,
+		'update_term_meta_cache' => false,
+	);
+
+	$post = null;
+	if ( get_stylesheet() === $stylesheet ) {
+		$post_id = get_theme_mod( 'custom_css_post_id' );
+
+		if ( $post_id > 0 && get_post( $post_id ) ) {
+			$post = get_post( $post_id );
+		} else {
+			$query = new WP_Query( $custom_css_query_vars );
+			$post = $query->post;
+			/*
+			 * Cache the lookup. See WP_Customize_Custom_CSS_Setting::update().
+			 * @todo This should get cleared if a custom_css post is added/removed.
+			 */
+			if ( $post ) {
+				set_theme_mod( 'custom_css_post_id', $post->ID );
+			} elseif ( -1 !== $post_id ) {
+				set_theme_mod( 'custom_css_post_id', -1 );
+			}
+		}
+	} else {
+		$query = new WP_Query( $custom_css_query_vars );
+		$post = $query->post;
+	}
+
+	return $post;
+}
+
+/**
+ * Fetch the saved Custom CSS content for rendering.
+ *
+ * @since 4.7.0
+ * @access public
+ *
+ * @param string $stylesheet Optional. A theme object stylesheet name. Defaults to the current theme.
+ * @return string The Custom CSS Post content.
+ */
+function wp_get_custom_css( $stylesheet = '' ) {
+	$css = '';
+
+	if ( empty( $stylesheet ) ) {
+		$stylesheet = get_stylesheet();
+	}
+
+	$post = wp_get_custom_css_post( $stylesheet );
+	if ( $post ) {
+		$css = $post->post_content;
+	}
+
+	/**
+	 * Modify the Custom CSS Output into the <head>.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $css        CSS pulled in from the Custom CSS CPT.
+	 * @param string $stylesheet The theme stylesheet name.
+	 */
+	$css = apply_filters( 'wp_get_custom_css', $css, $stylesheet );
+
+	return $css;
+}
+
+/**
+ * Update the `custom_css` post for a given theme.
+ *
+ * Inserts a `custom_css` post when one doesn't yet exist.
+ *
+ * @since 4.7.0
+ * @access public
+ *
+ * @param string $css CSS, stored in `post_content`.
+ * @param array  $args {
+ *     Args.
+ *
+ *     @type string $preprocessed Pre-processed CSS, stored in `post_content_filtered`. Normally empty string. Optional.
+ *     @type string $stylesheet   Stylesheet (child theme) to update. Optional, defaults to current theme/stylesheet.
+ * }
+ * @return WP_Post|WP_Error Post on success, error on failure.
+ */
+function wp_update_custom_css_post( $css, $args = array() ) {
+	$args = wp_parse_args( $args, array(
+		'preprocessed' => '',
+		'stylesheet' => get_stylesheet(),
+	) );
+
+	$data = array(
+		'css' => $css,
+		'preprocessed' => $args['preprocessed'],
+	);
+
+	/**
+	 * Filters the `css` (`post_content`) and `preprocessed` (`post_content_filtered`) args for a `custom_css` post being updated.
+	 *
+	 * This filter can be used by plugin that offer CSS pre-processors, to store the original
+	 * pre-processed CSS in `post_content_filtered` and then store processed CSS in `post_content`.
+	 * When used in this way, the `post_content_filtered` should be supplied as the setting value
+	 * instead of `post_content` via a the `customize_value_custom_css` filter, for example:
+	 *
+	 * <code>
+	 * add_filter( 'customize_value_custom_css', function( $value, $setting ) {
+	 *     $post = wp_get_custom_css_post( $setting->stylesheet );
+	 *     if ( $post && ! empty( $post->post_content_filtered ) ) {
+	 *         $css = $post->post_content_filtered;
+	 *     }
+	 *     return $css;
+	 * }, 10, 2 );
+	 * </code>
+	 *
+	 * @since 4.7.0
+	 * @param array $data {
+	 *     Custom CSS data.
+	 *
+	 *     @type string $css          CSS stored in `post_content`.
+	 *     @type string $preprocessed Pre-processed CSS stored in `post_content_filtered`. Normally empty string.
+	 * }
+	 * @param array $args {
+	 *     The args passed into `wp_update_custom_css_post()` merged with defaults.
+	 *
+	 *     @type string $css          The original CSS passed in to be updated.
+	 *     @type string $preprocessed The original preprocessed CSS passed in to be updated.
+	 *     @type string $stylesheet   The stylesheet (theme) being updated.
+	 * }
+	 */
+	$data = apply_filters( 'update_custom_css_data', $data, array_merge( $args, compact( 'css' ) ) );
+
+	$post_data = array(
+		'post_title' => $args['stylesheet'],
+		'post_name' => sanitize_title( $args['stylesheet'] ),
+		'post_type' => 'custom_css',
+		'post_status' => 'publish',
+		'post_content' => $data['css'],
+		'post_content_filtered' => $data['preprocessed'],
+	);
+
+	// Update post if it already exists, otherwise create a new one.
+	$post = wp_get_custom_css_post( $args['stylesheet'] );
+	if ( $post ) {
+		$post_data['ID'] = $post->ID;
+		$r = wp_update_post( wp_slash( $post_data ), true );
+	} else {
+		$r = wp_insert_post( wp_slash( $post_data ), true );
+
+		// Trigger creation of a revision. This should be removed once #30854 is resolved.
+		if ( ! is_wp_error( $r ) && 0 === count( wp_get_post_revisions( $r ) ) ) {
+			wp_save_post_revision( $r );
+		}
+	}
+
+	if ( is_wp_error( $r ) ) {
+		return $r;
+	}
+	return get_post( $r );
+}
+
 /**
  * Add callback for custom TinyMCE editor stylesheets.
  *
@@ -1513,6 +1912,271 @@ function get_editor_stylesheets() {
 	return apply_filters( 'editor_stylesheets', $stylesheets );
 }
 
+/**
+ * Expand a theme's starter content configuration using core-provided data.
+ *
+ * @since 4.7.0
+ *
+ * @return array Array of starter content.
+ */
+function get_theme_starter_content() {
+	$theme_support = get_theme_support( 'starter-content' );
+	if ( is_array( $theme_support ) && ! empty( $theme_support[0] ) && is_array( $theme_support[0] ) ) {
+		$config = $theme_support[0];
+	} else {
+		$config = array();
+	}
+
+	$core_content = array(
+		'widgets' => array(
+			'text_business_info' => array( 'text', array(
+				'title' => _x( 'Find Us', 'Theme starter content' ),
+				'text' => join( '', array(
+					'<p><strong>' . _x( 'Address', 'Theme starter content' ) . '</strong><br />',
+					_x( '123 Main Street', 'Theme starter content' ) . '<br />' . _x( 'New York, NY 10001', 'Theme starter content' ) . '</p>',
+					'<p><strong>' . _x( 'Hours', 'Theme starter content' ) . '</strong><br />',
+					_x( 'Monday&mdash;Friday: 9:00AM&ndash;5:00PM', 'Theme starter content' ) . '<br />' . _x( 'Saturday &amp; Sunday: 11:00AM&ndash;3:00PM', 'Theme starter content' ) . '</p>'
+				) ),
+			) ),
+			'text_about' => array( 'text', array(
+				'title' => _x( 'About This Site', 'Theme starter content' ),
+				'text' => _x( 'This may be a good place to introduce yourself and your site or include some credits.', 'Theme starter content' ),
+			) ),
+			'archives' => array( 'archives', array(
+				'title' => _x( 'Archives', 'Theme starter content' ),
+			) ),
+			'calendar' => array( 'calendar', array(
+				'title' => _x( 'Calendar', 'Theme starter content' ),
+			) ),
+			'categories' => array( 'categories', array(
+				'title' => _x( 'Categories', 'Theme starter content' ),
+			) ),
+			'meta' => array( 'meta', array(
+				'title' => _x( 'Meta', 'Theme starter content' ),
+			) ),
+			'recent-comments' => array( 'recent-comments', array(
+				'title' => _x( 'Recent Comments', 'Theme starter content' ),
+			) ),
+			'recent-posts' => array( 'recent-posts', array(
+				'title' => _x( 'Recent Posts', 'Theme starter content' ),
+			) ),
+			'search' => array( 'search', array(
+				'title' => _x( 'Search', 'Theme starter content' ),
+			) ),
+		),
+		'nav_menus' => array(
+			'page_home' => array(
+				'type' => 'post_type',
+				'object' => 'page',
+				'object_id' => '{{home}}',
+			),
+			'page_about' => array(
+				'type' => 'post_type',
+				'object' => 'page',
+				'object_id' => '{{about}}',
+			),
+			'page_blog' => array(
+				'type' => 'post_type',
+				'object' => 'page',
+				'object_id' => '{{blog}}',
+			),
+			'page_news' => array(
+				'type' => 'post_type',
+				'object' => 'page',
+				'object_id' => '{{news}}',
+			),
+			'page_contact' => array(
+				'type' => 'post_type',
+				'object' => 'page',
+				'object_id' => '{{contact}}',
+			),
+
+			'link_email' => array(
+				'title' => _x( 'Email', 'Theme starter content' ),
+				'url' => 'mailto:wordpress@example.com',
+			),
+			'link_facebook' => array(
+				'title' => _x( 'Facebook', 'Theme starter content' ),
+				'url' => 'https://www.facebook.com/wordpress',
+			),
+			'link_foursquare' => array(
+				'title' => _x( 'Foursquare', 'Theme starter content' ),
+				'url' => 'https://foursquare.com/',
+			),
+			'link_github' => array(
+				'title' => _x( 'GitHub', 'Theme starter content' ),
+				'url' => 'https://github.com/wordpress/',
+			),
+			'link_instagram' => array(
+				'title' => _x( 'Instagram', 'Theme starter content' ),
+				'url' => 'https://www.instagram.com/explore/tags/wordcamp/',
+			),
+			'link_linkedin' => array(
+				'title' => _x( 'LinkedIn', 'Theme starter content' ),
+				'url' => 'https://www.linkedin.com/company/1089783',
+			),
+			'link_pinterest' => array(
+				'title' => _x( 'Pinterest', 'Theme starter content' ),
+				'url' => 'https://www.pinterest.com/',
+			),
+			'link_twitter' => array(
+				'title' => _x( 'Twitter', 'Theme starter content' ),
+				'url' => 'https://twitter.com/wordpress',
+			),
+			'link_yelp' => array(
+				'title' => _x( 'Yelp', 'Theme starter content' ),
+				'url' => 'https://www.yelp.com',
+			),
+			'link_youtube' => array(
+				'title' => _x( 'YouTube', 'Theme starter content' ),
+				'url' => 'https://www.youtube.com/channel/UCdof4Ju7amm1chz1gi1T2ZA',
+			),
+		),
+		'posts' => array(
+			'home' => array(
+				'post_type' => 'page',
+				'post_title' => _x( 'Home', 'Theme starter content' ),
+				'post_content' => _x( 'Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time.', 'Theme starter content' ),
+			),
+			'about' => array(
+				'post_type' => 'page',
+				'post_title' => _x( 'About', 'Theme starter content' ),
+				'post_content' => _x( 'You might be an artist who would like to introduce yourself and your work here or maybe you&rsquo;re a business with a mission to describe.', 'Theme starter content' ),
+			),
+			'contact' => array(
+				'post_type' => 'page',
+				'post_title' => _x( 'Contact', 'Theme starter content' ),
+				'post_content' => _x( 'This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form.', 'Theme starter content' ),
+			),
+			'blog' => array(
+				'post_type' => 'page',
+				'post_title' => _x( 'Blog', 'Theme starter content' ),
+			),
+			'news' => array(
+				'post_type' => 'page',
+				'post_title' => _x( 'News', 'Theme starter content' ),
+			),
+
+			'homepage-section' => array(
+				'post_type' => 'page',
+				'post_title' => _x( 'A homepage section', 'Theme starter content' ),
+				'post_content' => _x( 'This is an example of a homepage section. Homepage sections can be any page other than the homepage itself, including the page that shows your latest blog posts.', 'Theme starter content' ),
+			),
+		),
+	);
+
+	$content = array();
+
+	foreach ( $config as $type => $args ) {
+		switch( $type ) {
+			// Use options and theme_mods as-is.
+			case 'options' :
+			case 'theme_mods' :
+				$content[ $type ] = $config[ $type ];
+				break;
+
+			// Widgets are grouped into sidebars.
+			case 'widgets' :
+				foreach ( $config[ $type ] as $sidebar_id => $widgets ) {
+					foreach ( $widgets as $id => $widget ) {
+						if ( is_array( $widget ) ) {
+
+							// Item extends core content.
+							if ( ! empty( $core_content[ $type ][ $id ] ) ) {
+								$widget = array(
+									$core_content[ $type ][ $id ][0],
+									array_merge( $core_content[ $type ][ $id ][1], $widget ),
+								);
+							}
+
+							$content[ $type ][ $sidebar_id ][] = $widget;
+						} elseif ( is_string( $widget ) && ! empty( $core_content[ $type ] ) && ! empty( $core_content[ $type ][ $widget ] ) ) {
+							$content[ $type ][ $sidebar_id ][] = $core_content[ $type ][ $widget ];
+						}
+					}
+				}
+				break;
+
+			// And nav menu items are grouped into nav menus.
+			case 'nav_menus' :
+				foreach ( $config[ $type ] as $nav_menu_location => $nav_menu ) {
+
+					// Ensure nav menus get a name.
+					if ( empty( $nav_menu['name'] ) ) {
+						$nav_menu['name'] = $nav_menu_location;
+					}
+
+					$content[ $type ][ $nav_menu_location ]['name'] = $nav_menu['name'];
+
+					foreach ( $nav_menu['items'] as $id => $nav_menu_item ) {
+						if ( is_array( $nav_menu_item ) ) {
+
+							// Item extends core content.
+							if ( ! empty( $core_content[ $type ][ $id ] ) ) {
+								$nav_menu_item = array_merge( $core_content[ $type ][ $id ], $nav_menu_item );
+							}
+
+							$content[ $type ][ $nav_menu_location ]['items'][] = $nav_menu_item;
+						} elseif ( is_string( $nav_menu_item ) && ! empty( $core_content[ $type ] ) && ! empty( $core_content[ $type ][ $nav_menu_item ] ) ) {
+							$content[ $type ][ $nav_menu_location ]['items'][] = $core_content[ $type ][ $nav_menu_item ];
+						}
+					}
+				}
+				break;
+
+			// Attachments are posts but have special treatment.
+			case 'attachments' :
+				foreach ( $config[ $type ] as $id => $item ) {
+					if ( ! empty( $item['file'] ) ) {
+						$content[ $type ][ $id ] = $item;
+					}
+				}
+				break;
+
+			// All that's left now are posts (besides attachments). Not a default case for the sake of clarity and future work.
+			case 'posts' :
+				foreach ( $config[ $type ] as $id => $item ) {
+					if ( is_array( $item ) ) {
+
+						// Item extends core content.
+						if ( ! empty( $core_content[ $type ][ $id ] ) ) {
+							$item = array_merge( $core_content[ $type ][ $id ], $item );
+						}
+
+						// Enforce a subset of fields.
+						$content[ $type ][ $id ] = wp_array_slice_assoc(
+							$item,
+							array(
+								'post_type',
+								'post_title',
+								'post_excerpt',
+								'post_name',
+								'post_content',
+								'menu_order',
+								'comment_status',
+								'thumbnail',
+								'template',
+							)
+						);
+					} elseif ( is_string( $item ) && ! empty( $core_content[ $type ][ $item ] ) ) {
+						$content[ $type ][ $item ] = $core_content[ $type ][ $item ];
+					}
+				}
+				break;
+		}
+	}
+
+	/**
+	 * Filters the expanded array of starter content.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param array $content Array of starter content.
+	 * @param array $config  Array of theme-specific starter content configuration.
+	 */
+	return apply_filters( 'get_theme_starter_content', $content, $config );
+}
+
 /**
  * Registers theme support for a given feature.
  *
@@ -1525,12 +2189,13 @@ function get_editor_stylesheets() {
  * @since 3.9.0 The `html5` feature now also accepts 'gallery' and 'caption'
  * @since 4.1.0 The `title-tag` feature was added
  * @since 4.5.0 The `customize-selective-refresh-widgets` feature was added
+ * @since 4.7.0 The `starter-content` feature was added
  *
  * @global array $_wp_theme_features
  *
  * @param string $feature  The feature being added. Likely core values include 'post-formats',
  *                         'post-thumbnails', 'html5', 'custom-logo', 'custom-header-uploads',
- *                         'custom-header', 'custom-background', 'title-tag', etc.
+ *                         'custom-header', 'custom-background', 'title-tag', 'starter-content', etc.
  * @param mixed  $args,... Optional extra arguments to pass along with certain features.
  * @return void|bool False on failure, void otherwise.
  */
@@ -1623,6 +2288,8 @@ function add_theme_support( $feature ) {
 				'wp-head-callback' => '',
 				'admin-head-callback' => '',
 				'admin-preview-callback' => '',
+				'video' => false,
+				'video-active-callback' => 'is_front_page',
 			);
 
 			$jit = isset( $args[0]['__jit'] );
@@ -1689,8 +2356,11 @@ function add_theme_support( $feature ) {
 
 			$defaults = array(
 				'default-image'          => '',
-				'default-repeat'         => 'repeat',
+				'default-preset'         => 'default',
 				'default-position-x'     => 'left',
+				'default-position-y'     => 'top',
+				'default-size'           => 'auto',
+				'default-repeat'         => 'repeat',
 				'default-attachment'     => 'scroll',
 				'default-color'          => '',
 				'wp-head-callback'       => '_custom_background_cb',
@@ -1881,10 +2551,13 @@ function _remove_theme_support( $feature ) {
 			if ( ! did_action( 'wp_loaded' ) )
 				break;
 			$support = get_theme_support( 'custom-header' );
-			if ( $support[0]['wp-head-callback'] )
+			if ( isset( $support[0]['wp-head-callback'] ) ) {
 				remove_action( 'wp_head', $support[0]['wp-head-callback'] );
-			remove_action( 'admin_menu', array( $GLOBALS['custom_image_header'], 'init' ) );
-			unset( $GLOBALS['custom_image_header'] );
+			}
+			if ( isset( $GLOBALS['custom_image_header'] ) ) {
+				remove_action( 'admin_menu', array( $GLOBALS['custom_image_header'], 'init' ) );
+				unset( $GLOBALS['custom_image_header'] );
+			}
 			break;
 
 		case 'custom-background' :
@@ -1958,7 +2631,8 @@ function current_theme_supports( $feature ) {
 	 *
 	 * The dynamic portion of the hook name, `$feature`, refers to the specific theme
 	 * feature. Possible values include 'post-formats', 'post-thumbnails', 'custom-background',
-	 * 'custom-header', 'menus', 'automatic-feed-links', 'html5', and `customize-selective-refresh-widgets`.
+	 * 'custom-header', 'menus', 'automatic-feed-links', 'html5',
+	 * 'starter-content', and 'customize-selective-refresh-widgets'.
 	 *
 	 * @since 3.4.0
 	 *
@@ -2066,9 +2740,9 @@ function check_theme_switched() {
  * Includes and instantiates the WP_Customize_Manager class.
  *
  * Loads the Customizer at plugins_loaded when accessing the customize.php admin
- * page or when any request includes a wp_customize=on param, either as a GET
- * query var or as POST data. This param is a signal for whether to bootstrap
- * the Customizer when WordPress is loading, especially in the Customizer preview
+ * page or when any request includes a wp_customize=on param or a customize_changeset
+ * param (a UUID). This param is a signal for whether to bootstrap the Customizer when
+ * WordPress is loading, especially in the Customizer preview
  * or when making Customizer Ajax requests for widgets or menus.
  *
  * @since 3.4.0
@@ -2076,14 +2750,180 @@ function check_theme_switched() {
  * @global WP_Customize_Manager $wp_customize
  */
 function _wp_customize_include() {
-	if ( ! ( ( isset( $_REQUEST['wp_customize'] ) && 'on' == $_REQUEST['wp_customize'] )
-		|| ( is_admin() && 'customize.php' == basename( $_SERVER['PHP_SELF'] ) )
-	) ) {
+
+	$is_customize_admin_page = ( is_admin() && 'customize.php' == basename( $_SERVER['PHP_SELF'] ) );
+	$should_include = (
+		$is_customize_admin_page
+		||
+		( isset( $_REQUEST['wp_customize'] ) && 'on' == $_REQUEST['wp_customize'] )
+		||
+		( ! empty( $_GET['customize_changeset_uuid'] ) || ! empty( $_POST['customize_changeset_uuid'] ) )
+	);
+
+	if ( ! $should_include ) {
 		return;
 	}
 
+	/*
+	 * Note that wp_unslash() is not being used on the input vars because it is
+	 * called before wp_magic_quotes() gets called. Besides this fact, none of
+	 * the values should contain any characters needing slashes anyway.
+	 */
+	$keys = array( 'changeset_uuid', 'customize_changeset_uuid', 'customize_theme', 'theme', 'customize_messenger_channel' );
+	$input_vars = array_merge(
+		wp_array_slice_assoc( $_GET, $keys ),
+		wp_array_slice_assoc( $_POST, $keys )
+	);
+
+	$theme = null;
+	$changeset_uuid = null;
+	$messenger_channel = null;
+
+	if ( $is_customize_admin_page && isset( $input_vars['changeset_uuid'] ) ) {
+		$changeset_uuid = sanitize_key( $input_vars['changeset_uuid'] );
+	} elseif ( ! empty( $input_vars['customize_changeset_uuid'] ) ) {
+		$changeset_uuid = sanitize_key( $input_vars['customize_changeset_uuid'] );
+	}
+
+	// Note that theme will be sanitized via WP_Theme.
+	if ( $is_customize_admin_page && isset( $input_vars['theme'] ) ) {
+		$theme = $input_vars['theme'];
+	} elseif ( isset( $input_vars['customize_theme'] ) ) {
+		$theme = $input_vars['customize_theme'];
+	}
+	if ( isset( $input_vars['customize_messenger_channel'] ) ) {
+		$messenger_channel = sanitize_key( $input_vars['customize_messenger_channel'] );
+	}
+
 	require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
-	$GLOBALS['wp_customize'] = new WP_Customize_Manager();
+	$GLOBALS['wp_customize'] = new WP_Customize_Manager( compact( 'changeset_uuid', 'theme', 'messenger_channel' ) );
+}
+
+/**
+ * Publish a snapshot's changes.
+ *
+ * @param string  $new_status     New post status.
+ * @param string  $old_status     Old post status.
+ * @param WP_Post $changeset_post Changeset post object.
+ */
+function _wp_customize_publish_changeset( $new_status, $old_status, $changeset_post ) {
+	global $wp_customize, $wpdb;
+
+	$is_publishing_changeset = (
+		'customize_changeset' === $changeset_post->post_type
+		&&
+		'publish' === $new_status
+		&&
+		'publish' !== $old_status
+	);
+	if ( ! $is_publishing_changeset ) {
+		return;
+	}
+
+	if ( empty( $wp_customize ) ) {
+		require_once ABSPATH . WPINC . '/class-wp-customize-manager.php';
+		$wp_customize = new WP_Customize_Manager( array( 'changeset_uuid' => $changeset_post->post_name ) );
+	}
+
+	if ( ! did_action( 'customize_register' ) ) {
+		/*
+		 * When running from CLI or Cron, the customize_register action will need
+		 * to be triggered in order for core, themes, and plugins to register their
+		 * settings. Normally core will add_action( 'customize_register' ) at
+		 * priority 10 to register the core settings, and if any themes/plugins
+		 * also add_action( 'customize_register' ) at the same priority, they
+		 * will have a $wp_customize with those settings registered since they
+		 * call add_action() afterward, normally. However, when manually doing
+		 * the customize_register action after the setup_theme, then the order
+		 * will be reversed for two actions added at priority 10, resulting in
+		 * the core settings no longer being available as expected to themes/plugins.
+		 * So the following manually calls the method that registers the core
+		 * settings up front before doing the action.
+		 */
+		remove_action( 'customize_register', array( $wp_customize, 'register_controls' ) );
+		$wp_customize->register_controls();
+
+		/** This filter is documented in /wp-includes/class-wp-customize-manager.php */
+		do_action( 'customize_register', $wp_customize );
+	}
+	$wp_customize->_publish_changeset_values( $changeset_post->ID ) ;
+
+	/*
+	 * Trash the changeset post if revisions are not enabled. Unpublished
+	 * changesets by default get garbage collected due to the auto-draft status.
+	 * When a changeset post is published, however, it would no longer get cleaned
+	 * out. Ths is a problem when the changeset posts are never displayed anywhere,
+	 * since they would just be endlessly piling up. So here we use the revisions
+	 * feature to indicate whether or not a published changeset should get trashed
+	 * and thus garbage collected.
+	 */
+	if ( ! wp_revisions_enabled( $changeset_post ) ) {
+		$post = $changeset_post;
+		$post_id = $changeset_post->ID;
+
+		/*
+		 * The following re-formulates the logic from wp_trash_post() as done in
+		 * wp_publish_post(). The reason for bypassing wp_trash_post() is that it
+		 * will mutate the the post_content and the post_name when they should be
+		 * untouched.
+		 */
+		if ( ! EMPTY_TRASH_DAYS ) {
+			wp_delete_post( $post_id, true );
+		} else {
+			/** This action is documented in wp-includes/post.php */
+			do_action( 'wp_trash_post', $post_id );
+
+			add_post_meta( $post_id, '_wp_trash_meta_status', $post->post_status );
+			add_post_meta( $post_id, '_wp_trash_meta_time', time() );
+
+			$old_status = $post->post_status;
+			$new_status = 'trash';
+			$wpdb->update( $wpdb->posts, array( 'post_status' => $new_status ), array( 'ID' => $post->ID ) );
+			clean_post_cache( $post->ID );
+
+			$post->post_status = $new_status;
+			wp_transition_post_status( $new_status, $old_status, $post );
+
+			/** This action is documented in wp-includes/post.php */
+			do_action( 'edit_post', $post->ID, $post );
+
+			/** This action is documented in wp-includes/post.php */
+			do_action( "save_post_{$post->post_type}", $post->ID, $post, true );
+
+			/** This action is documented in wp-includes/post.php */
+			do_action( 'save_post', $post->ID, $post, true );
+
+			/** This action is documented in wp-includes/post.php */
+			do_action( 'wp_insert_post', $post->ID, $post, true );
+
+			/** This action is documented in wp-includes/post.php */
+			do_action( 'trashed_post', $post_id );
+		}
+	}
+}
+
+/**
+ * Filters changeset post data upon insert to ensure post_name is intact.
+ *
+ * This is needed to prevent the post_name from being dropped when the post is
+ * transitioned into pending status by a contributor.
+ *
+ * @since 4.7.0
+ * @see wp_insert_post()
+ *
+ * @param array $post_data          An array of slashed post data.
+ * @param array $supplied_post_data An array of sanitized, but otherwise unmodified post data.
+ * @returns array Filtered data.
+ */
+function _wp_customize_changeset_filter_insert_post_data( $post_data, $supplied_post_data ) {
+	if ( isset( $post_data['post_type'] ) && 'customize_changeset' === $post_data['post_type'] ) {
+
+		// Prevent post_name from being dropped, such as when contributor saves a changeset post as pending.
+		if ( empty( $post_data['post_name'] ) && ! empty( $supplied_post_data['post_name'] ) ) {
+			$post_data['post_name'] = $supplied_post_data['post_name'];
+		}
+	}
+	return $post_data;
 }
 
 /**
@@ -2151,6 +2991,7 @@ function wp_customize_url( $stylesheet = null ) {
  * to the body tag by default.
  *
  * @since 3.4.0
+ * @since 4.7.0 Support for IE8 and below is explicitly removed via conditional comments.
  */
 function wp_customize_support_script() {
 	$admin_origin = parse_url( admin_url() );
@@ -2158,20 +2999,28 @@ function wp_customize_support_script() {
 	$cross_domain = ( strtolower( $admin_origin[ 'host' ] ) != strtolower( $home_origin[ 'host' ] ) );
 
 	?>
-	<script type="text/javascript">
-		(function() {
-			var request, b = document.body, c = 'className', cs = 'customize-support', rcs = new RegExp('(^|\\s+)(no-)?'+cs+'(\\s+|$)');
-
-<?php		if ( $cross_domain ): ?>
-			request = (function(){ var xhr = new XMLHttpRequest(); return ('withCredentials' in xhr); })();
-<?php		else: ?>
-			request = true;
-<?php		endif; ?>
-
-			b[c] = b[c].replace( rcs, ' ' );
-			b[c] += ( window.postMessage && request ? ' ' : ' no-' ) + cs;
-		}());
-	</script>
+	<!--[if lte IE 8]>
+		<script type="text/javascript">
+			document.body.className = document.body.className.replace( /(^|\s)(no-)?customize-support(?=\s|$)/, '' ) + ' no-customize-support';
+		</script>
+	<![endif]-->
+	<!--[if gte IE 9]><!-->
+		<script type="text/javascript">
+			(function() {
+				var request, b = document.body, c = 'className', cs = 'customize-support', rcs = new RegExp('(^|\\s+)(no-)?'+cs+'(\\s+|$)');
+
+		<?php	if ( $cross_domain ) : ?>
+				request = (function(){ var xhr = new XMLHttpRequest(); return ('withCredentials' in xhr); })();
+		<?php	else : ?>
+				request = true;
+		<?php	endif; ?>
+
+				b[c] = b[c].replace( rcs, ' ' );
+				// The customizer requires postMessage and CORS (if the site is cross domain)
+				b[c] += ( window.postMessage && request ? ' ' : ' no-' ) + cs;
+			}());
+		</script>
+	<!--<![endif]-->
 	<?php
 }
 
diff --git a/wp-includes/update.php b/wp-includes/update.php
index 59b618c31..f0b999a4c 100644
--- a/wp-includes/update.php
+++ b/wp-includes/update.php
@@ -120,7 +120,14 @@ function wp_version_check( $extra_stats = array(), $force_check = false ) {
 
 	$response = wp_remote_post( $url, $options );
 	if ( $ssl && is_wp_error( $response ) ) {
-		trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+		trigger_error(
+			sprintf(
+				/* translators: %s: support forums URL */
+				__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+				__( 'https://wordpress.org/support/' )
+			) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ),
+			headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE
+		);
 		$response = wp_remote_post( $http_url, $options );
 	}
 
@@ -303,7 +310,14 @@ function wp_update_plugins( $extra_stats = array() ) {
 
 	$raw_response = wp_remote_post( $url, $options );
 	if ( $ssl && is_wp_error( $raw_response ) ) {
-		trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+		trigger_error(
+			sprintf(
+				/* translators: %s: support forums URL */
+				__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+				__( 'https://wordpress.org/support/' )
+			) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ),
+			headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE
+		);
 		$raw_response = wp_remote_post( $http_url, $options );
 	}
 
@@ -476,7 +490,14 @@ function wp_update_themes( $extra_stats = array() ) {
 
 	$raw_response = wp_remote_post( $url, $options );
 	if ( $ssl && is_wp_error( $raw_response ) ) {
-		trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+		trigger_error(
+			sprintf(
+				/* translators: %s: support forums URL */
+				__( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href="%s">support forums</a>.' ),
+				__( 'https://wordpress.org/support/' )
+			) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ),
+			headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE
+		);
 		$raw_response = wp_remote_post( $http_url, $options );
 	}
 
@@ -566,14 +587,21 @@ function wp_get_update_data() {
 
 	$counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'] + $counts['translations'];
 	$titles = array();
-	if ( $counts['wordpress'] )
+	if ( $counts['wordpress'] ) {
+		/* translators: 1: Number of updates available to WordPress */
 		$titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] );
-	if ( $counts['plugins'] )
+	}
+	if ( $counts['plugins'] ) {
+		/* translators: 1: Number of updates available to plugins */
 		$titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] );
-	if ( $counts['themes'] )
+	}
+	if ( $counts['themes'] ) {
+		/* translators: 1: Number of updates available to themes */
 		$titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] );
-	if ( $counts['translations'] )
+	}
+	if ( $counts['translations'] ) {
 		$titles['translations'] = __( 'Translation Updates' );
+	}
 
 	$update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : '';
 
@@ -678,7 +706,7 @@ function wp_clean_update_cache() {
 	delete_site_transient( 'update_core' );
 }
 
-if ( ( ! is_main_site() && ! is_network_admin() ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
+if ( ( ! is_main_site() && ! is_network_admin() ) || wp_doing_ajax() ) {
 	return;
 }
 
diff --git a/wp-includes/user.php b/wp-includes/user.php
index 6d473ef4c..028606385 100644
--- a/wp-includes/user.php
+++ b/wp-includes/user.php
@@ -559,24 +559,25 @@ function get_users( $args = array() ) {
 }
 
 /**
- * Get the blogs a user belongs to.
+ * Get the sites a user belongs to.
  *
  * @since 3.0.0
+ * @since 4.7.0 Converted to use get_sites().
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
  * @param int  $user_id User ID
- * @param bool $all     Whether to retrieve all blogs, or only blogs that are not
+ * @param bool $all     Whether to retrieve all sites, or only sites that are not
  *                      marked as deleted, archived, or spam.
- * @return array A list of the user's blogs. An empty array if the user doesn't exist
- *               or belongs to no blogs.
+ * @return array A list of the user's sites. An empty array if the user doesn't exist
+ *               or belongs to no sites.
  */
 function get_blogs_of_user( $user_id, $all = false ) {
 	global $wpdb;
 
 	$user_id = (int) $user_id;
 
-	// Logged out users can't have blogs
+	// Logged out users can't have sites
 	if ( empty( $user_id ) )
 		return array();
 
@@ -588,15 +589,15 @@ function get_blogs_of_user( $user_id, $all = false ) {
 	 *
 	 * @since 4.6.0
 	 *
-	 * @param null|array $blogs   An array of WP_Site objects of which the user is a member.
+	 * @param null|array $sites   An array of site objects of which the user is a member.
 	 * @param int        $user_id User ID.
 	 * @param bool       $all     Whether the returned array should contain all sites, including
 	 *                            those marked 'deleted', 'archived', or 'spam'. Default false.
 	 */
-	$blogs = apply_filters( 'pre_get_blogs_of_user', null, $user_id, $all );
+	$sites = apply_filters( 'pre_get_blogs_of_user', null, $user_id, $all );
 
-	if ( null !== $blogs ) {
-		return $blogs;
+	if ( null !== $sites ) {
+		return $sites;
 	}
 
 	$keys = get_user_meta( $user_id );
@@ -604,38 +605,24 @@ function get_blogs_of_user( $user_id, $all = false ) {
 		return array();
 
 	if ( ! is_multisite() ) {
-		$blog_id = get_current_blog_id();
-		$blogs = array( $blog_id => new stdClass );
-		$blogs[ $blog_id ]->userblog_id = $blog_id;
-		$blogs[ $blog_id ]->blogname = get_option('blogname');
-		$blogs[ $blog_id ]->domain = '';
-		$blogs[ $blog_id ]->path = '';
-		$blogs[ $blog_id ]->site_id = 1;
-		$blogs[ $blog_id ]->siteurl = get_option('siteurl');
-		$blogs[ $blog_id ]->archived = 0;
-		$blogs[ $blog_id ]->spam = 0;
-		$blogs[ $blog_id ]->deleted = 0;
-		return $blogs;
-	}
-
-	$blogs = array();
+		$site_id = get_current_blog_id();
+		$sites = array( $site_id => new stdClass );
+		$sites[ $site_id ]->userblog_id = $site_id;
+		$sites[ $site_id ]->blogname = get_option('blogname');
+		$sites[ $site_id ]->domain = '';
+		$sites[ $site_id ]->path = '';
+		$sites[ $site_id ]->site_id = 1;
+		$sites[ $site_id ]->siteurl = get_option('siteurl');
+		$sites[ $site_id ]->archived = 0;
+		$sites[ $site_id ]->spam = 0;
+		$sites[ $site_id ]->deleted = 0;
+		return $sites;
+	}
+
+	$site_ids = array();
 
 	if ( isset( $keys[ $wpdb->base_prefix . 'capabilities' ] ) && defined( 'MULTISITE' ) ) {
-		$blog = get_blog_details( 1 );
-		if ( $blog && isset( $blog->domain ) && ( $all || ( ! $blog->archived && ! $blog->spam && ! $blog->deleted ) ) ) {
-			$blogs[ 1 ] = (object) array(
-				'userblog_id' => 1,
-				'blogname'    => $blog->blogname,
-				'domain'      => $blog->domain,
-				'path'        => $blog->path,
-				'site_id'     => $blog->site_id,
-				'siteurl'     => $blog->siteurl,
-				'archived'    => $blog->archived,
-				'mature'      => $blog->mature,
-				'spam'        => $blog->spam,
-				'deleted'     => $blog->deleted,
-			);
-		}
+		$site_ids[] = 1;
 		unset( $keys[ $wpdb->base_prefix . 'capabilities' ] );
 	}
 
@@ -646,39 +633,55 @@ function get_blogs_of_user( $user_id, $all = false ) {
 			continue;
 		if ( $wpdb->base_prefix && 0 !== strpos( $key, $wpdb->base_prefix ) )
 			continue;
-		$blog_id = str_replace( array( $wpdb->base_prefix, '_capabilities' ), '', $key );
-		if ( ! is_numeric( $blog_id ) )
+		$site_id = str_replace( array( $wpdb->base_prefix, '_capabilities' ), '', $key );
+		if ( ! is_numeric( $site_id ) )
 			continue;
 
-		$blog_id = (int) $blog_id;
-		$blog = get_blog_details( $blog_id );
-		if ( $blog && isset( $blog->domain ) && ( $all || ( ! $blog->archived && ! $blog->spam && ! $blog->deleted ) ) ) {
-			$blogs[ $blog_id ] = (object) array(
-				'userblog_id' => $blog_id,
-				'blogname'    => $blog->blogname,
-				'domain'      => $blog->domain,
-				'path'        => $blog->path,
-				'site_id'     => $blog->site_id,
-				'siteurl'     => $blog->siteurl,
-				'archived'    => $blog->archived,
-				'mature'      => $blog->mature,
-				'spam'        => $blog->spam,
-				'deleted'     => $blog->deleted,
+		$site_ids[] = (int) $site_id;
+	}
+
+	$sites = array();
+
+	if ( ! empty( $site_ids ) ) {
+		$args = array(
+			'number'   => '',
+			'site__in' => $site_ids,
+		);
+		if ( ! $all ) {
+			$args['archived'] = 0;
+			$args['spam']     = 0;
+			$args['deleted']  = 0;
+		}
+
+		$_sites = get_sites( $args );
+
+		foreach ( $_sites as $site ) {
+			$sites[ $site->id ] = (object) array(
+				'userblog_id' => $site->id,
+				'blogname'    => $site->blogname,
+				'domain'      => $site->domain,
+				'path'        => $site->path,
+				'site_id'     => $site->network_id,
+				'siteurl'     => $site->siteurl,
+				'archived'    => $site->archived,
+				'mature'      => $site->mature,
+				'spam'        => $site->spam,
+				'deleted'     => $site->deleted,
 			);
 		}
 	}
 
 	/**
-	 * Filters the list of blogs a user belongs to.
+	 * Filters the list of sites a user belongs to.
 	 *
 	 * @since MU
 	 *
-	 * @param array $blogs   An array of blog objects belonging to the user.
+	 * @param array $sites   An array of site objects belonging to the user.
 	 * @param int   $user_id User ID.
-	 * @param bool  $all     Whether the returned blogs array should contain all blogs, including
+	 * @param bool  $all     Whether the returned sites array should contain all sites, including
 	 *                       those marked 'deleted', 'archived', or 'spam'. Default false.
 	 */
-	return apply_filters( 'get_blogs_of_user', $blogs, $user_id, $all );
+	return apply_filters( 'get_blogs_of_user', $sites, $user_id, $all );
 }
 
 /**
@@ -700,7 +703,7 @@ function is_user_member_of_blog( $user_id = 0, $blog_id = 0 ) {
 		$user_id = get_current_user_id();
 	}
 
-	// Technically not needed, but does save calls to get_blog_details and get_user_meta
+	// Technically not needed, but does save calls to get_site and get_user_meta
 	// in the event that the function is called when a user isn't logged in
 	if ( empty( $user_id ) ) {
 		return false;
@@ -719,7 +722,7 @@ function is_user_member_of_blog( $user_id = 0, $blog_id = 0 ) {
 		$blog_id = get_current_blog_id();
 	}
 
-	$blog = get_blog_details( $blog_id );
+	$blog = get_site( $blog_id );
 
 	if ( ! $blog || ! isset( $blog->domain ) || $blog->archived || $blog->spam || $blog->deleted ) {
 		return false;
@@ -964,8 +967,7 @@ function setup_userdata($for_user_id = '') {
  *
  * @since 2.3.0
  * @since 4.5.0 Added the 'display_name_with_login' value for 'show'.
- *
- * @global int  $blog_id
+ * @since 4.7.0 Added the `$role`, `$role__in`, and `$role__not_in` parameters.
  *
  * @param array|string $args {
  *     Optional. Array or string of arguments to generate a drop-down of users.
@@ -1006,6 +1008,13 @@ function setup_userdata($for_user_id = '') {
  *     @type int          $blog_id                 ID of blog (Multisite only). Default is ID of the current blog.
  *     @type string       $who                     Which type of users to query. Accepts only an empty string or
  *                                                 'authors'. Default empty.
+ *     @type string|array $role                    An array or a comma-separated list of role names that users must
+ *                                                 match to be included in results. Note that this is an inclusive
+ *                                                 list: users must match *each* role. Default empty.
+ *     @type array        $role__in                An array of role names. Matched users must have at least one of
+ *                                                 these roles. Default empty array.
+ *     @type array        $role__not_in            An array of role names to exclude. Users matching one or more of
+ *                                                 these roles will not be included in results. Default empty array.
  * }
  * @return string String of HTML content.
  */
@@ -1016,15 +1025,18 @@ function wp_dropdown_users( $args = '' ) {
 		'include' => '', 'exclude' => '', 'multi' => 0,
 		'show' => 'display_name', 'echo' => 1,
 		'selected' => 0, 'name' => 'user', 'class' => '', 'id' => '',
-		'blog_id' => $GLOBALS['blog_id'], 'who' => '', 'include_selected' => false,
-		'option_none_value' => -1
+		'blog_id' => get_current_blog_id(), 'who' => '', 'include_selected' => false,
+		'option_none_value' => -1,
+		'role' => '',
+		'role__in' => array(),
+		'role__not_in' => array(),
 	);
 
 	$defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
 
 	$r = wp_parse_args( $args, $defaults );
 
-	$query_args = wp_array_slice_assoc( $r, array( 'blog_id', 'include', 'exclude', 'orderby', 'order', 'who' ) );
+	$query_args = wp_array_slice_assoc( $r, array( 'blog_id', 'include', 'exclude', 'orderby', 'order', 'who', 'role', 'role__in', 'role__not_in' ) );
 
 	$fields = array( 'ID', 'user_login' );
 
@@ -1042,12 +1054,12 @@ function wp_dropdown_users( $args = '' ) {
 	$option_none_value = $r['option_none_value'];
 
 	/**
-	 * Filters the query arguments for the user drop-down.
+	 * Filters the query arguments for the list of users in the dropdown.
 	 *
 	 * @since 4.4.0
 	 *
-	 * @param array $query_args The query arguments for wp_dropdown_users().
-	 * @param array $r          The default arguments for wp_dropdown_users().
+	 * @param array $query_args The query arguments for get_users().
+	 * @param array $r          The arguments passed to wp_dropdown_users() combined with the defaults.
 	 */
 	$query_args = apply_filters( 'wp_dropdown_users_args', $query_args, $r );
 
@@ -1346,6 +1358,7 @@ function validate_username( $username ) {
  * @since 2.0.0
  * @since 3.6.0 The `aim`, `jabber`, and `yim` fields were removed as default user contact
  *              methods for new installs. See wp_get_user_contact_methods().
+ * @since 4.7.0 The user's locale can be passed to `$userdata`.
  *
  * @global wpdb $wpdb WordPress database abstraction object.
  *
@@ -1380,6 +1393,7 @@ function validate_username( $username ) {
  *     @type string|bool $show_admin_bar_front Whether to display the Admin Bar for the user on the
  *                                             site's front end. Default true.
  *     @type string      $role                 User's role.
+ *     @type string      $locale               User's locale. Default empty.
  * }
  * @return int|WP_Error The newly created user's ID or a WP_Error object if the user could not
  *                      be created.
@@ -1594,6 +1608,8 @@ function wp_insert_user( $userdata ) {
 
 	$meta['show_admin_bar_front'] = empty( $userdata['show_admin_bar_front'] ) ? 'true' : $userdata['show_admin_bar_front'];
 
+	$meta['locale'] = isset( $userdata['locale'] ) ? $userdata['locale'] : '';
+
 	$user_nicename_check = $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND user_login != %s LIMIT 1" , $user_nicename, $user_login));
 
 	if ( $user_nicename_check ) {
@@ -1785,8 +1801,12 @@ function wp_update_user($userdata) {
 
 		$blog_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
 
-		if ( ! empty( $send_password_change_email ) ) {
+		$switched_locale = false;
+		if ( ! empty( $send_password_change_email ) || ! empty( $send_email_change_email ) ) {
+			$switched_locale = switch_to_locale( get_user_locale( $user_id ) );
+		}
 
+		if ( ! empty( $send_password_change_email ) ) {
 			/* translators: Do not translate USERNAME, ADMIN_EMAIL, EMAIL, SITENAME, SITEURL: those are placeholders. */
 			$pass_change_text = __( 'Hi ###USERNAME###,
 
@@ -1803,6 +1823,7 @@ All at ###SITENAME###
 
 			$pass_change_email = array(
 				'to'      => $user['user_email'],
+				/* translators: User password change notification email subject. 1: Site name */
 				'subject' => __( '[%s] Notice of Password Change' ),
 				'message' => $pass_change_text,
 				'headers' => '',
@@ -1858,6 +1879,7 @@ All at ###SITENAME###
 
 			$email_change_email = array(
 				'to'      => $user['user_email'],
+				/* translators: User email change notification email subject. 1: Site name */
 				'subject' => __( '[%s] Notice of Email Change' ),
 				'message' => $email_change_text,
 				'headers' => '',
@@ -1894,6 +1916,10 @@ All at ###SITENAME###
 
 			wp_mail( $email_change_email['to'], sprintf( $email_change_email['subject'], $blog_name ), $email_change_email['message'], $email_change_email['headers'] );
 		}
+
+		if ( $switched_locale ) {
+			restore_previous_locale();
+		}
 	}
 
 	// Update the cookies if the password changed.
@@ -1953,7 +1979,7 @@ function wp_create_user($username, $password, $email = '') {
  * @return array List of user keys to be populated in wp_update_user().
  */
 function _get_additional_user_keys( $user ) {
-	$keys = array( 'first_name', 'last_name', 'nickname', 'description', 'rich_editing', 'comment_shortcuts', 'admin_color', 'use_ssl', 'show_admin_bar_front' );
+	$keys = array( 'first_name', 'last_name', 'nickname', 'description', 'rich_editing', 'comment_shortcuts', 'admin_color', 'use_ssl', 'show_admin_bar_front', 'locale' );
 	return array_merge( $keys, array_keys( wp_get_user_contact_methods( $user ) ) );
 }
 
@@ -2095,7 +2121,6 @@ function get_password_reset_key( $user ) {
 
 	// Now insert the key, hashed, into the DB.
 	if ( empty( $wp_hasher ) ) {
-		require_once ABSPATH . WPINC . '/class-phpass.php';
 		$wp_hasher = new PasswordHash( 8, true );
 	}
 	$hashed = time() . ':' . $wp_hasher->HashPassword( $key );
@@ -2140,7 +2165,6 @@ function check_password_reset_key($key, $login) {
 		return new WP_Error('invalid_key', __('Invalid key'));
 
 	if ( empty( $wp_hasher ) ) {
-		require_once ABSPATH . WPINC . '/class-phpass.php';
 		$wp_hasher = new PasswordHash( 8, true );
 	}
 
@@ -2426,7 +2450,7 @@ function wp_get_users_with_no_role() {
 	}
 
 	$prefix = $wpdb->get_blog_prefix();
-	$regex  = implode( '|', wp_roles()->get_names() );
+	$regex  = implode( '|', array_keys( wp_roles()->get_names() ) );
 	$regex  = preg_replace( '/[^a-zA-Z_\|-]/', '', $regex );
 	$users  = $wpdb->get_col( $wpdb->prepare( "
 		SELECT user_id
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 1517156c5..9bbb01e71 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -4,21 +4,21 @@
  *
  * @global string $wp_version
  */
-$wp_version = '4.6.1';
+$wp_version = '4.7';
 
 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
  *
  * @global int $wp_db_version
  */
-$wp_db_version = 37965;
+$wp_db_version = 38590;
 
 /**
  * Holds the TinyMCE version
  *
  * @global string $tinymce_version
  */
-$tinymce_version = '4401-20160726';
+$tinymce_version = '4403-20160901';
 
 /**
  * Holds the required PHP version
diff --git a/wp-includes/widgets.php b/wp-includes/widgets.php
index 3540be9b3..30c1fce53 100644
--- a/wp-includes/widgets.php
+++ b/wp-includes/widgets.php
@@ -1233,7 +1233,7 @@ function wp_widget_rss_output( $rss, $args = array() ) {
 
 	if ( is_wp_error($rss) ) {
 		if ( is_admin() || current_user_can('manage_options') )
-			echo '<p>' . sprintf( __('<strong>RSS Error</strong>: %s'), $rss->get_error_message() ) . '</p>';
+			echo '<p><strong>' . __( 'RSS Error:' ) . '</strong> ' . $rss->get_error_message() . '</p>';
 		return;
 	}
 
@@ -1342,7 +1342,7 @@ function wp_widget_rss_form( $args, $inputs = null ) {
 	$args['show_date']      = isset( $args['show_date'] ) ? (int) $args['show_date'] : (int) $inputs['show_date'];
 
 	if ( ! empty( $args['error'] ) ) {
-		echo '<p class="widget-error"><strong>' . sprintf( __( 'RSS Error: %s' ), $args['error'] ) . '</strong></p>';
+		echo '<p class="widget-error"><strong>' . __( 'RSS Error:' ) . '</strong> ' . $args['error'] . '</p>';
 	}
 
 	$esc_number = esc_attr( $args['number'] );
diff --git a/wp-includes/widgets/class-wp-nav-menu-widget.php b/wp-includes/widgets/class-wp-nav-menu-widget.php
index 336845845..d7ad82b7e 100644
--- a/wp-includes/widgets/class-wp-nav-menu-widget.php
+++ b/wp-includes/widgets/class-wp-nav-menu-widget.php
@@ -72,7 +72,7 @@ class WP_Nav_Menu_Widget extends WP_Widget {
 		 *     @type callable|bool $fallback_cb Callback to fire if the menu doesn't exist. Default empty.
 		 *     @type mixed         $menu        Menu ID, slug, or name.
 		 * }
-		 * @param stdClass $nav_menu      Nav menu object for the current menu.
+		 * @param WP_Term  $nav_menu      Nav menu object for the current menu.
 		 * @param array    $args          Display arguments for the current widget.
 		 * @param array    $instance      Array of settings for the current widget.
 		 */
diff --git a/wp-includes/widgets/class-wp-widget-tag-cloud.php b/wp-includes/widgets/class-wp-widget-tag-cloud.php
index ae0832acb..b4adabd03 100644
--- a/wp-includes/widgets/class-wp-widget-tag-cloud.php
+++ b/wp-includes/widgets/class-wp-widget-tag-cloud.php
@@ -61,7 +61,7 @@ class WP_Widget_Tag_Cloud extends WP_Widget {
 		 *
 		 * @see wp_tag_cloud()
 		 *
-		 * @param array $current_taxonomy The taxonomy to use in the tag cloud. Default 'tags'.
+		 * @param array $args Args used for the tag cloud widget.
 		 */
 		$tag_cloud = wp_tag_cloud( apply_filters( 'widget_tag_cloud_args', array(
 			'taxonomy' => $current_taxonomy,
diff --git a/wp-includes/wp-db.php b/wp-includes/wp-db.php
index 8ebee4c40..74dedd513 100644
--- a/wp-includes/wp-db.php
+++ b/wp-includes/wp-db.php
@@ -779,6 +779,11 @@ class wpdb {
 			$charset = 'utf8mb4';
 		}
 
+		if ( 'utf8mb4' === $charset && ! $this->has_cap( 'utf8mb4' ) ) {
+			$charset = 'utf8';
+			$collate = str_replace( 'utf8mb4_', 'utf8_', $collate );
+		}
+
 		if ( 'utf8mb4' === $charset ) {
 			// _general_ is outdated, so we can upgrade it to _unicode_, instead.
 			if ( ! $collate || 'utf8_general_ci' === $collate ) {
@@ -1184,18 +1189,19 @@ class wpdb {
 	 *
 	 * @uses wpdb::_real_escape()
 	 * @since  2.8.0
-	 * @access private
+	 * @access public
 	 *
 	 * @param  string|array $data
 	 * @return string|array escaped
 	 */
-	function _escape( $data ) {
+	public function _escape( $data ) {
 		if ( is_array( $data ) ) {
 			foreach ( $data as $k => $v ) {
-				if ( is_array($v) )
+				if ( is_array( $v ) ) {
 					$data[$k] = $this->_escape( $v );
-				else
+				} else {
 					$data[$k] = $this->_real_escape( $v );
+				}
 			}
 		} else {
 			$data = $this->_real_escape( $data );
@@ -1268,8 +1274,8 @@ class wpdb {
 	 *
 	 * Both %d and %s should be left unquoted in the query string.
 	 *
-	 *     wpdb::prepare( "SELECT * FROM `table` WHERE `column` = %s AND `field` = %d", 'foo', 1337 )
-	 *     wpdb::prepare( "SELECT DATE_FORMAT(`field`, '%%c') FROM `table` WHERE `column` = %s", 'foo' );
+	 *     $wpdb->prepare( "SELECT * FROM `table` WHERE `column` = %s AND `field` = %d", 'foo', 1337 );
+	 *     $wpdb->prepare( "SELECT DATE_FORMAT(`field`, '%%c') FROM `table` WHERE `column` = %s", 'foo' );
 	 *
 	 * @link https://secure.php.net/sprintf Description of syntax.
 	 * @since 2.3.0
@@ -1358,10 +1364,13 @@ class wpdb {
 
 		wp_load_translations_early();
 
-		if ( $caller = $this->get_caller() )
+		if ( $caller = $this->get_caller() ) {
+			/* translators: 1: Database error message, 2: SQL query, 3: Name of the calling function */
 			$error_str = sprintf( __( 'WordPress database error %1$s for query %2$s made by %3$s' ), $str, $this->last_query, $caller );
-		else
+		} else {
+			/* translators: 1: Database error message, 2: SQL query */
 			$error_str = sprintf( __( 'WordPress database error %1$s for query %2$s' ), $str, $this->last_query );
+		}
 
 		error_log( $error_str );
 
@@ -2288,10 +2297,8 @@ class wpdb {
 	 * @since 0.71
 	 *
 	 * @param string|null $query  SQL query.
-	 * @param string      $output Optional. one of ARRAY_A | ARRAY_N | OBJECT constants.
-	 *                            Return an associative array (column => value, ...),
-	 *                            a numerically indexed array (0 => value, ...) or
-	 *                            an object ( ->column = value ), respectively.
+	 * @param string      $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
+	 *                            an stdClass object, an associative array, or a numeric array, respectively. Default OBJECT.
 	 * @param int         $y      Optional. Row to return. Indexed from 0.
 	 * @return array|object|null|void Database query result in format specified by $output or null on failure
 	 */
@@ -3028,17 +3035,23 @@ class wpdb {
 				. '|INSERT(?:\s+LOW_PRIORITY|\s+DELAYED|\s+HIGH_PRIORITY)?(?:\s+IGNORE)?(?:\s+INTO)?'
 				. '|REPLACE(?:\s+LOW_PRIORITY|\s+DELAYED)?(?:\s+INTO)?'
 				. '|UPDATE(?:\s+LOW_PRIORITY)?(?:\s+IGNORE)?'
-				. '|DELETE(?:\s+LOW_PRIORITY|\s+QUICK|\s+IGNORE)*(?:\s+FROM)?'
+				. '|DELETE(?:\s+LOW_PRIORITY|\s+QUICK|\s+IGNORE)*(?:.+?FROM)?'
 				. ')\s+((?:[0-9a-zA-Z$_.`-]|[\xC2-\xDF][\x80-\xBF])+)/is', $query, $maybe ) ) {
 			return str_replace( '`', '', $maybe[1] );
 		}
 
-		// SHOW TABLE STATUS and SHOW TABLES
-		if ( preg_match( '/^\s*(?:'
-				. 'SHOW\s+TABLE\s+STATUS.+(?:LIKE\s+|WHERE\s+Name\s*=\s*)'
-				. '|SHOW\s+(?:FULL\s+)?TABLES.+(?:LIKE\s+|WHERE\s+Name\s*=\s*)'
-				. ')\W((?:[0-9a-zA-Z$_.`-]|[\xC2-\xDF][\x80-\xBF])+)\W/is', $query, $maybe ) ) {
-			return str_replace( '`', '', $maybe[1] );
+		// SHOW TABLE STATUS and SHOW TABLES WHERE Name = 'wp_posts'
+		if ( preg_match( '/^\s*SHOW\s+(?:TABLE\s+STATUS|(?:FULL\s+)?TABLES).+WHERE\s+Name\s*=\s*("|\')((?:[0-9a-zA-Z$_.-]|[\xC2-\xDF][\x80-\xBF])+)\\1/is', $query, $maybe ) ) {
+			return $maybe[2];
+		}
+
+		// SHOW TABLE STATUS LIKE and SHOW TABLES LIKE 'wp\_123\_%'
+		// This quoted LIKE operand seldom holds a full table name.
+		// It is usually a pattern for matching a prefix so we just
+		// strip the trailing % and unescape the _ to get 'wp_123_'
+		// which drop-ins can use for routing these SQL statements.
+		if ( preg_match( '/^\s*SHOW\s+(?:TABLE\s+STATUS|(?:FULL\s+)?TABLES)\s+(?:WHERE\s+Name\s+)?LIKE\s*("|\')((?:[\\\\0-9a-zA-Z$_.-]|[\xC2-\xDF][\x80-\xBF])+)%?\\1/is', $query, $maybe ) ) {
+			return str_replace( '\\_', '_', $maybe[2] );
 		}
 
 		// Big pattern for the rest of the table-related queries.
@@ -3203,8 +3216,10 @@ class wpdb {
 	public function check_database_version() {
 		global $wp_version, $required_mysql_version;
 		// Make sure the server has the required MySQL version
-		if ( version_compare($this->db_version(), $required_mysql_version, '<') )
+		if ( version_compare($this->db_version(), $required_mysql_version, '<') ) {
+			/* translators: 1: WordPress version number, 2: Minimum required MySQL version number */
 			return new WP_Error('database_version', sprintf( __( '<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher' ), $wp_version, $required_mysql_version ));
+		}
 	}
 
 	/**
diff --git a/wp-includes/wp-diff.php b/wp-includes/wp-diff.php
index 8eeacddc1..8687ed00a 100644
--- a/wp-includes/wp-diff.php
+++ b/wp-includes/wp-diff.php
@@ -10,535 +10,12 @@
 
 if ( ! class_exists( 'Text_Diff', false ) ) {
 	/** Text_Diff class */
-	require( dirname(__FILE__).'/Text/Diff.php' );
+	require( ABSPATH . WPINC . '/Text/Diff.php' );
 	/** Text_Diff_Renderer class */
-	require( dirname(__FILE__).'/Text/Diff/Renderer.php' );
+	require( ABSPATH . WPINC . '/Text/Diff/Renderer.php' );
 	/** Text_Diff_Renderer_inline class */
-	require( dirname(__FILE__).'/Text/Diff/Renderer/inline.php' );
+	require( ABSPATH . WPINC . '/Text/Diff/Renderer/inline.php' );
 }
 
-/**
- * Table renderer to display the diff lines.
- *
- * @since 2.6.0
- * @uses Text_Diff_Renderer Extends
- */
-class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
-
-	/**
-	 * @see Text_Diff_Renderer::_leading_context_lines
-	 * @var int
-	 * @access public
-	 * @since 2.6.0
-	 */
-	public $_leading_context_lines  = 10000;
-
-	/**
-	 * @see Text_Diff_Renderer::_trailing_context_lines
-	 * @var int
-	 * @access public
-	 * @since 2.6.0
-	 */
-	public $_trailing_context_lines = 10000;
-
-	/**
-	 * Threshold for when a diff should be saved or omitted.
-	 *
-	 * @var float
-	 * @access protected
-	 * @since 2.6.0
-	 */
-	protected $_diff_threshold = 0.6;
-
-	/**
-	 * Inline display helper object name.
-	 *
-	 * @var string
-	 * @access protected
-	 * @since 2.6.0
-	 */
-	protected $inline_diff_renderer = 'WP_Text_Diff_Renderer_inline';
-
-	/**
-	 * Should we show the split view or not
-	 *
-	 * @var string
-	 * @access protected
-	 * @since 3.6.0
-	 */
-	protected $_show_split_view = true;
-
-	protected $compat_fields = array( '_show_split_view', 'inline_diff_renderer', '_diff_threshold' );
-
-	/**
-	 * Constructor - Call parent constructor with params array.
-	 *
-	 * This will set class properties based on the key value pairs in the array.
-	 *
-	 * @since 2.6.0
-	 *
-	 * @param array $params
-	 */
-	public function __construct( $params = array() ) {
-		parent::__construct( $params );
-		if ( isset( $params[ 'show_split_view' ] ) )
-			$this->_show_split_view = $params[ 'show_split_view' ];
-	}
-
-	/**
-	 * @ignore
-	 *
-	 * @param string $header
-	 * @return string
-	 */
-	public function _startBlock( $header ) {
-		return '';
-	}
-
-	/**
-	 * @ignore
-	 *
-	 * @param array $lines
-	 * @param string $prefix
-	 */
-	public function _lines( $lines, $prefix=' ' ) {
-	}
-
-	/**
-	 * @ignore
-	 *
-	 * @param string $line HTML-escape the value.
-	 * @return string
-	 */
-	public function addedLine( $line ) {
-		return "<td class='diff-addedline'>{$line}</td>";
-
-	}
-
-	/**
-	 * @ignore
-	 *
-	 * @param string $line HTML-escape the value.
-	 * @return string
-	 */
-	public function deletedLine( $line ) {
-		return "<td class='diff-deletedline'>{$line}</td>";
-	}
-
-	/**
-	 * @ignore
-	 *
-	 * @param string $line HTML-escape the value.
-	 * @return string
-	 */
-	public function contextLine( $line ) {
-		return "<td class='diff-context'>{$line}</td>";
-	}
-
-	/**
-	 * @ignore
-	 *
-	 * @return string
-	 */
-	public function emptyLine() {
-		return '<td>&nbsp;</td>';
-	}
-
-	/**
-	 * @ignore
-	 * @access public
-	 *
-	 * @param array $lines
-	 * @param bool $encode
-	 * @return string
-	 */
-	public function _added( $lines, $encode = true ) {
-		$r = '';
-		foreach ($lines as $line) {
-			if ( $encode ) {
-				$processed_line = htmlspecialchars( $line );
-
-				/**
-				 * Contextually filters a diffed line.
-				 *
-				 * Filters TextDiff processing of diffed line. By default, diffs are processed with
-				 * htmlspecialchars. Use this filter to remove or change the processing. Passes a context
-				 * indicating if the line is added, deleted or unchanged.
-				 *
-				 * @since 4.1.0
-				 *
-				 * @param String $processed_line The processed diffed line.
-				 * @param String $line           The unprocessed diffed line.
-		 		 * @param string null            The line context. Values are 'added', 'deleted' or 'unchanged'.
-				 */
-				$line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'added' );
-			}
-
-			if ( $this->_show_split_view ) {
-				$r .= '<tr>' . $this->emptyLine() . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n";
-			} else {
-				$r .= '<tr>' . $this->addedLine( $line ) . "</tr>\n";
-			}
-		}
-		return $r;
-	}
-
-	/**
-	 * @ignore
-	 * @access public
-	 *
-	 * @param array $lines
-	 * @param bool $encode
-	 * @return string
-	 */
-	public function _deleted( $lines, $encode = true ) {
-		$r = '';
-		foreach ($lines as $line) {
-			if ( $encode ) {
-				$processed_line = htmlspecialchars( $line );
-
-				/** This filter is documented in wp-includes/wp-diff.php */
-				$line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'deleted' );
-			}
-			if ( $this->_show_split_view ) {
-				$r .= '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . $this->emptyLine() . "</tr>\n";
-			} else {
-				$r .= '<tr>' . $this->deletedLine( $line ) . "</tr>\n";
-			}
-
-		}
-		return $r;
-	}
-
-	/**
-	 * @ignore
-	 * @access public
-	 *
-	 * @param array $lines
-	 * @param bool $encode
-	 * @return string
-	 */
-	public function _context( $lines, $encode = true ) {
-		$r = '';
-		foreach ($lines as $line) {
-			if ( $encode ) {
-				$processed_line = htmlspecialchars( $line );
-
-				/** This filter is documented in wp-includes/wp-diff.php */
-				$line = apply_filters( 'process_text_diff_html', $processed_line, $line, 'unchanged' );
-			}
-			if (  $this->_show_split_view ) {
-				$r .= '<tr>' . $this->contextLine( $line ) . $this->emptyLine() . $this->contextLine( $line )  . "</tr>\n";
-			} else {
-				$r .= '<tr>' . $this->contextLine( $line ) . "</tr>\n";
-			}
-		}
-		return $r;
-	}
-
-	/**
-	 * Process changed lines to do word-by-word diffs for extra highlighting.
-	 *
-	 * (TRAC style) sometimes these lines can actually be deleted or added rows.
-	 * We do additional processing to figure that out
-	 *
-	 * @access public
-	 * @since 2.6.0
-	 *
-	 * @param array $orig
-	 * @param array $final
-	 * @return string
-	 */
-	public function _changed( $orig, $final ) {
-		$r = '';
-
-		// Does the aforementioned additional processing
-		// *_matches tell what rows are "the same" in orig and final. Those pairs will be diffed to get word changes
-		//	match is numeric: an index in other column
-		//	match is 'X': no match. It is a new row
-		// *_rows are column vectors for the orig column and the final column.
-		//	row >= 0: an indix of the $orig or $final array
-		//	row  < 0: a blank row for that column
-		list($orig_matches, $final_matches, $orig_rows, $final_rows) = $this->interleave_changed_lines( $orig, $final );
-
-		// These will hold the word changes as determined by an inline diff
-		$orig_diffs  = array();
-		$final_diffs = array();
-
-		// Compute word diffs for each matched pair using the inline diff
-		foreach ( $orig_matches as $o => $f ) {
-			if ( is_numeric($o) && is_numeric($f) ) {
-				$text_diff = new Text_Diff( 'auto', array( array($orig[$o]), array($final[$f]) ) );
-				$renderer = new $this->inline_diff_renderer;
-				$diff = $renderer->render( $text_diff );
-
-				// If they're too different, don't include any <ins> or <dels>
-				if ( preg_match_all( '!(<ins>.*?</ins>|<del>.*?</del>)!', $diff, $diff_matches ) ) {
-					// length of all text between <ins> or <del>
-					$stripped_matches = strlen(strip_tags( join(' ', $diff_matches[0]) ));
-					// since we count lengith of text between <ins> or <del> (instead of picking just one),
-					//	we double the length of chars not in those tags.
-					$stripped_diff = strlen(strip_tags( $diff )) * 2 - $stripped_matches;
-					$diff_ratio = $stripped_matches / $stripped_diff;
-					if ( $diff_ratio > $this->_diff_threshold )
-						continue; // Too different. Don't save diffs.
-				}
-
-				// Un-inline the diffs by removing del or ins
-				$orig_diffs[$o]  = preg_replace( '|<ins>.*?</ins>|', '', $diff );
-				$final_diffs[$f] = preg_replace( '|<del>.*?</del>|', '', $diff );
-			}
-		}
-
-		foreach ( array_keys($orig_rows) as $row ) {
-			// Both columns have blanks. Ignore them.
-			if ( $orig_rows[$row] < 0 && $final_rows[$row] < 0 )
-				continue;
-
-			// If we have a word based diff, use it. Otherwise, use the normal line.
-			if ( isset( $orig_diffs[$orig_rows[$row]] ) )
-				$orig_line = $orig_diffs[$orig_rows[$row]];
-			elseif ( isset( $orig[$orig_rows[$row]] ) )
-				$orig_line = htmlspecialchars($orig[$orig_rows[$row]]);
-			else
-				$orig_line = '';
-
-			if ( isset( $final_diffs[$final_rows[$row]] ) )
-				$final_line = $final_diffs[$final_rows[$row]];
-			elseif ( isset( $final[$final_rows[$row]] ) )
-				$final_line = htmlspecialchars($final[$final_rows[$row]]);
-			else
-				$final_line = '';
-
-			if ( $orig_rows[$row] < 0 ) { // Orig is blank. This is really an added row.
-				$r .= $this->_added( array($final_line), false );
-			} elseif ( $final_rows[$row] < 0 ) { // Final is blank. This is really a deleted row.
-				$r .= $this->_deleted( array($orig_line), false );
-			} else { // A true changed row.
-				if ( $this->_show_split_view ) {
-					$r .= '<tr>' . $this->deletedLine( $orig_line ) . $this->emptyLine() . $this->addedLine( $final_line ) . "</tr>\n";
-				} else {
-					$r .= '<tr>' . $this->deletedLine( $orig_line ) . "</tr><tr>" . $this->addedLine( $final_line ) . "</tr>\n";
-				}
-			}
-		}
-
-		return $r;
-	}
-
-	/**
-	 * Takes changed blocks and matches which rows in orig turned into which rows in final.
-	 *
-	 * Returns
-	 *	*_matches ( which rows match with which )
-	 *	*_rows ( order of rows in each column interleaved with blank rows as
-	 *		necessary )
-	 *
-	 * @since 2.6.0
-	 *
-	 * @param array $orig
-	 * @param array $final
-	 * @return array
-	 */
-	public function interleave_changed_lines( $orig, $final ) {
-
-		// Contains all pairwise string comparisons. Keys are such that this need only be a one dimensional array.
-		$matches = array();
-		foreach ( array_keys($orig) as $o ) {
-			foreach ( array_keys($final) as $f ) {
-				$matches["$o,$f"] = $this->compute_string_distance( $orig[$o], $final[$f] );
-			}
-		}
-		asort($matches); // Order by string distance.
-
-		$orig_matches  = array();
-		$final_matches = array();
-
-		foreach ( $matches as $keys => $difference ) {
-			list($o, $f) = explode(',', $keys);
-			$o = (int) $o;
-			$f = (int) $f;
-
-			// Already have better matches for these guys
-			if ( isset($orig_matches[$o]) && isset($final_matches[$f]) )
-				continue;
-
-			// First match for these guys. Must be best match
-			if ( !isset($orig_matches[$o]) && !isset($final_matches[$f]) ) {
-				$orig_matches[$o] = $f;
-				$final_matches[$f] = $o;
-				continue;
-			}
-
-			// Best match of this final is already taken?  Must mean this final is a new row.
-			if ( isset($orig_matches[$o]) )
-				$final_matches[$f] = 'x';
-
-			// Best match of this orig is already taken?  Must mean this orig is a deleted row.
-			elseif ( isset($final_matches[$f]) )
-				$orig_matches[$o] = 'x';
-		}
-
-		// We read the text in this order
-		ksort($orig_matches);
-		ksort($final_matches);
-
-		// Stores rows and blanks for each column.
-		$orig_rows = $orig_rows_copy = array_keys($orig_matches);
-		$final_rows = array_keys($final_matches);
-
-		// Interleaves rows with blanks to keep matches aligned.
-		// We may end up with some extraneous blank rows, but we'll just ignore them later.
-		foreach ( $orig_rows_copy as $orig_row ) {
-			$final_pos = array_search($orig_matches[$orig_row], $final_rows, true);
-			$orig_pos = (int) array_search($orig_row, $orig_rows, true);
-
-			if ( false === $final_pos ) { // This orig is paired with a blank final.
-				array_splice( $final_rows, $orig_pos, 0, -1 );
-			} elseif ( $final_pos < $orig_pos ) { // This orig's match is up a ways. Pad final with blank rows.
-				$diff_pos = $final_pos - $orig_pos;
-				while ( $diff_pos < 0 )
-					array_splice( $final_rows, $orig_pos, 0, $diff_pos++ );
-			} elseif ( $final_pos > $orig_pos ) { // This orig's match is down a ways. Pad orig with blank rows.
-				$diff_pos = $orig_pos - $final_pos;
-				while ( $diff_pos < 0 )
-					array_splice( $orig_rows, $orig_pos, 0, $diff_pos++ );
-			}
-		}
-
-		// Pad the ends with blank rows if the columns aren't the same length
-		$diff_count = count($orig_rows) - count($final_rows);
-		if ( $diff_count < 0 ) {
-			while ( $diff_count < 0 )
-				array_push($orig_rows, $diff_count++);
-		} elseif ( $diff_count > 0 ) {
-			$diff_count = -1 * $diff_count;
-			while ( $diff_count < 0 )
-				array_push($final_rows, $diff_count++);
-		}
-
-		return array($orig_matches, $final_matches, $orig_rows, $final_rows);
-	}
-
-	/**
-	 * Computes a number that is intended to reflect the "distance" between two strings.
-	 *
-	 * @since 2.6.0
-	 *
-	 * @param string $string1
-	 * @param string $string2
-	 * @return int
-	 */
-	public function compute_string_distance( $string1, $string2 ) {
-		// Vectors containing character frequency for all chars in each string
-		$chars1 = count_chars($string1);
-		$chars2 = count_chars($string2);
-
-		// L1-norm of difference vector.
-		$difference = array_sum( array_map( array($this, 'difference'), $chars1, $chars2 ) );
-
-		// $string1 has zero length? Odd. Give huge penalty by not dividing.
-		if ( !$string1 )
-			return $difference;
-
-		// Return distance per character (of string1).
-		return $difference / strlen($string1);
-	}
-
-	/**
-	 * @ignore
-	 * @since 2.6.0
-	 *
-	 * @param int $a
-	 * @param int $b
-	 * @return int
-	 */
-	public function difference( $a, $b ) {
-		return abs( $a - $b );
-	}
-
-	/**
-	 * Make private properties readable for backward compatibility.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $name Property to get.
-	 * @return mixed Property.
-	 */
-	public function __get( $name ) {
-		if ( in_array( $name, $this->compat_fields ) ) {
-			return $this->$name;
-		}
-	}
-
-	/**
-	 * Make private properties settable for backward compatibility.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $name  Property to check if set.
-	 * @param mixed  $value Property value.
-	 * @return mixed Newly-set property.
-	 */
-	public function __set( $name, $value ) {
-		if ( in_array( $name, $this->compat_fields ) ) {
-			return $this->$name = $value;
-		}
-	}
-
-	/**
-	 * Make private properties checkable for backward compatibility.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $name Property to check if set.
-	 * @return bool Whether the property is set.
-	 */
-	public function __isset( $name ) {
-		if ( in_array( $name, $this->compat_fields ) ) {
-			return isset( $this->$name );
-		}
-	}
-
-	/**
-	 * Make private properties un-settable for backward compatibility.
-	 *
-	 * @since 4.0.0
-	 * @access public
-	 *
-	 * @param string $name Property to unset.
-	 */
-	public function __unset( $name ) {
-		if ( in_array( $name, $this->compat_fields ) ) {
-			unset( $this->$name );
-		}
-	}
-}
-
-/**
- * Better word splitting than the PEAR package provides.
- *
- * @since 2.6.0
- * @uses Text_Diff_Renderer_inline Extends
- */
-class WP_Text_Diff_Renderer_inline extends Text_Diff_Renderer_inline {
-
-	/**
-	 * @ignore
-	 * @since 2.6.0
-	 *
-	 * @param string $string
-	 * @param string $newlineEscape
-	 * @return string
-	 */
-	public function _splitOnWords($string, $newlineEscape = "\n") {
-		$string = str_replace("\0", '', $string);
-		$words  = preg_split( '/([^\w])/u', $string, -1, PREG_SPLIT_DELIM_CAPTURE );
-		$words  = str_replace( "\n", $newlineEscape, $words );
-		return $words;
-	}
-
-}
+require( ABSPATH . WPINC . '/class-wp-text-diff-renderer-table.php' );
+require( ABSPATH . WPINC . '/class-wp-text-diff-renderer-inline.php' );
\ No newline at end of file
diff --git a/wp-links-opml.php b/wp-links-opml.php
index ea3a50b49..42e8b24a9 100644
--- a/wp-links-opml.php
+++ b/wp-links-opml.php
@@ -26,7 +26,10 @@ echo '<?xml version="1.0"?'.">\n";
 ?>
 <opml version="1.0">
 	<head>
-		<title><?php printf( __('Links for %s'), esc_attr(get_bloginfo('name', 'display')) ); ?></title>
+		<title><?php
+			/* translators: 1: Site name */
+			printf( __('Links for %s'), esc_attr(get_bloginfo('name', 'display')) );
+		?></title>
 		<dateCreated><?php echo gmdate("D, d M Y H:i:s"); ?> GMT</dateCreated>
 		<?php
 		/**
diff --git a/wp-load.php b/wp-load.php
index 76dda74b7..a1a9ad6b1 100644
--- a/wp-load.php
+++ b/wp-load.php
@@ -13,8 +13,6 @@
  * directory to allow the WordPress directory to remain
  * untouched.
  *
- * @internal This file must be parsable by PHP4.
- *
  * @package WordPress
  */
 
diff --git a/wp-login.php b/wp-login.php
index 01c754f00..4e189d86b 100644
--- a/wp-login.php
+++ b/wp-login.php
@@ -36,8 +36,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
 	// Don't index any of these forms
 	add_action( 'login_head', 'wp_no_robots' );
 
-	if ( wp_is_mobile() )
-		add_action( 'login_head', 'wp_login_viewport_meta' );
+	add_action( 'login_head', 'wp_login_viewport_meta' );
 
 	if ( empty($wp_error) )
 		$wp_error = new WP_Error();
@@ -99,7 +98,7 @@ function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
 
 	if ( is_multisite() ) {
 		$login_header_url   = network_home_url();
-		$login_header_title = get_current_site()->site_name;
+		$login_header_title = get_network()->site_name;
 	} else {
 		$login_header_url   = __( 'https://wordpress.org/' );
 		$login_header_title = __( 'Powered by WordPress' );
@@ -124,8 +123,6 @@ function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {
 	$login_header_title = apply_filters( 'login_headertitle', $login_header_title );
 
 	$classes = array( 'login-action-' . $action, 'wp-core-ui' );
-	if ( wp_is_mobile() )
-		$classes[] = 'mobile';
 	if ( is_rtl() )
 		$classes[] = 'rtl';
 	if ( $interim_login ) {
@@ -260,8 +257,6 @@ function login_footer($input_id = '') {
  * @since 3.0.0
  */
 function wp_shake_js() {
-	if ( wp_is_mobile() )
-		return;
 ?>
 <script type="text/javascript">
 addLoadEvent = function(func){if(typeof jQuery!="undefined")jQuery(document).ready(func);else if(typeof wpOnload!='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
@@ -285,14 +280,9 @@ function wp_login_viewport_meta() {
 /**
  * Handles sending password retrieval email to user.
  *
- * @global wpdb         $wpdb      WordPress database abstraction object.
- * @global PasswordHash $wp_hasher Portable PHP password hashing framework.
- *
  * @return bool|WP_Error True: when finish. WP_Error on error
  */
 function retrieve_password() {
-	global $wpdb, $wp_hasher;
-
 	$errors = new WP_Error();
 
 	if ( empty( $_POST['user_login'] ) ) {
@@ -341,15 +331,17 @@ function retrieve_password() {
 	$message .= __('To reset your password, visit the following address:') . "\r\n\r\n";
 	$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";
 
-	if ( is_multisite() )
-		$blogname = $GLOBALS['current_site']->site_name;
-	else
+	if ( is_multisite() ) {
+		$blogname = get_network()->site_name;
+	} else {
 		/*
 		 * The blogname option is escaped with esc_html on the way into the database
 		 * in sanitize_option we want to reverse this for the plain text arena of emails.
 		 */
 		$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
+	}
 
+	/* translators: Password reset email subject. 1: Site name */
 	$title = sprintf( __('[%s] Password Reset'), $blogname );
 
 	/**
@@ -431,7 +423,7 @@ do_action( 'login_init' );
  *
  * @since 2.8.0
  */
-do_action( 'login_form_' . $action );
+do_action( "login_form_{$action}" );
 
 $http_post = ('POST' == $_SERVER['REQUEST_METHOD']);
 $interim_login = isset($_REQUEST['interim-login']);
@@ -444,7 +436,6 @@ case 'postpass' :
 		exit();
 	}
 
-	require_once ABSPATH . WPINC . '/class-phpass.php';
 	$hasher = new PasswordHash( 8, true );
 
 	/**
@@ -541,7 +532,7 @@ case 'retrievepassword' :
 
 <form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
 	<p>
-		<label for="user_login" ><?php _e('Username or Email') ?><br />
+		<label for="user_login" ><?php _e( 'Username or Email Address' ); ?><br />
 		<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label>
 	</p>
 	<?php
@@ -797,10 +788,12 @@ default:
 
 	if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
 		if ( headers_sent() ) {
+			/* translators: 1: Browser cookie documentation URL, 2: Support forums URL */
 			$user = new WP_Error( 'test_cookie', sprintf( __( '<strong>ERROR</strong>: Cookies are blocked due to unexpected output. For help, please see <a href="%1$s">this documentation</a> or try the <a href="%2$s">support forums</a>.' ),
 				__( 'https://codex.wordpress.org/Cookies' ), __( 'https://wordpress.org/support/' ) ) );
 		} elseif ( isset( $_POST['testcookie'] ) && empty( $_COOKIE[ TEST_COOKIE ] ) ) {
 			// If cookies are disabled we can't log in even with a valid user+pass
+			/* translators: 1: Browser cookie documentation URL */
 			$user = new WP_Error( 'test_cookie', sprintf( __( '<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a href="%s">enable cookies</a> to use WordPress.' ),
 				__( 'https://codex.wordpress.org/Cookies' ) ) );
 		}
@@ -903,11 +896,11 @@ default:
 
 <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
 	<p>
-		<label for="user_login"><?php _e('Username or Email') ?><br />
+		<label for="user_login"><?php _e( 'Username or Email Address' ); ?><br />
 		<input type="text" name="log" id="user_login"<?php echo $aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login ); ?>" size="20" /></label>
 	</p>
 	<p>
-		<label for="user_pass"><?php _e('Password') ?><br />
+		<label for="user_pass"><?php _e( 'Password' ); ?><br />
 		<input type="password" name="pwd" id="user_pass"<?php echo $aria_describedby_error; ?> class="input" value="" size="20" /></label>
 	</p>
 	<?php
@@ -918,7 +911,7 @@ default:
 	 */
 	do_action( 'login_form' );
 	?>
-	<p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <?php esc_attr_e('Remember Me'); ?></label></p>
+	<p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <?php esc_html_e( 'Remember Me' ); ?></label></p>
 	<p class="submit">
 		<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Log In'); ?>" />
 <?php	if ( $interim_login ) { ?>
diff --git a/wp-mail.php b/wp-mail.php
index 62c9a1190..e62bbf121 100644
--- a/wp-mail.php
+++ b/wp-mail.php
@@ -12,7 +12,7 @@ require(dirname(__FILE__) . '/wp-load.php');
 
 /** This filter is documented in wp-admin/options.php */
 if ( ! apply_filters( 'enable_post_by_email_configuration', true ) )
-	wp_die( __( 'This action has been disabled by the administrator.' ) );
+	wp_die( __( 'This action has been disabled by the administrator.' ), 403 );
 
 /**
  * Fires to allow a plugin to do a complete takeover of Post by Email.
@@ -118,6 +118,7 @@ for ( $i = 1; $i <= $count; $i++ ) {
 					$author = trim($line);
 				$author = sanitize_email($author);
 				if ( is_email($author) ) {
+					/* translators: Post author email address */
 					echo '<p>' . sprintf(__('Author is %s'), $author) . '</p>';
 					$userdata = get_user_by('email', $author);
 					if ( ! empty( $userdata ) ) {
diff --git a/wp-settings.php b/wp-settings.php
index dc3b25a7c..8dd0f4031 100644
--- a/wp-settings.php
+++ b/wp-settings.php
@@ -5,8 +5,6 @@
  *
  * Allows for some configuration in wp-config.php (see default-constants.php)
  *
- * @internal This file must be parsable by PHP4.
- *
  * @package WordPress
  */
 
@@ -20,7 +18,7 @@ define( 'WPINC', 'wp-includes' );
 // Include files required for initialization.
 require( ABSPATH . WPINC . '/load.php' );
 require( ABSPATH . WPINC . '/default-constants.php' );
-require( ABSPATH . WPINC . '/plugin.php' );
+require_once( ABSPATH . WPINC . '/plugin.php' );
 
 /*
  * These can't be directly globalized in version.php. When updating,
@@ -82,8 +80,13 @@ wp_debug_mode();
  *                                    Default true.
  */
 if ( WP_CACHE && apply_filters( 'enable_loading_advanced_cache_dropin', true ) ) {
-// For an advanced caching plugin to use. Uses a static drop-in because you would only want one.
+	// For an advanced caching plugin to use. Uses a static drop-in because you would only want one.
 	WP_DEBUG ? include( WP_CONTENT_DIR . '/advanced-cache.php' ) : @include( WP_CONTENT_DIR . '/advanced-cache.php' );
+
+	// Re-initialize any hooks added manually by advanced-cache.php
+	if ( $wp_filter ) {
+		$wp_filter = WP_Hook::build_preinitialized_hooks( $wp_filter );
+	}
 }
 
 // Define WP_LANG_DIR if not set.
@@ -91,10 +94,13 @@ wp_set_lang_dir();
 
 // Load early WordPress files.
 require( ABSPATH . WPINC . '/compat.php' );
+require( ABSPATH . WPINC . '/class-wp-list-util.php' );
 require( ABSPATH . WPINC . '/functions.php' );
+require( ABSPATH . WPINC . '/class-wp-matchesmapregex.php' );
 require( ABSPATH . WPINC . '/class-wp.php' );
 require( ABSPATH . WPINC . '/class-wp-error.php' );
 require( ABSPATH . WPINC . '/pomo/mo.php' );
+require( ABSPATH . WPINC . '/class-phpass.php' );
 
 // Include the wpdb class and, if present, a db.php database drop-in.
 global $wpdb;
@@ -128,6 +134,8 @@ if ( SHORTINIT )
 
 // Load the L10n library.
 require_once( ABSPATH . WPINC . '/l10n.php' );
+require_once( ABSPATH . WPINC . '/class-wp-locale.php' );
+require_once( ABSPATH . WPINC . '/class-wp-locale-switcher.php' );
 
 // Run the installer if WordPress is not installed.
 wp_not_installed();
@@ -140,6 +148,7 @@ require( ABSPATH . WPINC . '/capabilities.php' );
 require( ABSPATH . WPINC . '/class-wp-roles.php' );
 require( ABSPATH . WPINC . '/class-wp-role.php' );
 require( ABSPATH . WPINC . '/class-wp-user.php' );
+require( ABSPATH . WPINC . '/class-wp-query.php' );
 require( ABSPATH . WPINC . '/query.php' );
 require( ABSPATH . WPINC . '/date.php' );
 require( ABSPATH . WPINC . '/theme.php' );
@@ -147,7 +156,8 @@ require( ABSPATH . WPINC . '/class-wp-theme.php' );
 require( ABSPATH . WPINC . '/template.php' );
 require( ABSPATH . WPINC . '/user.php' );
 require( ABSPATH . WPINC . '/class-wp-user-query.php' );
-require( ABSPATH . WPINC . '/session.php' );
+require( ABSPATH . WPINC . '/class-wp-session-tokens.php' );
+require( ABSPATH . WPINC . '/class-wp-user-meta-session-tokens.php' );
 require( ABSPATH . WPINC . '/meta.php' );
 require( ABSPATH . WPINC . '/class-wp-meta-query.php' );
 require( ABSPATH . WPINC . '/class-wp-metadata-lazyloader.php' );
@@ -182,6 +192,7 @@ require( ABSPATH . WPINC . '/cron.php' );
 require( ABSPATH . WPINC . '/deprecated.php' );
 require( ABSPATH . WPINC . '/script-loader.php' );
 require( ABSPATH . WPINC . '/taxonomy.php' );
+require( ABSPATH . WPINC . '/class-wp-taxonomy.php' );
 require( ABSPATH . WPINC . '/class-wp-term.php' );
 require( ABSPATH . WPINC . '/class-wp-term-query.php' );
 require( ABSPATH . WPINC . '/class-wp-tax-query.php' );
@@ -190,6 +201,7 @@ require( ABSPATH . WPINC . '/canonical.php' );
 require( ABSPATH . WPINC . '/shortcodes.php' );
 require( ABSPATH . WPINC . '/embed.php' );
 require( ABSPATH . WPINC . '/class-wp-embed.php' );
+require( ABSPATH . WPINC . '/class-oembed.php' );
 require( ABSPATH . WPINC . '/class-wp-oembed-controller.php' );
 require( ABSPATH . WPINC . '/media.php' );
 require( ABSPATH . WPINC . '/http.php' );
@@ -201,6 +213,7 @@ require( ABSPATH . WPINC . '/class-wp-http-cookie.php' );
 require( ABSPATH . WPINC . '/class-wp-http-encoding.php' );
 require( ABSPATH . WPINC . '/class-wp-http-response.php' );
 require( ABSPATH . WPINC . '/class-wp-http-requests-response.php' );
+require( ABSPATH . WPINC . '/class-wp-http-requests-hooks.php' );
 require( ABSPATH . WPINC . '/widgets.php' );
 require( ABSPATH . WPINC . '/class-wp-widget.php' );
 require( ABSPATH . WPINC . '/class-wp-widget-factory.php' );
@@ -211,6 +224,24 @@ require( ABSPATH . WPINC . '/rest-api.php' );
 require( ABSPATH . WPINC . '/rest-api/class-wp-rest-server.php' );
 require( ABSPATH . WPINC . '/rest-api/class-wp-rest-response.php' );
 require( ABSPATH . WPINC . '/rest-api/class-wp-rest-request.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-posts-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-attachments-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-post-types-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-post-statuses-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-revisions-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-taxonomies-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-terms-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-users-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-comments-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-settings-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-meta-fields.php' );
+require( ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-comment-meta-fields.php' );
+require( ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-post-meta-fields.php' );
+require( ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-term-meta-fields.php' );
+require( ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-user-meta-fields.php' );
+
+$GLOBALS['wp_embed'] = new WP_Embed();
 
 // Load multisite-specific files.
 if ( is_multisite() ) {
@@ -369,9 +400,6 @@ if ( ( 0 === validate_file( $locale ) ) && is_readable( $locale_file ) )
 	require( $locale_file );
 unset( $locale_file );
 
-// Pull in locale data after loading text domain.
-require_once( ABSPATH . WPINC . '/locale.php' );
-
 /**
  * WordPress Locale object for loading locale domain date and various strings.
  * @global WP_Locale $wp_locale
@@ -379,6 +407,16 @@ require_once( ABSPATH . WPINC . '/locale.php' );
  */
 $GLOBALS['wp_locale'] = new WP_Locale();
 
+/**
+ *  WordPress Locale Switcher object for switching locales.
+ *
+ * @since 4.7.0
+ *
+ * @global WP_Locale_Switcher $wp_locale_switcher WordPress locale switcher object.
+ */
+$GLOBALS['wp_locale_switcher'] = new WP_Locale_Switcher();
+$GLOBALS['wp_locale_switcher']->init();
+
 // Load the functions for the active theme, for both parent and child theme if applicable.
 if ( ! wp_installing() || 'wp-activate.php' === $pagenow ) {
 	if ( TEMPLATEPATH !== STYLESHEETPATH && file_exists( STYLESHEETPATH . '/functions.php' ) )
diff --git a/wp-signup.php b/wp-signup.php
index 99bd2afb9..6cf96b5cf 100644
--- a/wp-signup.php
+++ b/wp-signup.php
@@ -100,7 +100,7 @@ function show_blog_form( $blogname = '', $blog_title = '', $errors = '' ) {
 		$errors = new WP_Error();
 	}
 
-	$current_site = get_current_site();
+	$current_network = get_network();
 	// Blog name
 	if ( !is_subdomain_install() )
 		echo '<label for="blogname">' . __('Site Name:') . '</label>';
@@ -112,15 +112,15 @@ function show_blog_form( $blogname = '', $blog_title = '', $errors = '' ) {
 	<?php }
 
 	if ( !is_subdomain_install() )
-		echo '<span class="prefix_address">' . $current_site->domain . $current_site->path . '</span><input name="blogname" type="text" id="blogname" value="'. esc_attr($blogname) .'" maxlength="60" /><br />';
+		echo '<span class="prefix_address">' . $current_network->domain . $current_network->path . '</span><input name="blogname" type="text" id="blogname" value="'. esc_attr($blogname) .'" maxlength="60" /><br />';
 	else
-		echo '<input name="blogname" type="text" id="blogname" value="'.esc_attr($blogname).'" maxlength="60" /><span class="suffix_address">.' . ( $site_domain = preg_replace( '|^www\.|', '', $current_site->domain ) ) . '</span><br />';
+		echo '<input name="blogname" type="text" id="blogname" value="'.esc_attr($blogname).'" maxlength="60" /><span class="suffix_address">.' . ( $site_domain = preg_replace( '|^www\.|', '', $current_network->domain ) ) . '</span><br />';
 
 	if ( ! is_user_logged_in() ) {
 		if ( ! is_subdomain_install() ) {
-			$site = $current_site->domain . $current_site->path . __( 'sitename' );
+			$site = $current_network->domain . $current_network->path . __( 'sitename' );
 		} else {
-			$site = __( 'domain' ) . '.' . $site_domain . $current_site->path;
+			$site = __( 'domain' ) . '.' . $site_domain . $current_network->path;
 		}
 
 		/* translators: %s: site address */
@@ -304,7 +304,7 @@ function signup_another_blog( $blogname = '', $blog_title = '', $errors = '' ) {
 	$blog_title = $filtered_results['blog_title'];
 	$errors = $filtered_results['errors'];
 
-	echo '<h2>' . sprintf( __( 'Get <em>another</em> %s site in seconds' ), get_current_site()->site_name ) . '</h2>';
+	echo '<h2>' . sprintf( __( 'Get <em>another</em> %s site in seconds' ), get_network()->site_name ) . '</h2>';
 
 	if ( $errors->get_error_code() ) {
 		echo '<p>' . __( 'There was a problem, please correct the form below and try again.' ) . '</p>';
@@ -532,7 +532,7 @@ function signup_user( $user_name = '', $user_email = '', $errors = '' ) {
 
 	<h2><?php
 		/* translators: %s: name of the network */
-		printf( __( 'Get your own %s account in seconds' ), get_current_site()->site_name );
+		printf( __( 'Get your own %s account in seconds' ), get_network()->site_name );
 	?></h2>
 	<form id="setupform" method="post" action="wp-signup.php" novalidate="novalidate">
 		<input type="hidden" name="stage" value="validate-user-signup" />
diff --git a/wp-trackback.php b/wp-trackback.php
index 3d211043e..86e17b965 100644
--- a/wp-trackback.php
+++ b/wp-trackback.php
@@ -82,7 +82,7 @@ if ( is_single() || is_page() )
 	$tb_id = $posts[0]->ID;
 
 if ( !isset($tb_id) || !intval( $tb_id ) )
-	trackback_response(1, 'I really need an ID for this to work.');
+	trackback_response( 1, __( 'I really need an ID for this to work.' ) );
 
 if (empty($title) && empty($tb_url) && empty($blog_name)) {
 	// If it doesn't look like a trackback at all.
@@ -91,10 +91,24 @@ if (empty($title) && empty($tb_url) && empty($blog_name)) {
 }
 
 if ( !empty($tb_url) && !empty($title) ) {
+	/**
+	* Fires before the trackback is added to a post.
+	*
+	* @since 4.7.0
+	*
+	* @param int    $tb_id     Post ID related to the trackback.
+	* @param string $tb_url    Trackback URL.
+	* @param string $charset   Character Set.
+	* @param string $title     Trackback Title.
+	* @param string $excerpt   Trackback Excerpt.
+	* @param string $blog_name Blog Name.
+	*/
+	do_action( 'pre_trackback_post', $tb_id, $tb_url, $charset, $title, $excerpt, $blog_name );
+
 	header('Content-Type: text/xml; charset=' . get_option('blog_charset') );
 
 	if ( !pings_open($tb_id) )
-		trackback_response(1, 'Sorry, trackbacks are closed for this item.');
+		trackback_response( 1, __( 'Sorry, trackbacks are closed for this item.' ) );
 
 	$title =  wp_html_excerpt( $title, 250, '&#8230;' );
 	$excerpt = wp_html_excerpt( $excerpt, 252, '&#8230;' );
@@ -108,7 +122,7 @@ if ( !empty($tb_url) && !empty($title) ) {
 
 	$dupe = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_author_url = %s", $comment_post_ID, $comment_author_url) );
 	if ( $dupe )
-		trackback_response(1, 'We already have a ping from that URL for this post.');
+		trackback_response( 1, __( 'We already have a ping from that URL for this post.' ) );
 
 	$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type');
 
diff --git a/xmlrpc.php b/xmlrpc.php
index e8d5223ff..12da79b95 100644
--- a/xmlrpc.php
+++ b/xmlrpc.php
@@ -61,7 +61,7 @@ exit;
 
 include_once(ABSPATH . 'wp-admin/includes/admin.php');
 include_once(ABSPATH . WPINC . '/class-IXR.php');
-include_once(ABSPATH . WPINC . '/class-wp-xmlrpc-server.php');
+include_once(ABSPATH . WPINC . '/class-wp-xmlrpc-server.php'); 
 
 /**
  * Posts submitted via the XML-RPC interface get that title
-- 
GitLab